Revise Solution Architecture¶
(Activity) for Tier: Product
View TrainingPURPOSE¶
The Solution Architecture is a technical data package that guides and constrains the development of a software product. It defines and describes structures, interactions, design patterns and technical standards that will be used across multiple functional areas and will be used repeatedly over time. It covers all aspects of the software to include database and user interface design. The purpose of the Solution Architecture is to ensure the product can evolve over time at lower cost and with reduced risk of defects.
WHEN¶
A commitment has been made to one or more new conceptual solutions.
PARTICIPATING ROLES¶
- ACCOUNTABLE
- RESPONSIBLE
INPUTS¶
ENTRY CRITERIA¶
- Conceptual (Architectural) Solution
SUB-ACTIVITIES¶
Review Existing Solution Architecture
- Determine how new conceptual solutions relate to existing components, interactions, and design patterns and how they can best be integrated into the existing Solution Architecture. The Solution Architecture is a forward looking “to-be” description of the system whose purpose is to pro-actively guide future development efforts. The current Solution Architecture is not required to accurately describe the existing “as-is” technical design of a system.
- As needed, create or update team norms and standards for how the Solution Architecture is documented and made available to the team.
Create or Revise Design Patterns and Practices
- Define new and revise existing Design Patterns and Practices as needed to incorporate new conception solutions. Design Patterns and Practices are repeatable solutions to recurring issues in the detailed design of system components. This includes standards for the technologies, tools, and third party software components used, how cross-cutting concerns are implemented, and other generally reusable solutions to common structural, interaction, or algorithmic issues. It should include all software engineering standards team members must adhere to.
- Provide the rationale for each pattern and practice adopted. Include relevant information from the conceptual solution selection process.
- As needed, create or update team norms for the level of detail and the scope of the patterns and practices established. Teams should strike a balance between the need for commonality and allowing individual implementers freedom to innovate.
Create or Revise Component Descriptions
- Create new and revise existing descriptions of the major components of the system as needed to incorporate new conception solutions. The descriptions can be in graphical, text, tabular, or other formats. The use of UML is encouraged but not required.
- As needed, create or update the overall partitioning model used to define types of components and determine the level of structural detail to include in the Solution Architecture. The level of detail to include should be “fit-for-purpose” based on the size and complexity of the product.
Create or Revise Interaction Descriptions
- Create new and revise existing descriptions of system interactions as needed to incorporate new conception solutions. The Solution Architecture defines and describes how the major components of the system interact with each other, the system’s runtime environment, and the enterprise environment the system is part of. All external interfaces with other systems must be included. The descriptions can be in graphical, text, tabular, or other formats. The use of UML is encouraged but not required.
Attain Team Commitment
- Provide all relevant team members the opportunity to review the updated Solution Architecture and provide inputs on any corrections or improvements needed. Attain team commitment to the final version of the updated Solution Architecture.
- If a commitment cannot be reached on how an accepted Conceptual Solution was implemented in the Solution Architecture, it may indicate the need to re-open a Conceptual Solution and repeat the Create Conceptual Solutions activity.
- As needed, create or update team norms and standards for attaining and documenting a team commitment to the Solution Architecture.
Update Area Path Assignments
- Work with the Product Owner to update feature and/or user story area paths as needed. See Create Feature for more information on area path assignments.
OUTPUTS¶
EXIT CRITERIA¶
Solution Architecture should include: descriptions of patterns and practices, description of major components, description of system interactions.
SEE ALSO¶
Process Guidance Version: 10.4