Software Architecture

Bertrand Meyer, Carlo A. Furia, Martin Nordio, Spring 2011

General

News

24.05.2011 — The slides for the lectures 16 and 17 are now available. The topics of the lecture next Monday (lecture 18) will not be covered in the exam.

17.05.2011 — The previously missing PSP slides have been added as lecture 6.3.

12.04.2011 — The testing group assignments have been added to the list of project groups.

28.03.2011 — There will be a guest lecture about testing in industry on Tuesday 5. April.

23.03.2011 — The lecture slides on Design Pattern and ADTs have been updated. Also, the slides on API design are now available.

15.03.2011 — The project description has been updated with the remaining milestones. The document templates for the future milestones have been added to the downloads section.

09.03.2011 — The lectures on 15.3 and 22.3 had to be switched due to a scheduling constraint of the lecturers.

08.03.2011 — There will be a guest lecture about model-based contracts next Tuesday, 15.3.11.

28.02.2011 — Preliminary list of project groups and assignment to exercise session is available. Project description extended with first milestone.

22.02.2011Project description available.

14.01.2011 — Web page goes live.

07.12.2010 — First preliminary version of web page.

Course description

252-0212-00 Software Architecture

The present form of the course covers both software architecture in a strict sense and an introduction to the non-programming aspects of software engineering.

Course Project

Library for relational database access.

The document templates are in the downloads section.

Literature

The following are the two recommended textbooks for the course:

It is also recommended that you use a good software engineering textbook, such as:

Additional reference on patterns:

References on UML:

Eiffel:

Exam

The exam will be written and will take place during the last lecture of the semester. No supplementary material is allowed except for dictionaries.

Previous Software Architecture exams are available here:

Warning: the course in years prior to 2010 had a narrower scope (software architecture only), with only 2 hours of lecture one 1 exercise hour, against the present 4 + 3 hours. As a consequence, exams before 2010 only give a partial view of what will be asked this year.

Forum

You can use the forum to ask course- and exercise-related questions. The assistants will do their best to answer your questions as soon as possible. Click here to access the forum!. The forum is maintained not by us but by the Informatics Students Association (VIS).

To reach the whole teaching staff (lecturers and assitants) you can write an email to se-soft-arch-assi@lists.inf.ethz.ch.

Downloads

SRS templates and example documents:

Eiffel related documents:

Document templates

Lecture

Schedule

Day Time Location
Monday 08:00-10:00 IFW A36
Tuesday 13:00-15:00 IFW A36

Slides

Note: in the PDF version of the slides animation is not retained and some slides can become unclear.

Date Lecture Title Slides
Mon. 21.2 1 Introduction to software engineering and software architecture (BM) Final version pdf
Tue. 22.02 2 Software engineering: the software process (BM) Final version pdf
Mon. 28.02 3.1 Software engineering: requirements (BM) Final version pdf
Tue. 01.03 3.2 Software engineering: requirements (BM)
Mon. 07.03 4.1 Architecture: design patterns (MN) Final version pdf (v 23.03)
Tue. 08.03 4.2 Architecture: design patterns (MN)
Mon. 14.03 4.3 Architecture: design patterns (CAF)
Tue. 15.03 5.2 Theory: abstract data types (BM) Final version pdf (v 23.03)
Mon. 21.03 5.1 Software engineering: object-oriented analysis (BM)
Tue. 22.03 4.4 Architecture: design patterns (CAF); API Design (Nadia) Final version pdf
Mon. 28.03 6.1 Architecture: designing reusable components (BM) Final version pdf
Tue. 29.03 6.2 Architecture: designing reusable components (BM)
Tue. 29.03 6.3 Software engineering: PSP (BM) Final version pdf
Mon. 04.04 7.1 Software engineering: testing (Jason) Final version pdf
Tue. 05.04 7.2 Software engineering: testing (Jason); Testing in industry (Ilinca Moser nee Ciupa)
Mon. 11.04 8 Software engineering: distributed software development (BM) Final version pdf
Tue. 12.04 9 Software engineering: configuration management (CAF) Final version pdf
Mon. 18.04 10 Software engineering: CMMI (Peter Kolb) Final version pdf 1 2 3
Tue. 19.04 11 Software engineering: agile methods (Michela Pedroni/Till Bay) Final version pdf
Easter break (25-26.04.11)
Mon. 02.05 12.1 Software engineering: metrics and estimation (BM) Final version pdf
Tue. 03.05 12.2 Software engineering: metrics and estimation (BM)
Mon. 09.05 13 Architecture: designing for concurrency (self-study; CAF)
Tue. 10.05 14 Architecture: designing for concurrency (BM) Final version pdf
Mon. 16.05 15 Architecture: architectural styles (BM) Final version pdf
Tue. 17.05 16 Design by Contract (BM) Final version pdf
Mon. 23.05 17.1 Supplementary topics: UML (Christian) Final version pdf
Tue. 24.05 17.2 Supplementary topics: UML (Christian)
Mon. 30.05 18 Introduction to Empirical Software Engineering (BM)
Tue. 31.05 Exam

Temporary version = Temporary version Final version = Final version

Exercises

Exercise Groups

Assistant Time and Place Language
Christian Estler German / English
Marco Piccioni English
Julian Tschannen Mon, 15:15-18:00, IFW B42 German / English
Yi Wei (Jason) Tue, 15:15-18:00, IFW A36 English
Yu Pei (Max) Mon, 15:15-18:00, IFW C33 English

Exercise session slides

Date Material
28.02.11 Introduction (use library.sql to create a database, mysql_demo as an Eiffel example) SVN MySQL library.sql mysql_demo
07.03.11 Requirements Requirements Specification Exercise Solution
14.03.11 Design Patterns (Overview of different patterns and the SRS deadline Reminder) Exercise Solution
21.03.11 Presentation (Students present SRS document) API design
28.03.11 Abstract Data Type Slides Map example Tic Tac Toe example
04.04.11 Testing FIT slides Exercise
11.04.11 Sechselaeuten / API Presentation
03.05.11 Code Review Slides Exercise
09.05.11 Java/SCOOP self study SCOOP material Java material
16.05.11 Exam questions Questions Solution

Valid XHTML 1.0 Strict