Course: | (Fall Semester 2020) |
Lecturers: | Oscar Nierstrasz |
Assistants: | Pascal Gadient, 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 |
NB: Due to Covid-19, this class will largely be held remotely. Please sign up in Piazza as soon as possible so that we can inform you about how to participate in the lectures. In case of any encounters in person, please be sure to bring a mask, as there may not be enough room to maintain social distancing.
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.
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.
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) |
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 | |
14 | EXAM |