Download presentation
Presentation is loading. Please wait.
Published byChristopher Ellis Modified over 10 years ago
1
Software Metrics & Software Reliability UNIT III
1
2
Learning Objectives Software Metrics Software measurements What & Why
Token Count Halstead Software Science Measures Design Metrics Data Structure Metrics Information Flow Metrics
3
Learning Objectives Software Reliability Importance
Hardware Reliability & Software Reliability Failure and Faults Reliability Models Basic Model Logarithmic Poisson Model Software Quality Models CMM & ISO 9001
4
Software Metrics and Measurements
5
Objectives What is Measurement Metrics Why Measure
Question of interest Total Quality Management (TQM) Types of Software Metrics Metrics Program Approach Size Metrics LOC FPA Halstead’s Software Science Data Structure Metrics Information flow metrics
6
What is Measurement Process by which numbers are assigned to attributes of entities in the real world to describe them. An entity is an object (e.g. person, room) or an event (e.g. testing phase) in the real world. An attribute is a feature or property of an entity. Each of the software entity may have multiple attributes. (e.g. code inspected, number of defects found, duration of the project.)
7
Metrics Metrics are measurements collection of data about
project activities Resources deliverables. A unit of measurement of a software product or software related process All engineering discipline have metrics. Metrics help estimate projects measure project progress measure quality
8
Why Measure When you can measure what you are speaking about, and express it in numbers, you know something about it; but when you cannot measure it, when you cannot express it in numbers,your knowledge is of a meager and unsatisfactory kind Lord Kelvin You can’t control, what you can’t measure - De Marco If you wish to improve, you have got to measure it -Both ISO 9000 and CMM(I) require Metrics
9
Question of Interest How to measure the size of a software?
How much will it cost to develop a software? How many bugs can we expect? When can we stop testing? When can we release the software? What is the complexity of a module? What is the module strength & coupling? What is the reliability at the time of release? Which test technique is most effective? Are we testing hard or are we testing smart? Do we have a strong program or a weak test suite?
10
Total Quality Management (TQM)
A style of management aimed at achieving long-term success by linking quality with customer satisfaction. Basic key elements customer focus continuous improvement measurement and analysis
11
Continuous Improvement
Where you want to go? Where you are MEASURE - ANALYSE - IMPROVE
12
Types of Software Metrics (1)
Efficiency Productivity Reliability Functionality Complexity Maintainability Size (LOC or FP) Cost Effort Errors Defects Indirect Metrics Direct Metrics
13
Types of Software Metrics
Process Product Project
14
Process Metrics Effort required in the process Time to produce product
Effectiveness of defect removal during development Number of defects found during testing Maturity of process
15
Project Metrics Describe the characteristics of the project & its execution Schedule Size Effort No. of Software developers Staffing pattern over the life cycle of the product Productivity
16
Product Metrics Describe the characteristics of the product Complexity
performance Functionality, Usability, Efficiency, Reliability, Portability, Maintainability (ISO 9126) Defect Density Size etc.
17
Measuring Quality Correctness — the degree to which a program operates according to specification Maintainability—the degree to which a program is amenable to change Integrity—the degree to which a program is impervious to outside attack Usability—the degree to which a program is easy to use
18
Metrics Program Approach
Establish the goal of data collection Develop a list of questions of interest Establish Data categories Design and test data collection form Collect and validate data Analyse data
19
Size Metrics Allows for estimation of effort, time scale & total number of faults Lines of code (LOC) Useful if, same language & coding style etc. Token Count Function Point
20
Size Metrics 01 SUBROUTINE SORT(X,N) 02
INTEGER X(100), N, I, J, SAVE, IM1 03 C THIS ROUTINE SORTS ARRAY X INTO ASCENDING 04 C ORDER 05 IF (N.LT.2) GOTO 200 06 DO 210 I = 2, N 07 IM1 = I-1 08 DO 220 J = 1, IM1 09 IF (X(1) .GE. X(J)) GOTO 220 10 SAVE = X(1) 11 X(I) = X(J) 12 X(J) = SAVE 13 220 CONTINUE 14 CONTINUE 15 RETURN 16 END
21
Size Metrics Halstead Software Science Metrics/Token Count
To evaluate mental effort & time required to create a program How compactly a program is expressed
22
Halstead’s Software Science
A comprehensive collection of metrics Predicated on the number of operators and operands within a component or program Count Occurrence total of these tokens
23
Software Science Measures cont..
Program Length, N = N1 + N2 Vocabulary, n = n1 + n2 Predicted Length, N^= (n1 *log2n1) +(n2 * log2n2) Program Volume, V = N * log2n Potential volume, V* = ( 2+ n2*) log2 (2+ n2*) program with minimum size n1 / n2 - Number of unique operators / operands N1 / N2 -Total occurrences of operators /operands
24
Software Science Measures cont..
Program Level, L = V*/V Ranges 0-1, highest possible level is 1 Estimated Level, L^ =2 n2 / (n1 N2 ) Difficulty, D= 1/L Estimated Difficulty, D^= 1/L^ n1 / n2 - Number of unique operators / operands N1 / N2 -Total occurrences of operators /operands
25
Software Science Measures cont..
Effort, E = V/ L ^ = V * D^ elementary mental discrimination Time, T = E/â ; â = 18 (John Stroud 5-20 per second) Predicted number of bugs B = V/3000 Language level, λ =L* V* = L2 V n1 / n2 - Number of unique operators / operands N1 / N2 -Total occurrences of operators /operands
26
Size Metrics 01 SUBROUTINE SORT(X,N) 02
INTEGER X(100), N, I, J, SAVE, IM1 03 C THIS ROUTINE SORTS ARRAY X INTO ASCENDING 04 C ORDER 05 IF (N.LT.2) GOTO 200 06 DO 210 I = 2, N 07 IM1 = I-1 08 DO 220 J = 1, IM1 09 IF (X(1) .GE. X(J)) GOTO 220 10 SAVE = X(1) 11 X(I) = X(J) 12 X(J) = SAVE 13 220 CONTINUE 14 CONTINUE 15 RETURN 16 END
27
Size Metrics Operator Occurrences Operands SUBROUTINE 1 SORT () 10 X 8
, N 4 INTEGER 100 IF 2 I 6 .LT. J 5 GOTO SAVE 3 DO IM1 = - 200 .GE. 210 CONTINUE RETURN 220 End of line 13 n1 = 14 N1 = 51 n2 = 13 N2 = 42
28
Software Science Metrics
N1 = 51; N2 = 42; Calculate Program Length Vocabulary Program Volume Estimated Statement Count Predicted Length Potential Volume Program Level Estimated Level Difficulty Estimated Difficulty Effort Time
29
Software Science Metrics cont..
N1 = 51; N2 = 42 Program Length = N1 + N2 = 93 Vocabulary, n = n1 + n2 = = 27 Program Volume, V = N * log2n = 93 * log227 = 442 bits Estimated Statement Count Ss= N/C = 93/7=13 C is constant 7 for FORTRAN
30
Software Science Metrics cont..
N1 = 51; N2 = 42 Predicted Length, N^= (n1log2n1) +(n2log2n2) = 14*log214+13* log213 = 14* *3.70 = n2*,Unique input output parameter= 3 X: array holding the integer to be sorted, used as an input & output N: the size of the array to be sorted
31
Software Science Metrics cont..
Potential volume, program with min. size , V* = ( 2+ n2*) log2 (2+ n2*) =5 log2 5 = 11.6 Program Level, L = V*/V = 11.6/442 = 0.026 Estimated Level, L^ =2 n2 / (n1 N2 ) = (2*13)/(14*42)= 0.044 Difficulty, D= 1/L = 1/0.026 = 38.5 Estimated Difficulty, D^= 1/L^=1/0.044 = 22.72
32
Software Science Metrics cont..
Effort, E = V/ L^ = V * D^ = 442/0.044 = 10,045 Time, T = E/â = 10045/18 = 558 sec. = 10 minutes
33
Data Structure Metrics
A count of the amount of data input to, processed in and output from software Proposed metrics Amount of data The usage of data within modules Degree to which data is shared among modules
34
Examples of Input, Internal and Output Data
Program Data input Internal data Data Output Payroll Name/SSN/Pay Rate/ No. of hrs Worked Withholding Rates Overtime Factors Insurance premium rates Gross pay withholding, net pay, pay ledger
35
Amount of Data Line 01 SUBROUTINE SORT(X,N) 02
INTEGER X(100), N, I, J, SAVE, IM1 03 C THIS ROUTINE SORTS ARRAY X INTO ASCENDING 04 C ORDER 05 IF (N.LT.2) GOTO 200 06 DO 210 I = 2, N 07 IM1 = I-1 08 DO 220 J = 1, IM1 09 IF (X(1) .GE. X(J)) GOTO 220 10 SAVE = X(1) 11 X(I) = X(J) 12 X(J) = SAVE 13 220 CONTINUE 14 CONTINUE 15 RETURN 16 END Amount of Data
36
Amount of Data Count the number of entries for variables in the cross reference list. Excludes the variables that are defined but never used Count of variables is referred as VARS For the sample program SORT VARS = 6 X, N, I, J, SAVE, IM1 Definition of VARS A variable is a string of alphanumeric characters that is defined by a developer and that is used to represent some value during compilation or execution
37
Amount of Data 1 Program payday (input, output) 2 type check = record
3 gross: real; 4 tax : real 5 net : real 6 end; 7 var pay : check; 8 hours, rate : real; 9 Begin 10 while not eof(input) do begin 11 readln (hours, rate); 12 pay.gross := hours * rate; 13 pay.tax := 0.25 * pay.gross; 14 pay.net := pay.gross – pay.tax; 15 writeln (pay.gross, pay.tax, pay.net) 16 End 17 end Amount of Data
38
Amount of Data cont.. Check 2 7 Gross 3 12 13 14 15 Hours 8 11 Net 5
Pay Rate tax 4
39
Amount of Data cont.. Halstead introduce a metric that he referred to as n2 that includes all variables, constants and labels n2 = VARS+ unique constants+labels For payday program 7 variables (check, gross, hours, net, pay, rate, tax) 1 constant (0.25) 1 label (payday) n2 = 9 N2 total occurrences of operands For payday, N2 = 32
40
Amount of Data Line 01 SUBROUTINE SORT(X,N) 02
INTEGER X(100), N, I, J, SAVE, IM1 03 C THIS ROUTINE SORTS ARRAY X INTO ASCENDING 04 C ORDER 05 IF (N.LT.2) GOTO 200 06 DO 210 I = 2, N 07 IM1 = I-1 08 DO 220 J = 1, IM1 09 IF (X(1) .GE. X(J)) GOTO 220 10 SAVE = X(1) 11 X(I) = X(J) 12 X(J) = SAVE 13 220 CONTINUE 14 CONTINUE 15 RETURN 16 END Amount of Data
41
Amount of Data cont.. Halstead introduce a metric that he referred to as n2 that includes all variables, constants and labels n2 = VARS+ unique constants+labels For sort program 6 variables (X,N,I,J, SAVE,IM1) 3 constants (1,2,100) 4 labels (SORT, 200, 210, 220) n2 = 13
42
The Usage of Data within a Module
Live Variables More data items that a programmer must keep track of when constructing a statement, the more difficult it is to construct Interest is to find live variables A variable is live From the beginning of a procedure to end of the procedure At a particular statement only if it is referenced a certain no. of statements before and after that statement From its first to its last reference within a procedure
43
Usage of Data Line 01 SUBROUTINE SORT(X,N) 02
INTEGER X(100), N, I, J, SAVE, IM1 03 C THIS ROUTINE SORTS ARRAY X INTO ASCENDING 04 C ORDER 05 IF (N.LT.2) GOTO 200 06 DO 210 I = 2, N 07 IM1 = I-1 08 DO 220 J = 1, IM1 09 IF (X(1) .GE. X(J)) GOTO 220 10 SAVE = X(1) 11 X(I) = X(J) 12 X(J) = SAVE 13 220 CONTINUE 14 CONTINUE 15 RETURN 16 END Usage of Data
44
Live Variables for SORT Program
Line Live Variable Count 5 N 1 6 N, I 2 7 I, IM1 8 I, IM1, J 3 9 I, J, X 10 I, J, X, SAVE 4 11 12 J, X, SAVE 22
45
Live Variables for SORT Program cont..
Avg. No. of live variables = Total Live Variables/ count of executable statements
46
Variable Spans Two variables can be alive for the same number of statements, but their use in a program can be markedly different. 21 read (a,b); 32 x:= a; 45 y:=a-b; 53 z:= a; 60 writeln(a,b) How often a variable is used is called variable span (SP).
47
Variable Spans cont.. Number of statements between two successive references to the same variable a = 4 spans 10, 12, 7, 6 Avg. span size of a = 8.75 b = 2 spans 23, 14 Avg. span size of b = 18.5
48
Making Program-wide Metrics
To characterize the average number of live variables for a program having modules LVprogram = Σmi=1 LVi/m LVi is the average live variable metric computed from the ith module The average span size SP for a program of n spans SPprogram = Σni=1 SPi/n
49
Program Weakness Weakness of module can be computed using formula
WM = LV* ٧ LV : average number of live variables LV = Sum of count of live variables/ Count of exe. statements ٧ : average life of variables ٧ = Sum of count of live variables/ Total No. of variables
50
Program Weakness cont.. Can be used to estimate the testability and maintainability Program weakness WP = (Σmi=1 WMi)/m WMi : weakness of ith module WP : weakness of the program M : number of modules in the program Simply average the weakness of various modules doesn’t consider the effect of module coupling
51
Program Weakness (WP) Line No. Program Instructions 1
Program FIRST (input, output); 2 procedure module_compute; 3 var a, b, c : integer; 4 begin 5 readln(a,b); 6 a := a + 5; 7 b := b - 5; 8 c := a * b; 9 writeln(a, b,c); 10 end; 11 12 module_compute; 13 end. Program Weakness (WP)
52
WP of First Program (compute_module)
Line No. Live Variables in the line Count 4 --- 5 a,b 2 6 7 8 a,b,c 3 9 10 Total Count = 12 52
53
WP of First Program (compute_module) cont..
Total number of executable statement in module_compute: 7 Total number of variables in module_compute : 3 LV1 ( for module_compute) = 12/7 ٧1 (for module_compute) = 12/3 = 4 WM1(for module_compute) = LV1* ٧1 = 12/7 * 4 = 48/7
54
Program Weakness of First Program (main)
Line No. Live Variables in the Line Count 11 --- 12 13 Total count =
55
WP of First Program (main) cont..
Total number of executable statement in main: 3 Total number of variables in main : 0 LV2 ( for main) = 0 ٧2 (for main) = 0 WM2(for main) = LV2* ٧2 = 0 WPFIRST = (WM1+WM2)/2 = (48/2+0)/2 = 3.43
56
Example Program SECOND (input, output); Line No. Program Instructions
1 Program SECOND (input, output); 2 var a, b, c : integer; 3 procedure module_compute(var a, b, c : integer); 4 begin 5 a := a + 5; 6 b := b - 5; 7 c := a * b; 8 end; 9 10 readln(a,b); 11 module_compute(a, b, c); 12 writeln(a, b,c); 13 end.
57
WP of Second Program (compute_module)
Line No. Live Variables in the line Count 4 --- 5 a 1 6 a,b 2 7 a,b,c 3 8 Total Count =
58
WP of 2nd Program (compute_module) cont..
Total number of executable statement in module_compute: 5 Total number of variables in module_compute : 3 LV1 ( for module_compute) = 6/5 ٧1 (for module_compute) = 6/3 = 2 WM1(for module_compute) = LV1* ٧1 = 6/5 * 2 = 12/5
59
Information Flow Metrics
Component : Any element identified by decomposing a system into its constituent parts What the components do and how they are fitted together , influences the complexity of the system Cohesion : the degree to which a component performs a single function Coupling : the term used to describe the degree of linkage between one component to others in the same system
60
Information Flow Metrics cont..
Information flow metrics model the degree of cohesion and coupling for a particular system component; original work done by Henry and Kafura Basic information flow model IF metrics are applied to the component of system design A
61
Information Flow Metrics cont..
The simplest model of IF for component A “FAN IN” is simply a count of the number of other components that can call, or pass control, to component A “FAN OUT” is the number of components that are called by component A Using the following formula we can derive a measure called as INFORMATION FLOW index of component A, abbreviated as IF(A) IF (A) = [ FAN IN(A) * FAN OUT (A)] 2 Include a power component to model the non- linear nature of complexity
62
More Sophisticated Information Flow Model
Ince and shepperd and Kitchenham have done a lot of work to help in the practical application of Henry and Kafura’s proposal All these work is summarized by Goodman in to a more sophisticated IF model The only difference between the simple and the sophisticated IF models lies in the definition of FAN IN and FAN OUT
63
More Sophisticated Information Flow Model..
For a Component A let : a = the number of components that call A b = the number of parameters passed to A from components higher in the hierarchy c = the number of parameters passed to A from components lower in the hierarchy d = the number of data elements read by component A. Then : FAN IN(A) = a + b + c +d
64
More Sophisticated Information Flow Model..
Also let : e = the number of components called by A f = the number of parameters passed from A to components higher in the hierarchy g = the number of parameters passed from A to components lower in the hierarchy; h = the number of data elements written to by A. Then: FAN OUT (A) = e + f + g + h
65
What we Learnt What is Measurement Metrics Why Measure
Question of interest Total Quality Management (TQM) Types of Software Metrics Metrics Program Approach Size Metrics Information flow metrics
66
Software Reliability Probability of Failure-Free Operations of a Computer Program for a Specified time in a Specified Environment
67
Learning Objectives Basic concepts Software Quality
McCall Software Quality model Boehm Software quality Model ISO 9126 Software Reliability Models Basic Execution time Model Logarithmic Poisson Execution Time Model Calendar Time Component Resource Usage
68
Software Reliability – Alternate Definitions
Informally denotes a product’s trustworthiness or dependability. Probability of the product working “correctly” over a given period of time
69
Software Reliability a software product having a large number of defects is unreliable. reliability of a system improves if the number of defects is reduced.
70
Reliability User’s concern
An important attribute determining the quality of the product. Demand for quantitative estimation of reliability before making buying decision.
71
Hardware vs. Software Reliability
Hardware failures inherently different from software failures. Most hardware failures are due to component wear and tear: some component no longer functions as specified.
72
Hardware vs. Software Reliability..
A logic gate can be stuck at 1 or 0, or a resistor might short circuit. To fix hardware faults: replace or repair the failed part. Software faults are latent: system will continue to fail unless changes are made to the software design and code.
73
Hardware vs. Software Reliability..
Because of the difference in effect of faults, metrics appropriate for hardware reliability measurements are not good software reliability metrics
74
Hardware vs. Software Reliability
When a hardware is repaired: its reliability is maintained When software is repaired: its reliability may increase or decrease. Goal of hardware reliability study : stability (i.e. interfailure times remains constant) Goal of software reliability study reliability growth (i.e. interfailure times increases)
75
Bathtub Curve for Hardware Reliability
76
Revised Bathtub Curve for Software Reliability
77
Why Software Obsolete Change in environment
Change in infrastructure/technology Major change in requirements Increase in complexity Extremely difficult to maintain Deterioration in structure of the code slow execution speed Poor graphical user interfaces
78
Importance Most important characteristics of software Quality Cost
Schedule How to measure quality? Reliability connected with defects clearly observer-dependent cannot be determined absolutely
79
Failures and Faults Failure
Program in its functioning has not met user requirements in some way Fault The defect in a program that, when executed under particular conditions, causes a failure Can be source of more than on e failure Property of program rather than property of its execution or behaviour
80
Mean Value Function Reliability quantities usually defined with respect to time Three types of time Execution time Calendar time Clock time (wait time + execution time)
81
Mean Value Function cont..
Four general ways of characterizing failure occurrences in time Time of failure Time interval between failure Cumulative failure experienced up to a given time Failure experienced in a time interval
82
Time Based Failure Specification
Failure Number Failure Time (Sec) Failure Interval (Sec) 1 8 2 18 10 3 25 7 4 36 11 5 45 9 6 57 12 71 14 86 15 104 124 20 143 19 169 26 13 197 28 222 250
83
Failure Based Failure Specifications
Time (Sec) Cumulative Failures Failures In Interval (30 Sec) 30 3 60 6 90 8 2 120 9 1 150 11 180 12 210 13 240 14
84
Probability Distribution At Times Ta And Tb
Value Of Random Variable (Failures In Time Period) Probability Elapsed time ta = 1 hr tb = 5 hrs 0.10 0.01 1 0.18 0.02 2 0.22 0.03 3 0.16 0.04 4 0.11 0.05 5 0.08 0.07 6 0.09 7 0.12 8 9 0.13 10 11 12 13 14 15 Mean Failures 3.04 7.77
85
Mean Value Function cont..
Two different viewpoints for the time variation Mean value function Average cumulative failures associated with each time point Failure intensity function Number of failures per unit time Rate of change of the mean value function 0.01 failure/hr or 1 failure/100 hr
86
Mean Value & Failure Intensity Functions cont..
Failure behavior affected by two principal factors The number of faults in the software being executed The execution environment or the operational profile of execution
87
Reliability and Failure Intensity
Probability of failure-free operations of a computer program for a specified time in a specified environment. Example Time sharing system may have a reliability of 0.95 for 10 hrs when employed by the average user An equivalent statement is that the failure intensity of 0.05 failure/hr
88
Reliability and Failure Intensity
89
Uses of Reliability Studies
To evaluate software engineering technology quantitatively Evaluating development status during the test phases of a project To monitor the operational performance of software Quantitative understanding of software quality
90
Quality a degree or level of innate excellence
comparative- dictionary a degree or level of innate excellence quantitative - manufacturing fitness-for-purpose- Juran extent of departure from the standard, degree of conformity a measure of usefulness and practicality subjective - artistic... a measure of the skill of the creator and value to the person for whom it was created Fitness of purpose For software products, fitness of purpose: satisfaction of the requirements specified in SRS document. A satisfactory definition of quality for many products: a car, a table fan, a food mixer, microwave oven, etc. But, not satisfactory for software products. 90
91
Software Quality Conformance of requirements Fitness for the purpose
Level of satisfaction Consider a software product: functionally correct but unusable user interface. Functional correctness alone does not determine quality
92
Modern View of Quality Associates several quality factors with a software product : Correctness if different requirements as specified in the SRS document have been correctly implemented. Accuracy of results. Reliability Efficiency Amount of computing resources and code required by software to perform a function Portability Work on different operating systems Or on different machines Or with other software products 92
93
Modern View of Quality cont..
Usability A software product has good usability, if different categories of users (i.e. both expert and novice users) can easily invoke the functions of the product. Reusability Different modules of the product can easily be reused to develop new products. Maintainability If faults can be corrected Functionalities can be added or modified (customized)
94
Software Quality Domain and Attributes
Correctness Reliability Consistency and precision Robustness Simplicity Traceability Accuracy Usability Clarity & accuracy of documents Conformity of operational environment Completeness Efficiency Testability
95
Software Quality Attributes
Accuracy and clarity of documentation Maintain- ability Modularity Readability Simplicity Modifiability Adaptability Expandability Portability
96
McCall Software Quality Model
Introduced in 1977 Two levels of quality attributes Quality Factors Quality criteria Quality factors are organized in three product quality factors Operation Revision Transition
97
Operation Factors reliability integrity correctness usability
efficiency
98
Revision Factors flexibility maintainability testability
99
Transition Factors portability reusability interoperability
100
McCall Quality Criteria
Reliability Accuracy Error tolerance Consistency Simplicity Maintainability Conciseness Self descriptiveness Modularity Testability Instrumentation Flexibility Expandability Generality Usability Operability Training Communicativeness I/O volume I/O rate Integrity Access Control Access Audit Efficiency Storage efficiency Execution efficiency Correctness Traceability Completeness Consistency Self descriptiveness Modularity Reusability Generality Self Descriptiveness Machine independence Software system independence Portability S/W system independence Interoperability Comm. Commonality Data Commonality
101
Boehm Software Quality Model
Introduced in 1978 Defined three levels for quality attributes Primary uses Intermediate constructs Primitive constructs Includes the needs and expectations of user as does McCall’s also includes characteristics of hardware that are missing in McCall’s Model
102
Boehm Software Quality Model cont..
Primitive Constructs Device independence(1) Completeness(1,2) Accuracy(2) Consistency(2,6) Device efficiency(3) Accessibility(3,4,5) Communicativeness(4,5) Structured ness(5,6,7) Self descriptiveness(5,6) Conciseness(6) Legibility(6) Augment ability(7) Primary uses General utility As is utility Maintainability Intermediate Constructs Portability(A) Reliability(B) Efficiency (B) Human Engineering (B) Testability (A,C) Understandability (A,C) Modifiability (A,C)
103
Boehm vs McCall Quality Model
Basic user requirements(3): product operation,product revision, product transition Quality characteristics(11): usability, integrity, efficiency, correctness, reliability, maintainability, testability, flexibility, reusability, portability, interoperability Quality characteristics(22) Boehm Basic user requirements(3): “as is” utility,general usability , maintainability Quality factors (7):portability, reliability, efficiency, usability, testability, understandability, flexibility Quality characteristics(12)
105
ISO 9126 Software specialists have looked for a standard that would unambiguously define the quality attributes of the software 1991: ISO 9126: “Software Product Evaluation: Quality Characteristics and Guidelines for their Use” Consolidates many views of software QUALITY ISO hierarchy is strict and non-overlapping unlike McCall’s and Boehm's
106
ISO 9126 cont.. Requirements for the quality characteristics in the new of standard: To cover together all aspects of software quality resulting from ISO quality definition To describe the product quality with a minimum of overlap To be as close as possible to the established technology To form a set of not more than six to eight characteristics for reason of clarity and handling To identify areas of attributes of software products for further refinement
107
Software Quality Characteristics in ISO 9126
Functionality to meet stated and implied need Usability to be understood, learned and used Reliability To maintain a specified level of performance Portability To be adapted for different specified environment Maintainability To be modified for the purposes of making corrections, improvements, or adaptations Efficiency To provide appropriate performance relative to the amount of resources used
108
Quality Characteristics and Attributes ISO 9126
Functionality Suitability Accuracy Interoperability Security Reliability Maturity Fault tolerance Recoverability Usability Understandability Learnability Operability Efficiency Time behaviour Resource behaviour Maintainability Analyzability Changeability Stability Testability Portability Adaptability Installability Conformance Replaceability
109
Reliability Models Principal factors that affect the software reliability Fault introduction Depends on characteristics of developed code and development process Fault removal Depends on time, operational profile and the quality of repair activity Environment Directly depends on operational profile Software reliability model specifies the general form of the dependence of the failure process on above factors.
110
Reliability Models cont..
Based on failure rather fault Execution time denoted by Γ Calendar Time denoted by T The variation in time between successive failures described in terms of function µ(Γ) denotes the average no. of failure upto time Γ λ(Γ) = failure intensity function ( Average no. of failure per unit time at time Γ The reliability of program increases through fault correction and hence the failure intensity decreases
111
Failure Intensity Functions for Basic Model(RBM) & Logarithmic Poisson Model (RLPM)
112
Failure Intensity Functions for RBM & RLPM..
Decrement in failure intensity functions remains constant whether it is first failure that is being fixed or the last RLPM Decrement in failure intensity functions becomes smaller with failure experienced; it decreases exponentially
113
Failure Intensity Functions for RBM
Have failure intensity as a function of failures experienced is λ(µ) = λ0 [1- µ/v0] λ0 : initial failure intensity at the start of execution µ: the average or expected number of failures experienced at a given point in time v0 :total number of failures that would occur in infinite time
114
Failure Intensity Functions for RBM Example
Assume that a program will experienced 100 failures in infinite time. It has now experienced 50. The initial failure intensity was 10 failures/CPU hr. Determine the value of the current failure intensity λ(µ) = λ0 [1- µ/v0] λ0 = 10 ; µ = 50; v0 = 100 λ(µ) = 10[1-50/100] = 5 failures/cpu hr. Decrement of failure intensity per failure dλ/dµ = -λ0/v0 = -10/100 = -0.1/cpu hr.
115
Failure Intensity Functions for RLPM
Have failure intensity as a function of failures experienced is λ(µ) = λ0 exp(-θµ) λ0 : initial failure intensity at the start of execution µ : the average or expected number of failures experienced at a given point in time θ : failure intensity decay parameter
116
Failure Intensity Functions for RLPM cont..
Assume initial failure intensity is 10 failures/CPU hr. the failure decay parameter is 0.02/failure .We assume that 50 failures have been experienced. Determine the value of the current failure intensity λ(µ) = λ0 exp(-θµ) λ0 = 10 ; µ = 50; θ = 0.02 λ(µ) = 10 exp [(-0.02)*(50)] = 3.68 failures/cpu hr. Decrement of failure intensity per failure dλ/dµ = -λ0 θ exp(-θµ) = -10(0.02)exp(-0.02*50) = -0.2/cpu hr.
117
Mean Failure Experienced vs Execution Time for RBM & RLPM
118
Mean Failure Experienced vs Execution Time (RBM)
The expected number of failures experienced as a function of execution time be denoted by Γ µ(Γ) = v0 [1- exp(-λ0 Γ /v0)] initial failure intensity 10 failures/CPU hr and total 100 failures calculate the failure experienced after 10 cpu hr of execution µ(Γ) = 100[1-exp(-10*10/100)] = 63 failures after 100 cpu µ(Γ) = 100[1-exp(-10*100/100)] = 100 failures
119
Mean Failure Experienced vs Execution Time (RLPM)
The expected number of failures experienced as a function of execution time be denoted by Γ µ(Γ) = [ln (λ0 θ Γ +1)]/ θ initial failure intensity 10 failures/CPU hr and decay parameter 0.02 /failure calculate the failure experienced after 10 cpu hr of execution µ(Γ) = ln[(10)(0.02)(10) +1]/0.02 = 55 failures after 100 cpu hr µ(Γ) = ln[(10)(0.02)(100) +1]/0.02 = 152 failures
120
Mean Failure Experienced vs Execution Time for RBM & RLPM
After 10 cpu hrs : 63 failure After 100 cpu hrs : 100 failures (almost) RLPM After 10 cpu hrs : 55 failure After 100 cpu hrs : 152 failures
121
Failure Intensity at a Given Execution Time (RBM & RPLM)
122
Failure Intensity at a Given Exe. Time (RBM)
Present failure intensity at any given value of execution time λ(Γ) = λ0 exp(-λ0 Γ /v0)] initial failure intensity 10 failures/CPU hr and total 100 failures calculate the failure intensity after 10 cpu hr of execution λ(Γ)= 10 exp(-10*10/100)= 3.68 failures/cpu hr. after 100 cpu hr λ(Γ)= 10 exp(-10*100/100)= failures/cpu hr.
123
Failure Intensity at a Given Execution Time (RPLM)
Present failure intensity at any given value of execution tie λ(Γ) = λ0 exp(λ0 θ Γ +1) initial failure intensity 10 failures/CPU hr and decay parameter 0.02/failure calculate the failure intensity after 10 cpu hr of execution λ(Γ)= 10 /[10(0.02)(10)+1) = 3.33 failures/cpu hr. after 100 cpu hr λ(Γ)= 10 /[10(0.02)(100)+1) = failures/cpu hr.
124
Failure Intensity at a Given Execution Time (RBM & RPLM)
After 10 cpu hrs : 3.68 fail./cpuhr After 100 cpu hrs : fail./cpuhr RLPM After 10 cpu hrs : 3.33 fail./cpuhr After 100 cpu hrs : fail./cpuhr
125
Additional Number of Failures (RBM)
Equation to use the objective and the present value of failure intensity to determine the additional expected number of failures that must be experienced to reach that objective дµ = v0/λ0 (λp –λF )
126
Relations for the Additional Number of Failures (RBM) cont..
Determine the expected number of failures that will be experienced between a present failure intensity of 3.68 failures/cpu hr and an objective of failure/cpu hr using the same parameters initial failure intensity 10 failures/CPU hr and total 100 failures дµ = v0/λ0 (λp –λF ) = (100/10)( ) = 10(3.68) = 37 failures
127
Relations for the Additional Execution Time (RBM)
To determine the additional execution time дΓ required to reach the failure intensity objective дΓ = v0/λ0 ln(λp / λF )
128
Additional Number of Failures & Additional Execution Time For RLPM
дµ = (1/ θ)ln(λp /λF ) дΓ = (1/ θ) [(1/ λF)-(1/λp)]
129
Additional Number of Failures for RLPM
Determine the expected number of failures that will be experienced between a present failure intensity of 3.33 failures/cpu hr and an objective of 0.476failure/cpu hr using the same parameters initial failure intensity 10 failures/CPU hr and decay parameter 0.02/failure дµ = (1/ θ)ln(λp /λF ) = (1/0.02)ln(3.33/0.476) = 10(3.68) = 97 failures
130
Calendar Time Component
Relates execution time and calendar time by determining the calendar time to execution time ratio at any given point of time Ratio is based on constraints that are involved in applying resources to a project Have greater significance at testing & repair phase Rate of testing is constrained by Failure identification/ test team personnel Failure correction or debugging personnel Computer time available
131
Calendar Time Component cont..
Based on a debugging model, which takes into account Resources used in operating the program for a given execution time and processing an associated quantity of failures Resource quantity available The degree to which a resource can be utilized
132
Resource Usage Usage Parameters Planned parameter requirements per
Resources CPU hr Failure Quantities available Utilization Failure Identification θi µI Pi 1 Personnel Failure Correction µf Pf pf Computer Time θc µC Pc pc
133
Resource Usage cont.. Xc = θcДΓ+ µcДµ Xf = µfДµ XI = θIДΓ+ µIДµ
Resource usage is linearly proportional to execution time and mean failure experienced Let xr be the usage of resource r. then xr = θrΓ+ µrµ θr: :Resource usage per CPU hr µr : Resource usage per failure Resource usage per unit execution time dxr/dΓ = θr+ µrλ Xc = θcДΓ+ µcДµ Xf = µfДµ XI = θIДΓ+ µIДµ
134
Resource Usage cont.. Computer time required per unit execution time will normally be greater than 1 Failure intensity decreases with testing , the effort used per hour of execution time tends to decrease with testing
135
Calendar Time Component cont..
Suppose the test team runs test cases for 8 CPU hr and identifies 20 failures. The effort required per hr of execution time is 6 person hr. Each failure requires 2 hr on the average to verify and determine its nature. Calculate the total failure identification effort required xr = θrΓ+ µrµ = 6(8)+2(20) = 48+40 = 88 person hr.
136
Calendar Time to Execution Time Relationship
Resource quantities and utilization are assumed to be constant Ration of calendar time to execution time can be obtained by dividing the resource usage rate of the limiting resources by the constant quantity of resource available that can be utilized dt/dΓ = (1/Prρr) dxr/dΓ = (θr+ µrλ)/ Prρr Pr : resource available ρr : utilization dxr/dΓ = θr+ µrλ
137
Reliability Allocation
Discuss software reliability apportionment schemes Answer the question How reliable should each system module be? Provide the reliability guidelines well in advance of any development at the planning and design stage of the system Deals with setting of the reliability goals for individual modules such that a specified system reliability goal is met the modules goals are “well balanced” among themselves
138
Parametric Approach Apportion the reliability goal R to n modules such that ¶n i=1R*i >= R R : System Reliability goal R*i: Allocated reliability for module i Failure rate of every module and hence of the whole system can be assumed constant, as after the development of any software it is not expected to be modified at the user end till there is a crash or till the next version is to be released.
139
Parametric Approach cont..
If λi* is allocated failure rate for module i and λ is the required failure rate for the system Σn i=1 λ*i <= λ λ*i : fraction of the total failure rate let λ*i= Wi λ Wi :Weighing factor factor for module I Σn i=1 Wi = 1 equ. (1) R*i = (R )wi To sure edq. 1 Wi = Z i / Σn i=1 Z i Z i Proportionality factor for module i
140
What we Learnt Basic concepts Software Quality
McCall Software Quality model Boehm Software quality Model ISO 9126 Software Reliability Models Basic Execution time Model Logarithmic Poisson Execution Time Model Calendar Time Component Resource Usage
141
Understanding the Capability Maturity Model for Software
141
142
Learning Objectives Quality Leverage Points Software process
Why to Focus on Process Immature Process Mature Process CMM Capability vs. Performance Maturity Level Common Features CMM Structure
143
Quality Leverage Points
Major determinants of product cost, schedule, and quality PEOPLE PROCESS TECHNOLOGY
144
Definition of Software Process
Process - a sequence of steps performed for a given purpose (IEEE) Software process - a set of activities, methods, practices, and transformations that people use to develop and maintain software and the associated products (CMM) B Procedures and methods defining the relationship of tasks A D C PROCESS People with skills, training, and motivation Tools and equipment 144
145
Why Focus on Process ? - 1 Everyone realizes the importance of
having a motivated, quality work force but People Technology Process … even our finest people can’t perform at their best when the process is not understood or operating “at its best.”
146
The Process management premise :
Why Focus on Process ? - 2 The Process management premise : The quality of a system is highly influenced by the quality of the process used to acquire, develop, and maintain it. This premise implies focus on processes as well as on product.
147
An Immature Process Ad hoc; process improvised by practitioners and their management Not rigorously followed or enforced Highly dependent on current practitioners Low visibility
148
A Mature Process Consistent with the way work actually gets done
Defined, documented, and continuously improving Supported visibly by management and others Well controlled—process fidelity is audited and enforced Constructive use of product and process measurement Disciplined use of technology
149
Common Points in the Quality Movement
Improvement focuses on fixing the process, not on blaming the people. Improvement must be measured and periodically reinforced. Improvement is a continuous process. If level of discomfort is not high enough, things will not change.
150
What Is the Capability Maturity Model (CMM)?
A common-sense application of process management and quality improvement concepts to software development and maintenance A model for organizational improvement Strategy for improving the software process, irrespective of the actual life cycle model used Developed by Software Engineering Institute (SEI) of Carnegie- Mellon University in 1986 Used to judge the maturity of the software processes of an organization and to identify the key practices that are required to increase the maturity of these processes STATE that the CMM is a tested and practical approach to software management and quality improvement. EXPLAIN that the SEI and MITRE translated the best practices in industry and originally created the questionnaire (known as SEI Report TR-23) in CMU/SEI-87-TR-23. STATE that the SEI is the custodian of the CMM. The SEI has both an advisory board and a correspondence group to get input from the community. 150
151
Capability Versus Performance
Process capability – the range of expected results that can be achieved by following a process, initially established at the organization level. A predictor of future project outcomes. Process performance – a measure of the actual results achieved from following a process. Refers to a particular project in the organization. EXPLAIN that capability refers to a range of values reflecting the probability of how well one can expect an organization to perform on a project in the future. Capability relates to process and process relates to maturity level. EXPLAIN that performance refers to how well a project actually did in the past and how well the processes worked. STATE that each project's capability is associated with the past performance of previous projects. We say an organization is at the Repeatable Level, projects within the organization are capable of repeating previously mastered tasks. DRAW a control chart on a flip chart as you TELL the ATM story. Be sure to draw in a point above the maximum and a point below the minimum. EXAMPLE Citibank started using statistical process control on the engineers that repair the ATM machines. They recorded how long it took each repair person to fix a particular component. Over time, Citibank set up standards based on top performers (repair persons) and everyone was trained to repair machines in a consistent manner. At that point, Citibank was able to set limits because the repair persons were using a standard process. 151
152
The Maturity Levels 5 Optimizing Managed 4 Defined 3 Repeatable 2
Focus on process improvement 5 Managed Process measured and controlled 4 STATE a one-sentence summary of each level. DISCUSS if it is cost effective to get to level 5? EXPLAIN that there may be a Level 0. A Level 0 organization is oblivious to any process. Employees do not know how messed up they are. No matter how hard they try, software is never the output. There is often software denial, "We don't create software, we do spreadsheets, relational databases, contact managers, etc." EXAMPLE Giving Directions. If I ask someone for directions and they respond "Head north until you see a 12-story red brick building" I am at Level 1. Level 2 directions would be to take Highway 53 to Virginia and take the Main Street Exit. These directions work fine until there is an accident before the Main Street Exit and you have to take an earlier exit. This brings you back to Level 1 - you don't know where to go. Level 3 directions would provide a map so that if you are detoured, you can use the map. Level 4 would have collected data on how long it takes to get from A to B on different routes during different times of day. Your directions would allow you to choose a route based on the data that has been collected. Level 5 would find you at a city council meeting to explain that there is a need for synchronized lights and an additional turning lane to improve traffic patterns. You would try to optimize the time it takes to get from point A to point B. Defined Process characterized, fairly well understood 3 Repeatable Projects can repeat previously mastered tasks 2 Initial Process unpredictable and poorly controlled 1 152
153
Understanding the Initial Maturity Level
Performance driven by the competence and heroics of the people doing the work High quality and exceptional performance possible so long as the best people can be hired Unpredictable—for good or ill The major problems facing the software organization are managerial, not technical STATE that a need for heroes characterizes the initial maturity levels. EXPLAIN that studies have shown that nearly all real problems involve management procedures. EXPLAIN that a Level 1 organization can produce software on time, within budget, meeting customer needs, and of good quality. However, the final product was created by the effort of heroes. When the heroes leave an organization, the process leaves with them. EXAMPLE Start-up company where ideas of individuals are often more important initially than defining the process. However, if the company is successful and multiple widgets are produced, chaotic behavior cannot be tolerated. 1 153
154
Software Management is a Black Art
In Out Requirements flow in. A software product is (usually) produced by some amorphous process. The product flows out and (hopefully) works. STATE that Level 1 is not an unmitigated evil. It does produce working software. Almost all the software we use each day has been created by Level 1 organizations. EXPLAIN that in a Level 1 organization chaos reigns. Management can't see in and they provide the schedules and deadlines. Invisible tradeoffs are made and the only way to get out of the hole is to break dysfunctional and co-dependent behavior. DISCUSS how individuals propagate this cycle. EXAMPLE One month before a product is due to be delivered, management finds that the product is not ready for system testing and that the product won't be ready for four more months. 154
155
The Key Process Areas for the Initial Level
1 No key process areas STATE that in a Level 1 organization, the focus is only on schedule because it is the one thing that management knows how to observe. People make tradeoffs of process and product, but no trades on the schedule. EXPLAIN that to get out of the chaos, Level 2 focuses on putting a project management system in place. DESCRIBE some of the indicators of Level 1 organizations: Reliant on people (and overtime) to succeed Results are seldom repeatable Training is usually done on-the-job Processes are in the heads of gurus Schedules, costs, and resources are normally dictated by management. Initial 155
156
Understanding the Repeatable Maturity Level
The predominant need is to establish effective software project management. Software project management processes are documented and followed. Organizational policies guide the projects in establishing management processes. Successful practices developed on earlier projects can be repeated. STATE that the emphasis is on projects and management. Organizational policies indicate what must be done and individual projects decide how. The what and how may be very different. STATE that from the organization’s viewpoint, organizational policies are the only things that guide projects. STRESS that at Level 2 each project manager is responsible for defining and documenting the project's processes, including the standards, methods, and procedures used. 2 156
157
Project Management System is in Place
Out In ASK if anyone can explain this chart. EXPLAIN that this chart shows relative progress checkpoints that have defined entry and exit criteria. EXPLAIN that at predefined points in the project, there is visibility into the project and the product that is being built. However, between these points, it is still a black hole. EXPLAIN that event criteria may also be artificial if the events are unrelated to the product or process. EXAMPLE If contract payments are tied to events, you are rewarded for that behavior. NOTE: The circles on the graph are gauges, indicating decision points. Process of building software is a series of black boxes with defined checkpoints (milestones). 157
158
The KPAs for the Repeatable Level
Software Configuration Management Software Quality Assurance Software Subcontract Management Software Project Tracking and Oversight Software Project Planning Requirements Management 2 2 STATE that Level 2 has 6 KPAs. EXPLAIN each KPA with a simple sentence in your own words. STATE that the KPAs are in random order, but for consistency they are always presented in this order. EXPLAIN that requirements management and software project planning are integral parts of the business and must be supported. There is a relationship with these two KPAs and both must be done (it is hard to plan without requirements). EXPLAIN that every KPA starts with "software" except for requirements management. This is because the scope of the CMM is software and requirements often come from system engineering. STATE that Level 2 makes the world safe for a meaningful, technical process for software. An organization does not have a defined project process in place, but the foundation is built. NOTE: Use Socratic dialogue to reinforce concept. EXPLAIN now that projects have their own management processes under control, the focus can shift to the organization and technical processes. Repeatable 158
159
Requirements Management (RM)
Purpose is to establish a common understanding between the customer and the software project of the customer’s requirements that will be addressed. Involves document and control of customer requirements keeping plans, products, and activities consistent with the requirements ASK participants to open the CMM and read the first few paragraphs from the Requirements Management KPA. ASK a specific participant to read aloud the purpose (or involves) paragraph. REFER to page 126 in The Capability Maturity Model: Guidelines for Improving the Software Process. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning e.g., common understanding, document, and consistent. DISCUSS the results of the first exercise. The colon, use of the black pen, lined side of index card, and length of definitions were not requirements. They were assumed to be requirements because of the example cards. The participants could have asked the customer to clarify what were requirements and what were not. STATE that there are two main activities in Requirements Management: 1. Documenting requirements 2. Controlling changes in requirements EXPLAIN that Requirements Management does not address requirements analysis. Requirements analysis is addressed in software product engineering. 159
160
Software Project Planning (PP, SPP)
Purpose is to establish reasonable plans for performing the software engineering and for managing the software project. Involves developing estimates for the work to be performed establishing the necessary commitments defining the plan to perform the work STATE that the three major concepts of software project planning are: • Estimates (resources, throughputs) • Commitments ("Yes I can" or "Yes I will") • Writing it all in a plan EXPLAIN the concepts in your own words, elaborating where you feel necessary. ASK participants to read the goals, purpose and involves paragraphs of the reference. REFER to page 133 of The Capability Maturity Model: Guidelines for Improving the Software Process. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning e.g., reasonable, performing, managing, estimates, commitments. DISCUSS the results of the first exercise, specifically: • Buying supplies during preparation time rather than during production time. • Building a prototype, seeing how long it takes, and using this as a basis for an estimate. • Assigning roles and responsibilities before the production time. • Asking the customer how many cards are required (answer is 4) and then only bidding four. During production you can go back to the customer and ask for more cards without being penalized. However, if you bid more than you can produce, you are penalized by the customer. NOTE: Both the two-and three-letter acronym are given. Use the acronym that you prefer. 160
161
Software Project Tracking and Oversight (PT, PTO)
Purpose is to provide adequate visibility into actual progress so that management can take effective actions when performance deviates significantly from the plan. Involves tracking and reviewing software accomplishments and results against documented estimates, commitments, and plans adjusting plans based on actual accomplishments and results STATE that this step takes the organization's plan and does something with it. EXPLAIN the basic points of the PTO KPA: • Track actuals • Take corrective actions • Changes to commitments must be re-negotiated ASK participants to read the goals, purpose, and involves paragraphs of the reference. REFER to page 148 in The Capability Maturity Model: Guidelines for Improving the Software Process. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning e.g., adequate visibility, effective actions, deviates from plan, adjusting plans. EXPLAIN that the purpose is to really understand the tradeoffs that are taken. Technical people often make trade-offs intuitively. Knowing that the tradeoff is being made is crucial to organizational maturity. DISCUSS results of Exercise 2, especially: • One team of managers bid 15 pages and delivered 0. • One team of process people bid 8 pages and delivered 8 pages. • Participant teams could get more words than what they bid after producing the number bid. EXAMPLE When flying to Hawaii, you have a flight plan, course, estimated time, and a certain amount of fuel. While you are flying, if you notice that your fuel is lower than expected you need to take some action. 161
162
Software Subcontract Management (SM)
Purpose is to select qualified software subcontractors and manage them effectively. Involves selecting a software subcontractor establishing commitments with the subcontractor tracking and reviewing the subcontractor’s performance and results EXPLAIN that Software Subcontract Management involves: • Selecting a subcontractor • Agreeing to commitments • Establishing and maintaining communication with subcontractors • Tracking and managing subcontractors ASK participants to read the goals, purpose, and involves paragraphs of the reference. REFER to page 159 in The Capability Maturity Model: Guidelines for Improving the Software Process. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning e.g., common understanding, document, and consistent. STATE that this KPA has a minimal set of activities. If a larger contract is concerned you may want to apply the entire CMM. EXPLAIN that this KPA does not address partnering agreements or contract employees on site using your processes. DISCUSS the results of Exercise 2, including: • Subcontracting out definitions. But if you tell the subcontractor the definition only, you may get something that does not satisfy the requirements (such as 16 words, not color coded). • Teams could have created a strategic alliance. • One team could hire someone (or trade them) from another team. 162
163
Software Quality Assurance (QA, SQA)
Purpose is to provide management with appropriate visibility into the process being used and the products being built. Involves reviewing and auditing the software products and activities to ensure that they comply with the applicable procedures and standards providing the software project and other appropriate managers with the results of those reviews and audits NOTE: SQA means different things to different people. EXPLAIN the major points of the Software Quality Assurance KPA: • SQA activities are planned • SQA must check that the process is being followed • All personnel within a project and senior management are informed regularly of the results of SQA activities (different people are informed at different times). • A noncompliance procedure exists in the organization and is used if needed. ASK participants to read the goals, purpose, and involves paragraphs of the reference. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning; e.g., common understanding, document, and consistent. NOTE: This is one of the more controversial KPAs from an implementation standpoint. REFER to page 171 of The Capability Maturity Model: Guidelines for Improving the Software Process. DISCUSS the results of Exercise 2, including: • Defects escaped, even though they were known. • A team could ask the customer to review a dictionary page before it is officially delivered (relates to practice activity 8). • Did the teams have QA functions? If yes, what did they do? • If teams didn't have plans, the QA could have become very subjective. 163
164
Software Configuration Management (CM, SCM)
Purpose is to establish and maintain the integrity of the products of the software project throughout the software life cycle. Involves identifying configuration items/units systematically controlling changes maintaining integrity and traceability of the configuration throughout the software life cycle EXPLAIN that Software Configuration Management involves: • Planning for SCM activities • Identifying which products will be placed under CM • Having a system in place to control changes to the product. • Informing all affected groups when changes are made ASK participants to read the goals, purpose, and involves paragraphs. REFER to page 180 in The Capability Maturity Model: Guidelines for Improving the Software Process. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning e.g., common understanding, document, and consistent. EXPLAIN that configuration management is not only change control, but occurs throughout the development cycle. It is not just for code, or just at the end of a cycle. CM should happen to all artifacts of the process. This is a KPA because unless you have control of the artifacts of the process you cannot have control of the process. DISCUSS the results of Exercise 2, including: • Did anyone lose intermediate work products in the course of building dictionary pages? • Did teams actually deliver the product to the customer? There have been cases in the past in which teams completed the product but never released it to the customer. 164
165
Understanding the Defined Maturity Level
This level builds on the software project management foundation. To control a process, it must be defined, documented, and understood. The outputs of one task flow smoothly into the inputs of the next task. At this level, the organization builds processes that empower the individuals doing the work. EXPLAIN that in a Level 3 organization standards institutionalize "the best" from previous projects. ASK how do the best processes from projects become institutionalized? EXPLAIN that Level 3 lays a foundation for software development to enable statistical process control. ASK why is Level 3 a foundation for SPC? STATE that at the defined maturity level the focus shifts from the project to the organization, although projects still have to tailor their project plans, standards, and processes from the organization's standard software process. EXAMPLE The foundation is the equivalent of a manufacturer's baseline. EXAMPLE from Deming: The shoemaker on an assembly line who didn't know about allowing for a sewing edge. Quotation from Watts Humphrey: "One of the challenges of Level 3 is to build processes that 'empower' the individuals doing the work without being overly rigid." 3 165
166
Managed According to a Well-Defined Process
Out STATE that in Level 3, projects and organizations have additional visibility into the processes because the organization has provided the common framework that all projects use to develop their own particular processes. At Level 2, all the requirements came from the customer. At Level 3, the organization now has requirements (e.g., if the customer does not require training, training would still be done because it is required by the organization). EXPLAIN that all project measurements can now be compared across the organization. NOTE: The small circles are in-process gauges. STATE that here the idea is to contrast task-level visibility (Level 3) with phase-level visibility (Level 2). Correlate this to the chart on transparency 3-14. Roles and responsibilities in the process are understood. The production of the software product is visible throughout the software process. 166
167
The Key Process Areas for the Defined Level
Peer Reviews Intergroup Coordination Software Product Engineering Integrated Software Management Training Program Organization Process Definition Organization Process Focus 3 STATE that Level 3 has 7 KPAs. EXPLAIN each KPA with a simple sentence in your own words. STATE that the KPAs are in random order, but for consistency they are always presented in this order. EXPLAIN that there is really a distinction between OPF and OPD implemented at the organizational level. Training is implement at both the organizational and project levels. The remaining four KPAs are all implemented at the project level. EXPLAIN that at Level 3 processes are shared by projects in the organization. At Level 4, an organization shifts from a reactive management style to somewhat proactive with the introduction of control limits. EXPLAIN that only training program and peer reviews are intuitively obvious when you look at the names. Defined 167
168
Organization Process Focus (PF, OPF)
Organizational Process Focus Purpose is to establish the organizational responsibility for software process activities that improve the organization’s overall software process capability. Involves developing and maintaining an understanding of the organization’s and projects’ software processes coordinating the activities to assess, develop, maintain, and improve these processes STATE that Organization Process Focus involves: • The organization recognizing the importance of software process improvement efforts and providing those making the efforts with the necessary resources. ASK a specific participant to read aloud the purpose (or involves) paragraph. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning; e.g., common understanding, document, and consistent. REFER to page 194 in The Capability Maturity Model: Guidelines for Improving the Software Process. EXPLAIN how software process improvement should be considered like a project. You need to plan, track, and train for it. STATE that an organizational structure is set up that coordinates and maintains products discussed in this KPA and in the next KPA - OPD. REFER to Fowler and Rifkin, SEPG Guide, 1990 168
169
Organization Process Definition (PD,OPD)
Purpose is to develop and maintain a usable set of software process assets that improve process performance and provide a basis for cumulative, long-term benefits. Involves developing and maintaining the organization’s standard software process and related process assets. NOTE: This is the most difficult KPA intellectually. It is hard to understand. STATE that Organization Process Definition involves: • The best of each project's processes, methods, techniques, and practices are generalized and documented for the organization. • Institutionalization ASK a specific participant to read aloud the purpose (or involves) paragraph. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning e.g., common understanding, document, and consistent. REFER to page 202 in The Capability Maturity Model: Guidelines for Improving the Software Process. STATE that organization resources (money and people) support these processes and the processes will mature with the organization. Quotation from Watts Humphrey: “One of the challenges of Level 3 is to build processes that ‘empower’ the individuals doing the work without being overly rigid." 169
170
Training Program (TP) Training Program Purpose is to develop the skills and knowledge of individuals so they can perform their roles effectively and efficiently. Involves identifying the training needs of the organization, projects, and individuals developing and/or procuring training to address these needs STATE that Training Program is the responsibility of the organization as a whole. This group coordinates the training needs of individuals, projects and of the organization. • Each software project identifies specific training needs. • The organization identifies its own training needs (this includes those from the OPF group). • Individuals identify particular needs. • The training group analyzes these requirements and develops an overall training plan. • The training group coordinates and facilitates training by developing courses, procuring courses, etc. • Training is provided. • Training is monitored to see if the programs are working. • Records are kept. EXPLAIN that Training Practices are training people for their current job. Training Program addresses training people for the future (organization's capability). ASK a specific participant to read aloud the purpose (or involves) paragraph. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning; e.g., common understanding, document, and consistent. ASK in which KPA were roles defined? REFER to page 213 in The Capability Maturity Model: Guidelines for Improving the Software Process. DISCUSS the results of Exercise 2, including: In the past, the teams that decided to buy training got a significant impact from it. EXPLAIN the difference between the Ability to Perform Common Feature (which includes a training key practice) and the Training Program KPA. 170
171
Integrated Software Management (IM, ISM)
Purpose is to integrate the project’s software engineering and management activities into a coherent, defined software process tailored from the organization’s software process assets. Involves developing the project’s defined software process by tailoring the organization’s standard software process managing the software project according to this defined software process STATE that Integrated Software Management builds on several previous KPAs, including Software Project Planning and Software Project Tracking and Oversight from Level 2, and Organizational Process Definition from Level 3. EXPLAIN the following important concepts: • Project's Defined Software Process, including readiness criteria, inputs, standards/procedures, verification mechanisms (peer reviews), outputs, completion criteria. • Data is now shared between projects. • Problems are anticipated better. A risk management plan is required. ASK a specific participant to read aloud the purpose (or involves) paragraph. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning e.g., common understanding, document, and consistent. REFER to page 223 in The Capability Maturity Model: Guidelines for Improving the Software Process. EMPHASIZE that this is integrating both the technical processes and the management processes based on the standard processes of the OSSP. 171
172
Software Product Engineering (PE, SPE)
Purpose is to consistently perform a well-defined engineering process that integrates all the software engineering activities to produce correct, consistent software products effectively and efficiently. Involves performing the engineering tasks to build and maintain the software using appropriate tools and methods STATE that this KPA—Software Product Engineering—is the first time product is specifically discussed in the CMM. ASK a specific participant to read aloud the purpose (or involves) paragraph. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning e.g., common understanding, document, and consistent. REFER to page 241 in The Capability Maturity Model: Guidelines for Improving the Software Process. ASK what does the statement "produce correct, consistent software products" mean? DISCUSS that it means meeting the intent of the customer requirements. An organization wants a satisfied customer. ASK what does it mean when we say "produce correct, consistent software products effectively and efficiently?" DISCUSS that this means sharing data across projects (including documents), using the best from previous projects, and not repeating the same mistakes. The primary focus is that an organization will be performing the work. • OPD defines the assets. • ISM plans the work based on the assets. • SPE performs the work based on the plans. • SPE specifies the assets that are defined in OPD. DISCUSS any experience with groups you have had on Exercise 2 (Dictionary). STATE that now that your management processes are in control at an organizational level, you can focus on performing the technical processes. 172
173
Intergroup Coordination (IC)
Purpose is to establish a means for the software engineering group to participate actively with the other engineering groups so that the project is better able to satisfy the customer’s needs effectively and efficiently. Involves disciplined interaction and coordination of the project engineering groups with each other to address system-level requirements, objectives, and plans STATE that Intergroup Coordination is critical because every part of an organization is essential to produce a high-quality product. EXPLAIN that IC extends beyond just software engineering. IC is necessary between: • project group (internal) • project and customer/user (external) ASK a specific participant to read aloud the purpose (or involves) paragraph. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning e.g., common understanding, document, and consistent. REFER to page 261 in The Capability Maturity Model: Guidelines for Improving the Software Process. DISCUSS any results of Exercise 2 that relate to this KPA. 173
174
Peer Reviews (PR) Peer Reviews Purpose is to remove defects from the software work products early and efficiently. An important corollary effect is to develop a better understanding of the software work products and of defects that might be prevented. Involves methodical examination of work products by the producer’s peers to identify defects and areas where changes are needed identifying products that will undergo a peer review in the project’s defined software process STATE that Peer Reviews involve: • Finding and fixing defects early, leading to high-quality products. • Possibly higher productivity. • Products that need to be "peer-reviewed" are defined in the project's software defined process. ASK a specific participant to read aloud the purpose (or involves) paragraph. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning e.g., common understanding, document, and consistent. REFER to page 270 in The Capability Maturity Model: Guidelines for Improving the Software Process. POINT OUT that communication within a team is as important as removing the defects. DISCUSS the results of Exercise 2, including: • Did any teams conduct peer reviews? 174
175
Understanding the Managed Maturity Level
Sets quantitative quality goal for both software products and processes Can be summarized as “predictable” as the process is measured and operates within measurable limits STATE that in a Level 4 organization, process limits are defined. If something falls outside the process limits, it raises a flag. ASK how many are familiar with statistical process control (SPC)? EXPLAIN that although the CMM applies the principles of SPC, it does not required SPC, only quantitative methods. EXAMPLE Continue with ATM story from Citibank. The organization looked into the point above the maximum limit and found that one ATM repair took more than 15 hours. Research proved that the repair occurred right after the branch changed their locks (a periodic process) and new keys were not given to the security guard. The only way a repair person could access the ATM was by using a key from the security guard, which was incorrect at the time. It took 12 hours to get a new key to the security guard. It proved to be a special cause. 175
176
Product and Process are Quantitatively Managed
In Out NOTE: the meters moving up represent in-process measures of tasks and feedback. STATE that as an organization collects data (historical information, best practices, benchmarks), the data establishes (and adjusts) the control limits, providing the capability for a more real-time action management style. Management reacts instream (real time). EXPLAIN that the objective is to stabilize an organization's performance. The focus is on predictability. STATE that a tolerance limit is something an organization decides to set and a control limit is set by data, depending upon what is happening. Management has an objective basis for making decisions. Management is able to predict performance within quantified bounds. 176
177
The Key Process Areas for the Managed Level
Software Quality Management Quantitative Process Management 4 STATE that Level 4 has 2 KPAs in contrast to the 6 and 7 KPAs earlier levels had. EXPLAIN that the number of KPAs decrease at higher maturity levels. The reasons for this include that the software management system is in place and the process is now well defined. Also, the SEI knows less about the higher levels. They are currently benchmarking Level 4 and 5 projects and organizations. EXPLAIN each KPA with a simple sentence in your own words. STATE that the KPAs are in random order, but for consistency they are always presented in this order. EXPLAIN that QPM is primarily concerned with process and setting limits. EXPLAIN that SQM is primarily concerned with product and setting goals. EXPLAIN that now there are consistent, stable processes in place on projects across the organization. At this time, an organization can finally concentrate on disciplined process improvement. 177
178
Quantitative Process Management (QP, QPM)
Purpose is to control the process performance of the software project quantitatively. Involves establishing goals for process performance measuring the performance of the project analyzing these measurements making adjustments to maintain process performance within acceptable limits STATE that Quantitative Process Management: • Sets limits for process performance. • Takes measurements • Analyzes measurements • Corrects performance that falls outside the limits. ASK a specific participant to read aloud the purpose (or involves) paragraph. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning, e.g., common understanding, document, and consistent. REFER to page 278 in The Capability Maturity Model: Guidelines for Improving the Software Process. EXPLAIN the difference between a goal and a limit. Goals for the process must be achievable within the limits of what the process is doing. 178
179
Software Quality Management(QM, SQM)
Purpose is to develop a quantitative understanding of the quality of the project’s software products and achieve specific quality goals. Involves defining quality goals for the software products establishing plans to achieve these goals monitoring and adjusting software plans, software work products, activities, and quality goals to satisfy the needs and desires of customer and end-user STATE that Software Quality Management focuses on the product. It: • Defines goals for the product • Establishes plans • Monitors and adjusts ASK a specific participant to read aloud the purpose (or involves) paragraph. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning e.g., common understanding, document, and consistent. REFER to page 292 in The Capability Maturity Model: Guidelines for Improving the Software Process. STATE that the bottom line is to satisfy the customer and end user. POINT OUT that if you are monitoring issues the customer and end user don't care about, you are not monitoring the correct issues. 179
180
Understanding the Optimizing Maturity Level
Identify and eliminate chronic causes of poor performance Continuously improve the software process Control Chart With Common Causes Original zone of quality control New zone of Chronic waste Quality Improvement STATE that by Level 5 the process limits are well understood and the organization tries to refine the limits. NOTE: The diagram used on the transparency came form a Juran Trilogy Diagram. REFER to CMM-TR-24, Fig. 2.2, page 17. EXAMPLE Continue with ATM story from Citibank. The organization looked into the point below the minimum limit and found that one ATM repair took only 30 minutes. Research proved that the repair occurred Friday afternoon of a three day weekend. Instead of fixing the broken mechanism, the repair person replaced it with a spare she had in the truck. The bank benchmarked the process and found that it was cheaper for the repair persons to replace the parts and bring the broken ones back to a central maintenance facility where they could be fixed and sent out as spares. Here is an example of process improvement. 180
181
Focus on Continuous Process Improvement
Out STATE that at Level 5 an organization streamlines existing processes and adds new processes. EXPLAIN that the measurement view has not changed from Level 4, but the data has changed. The CMM does not try to stabilize it, but rather change the process to become stable at a new level of performance (capability). STATE that major process changes are likely to occur before the process begins and minor changes are usually continuous. Example - automatic code generators and automatic testers. ASK How much time should I spend on process improvement compared to doing my real job? This question exposes the maturity level of an organization and the level of understanding of CMM. Disciplined change is a way of life. 181
182
The Key Process Areas for the Optimizing Level
Process Change Management Technology Change Management Defect Prevention 5 STATE that Level 5 has 3 KPAs. EXPLAIN each KPA with a simple sentence in your own words. STATE that the KPAs are in random order, but for consistency they are always presented in this order. EXPLAIN that defect prevention and process change management are incremental. Technology change management is innovation. STATE that prior to this level, acquisitions were not made wholly on data, but also on personal preference, gut feelings, advertising, etc. Now, at Level 5, acquisition is disciplined. It is handled as a process, systematically. Data is used in the decision making process, e.g., an organization wouldn't say, "on Monday we will be using the SLIM estimating technique," without training, or without seeing how it fits in the overall process, etc. EXAMPLE To buy a tool it is reviewed, tested on a small level, the tests are reviewed, revisions are made, the tool is implemented, and the process is redesigned to fit the tool if necessary. STATE that the process improvement and technology improvement are targeted to the known weaknesses and bottlenecks of the process. Up until this level, an organization didn't know what its weaknesses and bottlenecks were. STATE that now the participants have an overview of each of the SEI levels. ASK do you think an organization can go from maturity Level 1 to maturity Level 3? 182
183
Defect Prevention (DP)
Purpose is to identify the cause of defects and prevent them from recurring. Involves analyzing defects that were encountered in the past taking specific actions to prevent the occurrence of these types of defects in the future STATE that the Defect Prevention KPA is the only area where the CMM mentions causal analysis. EXPLAIN that you can't prevent defects unless you know what your defects are. Defect detection is fundamental to defect prevention. ASK a specific participant to read aloud the purpose (or involves) paragraph. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning; e.g., common understanding, document, and consistent. REFER to page 306 in “The Capability Maturity Model: Guidelines for Improving the Software Process.” EXPLAIN the difference between defect correction and defect prevention. Correction is at Levels 1 and 2 (find a defect and remove it from the product). Defect prevention is identifying common cause of a class of defects and removing from the process the common cause. 183
184
Process Change Management (PC, PCM)
Purpose is to continuously improve the software processes used in the organization with the intent of improving software quality, increasing productivity, and decreasing the cycle time for product development. Involves defining process improvement goals systematically identifying, evaluating, and implementing improvements to the organization’s standard software process and the projects’ defined software processes STATE that when an organization is working on this KPA, everyone in the organization is asking "How can I make things better?" EXAMPLE Olympic athletes who have broken world records. They continue to train because they know if they don't break their own records, other people will. ASK a specific participant to read aloud the purpose (or involves) paragraph. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning; e.g., common understanding, document, and consistent. REFER to page 330 in The Capability Maturity Model: Guidelines for Improving the Software Process. EXPLAIN that TCM often gives you opportunity for major quantum change. PCM is very incremental, small changes will get you ahead over time. REFER to Kaizen 184
185
Technology Change Management (TM, TCM)
Purpose is to identify new technologies (i.e., tools, methods, and processes) and transfer them into the organization in an orderly manner. Involves identifying, selecting, and evaluating new technologies incorporating effective technologies into the organization STATE that Technology Change Management is the application of technology to support a defined software process. EXAMPLE Thinking that using PSA/PSL will help define requirements. Quotation from Harlan Mills: "Automation is very effective in helping us do things we know how to do; it is not effective in helping us do things we do not know how to do. Process must precede tools." ASK a specific participant to read aloud the purpose (or involves) paragraph. ASK the class to find the KEY OPERATIVE words. EMPHASIZE how these words are simple but loaded with meaning; e.g., common understanding, document, and consistent. REFER to page 319 in The Capability Maturity Manual: Guidelines for Improving the Software Process. EXPLAIN Level 1 organizations often look to technology to solve their problems. Level 5 organizations identify their problems, try to identify how their process should change to deal with the problem, and then look to technology to enable the change to process. Approximately 75% of tools sit on the shelf. 185
186
Maturity Levels Cannot be Skipped
Each level provides a necessary foundation for improvements undertaken at the next level. engineering process is easily sacrificed without management discipline detailed measures are inconsistent without a defined process effect of process innovation is obscure in a noisy process STATE process improvements that build capability are implemented in stages, since some processes cannot be effective unless others are stable. Each level provides the necessary foundation for improvements undertaken at the next level. STATE that processes without proper foundations seem to fail when they are needed most, in stressful situations. EXAMPLE Motorola India perceived that they skipped a Level, but their parent company had best practices. India actually met all the requirements of Level 2 and Level 3 right away. It only appears that they started at Level 3 because people at the organization had Level 3 experience. EXAMPLE A Level 1, the SEPG is made up of technical people who want to do the Level 3 technical stuff. However, no one uses the outputs because there is no management support to use it. Management does not want to partner with the business to increase the organization's maturity. STATE that an organization can implement a KPA early, but it is not as effective as when the organization has the foundation in place. EXAMPLE Peer reviews can be implemented early, but they are not as efficient until Level 3. If implemented at Level 3, most improvement is shown right away. 186
187
Common Features Indicate whether the implementation and institutionalization of a key process area are effective, repeatable and lasting Commitment to perform (Actions) Ability to perform (Preconditions) Activities performed (roles and procedures) Measurement and analysis (need to measure & analysis of measure) Verifying Implementation(steps to ensure)
188
or Institutionalization
The CMM Structure Indicate Maturity Levels Contain Process Capability Achieve Key Process Areas Goals Organized by Address Common Features Implementation or Institutionalization Contain Describe Key Practices Activities or Infrastructure
189
CMM Structure 1 2 3 4 5 5 CMM maturity levels 0-7 KPAs per
6 7 2 3 = 18 total KPAs 5 common features per KPA with 1-n practices each = 52 goals 2-4 goals per KPA Activities to implement process and infrastructural requirements to institutionalize process = 316 total key practices 1-n 1-n 1-n 1-n 1-n
190
CMM Structure Sl. Structure/ Level Level Level Level 4 Level Total No.
1 2 3 5 1. KPAs (0-7 per - 6 7 2 3 18 ML) 2. Goals - 20 17 6 9 52 (1-4 per KPA) Commitments - 9 9 3 7 28 Abilities - 25 25 8 13 71 Common Activities - 62 50 12 26 150 316 Features Measurement - 6 9 2 3 20 analysis Verification & - 19 15 6 7 47 Implementation
191
What we Learnt The CMM focuses on software management issues.
Visibility into the process depends on maturity of the process. The CMM is a 5-level model and the levels are broken into key process areas. Each level builds on the capability of the previous level. STATE each CMM maturity level provides a necessary foundation for improvements undertaken at the next level. EXPLAIN Initial - people-oriented leading to unpredictable and poorly controlled processes Repeatable - project management oriented, repeating previously mastered tasks Defined - organization and process oriented, characterizing and specifying organizational processes Managed - quantitatively oriented management based on measuring the process Optimizing - continuous process improvement-oriented, based on optimizing existing processes STATE that an organization can implement a KPA early, but it is not as effective as when the organization has the foundation in place. EXAMPLE Peer reviews can be implemented early, but they are not as efficient until Level 3. If implemented at Level 3, most improvement is shown right away. 191
192
QUALITY SYSTEM STANDARD & CERTIFICATION
ISO 9001 QUALITY SYSTEM STANDARD & CERTIFICATION 192
193
Learning Objective Quality Quality Control Quality Assurance
Quality Management System ISO 9000 ISO 9001 ISO 9001 Clauses
194
Quality Ability of a set of inherent characteristics of a
product , system or process to fulfil requirements of customers and other interested parties
195
Quality Control Part of Quality Management, focussed on fulfilling
quality requirements
196
Part of quality management,
Quality Assurance Part of quality management, focussed on providing confidence, that quality requirements will be fulfilled
197
Quality Management System
System to establish quality policy & quality objectives and to achieve those objectives
198
“Say What you do; do what you say”
Quality System “Say What you do; do what you say”
199
ISO 9000 A different attempt to improve software quality
Not an industry specific, use by over 130 countries Set of documents dealing with quality system that can be used for quality assurance process Series of five related standards Industrial activities, design/development, production, installation and servicing
200
What is ISO 9001? Specific guidelines to software namely ISO9000-3
Minimum criteria for an acceptable quality system Has much broader scope: Hardware, software, processed, material and services
201
International Organization of Standardization
ISO is an organization that develops Standards for use worldwide to help companies plug into the world market.
202
Quality Management System Criteria
An International Group of Business and Quality Professionals determined criteria. basics of good business practice. For example: Set quality goals Ensure customer requirements are understood and met Train employees Control your production processes Purchase from suppliers that can provide quality product Correct problems and make sure they do not happen again
203
Internal Benefits Include
Increased productivity •Less scrap and rework •Increased employee satisfaction •Continual improvement •Increased profits
204
Marketing Benefits Include
An internationally recognized QMS Increased opportunities in specific markets Increased customer satisfaction
205
What will ISO 9001 do for your employees?
It will ensure that they have the training and information to do their job correctly. Systems will be in place to identify problems find the cause and eliminate it to prevent problems from reoccurring
206
The ISO 9001 Standard Section 1: Scope
Talks about the standard and how it applies to organizations Section 2: Normative Reference References another document that should be used along with the standard, ISO 9000:2000, Quality Management Systems- Fundamentals and Vocabulary Section 3: Terms and Definitions Gives a few new definitions Section 4: General Requirements Gives requirements for the overall Quality Management System
207
The ISO 9001 Standard cont.. Section 5: Management Responsibility
Gives requirements for Management and their role in the Quality Management System Section 6: Resource Management Gives requirements for resources including personnel, training, the facility and work environment Section 7: Product Realization Gives requirements for the production of the product or service, including things like planning, customer related processes, design, purchasing and process control
208
The ISO 9001 Standard cont.. Section 8: Measurement, Analysis and Improvement Gives requirements on monitoring processes and improving those processes
209
ISO 9001 Clauses Management Responsibility
Define, document, understand, implement and maintain quality policies Quality system Document quality system, including procedure and instructions Contract review Review contract to determine whether the requirements are adequately defined, agreed with the bid and implemented Design Control Includes planning design activities, identifying inputs and outputs, verifying design and controlling design changes Document Control Distribution and modification of documents be controlled
210
ISO 9001 Clauses.. Purchasing
Includes the assessment of potential subcontractors and verification of purchased Purchaser-Supplied Product Any purchaser-supplied material be verified and maintained Product Identification and Traceability Product be identified and traceable during all stages of production, delivery and installation Process Control Production process be defined and planned, that includes carrying out production under controlled condition
211
ISO 9001 Clauses.. Inspection and Testing
Incoming material be inspected or certified before use and that in-process inspection and testing be performed. Final inspection and testing be performed prior to release Inspection , Measuring and test equipment Equipment used to demonstrate conformance be controlled, calibrate and maintained Inspection and Test Status The status of inspections and tests be maintained for items as they progress through various processing steps
212
ISO 9001 Clauses.. Control of nonconforming product
Nonconforming product be controlled to prevent inadvertent use of installation Corrective Action Potential causes of nonconforming product are eliminated Handling, storage, packaging and delivery Procedures for Handling, storage, packaging and delivery be established and maintained Quality Records Quality records be collected , maintained and dispositioned
213
ISO 9001 Clauses.. Internal Quality Audits
Audits be planned and performed Training Training needs to be identified and provided. Records of training are maintained Servicing Servicing activities be performed as specified Statistical technique Appropriate , adequate statistical techniques are identified should be used to verify the acceptability of process capability and product characteristics
214
The Process Model Product Continual Improvement of the
Quality Management System C u s t o m e r S a t I s f c o n C u s t o m e r Management Responsibility R e q u I r m n t Resource Management Measurement Analysis and Improvement Product Realization Product
215
What we Learnt Quality Quality Control Quality Assurance
Quality Management System ISO 9000 ISO 9001 ISO 9001 Clauses
216
UNIT III Learnings Software Metrics Software measurements What & Why
Token Count Halstead Software Science Measures Design Metrics Data Structure Metrics Information Flow Metrics
217
UNIT III Learnings Software Reliability Importance
Hardware Reliability & Software Reliability Failure and Faults Reliability Models Software Quality Models CMM & ISO 9001
218
Problem 1 Assume that a program will experience 150 failures in infinite time. It has now experienced 80. The initial failure intensity was 10-failures/CPU hr. (i) Determine current failures intensity (ii) Calculate the failures experienced and failure intensity after 25 and 40 CPU hrs of execution. (iii) Compute additional execution time required to reach the failure intensity objectives of 2-failures/CPU-hr. Assume that initial failure intensity is 10 failure/cpu hrs. The failure λ(µ) = λ0 [1- µ/v0] µ(Γ) = v0 [1- exp(-λ0 Γ /v0)]
219
Problem 2 Intensity decay parameter is 0.03/failure. We have experienced 75 Failures upto this time. Find the failures experienced and failure intensity after 25 and 50 CPU hours of execution.
220
Objective Questions Q1. Write formula for Language level and Program volume Q2. Reliability of software is measured at________ phase Q3. In logarithmic Poisson execution model, 0 is known as_____. Q4. Define each of following term and derive/show their formula- (i) Program level (ii) Potential volume (iii) Average life of a variable (iv) FANOUT Q5. The number of clauses used in ISO9001 is ________. Q6. Software science measures are developed by _________ Q7. Define Calendar Time Component. Q8. Why is it important for software developers to make use of measurement to guide their work?
221
Short Questions Q1. What are information flow metrics? Explain the basic information flow model. Q2. Differentiate between various categories of metrics. Q3. Write short note on Any Three of following I. MTBF II. MTTF III. Failure intensity IV. CMM V. MTBF VI. Failure intensity
222
Short Questions Q4. Differentiate ISO9126 vs McCall software Quality Model Q5. Write in short McCall, Boehm’s and ISO 9126 software quality models. Q6. Write Short Note on Resource Usage Q7. Differentiate Basic Execution Time Model vs. Logarithmic Poisson Execution Time Model Q8..A program is expected to have 500 faults. It is also assumed that one fault may lead to one failure only. The initial failure intensity was 2 failures/ CPU hr. The program was to be released with a failure intensity objective of 5 failures/100CPU hr. Calculate the number of failures experienced before release.
223
Long Questions Q1. What are software metrices ? Describe information flow based metrics. Q2. Describe the Mc Call software quality model. How many product quality factors are defined and why? Q3. Explain Halstead theory of software science. Is it significant in today’s scenario of component based software development? Q4. Write a program for calculation of roots of quadratic equation. Generate Cross reference list for the program and also calculate LV and WM for this program. Q5. Explain Baehm Software Quality model with help of a block diagram. Q6. Intensity decay parameter is 0.03/failure. We have experienced 75 Failures upto this time. Find the failures experienced and failure intensity after 25 and 50 CPU hours of execution.
224
Long Questions.. Q7. Assume that a program will experience 150 failures in infinite time. It has now experienced 80. The initial failure intensity was 10-failures/CPU hr. (i) Determine current failures intensity (ii) Calculate the failures experienced and failure intensity after 25 and 40 CPU hrs of execution. (iii) Compute additional execution time required to reach the failure intensity objectives of 2-failures/CPU-hr. Assume that initial failure intensity is 10 failure/cpu hrs. The failure Q8. List the difference of CMM and ISO Why is it suggested that CMM is the better choice than ISO 9001? Q9. What are software metrics? Discuss Halistead software sciences metrics along with its limitations.
225
Long Questions.. Q10. Compare and contrast Basic Execution Time Reliability Model with Logarithmic Poisson Execution Time Model Q11. Discuss information flow metrics with its limitation. How a more sophisticated Information Flow model can overcome them? Q12. Discuss CMM structure. What are the common features in each KPA. Q13. Discuss the various key process areas of CMM at various maturity levels.
226
Research Problems Q1. Given a structure with high fan-out, how would you convert it to a structure with a low fan-out Q2. Discuss some approaches on how you can use metrics to guide you in design to produce a design that is easy to modify. Q3. Design an experiment to study the Amount of Data, Average Live Variables and Variable Span. Q4. If you have all the metrics data available for design, how will you use this data? Specify your objectives, the metrics you will use, how you will interpret the value, and what possible actions you will take based on the interpretation.
227
References 1. K. K. Aggarwal & Yogesh Singh, “Software Engineering”, 2nd Ed., New Age International, 2005. 2. R. S. Pressman, “Software Engineering – A practitioner’s approach”, 5th Ed., McGraw Hill Int. Ed., 2001. 3. Pankaj Jalote, “An Integrated Approach to Software Engineering”, Narosa, 3rd Ed., 2005. 4. Stephen R. Schach, “Classical & Object Oriented Software Engineering”, IRWIN, 5. James Peter, W. Pedrycz, “Software Engineering: An Engineering Approach”, John Wiley & Sons. 6. Sommerville, “Software Engineering”, Addison Wesley,8th Ed.,
228
References.. . 7. Rajib Mall, “Fundamrntal of Software Engineering”, PHI, 3rd Ed., 2009. 8. l 9. 10. 11. 12. 13. 14. 15.
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.