VVZ API is not affiliated with ETH Zurich. Data might be outdated or incorrect. Please view the official ETHZ Vorlesungsverzeichnis for binding information.
Software architecture
Software Architecture
Last Updated: 2026-02-05 15:10:08
Abstract
Introduction to the techniques of software engineering, object-oriented software construction, and high-level design. See Web page for details.
Objective
Students will acquire an understanding of some of the key techniques of software engineering and the issues of building large, complex software systems.
Content
Software architecture addresses the overall organization of software systems and the techniques that make the development of large systems possible. Not all programming techniques that work on small programs can "scale up"; this course explores some that do. It focuses particularly on six themes: - Advanced object oriented techniques, including: the theory of abstract data types, generic programming, the proper use of inheritance, Design by Contract. - Design patterns. - Software engineering techniques for concurrent, distributed and multi- threaded programming. - Component-based development, in particular the .NET component model and multi-language programming. - Software validation and verification, in particular testing. - Software engineering of large systems: lifecycle models, cost and reliability models, software metrics, project management.
Resources
Literature
Bertrand Meyer: Object-Oriented Software Construction, 2nd edition, Prentice Hall 1997. Erich Gamma et al.: Design Patterns, Addison-Wesley, 1994
General Information
- Language
- English
- Frequency
- Yearly recurring
Examination
- Type
- end-of-semester examination
Course Components
| Type | Title | Time & Place | Hours |
|---|---|---|---|
| lecture | Software Architecture |
|
2 h weekly |
| exercise | Software Architecture |
|
1 h weekly |