CS 477 Lecture Notes

Week Six, Tuesday: Requirements Analysis

Midterm 1 Results

Average score: TBD out of 100.

Java Tree Example

Java programs don't use pointers. For those who are used to using pointers for building data structures such as lists and trees, it might seem difficult moving to Java. Therefore, I have created an example of a tree data structure using a data node object. Here is the source code with a little test applet, running below:

You need a java enhanced browser to see the applet.

The class is named "DataNode" and has a numChildren() method and a line to print status to the Java console in the findChild() method. The test applet exercises various methods and demonstrates how producing a copy of the vChild private object in the all-children accessor method insulates the DataNode class from subsequent manipulations by a calling procedure.

Trees are frequently used in artificial intelligence programs, as in this example of an African board game applet. The computer moves randomly in the "easy" mode, it uses simple rules in the "medium" mode, and it uses tree search (min-max algorithm) in the "hard" mode. Hit the "Help" button to find out how to play (or just click on one of the lower bowls of stones and hope for the best).

Requirements Analysis Techniques

Interviews, questionaires, forms analysis, video observation, scenarios.

Rapid Prototyping

Key word: rapid. Functionality prototype, UI prototype.

Human Factors

User friendliness: ease of communication in the human-computer interface. Often need to provide a variety of interfaces for your variety of users.

Rapid Prototyping as a Specification Technique

Not recommended to replace formal specifications.

Reusing the Rapid Prototype

Not recommended.

Other Uses of Rapid Prototyping

Help to reach consensus on requirements.

Management Implications of the Rapid Prototyping Model

Users and clients can develop unrealistic expectations about ease of changing the product. Need to explain that the rapid prototype is not a finished product. Boehm's study: specifiers added unnecessary features, prototypes were not robust.

Experiences with Rapid Prototyping

Still some controversy.

Joint Application Design

Client takes active role (not reactive) in requirements and specification phases.

Comparison of Requirements Analysis Techniques

Interviewing is the primary technique.

Testing during the Requirements Phase

Ensure that relevant people test the prototype.

CASE Tools for the Requirements Phase

Programming environments. CASE environments may discourage discarding the prototype.

Metrics for the Requirements Phase

Requirements volatility. Feature use profile.

MSG Case Study: Requirements Phase

Java was used for a text menu interface. A GUI was not prototyped.


This page established February 14, 1998; last updated March 16, 2019.