Site MapHelpFeedbackChapter Summary
Chapter Summary
(See related pages)

Overview

Software planning involves estimating how much time, effort, money, and resources will be required to build a specific software system. After the project scope is determined and the problem is decomposed into smaller problems, software managers use historical project data (as well as personal experience and intuition) to determine estimates for each. The final estimates are typically adjusted by taking project complexity and risk into account. The resulting work product is called a project management plan.

Project Planning Objectives
  • To provide a framework that enables a software manager to make a reasonable estimate of resources, cost, and schedule.
  • 'Best case' and 'worst case' scenarios should be used to bound project outcomes.
  • Estimates should be updated as the project progresses.
Estimation Reliability Factors
  • Project complexity
  • Project size
  • Degree of structural uncertainty (degree to which requirements have solidified, the ease with which functions can be compartmentalized, and the hierarchical nature of the information processed)
  • Availability of historical information
Project Planning Process
  1. Establish project scope
  2. Determine feasibility
  3. Analyze risks
  4. Determine required resources
    1. Determine required human resources
    2. Define reusable software resources
    3. Identify environmental resources
  5. Estimate cost and effort
    1. Decompose the problem
    2. Develop two or more estimates
    3. Reconcile the estimates
  6. Develop project schedule
    1. Establish a meaningful task set
    2. Define task network
    3. Use scheduling tools to develop timeline chart
    4. Define schedule tracking mechanisms
Software Scope
  • Describes the data to be processed and produced, control parameters, function, performance, constraints, external interfaces, and reliability.
  • Often functions described in the software scope statement are refined to allow for better estimates of cost and schedule.
Customer Communication and Scope
  • Determine the customer's overall goals for the proposed system and any expected benefits.
  • Determine the customer's perceptions concerning the nature if a good solution to the problem.
  • Evaluate the effectiveness of the customer meeting.
Feasibility
  • Technical feasibility is not a good enough reason to build a product.
  • The product must meet the customer's needs and not be available as an off-the-shelf purchase.
Estimation of Resources
  • Human Resources (number of people required and skills needed to complete the development project)
  • Reusable Software Resources (off-the-shelf components, full-experience components, partial-experience components, new components)
  • Environment Resources (hardware and software required to be accessible by software team during the development process)
Software Project Estimation Options
  • Delay estimation until late in the project.
  • Base estimates on similar projects already completed.
  • Use simple decomposition techniques to estimate project cost and effort.
  • Use empirical models for software cost and effort estimation.
  • Automated tools may assist with project decomposition and estimation.
Decomposition Techniques
  • Software sizing (fuzzy logic, function point, standard component, change)
  • Problem-based estimation (using LOC decomposition focuses on software functions, using FP decomposition focuses on information domain characteristics)
  • Process-based estimation (decomposition based on tasks required to complete the software process framework)
  • Use-case estimation (promising, but controversial due to lack of standardization of use-cases)
Causes of Estimation Reconciliation Problems
  • Project scope is not adequately understood or misinterpreted by planner
  • Productivity data used for problem-based estimation techniques is inappropriate or obsolete for the application
Empirical Estimation Models
  • Typically derived from regression analysis of historical software project data with estimated person-months as the dependent variable and KLOC, FP, or object points as independent variables.
  • Constructive Cost Model (COCOMO) is an example of a static estimation model.
  • COCOMO II is a hierarchy of estimation models that take the process phase into account making it more of dynamic estimation model.
  • The Software Equation is an example of a dynamic estimation model.
Estimation for Agile Development
  1. Each user scenario is considered separately
  2. The scenario is decomposed into a set of engineering tasks
  3. Each task is estimated separately
    1. May use historical data, empirical model, or experience
    2. Scenario volume can be estimated (LOC, FP, use-case count, etc.)
  4. Total scenario estimate computed
    1. Sum estimates for each task
    2. Translate volume estimate to effort using historical data
  5. The effort estimates for all scenarios in the increment are summed to get an increment estimate
Make-Buy Decision
  • It may be more cost effective to acquire a piece of software rather than develop it.
  • Decision tree analysis provides a systematic way to sort through the make-buy decision.
  • As a rule outsourcing software development requires more skillful management than does in-house development of the same product.







PressmanOnline Learning Center

Home > Chapter 23 > Chapter Summary