COMP30341: Model-Based Software Design (2008-2009)
This course unit introduces advanced uses of models, like UML class diagrams, in the software development process. The goal is to use models as first class objects from which implementation code is generated, rather than just documentation of what should be developed.
The aims of this course unit are to show how the use of models can reduce the effort to implement large complex systems, and to show how the use of abstract models can isolate true design information from the details of an implementation, so making it easier to migrate software when the underlying target platform changes.
On completion of this course a student should
Be able to understand and solve problems associated with the construction and maintenance of large computer systems for major industries such as aerospace, automotive, computer systems and construction. (A3, A5, B2, B3)
Have knowledge and understanding of the contrasting properties of behavioural and information modelling techniques. (A2)
Have knowledge and understanding of the implementation characteristics of common information storage, communication and access methodologies. This includes the use of both relational and object oriented databases, XML and the interfaces to these mechanisms. (A2,A3,A5)
Have knowledge and understanding of activity modelling using IDEF0 and information modelling, using IDEF1x, and EXPRESS. (A2,A4)
Be able to create simple information models using EXPRESS. (B1,B3,C3,D3)
Be able to analyse and plan model transformations to implement conceptual models (A2,A5,B1,B3).
Assessment of Learning outcomesLearning outcomes 1-4, 6 are assessed by examination.
Learning outcomes 5 and 6 are assessed through practical assignment.
Contribution to Programme Learning OutcomesA2, A3, A4, A5, B1, B2, B3, C2, C3, D3
What is model-based software design? What are its advantages? Uses cases.
features and styles of modelling paradigms; domain models; the Emfatic modelling language and OCL
STEP transformations to API and file format; general transformations
MDSD flows and implementation of transformations
PIM; PSM; syntax: abstract and concrete, types of transformations
Text-to-Model (t2m) Transformations
domain specific languages and their implementation
Model-to-Model (m2m) Transformations
introduction, ATL, QVT
Model-to-Text (m2t) Transformations
JET, MOFScript, xPand, templates, control
Modelling Levels and Mappings
meta-models and meta-meta-models
Functional modelling; separation of concerns modelling; model weaving (APO); examples from web domain
What else is there?
Core TextTitle: Model-driven software development: technology, engineering, management
Author: Stahl, Thomas and Markus Volter (and others)
A good background read on model-driven engineering that includes an indication of its pragmatic use in application development.
Title: Eclipse Modeling Framework
Author: Frank Budinsky, et.al.
A dated reference that does not include all of the tooling currently available. It provides a more detailed description of tools than required for this course unit.
Title: Object Constraint Language: getting your models ready for MDA
Author: Warmer, Jos and Anneke Kleppe
A reference text for some aspects of the practical exercises, not worth buying just for this course unit.
Title: Model-driven architecture: applying MDA to Enterprise Computing
Author: Frankel, David S.
A reasonable background text. Now slightly dated and biased towards OMG's MDA view of model-based development.
Title: MDA explained: the model-driven architecture: practice and promise
Author: Kleppe, Anneke, Jos Warmer and Wim Bast
Gives a overview of the ways in which models and transformations can be used.
Title: Code Generation in action
Author: Herrington, Jack
Provides some background on the code-generation aspects of the course unit.