CISC836: Models in software development: methods, techniques, and tools (Fall 2009)
Detailed course content
[
Home
] [
Content
] [
Schedule
] [
Readings
] [
Assignments
] [
Projects
]
Topics to be covered
The lectures will cover the following topics:
Introduction, motivation and overview
What is a model?
observations, key concepts, examples, activities on models
Use of models in software engineering
characteristics of good models
model-driven development (MDD)
examples
Expressing software models
examples of modeling languages
UML, Alloy, Promela, Kiltera, Petri nets
domain-specific languages (DSLs)
examples: UML-RT
defining DSLs
syntax: abstract syntax, concrete syntax, serialization syntax
semantics: denotational semantics, translational, operational
using UML: semantic variation points, profiles, meta model extensions, examples
tools
Analysis of software models
for all models:
well-formedness checking, consistency checking, property checking, "what if" and tradeoff analysis
for models of behaviour
for logic-based notations: satisfiability solving, (automated) theorem proving, rewriting, examples
for process-algebra-based notations: bi-simulation, state space exploration, discrete-event simulation, examples
for state/automata-based notations: state space exploration, automata-based model checking
Transformation of software models
classification
model-to-text (M2T), model-to-model (M2M)
Query-View-Transformation standard (QVT)
code generation
MDD in practise
Eclipse and Eclipse modeling projects: UML2, EMF, GMF
case studies