© peer törngren 1 itarc may 2015 quality attributes of software architecture quality attributes of...

34
© 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 minute s

Upload: abigayle-williamson

Post on 22-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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

Page 2: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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!

Page 3: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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?

Page 4: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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!

Page 5: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© Peer Törngren

5

ITARC

QUALITY ATTRIBUTES

May 2015

Quality attributes of Software Architecture

Page 6: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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?

Page 7: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© Peer Törngren

7

ITARC

Performance

May 2015

Quality attributes of Software Architecture

Like a rowing team, or a rapid stream.

Page 8: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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?

Page 9: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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.

Page 10: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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?

Page 11: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© Peer Törngren

11

ITARC

Security and Integrity

May 2015

Quality attributes of Software Architecture

Like the human body, or any living

organism.

(antibodies)

Page 12: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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?

Page 13: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© Peer Törngren

13

ITARC

Availability

May 2015

Quality attributes of Software Architecture

Like the Internet.

Page 14: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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?

Page 15: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© Peer Törngren

15

ITARC

UX: Usability, Accessibility and Aesthetics

May 2015

Quality attributes of Software Architecture

Like a cell phone.

Page 16: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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?

Page 17: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© Peer Törngren

17

ITARC

Globalization (i18N, L10N, G11N)

May 2015

Quality attributes of Software Architecture

Like books and movies.

Page 18: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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?

Page 19: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© Peer Törngren

19

ITARC

Robustness (Complexity, Productivity)

May 2015

Quality attributes of Software Architecture

Like unused muscles.

Page 20: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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?

Page 21: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© Peer Törngren

21

ITARC

Flexibility

May 2015

Quality attributes of Software Architecture

Like immigrants in a foreign country.

Page 22: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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?

Page 23: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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.

Page 24: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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?

Page 25: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© Peer Törngren

25

ITARC

Administration

May 2015

Quality attributes of Software Architecture

Like a self service restaurant or

shop.

Page 26: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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?

Page 27: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© Peer Törngren

27

ITARC

Vitality (life expectancy)

May 2015

Quality attributes of Software Architecture

Like Gandalf? Like a lobster? Like Madonna?

Page 28: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© Peer Törngren

28

ITARC

MEASURES

May 2015

Quality attributes of Software Architecture

Page 29: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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!

Page 30: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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

Page 31: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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

Page 32: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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

Page 33: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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!

Page 34: © Peer Törngren 1 ITARC May 2015 Quality attributes of Software Architecture Quality Attributes of Software Architecture What is software quality? Does

© 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