Académique Documents
Professionnel Documents
Culture Documents
Software architecture:
Introduction
Alexander Serebrenik
Software architecture
Software architecture is the fundamental organization
of a system embodied in
its elements,
relationships,
and in the principles of its design and evolution.
/ SET / W&I
9-3-2014
PAGE 2
Fundamental organization
Less change-prone:
Architecture of software is a collection of design decisions
that are expensive to change.
Alexander Ran, Nokia Research
European Conf on Software Engineering, 2001
/ SET / W&I
9-3-2014
PAGE 3
Stakeholders?
Stakeholder is a person, group or organization with an
interest in a project
we focus on the roles of stakeholders not their identities.
the same person can hold multiple roles.
/ SET / W&I
9-3-2014
PAGE 4
Stakeholders?
Stakeholder is a person, group or organization with an
interest in a project
we focus on the roles of stakeholders not their identities.
the same person can hold multiple roles.
Class
Acquirers
Assessors
Communicators
Developers
Maintainers
Suppliers
Support staff
System administrators
Testers
/ SET / W&I
Users
9-3-2014 PAGE 5
Define
the systems functionality and use it once running
/ SET / W&I
9-3-2014
PAGE 6
Solution
Acquirers: the business sponsor (senior management),
responsible for funding; the purchasing department and
representatives of IT, who will evaluate a number of
potential ERP packages.
Users: internal staff, including those who work in order
entry, purchasing, finance, manufacturing, and
distribution.
Developers, system administrators, and maintainers:
the internal IT department
Assessors: internal acceptance test team.
Communicators: internal trainers.
Support: an internal help desk (possibly in conjunction
with the COTS supplier).
/ SET / W&I
9-3-2014
PAGE 7
/ SET / W&I
9-3-2014
PAGE 8
/ SET / W&I
9-3-2014
PAGE 9
/ SET / W&I
9-3-2014
PAGE 10
PAGE 11
Medical example
View:
/ SET / W&I
Models
Viewpoint vs View
Viewpoint should govern the View
Relation similar to type/instance, grammar/language,
Viewpoints are generic, and can be stored in libraries for reuse.
A view is always specific to the architecture for which it is
created.
concern
Stakeholder
View
point
View 1
viewpoint
conventions
Model 2
Model 3
View 2
/ SET / W&I
System
Model 1
Model 4
View 3
Model 5
So far: stakeholders,
concerns, views, viewpoints,
models and their kinds
/ SET / W&I
9-3-2014
PAGE 14
Library viewpoints
Viewpoints are generic, and can be stored in libraries for
re-use
/ SET / W&I
9-3-2014
PAGE 15
Kruchtens 4+1
1995: Kruchten, Philippe. Architectural Blueprints The
4+1 View Model of Software Architecture.
popularized the multiple views idea
/ SET / W&I
9-3-2014
PAGE 16
/ SET / W&I
9-3-2014
PAGE 17
Logical view
The users view on the system, i.e. what a
user encounters while using the system
classes and objects (class instances)
documenting user-visible entities
including interfaces, that imply responsibilities
/ SET / W&I
9-3-2014
PAGE 18
Example: Twitter
/ SET / W&I
9-3-2014
PAGE 19
9-Mar-14
Development view
Components, functions, subsystems
organized in modules and packages
Component/module interface descriptions,
access protocols
/ SET / W&I
9-3-2014
PAGE 21
Process view
Concurrent activities inside the system
Mapping of applications to distinct memory
spaces and units of execution
unit of execution: process, thread
memory space: associated with a process
/ SET / W&I
9-3-2014
PAGE 23
9-Mar-14
Deployment view
Machines (processors, memories),
networks, conncetions
including specifications, e.g. speeds,
sizes
9-3-2014
PAGE 25
9-Mar-14
Scenarios
Set of use cases
Small set
Representative use cases
/ SET / W&I
9-3-2014
PAGE 27
tweet
1. User:
a) Logon to GUI
b) Send tweet
/ SET / W&I
9-3-2014
PAGE 29
/ SET / W&I
9-3-2014
PAGE 30
/ SET / W&I
9-3-2014
PAGE 31
/ SET / W&I
9-3-2014
PAGE 32
Viewpoint library
9-Mar-14
Functional viewpoint
Information viewpoint
Concurrency viewpoint
Development viewpoint
Deployment viewpoint
Operational viewpoint
Not explicitly
addressed by
Kruchtens 4+1
Viewpoint library
Not explicitly
addressed by
Kruchtens 4+1
9-Mar-14
Functional viewpoint
Information viewpoint
Concurrency viewpoint
Development viewpoint
Deployment viewpoint
Operational viewpoint
Recall: Kruchten
popularized multiple
views idea
Architectural description
aggregates multiple
viewpoints and views.
/ SET / W&I
9-3-2014
PAGE 35
Recall: Kruchten
popularized multiple
views idea
Architectural description
aggregates multiple
viewpoints and views.
What risks associated
with multiplicity of views
can you identify?
/ SET / W&I
9-3-2014
PAGE 36
Wrong views
/ SET / W&I
Fragmentation
9-3-2014
PAGE 37
Inconsistency
Wrong views
Which views are suitable?
Kruchten, Rozanski-Woods provide
guidance but specifics of the
system should be taken into account
Is concurrency important? Is security
important?
/ SET / W&I
9-3-2014
PAGE 38
Fragmentation
Kruchten: 4+1, Rozanski-Woods: 6
What about 50 views?
Each view has to be created and maintained costs!
Views have to be kept consistent, the more views the
more potential inconsistencies costs!
Consider combining less crucial views
e.g. deployment & concurrency
do not overdo, combined views are more difficult to
understand
/ SET / W&I
9-3-2014
PAGE 39
Inconsistency
All views are related
They describe the same system!
/ SET / W&I
9-3-2014
PAGE 40
Inconsistency
All views are related
They describe the same system!
/ SET / W&I
9-3-2014
PAGE 41
Inconsistency
All views are related
They describe the same system!
/ SET / W&I
9-3-2014
PAGE 42
/ SET / W&I
9-3-2014
PAGE 43
PAGE 44
PAGE 45
If something
changes at the
end of the
arrow, a change
will probably be
required at the
start of the
arrow.
/ SET / W&I
9-3-2014
PAGE 46
Still
We need a mechanism to record in the architecture
description relations between different views
What views should be consistent with each other?
Does one view refine another? (package vs class?)
Should one be traced to another?
/ SET / W&I
9-3-2014
PAGE 47
Still
We need a mechanism to record in the architecture
description relations between different views
What views should be consistent with each other?
Does one view refine another? (package vs class?)
Should one be traced to another?
/ SET / W&I
9-3-2014
PAGE 48
/ SET / W&I
9-3-2014
PAGE 49
/ SET / W&I
9-3-2014
PAGE 50
Why do we
distinguish between
architecture and
architecture
description?
/ SET / W&I
9-3-2014
PAGE 51
Architecture as described
/ SET / W&I
9-3-2014
PAGE 52
Architecture as described
Architecture as implemented
/ SET / W&I
9-3-2014
PAGE 53
Architecture as described
implementation,
forward engineering
architecture
reconstruction,
reverse engineering
Architecture as implemented
/ SET / W&I
9-3-2014
PAGE 54
Prescriptive architecture
Architecture as described
implementation,
forward engineering
architecture
reconstruction,
reverse engineering
Architecture as implemented
Descriptive architecture
/ SET / W&I
9-3-2014
PAGE 55
Beware: incompleteness
Architecture as described can/should never be
complete with respect to
the system
architecture = fundamental organization
not everything is fundamental
architecture as intended
limitation of the architecture description language(s)
architecture as implemented
freedom of implementation choices
9-3-2014
PAGE 56
Architectural Evolution
When a system evolves
ideally its prescriptive architecture is modified first
in practice, the system and thus its descriptive
architecture is often directly modified
Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; 2008 John Wiley & Sons, Inc. Reprinted with permission.
Architectural Degradation
Architectural drift is introduction of principal design
decisions into a systems descriptive architecture that
are not included in, encompassed by, or implied by the
prescriptive architecture
but which do not violate any of the prescriptive architectures
design decisions
58
Architectural Degradation
Architectural drift is introduction of principal design
decisions into a systems descriptive architecture that
are not included in, encompassed by, or implied by the
prescriptive architecture
but which do not violate any of the prescriptive architectures
design decisions
59
Architectural Degradation
Architectural drift is introduction of principal design
decisions into a systems descriptive architecture that
are not included in, encompassed by, or implied by the
prescriptive architecture
but which do not violate any of the prescriptive architectures
design decisions
/ SET / W&I
9-3-2014
PAGE 61