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={M. Robillard and N. Medvidovic},
  journal={2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE)},
  • M. Robillard, N. Medvidovic
  • Published 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… Expand

Figures, Tables, and Topics 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. Expand
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. Expand
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. Expand
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. Expand
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. Expand
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. Expand
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. Expand
Design Points : Finding Latent Design Concepts in Developer Discussions Anonymous Author
  • 2017
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70Expand
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. Expand


Foundations for the study of software architecture
The purpose of this paper is to build the foundation for software architecture. We first develop an intuition for software architecture by appealing to several well-established architecturalExpand
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. Expand
Moving Architectural Description from Under the Technology Lamppost
It is argued that the early ADLs focused almost exclusively on the technological aspects of architecture, and mostly ignored the application domain and business contexts within which software systems, and development organizations, exist. Expand
Software Architecture Knowledge Management: Theory and Practice
A software architecture manifests the major early design decisions, which determine the systems development, deployment and evolution. Thus, making better architectural decisions is one of the largeExpand
Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives
Software Systems Architecture is a practitioner-oriented guide to designing and implementing effective architectures for information systems. It is both a readily accessible introduction to softwareExpand
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. Expand
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. Expand
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. Expand
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. Expand
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. Expand