Activity: Define Candidate System Architecture
This activity creates an initial sketch of the system architecture.
DescriptionWork Breakdown StructureTeam AllocationWork Product Usage
Purpose
The purpose of this activity is to:
  • Create the outlines of the architecture of the system:
    • Define an initial set of architecturally significant elements (subsystems, processes and localities), for analysis.
    • Identify collaborations (of subsystems) that will realize architecturally significant system use cases, capture these (in outline) in the System Analysis Model, and decide the System Use-Case Realizations and/or System Operation Realizations to be further detailed in the current iteration.
    • Produce preliminary Subsystem Vision artifacts.
    • Capture significant decisions and rationale in System Architecture Document.
  • Update the System Use-Case Realizations and/or System Operation Realizations with subsystem interactions.
  • Produce preliminary Subsystem Supplementary Requirements artifacts.
Relationships
Properties
Event-Driven
Multiple Occurrences
Ongoing
Optional
Planned
Repeatable
Staffing

As with the early architectural synthesis work, this activity is best carried out by a small team (playing the roles of System Architect and System Designer, and usually guided by one or two individuals who have deep experience in architecting systems in the relevant domain) staffed by cross-functional team members. Issues that are typically architecturally important include performance, scaling, distribution or other specialty engineering requirements. Significant architectural constraints might also flow from physical and environmental requirements. The team should also include members with domain experience who can identify key abstractions. The team should also have experience with model organization and layering.

Usage
Usage Guidance

The work is best done in several sessions, perhaps performed over a few days (or weeks and months for very large systems), with iteration over System Architectural Analysis and System Operation Analysis. Perform an initial pass at the architecture in System Architectural Analysis, then choose architecturally significant system use cases, performing System Operation Analysis on each one. After (or as) each use case is analyzed, update the architecture as needed to reflect adaptations required to accommodate new behavior of the system and to address potential architectural problems which are identified.

Where the architecture already exists (either from a prior project or iteration), change requests might need to be created to change the architecture to account for the new behavior the system must support. These changes can be to any artifact in the process, depending on the scope of the change.