a fundamental architecture work product
that captures the most important, pervasive, top-level, strategic inventions, decisions, and their
associated rationales about the overall structure (i.e., essential elements and their relationships)
and associated characteristics and behavior of an:
The typical responsibilities of an Architecture are to:
Fulfill Requirements.
Provide an overall structure and set of mechanisms that help fulfill all architecturally-significant
requirements (especially the
quality requirements) and
constraints.
Drive Design, Implementation, Integration, and Testing.
Help influence and constrain all subsequent activities including the software design, implementation,
integration, and testing.
Improve Communication.
Communicate the architectural decisions concerning the system’s or application’s components
to their stakeholders
(e.g., members of the customer, development, and subcontractor organizations) in a form that is:
Descriptive.
Prescriptive.
Proscriptive.
Build Consensus.
Produce a formally documented consensus amoung the endeavor’s stakeholdlers concerning the:
Architectural patterns and styles to be reused,
Top-level strategic structures (i.e., major functions,
classes, processes, components, their responsibilities, and their relationships),
Most important, pervasive architectural mechanisms, and
Associated rationales.
Drive Organizational Structure.
Help drive the organizational structure of the development team(s) by assigning different components to be developed by different
teams and
organizations (e.g., subcontractors).
Support Endeavor Management.
Help drive the production of the
endeavor’s:
Budget by providing input (e.g., number, size, and
complexity of system components and mechanisms) for estimating the cost of the endeavor.
Master Schedule by providing a basis (e.g., components,
mechanisms) for estimating the schedule of the endeavor’s development or life-cycle cycle’s
phases, builds, and milestones.
Achieve Strategic Reuse.
Help an organization achieve strategic reuse by reusing:
Reference architectures.
Parts of existing architectures.
Architectural patterns.
Architectural views.
Architectural perspectives.
Architectural mechanisms.
Influence Training.
Influence the endeavor’s training plan including training in the architecture and
its associated architectural patterns, views, perspectives, mechanisms, and technologies.
Architectural elements (e.g., its major blackbox (i.e., data, hardware, software, user interface, and
personnel) components, their responsibilities, and the relationships between them.
Database Team, which uses the database architecture
during the design and implementation of the databases and
associated data components.
Deployment Team, which uses the various architectures
during the planning of the deployment tasks.
Hardware Development Team, which uses the hardware,
network, operational availability, and scalability
architectures during the design and implementation of the
hardware components.
Independent Test Team, which uses the various
architectures during the development of integration and
functional tests.
Integration Team, which uses the various
architectures during the planning of the integration
tasks.
Maintenance Team, which uses the various
architectures during the maintenance tasks (to ensure
that maintenance tasks to not violate the
architectures).
Metrics Team, which uses the components in the
architectures as an input when estimating the size and
scope of the project.
Project Management Team, which uses the architectures
as an input when managing project scope and schedule
project activities.
Security Team, which uses the security architecture
during the design and implementation of the security
components and mechanisms.
Software Development Team, which uses the various
architectures during the design and implementation of the
software components.
User Interface Team,
which uses the user interface architecture during the design and implementation of the user interfaces.