- development support application package,
- additions to the recommended applications.
The most reliable and effective components were used for compiling our application package, and the related methodology provides practical support from the planning phase until the release of the application for its optimal use.
The reference architecture of the solution is shown on this diagram:
The diagram shows the architecture elements used during development. The reference architecture provides the recommended implementation for components and our own additions make the effective fitting of components possible to the development methodology. The methodology defines the possible roles, responsibilities and expected levels of knowledge of the participants of the development. Recommendations are made for the working methods of the project members based on the assigned roles, as well as for the entire development process. The resultant development framework provides the following advantages:
- Tight connection between planning and development
Experience shows that delays in application planning and the implementation of the solution cause significant problems. The future application which is in the development phase might contain technologies/solutions which are not reliable and miss the known best practices. An MDA-based (Model Driven Architecture) is used to resolve this problem, which not only guarantees the presence of best practices but also provides a technical framework for future applications. All this is generated from the model created during planning which guarantees the existence of basic structural and setup standards.
A further advantage of MDA is the uniform management of the various abstraction models of the system, and it provides for simple interchange between abstraction levels. MDA makes the effective decomposition of the task possible, i.e. disassembling and analyzing the various parts of it. An MDA implementation called androMDA is used to generate the frame of the modeled elements or the entirety of these elements from the UML. JPA entities, EJB 3 elements, Web Service and even POJOs and standard exceptions can be generated by using custom additions. Not only atomic elements can be generated; there are templates for various planning schemes and best practices.
Code quality expectations can be realized by fully implementing the methodology defined in the solution. The discrepancies caused by the difference in the levels of knowledge of the project members can be detected and cared for, and conformity of form and content of the codes created to the company standards can be guaranteed by using the method. The form of the codes is examined by Checkstyle and the content is by PDM-tools, and the structural indexes of the entire system are made available by a JDepend tool. These items will be available on the integrated dashboard of the Continuous Integration Server. The problems related to continuous integration and change monitoring will be brought up in time.
- The toolkit in use can be validated
It is very important to avoid using external dependencies during application development which can destroy the application later due to quality or legal issues. Therefore it is a requirement to integrate validated tools into the developed applications which conform to certain quality standards and are approved by the company. The Artifact Repository included in the architecture and the use defined by the methodology are the guarantees for fulfilling the expectation. Additionally, the Artifact Repository ensures that the entire company uses the same component for a certain problem, thereby ensuring the reuse of elements and the establishment of a uniform environment. The only dependencies that can be resolved by the translator tool (Maven) during translation are the ones appearing in the company repository.
- The delivery process can be validated
Recording, replicability and version handling of the delivery process is a basic expectation for application developments. Additional resources are needed in every project to establish this. Generalization can save money and time, and additional quality guarantees can be realized if a general process is embedded in a validated business process. The framework contains components to resolve the aforementioned issues. The recommended Artifact Repository has the ability to place the installed artifacts into a staging repository first, and workflows can be defined for putting an artifact from the staging repository under the living repository. The users of various roles assigned to the workflow can change the statuses of the artifacts.
- Easier developer re-usability
As the roles defined by the methodology can be fitted easily to every project, and the applied toolkit is constant, therefore no technological indoctrination is needed at the start of each project, therefore the reusing the developers and shifting them between projects becomes simpler and more effective. It enables developers to concentrate on business problems instead of the technological issues.
The MDA-based approach assists the creation of the project structure, component frames and technological configurations based on the completed system plans. The resources spent on development would be used even more effectively in the development time. Developers can focus on the business logic instead of resolving technological issues and fitting new technologies, as the framework takes care of that. New technologies and patches for the existing ones will be automatically applied when the framework is updated.
The framework provides a solution for several problems that might arise during application development, increasing company productivity and ensuring adherence to quality standards.