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:
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.