A classification and rationalization of model-based software development

Software & Systems Modeling - Tập 12 - Trang 669-678 - 2013
Yongjie Zheng1, Richard N. Taylor2
1Department of Computer Science and Electrical Engineering, School of Computing and Engineering, University of Missouri, Kansas City, USA
2Institute for Software Research, University of California, Irvine, Irvine, USA

Tóm tắt

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.

Tài liệu tham khảo

Sendall, S., Kozaczynski, W.: Model transformation: the heart and soul of model-driven software development. IEEE Softw. 20(5) (2003) Partsch, H., Steinbrüggen, R.: Program transformation systems. ACM Comput. Surv. 15(3), 199–236 (1983) Cleaveland, C.C., Cleaveland, J.C.: Program Generators with XML and Java with CD-ROM. Prentice Hall PTR, Upper Saddle River (2001) 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) Kleppe, A.G., Warmer, J.: MDA Explained: The Model Driven Architecture: Practice and Promise. Addison-Wesley Longman Publishing, Boston (2003) Sztipanovits, J., Karsai, G.: Model-integrated computing. Computer 30(4), 110–111 (1997) Greenfield, J., Short, K.: Software Factories: Assembling Applications with Patterns, Frameworks, Models & Tools, 1st edn. Wiley, New York (2004) Taylor, R.N., Medvidovic, N., Dashofy, E.: Software Architecture: Foundations, Theory, and Practice. Wiley, New York. ISBN:978-0-470-16774-8 (2010) Moriconi, M., Qian, X., Riemenschneider, R.A.: Correct architecture refinement. IEEE Trans. Softw. Eng. 21(4), 356–372 (1995) 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) Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26(1), 70–93 (2000) Tracz, W.: DSSA (domain-specific software architecture): pedagogical example. SIGSOFT Softw. Eng. Notes 20(3), 49–62 (1995) Heineman, G.T., Councill, W.T.: Component-Based Software Engineering: Putting the Pieces Together. Addison-Wesley, Reading (2001) Czarnecki, K., Eisenecker, U.W.: Components and generative programming (invited paper). SIGSOFT Softw. Eng. Notes 24(6), 2–19 (1999) 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) Balzer, R.: A 15 year perspective on automatic programming. IEEE Trans. Softw. Eng. 11(11), 1257–1268 (1985) Selic, B.: The pragmatics of model-driven development. IEEE Softw. 20(5), 19–25 (2003) Fowler, M.: UmlMode. http://www.martinfowler.com/bliki/UmlMode.html Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework, 2nd edn. Addison-Wesley Professional, Boston (2008) Kelly, S., Tolvanen, J.-P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley-IEEE Society Press, New York (2008) Clements, P., Bachmann, F., Bass, L., et al.: Documenting Software Architectures: Views and Beyond. Addison Wesley, Boston (2002) 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) 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) Herrington, J.: Code Generation in Action. Manning Publications, Greenwich (2003) Sendall, S., Küster, J.: Taming model round-trip engineering. In: Proceedings of Workshop on Best Practices for Model-Driven Software Development, Canada (2004) 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) 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) 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) 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) Chikofsky, E.J., Cross II, J.H.: Reverse engineering and design recovery: a taxonomy. IEEE Softw. 7(1), 13–17 (1990) ArchStudio 4. http://www.isr.uci.edu/projects/archstudio/ 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) Hailpern, B., Tarr, P.: Model-driven development: the good, the bad, and the ugly. IBM Syst. J. 45(3), 451–461 (2006)