Queen's Logo

Beyond Code: An Introduction to Model-Driven Software Development (CISC 844, Winter 2023)

Detailed course content

[Home] [Content] [Schedule] [Projects]

Course structure

The course will consist of 3 parts:
  1. Lectures accompanied by 4 assignments.
  2. 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.
  3. 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:
  1. Modeling, abstraction and automation in engineering and software development
  2. Specifying software structure and behaviour:
    1. UML: class diagrams, object diagrams, composite structure diagrams, sequence diagrams, state machines
    2. UML-RT: capsules, ports, parts, protocols, state machines, action code; formal semantics
  3. The actor model and its relevance for modern software system development
  4. Developing reactive systems with UML-RT and HCL RTist: design, validation, code generation, build, testing, debugging, best practices, (anti-)patterns
  5. Using the Eclipse Modeling Framework (EMF) for developing applications based on structured data models
  6. Specifying domain specific languages (DSLs)
    1. Syntax: concrete syntax, abstract syntax, grammars, metamodels, serialization, constraints
    2. Semantics: operational, translational
  7. Using Xtext for the development of DSLs
  8. 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