This research tried to prove that the domain-driven development from previously-developed concepts is possible. This concept proof was based on a real-life project conducted at the Brazilian Navy Bureau for Integrated Logistic Support (Núcleo de Apoio Logístico Integrado da Marinha – NALIM).
Currently, NALIM is developing a system to support maintenance logistics of the Brazilian Navy fleet. The system consisted of a set of business services, including the authentication control service. We elected the authentication control service as a prototype for the use of domain sharing, as it was small and was already completed in another software project. Our goal was to look up the service, download the model and generate the initial code for that service. We expected this initiative would lower the development process of the authentication control by 20% to 30%.
Our code generation rate encompasses from 50% to 60% of the project itself. The MDA framework is limited to that range because we are still researching methods to improve code generation of software views [14 and 15]. The rest of the code involves implementation of specific business rules and enhancement of previously generated code. This initiative has proved efficient but we know that it can be improved and our goal is to achieve a 70% development by the end of 2008. The domain-driven prototype consisted of a central storage environment with one Web service. The look up process was direct to the Web Service URL and there was no need to implement the distributed service look up.
Authentication control was designed in a previous project at the Brazilian Ministry of Defence Software Development Laboratory. It took two months from business elicitation rules to code implementation. Our project needed only to verify business rules and authentications rules and use the shared domain model to generate the authentication code. From Business elicitation rules to system implementation we took one month and 15 days approximately, a saving of 25% in development time.
It is clear that the foregoing results lack more specific analysis to guarantee that our cooperative domain-driven environment can scale to larger systems. However it is possible to state that this research proved that domain-driven development approaches can be used to lower development schedule and budget.
This paper presented a different approach for domain-driven development. Through the use of MDA, SOA and Web Services, we have created a prototype environment in which architects are capable of designing domain models and sharing such information with different projects. Our contribution aimed at creating a MDA environment in which public organizations could solve concurrent development projects with similar or identical business contexts. Analysis results are still in their early stages but the study proved that domain sharing can improve MDA development using SOA to guarantee coherent system architecture.
We believe we have validated the theory, but we are still working to implement a full project development using the above architecture, and also put in production a truly distributed development environment with the cooperation of several project sites. Finally, the intention was to obtain development gains in scheduling and in cost. According to analysis results, the environment was able to use previously created domain models to give a head start to new projects, and consequently promote the necessary corrections to ensure the code generated is reliable and optimized .