Uploaded by misch0s3n

Lec 8 complexity 2

advertisement
Process Maturity Models
• Evaluation of the maturity of an organization development
process
– Benchmark for SQA practice
• Breakdown of software process into process areas
• Provides means of measuring maturity, of complete process
and/or of separate process areas
• Examples:
– Capability Maturity Model (CMM), from the Software
Engineering Institute (SEI), at Carnegie-Mellon
University
– ISO 9000 quality standard series, from the
International Organization for Standardization
CMM Maturity levels
1. Initial – chaotic unpredictable (cost, schedule, quality)
2. Repeatable - intuitive; cost/quality highly variable, some
control of schedule, informal/ad hoc procedures.
Level 5
Optimizing
3. Defined - qualitative; reliable costs and
schedules, improving but unpredictable
quality performance.
4. Managed – quantitative
reasonable
statistical control
over product quality.
Level 4
Managed
Level 3
Defined
Level 2
Repeatable
Level 1
Initial
5. Optimizing - quantitative basis for continuous improvement.
CMM Key Process Areas
• Functions that must be present at a particular level
• Level 1: Initial
– Any organization that does not meet requirements of
higher levels falls into this classification.
• Level 2: Repeatable
– Requirements management
– Software project planning and oversight
– Software subcontract management
– Software quality assurance
– Software configuration management
CMM Key Process Areas
• Level 3: Defined
– Organizational process improvement
– Organizational process definition
– Training program
– Integrated software management
– Software product engineering
– Inter group coordination
– Peer reviews
CMM Key Process Areas
• Level 4: Managed
– Process measurement and analysis
– Statistics on software design/code/test
defects
– Defects projection
– Measurement of test coverage
– Analysis of defects process related causes
– Analysis of review efficiency for each
project
– Quality management
CMM Key Process Areas
• Level 5: Optimizing
– Defect prevention.
– Mechanism for defect cause analysis to
determine process changes required for
prevention
– Mechanism for initiating error prevention
actions
– Technology innovation
– Process change management
McCabe’s Cyclomatic Complexity
• Based on a flow graph model of software.
• Measures the number of linearly independent
paths through a program.
• Uses graph components:
– E: Number of edges in flow graph
– N: Number of nodes in flow graph
• Cyclomatic complexity: M = E – N + 2
• Claim: if M > 10 for a module, it is “likely” to be
error prone.
Calculating Cyclomatic Complexity
E2
E1
N1
N2
E3
E5
E4
N3
E11
E6
N4
E7
E9
E8
N5
N7
N6
N8
N9
E13
E10
N10
E14
E15
E12
M = 15 – 11 + 2 = 6
N11
Cyclomatic Complexity
•
With a cyclomatic complexity of 6, there are 6
independent paths through the flow graph:
1. E1-E2-E15
2. E1-E5-E3-E14-E15
3. E1-E5-E6-E4-E13-E14-E15
4. E1-E5-E6-E7-E12-E13-E14-E15
5. E1-E5-E6-E7-E8-E10-E11-E12-E13-E14-E15
6. E1-E5-E6-E7-E8-E9-E11-E12-E13-E14-E15
Reading
• http://www.guru99.com/cyclomaticcomplexity.html
Download