CSC2125:
Modeling Methods, Tools and Techniques
Winter 2018
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
automatically generate implementations, deployments, and other artifacts.
MBSE has been successfully applied in several industries (automotive,
aeronautic, information systems), in defining software product lines and in system safety assurance (albeit often in an ad-hoc fashion).
This course will look at the state of the art of MBSE and its future research
directions.
Assumed Background
An
interest (and/or background) in the theory and practice of software
development. Some knowledge of software modelling (e.g., UML) and Eclipse
(specifically, EMF) is beneficial but not necessary.
List of Topics
Modelling
Notations
Modelling paradigms, domain-specific notations, meta-modelling, grammars,
semantics
Mega Models and Model
Management
Relationships
between models and megamodels, 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
Other
Topics
Models@Runtime, modeling and analyzing product lines, modeling of adaptive systems,
biological and cyberphysical systems, system safety and security, combining modeling and machine
learning.