how to effectively evaluate software architecture and identify risks€¦ · 7 webinar atam...

52
7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture evaluations Felix Bachmann

Upload: others

Post on 17-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

7

Webinar ATAM principles© 2009 Carnegie Mellon University

The principles of successful

architecture evaluations

Felix Bachmann

Page 2: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

8

Webinar ATAM principles© 2009 Carnegie Mellon University

Page 3: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

9

Webinar ATAM principles© 2009 Carnegie Mellon University

Do You Have the Right Architecture?

Page 4: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

10

Webinar ATAM principles© 2009 Carnegie Mellon University

Felix Bachmann

SEI senior member of

technical staff.

Certified ATAM lead

evaluator

Co-author “Documenting

Software Architectures –

Views & Beyond”

Page 5: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

11

Webinar ATAM principles© 2009 Carnegie Mellon University

Polling Question

How did you hear about this webinar?

• Email invitation from the SEI

• SEI Website

• Website with webinar calendar (ie www.webinar-directory.com)

• Social Media site ( LinkedIn, Twitter)

• Other

Page 6: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

12

Webinar ATAM principles© 2009 Carnegie Mellon University

Agenda

To answer this question we need:

A measure

An understanding

of the architecture

The know how

Page 7: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

13

Webinar ATAM principles© 2009 Carnegie Mellon University

Polling Questions

Have you already participated in an architecture evaluation?

•Yes

•No

I

Page 8: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

14

Webinar ATAM principles© 2009 Carnegie Mellon University

Principles of Architecture Evaluation

The Measure

Page 9: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

15

Webinar ATAM principles© 2009 Carnegie Mellon University

ARCHITECTUREQUALITY

ATTRIBUTES

DETERMINE

SATISFY

Building the Yardstick – 1

What do we need to measure of an architecture

to decide if the architecture is good or not?

Principle 1: Quality Attributes determine the architecture.

Therefore we need to measure the quality attribute properties of the

architecture.

Page 10: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

16

Webinar ATAM principles© 2009 Carnegie Mellon University

Building the Yardstick – 2

Where do quality attributes come from?

Principle 2: Business Goals determine quality attribute requirements.

Therefore we need to understand the business goals of an

organization and translate them into quality attribute requirements.

QUALITY

ATTRIBUTESARCHITECTURE

DETERMINE

SATISFY

BUSINESS GOALS

DETERMINE

SUPPORT

Page 11: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

17

Webinar ATAM principles© 2009 Carnegie Mellon University

Building the Yardstick – 3

How do we get the business goals?

Principle 3: Business Goals represent what is important to the

stakeholder communities.

Therefore we need to let the stakeholders produce the quality

attribute requirements.

QUALITY

ATTRIBUTESARCHITECTURE

DETERMINE

SATISFY

BUSINESS GOALS

DETERMINE

SUPPORT

Page 12: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

18

Webinar ATAM principles© 2009 Carnegie Mellon University

Building the Yardstick – 4

Can quality attribute requirements be used as a measure?

Principle 4: Quality attributes requirements need to be specified with

good measures.

We use six-part scenarios for this purpose.

QUALITY

ATTRIBUTESARCHITECTURE

DETERMINE

SATISFY

BUSINESS GOALS

DETERMINE

SUPPORT

Page 13: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

19

Webinar ATAM principles© 2009 Carnegie Mellon University

The Yardstick

Principle 1: Quality Attributes determine

the architecture.

Principle 2: Business Goals determine

quality attribute requirements.

Principle 3: Business Goals represent

what’s important to its

stakeholder communities.

Principle 4: Quality attributes

requirements need to be

specified with good measures.

Creating the yardstick means:

Eliciting the organizational needs from the stakeholders and

translating them into quality attribute requirements in a precise

and measurable way.

Page 14: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

20

Webinar ATAM principles© 2009 Carnegie Mellon University

Principles of Architecture Evaluation

Understanding the Architecture

Page 15: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

21

Webinar ATAM principles© 2009 Carnegie Mellon University

Understanding the Architecture – 1

Remember:

Principle 1: Quality Attributes determine the architecture.

Principle 5: To understand an architecture you must understand its

quality attribute properties.

In most cases those properties are unknown and/or undocumented.

We extract the architecture approaches from the architecture.

QUALITY

ATTRIBUTESARCHITECTURE

DETERMINE

SATISFY

Page 16: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

22

Webinar ATAM principles© 2009 Carnegie Mellon University

Understanding the Architecture – 2

How much do I need to know about the architecture?

Principle 6: The most important quality attribute requirements

determine the parts of the system to focus the analysis on.

We use a two dimensional prioritization (importance and difficulty) to

determine the trouble spots in the architecture.

QUALITY

ATTRIBUTESARCHITECTURE

DETERMINE DETERMINE

Page 17: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

23

Webinar ATAM principles© 2009 Carnegie Mellon University

Understanding the Architecture – 3

Do I have to care about functionality of the architecture at all?

Principle 7: The distribution of functionality in the architecture

contributes to the quality attribute properties.

We use the quality attribute scenarios to determine the functionality

to focus on.

QUALITY

ATTRIBUTESARCHITECTURE

DETERMINE DETERMINE

Page 18: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

24

Webinar ATAM principles© 2009 Carnegie Mellon University

The Architecture Understanding

Principle 5: To understand an architecture

you must understand its quality

attribute properties.

Principle 6: The most important quality

attribute requirements determine

the parts of the system to focus

the analysis on.

Principle 7: The distribution of functionality in

the architecture contributes to the

quality attribute properties.

Understanding the architecture means:

Understand the approaches the architect used, understand the

functional distribution and understand where to find the trouble

spots.

Page 19: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

25

Webinar ATAM principles© 2009 Carnegie Mellon University

Principles of Architecture Evaluation

The Know How

Page 20: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

26

Webinar ATAM principles© 2009 Carnegie Mellon University

How to Evaluate the Architecture – 1

We have the yardstick.

We localized the interesting areas of the architecture.

Principle 8: “Guilty until proven innocent.”

It is the architect’s job to make the case that the architecture has the

right quality attribute properties.

How exactly do we measure the architecture?

Page 21: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

27

Webinar ATAM principles© 2009 Carnegie Mellon University

How to Evaluate the Architecture – 2

The architect should have the best understanding of the

architecture.

The architect should know all the stakeholders’ expectations.

The architect should have created the architecture to fulfill those

stakeholder expectations.

Do you trust him/her?

Doing architecture evaluation always means not to believe the

architect.

The architect knows all about the strengths of the architecture.

The architect may not know its weaknesses.

Page 22: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

28

Webinar ATAM principles© 2009 Carnegie Mellon University

How to Evaluate the Architecture – 3

If we don’t trust the architect, whom can we trust?

Principle 9: Proper analysis disallows assumptions. Only facts count.

Facts can be provided by formal analysis, prototype results, or

reasoning. The facts provided have to convince the evaluator.

We mostly use interviews for uncovering the facts.

Page 23: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

29

Webinar ATAM principles© 2009 Carnegie Mellon University

How to Evaluate the Architecture – 4

A final principle.

Principle 10: Evaluated organizations must own the evaluation

results.

Adhering to this principle does not make the evaluation better.

It increases the chances of producing a good product.

Page 24: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

30

Webinar ATAM principles© 2009 Carnegie Mellon University

Principle 8: “Guilty until proven innocent.”

Principle 9: Proper analysis disallows

assumptions. Only facts count.

Principle 10: Evaluated organizations must

own the evaluation results.

Performing an evaluation means:

Do not blindly trust anything that is provided. Ask for convincing

evidence. Failure to provide this evidence results in risks.

Performing the Evaluation

Page 25: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

31

Webinar ATAM principles© 2009 Carnegie Mellon University

Polling Question

Principle 8: “Guilty until proven innocent.”

Principle 1: Quality Attributes determine the architecture.

Principle 4: Quality attributes requirements need to be specified with good measures.

Principle 5: To understand an architecture you must understand its quality attribute

properties.

Principle 7: The distribution of functionality in the architecture contributes to the quality

attribute properties.

In your opinion, which of these principles has the biggest impact on the

success of an architecture evaluation?

Page 26: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

32

Webinar ATAM principles© 2009 Carnegie Mellon University

Principles of Architecture Evaluation

Use the Principles or not?

Page 27: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

33

Webinar ATAM principles© 2009 Carnegie Mellon University

Applying Principles – Or Not?

Using an architecture evaluation method that adheres to all the

principles can almost guarantee successful results.

An architecture evaluation method that does not use any of the

principles will very likely end in a disaster.

If just one principle is not used, will that make the evaluation a failure?

Maybe – maybe not

In a specific context, the adherence to some principles is more

important than to others.

The better a method utilizes the principles, the higher the chances for

success.

Page 28: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

34

Webinar ATAM principles© 2009 Carnegie Mellon University

Perception of Evaluation Results

Evaluation 1 Evaluation 2 Evaluation 3

Perceived value of the

Evaluation Results

Acceptable

Unacceptable

Organization

specific

Evaluations

Page 29: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

35

Webinar ATAM principles© 2009 Carnegie Mellon University

Your Decision!

… and carefully watch the results!

Page 30: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

36

Webinar ATAM principles© 2009 Carnegie Mellon University

How does the SEI ATAM®

utilize these principles?

®Architecture Tradeoff Analysis Method and ATAM are registered in the U.S. Patent and Trademark Office by Carnegie Mellon University

Page 31: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

37

Webinar ATAM principles© 2009 Carnegie Mellon University

Documenting Software

Architectures: Views

and Beyond

Software Architecture in

Practice, 2nd Edition

Evaluating Software

Architectures: Methods

and Case Studies

Software Product Lines:

Practices and Patterns

Associated Texts

Page 32: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

38

Webinar ATAM principles© 2009 Carnegie Mellon University

Requirements

Software Architecture:

Principles and Practice

Documenting

Software Architectures

Software Architecture

Design and Analysis

Software Product Lines

ATAM ® Evaluator Training

ATAM ® Leader Training

ATAM ® Observation

SoftwareArchitectureProfessional

ATAM®

EvaluatorATAM®

Lead Evaluator

Three Certificate Programs

Architecture Tradeoff Analysis Method ® (ATAM ® )

Certificate Program Course Matrix

Page 33: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

39

Webinar ATAM principles© 2009 Carnegie Mellon University

Steps of the SEI ATAM

1. Present the ATAM

2. Present Business Drivers

3. Present Architecture

4. Identify Architectural Approaches

5. Generate Quality Attribute Utility Tree

6. Analyze Architectural Approaches

7. Brainstorm and Prioritize Scenarios

8. Analyze Architectural Approaches

9. Present Results

Page 34: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

40

Webinar ATAM principles© 2009 Carnegie Mellon University

Step 1 – Present the ATAM

Purpose:

Inform stakeholders about what will happen.

Set the context.

Ensure a successful execution of the ATAM

Principles that apply to this step:

This step actually does not do any part of an

architecture evaluation. Therefore none of the

principles applies.

Page 35: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

41

Webinar ATAM principles© 2009 Carnegie Mellon University

Step 2 – Present Business Drivers

Purpose:

Everyone, the evaluation team and stakeholders,

understand what needs to be achieved. Starts building

the yardstick

Principles that apply to this step:

Principle 3: Business Goals represent what’s important

to its stakeholder communities.

Principle 10: Evaluated organizations must own the

evaluation results.

Page 36: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

42

Webinar ATAM principles© 2009 Carnegie Mellon University

Step 3 – Present Architecture

Purpose:

Setting the scope and understanding the big picture of

the architecture.

Principles that apply to this step:

Principle 5: To understand an architecture you must

understand its quality attribute properties.

Page 37: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

43

Webinar ATAM principles© 2009 Carnegie Mellon University

Step 4 – Identify Architectural Approaches

Purpose:

Understand the concepts realized in the architecture.

Divide and conquer, discover supported quality

attributes.

Principles that apply to this step:

Principle 1: Quality Attributes determine the

architecture.

Principle 6: The most important quality attribute

requirements determine the parts of the system to focus

the analysis on.

Principle 10: Evaluated organizations must own the

evaluation results.

Page 38: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

44

Webinar ATAM principles© 2009 Carnegie Mellon University

Purpose:

Translate business drivers into quality attributes

Make the quality attributes specific and measurable.

Achieve coverage of all business drivers.

Prioritization selects the scenarios with the highest

chance of revealing risks.

Mechanism

Utility tree with detailed six part quality attribute

scenarios as leaves. Two dimensional prioritization.

Step 5 – Generate Quality Attribute Utility Tree – 1

More …

Page 39: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

45

Webinar ATAM principles© 2009 Carnegie Mellon University

Step 5 – Generate Quality Attribute Utility Tree – 2

Principles that apply to this step:

Principle 2: Business Goals determine quality attribute

requirements.

Principle 4: Quality attributes requirements need to be

specified with good measures.

Principle 6: The most important quality attribute

requirements determine the parts of the system to focus

the analysis on.

Principle 10: Evaluated organizations must own the

evaluation results.

Page 40: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

46

Webinar ATAM principles© 2009 Carnegie Mellon University

Step 6 – Analyze Architectural Approaches – 1

Purpose:

Architect to make the compelling case why the

architecture supports the scenarios. If not, risks are

identified.

Mechanism

Interviewing the architect. Architect needs to convince

evaluator.

Page 41: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

47

Webinar ATAM principles© 2009 Carnegie Mellon University

Step 6 – Analyze Architectural Approaches – 2

Principle 1: Quality Attributes determine the

architecture.

Principle 7: The distribution of functionality in the

architecture contributes to the quality attribute

properties.

Principle 8: “Guilty until proven innocent.”

Principle 9: Proper analysis disallows assumptions.

Only facts count.

Principle 10: Evaluated organizations must own the

evaluation results.

Principles that apply to this step:

Principle 1:

Principle 7:

Principle 8:

Principle 9:

Principle 10:

Page 42: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

48

Webinar ATAM principles© 2009 Carnegie Mellon University

Step 7 – Brainstorm and Prioritize Scenarios

Purpose:

Verify with stakeholders that step 5 actually achieved

coverage.

Mechanism

Scenario brainstorming.

Prioritization that selects scenarios important to multiple

stakeholders.

Principles that apply to this step:

Principle 3: Business Goals represent what’s important

to its stakeholder communities.

Principle 6: The most important quality attribute

requirements determine the parts of the system to focus

the analysis on.

Page 43: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

49

Webinar ATAM principles© 2009 Carnegie Mellon University

Step 8 – Analyze Architectural Approaches – 1

Purpose:

Architect to make the compelling case why the

architecture supports the scenarios. If not, risks are

identified.

Mechanism

Interviewing the architect. Architect needs to convince

evaluator.

Page 44: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

50

Webinar ATAM principles© 2009 Carnegie Mellon University

Step 8 – Analyze Architectural Approaches – 2

Principles that apply to this step:

Principle 1: Quality Attributes determine the

architecture.

Principle 7: The distribution of functionality in the

architecture contributes to the quality attribute

properties.

Principle 8: “Guilty until proven innocent.”

Principle 9: Proper analysis disallows assumptions.

Only facts count.

Principle 10: Evaluated organizations must own the

evaluation results.

Page 45: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

51

Webinar ATAM principles© 2009 Carnegie Mellon University

Step 9 – Present Results

Purpose:

Provide feedback to all stakeholders.

Provide results and show how valuable their input was

to ensure their future participation.

Principles that apply to this step:

Principle 10: Evaluated organizations must own the

evaluation results.

Page 46: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

52

Webinar ATAM principles© 2009 Carnegie Mellon University

Questions?

Page 47: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

1

Webinar ATAM principles© 2009 Carnegie Mellon University

Page 48: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

2

Webinar ATAM principles© 2009 Carnegie Mellon University

Page 49: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

3

Webinar ATAM principles© 2009 Carnegie Mellon University

CERT's Podcast Series:

Security for Business Leaderswww.cert.org/podcast/

Page 50: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

4

Webinar ATAM principles© 2009 Carnegie Mellon University

Page 51: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

5

Webinar ATAM principles© 2009 Carnegie Mellon University

Page 52: How to Effectively Evaluate Software Architecture and Identify Risks€¦ · 7 Webinar ATAM principles © 2009 Carnegie Mellon University The principles of successful architecture

6

Webinar ATAM principles© 2009 Carnegie Mellon University