Software Architecture
RiSE’s Seminars
Clements’s book :: Chapters 1 and 2
Frederico Durão
October 7, 2015
Summary

What is Software Architecture (Chapter 1)



Importance
Architecture Views
Evaluating a Software Architecture (Chapter 2)



Reasons
Software Architecture Methods
Benefits of Evaluating Software Architecture
October 7, 2015
2
What is a Software Architecture?
October 7, 2015
3
What is a SW Architecture ? :: Chapter 1
From 1990 the term Software Architecture has gained
widespread acceptance when this field attracted attention
from both industry and the research community
1960s
October 7, 2015
1990s
4
What is a SW Architecture ? :: Chapter 1
Importance



It is a vehicle for communication among stakeholders
It is the manifestation of the earliest design decisions
It is the reusable, transferable abstraction of a system
The software architecture of a program is the structure of the
system, which comprise software components (the externally
visible properties of those components) and the relationships
among them.
[Bass 98]
October 7, 2015
5
What is a SW Architecture ? :: Chapter 1
1.1 Architecture as vehicle for communication among stakeholders

1.1.1 Architecture and Its Effects on Stakeholders




User wants a system usable and reliable
Costumer wants a system implemented on scheduled and to
budget
Developers have to answer those through coding
1.1.2 Architectural Views
October 7, 2015
6
What is a SW Architecture ? :: Chapter 1
Architecture Views





Functional View

System functions

Data flow
Concurrency View

Set of process and threads

Performance, availability and deployment
Code View

Classes, packages, modules, libraries

UML – ex: Class Diagram
Development View

Files and Directories

CVS
Physical View


Hardware Resources
Ex: LAN Network Map, sensors, circuits, storage devices
October 7, 2015
7
What is a SW Architecture ? :: Chapter 1
1.1 Architecture as vehicle for communication among stakeholders

1.1.3 Architecture Description Languages


ADL
Success in:


Failure in:


Deadlock, detection, consistency, real-time
None of these languages has been widely adopted
UML – Success Case
October 7, 2015
8
What is a SW Architecture ? :: Chapter 1
1.2 Architecture as the Manifestation of the Earliest Design Decisions

Decisions affects quality attributes:





Decisions affects the organization



Performance
Security
Modifiability
Reliability
Teams, Information flows
Organization process, Training
Commercial Decisions

Microsoft or Java Components?
October 7, 2015
9
What is a SW Architecture ? :: Chapter 1
1.2 Architecture as the Manifestation of the Earliest Design Decisions

1.2.1 Architectural Styles






The earliest of the early design decisions
A set of components types
A set of connector types/interaction mechanisms
A topological layout of these components
A set of constraints on topologies and behavior
An informal description of the costs and benefits of the style
October 7, 2015
10
What is a SW Architecture ? :: Chapter 1
1.3 Architecture as a Reusable, Transferable Abstraction of a System



Architecture is a reusable
model that can become the
basis for an entire family of
systems…
Software Product Line
Architectural Challenges in
SPL:


Which of these are the core
assets?
How add new functionalities
in the core assets?
October 7, 2015
11
Evaluating a Software Architecture
October 7, 2015
12
Evaluating a SW Architecture :: Chapter 2
How can we be sure whether the architecture chosen for an
software is the right one?
October 7, 2015
13
Evaluating a SW Architecture :: Chapter 2
Software Architecture Methods



ATAM: Architecture Tradeoff Analysis Method
SAAM: Software Architecture Analysis Method
ARID: Active Reviews for Intermediate Designs
October 7, 2015
14
Evaluating a SW Architecture :: Chapter 2
Why Evaluate an Architecture?


The earlier an error is found, the cheaper is the cost to
fix it;
Symptoms of unsuitable architecture:







No performance goals met;
No Security goals met;
Customer impatient;
Right functionality not available;
Difficulty in changes;
Schedules and budgets blown out of water;
Architecture evaluation is a cheap way to avoid
disasters...
October 7, 2015
15
Evaluating a SW Architecture :: Chapter 2
When Can Architecture Be Evaluated?


The earlier an error is found, the cheaper is the cost to fix
it
Symptoms of unsuitable architecture:







No performance goals met
No Security goals met
Customer impatient
Right functionality not available
Difficulty in changes
Schedules and budgets blown out of water
Architecture evaluation is a cheaper way to avoid disaster
October 7, 2015
16
Evaluating a SW Architecture :: Chapter 2
Who's Involved?


Evaluation Team

People who will perform the analysis
Stakeholders

Not all of the stakeholders will be member of the development
team

The Decision Maker – ex: architect and project management

The clients are interested in the output of the evaluation
October 7, 2015
17
Evaluating a SW Architecture :: Chapter 2
What Result Does an Architecture Evaluation Produce?


Report
Answers to

Is this the architecture suitable to the needs?
or


Which of two or more competing architectures is the most
suitable on for the system at hand?
A suitable Architecture is reached if...


The system result meets its quality goals
The system can be built within of the budget and deadline
estimated
October 7, 2015
18
Evaluating a SW Architecture :: Chapter 2
For what Qualities Can We Evaluate an Architecture?








Performance - latency time
Reliability – system operating over the time
Availability – system is up and running
Security – resistance to attacks
Modifiability - changes
Portability – run under different environments
Functionality – do the work that is expected
Variability - reuse


Subsetability – deliver a part of product
Conceptual integrity
October 7, 2015
19
Evaluating a SW Architecture :: Chapter 2
For what Qualities Can We Evaluate an Architecture?
Architectural Evaluation will tell us that the architecture has been
found suitable with respect to one set of goals and problematic
with another set of goals
The decision in which steps give is responsibility of the manager
October 7, 2015
20
Evaluating a SW Architecture :: Chapter 2
Why Are Quality Attributes Too Vague for Analysis?
“The system shall exhibit acceptable performance”
...and...
“The system will perform the search in maximum 5 seconds”
What about the scenario?
“The system will perform the search in maximum 5 seconds in a
Linux Platform with Oracle Database where the server is a
Pentium IV HT 2.0Ghz and 1Gb RAM”
October 7, 2015
21
Evaluating a SW Architecture :: Chapter 2
What are the Outputs of an Architecture Evaluation?


Outputs from the ATAM, SAAM, and ARID

Prioritized Statement of Quality Attribute Requirements

Mapping of Approaches to Quality Attributes

Risks and Nonrisks
Outputs only from the ATAM

Catalog of Architectural Approaches Used

Approach-and- Quality-Attribute-Specific Analysis Question
October 7, 2015
22
Evaluating a SW Architecture :: Chapter 2
What are the Benefits and Costs of Performing an Architecture
Evaluation?







Put Stakeholders in the Same Room

The first meeting of stakeholders
Forces an Articulation of Specific Quality Data
Results in the Prioritization of Conflicting Goal
Forces a Clear Explication of the Architecture
Improves the Quality of Architectural Documentation
Uncovers Opportunities for Cross-Project Reuse

It spots components that can be reused
Results in Improved Architecture Practices
Communication is the base of the success
October 7, 2015
23
Evaluating a SW Architecture :: Chapter 2
The simple and eficient things are more welcome than the
complex and huge challenges
October 7, 2015
24
References

CLEMENTS, P. Software Product Line. SpringerVerlag, 2005.
October 7, 2015
25
Descargar

Software Engineering with Reusable Components