Keywords

model-driven software development, software modeling, automatic code generation

Abstract

Software development is a complex and difficult task that requires the investment of significant resources and carries major risk of failure. For decades now, researchers have proposed “model-driven” approaches to improve the state of the art in software engineering. Software models are intended to improve communication among stakeholders and aid in the overall understanding both of a problem space and a proposed software solution that satisfies given requirements. As with architectural blueprints or miniature 3D models, software models make it possible to explore and test a design and its ramifications before investing in the actual build-out. The traditional approach to software development involves a modeling process – analysis, requirements specification, design – followed by an implementation process. In the traditional approach, programmers manually write software that conforms (more or less) to specifications described in software models; this process involves transformations that are often incomplete, awkward, and informal. The essence of model-driven software development is the idea that software models can go further than being mere blueprints, and constitute the basis for automatically or semiautomatically generating the software system itself. In this chapter, we survey various major approaches to model-driven software construction and illustrate how model-driven development works in practice.

Original Publication Citation

"Model-Driven Software Development", Handbook of Conceptual Modeling: Theory, Practice, and Research Challenges, Pages 17-56, Springer, Berlin, David W. Embley and Bernhard Thalheim, 2011

Document Type

Book Chapter

Publication Date

2011

Publisher

Handbook of Conceptual Modeling: Theory, Practice, and Research Challenges

Language

English

College

Marriott School of Business

Department

Information Systems Management

University Standing at Time of Publication

Full Professor

Share

COinS