Produce and maintain the top-level strategic structure of
an application including:
Determine the system’s architectural style.
Produce the system’s logical architecture.
Produce the system’s physical architecture.
Objectives
The objectives of system architecting are to:
Produce a formally documented consensus amoung the
project stakeholdlers (e.g., client, management, developers)
concerning the overall structure and major mechanisms of the
next version [incremental iteration] of a system
application.
Provide input (e.g., number, size, and complexity of
system components) to the project cost and schedule
estimation task.
Provide a basis (e.g., components) for the scheduling of
the project phases and builds.
Maximize the quality of the architecture:
Correctness, completeness, consistency, and
understandability.
To meet architecturally significant:
Operational requirements,
Quality requirements (e.g., extensibility,
scalability, performance, operational availability, and
security),
Design constraints (e.g., use of existing databases),
and
Business rules.
Maximize the productivity of the architecture team (e.g.,
reuse of reusable architectural frameworks, reuse of
architecture conventions, and existence of example
documents).
Examples
Examples of system architecting include:
TBD
Preconditions
Architecting typically may begin when the following
preconditions hold:
The system architecture must fulfill (and is therefore
validated against) the architecturally significant
operational and quality requirements.
The system architecture drives and constrains the
tactical (i.e., detailed) design.
This activity is documented using the typical
configuration for large projects. It is intended to be
configured (i.e., instantiated, extended, and tailored) to
meet the needs of specific projects.
The preconditions of this activity should be the union of
the preconditions of its constituent tasks.
The completion criteria for this activity should be the
union of the postconditions of its constituent tasks.