Chapter Summary

aaarrrttt
Chapter14.pdf

Chapter 14:

Beyond Functionality: Software Quality Attributes

© Karl E. Wiegers

1

Quality Distinguishes Products

 Functional requirements (features) may only satisfy a customer

 Quality attributes make customers “enjoy” your product (an old-fashioned view of quality)

 Quality attributes are often critical to product usefulness (the architecture-centric view)

 Quality attributes are harder to elicit from customers—they don’t usually think to volunteer them

2

Software Quality Attributes

3

1. Quality Attributes For Users

 Availability ◦ Uptime / (Uptime + Downtime) ◦ Downtime can be scheduled or unscheduled ◦ Driven by business and safety needs ◦ Could be time-dependent

 Efficiency ◦ Minimal consumption of resources ◦ Needs to consider spikes, growth

4

 Flexibility ◦ Ease of adding new capabilities ◦ Essential for incremental, iterative development

 Integrity ◦ Blocking unwanted access ◦ Enforcing privacy ◦ Preventing data loss

5

 Interoperability ◦ Exchange of data with other systems ◦ File and message formats

 Reliability ◦ Operation without failure ◦ Related to availability ◦ Trade off impact severity against development

cost.

6

 Robustness ◦ Continued operation when faced with invalid

inputs, unexpected conditions

 Usability ◦ Can be very subjective ◦ Effort to provide inputs, use outputs ◦ Often specified in terms of task times

7

2. Quality Attributes For Developers

 Maintainability ◦ Defect correction ◦ Feature enhancement ◦ Related to flexibility ◦ Understandable, simple design

8

 Portability ◦ Preparing for variations in operating environment ◦ Hardware platform, operating system, database, GUI.

 Reusability ◦ Using components in other applications ◦ Modular, independent, well-documented, generic

software

 Testability ◦ Ease of looking for, finding defects ◦ Affects design guidelines for complexity

9

3. Performance Requirements

 Speed of functions ◦ Response time ◦ Throughput ◦ Capacity ◦ Timing deadlines

 Can, however, affect system safety

10

Summary of Quality Attributes

11

4. Documenting Quality Attributes (quantifiable and verifiable)

12

13

5. Quality Attribute Relationships (Trade-offs)

14

6. Implementing Nonfunctional Requirements

15

Integrity, interoperability, robustness, usability, safety

Functional requirements

Availability, efficiency, flexibility, performance, reliability

System architecture

Interoperability, usability Design constraint

Flexibility, maintainability, portability, reliability, reusability, testability, usability

Design guideline

Portability Implementation constraint

END

16