Module Code - Title:
CS4101
-
INTRODUCTION TO MODEL-DRIVEN DEVELOPMENT
Year Last Offered:
2024/5
Hours Per Week:
Grading Type:
N
Prerequisite Modules:
Rationale and Purpose of the Module:
This module aims to introduce students to the field of model-driven software development, that is, to techniques that simplify development by allowing applications to be created by constructing models (like e.g. UML Activity Diagrams, Process Models, or Simulink state transition diagrams) rather than by direct coding in conventional programming languages (like e.g. Java, C++, or Python). Its objectives are to give students an appreciation of the use and impact of models in software design, development, analysis, testing quality assurance, compliance, and maintenance. The module furthermore introduces them to tools that support (parts of) the model-driven development process.
Syllabus:
Software development is much more than coding. Analysis of the software development process and which activities are involved.
What is a model? model criteria: mapping criterion, reduction criterion, pragmatic criterion; models versus real systems; abstraction and similarity; iconic, analogic and symbolic models; static and dynamic models; descriptive and prescriptive models; metaphor as a special type of model; purposes of models;
The role of models in software development; use of descriptive and prescriptive models; risks associated with model usage; formal approach to building models; problem conceptualization; collection and examination of data; model structure, content and layout; development and use of macros; model validation and documentation; developing model templates.
Concrete examples of software models and tools used in model-driven development. Executable models: interpretation and code generation. Design-time validation and verification.
Learning Outcomes:
Cognitive (Knowledge, Understanding, Application, Analysis, Evaluation, Synthesis)
On successful completion of this module, students will be able to:
1. Describe models and in particular various types of software model artifacts and their purpose;
2. Describe and analyse the role(s) of models in software development;
3. Analyse, validate and verify software models;
4. Design simple software models;
5. Understand the MDD process and the relationship between models and code;
6. Work with some basic forms of software models;
7. Use specific software to develop (executable) software models;
Affective (Attitudes and Values)
N/A
Psychomotor (Physical Skills)
N/A
How the Module will be Taught and what will be the Learning Experiences of the Students:
Prime Texts:
Thomas Stahl, and Marcus Volter (2006)
Model-Driven Software Development: Technology, Engineering, Management (1st ed.)
, Wiley
Other Relevant Texts:
Marco Brambilla, Jordi Cabot, and Manuel Wimmer (2012)
Model-Driven Software Engineering in Practice (1st ed.)
, Morgan & Claypool Publishers.
Martina Seidl, Marion Scholz, Christian Huemer, and Gerti Kappel (2015)
UML@Classroom - An Introduction to Object-Oriented Modelling (1st ed.)
, Springer
Programme(s) in which this Module is Offered:
BACHELOR OF SCIENCE IN COMPUTING TECHNOLOGIES
HIGHER DIPLOMA IN SOFTWARE DEVELOPMENT
Semester(s) Module is Offered:
Autumn
Module Leader:
Michael.English@ul.ie