This is an introductory lecture to Software Architecture Design Decisions, part of the Advanced Software Engineering course, at the University of L'Aquila, Italy (www.di.univaq.it/muccini/SE+/2012)
1. Università degli Studi dell’Aquila
L06: Design Decisions
Henry Muccini
DISIM Department, University of L’Aquila
henry.muccini@univaq.it
2. The material in these slides may be freely reproduced and
distributed, partially or totally, as far as an explicit
reference or acknowledge to the material author is
preserved.
Some of the slides have been originally made by prof.
Patricia Lago.
Thanks to Smrithi for the discussion we had on the topic
Henry Muccini
3. Intro to SA Intro to Software Testing
SA Case study Structural Testing
SA style Model-based Testing
ADLs Architecture-based Testing
Design Decisions
Lab
Views/Viewpoints
UML Non Functional S.E.
UML Profiling Performance modeling
Lab Performance analysis
4. Software Architecture
The Software Architecture is the earliest model of the
whole software system created along the software
lifecycle
“Traditional” definition:
→A set of components and connectors communicating through
interfaces
“Recent/Future” understanding:
→A set of architecture design decisions taken to generate the
architecture artifact
→Focus on set of Views and Viewpoints, looking at
stakeholders and their concern
5. Architecting today
Architecting is the process of creating software
architecture knowledge and artifacts for engineering
software systems
A Software Architecture consists of
→A blueprint for the chosen solution (product)
→A set of design decisions (co-product)
7. Design Rationale and Design Decision
Design is a problem-solving process whose
objective is to find and describe a way:
To implement the functional requirements...
while respecting the non-functional requirements
and yet deliver 'good' quality
The result of software Design:
A blueprint for the chosen solution (product)
A set of design decisions (co-product)
8. A designer is faced with a series of design issues
These are sub-problems of the overall design problem.
Each issue normally has several alternative solutions (or
design options)
The designer makes a design decision to resolve each issue.
This process involves choosing the best option
from among the alternatives.
9. Taking decisions
Design
problem Problem
space
sub- sub-
problem problem
(or issue) (or issue)
Decision =
best option
Design Design
option option
Design
option
Design
option
Solution
space
Decision =
Alternative Alternative best option
solutions solutions
Best, with
respect to
some criterion
10. Design space
The space of possible designs that could be achieved
by choosing different sets of alternatives.
client-server
fat-client
web browser architecture peer clients
based style
client
style thin-client
custom client
program peer-to-peer
structured p2p
rich-client
layered unstructured p2p
... hybrid p2p
tiered
11. Taking decisions /2
To take each design decision, the software engineer
uses:
→“current” knowledge
─ the requirements
─ the design as created so far
→and “past” knowledge
─ the technology available
─ what has worked well in the past
─ software design principles and “best practices”
12.
13. Collection of Requirements and Constraints
Identification of Design Issues
Identification of Design Alternatives
Identification of Design Decisions (DDs)
Selection of architectural Components
Selection of an architectural Solutions that comply to
the DDs
14. Design Issue 1: how many gateways shall be used to collect
sensored data in a building?
Design Issue2: how to propagate the collected data to the
fire station?
Design Issue 3: how the sensors are connected?
Design Issue 4: how the sensors should be powered?
Design Issue 5: how to sense how many people are present
in the building?
…
15. Design
alternatives
Criteria
Design Issue
Single
Gateway Cost
DI1: how many
gateways shall be
1 gateway per Reliability
used to collect
sensored data in a floor
building? Availability
1 Gateway per
apartment
16. DD1: one gateway per floor
DD2: WAN
DD3: Wireless Lan
DD4: battery
DD5: counting
sensors
…
17. DD1: only one gateway
DD2: WAN
DD3: LAN
DD4: battery
DD5: counting
sensors
…
18. Why DD?
According to Anton Jansen and Jan Bosch [4], defining
Architecture as a set of design decisions helps the
architect to:
a. Guard the conceptual Integrity of the Software architecture
b. Communicate effectively the design space exploration
c. Effectively analyze the software architecture and design
process
d. Trace design decisions and their relationship to the
resulting architecture.
19. Notations and Tools
Archium: A meta-model and tool developed my Anton Jansen et al
ADDSS: a web based tool developed by Rafael Capilla et al
AREL: a rationale based model developed by Antony Tang et al
DAMSAK: Data Model for Software Architecture Knowledge
developed by Babar et al
PAKME : a tool that supports DAMSAK
SEURAT: Software Engineering using Rationale, which integrates tools
for rationale capture, visualization, and use into a standard software
engineering environment
20. QOC
Questions, Options, Criteria
Questions: key design issues
Options: possible answers
Criteria: assess and compare the options
21. Example
QOC3 Which technology should be used by the user to
communicate locally with the devices which are
located at home?
22. QOC3 Which technology should be used by the user to
communicate locally with the devices which are
located at home?
24. ADD: what is interesting to discuss?
1. Granularity of design decisions
2. Dependencies among decisions
3. ADD taken in a collaborative way
4. ADD that uses genetic algorithms in order to find
the optimal solution
5. Evolving ADD
25. Granularity…
ADD Question:
How the FireFighter system components shall
communicate?
How is the payment handled?
26. Dependencies…
Single Gateway
DI1. How many Cost
Reliability DI2. how the
gateways can we 1 Gateway per floor sensors are Installation
Wired
place? Availability connected?
Performance
1 Gateway per
apartment Wireless Wi-Fi
Cost Availability
Enables question
Wireless
Using gateways
DI3.How should Reliability ZigBee
data be broadcasted
Directly through Availability
sensors
Enables decision
Wearable sensor
Which device can
the Firefighter Use?
Mobile-Wi-Fi
Online map Reliability
Best way to get a
city map for the Performance
truck manager Local offline GPS device
Availability
Enables decision
27. Dependencies…
Are of various types:
• Excludes
• Requires
• Depends On
• Subsumes
• Enables
• …
Con#1: Which kind of technology is used for node-to-node
communication?
Con#1-Opt#1 : Bluetooth
Con#1-Opt#2 : Wi-Fi
Con#1-Opt#3: Zigbee
Con#5: How the WSN infrastructure shall communicate with the trucks and central
station?
Con#5-Opt#1 – 3G
Con#5-Opt#2 – GPRS
Con#5-Opt#3 – Wi-Fi
30. Optimal Solution to ADD
Tariq Al-Naeem, Ian Gorton, Muhammed Ali Babar, Fethi Rabhi and Boualem Benatallah. “A Quality-Driven
Systematic Approach for Architecting Distributed Software Applications”. In Proc. ICSE 2005.
31. Evolving ADD
Requirements, Concerns, technology evolves, and so
the associated design decisions.
Con#2: How the nodes should be powered?
• Cr#1 – Cost
• Cr#2 – nodes life duration
• Cr#3 – availability
• Opt#1 : Battery
• Opt#2 : Electrical network