MDSE In Practice - Chapter 2 - Reading Notes
Model-Driven Software Engineering In Practice - Chapter 2 - Reading notes
2. Introduction
2.3.2 Domains, Platforms, And Technical Spaces
2. Introduction
- "MDSE is conceived as a tool for ... transforming models into first-class citizens in software engineering."
- Aspects
- Concepts
- Models and Transformation (Models + Transformations => Software)
- [Transformations do not necessarily need to be programmatic, they could be manual.]
- Notations - Models are expressed in a particular notation, depending on the domain.
- Process & Rules - These inform what models should be used, in what order and how they should be used.
- Tools - We need tools to make all these feasible.
- "Everything is a model"
- Drawing != Modeling. Advantages of Modeling: Syntactical validation, model checking, model simulation, model transformation, model execution, model debugging. [When is model simulation different from model execution?]
2.2 Lost In Acronyms: The MD* Jungle
- See here for Jordi Cabot's blog for equivalent material.
- Basically MDA < MDD < MDE < MBE
- MBE is a softer version of MDE, where software models play an important role although they may not necessarily be the key artifacts of the development.
- MDSE is a version of MDE focused on software engineering & the subject of this book.
2.3 Overview of the MDSE Methodology
2.3.1 Overall Vision
Issues | Conceptualization | |||
Implementation | Levels | Application | Application Domain | Meta-Level |
Modeling | Model | Modeling Languages | Meta-Modeling Languages | |
Automation | Transformation/Code Generation | Transformation Definition | Transformation Language | |
Realization | Artifacts (e.g. code) | Platform |
2.3.2 Domains, Platforms, And Technical Spaces
- MDE implies: Context -> Model of Context -> Some other Model
- Problem Space (or problem domain [or representation]) addressed by analysis phase.
- Solution Space addressed by requirements collection phase and design phase.The Solution Space is the set of choices made at design, implementation & execution levels.
- Domain Model - Conceptual model of the problem domain - "The purpose of domain models is to define a common understanding of a field of interest, through the definition of its vocabulary and key concepts."
- Technical Spaces represent a working context bound to specific implementation technologies.
- Some technical spaces may span both problem & solution spaces (e.g. MDE), while others (e.g. Java or XML) may only be relevant with the solution space.
- "extractors" and "injectors" may be used to transfer knowledge from one technical space to another.
2.3.3 Modeling Languages
- Domain-Specific Languages (DSLs)
- Specifically designed for a domain.
- DSML - Domain-Specific Modeling Language
- E.g. HTML, Logo, VHDL, Mathematica/MatLab, SQL
- General-Purpose Modeling Languages (GPLs)
- Can be applied to any sector or domain.
- e.g. UML, Petri-nets, state machines
- Note
- Can further categorise languages and resulting models based on the level of abstraction.
- Transformations can be defined for mapping between levels.
- Models may be static or dynamic
- Multi-viewpoint Modeling
- Crucial principle of MDSE
- Multiple models may define the same solution.
- "Models can be interconnected through cross-referencing the respective artifacts."
- Convenient to use Modeling Language Suites (or Family of Languages). E.g. UML
2.3.4 Metamodeling
- [Modeling the models]
- A Metamodel is an abstraction of a model or family of models.
- In practice meta-models can be defined based on themselves, and usually no further abstraction is required.
- Examples
- M0: (Casablanca Video) -> M1: Video Class -> M2: Definition of Class and Attribute -> M3: Common definition for Class and Attribute elements.
- ModelWare: aBank.uml -> UML -> MOF
- GrammarWare: aBank.java -> Java.g -> EBNF.g
2.3.5 Transformation
- [Modeling transformations]
- Transformation are defined at the metamodel level and then applied at the model level.
- Source Model -> Transformation -> Target Model
- Transformations
- Set of templates & rules
- Could operate as a
- manual operation, from scratch by a developer
- be defined as a refined specification of an existing one
- produced automatically out of a higher level mapping between models.
- "Transformations themselves can be seen as models"
2.4 Tool Support
- Lots of choice in every dimension.
2.4.1 Drawing Tools Vs Modeling Tools
- Modeling Tools != Drawing Tools
- Not all models need to be graphical models, some are textual.
- Advantages of using a modeling tool
- Apis (programming, file formats) are semantic-aware to ease import/export into other tools.
- Guaranteed minimum level of semantic meaning and model quality. Models must conform to the meta-model.
- Typically provides features for transformation.
2.4.2 Model-Based Vs Programming-Based
- Book advocates Model Based
2.4.3 Eclipse And EMF
- Book advocates Eclipse/EMF
2.5 Adoption and Criticism of MDSE
- Modeling frequently advocated but adoption does not match level of advocacy. This may be because of inflated expectations raised in the past.
- Commentators have positive views going forward, because
- New technologies & methods.
- Widening of the scope of the field.
- More pragmatic modeling approaches are being advocated.
- Maturation of de facto standard tools (e.g. EMF)
- With respect to the hype cycle, MDSE is past the "Trough of Disillusionment" and currently on the "Slope of Enlightenment".
- Main barriers to adoption are assessed as being human. In particular, as adoption of new tools or techniques usually incurs lower productivity, at first, before productivity gains kick in at a later stage.
- MDSE not a panacea. Beware of:
- Statements of pure principle.
- Placing modeling as a trade-off with respect to programming.
- diagrams being confused with models.
- inadequate level of detail (corresponding to reality) with regards to the purpose of the model.
- Perception of trade-off with regards to the executing system.
- [That if you have a hammer, everything may look like a nail.]
Comments
Post a Comment