Task: Optimize Subsystems and Component Architecture
This task focuses on "chunking" the software into architectural units, and defining their responsibilities and their interfaces.
Disciplines: Architecture
Purpose
The purpose of this task is to identify the large-scale architectural pieces of the system.
Relationships
Main Description

A subsystem is a microcosm within the system, normally focused on a separate line-replaceable unit (LRU) or component within the larger system. A subsystem normally focuses primarily within one or a small number of disciplines (e.g. a communication subsystem, a navigation subsystem, or a tracking subsystem). It is usually identified to ease construction of the overall system and as a way to manage the staff developing the system.

In the model organization, it is common to decompose system-level use cases into "part" use cases (via the «include» relation), each of which maps to a single subsystem. The subsystem specification package then contains the subsystem-level use cases and defining details that specify that specific subsystem.

Steps
Create system-flow scenarios for the system-level use cases
To ensure that the identified subsystems can meet the system demands, elaborate the system use case scenarios to show how the subsystems collaborate to realize each.
Review interfaces with stakeholders
Review the interfaces with the subsystem that will either offer or require those services and the architect.
Put subsystem interfaces under configuration management
Putting the interfaces under CM ensures all stakeholders use a common definition. If it is found to be invalid, incorrect, or suboptimal later, it can be thawed, renegotiated by the stakeholders, and refrozen.
Decompose system use cases into subsystem-level use cases (top-down approach)
Allocate services to subsystems and build up subsystem-level use cases (bottom-up approach)
Put subsystem interfaces in the shared model
Since multiple subsystems will use the same interface definition (at least one offering and one requiring), it is important that the very same interface is used by all stakeholders. Putting the interfaces into a common shared repository ensures that.
Cluster services into interfaces
More Information