How Do Open Source Communities Document Software Architecture: An Exploratory Survey

Software architecture (SA) documentation provides a blueprint of a software-intensive system for the communication between stakeholders about the high-level design of the system. In open source software (OSS) development, a lack of SA documentation may hinder the use and further development of OSS, but how much "architecture" documentation is enough and appropriate is largely dependent on the contextual factors of development. In order to understand the state of the practice of SA documentation in OSS projects, we conducted a documentation-based survey to explore how SA is documented in OSS projects. Out of 2,000 OSS projects from four major OSS sources, we found that 108 projects have some SA documentation, which shows that the SA documentation is scarce in OSS development. We analyzed these 108 projects to understand what SA information has been documented and how they have been described. We have found that frequently-documented architectural information is model, system, and mission, natural language is the most frequently-used architectural language for specifying architectural information in OSS SA documents. The results also show that the likelihood that an OSS project will document SA is increased when more developers are involved in the project, and industry and research OSS projects are more likely to create SA documents than freelance projects.

[1]  Ioannis Stamelos,et al.  Understanding knowledge sharing activities in free/open source software projects: An empirical study , 2008, J. Syst. Softw..

[2]  Peng Liang,et al.  Software Architecture Documentation: The Road Ahead , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[3]  David Lorge Parnas,et al.  Document based rational software development , 2009, Knowl. Based Syst..

[4]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[5]  Di Wu,et al.  Empirical study of the effects of open source adoption on software development economics , 2007, J. Syst. Softw..

[6]  Henry Muccini,et al.  What Industry Needs from Architectural Languages: A Survey , 2013, IEEE Transactions on Software Engineering.

[7]  Dirk Riehle The Unstoppable Rise of Open Source / Der Siegeszug von Open Source , 2013, it Inf. Technol..

[8]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[9]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[10]  Daniela E. Damian,et al.  Selecting Empirical Methods for Software Engineering Research , 2008, Guide to Advanced Empirical Software Engineering.

[11]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[12]  Peng Liang,et al.  Application of knowledge-based approaches in software architecture: A systematic mapping study , 2013, Inf. Softw. Technol..

[13]  J. Herbsleb,et al.  Two case studies of open source software development: Apache and Mozilla , 2002, TSEM.

[14]  Muhammad Ali Babar,et al.  A comparative study of challenges in integrating Open Source Software and Inner Source Software , 2011, Inf. Softw. Technol..

[15]  Lionel C. Briand,et al.  Software documentation: how much is enough? , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[16]  A. Brown,et al.  The Architecture of Open Source Applications , 2011 .

[17]  Allen B. Tucker,et al.  Software Development: An Open Source Approach , 2011 .

[18]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[19]  Michelle Levesque,et al.  Fundamental issues with open source software development , 2004, First Monday.

[20]  Josh Lerner,et al.  The Simple Economics of Open Source , 2000 .

[21]  Theo D'Hondt Technology of object-oriented languages, systems and architectures , 2003 .

[22]  Matthias Naab,et al.  Software Architecture Documentation for Developers: A Survey , 2013, Software Engineering.

[23]  Peng Liang,et al.  Architectural design decision: Existing models and tools , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[24]  R.T. Fielding,et al.  Software architecture in an open source world , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[25]  Tore Dybå,et al.  Empirical studies of agile software development: A systematic review , 2008, Inf. Softw. Technol..

[26]  Antony Tang,et al.  On the responsibilities of software architects and software engineers in an agile environment: who should do what? , 2011, SSE '11.

[27]  Pekka Abrahamsson,et al.  Microblogging in Open Source Software Development: The Case of Drupal and Twitter , 2014, IEEE Software.

[28]  Jeffrey M. Voas,et al.  Free and Open Source Software , 2009 .

[29]  Muhammad Ali Babar,et al.  The Importance of Architectural Knowledge in Integrating Open Source Software , 2011, OSS.

[30]  Xavier Franch,et al.  Managing Risk in Open Source Software Adoption , 2018, ICSOFT.

[31]  .. V. Heescha,et al.  A documentation framework for architecture decisions , 2011 .

[32]  M. Saeki,et al.  Software Development Process From Natural Language Specification , 1989, 11th International Conference on Software Engineering.

[33]  Jean-Claude Royer,et al.  A Translation of UML Components into Formal Specifications , 2003 .

[34]  Dharini Balasubramaniam,et al.  Controlling software architecture erosion: A survey , 2012, J. Syst. Softw..

[35]  Reidar Conradi,et al.  Open Source Collaboration for Fostering Off-The-Shelf Components Selection , 2007, OSS.

[36]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[37]  Muhammad Ali Babar,et al.  A Survey of the Use and Documentation of Architecture Design Rationale , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[38]  James Bessen Open Source Software , 2006 .

[39]  Alberto Sillitti,et al.  Open Source Development, Adoption and Innovation , 2007 .

[40]  Janice Singer,et al.  How software engineers use documentation: the state of the practice , 2003, IEEE Software.

[41]  Lorraine Morgan,et al.  Benefits and Drawbacks of Open Source Software: An Exploratory Study of Secondary Software Firms , 2007, OSS.

[42]  Robert L. Nord,et al.  Describing Software Architecture with UML , 1999, WICSA.

[43]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2012, Springer Berlin Heidelberg.

[44]  W. Scacchi Free/Open Source Software Development: Recent Research Results and Methods , 2007, Adv. Comput..

[45]  Yvonne Dittrich,et al.  Software architecture awareness in long-term software product evolution , 2010, J. Syst. Softw..

[46]  Philippe Kruchten,et al.  Contextualizing agile software development , 2013, J. Softw. Evol. Process..

[47]  Walid Maalej,et al.  How do open source communities blog? , 2012, Empirical Software Engineering.

[48]  Peng Liang,et al.  Knowledge-based approaches in software documentation: A systematic literature review , 2014, Inf. Softw. Technol..

[49]  Bran Selic,et al.  Agile Documentation, Anyone? , 2009, IEEE Software.

[50]  Alain Pinsonneault,et al.  Survey Research Methodology in Management Information Systems: An Assessment , 1993, J. Manag. Inf. Syst..

[51]  Arie van Deursen,et al.  Communication in open source software development mailing lists , 2013, 2013 10th Working Conference on Mining Software Repositories (MSR).

[52]  David Probert,et al.  Quality practices and problems in free software projects , 2005 .

[53]  Jan Bosch,et al.  Making the Right Decision: Supporting Architects with Design Decision Data , 2013, ECSA.

[54]  Kimberly D. Simon,et al.  The value of open standards and open-source software in government environments , 2005, IBM Syst. J..