Software Modeling and Analysis

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
Type: 
Course
Semester: 
A2016
ECTS: 
5
Site: 
B
Code: 
21045
Language: 
english
Period: 
weekly
Schedule: 
Wednesday: 10:15 - 13:00
Location: 
UniBE, Engehaldenstrasse 8
Room: 
003
Evaluation type: 
written exam
Comment: 

First Lecture
The first lecture will take place on Wednesday, 21.09.2016 at 10:15 in UniBE, Engehaldenstrasse 8, room 003.

ILIAS
The course page in ILIAS can be found at https://ilias.unibe.ch/goto_ilias3_unibe_crs_1006956.html.