Introduction
Last updated
Last updated
, University of Victoria, April, 2018
This is a edited book of contributions from students in an upper-level software engineering course at the University of Victoria. Modeled heavily on the pioneering 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 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. . 48th ACM Technical Symposium on Computer Science Education (SIGCSE), 2017.
Arie van Deursen, Alex Nederlof, and Eric Bouwers. Teaching Software Architecture: with GitHub! , December 2013.
Amy Brown and Greg Wilson (editors). . Volumes 1-2, 2012.
Paul Clements et al. . 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 . Reuse of the material is permitted, provided adequate attribution (such as a link to the corresponding chapter on the ) is included.