Flexible Working Architectures: Agile Architecting Using PPCs

Software systems need software architectures to improve their scalability and maintenance. However, many agile practitioners claim that the upfront design of software architectures is an investment that does not pay off, since customers can rarely appreciate the value delivered by architectures. Furthermore, conventional architectural practices may be considered unacceptable from the Agile values and principles perspective. In this paper, the development of working architectures in agile iterations is presented as an attempt to solve the problem of designing software architectures in Agile. This contribution is based on the new concept of Plastic Partial Component (PPC). PPCs are highly malleable components that can be partially described, what increases the flexibility of architecture design. PPCs based architectures let reinforce some of the agile values and principles. Our experience of putting this contribution into practice is illustrated through the agile development of a Testing Framework for Biogas Plants.

[1]  James Madison,et al.  Agile Architecture Interactions , 2010, IEEE Software.

[2]  Uwe Aßmann,et al.  Invasive Software Composition , 2003, Springer Berlin Heidelberg.

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

[4]  Pem Systems,et al.  Extending Agile Methods:A Distributed Project and Organizational Improvement Perspective Paul E. McMahon , 2005 .

[5]  Kent Beck,et al.  Extreme Programming Explained: Embrace Change (2nd Edition) , 2004 .

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

[7]  David Garlan,et al.  Software architecture (panel): next steps towards an engineering discipline for software systems design , 1995, SIGSOFT FSE.

[8]  Juan Garbajosa,et al.  A Software Product Line Definition for Validation Environments , 2008, 2008 12th International Software Product Line Conference.

[9]  Mary Poppendieck,et al.  Implementing Lean Software Development: From Concept to Cash (The Addison-Wesley Signature Series) , 2006 .

[10]  Philippe Kruchten On Software Architecture, Agile Development, Value and Cost , 2008 .

[11]  Ken Schwaber,et al.  Agile Software Development with SCRUM , 2001 .

[12]  Joachim Sauer,et al.  Tackling Offshore Communication Challenges with Agile Architecture-Centric Development , 2007, 2007 Working IEEE/IFIP Conference on Software Architecture (WICSA'07).

[13]  Douglas C. Schmidt,et al.  Guest Editor's Introduction: Model-Driven Engineering , 2006, Computer.

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

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

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

[17]  Leonard J. Bass,et al.  Managing variability in software architectures , 2001, SSR '01.

[18]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

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

[20]  José Luiz Fiadeiro,et al.  Architecture Based Evolution of Software Systems , 2003, SFM.

[21]  Shane Warden,et al.  The art of agile development , 2007 .

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

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

[24]  Muhammad Ali Babar,et al.  An industrial case of exploiting product line architectures in agile software development , 2009, SPLC.

[25]  Alexander L. Wolf,et al.  Software architecture , 2001 .

[26]  Frank Budinsky,et al.  EMF: Eclipse Modeling Framework 2.0 , 2009 .

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

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

[29]  Volker Gruhn,et al.  Model-Driven Software Development , 2005 .

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

[31]  John May,et al.  Tailoring XP for Large System Mission Critical Software Development , 2002, XP/Agile Universe.