Arie van Deursen, 2020
This TU Delft graduate (master level, see current 2020 edition) course is concerned with the software architecture of software-intensive systems. This relates to:
Our aim is to study reliable knowledge in these areas. To that end, we will work with three knowledge sources:
There will be 3-4 lectures for each of the three components (practice, theory, research).
Since architecture is team work, students will work in teams in this course as well. The team size is four.
Each team will select an open source system (from GitHub or other forges). Teams will conduct an in depth study of the architecture of the system they picked, looking at it from different (theoretical) perspectives. The student findings will be collected in various essays, each of around 1,000 words. Each team is expected to deliver four essays. Three of these will be related to the what, how, and who of the system as highlighted above. The fourth essay can be either a research essay, exploring how one of the research topics discussed in class applies to the system under study, or it can be a topic of choice that is most relevant for the system under study.
Students are encouraged to share their essays publicly: To that end, the course will offer an on line “book” where student essays will be collected and made available, under the overarching title Delft Students on Software Architecture (DESOSA). This book series was inspired by Brown and Wilson’s Architecture of Open Source Applications (AOSA) 3, in which architects themselves explain the history and roadmaps of software applications, and the architecctural decisions made to realize these.
Furthermore, teams will make actual changes to the systems under study, for example by offering pull requests that resolve currently open issues, or issues that they have discovered themselves. While the changes themselves will typically be fairly small, the process of making these changes will offer the students an opportunity to engage with (“feel”) the current architecture of the system.
Earlier editions were co-taught with and inspired by a range of people, including Maurício Aniche, Andy Zaidman, Alex Nederlof, Michael de Jong, Eric Bouwers, Rogier Slag, Valentine Mairet, and Sander van den Oever.
Nick Rozanski and Eoin Woods. Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives. Addison-Wesley, 2012, 2nd edition. ↩
Arie van Deursen, Andy Zaidman, Maurício Aniche, Valentine Mairet, Sander van den Oever (editors). Delft Students on Software Architecture: DESOSA 2017. TU Delft. Available via gitbook.io, pure.tudelft.nl, pdf. ↩
Arie van Deursen, Andy Zaidman, Maurício Aniche, Liam Clark, Gijs Weterings, and Romi Kharisnawan (editors). Delft Students on Software Architecture: DESOSA 2018. TU Delft. Available via gitbook.io, pure.tudelft.nl, pdf, and epub ↩
Arie van Deursen, Maurício Aniche, Joop Aué, Rogier Slag, Michael de Jong, Alex Nederlof, Eric Bouwers. A Collaborative Approach to Teach Software Architecture. 48th ACM Technical Symposium on Computer Science Education (SIGCSE), 2017 (preprint). ↩