Neil Ernst, Omar Elazhary
University of Victoria, April, 2019
This is the second in a series of edited books of contributions from students in an upper-level software engineering course at the University of Victoria. Modeled heavily on the pioneering DelftSWA course from van Deursen et al. (1), the course goal was to introduce students to "documenting and understanding software". We did this by picking a large, open-source software system on Github and documenting its architecture in several phases. The result is a comprehensive, if partial, description of the system from the point of view of relative newcomers.
In contrast to the Delft approach, we used the Software Engineering Institute views and beyond approach for documenting software. The main focus is to trace technical decisions back to business/project goals using the lens of quality attributes. We focus on identifying the architecturally significant drivers that impact the software design. The views and beyond model suggests there are three main types of architectural structures to reason about: modules at implementation time, components and connectors at runtime, and allocation structures connecting the code to non-code artifacts.
This course would not be possible without the help of Arie, Andy and Maurício at Delft, who pioneered this approach in 2015.
- 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.
- Arie van Deursen, Alex Nederlof, and Eric Bouwers. Teaching Software Architecture: with GitHub! avandeursen.com, December 2013.
- Amy Brown and Greg Wilson (editors). The Architecture of Open Source Applications. Volumes 1-2, 2012.
- Paul Clements et al. Documenting Software Architectures. Addison Wesley, 2011, ISBN-13: 978-0321552686.
The copyright of the chapters is with the authors of the chapters. All chapters are licensed under the Creative Commons Attribution 4.0 International License. Reuse of the material is permitted, provided adequate attribution (such as a link to the corresponding chapter on the UVicDSA book site) is included.