Addressing Problems with Model Driven Architecture, Page 3
What are the challenges of implementing MDA?
In order to realize the benefits of MDA, a PIM has to be mapped to one or more code PSMs. As well, the one-to-one relationship between a UML PSM and its related code PSM has to be mapped. With the reverse engineering feature of some UML modeling tools, the one-to-one relationship between UML PSM and its related code PSM are already satisfied. Currently, however, there is a gap between the PIM and the code PSM. The current integration of UML modeling tools with integrated development environments (IDEs) does not fulfill that need. In order to close the remaining gap, architects need tools that make it possible to define, view, evolve, enforce and document an application's architecture specification and its architecture implementation.
These tools, which make it possible to model the platform specific issues and to specify how the issue implementation will be linked with the business domain UML elements, are now appearing on the market. One key benefit of these tools is that they do not require programmers to hand-code the PSM code. Rather, they utilize the architecture specification and implementation information to automatically generate 100% of the architectural code associated with a specific platform. The only hand-coding task remaining for the developers is the value-added code related to the business domain (PIM).
What are the impacts of MDA on the software process?
MDA has no significant impact during the Requirement and Analysis phase. However, MDA has a significant impact during the Design and Implementation phase.
During the Design phase, architects must ensure that they do not populate the analysis UML model representing the PIM with platform-specific information. They must create a new UML PSM to model the architecture specification and implementation and document how this new model maps with the UML elements of the PIM. This is a strong challenge if you try to do this task manually with only the help of UML modeling tools because you are not working at the appropriate level of abstraction. However, an MDA-compliant code generation tool will ease the process by providing the necessary tools to specify, document and map the architecture with the PIM. The result of this work will be the detailed design model.
During the Implementation phase, if you use an MDA-compliant code generation tool, the result of the design phase will be used by architects or developers to produce, during the implementation phase, the architectural patterns that will generate the code PSM.
The OMG's MDA initiative can bring major benefits to application development, especially in terms of ROI for UML investment and time to market for software development. In turn, these benefits require efficient architecture management and code generation and open a path to round-trip engineering. However, realizing this potential will require powerful and innovative tools.
About the authors
Michel Brassard is the CTO and founder of Codagen Technologies, the maker of the industry's first MDA-compliant code-generation tool to automate development of enterprise applications from UML models. In this position, Mr. Brassard sets the company's strategic direction and leads its technology vision in product development. Prior to founding Codagen, Mr. Brassard spent 12 years at IBM. Mr. Brassard has authored two patents on code generation and co-authored two books; VisualAge and Transaction Processing in a Client/Server Environment and AD/Cycle Integration: A Re-engineering Case Study. Mr. Brassard holds a Bachelors Degree in Computer Sciences/Mathematics from Laval University in Quebec, as well as a Quebec Securities Commission Degree.
Mario Cardinal is the vice-president, Research and Development, of Codagen Technologies, the maker of Codagen Architect, the MDA-compliant code-generation tool that makes use of XML dynamic templates. In this position, Mr. Cardinal sets the company's operational R&D direction and leads its technology vision in product development. Mr. Cardinal obtained a Bachelor's degree in Computer Engineering as well as a Master's degree in Management of Technology from the Ecole Polytechnique in Montreal, Quebec. He also holds the titles of Microsoft Certified Solution Developer (MCSD) and Microsoft Certified Trainer (MCT).