Disseminating Architectural Knowledge on Open-Source Projects: A Case Study of the Book "Architecture of Open-Source Applications"

  title={Disseminating Architectural Knowledge on Open-Source Projects: A Case Study of the Book "Architecture of Open-Source Applications"},
  author={Martin P. Robillard and Nenad Medvidovi{\'c}},
  journal={2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)},
  • M. Robillard, N. Medvidović
  • Published 14 May 2016
  • Computer Science
  • 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)
This paper reports on an interview-based study of 18 authors of different chapters of the two-volume book "Architecture of Open-Source Applications". The main contributions are a synthesis of the process of authoring essay-style documents (ESDs) on software architecture, a series of observations on important factors that influence the content and presentation of architectural knowledge in this documentation form, and a set of recommendations for readers and writers of ESDs on software… 

Figures and Tables from this paper

A Collaborative Approach to Teaching Software Architecture
The Collaborative Software Architecture Course is developed, in this course, participants work together to study and document a large, open source software system of their own choice, and the end-result is published as an online book to benefit the larger open source community.
Sustainable software design
The concept of sustainability for software design is introduced, and its integration into the existing catalog of design quality attributes is called for.
Locating Latent Design Information in Developer Discussions: A Study on Pull Requests
This paper investigates and introduces a classifier that can locate paragraphs in pull request discussions that pertain to design with an average AUC score of 0.87 and describes how this classifier could be used as the basis of tools to improve such tasks as reviewing code and implementing new features.
eQual: informing early design decisions
It is empirically demonstrate that eQual yields designs whose quality is comparable to a set of systems' known optimal designs, and a user study shows that, compared to the state-of-the-art, engineers using eQual produce statistically significantly higher-quality designs with a large effect size.
The Software Architect's Role in the Digital Age
The field's state of the art is reviewed, the skills of the connected architect are identified, and an overview of related education programs and knowledge sources are given.
Catalog of energy patterns for mobile applications
This analysis yielded a catalog, available online, with 22 design patterns related to improving the energy efficiency of mobile apps, and it is argued that this catalog might be of relevance to other domains such as Cyber-Physical Systems and Internet of Things.
FastTagRec: fast tag recommendation for software information sites
By learning existing postings and their tags from existing information, FastTagRec is able to very accurately infer tags for new postings, and is not only more accurate but also three orders of magnitude faster than the comparable state-of-the-art tool TagMulRec.
Design Points : Finding Latent Design Concepts in Developer Discussions Anonymous Author
  • Computer Science
  • 2017
Whether latent design that is talked about in on-line developer discussions can be identified automatically so it can be provided to help developers perform change tasks on a system is investigated and a classifier that can identify design points in pull requests is introduced.
Tools and Techniques for Energy-Efficient Mobile Application Development
This thesis compiles the current state-of-the-art methodologies used to measure the energy consumption of mobile apps, and collects code smells from other non-functional requirements and finds five performance-based code smells that effectively reduce energy consumption when fixed.


Foundations for the study of software architecture
A model of software architecture that consists of three components: elements, form, and rationale is presented, which provides the underlying basis for the architecture in terms of the system constraints, which most often derive from the system requirements.
Introduction to the Special Issue on Software Architecture
The structure of the components of a pro-grammsystem, their interrelationships, and principles and guidelines governing their design and evolution over time are outlined.
Moving Architectural Description from Under the Technology Lamppost
Software Architecture Knowledge Management: Theory and Practice
This book explains the importance of sound knowledge management practices for improving software architecture processes and products, and makes clear the role of knowledge management in software architecture and software development processes.
Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives
This book shows why the role of the architect is central to any successful information-systems development project, and, by presenting a set of architectural viewpoints and perspectives, provides specific direction for improving your own and your organization's approach to software systems architecture.
Software Architecture Knowledge Management
  • H. V. Vliet
  • Computer Science
    19th Australian Conference on Software Engineering (aswec 2008)
  • 2008
Establishing ways to effectively manage and organize architectural knowledge is one of the key challenges of the field of software architecture.
Essential software architecture
This second edition of Gortons book contains new material covering enterprise architecture, agile development, enterprise service bus technologies, RESTful Web services, and a case study on how to use the MeDICi integration framework.
A Classification and Comparison Framework for Software Architecture Description Languages
A definition and a classification framework for architecture description languages are presented and the utility of the definition is demonstrated by using it to differentiate ADLs from other modeling notations, enabling us, in the process, to identify key properties ofADLs.
Sketches and diagrams in practice
It was found that the majority of participants related their sketches to methods, classes, or packages, but not to source code artifacts with a lower level of abstraction.
Applied Software Architecture
Applied Software Architecture gives an overview of software architecture basics and a detailed guide to architecture design tasks, focusing on four fundamental views of architecture--conceptual, module, execution, and code.