CS 477 Lecture Notes

Week One, Thursday: Introduction (cont.)

Today we will talk more about projects and team formation options. We will also discuss the paper "No Silver Bullet," by Fred Brooks, handed out in class last session. If you didn't get a copy, the TA has some outside her office door (SAL 317).

Continuing our introduction to software engineering, we will talk about the various phases in the software lifecycle. Different process models make different resource allocations across or among these phases. Important: there is no separate testing phase and no separate documentation phase. These activities are distributed throughout the project.

Requirements Phase

Frequently carried out improperly. Client may not know what he needs. Team must understand client's business first. Client frequently asks for wrong product because software is complex.

Specification Phase

The specification document constitutes a contract with the client. It describes what is to be built. Must be complete and unambiguous. SQA must inspect for contradictions, ambiguities, and incompleteness.

Planning Phase

Estimate duration and manpower requirements to fulfill the specification. Write a project management plan that shows the team organization.

Design Phase

Algorithms, data structures, modules, data modeling. Keep a record of design decisions.

Implementation Phase

Code and compile modules. Test modules. SQA does formal testing to test plans developed from the specification.

Integration Phase

Link modules. Install system. System test.

Maintenance Phase

Corrective, perfective, adaptive maintenance. Regression testing is important.

Production Problems

Complexity

Software is complex. Really complex.

Conformity

Software must conform to the real world, not the other way around.

Changeability

Software is changeable, therefore it will change.

Invisibility

Software is hard to visualize. Visual aids like flow charts and object models are always helpful.


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