The increasing scale and complexity of long-lived systems highlights the role of architecture in balancing the need to prepare a system for future modifications with the need to provide immediate capability. There has been a shift in recent years toward adopting software development processes that claim to accelerate delivery of technical capabilities in the face of an uncertain future.
While Agile software development techniques provide some guidance for quick capability delivery, they do not account for unanticipated interactions within complex unprecedented systems, either during their initial development or as they evolve over their lifespan. On the other hand, too much upfront architecting can compromise the rapid delivery of capabilities. Techniques for determining the right balance of architecture and agility do not currently exist, but are vital to the ongoing debate about the utility of Agile methods.
Specific tasks under investigation this year are
- System of systems (SoS) architecture patterns—exploring SoS architecture design patterns with an emphasis on defining and achieving SoS quality attributes
- Agile architecting—developing iterative and incremental architecting techniques for balancing rapid capability delivery with preparation for future capability delivery
- Architecture support for testing—investigating techniques for using architecture knowledge to inform and reduce system testing
Enabling Agility Through Architecture, an SEI whitepaper originally published in Crosstalk in November 2010.
Analysis and Management of Architectural Dependencies in Iterative Release Planning, to be published in Proceedings of the Working IEEE/IFIP Conference on Software Architecture (WICSA) 2011.
, published in Proceedings of the Workshop on the Future of Software Engineering Research (FoSER), November 7–8, 2010, Santa Fe, New Mexico, USA.
Agile Development & Software Architecture - Crossing the Great Divide, an SEI webinar.
Learn more about how the SEI works with Agile methods and principles on the SATURN Network blog.
Architecture Support for Testing
Learn more about the SEI's work in architecture support for testing on the SATURN Network blog.