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
Give 3 examples of metrics for OO programs
- complexity weighted methods per class
- depth of inheritance tree
- number of direct subclasses
Describe the Goal-Question-Metric approach?
- Define the goals relevant for a project
- For each goal, derive questions which need to be answered to check whether goal is reached
- For each question, choose metrics to help answer it
Development of a pseudo metric?
Identify the aspect to be represented and model the aspect. Fix a scale for the metric and decide how to compute it using base measures.
Give examples of software costs?
maintenance, quality assurance (prevention/fixes), error costs during/after development (localization/removal), error caused costs (in operation)
Why spend money to identify errors early?
Cost of errors increases later in software development processes
What is the estimation funnel?
x-axis: effort estimated to real effort (0.25x to 4x). above 1x is overest and below is underest.
y-axis: software development phase.
More likely to under/overest effort in beginning stages as end stages
Expert’s estimation: the Delphi method
Step 1: write down estimates
Step 2: show estimates and explain
Step 3: estimate again.
Step 4: take median
Describe principle of algorithmic cost estimation compared to expert cost estimation
Look at data on past projects (ex. sizes, costs, kinds, etc) and try to find function from data -> cost. Expert cost estimation estimates cost directly
Describe the COCOMO algorithmic cost estimation
Formulae which fit a huge set of archived project data