13
1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance

1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance

  • View
    215

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance

1

Software Testing and Quality Assurance

Lecture 41 – Software Quality Assurance

Page 2: 1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance

2

Lecture Objectives Designing for performance Static performance model

Execution Graph Analysis of Execution Graphs

Page 3: 1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance

3

Designing for performance Take performance requirements into

account at each stage in the design process.

Engineering for performance is An iterative process Apply at any stage in the development

process

Page 4: 1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance

4

Designing for performance Step 1: Develop a design concept for the system. Step 2: Model the design (as an execution graph),

gather data and evaluate the model to estimate if it meets performance goals;

Step 2: consider design alternatives, where feasible, including:

Replacing expensive operations with less expensive operations;

Eliminating bottlenecks; Step 3: Repeat the process until predicted

performance is acceptable or improvement become too hard or too complex to make.

Page 5: 1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance

5

Static performance model Execution graphs as they fit well with

modern design methods. Execution graphs have

Control structures – notation for sequencing, conditional branching, loops and process creation.

Concurrent control structures – notation to support concurrency and synchronization.

Page 6: 1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance

6

Page 7: 1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance

7

Execution Graph

Page 8: 1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance

8

Fork/Join Example

Page 9: 1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance

9

Analysis of Execution Graphs Graph reduction

Replacing a graph structure by a single reduced node.

Select one sub-graph that can be replaced by a reduction rule to result in a single node that captures the performance attributes of whole sub-system.

Repeat until we have only a single node that captures the performance attribute of the whole system.

Page 10: 1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance

10

Analysis of Execution Graphs Reduction rules

Sequential-path rule – add the times of each node in the sequence

Repetition-path rule – multiply the time of loop body by the number of iterations.

Page 11: 1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance

11

Analysis of Execution Graphs Conditional paths

Average case: multiply the time of each node by its probability of execution + time for computing the choice.

Best case: find the shortest execution time for all the choices + time for computing the choice.

Worst case: find the longest execution time + time for computing the choice.

Page 12: 1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance

12

Page 13: 1 Software Testing and Quality Assurance Lecture 41 – Software Quality Assurance

13

Key points Engineering for performance is an

iterative process that apply at any stage in the development process.

Model the design as an execution graph.

Analyze the execution graph using graph reduction rules.