Model-Driven
Software Engineering in Practice
Second Edition
Synthesis Lectures on Software Engineering
Editor
Luciano Baresi, Politecnico di Milano
The Synthesis Lectures on Software Engineering series publishes short books () on conceiving, specifying, architecting, designing, implementing, managing, measuring, analyzing, validating, and verifying complex software systems. The goal is to provide both focused monographs on the different phases of the software process and detailed presentations of frontier topics. Premier software engineering conferences, such as ICSE, ESEC/FSE, and ASE will help shape the purview of the series and make it evolve.
Model-Driven Software Engineering in Practice: Second Edition
Marco Brambilla, Jordi Cabot, and Manuel Wimmer
2017
Testing iOS Apps with HadoopUnit: Rapid Distributed GUI Testing
Scott Tilley and Krissada Dechokul
2014
Hard Problems in Software Testing: Solutions Using Testing as a Service (TaaS)
Scott Tilley and Brianna Floss
2014
Model-Driven Software Engineering in Practice
Marco Brambilla, Jordi Cabot, and Manuel Wimmer
2012
Copyright 2017 by Morgan & Claypool
All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any meanselectronic, mechanical, photocopy, recording, or any other except for brief quotations in printed reviews, without the prior permission of the publisher.
Model-Driven Software Engineering in Practice: Second Edition
Marco Brambilla, Jordi Cabot, and Manuel Wimmer
www.morganclaypool.com
ISBN: 9781627057080 | paperback |
ISBN: 9781627059886 | ebook |
ISBN: 9781627056953 | epub |
DOI 10.2200/S00751ED2V01Y201701SWE004
A Publication in the Morgan & Claypool Publishers series
SYNTHESIS LECTURES ON SOFTWARE ENGINEERING
Lecture #4
Series Editor: Luciano Baresi, Politecnico di Milano
Series ISSN
Print 2328-3319 Electronic 2328-3327
Model-Driven
Software Engineering in Practice
Second Edition
Marco Brambilla
Politecnico di Milano, Italy
Jordi Cabot
ICREA and Open University of Catalonia (UOC), Spain
Manuel Wimmer
TU Wien, Austria
SYNTHESIS LECTURES ON SOFTWARE ENGINEERING #4
ABSTRACT
This book discusses how model-based approaches can improve the daily practice of software professionals. This is known as Model-Driven Software Engineering (MDSE) or, simply, Model-Driven Engineering (MDE).
MDSE practices have proved to increase efficiency and effectiveness in software development, as demonstrated by various quantitative and qualitative studies. MDSE adoption in the software industry is foreseen to grow exponentially in the near future, e.g., due to the convergence of software development and business analysis.
The aim of this book is to provide you with an agile and flexible tool to introduce you to the MDSE world, thus allowing you to quickly understand its basic principles and techniques and to choose the right set of MDSE instruments for your needs so that you can start to benefit from MDSE right away.
The book is organized into two main parts.
The first part discusses the foundations of MDSE in terms of basic concepts (i.e., models and transformations), driving principles, application scenarios, and current standards, like the well-known MDA initiative proposed by OMG (Object Management Group) as well as the practices on how to integrate MDSE in existing development processes.
The second part deals with the technical aspects of MDSE, spanning from the basics on when and how to build a domain-specific modeling language, to the description of Model-to-Text and Model-to-Model transformations, and the tools that support the management of MDSE projects.
The second edition of the book features:
a set of completely new topics, including: full example of the creation of a new modeling language (IFML), discussion of modeling issues and approaches in specific domains, like business process modeling, user interaction modeling, and enterprise architecture
complete revision of examples, figures, and text, for improving readability, understandability, and coherence
better formulation of definitions, dependencies between concepts and ideas
addition of a complete index of book content
KEYWORDS
modeling, software engineering, UML, domain-specific language, model-driven engineering, code generation, reverse engineering, model transformation, MDD, MDA, MDE, MDSE, OMG, DSL, EMF, Eclipse
Contents
Foreword
Technology takes forever to transition from academia to industry. At least it seems like forever. I had the honor to work with some of the original Multics operating system development team in the 1970s (some of them had been at it since the early 1960s). It seems almost comical to point out that Honeywell only ever sold a few dozen Multics mainframes, but they were advanced, really advancedmany of Multics innovations (segmented memory, hardware security and privacy, multi-level security, etc.) took literally decades to find their way into other commercial products. I have a very distinct memory of looking at the original Intel 386 chip, impressed that the engineers had finally put Multics-style ring security right in the hardware, and less impressed when I discovered that they had done it exactly backward, with highly secure users unable to access low-security areas, but low-security users able to access the kernel. Technology transfer is a difficult and delicate task!
When I had the opportunity to help introduce a new technology and manage hype around that technology, I took it. At loose ends in 1989, I agreed to join the founding team of the Object Management Group (OMG), to help define commercial uptake for Object Technology (called object-oriented systems in the academic world, at least since Simula in 1967), and equally to help control the hype around the Object Technology marketplace. Having participated in the Artificial Intelligence (AI, or expert systems) world in the 1980s, I really didnt want to see another market meltdown as wed experienced in AI: from the cover of Time magazine to a dead market in only five years!
That worked. OMG named, and helped define, the middleware marketplace that flourished in the 1990s, and continues today. Middleware ranges from: TCP socket-based, hand-defined protocols (generally an awful idea); to object-based, request-broker style stacks with automatically defined protocols from interface specifications (like OMGs own CORBA); to similarly automatically-defined, but publish-and-subscribe based protocols (like OMGs own DDS); to semantic integrate middleware with high-end built-in inference engines; to commercial everything-but-the-kitchen-sink enterprise service bus collections of request brokers, publish-and-subscribe, expert-system based, automatic-routing, voice-and-audio streaming lollapaloozas. Middleware abounds, and although theres still innovation, its a very mature marketplace.
By the late 1990s, it was clear that the rapid rise of standardization focused on vertical markets (like healthcare IT, telecommunications, manufacturing, and financial services, OMGs initial range of so-called domain standards) would need something stronger than interface definition languages; to be more useful, standards in vertical markets (and arguably, all standards) should be defined using high-level, precise but abstract modeling languages. This class of languages should be much closer to user requirements, more readable by non-technical people, more focused on capturing process and semantics; in general, they should be more expressive. The natural choice for OMG and its members was of course OMGs own Unified Modeling Language (UML), standardized in 1997 as an experimental use of OMGs standards process that had heretofore focused on middleware. Even better, the UML standardization effort had produced a little-known but critical modeling language called the Meta-Object Facility (MOF) for defining modeling languages. This core of MOF plus extensible, profileable UML would easily be the foundation for a revolution in software developmentand beyond.
Next page