SENG405

Model-Driven Software Engineering

15 points

Not offered 2024, offered in 2021, 2022, 2023

For further information see Computer Science and Software Engineering

Description

The purpose of this course is to introduce students to model-driven software engineering practices where models (e.g., software component or activity diagrams, state or flow charts,...) are not used as documentation and reasoning artefacts solely, but are first class products from which other modelling, simulation artefacts or executable source code can be produced. Students will first learn about appropriate methodologies and suitable tooling support for model-driven software engineering. Then, they will develop team work skills as software language engineers where they will create their own software language and implement a dedicated development environment. Last, they will conduct a scientifically-grounded empirical evaluation of a domain specific language framework developed by their peers. The course will use a mix of theoretical lectures (e.g., language engineering, model notations, knowledge management, ontologies) and practical labs (using e.g., Arduinos, testing frameworks) to put in practice both software language engineering and model-driven engineering techniques. The assignments will be executed in pairs and presented to the whole class. The final examination will be an open book exam.

Prerequisites