layout | title | overview | permalink | creator | date | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
default |
Azrieli Students On Software Modeling and Architecture -- ASOSMA 2016 |
true |
/index.html |
|
July 2017, Version 1.1 with 2017 2 groups |
robi-y.
Software Engineering Department
Azrieli - Jerusalem College of Engineering, Israel 2016
Azrieli Students On Software Modeling and Architecture is a collection of modeling and architectural descriptions of open source software systems written by students from Azrieli - Jerusalem College of Engineering during a master level course taking place in 2016.
Teams of students could adopt a project of choice on GitHub. The projects selected had to be sufficiently complex and actively maintained.
Inspired by Brown and Wilsons' Architecture of Open Source Applications, and the DESOSA 2015 book (update: this is a newer desosa2016 version), each description appears as a chapter, resulting in the present online book.
(Taken from DESOSA, we more or less followed these themes + security views): The chapters share several common themes, which are based on smaller assignments the students conducted as part of the course. These themes cover different architectural 'theories' as available on the web or in textbooks. The course used Rozanski and Woods' Software Systems Architecture, and therefore several of their architectural viewpoints and perspectives recur.
The first theme is outward looking, focusing on the use of the system. Thus, many of the chapters contain an explicit stakeholder analysis, as well as a description of the context in which the systems operate. These were based on available online documentation, as well as on an analysis of open and recently closed issues for these systems.
A second theme involves the development viewpoint, covering modules, layers, components, and their inter-dependencies. Furthermore, it addresses integration and testing processes used for the system under analysis.
A third recurring theme is variability management. Many of today's software systems are highly configurable. In such systems, different features can be enabled or disabled, at compile time or at run time. Using techniques from the field of product line engineering, several of the chapters provide feature-based variability models of the systems under study.
A fourth theme is metrics-based evaluation of software architectures. Using such metrics architects can discuss (desired) quality attributes (performance, scaleability, maintainability, …) of a system quantitatively. Therefore various chapters discuss metrics and in some cases actual measurements tailored towards the systems under analysis.
Last but not least, the chapters are also based on the student's experience in actually contributing to the systems described. As part of the course over some pull requests to the projects under study were made, e.g, bug fixes: firefox-ios 1889, and contributed documentation.
Through these contributions the students often interacted with lead developers and architects of the systems under study, gaining first-hand experience with the architectural trade-offs made in these systems.
While we worked hard on the chapters to the best of our abilities, there will be plenty of omissions and inaccuracies. We value your feedback on any of the material in the book. For your feedback, you can:
- Open an issue on our GitHub repository for this book.
- Offer an improvement to a chapter by posting a pull request on our GitHub repository.
Contact @ASOSMA on Twitter.- Send an email to the lecturer (on course syllabus).
We would like to thank:
- Rebecca Wirfs-Brock for course content
- AOSA and DESOSA for inspirtion
- Arie van Deursen, Alex Nederlof, and Eric Bouwers. Teaching Software Architecture: with GitHub! avandeursen.com, December 2013.
- Nick Rozanski and Eoin Woods. Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives. Addison-Wesley, 2012, 2nd edition.
- Amy Brown and Greg Wilson (editors). The Architecture of Open Source Applications. Volumes 1-2, 2012.
- Rebecca Wirfs-Brock, Developing and Communicating Software Architecture Course.
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 chapter on the book site) is included.