CS 477 Lecture Notes

Week Ten, Tuesday: Planning

Planning should take place during all phases of the software life cycle, but is usually most intense right after the specification phase.

Estimating Duration and Cost

Software project cost and duration estimating is inherently problematic. No fully satisfactory approach exists today. The best known and most successful cost model, COCOMO (Boehm), relies on an estimate of the size of the product (KDSI).

The FFP metric for medium scale data processing products uses a linear formula:

Cost = b * (Files + Flows + Processes)

Albrecht's function point metric is also linear, making it suspect for larger software projects.

FP = TCF * (4 * Inp + 5 * Out + 4 * Inq + 10 * Maf + 7 * Inf)

Estimates using function points are generally only off by a factor of two, while estimates based on source size are generally off by a factor of eight or more.

  Assembler version Ada version
Source code size 70 KDSI 25 KDSI
Development costs $1,043,000 $590,000
KDSI per man-month 0.335 0.211
Cost per source statement $14.90 $23.60
Function points per man-month 1.65 2.92
Cost per function point $3,023 $1,170

Comparison of assembler and Ada products, C. Jones, 1987,
copyright 1987 IEEE.

Techniques of cost estimation fall into three categories:

  1. Expert judgement by analogy.
  2. Bottom-up.
  3. Algorithmic cost model.

After the project is underway, the predictions must be tracked to detect deviations and take corrective action.

Components of a SPMP

Work description, human, hardware, facilities, and other resources, and money.

Resource consumption follows the Rayleigh curve:

R = (t / k2) * e-t2 / (2 * k2)

with t running from zero to infinity. The parameter k is the time of peak consumption.


Rayleigh curve for k = 10.

IEEE SPMP

The formalized SPMP framework is concerned with the development phase of software production. Any maintenance plan must be attached at the end, almost as an afterthought.

Planning of Testing

As with the maintenance plan, the IEEE SPMP treats test planning as an afterthought. For traceability, the requirement and specification item identification numbers should be used for test plan items. This will have meaning only if those numbers are also used to identify the corresponding design and code modules.

For large projects, a traceability database can be useful (see the traceability database development plan document handout). Traceabilty, however (and this is a sad reminder of how bad a state software engineering practice is in today) is generally carried out on an ad hoc basis.

Planning of Object Oriented Projects

Object reuse can affect the planning of projects. Creating objects for deliberate reuse can cost more initially, but will result in lowered maintenance costs and reduced costs for future projects. Identifying objects for reuse can be problematic, but designing all objects for reuse can be costly and unrealistic. Making objects sufficiently generic for reuse can also increase code size, hurt performance, and increase the difficulty of software understanding, which can adversely impact maintenance.

Training Requirements

Software engineers must understand the customer's world. Sometimes that requires formal training. For instance, developing software for medical instruments requires some knowledge of medicine. Building software for tactical fighter planes requires some knowledge of warfare. New tools and languages also require training of developers.

The users already know their own job environments. Ideally, software should be so well designed that its use is intuitive enough that user training is unnecessary. In some cases, workplace automation, when done in the best way, eliminates waste and duplication to the point that work methods are streamlined such that the workers will require training (not so much in software operation, but in whole new approaches to their jobs).

Documentation Standards

Jones: 28 to 66 pages per KDSI (IBM). Boehm: 3/5 to 2/3 of production time spent on documentation (TRW).

Standards in document format and content reduce confusion. Code format standards assist the maintenance effort. User manual standards help keep the users from getting confused, reducing the support effort.

CASE Tools for Planning

Nine out of 10 users of word processors at TRW do not use paragraph tags. The default tags include the heading tags H1, H2, H3, etc. The reason that tags are not used is that training of users is generally neglected. MS Word, the TRW standard word processor, comes with a tutorial, but it's obvious most users have never taken it.

PERT (project evaluation and review techniques) is a network (graph) in which the nodes are milestones and the edges are durations. The "critical path" is identified. To be useful, the PERT network must be continuously updated.


PERT chart for the Robo-Butler project example.

Here is a PERT chart generated by Microsoft Project, for a producibility modeling and optimization project I am working on at TRW:


In this PERT chart, each block is a task with a duration.
The critical path is shown in red.

In this example, the nodes are tasks and the edges are relationships (such as finsih-to-start). "Summary tasks" are shown on the left. Notice how the automatically generated chart is not very artfully laid out, with edges running under nodes. If this chart were any larger, it could get confusing fairly fast. One software vendor, Tom Sawyer Software, makes tools for untangling messy diagrams, as shown below:


The Graph Layout Toolkit automatically calculates the coordinates
of objects, enabling you to model data from any application domain in
the form of a graph.

Planning Testing

This does not mean "the planning of the testing," but rather "how to test the SPMP." SQA checks the SPMP. Duration and cost estimates should be independently computed.


This page established March 12, 1998; last updated January 17, 2000.