Software Engineering Institute Carnegie Mellon

Architecture Evolution

Most systems are built to be in service over a long period of time. However, planning for productive use over a long period of time is difficult since the future is fraught with uncertainty due to market, social, economic, political, and technological forces. These forces determine the utility of a system.

Systems may react to these forces by undergoing a stream of changes. Individually such changes are seemingly innocuous and are made to maintain or increase utility of the system. However, in aggregate they can become problematic over time. Eventually the system may become hard to transform in reaction to forces of change. When changes are too costly or time consuming to make the system ceases to evolve, does not fulfill its business or mission goals, and falls into obsolescence.

The central question for this work is: How can organizations manage an uncertain future by planning for system evolution in a way that optimizes the likelihood ongoing system usefulness? There are (at least) two fundamental and interrelated aspects to this problem:

  1. The economic aspect: how to plan the system's "trajectory" of capabilities so as to maximize its utility in the future by appropriately anticipating, preparing for, sequencing and grouping a future set of a capabilities. Results of our initial efforts in methodologically addressing the economic aspect are collected in the following technical reports:

    Ozkaya, Ipek; Kazman, Rick; Klein, Mark. Quality-Attribute-Based Economic Valuation of Architectural Patterns (CMU/SEI-2007-TR-003).

    Kazman, Rick; Asundi, Jai; Klein, Mark. Making Architecture Design Decisions: An Economic Approach (CMU/SEI-2002-TR-035).

    Asundi, Jayatirtha; Kazman, Rick; Klein, Mark. Using Economic Considerations to Choose Among Architecture Design Alternatives (CMU/SEI-2001-TR-035).

  2. The design aspect: how to measure and analyze the difficulty of reaching a desirable future state given today's state and how to design the system so that desirable states are easier to reach.

Of course these two questions are intertwined. Engineering decisions are always subject to economic considerations, and a system's portfolio of features is always constrained by what is feasible from an engineering perspective.

Refining the problem, we wish to be able to answer the following questions:

  • How can the quality of a deficient architecture be improved?
  • How can a system be adapted to support uncertain business goals or requirements?
  • What is the value of investing in the architecture?
  • What alternative architectures provide the greatest flexibility to support future requirements?
  • How resilient is the system to planned and unplanned change?

In order to attack the problem we will investigate techniques for exploring the architecture design space along with release planning, continue to investigate the applicability of economic theories, such as real options, portfolio theory, and utility theory, and leverage the generality and composability of SEI architecture-centric practices. We will apply these techniques to create need-specific methods for customer problems.

Additional Information

Collaboration Opportunities: The SEI architecture team is looking for industrial collaborators to pilot the integrated methods and to explore the connections with existing software and system development paradigms. The SEI is also looking for collaborations exploring connections with aspects, service-oriented architecture, open source, model-driven architectures, J2EE, or .net. The SEI is also looking for partners to develop and use quality attribute models in reliability, security, scalability, usability, and testability. Of interest is the exploration of the relationship between quality attribute models, business goals, and architecture and design patterns. Contact information and additional opportunities are located on Collaboration Opportunities in Software Architecture.

Products and Services: Learn about the Architecture Improvement Workshop (AIW).

Contact Information: For technical details about architecture evolution, contact Rod Nord.

Working with the SEI: Learn more about working with the SEI in software architecture.