Introduction, Metrics, and Cost Estimation Flashcards
Definition of software?
Computer programs, procedures, and possibly associated documentation
and data pertaining to the operation of a computer system
Definition of software engineering?
the establishment and use of sound engineering
principles to obtain economically software that is reliable and works efficiently
on real machines
When is a software development project successful?
successful iff developer, customer, and user are happy with the result at then end of the project
Definition of a metric?
A quantitative measure of the degree to which a system, component, or process
possesses a given attribute
What are the different ways software metrics can be used?
- prescriptive (all procedures must not have more than N parameters)
- descriptive (procedure P has 3 parameters)
2a. diagnostic (test effort was 2 hours)
2b. prognostic (expected test effort is 2 hours)
Definition of a software metric
A function m: P –> S which assigns to each proband p in P a valuation yield m(p) in S. We call S the scale of m.
What is a “useful” metric? And give positive and negative examples for each characteristic (positive first)
- differentiated (different valuation yield for diff proband) LOC v. CMMI LEVEL BELOW 2
- comparable (rational/absolute/ordinal scale) LOC v. TEXT REVIEW
- reproducible (multiple calculations of m(p) for same p are the same) LOC v. GRADE FROM INSPECTOR
- available LOC v. TRUE NUMBER OF ERRORS
- relevant EXPECTED COST v. # OF SUBCLASSES
- economical (irrelevant metrics are not economical) # DISCOVERED ERRORS v. DETAILED TIMEKEEPING
- plausible (high ratio of TP+TN to FP+FN) COCOMO v. CYCLOMATIC COMPLEXITY WITH POINTER OPS
- robust (NOT subvertible) GRADING BY EXPERTS v. PSEUDO-METRICS
Which operations distinguish different types of scales?
- =, NOT =
- min, max
- percentiles (ex. median)
- change
- proportion
- natural 0
What are the different types of scales (and examples)?
- nominal (nationality, programming language)
- ordinal (SA > A > D > SD, CMMI scale)
- Interval (temperature, time of check-in revision control system)
- rational (weight, runtime)
- absolute (number of people, number of errors) – rational scale where S comprises the key figures themselves
Difference between base measure and derived measure?
base measure = measure defined in terms of an attribute and the method for quantifying
it (EX. LOC),
derived measure = measure that is defined as a function of two or more values of base
measures (EX. PRODUCTIVITY)
Advantages and Disadvantages of objective, subjective, and pseudo metrics?
- objective metrics: exact and reproducible but often subvertible and not relevant
- subjective metrics: not subvertible and applicable to complex situations, but expensive and depends on reviewer
- pseudo metrics: relevant information on not directly visible characteristics, but hard to understand and pseudo-objective
Why are pseudo metrics used?
want to measure things like maintainability, productivity, etc which are hard to measure but very relevant => choose derived measurement (ex. avg LOC per module) to interpret as level of maintainability, etc
When are pseudo metrics useful?
Pseudo-metrics can be useful if there is a (good) correlation (with few false positives and few
false negatives) between valuation yields and the property to be measured. Also must not be subvertible (ex. LOC per hour to measure productivity)
Definition of cyclomatic number of graph?
Let G = (V,E) be a graph with vertices V and edges E. Cyclomatic number = num edges - num vertices + 1. Intuition: min num edges to be removed to make G cycle free
Definition of McCabe cyclomatic complexity of program?
Let G = (V,E) be a control flow graph of program with vertices V and edges E. McCabe complexity = num edges - num vertices + num entry/exit points. Intuition: num paths possible for program