Lecture Notes for CS 325

Project Management, 10 April 2000


  1. complex, interacting systems need guidance

  2. both management and technical skills are required in a software project

  3. lack of planning - the rush to design and implement, ignorance, maladroit

  4. management - plan activity, control activity, terminate activity

  5. planning requires estimation - cost, schedule, personnel; qa, configuration, risk

  6. cost estimation

    1. cost estimates used in bidding, budgeting, and planning

    2. principle costs are time and money

    3. hardware and software, personnel, overhead costs

    4. formal cost estimates

    5. difficulties with cost estimation

      1. data quality in the estimates - better data leads to better estimates

      2. later data is better data because its more accurate

      3. the range of accuracy deviance decreases as projects advance

      4. with 20% is a good estimate due to slack in the system

    6. cost estimate models

      1. a cost-estimate model is a function accepting inputs and producing an estimate as the output

      2. what is the function, and what are the inputs

      3. possible inputs include size, staff characteristics, complexity, reliability requirements

      4. more, and more complicated, parameters lead to more complex, but possibly more accurate, models

      5. find and measure one or two important inputs, and use a simple function

      6. the most important input usually resolves to project size

        1. loc estimates, or function points

      7. simple functions

        1. exponential - effort = a*sizeb

        2. linear - effort = a*size + b

        3. fudge factors a and b are determined from statistical analysis of past projects

        4. small projects are linear, large projects are exponential

      8. size estimation

        1. size measures don't exist early in the project - estimate

        2. size estimates are tangible and can be linearly combined

        3. garbage in, garbage out

        4. size estimates should be detailed, usually are subjective

      9. the constructive cost model (cocomo)

        1. a more complicated model - defining project types; adjusting the size-cost relation with other factors

        2. project types - organic, semidetatched, and embedded

          1. organic - small, less rigorous projects

          2. embedded - large, rigorous, unfamiliar projects

          3. semidetatched - inbetween organic and embedded

        3. nominal estimate, determine affecting factors, multiply together

        4. nominal estimate is an exponential model - model parameters are determined by the project type

        5. fifteen cost driver attributes

          1. product - required reliability, product complexity

          2. computer - storage, response time

          3. personnel - programmer experience, tool experience

          4. project - practices, tools availability

        6. each attribute is rated 0 through 4 and assigned a multiplier

        7. all attributes are multiplied to form an effort adjustment factor

        8. the nominal estimate is multiplied by the eaf to find the final estimate

        9. attributes are global, but can be adjusted by local factors

        10. breaking up a unified cost estimate into phases

        11. a project size-phase table per project type

        12. project types shift around phase percentages

        13. further phase subdivisions into components or modules

      10. cocomo is actually three models - simple, intermediate, and detailed


This page last modified on 10 April 2000.