Abstract

Advocates of model-driven (software) engineering (MDE)1 tout the need to raise the level of abstraction at which software is conceived, implemented, and evolved to better manage the inherent complexity of modern software-based systems. Examples of MDE-related languages, technologies, and techniques that have beenproposed as “tamers” of inherent complexity are languages supporting multi-view modeling of systems (e.g., the UML), metamodeling approaches to specifying model transformations, metamodeling environments for creating and using domain specific languages, megamodeling environments for manipulating and managing models, and aspect-oriented modeling environments supporting multi-dimensional separation of concerns and composition. Experiences suggest that some forms of MDE technologies may introduce significant accidental complexities that can detract from their use as managers of inherent software complexity. The degree of accidental complexity is not surprising given that we’re still in the early phases of MDE. Few would argue that we fully understand how to effectively model complex software systems. It is unreasonable to expect early perfect solutions when tackling the wicked problems facing MDE researchers and technologists. If we are to use MDE to tame the complexity of devel-

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call