Software Quality. Lecture 4 CISC 323. Winter 2006

Size: px
Start display at page:

Download "Software Quality. Lecture 4 CISC 323. Winter 2006"

Transcription

1 Software Quality Lecture 4 CISC 323 Winter 2006 Prof. Lamb malamb@cs.queensu.ca Prof. Kelly kelly-d@rmc.ca

2 Required Reading Barbara Kitchenam, Sheri Lawrence Pfleeger; The Elusive Target, IEEE Software Jan.1996, pp Available in courseware 2

3 Outline What does quality mean? How many different ways can we look at software quality? How can we achieve software quality? 3

4 What would quality mean to you? 4

5 A Beginning List of Qualities safety critical life critical health critical mission critical business critical reliability fault tolerance trustworthy conveying confidence 5

6 Microsoft Quality Focus Functions supported (functionality) Time to Market Implementation defects remaining Achieved by tight well-established schedules rapid development heavy reliance on testing little documentation evolving requirements vision statement 6

7 Lists of Qualities Usability, Flexibility, Adaptability, Testability, Readability, Portability, Device independence, Reusability, Interoperability, Time efficiency, Device efficiency, Integrity, Security, Accuracy, Robustness, Completeness, Consistency, Accountability, Accessibility, Self descriptive, Fault tolerant, Conciseness, Augmentability, Modifiability, Understandability, Clarity, Resilience, Validity, Generality, Minimality, Modularity, Safety, Expandability,Timeliness, Functionality, Cost, Correctness, Reliability, Maintainability, Confidence, Suitability, Traceability, Verifiability, Precision, 7

8 Definitions of quality Oxford Dictionary: the standard of something when compared to other things like it (a wine of excellent quality); of high quality, general excellence Crosby: zero defects Juran: Fitness for Purpose ISO standard: The totality of features and characteristics of a product or service that bear on its ability to satisfy specified or implied needs Dept. of Defense (USA): The degree to which the attributes of the software enable it to perform its intended end use 8

9 How many different ways can we look at software quality? 9

10 From Kitchenham and Pfleeger Five different views 10

11 Other Views of Quality Multidimensional portability, usability, functionality,... 11

12 Other Views of Quality Subject to constraints regulations resources people hardware cost time 12

13 Other Views of Quality Acceptable compromises less functionality = lower cost buggier = faster time to market fewer options = simpler software 13

14 Other Views of Quality Not independent efficiency versus modularity portability versus performance security versus fault tolerance 14

15 Other Views of Quality Not absolute different levels of quality are acceptable for different software types eg. word processor versus avionics software different levels of quality are acceptable for different stakeholders managers versus developers experienced users versus novices 15

16 How can we achieve software quality? 16

17 Ways we try to achieve quality By making sure everyone understands the qualities that must be embedded in the product By determining up front how to achieve each quality eg. requirements, implementation, design, standards By establishing and enforcing a process that is focused on relevant qualities eg. testing, inspection, documentation, measurement, formal methods, procedures 17

18 Ways we try to achieve quality Using a quality model high level qualities are associated with low level qualities address the low level qualities to achieve the high level qualities 18

19 McCall's Quality Model 19

20 Qualities from ISO 9126 Functionality Reliability Suitability, accuracy, interoperability, compliance, security Maturity, fault tolerance, recoverability Usability Efficiency Understandability, learnability, operability Time behaviour, resource behaviour Maintainability Analysability, changeability, stability, testability Portability Adaptability, installability, conformance, replaceability 20

21 Problems with Quality Models choices of high and low level qualities are arbitrary chosen with particular types of software in mind? definition of each quality is not standardized some views of quality are omitted difficult questions are not addressed what do we actually do to achieve quality? how do we know when we have achieved it? 21

22 Additional problems when measuring quality Some quality attributes are discernible at runtime performance responsiveness of system security ability to resist unauthorized attempts at usage at denial of service availability proportion of time system is up and running (mean time to failure)/(mean time to failure + mean time to repair) functionality ability to do intended work usability learnability, efficiency, memorability, error avoidance, error handling, satisfaction 22

23 Additional problems when measuring quality Some quality attributes are not discernible at runtime modifiability ability to make changes quickly and cost effectively portability ability to run under different computing environments reusability ability for structures and components to be reused in future applications integrability ability to make separately developed components work correctly together testability ease with which software can be made to demonstrate its faults through execution based testing 23