CS 846  Model-Based Software Engineering
Winter 2012

Course Overview

Objectives

Model-based software engineering (MBSE) is an approach to software development in which software models play a primary and indispensible role.  MBSE allows developers to work and reason about software requirements, design, and correctness at higher levels of abstraction, and to generate automatically implementations, deployments, and other artifacts.  MBSE has been successfully applied in several industries (automotive, aeronautic, information systems), though typically in an ad hoc basis.  This course will look at the state of the art of MBSE and its future research directions.

Assumed Background

An interest and background in the theory and practice of software development.  Some knowledge of software modelling (e.g., UML) is beneficial but not necessary.

List of Topics

Modelling Notations
Modelling paradigms, domain-specific notations, meta-modelling, grammars, semantics

Model Management
Relationships between models, relating heterogeneous models, model operations (e.g., merge, composition, match, slice, diff)

Analysis and Verification
Consistency and completeness, model simulation, constraint solving, model checking

Model Transformations
Code generation, generative programming, model-to-model transformations, abstraction/refinement, model synthesis, model visualization