Chapter 5 - Software Project Planning

Software Project Estimation

  • Requires:
    • software development experience
    • access to good historical data
    • courage to commit to quantitative measures when only qualitative data exists
  • Risk and uncertainty inherent in estimation
    • Project complexity
    • Project size
    • Solidity of requirements
  • Steps:
    1. Determine scope of the project
      • Functional requirements
      • Performance requirements
      • Constraints
      • Schedule
      • Existing hardware and software
      • Existing personnel and procedures
    2. Evaluate resources required
      • People available
      • Reusable software available
        • from past projects (use if software team members are experienced with them)
        • from a third party (use if possible)
      • Hardware and software tools (development environment)
    3. Estimate Software Costs
      • Options :
        • base estimations on previous projects
        • base estimates on simple decomposition techniques (decompose project and estimate each portion using FP or LOCs)
        • use an empirical model (based on metrics, LOC or FPs)
        • delay estimation until after analysis and/or design is done

Decomposition Techniques

  • Based on the estimation of the size of each component of a project
  • The greater the degree of decomposition, the better the estimate
  • Techniques
    • Fuzzy logic sizing - approximate reasoning (or guessing) based on past experience and historical data
    • Function Point Sizing - estimates characteristics of the system (see chapter 4)
    • Standard Component sizing - count the number of components (reports, screens, etc.) then apply a conversion factor based on historical data (i.e. 1000 LOC per report).
    • Change Sizing - estimate the degree of change required to existing programs (% of code to be modified) then use that as a multiplier to its existing size.
    • Process Based Estimation - estimate the amount of time to be spent on a phase by phase basis for each component (rather than using a single overall metric), phases include Analysis, Design, Code, Test.
  • Final Expected Value or EV is often based on three estimates
    • Sopt optimistic
    • Sm most likely
    • Spess pessimistic
  • To calculate EV, create the three estimates using one of the techniques list above and apply the following equation.
    • EV = (Sopt +4Sm + Spess)/6
  • To calculate effort E, convert EV of LOC or FP using historical data from past projects on performance
    • e.g. 620 LOC / person month, then E = EV of LOC / 620, giving the result in person months
  • Calculate labor cost by the average burdened labor rate of the employees involved.

Empirical Estimation Models

  • Require the calculation of the EV of LOC or FP using the same techniques as the Decomposition method.
  • Instead of using a conversion factor based on historical data, they use a formula based on empirical measurements of many projects.
  • According to Boehm, these methods are considered good if they can predict the cost to within 20% of the actual cost, 70% of the time. 
  • Models should be calibrated using local conditions (programming language used, amount of documentation required, abilities of programmers, etc.)
  • Generic formulas take the form Effort = A + B(EV)**C where
    • E is effort in months
    • A, B, C are constants derived from data (vary from model to model)
    • EV is the estimated LOC or FP.
  • Examples:
    • Boehm : E = 3.2(KLOC)**1.05
    • Bailey-Basili  : E = 5.5 + .73(KLOC)**1.16
    • Matson... : E = 585.7 + 15.12FP
    • Albrecht : E = -13.39 + .0545FP
  • All these models will give very different results, a company needs to select and calibrate a model to match its past performance.

Cocomo Models

  • Types
    • Basic - computes cost of development and chronological time as a function of program size (LOC)
    • Intermediate - computes software development as a function of program size and a set of subjective assessments (cost drivers).
    • Advanced - Intermediate plus an assessment of cost drivers on a phase by phase basis.
  • Models use different factors based on project type (see table 5.1, 5.2)
    • organic - small simple project, team has experience with all aspects
    • semi-detached - intermediate size project, team has limited experience
    • embedded - project has tight hardware, software, and operation constraints
  • Basic equations:
    • E = Ab(KLOC**Bb)  effort in person months
    • D = Cb(E**Db) time in chronological months
    • N = E/D optimum number of people

Software aids


Study Guide:

Key words:

Change sizing
Cocomo Model
embeded
Empirical Estimation Models
Expected Value
Function Point sizing
Fuzzy logic sizing
likely
optimisic
organic
pessimistic
Proces based estimation
risk
resources
semi-detached
standard component sizing

Problems  : 2,3,6,10,12

 Home