© Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of...
-
Upload
abigayle-williamson -
Category
Documents
-
view
213 -
download
0
Transcript of © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of...
© Peer Törngren
1
ITARC
May 2015
Quality attributes of Software Architecture
Quality Attributes of Software Architecture
What is software quality? Does architecture affect system quality?
What is the value of software quality?
Peer Törngren
30 years
in
30 min
utes
© Peer Törngren
2
ITARC
Agenda
• Intro (about quality, about me)• Quality Attributes• Measurements • Summary
May 2015
Quality attributes of Software Architecture
o Performanceo Scalabilityo Security and Integrityo Availability (uptime/downtime)o UX: Usability, Accessibility and Aestheticso Globalization (i18N, L10N, G11N)o Robustnesso Technical Flexibilityo Adaptability (Integration and Customization)o Administrationo Vitality (life expectancy)
CAUTION: (VERY) BRIEF OVERVIEW!
© Peer Törngren
3
ITARC
About Quality
May 2015
Quality attributes of Software Architecture
• “Best Quality” - for what and whom?– There is often contradiction. What matters most?– There is always a price. What is your budget?
• Quality is subjective and context sensitive– What is quality – to YOU?– What is it worth – to YOU?
© Peer Törngren
4
ITARC
About Software (Architecture) Quality
• Software architecture drives quality of software systems– architecture manifested in concrete system– architecture quality visible in concrete systems
• Software quality requirements drive architecture• Formal
– ISO/IEC 25010:2011 Systems and software Quality Requirements and Evaluation
– ISO/IEC 9126 Software engineering – Product quality
May 2015
Quality attributes of Software Architecture
There is no single ”perfect” system or architecture!
© Peer Törngren
5
ITARC
QUALITY ATTRIBUTES
May 2015
Quality attributes of Software Architecture
© Peer Törngren
6
ITARC
Performance
• Speed (single user)• Load (multiple users – predictable, linear?)• Capacity (data volume – predictable, linear?)• Bandwidth and network dependency (asynchronous?)• Latency (chatty protocol?)• Footprint (resources)
May 2015
Quality attributes of Software Architecture
What if the system gets faster with more users and more
data?
© Peer Törngren
7
ITARC
Performance
May 2015
Quality attributes of Software Architecture
Like a rowing team, or a rapid stream.
© Peer Törngren
8
ITARC
Scalability
• Ability to adapt– Scale up (for performance)– Scale down (for economy)
• Ways to adapt– Vertical (bigger engine)– Horizontal (more engines)
• Time and effort to adapt– Manual (reconfigure and restart)– Dynamic (reconfigure ”in flight”)– Elastic (monitor and adapt automatically)
May 2015
Quality attributes of Software Architecture
What if the system would learn proactively scale to anticipated
load?
© Peer Törngren
9
ITARC
Scalability
May 2015
Quality attributes of Software Architecture
Like a mall scaling up for Christmas,
or a bar scaling down on Monday.
© Peer Törngren
10
ITARC
Security and Integrity
• Authentication – who are you?• Authorization – what can you do?• Audit Trail – what was done by who? And not?• Administration/Integration
– single sign-on– report/verify user permissions– user permissions synchronized across systems
• Integrity– sensitive data (personal)– “big data” analytics
• Threats – Attacks (internal/external)– Accidents
May 2015
Quality attributes of Software Architecture
What if the system could
detect and fight infections and self heal
from injuries?
© Peer Törngren
11
ITARC
Security and Integrity
May 2015
Quality attributes of Software Architecture
Like the human body, or any living
organism.
(antibodies)
© Peer Törngren
12
ITARC
Availability
• Reliability (uptime, MTBF)– System failure statistics?– Scheduled downtime (maintenance)?– Auto failover (”hot swap”, clusters)?
• Serviceability (downtime)– ”Hot” update?– Average downtime for service?– Average time to find and fix defects?
May 2015
Quality attributes of Software Architecture
What if the system never
goes down or is rebooted
for any reason? Ever?
© Peer Törngren
13
ITARC
Availability
May 2015
Quality attributes of Software Architecture
Like the Internet.
© Peer Törngren
14
ITARC
UX: Usability, Accessibility and Aesthetics
• Usable?– Novice vs veteran– Frequent power user vs random guest
• Accessible?– Mouse/keyboard?– High Contrast?– Screen reader?
• Good Looks?– Demo friendly (first impression, wow factor)– User friendly (lasting impression)– Modern (”in fashion”)
May 2015
Quality attributes of Software Architecture
What if the system was individually
“skinnable” to the taste of each user?
© Peer Törngren
15
ITARC
UX: Usability, Accessibility and Aesthetics
May 2015
Quality attributes of Software Architecture
Like a cell phone.
© Peer Törngren
16
ITARC
Globalization (i18N, L10N, G11N)
• Not just character sets and language …– UTF-8/UTF-16– Variants of English, German, Swedish …– Different regional settings (time/date formats)– Time zones (and daylight savings time)– Calendars– Holidays– BiDi (bidirectional), LTR/RTL– GUI (widget) mirroring– Icons (visual language)– Colors
• What do you need? What do you value? What can it cost?
May 2015
Quality attributes of Software Architecture
What if the system could be localized by anyone
at any time, when the need
arises?
© Peer Törngren
17
ITARC
Globalization (i18N, L10N, G11N)
May 2015
Quality attributes of Software Architecture
Like books and movies.
© Peer Törngren
18
ITARC
Robustness
• Productivity– Entry (learning threshold)– Evolution (adding/changing features)– Troubleshooting (finding and fixing defects)
• Problems– Complex dependencies– Complex combinatorial state– High Coupling/Low Cohesion– Unclean code
• Support– Documentation– Tooling– Online knowledge (community forums)
May 2015
Quality attributes of Software Architecture
What if the system would avoid bad code and let it
atrophy?
© Peer Törngren
19
ITARC
Robustness (Complexity, Productivity)
May 2015
Quality attributes of Software Architecture
Like unused muscles.
© Peer Törngren
20
ITARC
(Technical) Flexibility
• Multiple platforms (.Net/Java, Windows/Linux, Android/iOS, …)
• Multiple data sources (Oracle, SQL Server, DB2 …)• Standards conformance (http, JSON, JPA, WSDL …)
May 2015
Quality attributes of Software Architecture
What if the system would run in any technical
environment?
© Peer Törngren
21
ITARC
Flexibility
May 2015
Quality attributes of Software Architecture
Like immigrants in a foreign country.
© Peer Törngren
22
ITARC
Adaptability
• Integration (other systems)– Adapters (ERP systems)– Configuration
• Customization (business rules and behavior)– Extension Points (plugin architecture)– Dynamic types (dynamic object model)
May 2015
Quality attributes of Software Architecture
What if systems would negotiate, invent and adapt the best style of communication, interaction and
behavior?
© Peer Törngren
23
ITARC
Adaptability
May 2015
Quality attributes of Software Architecture
Like kids in the playground.
Or social people in general.
Like Darwin taught us.
© Peer Törngren
24
ITARC
Administration
• Installation (automated)• Updates (no downtime)• Monitor and Control (standards, eg JMX, System Center)• Error handling (logs)• DevOps (cloud?)
May 2015
Quality attributes of Software Architecture
What if the system didn’t need a
system administrator?
© Peer Törngren
25
ITARC
Administration
May 2015
Quality attributes of Software Architecture
Like a self service restaurant or
shop.
© Peer Törngren
26
ITARC
Vitality (life expectancy)
May 2015
Quality attributes of Software Architecture
• Financial State (vendor, sponsors)• Active Community (open source or commercial)• Release Frequency• Roadmap• Number of users
What if the system was immortal?
© Peer Törngren
27
ITARC
Vitality (life expectancy)
May 2015
Quality attributes of Software Architecture
Like Gandalf? Like a lobster? Like Madonna?
© Peer Törngren
28
ITARC
MEASURES
May 2015
Quality attributes of Software Architecture
© Peer Törngren
29
ITARC
How to Measure Quality
• Benchmark (performance)• Metrics and Statistics (reliability, serviceability)• Certification (security, globalization, accessibility,
administration)• Prototype (performance, productivity)• Online activity (vitality, robustness)• Inspection and Evaluation (adaptability, flexibility)• Survey (usability, aesthetics)• Track Record and Reputation (all of the above?)
May 2015
Quality attributes of Software Architecture
Beauty is in the Eye of the Beholder …Context matters; best fit wins!
© Peer Törngren
30
ITARC
SUMMARY
What is software quality? Does architecture affect system quality?What is the value of software quality?
May 2015
Quality attributes of Software Architecture
© Peer Törngren
31
ITARC
What is Software Quality?
• subjective, relative and context sensitive• contradictive or paradoxical (sometimes)• predictable and measurable (mostly)• assessable (always) • not free (ever)
May 2015
Quality attributes of Software Architecture
© Peer Törngren
32
ITARC
Does Architecture Affect System Quality?
• Architecture indicates system quality• Systems verify architecture quality• Quality must be put in context• Test – look at these two vehicles:
– Which seems faster? – Which seems to carry more load?– Does the architecture matter?– Does intended usage matter?
May 2015
Quality attributes of Software Architecture
© Peer Törngren
33
ITARC
What is the Value of Software Quality?
May 2015
Quality attributes of Software Architecture
• Which attributes are valuable– to you?
• How valuable are they– to you?
• How do you measure value – in your context?
Subjective and Context Sensitive!
© Peer Törngren
34
ITARC
May 2015
Quality attributes of Software Architecture
the end [email protected]
People who say it can’t be done should not interrupt those who are doing it.
http://www.thearchitectbook.com