Introduction, Metrics, and Cost Estimation Flashcards

1
Q

Definition of software?

A

Computer programs, procedures, and possibly associated documentation
and data pertaining to the operation of a computer system

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Definition of software engineering?

A

the establishment and use of sound engineering
principles to obtain economically software that is reliable and works efficiently
on real machines

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

When is a software development project successful?

A

successful iff developer, customer, and user are happy with the result at then end of the project

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Definition of a metric?

A

A quantitative measure of the degree to which a system, component, or process
possesses a given attribute

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are the different ways software metrics can be used?

A
  1. prescriptive (all procedures must not have more than N parameters)
  2. descriptive (procedure P has 3 parameters)
    2a. diagnostic (test effort was 2 hours)
    2b. prognostic (expected test effort is 2 hours)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Definition of a software metric

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is a “useful” metric? And give positive and negative examples for each characteristic (positive first)

A
  1. differentiated (different valuation yield for diff proband) LOC v. CMMI LEVEL BELOW 2
  2. comparable (rational/absolute/ordinal scale) LOC v. TEXT REVIEW
  3. reproducible (multiple calculations of m(p) for same p are the same) LOC v. GRADE FROM INSPECTOR
  4. available LOC v. TRUE NUMBER OF ERRORS
  5. relevant EXPECTED COST v. # OF SUBCLASSES
  6. economical (irrelevant metrics are not economical) # DISCOVERED ERRORS v. DETAILED TIMEKEEPING
  7. plausible (high ratio of TP+TN to FP+FN) COCOMO v. CYCLOMATIC COMPLEXITY WITH POINTER OPS
  8. robust (NOT subvertible) GRADING BY EXPERTS v. PSEUDO-METRICS
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Which operations distinguish different types of scales?

A
  1. =, NOT =
  2. min, max
  3. percentiles (ex. median)
  4. change
  5. proportion
  6. natural 0
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are the different types of scales (and examples)?

A
  1. nominal (nationality, programming language)
  2. ordinal (SA > A > D > SD, CMMI scale)
  3. Interval (temperature, time of check-in revision control system)
  4. rational (weight, runtime)
  5. absolute (number of people, number of errors) – rational scale where S comprises the key figures themselves
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Difference between base measure and derived measure?

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Advantages and Disadvantages of objective, subjective, and pseudo metrics?

A
  1. objective metrics: exact and reproducible but often subvertible and not relevant
  2. subjective metrics: not subvertible and applicable to complex situations, but expensive and depends on reviewer
  3. pseudo metrics: relevant information on not directly visible characteristics, but hard to understand and pseudo-objective
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Why are pseudo metrics used?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

When are pseudo metrics useful?

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Definition of cyclomatic number of graph?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Definition of McCabe cyclomatic complexity of program?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Give 3 examples of metrics for OO programs

A
  1. complexity weighted methods per class
  2. depth of inheritance tree
  3. number of direct subclasses
17
Q

Describe the Goal-Question-Metric approach?

A
  1. Define the goals relevant for a project
  2. For each goal, derive questions which need to be answered to check whether goal is reached
  3. For each question, choose metrics to help answer it
18
Q

Development of a pseudo metric?

A

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.

19
Q

Give examples of software costs?

A

maintenance, quality assurance (prevention/fixes), error costs during/after development (localization/removal), error caused costs (in operation)

20
Q

Why spend money to identify errors early?

A

Cost of errors increases later in software development processes

21
Q

What is the estimation funnel?

A

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

22
Q

Expert’s estimation: the Delphi method

A

Step 1: write down estimates
Step 2: show estimates and explain
Step 3: estimate again.
Step 4: take median

23
Q

Describe principle of algorithmic cost estimation compared to expert cost estimation

A

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

24
Q

Describe the COCOMO algorithmic cost estimation

A

Formulae which fit a huge set of archived project data

25
Q

Describe the software project types in COCOMO

A

size (KLOC), innovation level, deadline flexibility, development environment stability, –> organic, semi-detached, embedded (a decreases, b increases)

26
Q

Equation for effort required in basic COCOMO v. intermediate?

A

basic: effort req in PM: E = a(S/kDSI)^b where DSI = delivered source instructions and S is size(?).
intermediate: E = Ma(S/kDSI)^b where M = product various of cost drivers

27
Q

What are the approaches to cost estimation?

A

expert (delphi), algorithmic (COCOMO, function points)

28
Q

What is difference between COCOMO first version and COCOMO II?

A

COCOMO II includes function points, more estimation for project before architecture is finalized

29
Q

What are function points?

A

Fill out table for complexity of input/output/user data/query etc and use various equations to sum/weight the complexity then decide on function to convert to person months