Understanding the Causes of Architecture Changes Using OSS Mailing Lists

The causes of architecture changes can tell about why architecture changes, and this knowledge can be captured to prevent architecture knowledge vaporization and architecture degeneration. But the causes are not always known, especially in open source software (OSS) development. This makes it very hard to understand the underlying reasons for the architecture changes and design appropriate modifications. Architecture information is communicated in development mailing lists of OSS projects. To explore the possibility of identifying and understanding the causes of architecture changes, we conducted an empirical study to analyze architecture information (i.e. architectural threads) communicated in the development mailing lists of two popular OSS projects: Hibernate and ArgoUML, verified architecture changes with source code, and identified the causes of architecture changes from the communicated architecture information. The main findings of this study are: (1) architecture information communicated in OSS mailing lists does lead to architecture changes in code; (2) the major cause for architecture changes in both Hibernate and ArgoUML is preventative changes, and the causes of architecture changes are further classified to functional requirement, external quality requirement, and internal quality requirement using the coding techniques of grounded theory; (3) more than 45% of architecture changes in both projects happened before the first stable version was released.

[1]  Nenad Medvidovic,et al.  An Empirical Study of Architectural Change in Open-Source Software Systems , 2015, 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories.

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

[3]  Iris Groher,et al.  An expert survey on kinds, influence factors and documentation of design decisions in practice , 2015, Future Gener. Comput. Syst..

[4]  Jan Bosch,et al.  Software architecture design: evaluation and transformation , 1999, Proceedings ECBS'99. IEEE Conference and Workshop on Engineering of Computer-Based Systems.

[5]  Jan Bosch,et al.  Software Architecture as a Set of Architectural Design Decisions , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[6]  Michael W. Godfrey,et al.  Evolution in open source software: a case study , 2000, Proceedings 2000 International Conference on Software Maintenance.

[7]  John D. Lafferty,et al.  Dynamic topic models , 2006, ICML.

[8]  Reidar Conradi,et al.  Identifying and Understanding Architectural Risks in Software Evolution: An Empirical Study , 2008, PROFES.

[9]  David Garlan,et al.  Software architecture: a roadmap , 2000, ICSE '00.

[10]  Sherlock A. Licorish,et al.  Understanding the attitudes, knowledge sharing behaviors and task performance of core developers: A longitudinal study , 2014, Inf. Softw. Technol..

[11]  Jan Bosch,et al.  Software Architecture: The Next Step , 2004, EWSA.

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

[13]  V. Basili Software modeling and measurement: the Goal/Question/Metric paradigm , 1992 .

[14]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

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

[16]  Susan P. Williams,et al.  Using card sorting technique to classify requirements change , 2004, Proceedings. 12th IEEE International Requirements Engineering Conference, 2004..

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

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

[19]  E. B. Swanson,et al.  Software maintenance management , 1980 .

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

[21]  Peng Liang,et al.  How Do Open Source Communities Document Software Architecture: An Exploratory Survey , 2014, 2014 19th International Conference on Engineering of Complex Computer Systems.

[22]  Peng Liang,et al.  An exploratory study on ontology engineering for software architecture documentation , 2014, Comput. Ind..

[23]  W. Marsden I and J , 2012 .

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

[25]  Dieter K. Hammer,et al.  Tool Support for Architectural Decisions , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[26]  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.

[27]  Jeffrey C. Carver,et al.  Characterizing software architecture changes: A systematic review , 2010, Inf. Softw. Technol..

[28]  Jan Bosch,et al.  Architecture Technical Debt: Understanding Causes and a Qualitative Model , 2014, 2014 40th EUROMICRO Conference on Software Engineering and Advanced Applications.

[29]  Carlos Jensen,et al.  Joining Free/Open Source Software Communities: An Analysis of Newbies' First Interactions on Project Mailing Lists , 2011, 2011 44th Hawaii International Conference on System Sciences.

[30]  Peng Liang,et al.  Causes of Architecture Changes: An Empirical Study through the Communication in OSS Mailing Lists , 2015, SEKE.

[31]  Andrew M. Kuhn,et al.  Code Complete , 2005, Technometrics.

[32]  Leonard J. Bass,et al.  Attribute-Based Architecture Styles , 1999, WICSA.

[33]  Jeffrey C. Carver,et al.  Examination of the software architecture change characterization scheme using three empirical studies , 2012, Empirical Software Engineering.

[34]  Philippe Kruchten,et al.  Using grounded theory to study the experience of software development , 2011, Empirical Software Engineering.

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

[36]  Jan Bosch,et al.  Design erosion: problems and causes , 2002, J. Syst. Softw..

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

[38]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[39]  Paris Avgeriou,et al.  Enriching software architecture documentation , 2009, J. Syst. Softw..