Beyond Code: An Introduction to Model-Driven Software Development (CISC 836, Winter 2021)
Detailed course content
The course will consist of 3 parts:
Lectures accompanied by 4 assignments.
Discussion of research papers:
Each student is expected to read the assigned papers, prepare a short summary, and participate in the class discussion.
Each paper will have 2-3 discussion leaders assigned to them. Every student is expected to lead the discussion of at least one paper.
Student projects with presentations:
Each student is expected to work on a project.
Group projects with up to 2 students are allowed.
The deliverables are:
a 2-page project proposal,
a presentation (possibly including a demo) of the complete project, and
a 5-page final project report.
Topics to be covered
The lecture part of the course will cover the following topics:
Introduction, motivation and overview
What is a model?
General observations, key concepts, examples, activities on models
Models in software engineering
characteristics of good models
model-driven software development (MDSD)
General purpose modeling languages
MDSD for real-time, embedded systems
tools: IBM RSA-RTE
Code generation from models
The actor model
Domain-specific languages (DSLs)
abstract: grammars vs metamodels, metamodel languages (MOF, ECore)
concrete: textual, graphical
model transformation with Xtend