COMP30341: Model-Based Software Design (2007-2008)
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 underlyinh 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 EXPRESS modelling language
Model to implementation transformations
STEP transformations to API and file format; general transformations
MDSD flows and implementation of transformations
PIM; PSM; syntax: abstract and concrete, types of transformations: model 2 text (m2t), model 2 model (m2m) and text 2 model (t2m); meta-models and meta-meta-models
Functional modelling; separation of concerns modelling; model weaving (APO); examples from web domain
EXPRESS modelling paradigm; STEP implementation of EXPRESS; transfer formats; API definitions; introduction of idea that model needs meta-modelling notation; model manipulation
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: MDA explained: the model-driven architecture: practice and promise
Author: Kleppe, Anneke, Jos Warmer and Wim Bast
Title: Using UML
Author: Perdita Stevens
Title: Object Constraint Language: getting your models ready for MDA
Author: Warmer, Jos and Anneke Kleppe
Title: Model-driven architecture: applying MDA to Enterprise Computing
Author: Frankel, David S.
Title: Code Generation in action
Author: Herrington, Jack
Title: Eclipse Modeling Framework
Author: Frank Budinsky, et.al.