To Engineer is Human Henry Petroski it is the essence of modern - - PowerPoint PPT Presentation

to engineer is human henry petroski
SMART_READER_LITE
LIVE PREVIEW

To Engineer is Human Henry Petroski it is the essence of modern - - PowerPoint PPT Presentation

To Engineer is Human Henry Petroski it is the essence of modern engineering not Metrics only to be able to check one's own work, but also to have one's work checked and to be Software Engineering & Technology able to check the work of


slide-1
SLIDE 1

Metrics

Software Engineering & Technology Tom Verhoeff

To Engineer is Human Henry Petroski

“it is the essence of modern engineering not

  • nly to be able to check one's own work, but

also to have one's work checked and to be able to check the work of others. In order for this to be done, the work must follow certain conventions, conform to certain standards, and be an understandable piece of technical communication. ”

GQM – TQM

Goals Questions Metrics Total Quality Management

Goals

Quality control (objective, quantitative) Project planning & reporting Accountability (e.g. in case of an audit) Process improvement Measuring is not a goal in itself

slide-2
SLIDE 2

Questions

What is the quality of the system? How much extra (time, staff) will it take? What is the branch coverage of the tests? How complex is the system? How much time was spent on defect removal?

Steps

Select metrics (also consider: validation, calibration, tuning, staff training) Collect and store measurement data Report, consolidate (graphs, trend charts, …) Interpret (w.r.t. goals) React (close the feedback loop)

Decisions

What actually to measure? What measurement to use? Alternatives, trade-offs How to measure? (measurement process) What to do with measurement results?

What to measure

Product related Process related

slide-3
SLIDE 3

Fundamental Metrics

Size (LOC, FP, ABC, …) Cost (Euro) Duration (months) Effort (person-months) Quality (of product: number of defects)

Size vs Complexity

LOC, SLOC percentage of lines with comments # classes; (public) methods | inst. var. / class # parameters | LOC / method depth of inheritance hierarchy # overridden methods

Cyclomatic Complexity

McCabe 1976 Testability, understandability (maintainability) # linearly independent paths in flow graph # edges – # vertices + 2 * # components # binary decisions + 1 Typical upper bound per module: 10

Example

p, q = 0, N # given A[0..N) while p <> q : if A[p] : p = q else : p = p + 1 if p == N : print ’Not found’ else : print ’Found at’, p LOC = 8; SLOC = 6 A, B, C = 4, 2, 3 Cyclomatic complexity = 4

p = q p, q := 0, N A[p] p := q p := p + 1 Start p = N Stop

Yes No Yes No

'Not found' 'Found at', p

Yes No

slide-4
SLIDE 4

Tools

Configuration management tools Defect/issue trackers Test tools (measure coverage) Static code analyzers CCCC = C/C++ Code Counter

Benchmark

Point of reference, specifically for program

  • r processor performance

SPEC: Standard Performance Evaluation Corporation <www.spec.org> Dhrystone -> SPEC CINT2000 (no fl.pt.) Whetstone -> SPEC CFP2000

Estimation

Point versus range estimate; probability Over-estimation versus under-estimation Accuracy versus precision Estimation error cone of uncertainty (Dis)economy of scale

CMM: Capability Maturity Model

Evaluate & measure maturity of sw development process in organizations Provide guidance for improving the sw development process Not a sw development process in itself Successor: CMMI = CMM Integration

slide-5
SLIDE 5

CMM Maturity Levels

Level 1: Initial Level 2: Repeatable Level 3: Defined Level 4: Managed Level 5: Optimizing

Literature

Jerry Fitzpatrick. Applying the ABC Metric to C, C++, and Java. C++ Report, June 1997. Stephen H. Kan. Metrics and Models in Software Quality Engineering (2nd Ed.). Addison-Wesley, 2003. Steve McConnell. Software Estimation: Demystifying the Black Art. Microsoft Press, 2006.