Software Architecture

Architecture-Centric Practices

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

Publications

Agile Architecting

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.

Managing Technical Debt in Software-Reliant Systems, 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.

Find Us Here

Find us on Youtube  Find us on LinkedIn  Find us on twitter  Find us on Facebook

Share This Page

Share on Facebook  Send to your Twitter page  Save to del.ico.us  Save to LinkedIn  Digg this  Stumble this page.  Add to Technorati favorites  Save this page on your Google Home Page 

For more information

Contact Us

info@sei.cmu.edu

412-268-5800

Help us improve

Visitor feedback helps us continually improve our site.

Please tell us what you
think with this short
(< 5 minute) survey.