A classification and rationalization of model-based software development
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)