Beyond Code: An Introduction to Model-Driven Software Development (CISC 836, Winter 2020)
Detailed course content
These are the webpages for last year's version (Winter 2020) of the course. For this year's version (Winter 2021),
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.
- The deliverables are:
- a 2-page project proposal,
- a presentation (possibly including a demo) of the complete project, and
- a 5- to 10-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 development (MDD)
- Modeling languages
- MDD for real-time, embedded systems
- Code generation from models
- Domain-specific languages (DSLs)
- defining DSLs
- abstract: grammars vs metamodels, metamodel languages (MOF, ECore)
- concrete: textual, graphical
- serialization (XML)
- semantics: translational
- model transformation with Xtend
- tools: Xtext