News: Next instance of this course in spring 2012
Contents
This course covers the following specific topics in software engineering:
- software architecture and design
- architectural patterns and styles
- model-driven software development
- aspect-oriented programming
- problem frames
- software processes including agile methods
- software reuse
- further selected topics
Organization
| Professors: | Prof. Dr. Harald Gall, Prof. Dr. Martin Glinz |
| Assistant: | |
| Schedule: | Wed, 9.00-12.00 Uhr, BIN 1.D.07 |
| Language: | English |
| AP (ECTS): | 6 |
| Target audience: | Students in MSc Informatik |
| Requirements: | MSc Informatik: Master-Basismodul Software Engineering, Programming, Distributed Systems |
| Registration: | UZH Buchungstool |
| VVZ: | organizational details in VVZ |
Learning Goals
Students shall be able to understand and apply advanced methods, techniques and processes in software engineering.
Timetable
The listed topics are not exclusive and can change during the semester. The slides will be updated on a week by week basis.
| Date | Topic | Documents |
| Wed 24.02.2010 | Kickoff and introduction | |
| Wed 03.03.2010 | Software Architecture: Definition & Styles | Slides Ref. [1,2] |
| Wed 10.03.2010 | Patterns of Software Architecture | Slides Ref. [3,4] |
| Wed 17.03.2010 | Canceled; compensatory homework: C4-Customer Care System Architecture |
|
| MSA Architecture Description | Slides about ACME Chapter 6a, Chapter 6b and Chapter 7 in [23] Ref. [11,12,13] |
|
| Architecture Analysis | Folien zu ATAM | |
| Wed 24.03.2010 | Case Study: C4 Architecture Assignment Specification |
Discussion of case study Presentation of students' solutions (annotated slides) |
| Wed 31.03.2010 | Design Heuristics | Slides Slides MWuersch Ref. [15] Excercise/Case Study |
| Wed 07.04.2010 | Osterferien - no lecture | |
| Wed 14.04.2010 | Agile Software Development | Reading List on Agile Development |
| Wed 21.04.2010 | Aspect-Oriented Programming (AOP) | Slides |
| Wed 28.04.2010 | Design by Contract Software Metrics |
Slides |
| Wed 05.05.2010 | Canceled due to ICSE 2010 conference participation; compensatory homework: Software Reuse & Reuse Economics |
Slides on Reuse Economics Ref. [18-21] |
| Wed 12.05.2010 | Problem Solving, Problem Frames | Reading List |
| Wed 19.05.2010 | Guest speaker (10.00-12.00) Prof. Dr. Peter Müller, ETH Spec# and Contracts |
slides Ref [24] Paper on Spec# |
| Wed 26.05.2010 | Guest speaker Ulrich Brawand, Zühlke Model-Driven Software Development |
MDSD Introduction MDSD_UNI-ZH_10-05-26.pdf (updated!) MDSD-oaw4.3.1 Topcased.zip |
| 23. & 24.6.2010 | Oral exams | Schedule see below |
Case Study - Design Heuristics
To become familiar with object-oriented design heuristics, the students are asked to work in groups of two on the following tasks for 2-3 given design heuristics:
- Discussion: Describe the heuristic above in your own words. Outline why and when one should follow these rule of thumb; and whether there are some exceptions where the heuristic does not apply.
- Conflicting Heuristic(s): In many cases, two heuristics will be at odds with one and another in a particular area of an object-oriented design. Report any heuristics that are in conflict with the one given above and discuss possible trade-offs.
- (Automated) Detection Strategy: Given an object-oriented system, how can a maintainer detect a violation of the heuristic? Is it possible to automatically search for them within a given code base? Provide a textual description of steps that developers/maintainers can follow to detect such violations in their programs.
- Optional: Implement a small Eclipse plug-in that (semi-)automates these steps. For that you can leverage the Eclipse Java development tools or existing plug-ins, such as the Eclipse metrics plug-in.
- Design Violations in the Wild: Try out your detection strategy to find potential violations of the heuristic above in real source code. You can either use your own code from the Software Praktikum (or download Cuba instead) or check-out an open-source application. Examples: ArgoUML, Azureus/Vuze.
- Refactoring by Example: Use one of the candidates found during the previous step to explain how violations of the design heuristic above could be resolved. Provide a general description, as well a concrete refactoring.
The students are asked to submit their solutions to wuersch(at)ifi.uzh.ch until April, 14. Submissions are taken into account for final grading.
Format
This course offers a mixture of lectures, discussions, and case studies. This allows the students to actively learn during the lecture and in preparation before and after the lecture based on concrete examples.
Topics will be introduced by presentations triggering the essence of the area. The deepening then is done by reading scientific papers and book chapters. A discussion based on examples or case studies completes specific topics.
Exam
- Written exam, presumably Wednesday, 16 June 2010 at 10.15 h.
- In case of only few participants, there will be an oral exam (with individual exam dates).
- We agreed on oral exams around mid of June 2010. Please register by email for your preferred exam slot.
Exam schedule
| Date,Time | Student |
| 23 June 2010 | |
| 9.00-9.15 | Marc Vontobel |
| 9.15-9.30 | Simon Poltier |
| 9.30-9.45 | Stefan Hutter |
| 9.45-10.00 | break |
| 10.00-10.15 | Michal Koltonik |
| 10.15-10.30 | Marc Körsgen |
| 10.30-10.45 | Daniel Pfeifer |
| 10.45-11.00 | Stefan Holm |
| 24 June 2010 | |
| 9.30-9.45 | Reto Zenger |
| 9.45-10.00 | break |
| 10.00-10.15 | Yannick Koechlin |
| 10.15-10.30 | Michael Küchler |
References
- Parnas, D. L. 1972. On the criteria to be used in decomposing systems into modules. Commun. ACM 15(12):1053-1058, Dec. 1972.
- Kruchten, P.B., The 4+1 View Model of architecture, IEEE Software, 12(6):42-50, Nov 1995.
- F. Buschmann, R. Meunier, H. Rohnert, P.Sommerlad, M. Stal, Pattern-Oriented Software Architecture: A System of Patterns, John Wiley and Sons Ltd, Chichester, UK, 1996
- Douglas C. Schmidt, Michael Stal, Hans Rohnert and Frank Buschmann, Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects, John Wiley & Sons, 2000.
- Frank Buschmann, Kevlin Henney, Douglas C. Schmidt, Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing, John Wiley & Sons, 2007
- Frank Buschmann, Kevlin Henney, Douglas C. Schmidt, Pattern-Oriented Software Architecture: On Patterns and Pattern Languages, John Wiley & Sons, 2007
- Markus Schumacher, Eduardo Fernandez-Buglioni, Duane Hybertson, Frank Buschmann, Peter Sommerlad, Security Patterns: Integrating Security and Systems Engineering, Wiley & Sons, 2005
- L. Williams, R.R. Kessler, W. Cunningham, R. Jeffries (2000). Strengthening the Case for Pair Programming. IEEE Software 17(4):19-25.
- L. Rising, N. S. Janoff (2000). The Scrum Software Development Process for Small Teams. IEEE Software 17(4):26-32.
- H. Wolf, S. Rook, M. Lippert (2005). Extreme Programming: Eine Einführung mit Empfehlungen und Erfahrungen aus der Praxis. 2. Auflage, Heidelberg: dpunkt Verlag.
- David Garlan, Robert T. Monroe and David Wile. Acme: Architectural Description of Component-Based Systems. In Gary T. Leavens and Murali Sitaraman editors, Foundations of Component-Based Systems, Pages 47-68, Cambridge University Press, 2000.
- Marwan Abi-Antoun, Jonathan Aldrich, David Garlan, Bradley Schmerl, Nagi Nahas and Tony Tseng. Software Architecture with Acme and ArchJava (Research Demonstration). In Proceedings of the 27th International Conference on Software Engineering, St. Louis, MS, May 2005.
- Nenad Medvidovic, Richard N. Taylor, A classification and comparison framework for software architecture description languages, IEEE Transactions on Software Engineering, Volume 26, Issue 1, Page(s):70 - 93, Jan. 2000
- Matthew R. McBride. The software architect. Communications of the ACM, Volume 50 Issue 5, ACM, May 2007
- Arthur J. Riel, Object-Oriented Design Heuristics, Addison-Wesley Longman Publishing Co., Inc., 1996
- Eric Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software, ISBN: 0-321-12521-5, Addison-Wesley, 2004
- France, R. and Rumpe, B. 2007. Model-driven Development of Complex Software: A Research Roadmap. In 2007 Future of Software Engineering (May 23 - 25, 2007). International Conference on Software Engineering. IEEE Computer Society, Washington, DC, 37-54. DOI= dx.doi.org/10.1109/FOSE.2007.14
- Lim, W.C., Effects of reuse on quality, productivity, and economics, IEEE Software , Volume 11, Issue 5, pp. 23-30, Sept. 1994
- Barnes, B.H., Bollinger, T.B., Making Reuse Cost-effective, IEEE Software, Volume 8 Issue 1, pp. 13-24, Jan. 1991
- Joos, R., Software Reuse at Motorola, IEEE Software, Volume 11, Issue 5, Pages:42-47, Sep 1994.
- Nam-Yong Lee; Litecky, C.R.; An empirical study of software reuse with special attention to Ada, , IEEE Transactions on Software Engineering, Volume 23, Issue 9, Page(s):537 - 549, Sept. 1997.
- Rothenberger, M.A.; Dooley, K.J.; Kulkarni, U.R.; Nada, N.; Strategies for software reuse: a principal component analysis of reuse practices, IEEE Transactions on Software Engineering, Volume 29, Issue 9, Page(s):825 - 837, Sept. 2003.
- R. N. Taylor, N. Medvidovic, E. M. Dashofy. Software Architecture: Foundations, Theory, and Practice. Wiley, 2009.
- M. Barnett and M. Fähndrich and K. R. M. Leino and P. Müller and W. Schulte and H. Venter: Specification and Verification: The Spec# Experience, Communications of the ACM, 2010.


Print

