Documente Academic
Documente Profesional
Documente Cultură
1. Introduction
Software development process complexity combined with the intricacy of software systems has increased significantly. With environment undergoing non-stop changes, businesses are challenged to adapt via business process enhancement and corresponding software systems improvement. Using any new technology involves a lot of activities that need to be done again and again. Systems are rarely based on one technology and often systems have to communicate with other systems. Code and documentation are still separated from each other. When quick changes to the software system are applied, it is typical that documentation is not updated. Through the time documentation can become useless. According to [1] the main problems of the traditional software development are: The productivity problem (developers often consider code is to be productive, writing models and documentation are not)
394
heavyweight methodologies, Microsoft Solutions Framework and Rational Unified Process, are provided. Overview of the current status of the research field and software production industrialization aspects is outlined in Section 2. Section 3 provides guidelines and comments on the model driven development approach application within traditional software development methodologies. Followed by this section, Section 4 describes conclusions and future work plans.
was proposed in the MODA-TEL project. Through the assigning appropriate methods to the software development processes like Rational Unified Process (RUP), V-model or CMM, MDA-supported methodology will be devised [9]. However, complete and consistent software process based on MDA is beyond the scope of the MODA-TEL project. Similar to MASTER project, the phases and activities in the development process, as well as the roles and products of each activity in accordance with the Software Process Engineering Metamodel (SPEM) were identified and proposed in the new methodology [3]. However, this methodology is designed for distributed applications development only. By analyzing case studies it is possible to get an overview on how to fit MDA into the software development process when the web services based solution is being implemented [10]. The overview of the main aspects covers process roles, artefacts and deliverables, tools (by providing an example of using Codagen tool) and separation of lifecycle phases within the RUP software development process. In that way collaboration between all the interveners of the development cycle is achieved and visualized. It is possible to extend and implement this approach to other software development projects as well. Organizations developing software products should organize their process effectively and continuously enhance its maturity (e.g., reaching higher maturity levels of CMM). The automation of software production could lead to the continuous improvement inside single organization.
395
new system may come from one of the following sources: An existing set of applications A proprietary application framework used by the organization An acquired application framework A set of extensions and customizations to packaged applications According to these possibilities, the primary task is to create a clear understanding of the domain, to express that understanding in a platform-independent domain model. Such model should support various kinds of analysis to ensure its correctness and consistency, and to map that domain model to a platform-specific implementation realized by extending the solution framework. In model-to-code transformations, the solution framework plays a key role, because it constrains and guides the kinds of transformations that are meaningful.
There are several practical and theoretical researches available on how to apply MDA to the RUP. Important aspects to consider in applying RUP to an MDA project are the following [13]. Elaboration is the main phase impacted by an MDA project. It is important to look at Elaboration activities and briefly describe MDA modifications. The Architect role is the main role in Elaboration phase that requires additional consideration. As a specialization of "Architect," the MDA Architect role is appropriate to many MDA projects. Essentially, this role defines specific MDA activities and artefacts, creates the transformations, and so on. The primary MDA artefacts from this role are mapping documents, transformations, and UML profiles. It should be noted, that [8] divides the Architects role into a Software Architect (who is in charge for PIM design) and a Deployment architect (who is in charge for PSM design). Typically, MDA automates activities within RUP. Rather than changing RUP activities, MDA enhance them with additional tasks aimed at supporting automation with a number of the primary RUP activities. The primary changes to RUP involve a more subtle change of perspective on the development process. MDA encourages architects and developers to work at higher levels of abstraction than typically expected in non-MDA projects. This is most apparent during construction where the code automation aspects of MDA significantly change the emphasis of the implementation tasks. They work less with actual implementation models and source code themselves, and more with designs for the appropriate businessfocused workflow of the solution. A smaller subset of developers will be implementing the model-to-code transformations themselves. However, the amount of work needed for transformations may vary and depends on initial availability of the transformation tools [9]. The RUP phases and workflows, enriched with the MDA specific deliverables are described in [15].
396
Currently no theoretical base or case study research on how to map MDA to MSF exists. However, it is still possible to apply general MDA mapping rules to the MSF software development process model. At the envision phase, requirements specification with well-defined terminology should be elicited (probably, resulting in ontology) [17], [9], [15]. Structuring of captured information should be performed. This formal structured information and the terms of the ontology could later be used to refine the requirements into design-oriented models. Later, models should point back into the requirements for traceability and test specification formalisms (validating a resulting system against the requirements). The formalized outcome is CIM model. Preparations for PIM development starts at the beginning of Envision phase as well. Metamodel development is being initiated. MSF standard deliverable Risk Assessment Document should be enriched with MDA related information (transformation tools availability, metamodels facilities evaluation, mapping complexity assessment and etc.). Vision/scope Document should be enriched with Project Structure Document and conceptual model. Similar to RUP, the MDA modeling activities will affect the MSF Plan phase to a great extent, where the design of PIMs and initial planning of PSMs should be clearly identified. The metamodels or profiles of the domain analyzed should be extracted first and then models based on these models can be used to formally describe the system. This is an incremental activity each new instance of a metamodel could bring up some improvements for the metamodel. Additional constraints in the models should be defined with Object Constraint Language (OCL). Functional specification semantics, which is the standard MSF deliverable, should be captured in the models as well. At the Build phase, development or improvement of model transformation algorithms or code generators activities should be performed. Both PIM and PSM models should be marked, and mappings rules should be defined. Additional complex business rules and transaction methods, where a further structure could not be abstracted from the use cases should be implemented. Implementing runtime environments for some domain specific structures or patterns found takes place in the design process as well. MSF Build phase deliverables source code and executables, are replaced with marked PIM and PSM models. Test specifications and test cases are defined both for models and for the final solution resulted in code (in order to verify the system functionality and models conformance). Once the models are marked, it is possible to make automated (or semi-automated) PIM to PSM transformation and PSM to code (or PSM
to PSM transformation as well). The transformation process should occur at the end of Build phase, resulting in an additional deliverable executable model. PSM covers the most part of stabilize phase. Stabilize phase allows to test models conformance with test cases, which were created in the previous Build phase. As [15] outlines, one of the famous slogans of extreme programming- "tests first" can be translated in the MDA world to "verify first". The development process itself is iterative, so if any inconsistence found in the target model, source model or appropriate mapping functions should be modified. The transformation process continues until the bug convergence is reached. MSF principle about zero bug bounce can be successfully applied to the models testing in the MDA context. During the Deploy phase, the team deploys the core technology and site components, stabilizes the deployment, transitions the project to operations and support, and obtains final customer approval of the project. The result of the deployment phase is a working system, which is implemented in code and is set up in production. Most deployment information is based on some sort of metamodels or profiles (some PSMs). By using model transformation to create instances of such metamodels for deployment directly from the models and their annotations, the deployment process will become much more transparent and less dependent on certain versions of the target technology. In case requirements for the system are revised or there are changes in the target architecture, the software development lifecycle starts from the beginning. The most impressive benefits are acquired in the maintenance phase (however, this phase is out of scope in MSF process model). The more dynamic and structured the architected system is, the less complicated and time consuming development phases are necessary and the cheaper and more effective the maintenance phase will be.
397
software development process in terms of phases and appropriate activities. It represents only static structure, without taking into account iterative process aspects. Agile software development process is not covered here due to its difference from strict and formal heavyweight process. However, agile software development aspects will be analyzed in forthcoming works. Thus it will facilitate in overall understanding of how the MDA could be utilized within software development methodologies. Such tailoring is out of scope in this paper.
7 8 9
information Verify models PSM identification Define verification strategies Define user interface options (with model aware aspects) PSM metamodel design Verify models Mark PIM and PSM Create additional transformations and code generation scripts for target platforms Create test scripts PIM to PSM automatic or semi-automatic transformation Verify the established meta-models Code files generation from PSM Automatic deployment (deployment profiles or PSMs can be used) Fine-tuning and repeated use of automated testing process Executable code verification to models
Figure 1. Software development lifecycle and MDA mappings According to Figure 1 appropriate activities in the phase crossings are marked with digits. Their description in more details is provided in Table 1. Table 1. MDA specific activities in the phase crossings Define possible domain specific metamodel Traceability convention from requirements to code Choose modeling tool Technology selection 1 Requirements specification development (ontology) Information structuring Initial PIM development Transformations strategy selection 2 Business process modeling role evaluation Risk assessment Refine PIM context 3 Define verification strategies PIM design Finalize metamodels Create model-capturing support (model instances, which are not easy to illustrate in 4 diagrams) Annotate PIM with platform specific
5. Acknowledgements
The research reflected in the paper is supported by the research grant of Riga Technical University Development of Conceptual Model for Transition from Traditional Software Development into MDAoriented and by the European Social Fund within the National Programme "Support for the carrying out doctoral study program's and post-doctoral researches".
398
6. References
[1] Kleppe A., Warmer J., Bast W. MDA Explained: The Model Driven Architecture: Practice and Promise. Addison Wesley, April 2003. [2] OMG Model Driven Architecture. Available at: http://www.omg.org/mda [3] Gavras A., Belaunde M., Pires L.F., Almeida J.P.: Towards an MDA-based development methodology for distributed applications [4] Kruchten P.: The Rational Unified Process An Introduction, Second Edition, Addison Wesley, 2000. [5] Nikulsins V,. Nikiforova O., Sukovskis U. Analysis of Activities Covered by Software Engineering Discipline, Databases and Information Systems, Seventh International Baltic Conference on Databases and Information Systems, Communications, Materials of Doctoral Consortium, O. Vasilecas, J. Eder, A. Caplinskas (Eds.), pp. 130-138, VGTU Press Technika scientific book No 1290, Vilnius, Lithuania, 2006 [6] Meservy T., Fenstermacher K.D. Transforming Software Development: An MDA Road Map. University of Arizona, 2005. [7] Kontio M. Architectural manifesto: MDA for the enterprise. An architect's approach to more productive development. IBM. July 2005. [8] Process Model to Engineer and Manage the MDA: Model-driven Architecture inSTrumentation, Enhancement and Refinement Approach. European Software Institute. September 2003. Available at: http://modeldrivenarchitecture.esi.es/pdf/Deliverable-D32.zip [9] Steinhau R. Model Driven Architecture Definition and Methodology. Deliverable 3.1. MODA-TEL. Interactive Objects Software GmbH, 2002. Available at: http://www.modatel.org/public/deliverables/D3.1.htm [10] Bertrand D. Model-Driven Architecture Case Study: Model-Driven Architecture with Codagen. June 12th 2003. Available at: http://www.omg.org/news/meetings/workshops/MDA_Wksp _Manual/06-1_Bertrand_Brassard.pdf. [11] Langlois B., Exertier D. MDSoFa: a Model-Driven Software Factory. Thales Research & Technology France. October 2004. Available at: www.softmetaware.com/oopsla2004/langlois.pdf [12] Belaunde M. Initial identification of issues for further research. Deliverable 2.2. MODA-TEL. Interactive Objects Software GmbH, 2002. Available at: http://www.modatel.org/~Modatel/pub/deliverables/D2.2final.pdf [13] Brown A., Conallen J. An introduction to model-driven architecture. Part III: How MDA affects the iterative
development process. May 2005. Available at: http://www.ibm.com/developerworks/rational/library/may05/ brown/index.html [14] Mansell J., Bediaga A., Vogel R., Mantell K. A Process Framework for the Successful Adoption of Model Driven Development. A. Rensink and J. Warmer (Eds.): ECMDAFA 2006, LNCS 4066, pp. 90100, 2006. [15] Steinhau R. Guidelines for the Application of MDA and the Technologies covered by it. Deliverable 3.2. MODA-TEL. Interactive Objects Software GmbH, 2003. Available at: http://www.modatel.org/~Modatel/pub/deliverables/D3.2final.pdf [16] Dubova N. Software development platforms (in Russian). Open Systems, January 2006. Available at: http://www.osp.ru/os/2006/01/380740/_p3.html [17] Microsoft. Microsoft Solutions Framework: MSF Process Model v. 3.1. White Paper, Microsoft Corporation. June 2002. [18] Brown A.W. Model driven architecture: Principles and practice. IBM Software Group, USA. Published at SpringerVerlag, 2004.
399