Application Architecture
Definitions
- Application Architecture
- the overall architecture of a single
application
The typical responsibilities of an Application Architecture are to:
- Fulfill Requirements.
Provide an overall application structure and set of mechanisms that fulfill all architecturally significant
requirements of the application.
- Drive Designs & Implementations.
Influence and constrain the designs and associated implementations of the application’s components.
- Improve Communication.
Improve communication among the application’s stakeholders concerning the the most important, pervasive,
top-level, strategic inventions, decisions, and their associated rationales.
- Build Consensus.
Produce a formally documented consensus amoung the
application’s stakeholdlers (e.g., members of the
customer, development, and subcontractor organizations)
concerning the:
- Architectural patterns and styles to be reused on the
application,
- Top-level strategic logical and physical structures
(i.e., major functions, classes, processes, components,
their responsibilities, and their relationships) of the
application,
- Most important, pervasive architectural
mechanisms of the application, and
- Associated rationales.
- Estimate Costs.
Provide input (e.g., number, size, and complexity of
system components and mechanisms) for estimating the cost of
the producing or upgrading the application.
- Enable Scheduling.
Provide a basis (e.g., components, mechanisms) for
estimating the schedule of the application’s
development or life-cycle cycle’s phases, builds, and
milestones.
- Influence Staffing and Organization.
Strongly influence the organization structure of the
endeavor in terms of its necessary component teams and
associated roles. It also influences the endeavor training
plan.
The typical contents of an Application Architecture are the application’s:
- Architectural style and patterns.
-
Logical architecture in terms of its major classes,
processes, and
functions.
-
Physical architecture in terms of its major blackbox
components (i.e., data, hardware, software, user interface,
and personnel), their responsibilities, and the relationships
between them.
- Major architectural
mechanisms.
- Major technology and associated vendor selections.
These contents can be in the form of:
The typical stakeholders of an Application Architecture are:
- Producers:
- Evaluators:
- Approvers:
- Maintainers:
- Users:
-
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 Experience Team, which uses the user interface
architecture during the design and implementation of the
user interfaces.
An application architecture typically is produced during the
following phases:
Preconditions
An application architecture typically can be started if the
following preconditions hold:
The typical inputs to an application architecture
include:
- Work Products:
- Stakeholders:
- See the general
guidelines for
architectures.
- An application architecture typically includes a set of
component subordinate architectures (e.g., hardware
architecture, network architecture, operational availability
architecture, scalability architecture, security
architecture, software architecture, and user interface
architecture).
- A nontrivial application typically requires the
production of one or more associated architectures.
An application architecture is typically constrained by the
following conventions:
-
Work Flow
-
Content and Format Standard
-
Inspection Checklist
- A software-only application architecture.
- A system application architecture.
- A client/server application architecture.
- An n-tier distributed Internet application
architecture.