CSC2125: Modeling Methods, Tools and Techniques
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
interest and 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 paradigms, domain-specific notations, meta-modelling, grammars, semantics
Relationships between models, relating heterogeneous models, model operations (e.g., merge, composition, match, slice, diff)
Consistency and completeness, model simulation, constraint solving, model checking
Code generation, generative programming, model-to-model transformations, abstraction/refinement, model synthesis, model visualization
Runtime models, treatment of uncertainty, adaptation, biological systems, real-time and embedded systems