39
Designing software architectures to achieve quality attribute requirements F. Bachmann, L. Bass, M. Klein and C. Shelton IEE Proceedings Software Tzu-Chin Chien 1

Designing software architectures to achieve quality attribute requirements

  • Upload
    haru

  • View
    43

  • Download
    0

Embed Size (px)

DESCRIPTION

Designing software architectures to achieve quality attribute requirements. F. Bachmann, L. Bass, M. Klein and C. Shelton IEE Proceedings Software Tzu-Chin Chien. O utline. Preface This paper goal Prior work This paper approach Experiment Conclusion . Preface. - PowerPoint PPT Presentation

Citation preview

Page 1: Designing software architectures to achieve  quality attribute  requirements

1

Designing software architectures to achieve quality attribute requirements

F. Bachmann, L. Bass, M. Klein and C. SheltonIEE Proceedings Software

Tzu-Chin Chien

Page 2: Designing software architectures to achieve  quality attribute  requirements

2

Outline

• Preface• This paper goal• Prior work• This paper approach• Experiment• Conclusion

Page 3: Designing software architectures to achieve  quality attribute  requirements

3

Preface

1. Architecture is too abstract to understand.

2. Critical link between requirements engineering and design.

3. Architecture can grow, because software has become more and more complex.

Page 4: Designing software architectures to achieve  quality attribute  requirements

4

About this paper

• The authors describe a structure called a reasoning framework as a modularization of quality attribute knowledge.

1. User interface friendly (understandability)

2. Change independently (operability) reasoning

framework

Page 5: Designing software architectures to achieve  quality attribute  requirements

5

Reasoning work

• Each reasoning framework provides mechanisms that will transform the architecture with respect to a given quality attribute theory.

Reasoning framework

Page 6: Designing software architectures to achieve  quality attribute  requirements

6

Outline

• Preface• This paper goal• Prior work• This paper approach• Experiment• Conclusion

Page 7: Designing software architectures to achieve  quality attribute  requirements

7

Prior work

• There are three basic approaches to software architecture design with respect to quality attribute requirements.– 1. Nonfunctional requirement approach (NFR)– 2. The quality attribute model approach– 3. The intuitive design approach

Page 8: Designing software architectures to achieve  quality attribute  requirements

8

1.Nonfunctional requirement approach (NFR)

• This idea is that the best one can be determined is that various architectural decisions help or hurt various quality attributes.

But there are two problems

+

Page 9: Designing software architectures to achieve  quality attribute  requirements

9

NFR’s problem

1. The architect must rely on intuition to determine which decisions to consider.

2. Whether a particular decision will help or hurt a particular quality attribute is very much a question of context.

e.g. Using modularization too much would hurt performance, but it supports deployment onto multiple processors will help performance (not hurt it) .

Page 10: Designing software architectures to achieve  quality attribute  requirements

10

2.The quality attribute model approach

• ISO9126 lists 6 primary and 21 secondary quality attribute knowledge and practice.

But there are three problems

Page 11: Designing software architectures to achieve  quality attribute  requirements

11

QAM’s problem

1. Not every quality attribute has an existing predictive method.

2. Not every architecture is amenable to analysis by various quality attribute models. (e.g. RMA:SJF preemptive)

3. Quality attribute models may not scale well.

Page 12: Designing software architectures to achieve  quality attribute  requirements

12

3.The intuitive design approach

Architectural driver

• These methods are effective at organizing requirements but depend to a large extent on the architect to find solutions for the satisfaction of specific quality attribute requirements.

Page 13: Designing software architectures to achieve  quality attribute  requirements

13

Attribute driven method

Architectural drivers

Pattern Tactics

Right?

Remaining functionality

Interface

Verify

Decompose

Part

Refine

Finish

Next part

Page 14: Designing software architectures to achieve  quality attribute  requirements

14

Short summary

1. Nonfunctional requirements approach– Choose quality goal

2. Quality attribute model– Find relationship among the concept , but not scale well

3. Attribute driven model– Scale well

Page 15: Designing software architectures to achieve  quality attribute  requirements

15

Outline

• Preface• This paper goal• Prior work• This paper approach• Experiment• Conclusion

Page 16: Designing software architectures to achieve  quality attribute  requirements

16

This paper approach

• A key concept in our design philosophy is describing an architecture partially in terms of responsibilities.

Example: The checking of a password in support of an authentication requirement is a responsibility of the software.

Page 17: Designing software architectures to achieve  quality attribute  requirements

17

This paper approach

• Combines three approaches (NFR,QAM, ADD)

NFR

QAM

ADD

Choose the most important quality attribute goal

Rational architectural decision

Reduce problem of scale in using QAM

• Modularizing quality attribute It can be used inside a general design model.

Page 18: Designing software architectures to achieve  quality attribute  requirements

18

Reasoning framework

• One of the inputs into a reasoning framework is a description of the current state of the architecture design.

Page 19: Designing software architectures to achieve  quality attribute  requirements

19

This paper approach

• Steps– 1. find quality attribute requirements

– 2. satisfy a quality attribute goal

– 3. response measure

– 4. architectural transformations (when the result in step3 missed)

Page 20: Designing software architectures to achieve  quality attribute  requirements

20

Step1: Quality attribute requirements

A general scenario is a system independent description of a quality attribute requirement. It has six parts:

1. Stimulus 2. Source of the stimulus 3. Environment 4. Artifact5. Response6. Response measure

Page 21: Designing software architectures to achieve  quality attribute  requirements

21

Step2: Satisfying a quality attribute

• A single quality attribute requirement and describe the elements we use to determine whether it is satisfied by the current architecture design.

Page 22: Designing software architectures to achieve  quality attribute  requirements

22

Step2 & Step3

• Quality attribute model& Response measure

Page 23: Designing software architectures to achieve  quality attribute  requirements

23

Step5: Architecture transformations (1)

• Tactics is needed before Architecture transformations

Page 24: Designing software architectures to achieve  quality attribute  requirements

24

Step4: Architecture transformations (2)

• An architectural tactic can change the structure of an architecture

1. Out of response measure

2. Use tactic

3. Make sure

Page 25: Designing software architectures to achieve  quality attribute  requirements

25

Outline

• Preface• This paper goal• Prior work• This paper approach• Experiment• Conclusion

Page 26: Designing software architectures to achieve  quality attribute  requirements

26

Sample problem

The problem is

1. to receive automotive sensor information

2. to determine whether the sensors suggest either a problem with the environment being sensed or with the sensors themselves.

Page 27: Designing software architectures to achieve  quality attribute  requirements

27

Figure

Problem’s data flow and their responsibility

Page 28: Designing software architectures to achieve  quality attribute  requirements

28

Find quality attribute requirements

Page 29: Designing software architectures to achieve  quality attribute  requirements

29

Satisfy a quality attribute goal (modifiability)

Page 30: Designing software architectures to achieve  quality attribute  requirements

30

Response measure

Problem’s data flow and their responsibility

0.8 0.80.2

1

1

1*1 + 1*0.8 + 1*0.8 * 0.8+ 2*1 + 2 * 0.2 > 3 day

Page 31: Designing software architectures to achieve  quality attribute  requirements

31

Architecture transformations : Abstract common service

Page 32: Designing software architectures to achieve  quality attribute  requirements

32

Figure

Page 33: Designing software architectures to achieve  quality attribute  requirements

33

Change

• The costs of modifying the responsibilities ‘convert input into internal syntax’ and ‘determine sensor status’ are reduced since the common services have been removed from them.

• The new responsibility ‘receive input from sensor’ must be assigned a cost of modification.

Page 34: Designing software architectures to achieve  quality attribute  requirements

34

Table

Page 35: Designing software architectures to achieve  quality attribute  requirements

35

Response measure

0.8

0.5

0.2 0.2

1*1 + 1*0.8 + 1*0.8 * 0.2 + 1*0.8 * 0.2 * 0.2 + 1 * 0.5 < 3 day

1

Page 36: Designing software architectures to achieve  quality attribute  requirements

36

Using ADD to scale

• There are three problems of scale associated with reasoning frameworks:

1. The number of codified reasoning frameworks is small.2. Each reasoning framework should go deeper.3. The solvers for any particular reasoning framework may

not scale well with respect to the number of elements in the architecture.

Page 37: Designing software architectures to achieve  quality attribute  requirements

37

Use of reasoning framework within ADD

• This paper modify 2b and 2c of ADD

Original : Choose architectural patterns and tactics that satisfy the architecture drivers, and Allocate remaining functionality.

Now: Choose architectural patterns and tactics and allocate functionality to satisfy the architectural drivers with the assistance of codified reasoning frameworks.

Architecture drivers : There are many different opinions and preferences when it comes to how we should deal with software architecture.

Page 38: Designing software architectures to achieve  quality attribute  requirements

38

Outline

• Preface• This paper goal• Prior work• This paper approach• Experiment• Conclusion

Page 39: Designing software architectures to achieve  quality attribute  requirements

39

Conclusion

• This enables a method that uses quality attribute reasoning frameworks to treat them in a “plug and play” fashion.

• A formal approach does not support designing for non-explicit requirements.

• The reasoning frameworks require a level of formality in specification of variables that is not always natural to an architect.