SMA: Software Modeling and Analysis

SDE web image

Course:(Fall Semester 2018)
Lecturers:Oscar Nierstrasz
Assistants:Pascal Gadient, Pooja Rani
Lectures:Wednesdays @ 10h15-12h00
Exercises:Wednesdays @ 12h00-13h00
Place:Engehaldestrasse 8, 003
Exam:2018-12-19 (written, 90 minutes)
Repetition:Fall Semester 2020


Real software systems continuously evolve over time. As they evolve, they become harder to understand and maintain. In this course we will explore techniques to model complex software systems and analyze them to support program comprehension and reengineering tasks. Most lectures will combine theoretical background and practical application of tools and techniques. A portion of this course will make heavy use of Smalltalk, a live programming environment that supports advanced reflection metaprogramming techniques. Some material is based on two open‐source textbooks: Pharo by Example, and Object-Oriented Reengineering Patterns.

Learning Outcomes

After the successful completion of this course, you will:

  • recognize the problems of legacy software
  • use reflection and metaprogramming techniques
  • extract software models from source code and other artifacts
  • apply software metrics to detect quality problems
  • visualize software to support program comprehension
  • apply basic static and dynamic analysis techniques

Schedule 2018

Week Date Lecture
1 19-Sep-18 Introduction to Software Modeling and Analysis
2 26-Sep-18 Smalltalk: A Reflective Language and System
3 3-Oct-18 Understanding Classes and Metaclasses
4 10-Oct-18 Reflection and Metaprogramming
5 17-Oct-18 Moldable Software Exploration (Tudor Girba)
6 24-Oct-18 Software Metrics and Problem Detection; Moose (Andrei Chiş)
7 31-Oct-18 Socio-technical Aspects in Software Systems (Alberto Bacchelli)
8 7-Nov-18 Static Program Analysis / Soot
9 14-Nov-18 Software Visualization (Leonel Merino)
10 21-Nov-18 Bug prediction (Haidar Osman)
11 28-Nov-18 Software Data Analytics (Nevena Lazarević)
12 5-Dec-18 Code/test smells (Fabio Palomba)
13 12-Dec-18 Data Engineering (Pietari Kettunen)
14 19-Dec-18 Final exam (NB: Room E8-001)


PLEASE READ THIS FIRST! - How to submit your solutions

Week Assignment PDF Solution PDF Practical Session PDF
01 A01 S01 P01
02 A02 S02 P02
03 A03 S03 P03
04 A04 S04 P04
05 A05 S05 P05
06 A06 S06 P06
07 A07 S07 P07
08 A08 S08 P08
09 A09 S09 P09
10 A10 S10 P10
11 A11 S11 P11
12 A12 S12 P12

(you will find the organizational details in the last few slides)

Last changed by admin on 21 April 2009