Teaching a Course on Software Architecture

Software architecture is a relatively new topic in software engineering. It is quickly becoming a central issue, and leading-edge organizations spend a considerable fraction of their development effort on software architecture. Consequently, software architecture is increasingly often the topic of a dedicated course in software engineering curricula. There are two general flavors as for the contents of such a course. One flavor emphasizes the programming-in-the-large aspects of software architecture and concentrates on design and architectural patterns, architecture description languages and the like. The other emphasizes the communication aspects of software architecture to a variety of stakeholders, thereby acknowledging a broader view of software architecture. In this paper we report our experiences with two master-level courses in software architecture that focus on these communication aspects. We show that, by appropriately focusing the contents of such a course, key aspects of this industrially very relevant field within software engineering can be taught successfully in a university setting

[1]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[2]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[3]  Orit Hazzan,et al.  The reflective practitioner perspective in software engineering education , 2002, J. Syst. Softw..

[4]  David Lorge Parnas,et al.  Software design , 2001 .

[5]  Janet Hughes,et al.  Impact of verbalisation upon students' software design and evaluations , 2004, ICSE 2004.

[6]  Hans van Vliet,et al.  Software engineering - principles and practice , 1993 .

[7]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[8]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[9]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[10]  Frank Buschmann,et al.  A system of patterns , 1995 .

[11]  Hans van Vliet,et al.  A method for defining IEEE Std 1471 viewpoints , 2006, J. Syst. Softw..

[12]  Maria Letizia Jaccheri Tales from a Software Architecture Course Project , 2002 .

[13]  Mary Shaw Toward Higher-Level Abstractions for Software Systems , 1990, Data Knowl. Eng..

[14]  Gerrit Muller 10.5 Experiences of Teaching Systems Architecting , 2004 .

[15]  Gerrit Muller Experiences of Teaching Systems Architecting , 2005 .

[16]  David M. Dikel,et al.  Software Architecture: Organizational Principles and Patterns , 2001 .

[17]  Thomas J. Mowbray,et al.  Software Architect Bootcamp , 2000 .