Skip to main content

A classification and rationalization of model-based software development


The use of model-based software development is increasingly popular due to recent advancements in modeling technology. Numerous approaches exist; this paper seeks to organize and characterize them. In particular, important terminological confusion, challenges, and recurring techniques of model-based software development are identified and rationalized. New perspectives are provided on some fundamental issues, such as the distinctions between model-driven development and architecture-centric development, code generation, and metamodeling. On the basis of this discussion, we opine that architecture-centric development and domain-specific model-driven development are the two most promising branches of model-based software development. Achieving a positive future will require, however, specific advances in software modeling, code generation, and model-code consistency management.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3


  1. 1.

    Sendall, S., Kozaczynski, W.: Model transformation: the heart and soul of model-driven software development. IEEE Softw. 20(5) (2003)

  2. 2.

    Partsch, H., Steinbrüggen, R.: Program transformation systems. ACM Comput. Surv. 15(3), 199–236 (1983)

    Article  Google Scholar 

  3. 3.

    Cleaveland, C.C., Cleaveland, J.C.: Program Generators with XML and Java with CD-ROM. Prentice Hall PTR, Upper Saddle River (2001)

    Google Scholar 

  4. 4.

    France, R., Rumpe, B.: Model-driven development of complex software: a research roadmap. In: 2007 Future of Software Engineering (May 23–25, 2007), pp. 37–54. IEEE Computer Society, Washington, DC (2007)

  5. 5.

    Kleppe, A.G., Warmer, J.: MDA Explained: The Model Driven Architecture: Practice and Promise. Addison-Wesley Longman Publishing, Boston (2003)

    Google Scholar 

  6. 6.

    Sztipanovits, J., Karsai, G.: Model-integrated computing. Computer 30(4), 110–111 (1997)

    Article  Google Scholar 

  7. 7.

    Greenfield, J., Short, K.: Software Factories: Assembling Applications with Patterns, Frameworks, Models & Tools, 1st edn. Wiley, New York (2004)

    Google Scholar 

  8. 8.

    Taylor, R.N., Medvidovic, N., Dashofy, E.: Software Architecture: Foundations, Theory, and Practice. Wiley, New York. ISBN:978-0-470-16774-8 (2010)

  9. 9.

    Moriconi, M., Qian, X., Riemenschneider, R.A.: Correct architecture refinement. IEEE Trans. Softw. Eng. 21(4), 356–372 (1995)

    Article  Google Scholar 

  10. 10.

    Medvidovic, N., Oreizy, P., Taylor, R.N.: Reuse of off-the-shelf components in C2-style architectures. In: Proceedings of the 19th International Conference on Software Engineering (ICSE ’97), pp. 692–700. ACM, New York, NY, USA (1997)

  11. 11.

    Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26(1), 70–93 (2000)

    Article  Google Scholar 

  12. 12.

    Tracz, W.: DSSA (domain-specific software architecture): pedagogical example. SIGSOFT Softw. Eng. Notes 20(3), 49–62 (1995)

    Article  Google Scholar 

  13. 13.

    Heineman, G.T., Councill, W.T.: Component-Based Software Engineering: Putting the Pieces Together. Addison-Wesley, Reading (2001)

    Google Scholar 

  14. 14.

    Czarnecki, K., Eisenecker, U.W.: Components and generative programming (invited paper). SIGSOFT Softw. Eng. Notes 24(6), 2–19 (1999)

  15. 15.

    Tarr, P., Ossher, H., Harrison, W., Sutton, S.M.: N degrees of separation: multi-dimensional separation of concerns. In: Proceedings of the 21st International Conference on Software Engineering, Los Angeles, California, United States, May 16–22, 1999 (1999)

  16. 16.

    Balzer, R.: A 15 year perspective on automatic programming. IEEE Trans. Softw. Eng. 11(11), 1257–1268 (1985)

    Article  Google Scholar 

  17. 17.

    Selic, B.: The pragmatics of model-driven development. IEEE Softw. 20(5), 19–25 (2003)

    Article  Google Scholar 

  18. 18.

    Fowler, M.: UmlMode.

  19. 19.

    Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework, 2nd edn. Addison-Wesley Professional, Boston (2008)

    Google Scholar 

  20. 20.

    Kelly, S., Tolvanen, J.-P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley-IEEE Society Press, New York (2008)

    Book  Google Scholar 

  21. 21.

    Clements, P., Bachmann, F., Bass, L., et al.: Documenting Software Architectures: Views and Beyond. Addison Wesley, Boston (2002)

    Google Scholar 

  22. 22.

    Matinlassi, M., Niemelä, E., Dobrica, L.: Quality-driven architecture design and quality analysis method. A revolutionary initiation approach to a product line architecture. Espoo, VTT Publications (2002)

  23. 23.

    Zheng, Y., Taylor, R.N.: Enhancing architecture-implementation conformance with change management and support for behavioral mapping. In: Proceedings of the 2012 International Conference on Software Engineering (ICSE 2012), pp. 628–638. IEEE Press, Piscataway, NJ, USA (2012)

  24. 24.

    Herrington, J.: Code Generation in Action. Manning Publications, Greenwich (2003)

    Google Scholar 

  25. 25.

    Sendall, S., Küster, J.: Taming model round-trip engineering. In: Proceedings of Workshop on Best Practices for Model-Driven Software Development, Canada (2004)

  26. 26.

    Murphy, G.C., Notkin, D., Sullivan, K.J.: Software reflexion models: bridging the gap between design and implementation. IEEE Trans. Softw. Eng. 27(4), 364–380 (2001)

    Article  Google Scholar 

  27. 27.

    Sefika, M., Sane, A., Campbell, R.H.: Monitoring compliance of a software system with its high-level design models. In: Proceedings of the 18th International Conference on Software Engineering, pp. 387–396. IEEE Computer Society (1996)

  28. 28.

    Yan, H., Garlan, D., Schmerl, B., Aldrich, J., Kazman, R.: Discotect: a system for discovering architectures from running systems. In: Proceedings of the 26th International Conference on Software Engineering. IEEE Computer Society (2004)

  29. 29.

    Aldrich, J., Chambers, C., Notkin, D.: ArchJava: connecting software architecture to implementation. In: Proceedings of the 24th International Conference on Software Engineering (ICSE ’02), pp. 187–197. ACM, New York, NY, USA (2002)

  30. 30.

    Chikofsky, E.J., Cross II, J.H.: Reverse engineering and design recovery: a taxonomy. IEEE Softw. 7(1), 13–17 (1990)

    Article  Google Scholar 

  31. 31.

    ArchStudio 4.

  32. 32.

    Dashofy, Eric M., van der Hoek, Andre, Taylor, Richard N.: A comprehensive approach for the development of modular software architecture description languages. ACM Trans. Softw. Eng. Methodol. 14(2), 199–245 (2005)

    Article  Google Scholar 

  33. 33.

    Hailpern, B., Tarr, P.: Model-driven development: the good, the bad, and the ugly. IBM Syst. J. 45(3), 451–461 (2006)

    Article  Google Scholar 

Download references


This work is supported in part by the National Science Foundation under grants CCF-0917129 and CCF-0820222.

Author information



Corresponding author

Correspondence to Yongjie Zheng.

Additional information

Communicated by Dr. Bernhard Rumpe.

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Zheng, Y., Taylor, R.N. A classification and rationalization of model-based software development. Softw Syst Model 12, 669–678 (2013).

Download citation


  • Model-based software development
  • Model-driven development
  • Architecture-centric development