System Architecting
Definition
System architecting is the subclass of
architecting during which an
application’s overall system
architecture is produced.
Goals
The goals of system architecting are to:
- 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:
Preconditions
Architecting typically may begin when the following
preconditions hold:
- The
initiation phase has started.
- The
architecture team is initially staffed and adequately
trained in system architecting.
- Some architecturally significant requirements have been
specified.
Completion Criteria
Architecting is typically complete when the following
postconditions hold:
- The system architecture has been documented.
- The deliverable work products in the architecture work
product set have:
- Passed evaluation.
- Been accepted by the customer.
- Been delivered to the customer.
Tasks
Architecting typically involves the following producers
performing the following architecting tasks:
Environments
Architecting is typically performed using the following
environment(s) and associated tools:
Work Products
Architecting typically results in the production of part or
all of the following
architecture works:
Phases
Architecting tasks are typically performed during the
following phases:
Guidelines
- 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.