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 downstream, costly problems and cost savings in integration and test
- predictable system quality—creating competitive advantage
- flexibility—enabling cost-effective system evolution and incremental development of capabilities
The AP Initiative response to the challenges of developing assured and flexible system capabilities through
- value-driven incremental development: constructing quality attribute models, economic frameworks, and assurance cases to guide incremental development in an agile environment
- composing assured systems of systems: extending software product line practices, software architecture patterns, and assurance cases to reconfigure systems of systems.
How We Can Help
The AP team 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 architecture-centric development to an organization
- understand the architectural impact of using new technologies, such as migrating to a service-oriented environment