CS 477 Lecture Notes

Week Two, Tuesday

Software Life Cycle Models

The "Build and Fix" Process Model

This is also referred to as the "undisciplined hacker mode" (and sometimes as "cowboy chaos"). Most computer science course programming assignments are produced using this model. Build-and-fix is definitely not recommended for significant software development efforts.

Drawbacks: hard to change, hard to maintain, reaches critical size quickly.

Waterfall model

Requirements--
              |
              Specification--
                             |
                             Planning--
                                       |
                                       Design--
                                               |
                                               Implementation--
                                                               |
                                                               Integration--
                                                                            |
                                                                            Operation--
The waterfall model works well for non-innovative software projects. It has the advantages that status is easy to ascertain.

Drawbacks: the process tends to lose touch with the customer, causing the wrong product to be delivered.

Rapid Prototyping

In recognition that misunderstandings of customer requirements lead to major problems in software engineering, the rapid prototyping model of software development has become increasingly popular. A working model that is functionally equivalent to a subset of the product features is produced, allowing the customer to give early feedback. Once that is done, the prototype should be discarded.

Drawbacks: the development team may be tempted to enhance and ship the prototype, in which case this model degenerates to "build and fix."

Incremental Model

The software is engineered incrementally as a series of "builds," each incorporating more features. Drawbacks: can degenerate to "build and fix" if the number of builds is too few, can be inefficient if the number of builds is too great. May not work with really large projects.

Spiral Model

The phases of the waterfall model are visited iteratively in several cycles of prototyping. This is appropriate for large projects of an innovative nature where technical risks can dominate.

Drawbacks: Most customers are not prepared for the uncertainties of the spiral model. Requires competent risk analysis in each cycle.

Software Management Models

Capability Maturity Model (CMM)

  1. Initial
  2. Repeatable
  3. Defined
  4. Managed
  5. Optimizing

ISO 9000

Emphasis on documentation. Certification process.


This page established January 18, 1998; last updated January 14, 2000.