Professional Documents
Culture Documents
The Architecture Business Cycle (ABC) : Paul Clements
The Architecture Business Cycle (ABC) : Paul Clements
(ABC)
Paul Clements
clements@sei.cmu.edu
Where Do Architectures Come From?
Software architecture is based on much more
than requirements specifications.
It is the result of
Technical influences
Business influences
Social influences
Architect
How can I make
sure the system
has all that?
Stakeholder Involvement
The organizational goals and system
properties required by the business are rarely
understood.
Often, they are not written down at all.
Technology du Jour
Discussion
Stakeholders
Requirements Architect(s)
Development Architecture
organization
Technical
System
environment
Architects
experience
Architectures Affect the Factors That
Influence Them
Once the architecture is created and a system
is built, both will affect
the structure and goals of the development
organization
stakeholder requirements
the architects experience
technical environment
Architectures Affect the Factors That
Influence Them
Once the architecture is created and a system
is built, both will affect
the structure and goals of the development
organization
stakeholder requirements
the architects experience
the technical environment
How Architectures Affect the
Development Organization 1
Architectures can influence the structure of the
development organization.
Architectures prescribe the units of software
that must be implemented and integrated.
In turn, software units are the basis for
team formation
development, test, and integration activities
resource allocation in schedules and budgets
How Architectures Affect the
Development Organization 2
Architectures can influence the goals of an
organization.
A successful system built from an architecture
can enable a company to establish a foothold in
a particular market area:
The architecture can provide opportunities for the
efficient production and deployment of similar
systems.
The organization might adjust its goals to take
advantage of new market opportunities.
Architectures Affect the Factors That
Influence Them
Once the architecture is created and a system
is built, both will affect
the structure and goals of the development
organization
stakeholder requirements
the architects experience
the technical environment
How Architectures Affect Stakeholder
Requirements
Knowledge of similar systems leads
customers to ask for certain of features.
Stakeholders want certain kinds of
architecturesservice-oriented, client-server,
Java, .NET, etc.
Stakeholders will demand quality architectures in
future systems.
Stakeholders will alter their requirements
based on the availability of existing systems.
Architectures Affect the Factors That
Influence Them
Once the architecture is created and a system
is built, both will affect
the structure and goals of the development
organization
stakeholder requirements
the architects experience
the technical environment
How Architectures Affect the
Architects Experience
The process of building systems influences
the architects experience base. This, in turn,
influences how subsequent systems in the
organization are constructed:
Successful systems built around a technology,
tool, or method will engender future systems
that are built in the same way.
The architecture for a failed system is less
likely to be chosen for future projects.
Architectures Affect the Factors That
Influence Them
Once the architecture is created and a system
is built, both will affect
the structure and goals of the development
organization
stakeholder requirements
the architects experience
the technical environment
How Architectures Affect the
Technical Environment
Occasionally, a system or architecture, such
as those listed below, will actually change the
technical environment in which system builders
operate and learn:
relational databases Java
compiler generators J2EE
table-driven operating systems EJB
spreadsheets service-oriented architecture
Windows n-tier client-server
the World Wide Web
A Cycle of Influences
The relationships among business goals,
product requirements, architect experience,
architectures, and fielded systems form a cycle
with feedback loops that an organization can
use and manage to
handle growth
expand its enterprise area
take advantage of previous investments in
architectures and system building
Architecture Business Cycle (ABC)
Architects Influences
Stakeholders
Requirements Architect(s)
Development Architecture
organization
Technical
System
environment
Architects
experience
Architecture in the life cycle
There are important activities in an
architecture-based life cycle
Creating the business case for the system
(understanding the BUSINESS GOALS)
Understanding the requirements, especially the ones
that will affect the architecture
Creating or selecting the architecture
Documenting and communicating the architecture
Analyzing or evaluating the architecture
Implementing the system based on the architecture
Ensuring that the implementation conforms to the
architecture
Summary
Architecture involves more than just the
technical requirements for a system. It also
involves nontechnical factors such as the
architects background
organization (structure, business goals, core
competency, experience)
Architecture influences factors that affect it
architects learning from experience
changing the organization
new markets being entered
the state of the practice being advanced