Upload
joel-k
View
216
Download
0
Embed Size (px)
Citation preview
7/31/2019 UNIT 1.1 ArchBusCycle
1/19
The Architecture
Business Cycle
7/31/2019 UNIT 1.1 ArchBusCycle
2/19
Software Architecture
DefinitionThe software architecture of a program or
computing system is the structure or
structures of the system, which comprisesoftware elements, the externally visible
properties of those elements, and the
relationships among them.
7/31/2019 UNIT 1.1 ArchBusCycle
3/19
The Architecture Business
Cycle(ABC) Software architecture is a result of
technical, business, and socialinfluences.
Its existence, in turn, influences thesetechnical, business, and socialenvironments.
This cycle of influences from theenvironment to the architecture and backto the environment is called theArchitecture Business Cycle.
7/31/2019 UNIT 1.1 ArchBusCycle
4/19
Where Do Architectures Come
From?Architectures are influenced by:
System stakeholders
The developing organization The background and experience of the
architects
The technical environment
7/31/2019 UNIT 1.1 ArchBusCycle
5/19
7/31/2019 UNIT 1.1 ArchBusCycle
6/19
7/31/2019 UNIT 1.1 ArchBusCycle
7/19
7/31/2019 UNIT 1.1 ArchBusCycle
8/19
ARCHITECTURES INFLUENCED BY
SYSTEM STAKEHOLDERS
Having an acceptable system involvesproperties such as performance,reliability, availability, platformcompatibility, memory utilization,
network usage, security The underlying problem, of course, is
that each stakeholder has differentconcerns and goals, some of which maybe contradictory
The reality is that the architect often hasto fill in the blanks and mediate theconflicts.
7/31/2019 UNIT 1.1 ArchBusCycle
9/19
ARCHITECTURES INFLUENCED BY
THE DEVELOPING ORGANIZATION
There are three classes of influencethat come from the developing
organization immediate business
long-term business
organizational structure
7/31/2019 UNIT 1.1 ArchBusCycle
10/19
ARCHITECTURES INFLUENCED BY THE
BACKGROUND AND EXPERIENCE OF THE
ARCHITECTS
architects for a system have had goodresults using a particular architecturalapproach, chances are that they will try
that same approach on a newdevelopment effort
Architectural choices may also come froman architect's education and training,exposure to successful architectural
patterns, or exposure to systems thathave worked particularly poorly orparticularly well
7/31/2019 UNIT 1.1 ArchBusCycle
11/19
ARCHITECTURES INFLUENCED BY
THE TECHNICAL ENVIRONMENT
architect's background and experience isreflected by the technical environment
It is a brave architect who, in today'senvironment, does not at least consider aWeb-based, object-oriented, middleware-supported design for an informationsystem
7/31/2019 UNIT 1.1 ArchBusCycle
12/19
Ramifications of the Various
Influences on an Architecture The properties required by the business and
organizational goals are seldom completelyunderstood.
Customer requirements are often not completeor well documented.
Architects must identify and actively engagestakeholders to solicit their needs andexpectations.
In addition to technical skills, architects need tobe skilled in diplomacy, negotiation, andcommunication.
7/31/2019 UNIT 1.1 ArchBusCycle
13/19
Architectures Affect the
Factors that Influence Them The architecture affects the structure of the
developing organization.
The architecture can affect the goals of the
developing organization.
The architecture can affect customer
requirements for the next system.
The architecture will affect the architectures of
future systems.
The architecture may affect the software
engineering culture.
7/31/2019 UNIT 1.1 ArchBusCycle
14/19
7/31/2019 UNIT 1.1 ArchBusCycle
15/19
Software Architecture
ActivitiesCreating the business case for the
system.
Understanding the requirementsCreating or selecting the architecture
Communicating the architecture
Analyzing or evaluating the architecture Implementing based on the architecture
Ensuring conformance to an architecture
7/31/2019 UNIT 1.1 ArchBusCycle
16/19
What Makes a Good
Architectural Process? The architecture should be the product of a single
architect or small group of architects.
The architect should gather both the functional
requirements and a well specified, prioritized list
of quality attributes.
The architecture should be well documented, with
at least one static view and one dynamic view.
The architecture should be reviewed by the
systems stakeholders.
7/31/2019 UNIT 1.1 ArchBusCycle
17/19
What Makes a Good
Architectural Process? (Contd) The architecture should be analyzed for
applicable quantitative measures and
formally evaluated for quality measures.A skeletal system should be developed
to facilitate incremental implementation.
Resource contention areas should be
minimized and clearly identified.
7/31/2019 UNIT 1.1 ArchBusCycle
18/19
What Makes a Good
Architectural Structure? The architecture should feature well-defined
modules based on the principles of information
hiding and separation of concerns.
Each module should have a well-defined
interface that hides changeable aspects.
Quality attributes should be achieved using
well-know architectural tactics.
The architecture should be independent of
particular versions of commercial products or
tools.
7/31/2019 UNIT 1.1 ArchBusCycle
19/19
What Makes a Good
Architectural Structure? (Contd) Modules that produce data should be separate
from modules that consume data.
For parallel-processing systems, the
architecture should feature well-definedprocesses or tasks that do not necessarilymirror the module decomposition structure.
Every task or process should be specified sothat its assignment to a particular processor canbe easily changed.
The architecture should contain a small numberof simple interaction patterns.