You are on page 1of 29

Architecture

Business
Cycle

Software architecture..
The architectural view of a
system is abstract, distilling
away details of implementation,
algorithm,
and
data
representation
and
concentrating on the behaviour
and interaction of "black box"
elements.
2

Software Architecture Definition

The software architecture of a


program
or
computing
system is -the structure or structures
of
the
system,
which
comprise software elements,
the
externally
visible
properties of those elements,
3

The Architecture Business Cycle


(ABC)
Software architecture is a
result of technical, business,
and social influences.
Its
existence,
in
turn,
influences these technical,
business,
and
social
environments.
This cycle of influences from
the
environment
to
the
architecture and back to the
environment is called the
Architecture Business Cycle.
4

Where Do Architectures Come


From?

Architectures
are
influenced by:
System stakeholders
The
developing
organization
The background and
experience
of
the
5

Developing
organization
management
stakeholder

Low Cost

Marketing
stakeholder

Neat features,
Short time to
market, Low Cost

End User
Stakeholder

Behaviour,
Performance,
Security ,
Reliability,
Usability

Maintenance
Maintenance
organization
organization
stakeholder
stakeholder

Customer
stakeholder

Modifiability Low cost,


Timely
delivery,
not
changed
often

Influence of system stakeholders on Architect


6

ARCHITECTURES INFLUENCED BY
SYSTEM STAKEHOLDERS
Acceptable system involves properties
such
as
performance,
reliability,
availability,
memory
utilization,
security,
modifiability,
usability,
interoperability with other system.

The underlying problem, is that each


stakeholder has different concerns and
goals,
some
of
which
may
be
contradictory.

The reality is that the architect often


has to fill in the blanks and mediate
the
7

ARCHITECTURES
INFLUENCED BY THE
DEVELOPING ORGANIZATION
Architcture is also influenced by
the structure and nature of
organisation.
There are three classes of
influence that come from the
developing organization
Immediate business
Long-term business
Organizational structure
8

ARCHITECTURES INFLUENCED BY THE BACKGROUND


AND EXPERIENCE OF THE ARCHITECTS

Architects for a system have had good


results using a particular
architectural approach,
chances are that they will try that
same approach on a new development
effort, or may be reluctant to try it
again.
Architectural choices may also come
from an architect's education and
training, exposure to successful
architectural patterns, or exposure to
systems that have worked particularly
9

ARCHITECTURES
INFLUENCED BY THE
TECHNICAL ENVIRONMENT
Architect's
background
and
experience is reflected by the
technical environment
Current
environment
will
influence
the
architecture
standard industry practices or
software engineering techniques
10

Ramifications Effect of the


Various Influences on an
Architecture

The properties required by the business and


organizational goals are seldom completely
understood.

Customer
requirements
are
complete or well documented.

often

not

Architects must identify and actively engage


stakeholders to solicit their needs and
expectations.
In addition to technical skills, architects need
to be skilled in diplomacy, negotiation, and
communication.
11

Influences on the

Architecture

12

Architectures affect the factors,


that Influence them
Relationship among business goals,
product requirement, architects
experience, architectures and fielded
system form a cycle with feedback
loop

13

Architectures affect the factors,


that Influence them
The structure of the developing
organization.
The
goals
of
developing
organization.
Customer requirements for the
next system.
The architects experience with
subsequent systems.
The software engineering culture.
14

Structure of the developing


organization
Architecture affect the structure of the
organization
It prescribes the units of software to be
implemented.
Development, test , integration.
Teams are formed for individual software
unit.
Teams become the part of the organization
structure.

15

Goals of developing organization


It enables a company to establish a strong
foothold in the market area.
Architecture provides an opportunity for
the organization to adjust its goal, so that
it can take advantage from the market.

16

Customer requirements for the


next system
Architecture gives the customer an
opportunity to receive a system that is
more reliable, timely and economic than a
system which is build from scratch.
The customer may be willing to relax some
requirements to gain the economies.

17

The architects experience with


subsequent systems
Itll affect the architects experience with
subsequent systems by adding to the
corporate experience base.

18

The software engineering culture


A few systems will influence and change
the s/w engineering culture i.e. the
technical environment in which system
builders operate and learn.

19

Software processes and ABC


Many activities are involved in creating SA, using that arch., to
realize design and then to implement or manage the system.
Software Architecture Activities

are

Creating the business case for the


system.
Understanding the requirements
Creating or selecting the
architecture
Documenting n Communicating the
architecture
Analyzing or evaluating the
20

Creating the business case for the


system

It is simple to create a
business case than
understanding the needs of
market
How much should be the
product cost?
What is the Targeted market?
What is the targeted time to
market?
21

Understanding the requirements

There are variety of techniques to


understand requirements from
stakeholders.
Object oriented analysis: use cases
& scenarios

Safety Critical Systems:

Finite state machine models


Formal specification languages

Quality attributes
Prototypes
Regardless of technique used, -the desired qualities of the system to be
constructed determine the shape of
architecture.
22

Creating or selecting the


architecture
Conceptual integrity

A small no. of minds coming together


to design the systems architecture.
23

Communicating the architecture


For effective architecture
It must be communicated clearly and
unambiguously to all stakeholders.
Developers must understand work
assignments.
Testers must understand the task
structures
Management must understand the
scheduling implications

24

Analyzing or Evaluating the


architecture
Out of multiple designs, after
analyzing, some design will
be accepted or some are
rejected.
Evaluating an architecture
for the qualities it supports is
essential to ensure the
stakeholders
satisfaction
(needs).
Scenario- based techniques
25

Implementing based on the


architecture
Concerned with keeping the developers
faithful to the structures.
Should have an environment that assists
developers in creating the architecture.

Ensuring conformance to an
architecture

Finally, when an architecture is created


and used, it goes into maintenance phase.
Constant vigilance is required to ensure
that actual architecture and its
implementations remain faithful to each
26
other.

What Makes a Good


Architectural
Process?
Given the same
technical
requirements for a system, two
different architects in two diff.
orgns, will produce different
architectures.

Then how to decide which is


right one ?
Rules of
thumb/observations that should be
followed when designing an
architecture.
These are divided into two clusters:
27

Process recommendations are:(The


architecture)
be product of a single architect or small
group of architects.
gather both the functional requirements
and a well specified, prioritized list of
quality attributes.
be well documented, with at least one
static view and one dynamic view.
be
reviewed
by
the
systems
stakeholders.
be analyzed for applicable quantitative
measures and formally evaluated for
28
quality measures.

The structural rules of thumb


are:

The architecture should feature


well-defined modules based on the
principles of information hiding and
separation of concerns.
Each module should have a welldefined
interface
that
hides
changeable aspects.
Quality
attributes
should
be
achieved
using
well-know
architectural tactics.
The
architecture
should
be
independent of particular versions
29

You might also like