Modelling and Simulation Based Design (COMP 762B)

Modelling and Simulation Based Design (COMP 762B)
Winter Term 2004

The course

Goals

The purpose of this course is to look at the State of The Art in Modelling and Simulation on the one hand and Software (and to a far lesser extent Hardware) Design on the other hand. The goal is to get some insight into the development of truly complex systems. The focus will be on the use of multiple modelling formalisms and their interrelationships to study and design such complex systems. We will study meta-modelling extensively in this context. In the software realm, we will study the recent evolutions of the Unified Modelling Language (UML) and how the UML fits in the broader context of multi-paradigm modelling and simulation.

Method and Evaluation

The course will study research publications in the literature. You should be capable of independent, critical reading. Students will be expected to give two presentations, and to evaluate the other presentations.
The presentations should be prepared in an electronic form that can be used to create an online resource. The first presentation reviews work from the literature. The second presentation presents the result of a small research project which builds on the material you have studied.
You will be evaluated on your presentation, your presentation evaluations (how well you understood other presentations), and your project.

You must also attend a few interesting seminars given by invited researchers. You are required to attend these talks and write a one-page summary (due the next class) of what you've learned from the talk. A small fraction of your grade will be given for your attendance and written summary.

You will also be graded on your work during in-class tutorials (building for example a small modelling environment using meta-modelling and graph rewriting).

Warning: you will have to learn Python on your own and use the AToM3 meta-modelling tool.

Grading Scheme

Part Weight
seminar 1/2-page reports (2x) 5
class participation (including hands-on sessions) 10
feedback (in-class and written) on presentations 5
literature review + presentation 35
research project + presentation 45

Topics

Have a look at the big picture (scribbles on the board in class) showing the links between the various subjects.

Candidate subjects (you're welcome to suggest your own though !) are given here.
You must choose a topic by Wednesday 14 January !

Announcements

Wednesday 17 March at 10:40 (in-class) Presentation by Alison Stewart on her DCharts model (and simulation) of the Observer Pattern. The presentation as well as all the models are available from Alison's website.

Tuesday 16 March at 10:00 Talk by Dr. Joel Ouaknine from CMU on Verifying Functional Specifications of Real-time Systems. The talk presents an approach to verifying concurrent software (in particular, C programs that communicate via synchronous message passing) against functional specifications.

Monday 23 and Wednesday 25 February: no class (spring break).

Monday 16 February at 10:00 Talk (replacing class) by Benjamin Liblit from UC Berkeley on Cooperative Bug Isolation. The talk introduces statistical debugging which combines statistical modeling, machine learning, and program analysis to identify program behaviors that are highly predictive of program failure. [presentation (ppt)].

Monday 9 February at 10:00 class will be "hands on" model transformation using graph rewriting in AToM3 in the MC 110 graduate computer lab.

Wednesday 4 February at 10:00 class will be "hands on" meta-modelling in AToM3 in the MC 110 graduate computer lab.

Tuesday 27 January at 10:00 Talk by Dr. Martin Robillard from the University of British Columbia on Representing the Implementation of High-level Concerns Software Systems. The talk presents a model, technique, and tool to help software engineers find, understand, and document how high-level concerns are implemented in a system.

Friday 9 January at 10:00 Talk by Dr. Christoph Kirsch from UC Berkeley on Real-Time Programming Based on Schedule-Carrying Code. The talk discusses how models of (controller) behaviour can be mapped onto real-time embedded code. [presentation (pdf)].

Presentations

Presentation evaluation form [pdf] [txt].

Date Presenter Reading subject Talk
Wednesday 18 February Marc Provost Graph Transformation [pdf]
Monday 1 March Aaron Shui Meta-modelling (UML) [pdf]
Monday 1 March Sokhom Pheng Petri Net analysis [pdf]
Wednesday 3 March He Wei Model Driven Architecture [pdf]
Wednesday 3 March Chen Tang Refactoring (by means of Graph Rewriting) [pdf]
Monday 8 March Riandi Wiguna Play-in/Play-out [pdf]
Monday 8 March WeiBin Liang UML 2.0 Statecharts [pdf]
Wednesday 10 March Xia Shengjie Graph Rewriting (Sequence Diagrams, Collaboration Diagrams) [pdf]
Wednesday 10 March Victoria Yang Consistency [pdf]
Date Presenter Project subject Talk
Monday 29 March Marc Provost Graph Transformation kernel [pdf]
Friday 2 April Aaron Shui Implementing Meta-modelling: a meta-checker for PyGK [pdf]
Friday 2 April Sokhom Pheng Petri Net analysis (conserved properties) [pdf]
Monday 5 April He Wei Model Driven Architecture: MDA transformations by graph rewriting [pdf]
Monday 5 April Chen Tang Refactoring (by means of Graph Rewriting), some cases [pdf]
Wednesday 7 April Xia Shengjie Graph Rewriting Sequence Diagrams into Collaboration Diagrams [pdf]
Wednesday 7 April WeiBin Liang Statechart model/simulation/implementation of a wristwatch [pdf]
Tuesday 13 April Riandi Wiguna Play-in/Play-out: transforming LSC into Statecharts [pdf]
Tuesday 13 April Victoria Yang Consistency Checking using Graph Rewriting [pdf]

Resources

The Unified Modeling Language UML (and its consistency problems)

Statecharts and beyond

Multi-Paradigm Modelling

Meta-modelling

Graph Transformation

Meta-modelling and Graph Transformation in AToM3

Model Driven Architecture

Refactoring

Miscellaneous interesting links