Change-Impact Driven Agile Architecting

Software architecture is a key factor to scale up Agile Software Development (ASD) in large software-intensive systems. Currently, software architectures are more often approached through mechanisms that enable to incrementally design and evolve software architectures (aka. agile architecting). Agile architecting should be a light-weight decision-making process, which could be achieved by providing knowledge to assist agile architects in reasoning about changes. This paper presents the novel solution of using change-impact knowledge as the main driver for agile architecting. The solution consists of a Change Impact Analysis technique and a set of models to assist agile architects in the change (decision-making) process by retrieving the change-impact architectural knowledge resulting from adding or changing features iteration after iteration. To validate our approach, we have put our solution into practice by running a project of a metering management system in electric power networks in an i-smart software factory.

[1]  Robert S. Arnold,et al.  Software Change Impact Analysis , 1996 .

[2]  Alistair Cockburn,et al.  Agile Software Development , 2001 .

[3]  Muhammad Ali Babar,et al.  Architecture-Centric Methods and Agile Approaches , 2008, XP.

[4]  Andraž Cej,et al.  Agile software development with Scrum , 2010 .

[5]  Paris Avgeriou,et al.  A documentation framework for architecture decisions , 2012, J. Syst. Softw..

[6]  Pei-Chi Chen,et al.  A holistic approach to managing software change impact , 2009, J. Syst. Softw..

[7]  Ann E. Nicholson,et al.  Using Bayesian belief networks for change impact analysis in architecture design , 2007, J. Syst. Softw..

[8]  Alistair Cockburn,et al.  Agile Software Development: The Cooperative Game (2nd Edition) (Agile Software Development Series) , 2006 .

[9]  Antony Tang,et al.  A rationale-based architecture model for design traceability and reasoning , 2007, J. Syst. Softw..

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

[11]  Jennifer Pérez,et al.  A Process for Documenting Variability Design Rationale of Flexible and Adaptive PLAs , 2011, OTM Workshops.

[12]  Tom Mens,et al.  Introduction and Roadmap: History and Challenges of Software Evolution , 2008, Software Evolution.

[13]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[14]  Jennifer Pérez,et al.  Plastic Partial Components: A solution to support variability in architectural components , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[15]  Grady Booch,et al.  The Defenestration of Superfluous Architectural Accoutrements , 2009, IEEE Software.

[16]  Paris Avgeriou,et al.  Handling Variability in Software Architecture: Problems and Implications , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[17]  Henri Basson,et al.  A knowledge-based system for change impact analysis on software architecture , 2010, 2010 Fourth International Conference on Research Challenges in Information Science (RCIS).

[18]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[19]  Meir M. Lehman,et al.  Metrics of software evolution as effort predictors - a case study , 2000, Proceedings 2000 International Conference on Software Maintenance.

[20]  Hakan Erdogmus,et al.  Architecture Meets Agility , 2009, IEEE Softw..

[21]  Philippe Kruchten,et al.  Software Architecture and Agile Software Development —An Oxymoron? , 2009 .

[22]  Muhammad Ali Babar,et al.  Agility and Architecture: Can They Coexist? , 2010, IEEE Softw..

[23]  Tao Xie,et al.  Model-Driven Impact Analysis of Software Product Lines , 2011, Model-Driven Domain Analysis and Software Development.

[24]  Muhammad Ali Babar,et al.  Architecture-Centric Methods and Agile Approaches , 2008, XP.

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

[26]  Richard F. Paige,et al.  Agile Security Using an Incremental Security Architecture , 2005, XP.

[27]  Erika Asnina,et al.  Model-Driven Domain Analysis and Software Development - Architectures and Functions , 2010 .

[28]  Jennifer Pérez,et al.  Change Impact Analysis in Product-Line Architectures , 2011, ECSA.

[29]  James E. Tomayko,et al.  Software architecture-centric methods and agile development , 2006, IEEE Software.

[30]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[31]  Giovanni Cantone,et al.  Peaceful Coexistence: Agile Developer Perspectives on Software Architecture , 2010, IEEE Software.

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

[33]  Jennifer Pérez,et al.  Flexible Working Architectures: Agile Architecting Using PPCs , 2010, ECSA.