A Process Model for Component-Based Model-Driven Software Development
Abstract
:1. Introduction
2. Background Information
2.1. MDD Concepts
2.2. CBSE Process Models
3. Related Work
4. CompoMDD: Component-Based Model-Driven Software Development
5. Description of the CompoMDD Process Model
5.1. Software System Development
5.1.1. Requirements Elicitation
5.1.2. Project Planning
5.1.3. System Analysis
5.1.4. System Decomposition
5.1.5. Component Conceptual Modeling
5.1.6. Component Model Searching and Selection
5.1.7. Adaptation
5.1.8. Components Integration
5.1.9. System Implementation
5.1.10. System Test and Deployment
5.1.11. System Validation
5.2. Component Development
5.2.1. Reusability Assessment
Reusable Component Development
5.2.2. Model Specification
5.2.3. Component Implementation
5.2.4. Test
Non-Reusable Component Development:
5.3. Metamodeling
- Component conceptual metamodel (CCmeta): This metamodel is a high level description of the components, inputs, outputs, attributes and methods and their relations without technical details. It will be used to define component conceptual models.
- Component platform independent metamodel (CPImeta): This metamodel is a description of the grammar of the component specification language. It will be used to define component platform independent models.
- Component platform specific metamodel (CPSmeta): The entities and relations in this metamodel correspond to the entities and relations in CPImeta and there may be additional entities or additional features as well. CPSmeta describes these entities and relations for a specific platform implementation. It will be used to define component platform specific models and the final source code will be automatically generated from these models.
5.4. Outputs of the CompoMDD Process Model
5.5. A Development Process Workflow
6. Application to an Exemplar Case Study: An Online Quiz System
6.1. Using CompoMDD Process Model
6.2. Metamodeling for Component Platform Independent Modeling
6.3. Discussion
- Components can be deployed independently,
- Components can be composed with other components,
- Components can interact with other components,
- There is a separation between component development and system development activities in the lifecycle,
- There is an adaptation step that allows modifying the components,
- Components are verified and validated before they are stored into the repository,
- Domain specific modeling is used to define the metamodels.
- It embeds the model-driven software development approach into the component based software development lifecycle,
- It introduces a step to consider the potential reuse of components before developing them,
- It facilitates component and system integration by using interim models at different levels.
7. Conclusions and Future Work
Author Contributions
Funding
Acknowledgments
Conflicts of Interest
Abbreviations
CBSE | Component-Based Software Engineering |
MDD | Model-Driven Software Development |
CompoMDD | Proposed Component-Based Model-Driven Software Development Process Model |
MDA | Model Driven Architecture |
DM | System Decomposition Model |
CCM | Component Conceptual Model |
SDM | System Design Model |
CPIM | Component Platform Independent Model |
CPSM | Component Platform Specific Model |
CCmeta | Component conceptual metamodel |
CPImeta | Component platform independent metamodel |
CPSmeta | Component platform specific metamodel |
References
- Szyperski, C. Component Software: Beyond Object-Oriented Programming; ACM Press/Addison-Wesley Publishing Co.: New York, NY, USA, 1998. [Google Scholar]
- Sommerville, I. Software Engineering, 10th ed.; Pearson: London, UK, 2016. [Google Scholar]
- Emmerich, W.; Kaveh, N. Component Technologies: Java Beans, COM, CORBA, RMI, EJB and the CORBA Component Model. In Proceedings of the 24th International Conference on Software Engineering, ICSE ’02, Orlando, FL, USA, 25 May 2002; ACM: New York, NY, USA, 2002; pp. 691–692. [Google Scholar] [CrossRef]
- Khemakhem, S.; Drira, K.; Jmaiel, M. Chapter 8: Description, classification and discovery approaches for software components: A comparative study. In Modern Software Engineering Concepts and Practices: Advanced Approaches; Information Science Reference: Warszawy, Poland, 2010; pp. 196–219. [Google Scholar] [CrossRef]
- Crnkovic, I.; Chaudron, M.; Larsson, S. Component-Based Development Process and Component Lifecycle. In Proceedings of the International Conference on Software Engineering Advances, Tahiti, France, 29 October–3 November 2006; pp. 44–60. [Google Scholar] [CrossRef] [Green Version]
- Bakshi, A.; Singh, R. Component Based Development in Software Engineering. Int. J. Recent Technol. Eng. (IJRTE) 2013, 2, 48–52. [Google Scholar]
- Chatterjee, R.; Rathi, H. A prolific approach towards automating component repository search. In Proceedings of the Seventh International Conference on Contemporary Computing (IC3), Noida, India, 7–9 August 2014; pp. 547–552. [Google Scholar]
- Baker, P.; Harman, M.; Steinhofel, K.; Skaliotis, A. Search Based Approaches to Component Selection and Prioritization for the Next Release Problem. In Proceedings of the 22nd IEEE International Conference on Software Maintenance, ICSM ’06, Chicago, IL, USA, 11–14 September 2006; IEEE Computer Society: Washington, DC, USA, 2006; pp. 176–185. [Google Scholar] [CrossRef]
- Becker, S.; Brogi, A.; Gorton, I.; Overhage, S.; Romanovsky, A.; Tivoli, M. Towards an Engineering Approach to Component Adaptation. In Proceedings of the International Conference on Architecting Systems with Trustworthy Components; Springer: Berlin/Heidelberg, Germany, 2006; pp. 193–215. [Google Scholar]
- Brogi, A.; Canal, C.; Pimentel, E. Measuring Component Adaptation. In Coordination Models and Languages; De Nicola, R., Ferrari, G.L., Meredith, G., Eds.; Springer: Berlin/Heidelberg, Germany, 2004; pp. 71–86. [Google Scholar]
- Çetinkaya, D.; Verbraeck, A.; Seck, M.D. Model Continuity in Discrete Event Simulation: A Framework for Model-Driven Development of Simulation Models. ACM Trans. Model. Comput. Simul. 2015, 25, 17:1–17:24. [Google Scholar] [CrossRef]
- Syriani, E.; Gray, J.; Vangheluwe, H. Domain Engineering: Product Lines, Languages, and Conceptual Models. In Domain Engineering: Product Lines, Languages, and Conceptual Models; Chapter Modeling a Model Transformation Language; Springer: Berlin/Heidelberg, Germany, 2013; pp. 211–237. [Google Scholar] [CrossRef]
- Badampudi, D.; Wohlin, C.; Petersen, K. Software component decision-making: In-house, OSS, COTS or outsourcing—A systematic literature review. J. Syst. Softw. 2016, 121, 105–124. [Google Scholar] [CrossRef]
- Alfraihi, H.; Lano, K. The Integration of Agile Development and Model Driven Development—A Systematic Literature Review. In Proceedings of the 5th International Conference on Model-Driven Engineering and Software Development, Porto, Portugal, 19–21 February 2017; INSTICC, SciTePress: Setúbal, Portugal, 2017; pp. 451–458. [Google Scholar] [CrossRef]
- Alrubaee, A.U. A Component Based Model Driven Software Development Framework for Web-Based Applications. Master’s Thesis, Software Engineering MSc Program, Graduate School of Natural and Applied Sciences, Atilim University, Ankara, Turkey, 2017. [Google Scholar]
- Brambilla, M.; Cabot, J.; Wimmer, M. Model-Driven Software Engineering in Practice, 2nd ed.; Morgan & Claypool Publishers: Mountain View, CA, USA, 2017. [Google Scholar]
- Brown, A.W.; Conallen, J.; Tropeano, D. Introduction: Models, Modeling, and Model-Driven Architecture (MDA). In Model-Driven Software Development; Springer: Berlin/Heidelberg, Germany, 2005; pp. 1–16. [Google Scholar] [CrossRef]
- Capretz, L. Y: A new component-based software life cycle model. J. Comput. Sci. Sci. Publ. 2005, 1, 76–82. [Google Scholar] [CrossRef] [Green Version]
- Lau, K.K.; Taweel, F.M.; Tran, C.M. The W Model for Component-Based Software Development. In Proceedings of the 37th EUROMICRO Conference on Software Engineering and Advanced Applications, Oulu, Finland, 30 August–2 September 2011; pp. 47–50. [Google Scholar]
- Tomar, P.; Gill, N.S. Verification amp; Validation of components with new X Component-Based Model. In Proceedings of the 2010 2nd International Conference on Software Technology and Engineering, San Juan, PR, USA, 3–5 October 2010; Volume 2, pp. V2-365–V2-371. [Google Scholar]
- Vale, T.; Crnkovic, I.; de Almeida, E.S.; da Mota Silveira Neto, P.A.; Cavalcanti, Y.C.; de Lemos Meira, S.R. Twenty-eight years of component-based software engineering. J. Syst. Softw. 2016, 111, 128–148. [Google Scholar] [CrossRef]
- Rodrigues da Silva, A. Model-driven Engineering. Comput. Lang. Syst. Struct. 2015, 43, 139–155. [Google Scholar] [CrossRef] [Green Version]
- Kapteijns, T.; Jansen, S.; Brinkkemper, S.; Houet, H.; Barendse, R. A Comparative Case Study of Model Driven Development vs Traditional Development: The Tortoise or the Hare. In Proceedings of the 4th European Workshop on from Code Centric to Model Centric Software Engineering: Practices, Implications and ROI, Enschede, The Netherlands, 24 June 2009. [Google Scholar]
- Bucchiarone, A.; Cabot, J.; Paige, R.F.; Pierantonio, A. Grand challenges in model-driven engineering: An analysis of the state of the research. Softw. Syst. Model. 2020, 19, 5–13. [Google Scholar] [CrossRef] [Green Version]
- Mussbacher, G.; Amyot, D.; Breu, R.; Bruel, J.M.; Cheng, B.H.C.; Collet, P.; Combemale, B.; France, R.B.; Heldal, R.; Hill, J.; et al. The Relevance of Model-Driven Engineering Thirty Years from Now. In Model-Driven Engineering Languages and Systems; Dingel, J., Schulte, W., Ramos, I., Abrahão, S., Insfran, E., Eds.; Springer International Publishing: Berlin/Heidelberg, Germany, 2014; pp. 183–200. [Google Scholar]
- Bocciarelli, P.; D’Ambrogio, A.; Giglio, A.; Paglia, E. Model-Driven Distributed Simulation Engineering. In Proceedings of the 2019 Winter Simulation Conference (WSC), National Harbor, MD, USA, 8–11 December 2019; pp. 75–89. [Google Scholar]
- Bocciarelli, P.; D’Ambrogio, A.; Falcone, A.; Garro, A.; Giglio, A. A model-driven approach to enable the simulation of complex systems on distributed architectures. SIMULATION 2019, 95, 1185–1211. [Google Scholar] [CrossRef]
- Atkinson, C.; Paech, B.; Reinhold, J.; Sander, T. Developing and applying component-based model-driven architectures in KobrA. In Proceedings of the Fifth IEEE International Enterprise Distributed Object Computing Conference, Seattle, WA, USA, 4–7 September 2001; pp. 212–223. [Google Scholar]
- Weiss, K.A.; Ong, E.C.; Leveson, N.G. Reusable specification components for model-driven development. In Proceedings of the International Conference on System Engineering (INCOSE’03), Portland, OR, USA, 3–10 May 2003. [Google Scholar]
- Phung-Khac, A.; Beugnard, A.; Gilliot, J.M.; Segarra, M.T. Model-driven Development of Component-based Adaptive Distributed Applications. In Proceedings of the 2008 ACM Symposium on Applied Computing; ACM: New York, NY, USA, 2008; pp. 2186–2191. [Google Scholar] [CrossRef] [Green Version]
- Kainz, G.; Buckl, C.; Sommer, S.; Knoll, A. Model-to-Metamodel Transformation for the Development of Component-Based Systems. In Model Driven Engineering Languages and Systems; Petriu, D.C., Rouquette, N., Haugen, Ø., Eds.; Springer: Berlin/Heidelberg, Germany, 2010; pp. 391–405. [Google Scholar]
- Liu, Z.; Morisset, C.; Stolz, V. rCOS: Theory and Tool for Component-Based Model Driven Development. In Fundamentals of Software Engineering; Arbab, F., Sirjani, M., Eds.; Springer: Berlin/Heidelberg, Germany, 2010; pp. 62–80. [Google Scholar]
- Clemente, P.J.; Hernández, J.; Conejero, J.M.; Ortiz, G. Managing crosscutting concerns in component based systems using a model driven development approach. J. Syst. Softw. 2011, 84, 1032–1053. [Google Scholar] [CrossRef]
- Kathayat, S.B.; Le, H.N.; Bræk, R. A Model-Driven Framework for Component-Based Development. In SDL 2011: Integrating System and Software Modeling; Ober, I., Ober, I., Eds.; Springer: Berlin/Heidelberg, Germany, 2011; pp. 154–167. [Google Scholar]
- Agustin, J.L.H.; del Barco, P.C. A model-driven approach to develop high performance web applications. J. Syst. Softw. 2013, 86, 3013–3023. [Google Scholar] [CrossRef]
- Mizuno, T.; Matsumoto, K.; Mori, N. Applying Component-Based Technologies to Model-Driven Software Development. Electron. Commun. Jpn. 2015, 98, 24–31. [Google Scholar] [CrossRef]
- Ciccozzi, F.; Carlson, J.; Pelliccione, P.; Tivoli, M. Editorial to theme issue on model-driven engineering of component-based software systems. Softw. Syst. Model. 2017. [Google Scholar] [CrossRef] [Green Version]
- Allen, R.; Garlan, D. A Formal Basis for Architectural Connection. ACM Trans. Softw. Eng. Methodol. (TOSEM) 1997, 6, 213–249. [Google Scholar] [CrossRef] [Green Version]
- Javed, A.Z.; Strooper, P.; Watson, G. Automated Generation of Test Cases Using Model-Driven Architecture. In Proceedings of the Workshop on Automation of Software Test (AST’07), Minneapolis, MN, USA, 26 May 2007. [Google Scholar] [CrossRef]
- Shiva, S.G.; Shala, L.A. Software Reuse: Research and Practice. In Proceedings of the 4th International Conference on Information Technology, Las Vegas, NV, USA, 2–4 April 2007; pp. 603–609. [Google Scholar]
- Sametinger, J. Software Engineering with Reusable Components; Springer: Berlin/Heidelberg, Germany, 1997. [Google Scholar]
- Desouza, K.C.; Awazu, Y.; Tiwana, A. Four Dynamics for Bringing Use Back into Software Reuse. Commun. ACM 2006, 49, 96–100. [Google Scholar] [CrossRef]
- Councill, B.; Heineman, G.T. Definition of a Software Component and Its Elements. In Component-Based Software Engineering; Heineman, G.T., Councill, W.T., Eds.; Addison-Wesley Longman Publishing Co., Inc.: Boston, MA, USA, 2001; pp. 5–19. [Google Scholar]
- Emerson, M.; Neema, S.; Sztipanovits, J. Metamodeling Languages and Metaprogrammable Tools. In Handbook of Real-Time and Embedded Systems; Lee, I., Leung, J.Y.T., Son, S.H., Eds.; Taylor & Francis Group: Abingdon, UK, 2008; Chapter 33; pp. 1–16. [Google Scholar]
- Institute, P.M. A Guide to the Project Management Body of Knowledge (PMBOK® Guide), 6th ed.; Project Management Institute, Inc.: Newtown Square, PA, USA, 2017. [Google Scholar]
- Acerbis, R.; Bongio, A.; Brambilla, M.; Butti, S.; Ceri, S.; Fraternali, P. Web Applications Design and Development with WebML and WebRatio 5.0. In Objects, Components, Models and Patterns; Paige, R.F., Meyer, B., Eds.; Springer: Berlin/Heidelberg, Germany, 2008; pp. 392–411. [Google Scholar]
- Kroiss, C.; Koch, N.; Knapp, A. UWE4JSF: A Model-Driven Generation Approach for Web Applications. In Web Engineering; Gaedke, M., Grossniklaus, M., Díaz, O., Eds.; Springer: Berlin/Heidelberg, Germany, 2009; pp. 493–496. [Google Scholar]
Models | V [5] | Y [18] | W [19] | X [20] |
---|---|---|---|---|
Components can be deployed independently | Yes | Yes | Yes | Yes |
Components can be composed with other components | Yes | Yes | Yes | Yes |
Components can interact with other components | Yes | Yes | Yes | Yes |
Separation between component development | Yes | Yes | Yes | Yes |
and system development activities | ||||
Adaptation step to modify the components | Yes | Yes | Yes | Yes |
Component verified and validated before it is stored | Yes | No | Yes | Yes |
in repository | ||||
Use of domain engineering | No | Yes | Yes | Yes |
Embedding another software development approach | No | No | No | No |
Considering the potential reuse of components | No | No | No | No |
Lifecycle Stage | Output |
---|---|
Software System Development | |
Requirements elicitation | User requirements |
Project planning | Project plan |
System analysis | Software requirements specification |
System decomposition | Decomposition model |
Component conceptual modeling | Component conceptual models (CCM) |
Components searching and selection | Set of selected components |
Adaptation | Adapted components |
Components integration | Integrated system model |
System implementation | Source code |
System test and deployment | Deployed system |
Component Development | |
Model specification (only for reusable | Component platform independent |
components) | model (CPIM) |
Model implementation (only for reusable | Component platform specific model |
components) | (CPSM) and source code |
Model specification (for non-reusable | Design document |
components) | |
Model implementation (for non-reusable | Source code |
components) |
Connection Type | Representation | Description |
---|---|---|
Link connection | Link connection is used to refer the web page links. | |
Include connection | Include connection is used for including other elements | |
as composition. Include connection can be two types | ||
as include web page or include component. | ||
But, they are represented same. | ||
Require connection | Require connection is used for embedding a component | |
into another component. |
© 2020 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Umran Alrubaee, A.; Cetinkaya, D.; Liebchen, G.; Dogan, H. A Process Model for Component-Based Model-Driven Software Development. Information 2020, 11, 302. https://doi.org/10.3390/info11060302
Umran Alrubaee A, Cetinkaya D, Liebchen G, Dogan H. A Process Model for Component-Based Model-Driven Software Development. Information. 2020; 11(6):302. https://doi.org/10.3390/info11060302
Chicago/Turabian StyleUmran Alrubaee, Afrah, Deniz Cetinkaya, Gernot Liebchen, and Huseyin Dogan. 2020. "A Process Model for Component-Based Model-Driven Software Development" Information 11, no. 6: 302. https://doi.org/10.3390/info11060302