Towards an Architectural Framework for Agile Software Development

One of the ideas of agile software development is to respond to changes rather than following a plan. Constantly changing businesses result in changing requirements, to be handled in the development process. Therefore, it is essential that the underlying software architecture is capable of managing agile business processes. However, criticism on agile software development states that it lacks paying attention to architectural and design issues and therefore is bound to engender suboptimal design-decisions. In this paper we propose an architectural framework for agile software development, that by explicitly separating computational, coordinational, and communicational models offers a high degree of flexibility regarding architectural and design changes introduced by agile business processes. The framework strength is facilitated by combining the characteristics and properties of state-of-the-art middleware architectural styles captured in a simple API. The benefit of our approach is a clear architectural design with minimized effects of changes the models have on each other, accompanied by an efficient realization of new business requirements.

[1]  Forrest Shull,et al.  What Do We Know about Knowledge Management? Practical Implications for Software Engineering , 2009, IEEE Software.

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

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

[4]  Richard Mordinyi,et al.  Introducing the concept of customizable structured spaces for agent coordination in the production automation domain , 2009, AAMAS.

[5]  Nicholas Carriero,et al.  Coordination languages and their significance , 1992, CACM.

[6]  George Mangalaraj,et al.  Challenges of migrating to agile methodologies , 2005, CACM.

[7]  Mike P. Papazoglou,et al.  Service oriented architectures: approaches, technologies and research issues , 2007, The VLDB Journal.

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

[9]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[10]  Falko Menge Enterprise Service Bus , 2007 .

[11]  Richard Mordinyi,et al.  Space-Based Architectures as Abstraction Layer for Distributed Business Applications , 2010, 2010 International Conference on Complex, Intelligent and Software Intensive Systems.

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

[13]  David Luckham,et al.  The power of events - an introduction to complex event processing in distributed enterprise systems , 2002, RuleML.

[14]  Alexandre R. Francois Software Architecture for Computer Vision: Beyond Pipes and Filters , 2003 .

[15]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[16]  Uwe Zdun,et al.  Architectural Patterns Revisited - A Pattern Language , 2005, EuroPLoP.

[17]  Ethan Hadar,et al.  Agile architecture methodology: long term strategy interleaved with short term tactics , 2008, OOPSLA Companion.

[18]  Matt Stephens,et al.  Extreme Programming Refactored: The Case Against XP , 2003, Apress.

[19]  Tore Dybå,et al.  What Do We Know about Agile Software Development? , 2009, IEEE Software.

[20]  Alistair Cockburn,et al.  Agile Software Development: The Business of Innovation , 2001, Computer.

[21]  Minna Pikkarainen,et al.  An Approach for Assessing Suitability of Agile Solutions: A Case Study , 2005, XP.

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

[23]  Richard Mordinyi,et al.  Aspect-Oriented Space Containers for Efficient Publish/Subscribe Scenarios in Intelligent Transportation Systems , 2009, OTM Conferences.

[24]  Pete McBreen,et al.  Questioning Extreme Programming , 2002 .