CS 477 Lecture Notes

Week Two, Thursday

Homework Assignment

Worth 10 points, due Thursday, week 3, 1999, in class:

Write a one-page (exactly) essay on the paper "No Silver Bullet" by Fred Brooks.

The following are some topic ideas, or you can invent your own topic: Do you think it's true (that there is no silver bullet for the software crisis)? If not, what form might a future silver bullet take? Are there any weaknesses or errors in the paper? How could the paper be improved? Is there anything the author left out?

Use this format: 12 point times font, one-and-a-half spaced lines. Use one half line above and below justified non-indented paragraphs (block style). One inch (+/- 1/8 inch) margins all around. One point off for each error in formatting.

Stepwise Refinement

Miller's law: 7 +/- 2 chunks.

Introduced by Wirth, "stepwise refinement is a general technique that can be used in every phase of software development and with almost every representation."

Cost-Benefit Analysis

Decide on a possible course of action by assigning dollar values to costs and benefits and summing. If the sum is significantly greater than zero, the action is favorable.

Assign values to intangible benefits by making assumptions.

CASE

Upper CASE: requirments, specification, planning, design.

Lower CASE: implementation, integration, maintenance.

Online help for the operating system, editor, programming language, etc.

Sructure editor detects syntax faults.

Software Versions and Configurations

Always need the capability to rollback to earlier version.

Need to make sure current work is performed on latest version.

Variations: German/English, platform, peripherals

Configurations: versions of modules establish configuration.

Configuration control problem: compile product from correct module versions, and the inverse problem:, given an executable product, determine its configuration.

Build Tools

Unix make and Makefile. Java does this automatically from it's object configuration.

Productivity and Metrics

Case tools increase productivity, shorten development time, and result in higher quality software.

Metrics let us determine problems early. The five essential fundamental metrics are:

  1. Size (lines of code, feature points)
  2. Cost (dollars)
  3. Duration (months)
  4. Effort (man-months)
  5. Quality (number of faults)


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