Getting Started

Traditionally, engineering practice for software-reliant systems has been manual, paper intensive, error prone, and resistant to change. Specification, design, development, verification, and validation of systems has been lacking in a precise capture of the system architecture and its analysis early in and throughout the development process.

The result: a lack of insight into critical system characteristics and nonfunctional attributes such as performance (e.g., throughput or quality of service), safety, reliability, time criticality, security, and fault tolerance. System integration becomes high risk, and system evolution (life-cycle support) becomes expensive and results in rapidly outdated components.

By contrast, improved systems engineering practice would be architecture-centric and model-based. Well-defined software system architecture provides a framework to which system components are designed and integrated. System models that precisely capture this architecture provide the basis for predictable system engineering through repeated analysis early in and throughout the development life cycle.

The SEI is developing improved engineering practices through applying the results of research into

We apply our research and that of others to solve problems for our customers in areas such as building secure systems, making resource allocation tradeoff decisions, determining performance when a system is migrated to a new environment, or assuring schedulability.

Performance and dependabilityThrough developing solutions, we mature tools and methods, including the Architecture Analysis and Design Language (AADL), an international industry standard for which the SEI serves as the technical lead; the Open Source AADL Tool Environment (OSATE), an evolving set of analysis plug-ins for the AADL; and assurance cases.


Register for training on techniques for predicting the performance and dependability of systems at all scales.