The SEI has a long history of working with with industry, government, and academia to create, mature, and transition architecture-related engineering practices.
The SEI software architecture team can help organizations facing software system problems such as
- poor quality—seen in, for example, systems crashing or behaving unpredictably, or users judging that a system is unusable
- slow time to market—seen in missed integration deadlines due to difficulty in identifying root causes of problems
The SEI can provide information and guidance about architecture-related questions and problems. Please contact us.
The SEI provides architectural coaching to customers who have decided to introduce architecture-centric development into their software organizations. SEI architects work directly with a customer's developers to establish an architecture and architectural process or to optimize an existing architecture and associated processes.
- How do you get started with or optimize your software architecture development?
- How do you establish driving architectural requirements for your product or product line?
- How do you scope your architecture?
- How do you develop architectural designs?
- How do you provide effective documentation for your architecture?
- How do you use architectural evaluation in developing your product or product line?
SEI architects work directly with a customer's development staff to assist and train them in
- establishing or optimizing an architectural process
- defining an architecture for a single product or a product line
A customer can request assistance for any number of architecture-related activities including:
- Establishing the driving architectural requirements: Driving architectural requirements are obtained by analyzing the business drivers and system context as well as the issues deemed critical to system success by the product stakeholders. The goal is a specification for the architecture that directs the architects to create a structure for the system that is sufficient to ensure success in the eyes of the stakeholders. These requirements prevent creation of an architecture that is overly complex or that strives for unnecessary elegance at the expense of critical system properties.
- Defining an architecture: Architectural structures and coordination strategies are developed that satisfy the driving architectural requirements. Alternative architecture solutions may be proposed and analyzed to identify an optimal solution for the product or product line being developed. When product lines are involved, SEI architects also help customer staff adapt the product line architecture to specific product requirements and fully develop the architecture for an individual product.
- Evaluating the architecture: SEI architects working with customer staff determine when and what methods of architecture evaluation are appropriate, then assist in applying the results to improve the developing architecture.
- Scoping the architecture: Before defining an architecture, the developers determine how many of the system-design decisions should be established by the architecture of the system. This scope delimits the activities of application developers, allowing them to concentrate on what they do best.
- Documenting the architecture: To be an effective plan for a product, the architecture must be documented in sufficient detail and in an easily accessible form for developers and other stakeholders. The architecture is one of the major mechanisms that allow stakeholders to communicate about the properties of a system. The SEI and the customer's staff work together to determine what views of the architecture are useful for the stakeholders, the amount of detail required, and how to present the information efficiently.
- Integrating the system: The SEI assists customers in the use of the Architecture Analysis and Design Language (AADL) in architecture-centric virtual integration of software-reliant systems.
SEI architects can work with customers in a variety of coaching modes. Coaching may involve both direct participation in the development of the product architecture as well as training of customer staff in software architecture development and in associated architecture process. Training may be accomplished by academic instruction, training by example, or both. The overall goal is to help the customer's staff become proficient in all aspects of software architecture design for products or product lines.
Architecture coaching helps developers learn how to establish an architecture that responds to critical system qualities in the product.
Who Would Benefit
- software development organizations that develop medium- to large-scale software-intensive systems
- organizations that have to develop complex software systems or systems whose success rests on critical non-functional system attributes such as reliability, performance, security, and maintainability.
SEI staff will work with a customer's development staff and, when appropriate and desirable, with their contractors or subcontractors. For additional technical details or to arrange architectural coaching services, please contact us.
Software Architecture Training and Publications
Software Architecture Training at the SEI
Software Architecture Publications