Identifying Implicit Architectural Dependencies Using Measures of Source Code Change Waves

The principles of Agile software development are increasingly used in large software development projects, e.g. using Scrum of Scrums or combining Agile and Lean development methods. When large software products are developed by self-organized, usually feature-oriented teams, there is a risk that architectural dependencies between software components become uncontrolled. In particular there is a risk that the prescriptive architecture models in form of diagrams are outdated and implicit architectural dependencies may become more frequent than the explicit ones. In this paper we present a method for automated discovery of potential dependencies between software components based on analyzing revision history of software repositories. The result of this method is a map of implicit dependencies which is used by architects in decisions on the evolution of the architecture. The software architects can assess the validity of the dependencies and can prevent unwanted component couplings and design erosion hence minimizing the risk of post-release quality problems. Our method was evaluated in a case study at one large product at Saab Electronic Defense Systems (Saab EDS) and one large software product at Ericsson AB.

[1]  John K. Gershenson,et al.  Representation of similarity and dependency for assembly modularity , 2008 .

[2]  Tsun Chow,et al.  A survey study of critical success factors in agile software projects , 2008, J. Syst. Softw..

[3]  Elaine J. Weyuker,et al.  Does measuring code change improve fault prediction? , 2011, Promise '11.

[4]  Deborah Hartmann,et al.  Appropriate agile measurement: using metrics and diagnostics to deliver business value , 2006, AGILE 2006 (AGILE'06).

[5]  Santonu Sarkar,et al.  A Method for Detecting and Measuring Architectural Layering Violations in Source Code , 2006, 2006 13th Asia Pacific Software Engineering Conference (APSEC'06).

[6]  Eric Richardson What an Agile Architect Can Learn from a Hurricane Meteorologist , 2011, IEEE Software.

[7]  Miroslaw Staron,et al.  Using Models to Develop Measurement Systems: A Method and Its Industrial Use , 2009, IWSM/Mensura.

[8]  N. Nagappan,et al.  Use of relative code churn measures to predict system defect density , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[9]  J. Knottnerus,et al.  Real world research. , 2010, Journal of clinical epidemiology.

[10]  Thomas Zimmermann,et al.  Information needs for software development analytics , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[11]  Miroslaw Staron,et al.  Developing measurement systems: an industrial case study , 2011, J. Softw. Maintenance Res. Pract..

[12]  Miroslaw Staron,et al.  Monitoring Bottlenecks in Agile and Lean Software Development Projects - A Method and Its Industrial Use , 2011, PROFES.

[13]  Gregorio Robles,et al.  Correlation between bug notifications, messages and participants in Debian's bug tracking system , 2007, ESEM 2007.

[14]  Miroslaw Staron,et al.  A framework for developing measurement systems and its industrial evaluation , 2009, Inf. Softw. Technol..

[15]  Pierre America,et al.  Analyzing the Actual Execution of a Large Software-Intensive System for Determining Dependencies , 2008, 2008 15th Working Conference on Reverse Engineering.

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

[17]  Helen Sharp,et al.  Models of motivation in software engineering , 2009, Inf. Softw. Technol..

[18]  Patrik Berander,et al.  From Traditional to Streamline Development - opportunities and challenges , 2008, Softw. Process. Improv. Pract..

[19]  Andreas Zeller,et al.  Mining Version Histories to Guide Software Changes , 2004 .

[20]  Philip M. Johnson Requirement and Design Trade-offs in Hackystat: An In-Process Software Engineering Measurement and Analysis System , 2007, First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007).