Software Specification and Architecture

Course code: 2IW80


Time and location:

Instructor/supervisorInstruction locationGroup meeting location
Anton WijsFlux 1.03MF 5.144
Kees HuizingFlux 1.09MF 5.145
Sarmen KeshishzadehFlux 1.11MF 5.146

Target audience:

Background information on the course:
Method for software specification consisting of the description of data, functionality, and behaviour. In this course we study a number of specification techniques including, e.g., UML class diagrams and Event-B. Using these specifications we discuss how architecture of a software system can be constructed. A number of important approaches to software architecture are discussed. The possibilities and constraints of these approaches are investigated, resulting in guidelines for their application.

Prerequisites: Basic knowledge of object-oriented programming, notions of object, class, instance variable, instance method, inheritance, overriding, polymorphism, interface (as is treated in courses like e.g. 2IP90, 2IPG0 and 2IS60). Basic knowledge of first-order logic (as is treated in e.g. 2IT60).

Learning objectives:

After completing this course, you will be expected to be able to

Literature Numerous books have been published on UML, formal specification techniques and software architecture. While information available on the slides should be sufficient to complete the course successfully, you might consider consulting the following documents to deepen your knowledge:


The final grade will be determined based on two partial grades obtained for 2IW81 (Final exam Software specification and architecture) and 2IW82 (Assignments Software specification and architecture). 2IW81 and 2IW82 contribute equally to the final grade.

Determining the final grade
We follow the Bachelor College rules (Dutch)

2IW81 (Final exam Software specification and architecture)
The final exam will take place on April 14, 2015, 9:00-12:00. The resit will take place on June 23, 2015, 18:00-21:00.
Example exam: April 2014. Answers to the multiple choice questions, example solutions for modeling exercises.
Example exam: April 2015 (with solutions).

2IW82 (Assignments Software specification and architecture)
The assignments will be made available on Peach. You can access Peach with your usual university login. Please do not forget to join "2IW80 Software Specification and Architecture".
Keep in mind that the deadlines are strict and no late submissions will be accepted (either by Peach or by me).

The grade for 2IW82 is determined as 0.1 * H + 0.15 * R + 0.25 * (S + PRC1) + 0.5 * (A + PRC2), where


The list of lectures and topics is subject to change. Powerpoint presentations will be made available after the class.
AUD 2Feb 3Introduction. Requirements.
AUD 4Feb 5UML Use Cases.
AUD 2Feb 10UML Activity Diagrams and State Machines.
AUD 4Feb 12UML Class Diagrams.
AUD 2Feb 17No class. Carnaval.
AUD 4Feb 19No class. Carnaval.
AUD 2Feb 24UML Package Diagrams, Component Diagrams and Deployment Diagrams.
AUD 4Feb 26UML Sequence Diagrams and Timing Diagrams
AUD 2Mar 3Guest lecture by Ulyana Tikhonova. Formal specifications: Event-B and UML-B (the filesystem example)
AUD 4Mar 5Ulyana Tikhonova. Exercise session on Event-B and UML-B
AUD 2Mar 10Introduction to Software Architecture.
AUD 4Mar 12Domain-Specific Software Architectures and Architecture Patterns.
AUD 2Mar 17Architecture Styles I.
AUD 4Mar 19Architecture Styles II. Advanced Topics: Architecture Description Languages, Architecture Evolution.
AUD 2Mar 24Guest lecture by Yanja Dajsuren. Automotive Software Architecture.
AUD 4Mar 26Recapitulation session.
March 31Catch-up week. No class.
Apr 2Catch-up week. No class.