SMA: Software Modeling and Analysis

SDE web image

Course: (Fall Semester 2020)
Lecturers: Oscar Nierstrasz
Assistants: Pascal Gadient PhD, Pooja Rani
Lectures: Wednesdays @ 10h15-12h00
Exercises: Wednesdays @ 12h00-13h00
Place: Engehaldestrasse 8, 003 (see Logistics below)
Start: 2020-09-16
Exam: 2020-12-16 (written, 60 minutes, remote)
Repetition: Fall Semester 2020


/download/oorp/pictures/oorp-small.jpg/download/pharobyexample/pbe-small.jpgReal 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:


The final grade will be based 30% on the weekly assignments and 70% on the final exam.

Schedule 2020

Please click on the lecture title to view the podcast.

Week Date Lecture
1 16-Sep-20 Introduction to Software Modeling and Analysis
2 23-Sep-20 Smalltalk: A Reflective Language and System and Demo
3 30-Sep-20 Understanding Classes and Metaclasses
4 7-Oct-20 Reflection and Metaprogramming
5 14-Oct-20 Moldable Development (Tudor Girba)
6 21-Oct-20 Software Visualization (Leonel Merino)
7 28-Oct-20 Software Metrics and Problem Detection (ON)
Moldable Analysis with with Glamorous Toolkit (Andrei ChiƟ)
8 4-Nov-20 Code and Test Smells (Fabio Palomba)
9 11-Nov-20 Static Program Analysis
Dead Code Detection Demo
10 18-Nov-20 Dynamic Program Analysis (Nataliia Stulova)
11 25-Nov-20 Analyzing Code Comments (Pooja Rani)
12 2-Dec-20 Fuzz Testing (Reza Hazhirpasand)
13 9-Dec-20 Socio-technical Aspects in Software Systems (Alberto Bacchelli)
14 16-Dec-20 Final Exam (Location: Zoom)

Weekly assignments

PLEASE READ THIS FIRST! - How to submit your solutions

Week Practical Session PDF Assignment PDF Solution PDF
01 P01 A01 S01
02 P02 A02 S02
03 P03 A03 S03
04 P04 A04 S04
05 P05 A05 S05
06 P06 A06 + Tutorial S06
07 P07 A07 S07
08 P08 A08 S08
09 P09 A09 S09
10 P10 A10 S10
11 P11 A11 S11
12 P12 A12 S12
13 Q&A / EXAM PREPARATION A13 (bonus) S13