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.2011 — Project 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:
- Bertrand Meyer: Object-Oriented Software Construction, Second Edition, Prentice Hall 1997, ISBN 0-13-629155-4
- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides: Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley 1995, ISBN 0201634988
It is also recommended that you use a good software engineering textbook, such as:
- Ghezzi, Jazayeri, Mandrioli: Fundamentals of Software Engineering
- Pfleeger and Atlee: Software Engineering: Theory and Practice
- Pressman: Software Engineering: A Practitioner's approach
Additional reference on patterns:
- Karine Arnout: From Patterns to Components, Ph.D. thesis 2004.
References on UML:
- James Rumbaugh, Ivar Jacobson, Grady Booch: The Unified Modeling Language Reference Manual. Addison-Wesley Professional, ISBN 978-0321245625
- Grady Booch, James Rumbaugh, Ivar Jacobson: The Unified Modeling Language User Guide. Addison-Wesley Professional, ISBN 978-0201571684
- Martin Fowler: UML Distilled. A Brief Guide to the Standard Object Modeling Language. Addison-Wesley Professional, ISBN 978-0321193681
- A web service for generating UML sequence diagrams
Eiffel:
- Eiffel Tutorial from Eiffel Software.
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:
- SRS template with description per section
- SRS tempalte as PDF and DOC
- Example SRS 1
- Example SRS 2
- Example SRS 3
Eiffel related documents:
- Do it with style (summary of style guidelines for Eiffel)
- Eiffel introduction
- Eiffel syntax description in BNF-E (extract from "Eiffel: the language")
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) | |
Tue. 22.02 | 2 | Software engineering: the software process (BM) | |
Mon. 28.02 | 3.1 | Software engineering: requirements (BM) | |
Tue. 01.03 | 3.2 | Software engineering: requirements (BM) | |
Mon. 07.03 | 4.1 | Architecture: design patterns (MN) | 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) | 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) | |
Mon. 28.03 | 6.1 | Architecture: designing reusable components (BM) | |
Tue. 29.03 | 6.2 | Architecture: designing reusable components (BM) | |
Tue. 29.03 | 6.3 | Software engineering: PSP (BM) | |
Mon. 04.04 | 7.1 | Software engineering: testing (Jason) | |
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) | |
Tue. 12.04 | 9 | Software engineering: configuration management (CAF) | |
Mon. 18.04 | 10 | Software engineering: CMMI (Peter Kolb) | pdf 1 2 3 |
Tue. 19.04 | 11 | Software engineering: agile methods (Michela Pedroni/Till Bay) | |
Easter break (25-26.04.11) | |||
Mon. 02.05 | 12.1 | Software engineering: metrics and estimation (BM) | |
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) | |
Mon. 16.05 | 15 | Architecture: architectural styles (BM) | |
Tue. 17.05 | 16 | Design by Contract (BM) | |
Mon. 23.05 | 17.1 | Supplementary topics: UML (Christian) | |
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 = 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 |