Beyond Code: An Introduction to Model-Driven Software Development (CISC 844, Winter 2023)
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, be prepared to give a short summary, and participate in the class discussion.
- Each paper will have 1 or 2 discussion leaders assigned to them (number depends on enrollment). 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 course will cover the following topics:
- Modeling, abstraction and automation in engineering and software development
- Specifying software structure and behaviour:
- UML: class diagrams, object diagrams, composite structure diagrams, sequence diagrams, state machines
- UML-RT: capsules, ports, parts, protocols, state machines, action code; formal semantics
- The actor model and its relevance for modern software system development
- Developing reactive systems with UML-RT and HCL RTist: design, validation, code generation, build, testing, debugging, best practices, (anti-)patterns
- Using the Eclipse Modeling Framework (EMF) for developing applications based on structured data models
- Specifying domain specific languages (DSLs)
- Syntax: concrete syntax, abstract syntax, grammars, metamodels, serialization, constraints
- Semantics: operational, translational
- Using Xtext for the development of DSLs
- Case studies: Applications of MDSD techniques and tools to address software engineering challenges in different domains
Last modified: Thu Dec 15 20:14:04 EST 2022