Software Engineering Institute | Carnegie Mellon University
Software Engineering Institute | Carnegie Mellon University

Architecture Practices

For many organizations, the achievement of business and mission goals is frustrated by software system problems such as

  • poor quality—seen in, for example, systems crashing or behaving unpredictably, or users judging that a system is unusable; and
  • slow time to market—seen in missed integration deadlines due to difficulty in identifying root causes of problems

The SEI Architecture Practices (AP) initiative advances architecture technology and practices for incremental, cost-effective development and evolution of assured and flexible system capabilities at all scales. The AP team focuses on how to deploy a system rapidly without compromising the benefits of a robust architecture.

Software architecture serves as the blueprint for both the system and the project developing it, defining the work assignments that must be carried out by design and implementation teams. The architecture is the primary carrier of system qualities such as performance, modifiability, and security, none of which can be achieved without a unifying architectural vision. Architecture is an artifact for early analysis to make sure that product development will yield an acceptable system and provide early confidence in achieving system-related business and mission goals. As part of this approach, the SEI considers how to apply architecture practices to systems at all scales, including stand-alone systems, systems of systems, and ultra-large-scale systems.

An effective architectural approach results in

  • early identification and mitigation of design risks—yielding fewer costly problems downstream and reducing costs in integration and test
  • predictable system quality—creating competitive advantage
  • flexibility—enabling cost-effective system evolution and incremental development of capabilities


The SEI responds to the challenges of developing assured and flexible system capabilities by conducting research in

  • Agile architecting
  • Managing technical debt
  • Designing in assurance
  • Model-based engineering

How We Can Help

The SEI helps organizations and individuals to

  • design and analyze architectures of systems at all scales relative to business and mission goals
  • develop precise models and quantitative analyses of systems for key system qualities such as safety, performance, and reliability
  • identify critical quality requirements (e.g., for performance, modifiability, or availability) that drive architecture development and evolution
  • evaluate architecture-evolution technical plans
  • identify architectural risks associated with adopting an agile development approach
  • adopt an architecture-centric acquisition approach to reduce acquisition risk
  • introduce software architecture development to an organization
  • understand the architectural impact of using new technologies, such as migrating to a service-oriented environment

Additional Resources