Home

Research

Professional
Activities


Publications

Teaching




Contact



Teaching


At Delft University of Technology, I teach a course on Software Architecture Reconstruction and Modelling (IN4076) for MSc students Computer Science (specialisation Software Engineering). The course is 6 ECTS and consists of lectures, student presentations/discussion and a 40 hrs lab assignment. It is given every year in the 2nd semester.

Goals

In this course, the participants learn techniques and methods for the recovery of the architecture of complex software systems. Furthermore, they learn how (recovered) software architectures can be used for system exploration, to improve program understanding, and to check a system's conformance to a reference architecture.

Topics

  • Need for evolution of large complex software systems;
  • What is software architecture: abstractions, styles, views;
  • Supporting program comprehension using reverse engineering and design recovery;
  • (Visual) representations of software systems;
  • The software architecture reconstruction process;
  • Techniques for source model extraction, manipulation and presentation;
  • Architectural analysis and conformance.

Labwork

The practical work involves a case study were participants reconstruct architectural views on a non-trivial software system (guinea pig) using semi-automated tools.

Last year's guinea pig was SDCC, the Small Device C Compiler compiler which was analysed using the Bauhaus toolset.

Course material

  • Software Architecture in Practice - Second edition by Len Bass, Paul Clements, and Rick Kazman, ISBN: 0-321-15495-9
  • Number of scientific papers (1 every week), overview is available from Blackboard and papers can be downloaded via the university's Digital Library subscription.
  • Recommended reading
    • Applied Software Architecture by Hofmeister, Nord & Soni, ISBN: 0-201-32571-3
    • Documenting Software Architectures: Views and Beyond by Clements, Bachmann, Bass, Garlan, Ivers, Little, Nord, Stafford, ISBN: 0-201-70372-6

Prerequisites

  • Software engineering (IN2110, IN2120, IN2100P),
  • Languages, grammars & (basic) compiler construction (IN1330/IN4020)

Leon Moonen
Leon.Moonen@computer.org
last modified: 20-Oct-08 10:05:56 CEST
url: http://www.simula.no/~leonm/teaching/index.shtml