Technology
Our solutions use the most appropriate technologies for your needs. We look at each business case uniquely and tailor the web application to your requirement.
Brief
Our applications are developed in line with best practice software developments techniques, tools and methodologies. These are outlined briefly in the following sections:
- Tools Used
- Patterns
- Enhancements
- Development Strategy
1. Tools Used
We are predominantly java development specialists with strong database and scripting skills. We take web application development from the initial use-case scenarios, through incremental testing and development, through to implementation, hosting and maintenance. Development Environment:
Libraries and APIs:
Testing and Development
- Log4J
- JMeter
- Standard Java Assertions (part of the J2SE since JDK 1.4)
2. Patterns
There are a wide number of patterns used. The reasons for adopting and exploiting patterns is clear enough (or should be). Below are a list of some of the patterns used, but this is of course not exhaustive:
- Model-View-Controller (Data-Presentation-Business). See also the explanation of MVC
- Facade
- Singleton
- Chain of responsibility
3. Enhancements
Developer enhancements
- Maven to improve the build process.
- CVS or alternates (e.g. Subversion) to allow distribute development of code, versioning, roll-backs etc...
- Improved Testing with Junit, Cactus, httpunit, htmlunit, findbugs etc...
- Clover to measure test coverage of Unit Tests.
- Refine build process, decide amongst Cruise Control, LuntBuild, Anthill or others.
- J2EE (webs services, JMX...) to improve the scalable architecture.
- Exadel Studio for faster Struts and AJAX builds and prototyping.
- Spring as an alternative or complement to J2EE.
Application Enhancements
- RSS/ATOM feeds using ROME
- Alternate front ends such as Print, Mobile, XHTML, webTV, Laszlo/Flash
- Alternate output formats such as PDF, txt, SVG, .xsl etc...
- Accessibility enhancements
- Lucene search engine capabilities.
- Velocity templating engine to simplify code at the interface
- Hibernate for better ORM and data persistence.
- AJAX for real-time front-end to back-end interactivity
- Java Server Faces
- ACEGI for improved authentication and authorization.
Server Enhancements
4. Development Strategy
- Focus on the business problem
- Keep it simple
- Use Patterns
- Reuse code
- Work closely with other programmers (XP techniques)
- Unit Test, test before your build
- Use automated builds with tools such as Ant and Maven.
- Develop code incrementally, using refactoring
- Work with end users and model their needs with tools such as UML
- Combine the UML with the code and the unit tests for round-trip engineering