Requirements
Phase
Requirements
Analysis Techniques
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
First step: meeting
between the members of the requirements team and members of the client
organization |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Client sets up initial
interviews |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Two types of interviews: |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Structured |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
specific, close-ended
questions are posed |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Unstructured |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Open-ended questions
are asked to encourage participation |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Interviewer prepares
a written report of the interview |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Other methods: |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
A questionnaire to the
members of the client organization. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Examine the various
forms used by the client, documents on operating procedures and job descriptions,
information on how the client currently does business. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Video cameras within
the workplace |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
For this to be effective,
the team must have the full cooperation of all the employees. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Scenarios - a scenario
is a possible way a user can utilize the target product to accomplish some
objective.; can be depicted in different ways: |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
One technique: to list
the actions comprising the scenario |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Another technique is
to set up a storyboard, a series of diagrams depicting the sequence of
events. A story can be considered to be a paper prototype, a series
of sheets of paper each depicting the relevant screens and the user's response |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
A tree structure can
be used, where the nodes are the screens, and the branches are possible
actions. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Scenarios can demonstrate
the behavior of the product in a way that is comprehensible to the user. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Ensures an active role
of the clients and users |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Scenarios (or more precisely
use
cases play an important role in object-oriented
analysis. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Rapid Prototyping -
the
most accurate and powerful requirements analysis technique. |
Rapid
Prototyping
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
A Rapid Prototype
is
hastily built software that exhibits the key functionality of the target
product. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
reflects the functionality
that the client sees such as input screens and reports, but omits "hidden"
aspects such a file updating. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Client and users experiment
with the prototype, while members of the development team watch and take
notes. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Users tell the developers
how the rapid prototype satisfies their needs and identify the area that
need improvement. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Important aspect is
embodied in the word "rapid"; purpose is to allow client and developers
to agree as quickly as possible on what the product is to do. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Imperfections in the
prototype can be ignored if they do not misrepresent the behavior of the
product. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Rapid prototype must
be built for change, so that another version can be presented quickly with
the desired changes. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Fourth Generation Languages
(4GL) and interpreted languages are used for rapid prototyping. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Smalltalk |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Prolog |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Lisp |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Java |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
UNIX shell programming
language |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
interpreted language |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
supported by the UNIX
Programmer's Workbench (set of CASE tools) |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Another technique is
to use hypertext. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Particularly effective
when developing the user interface to a product. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Object-Oriented Paradigm |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Important to build a
rapid prototype as early as possible in the object-oriented life cycle. |
Human
Factors
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Both client and future users must interact
with the rapid prototype of the user interface. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Reduces the risk of alteration to the final
product. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
HCI = Human Computer Interface |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
User Friendliness - ease with which
human beings can communicate with the software product. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Need for user friendliness led to Menu-Driven
products. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
User selects from a set of possible responses |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
GUI = Graphical User Interface |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
HCI's employ graphics |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
windows |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
icons |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
pull down menus |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
"Point and Click" selection to select a response |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Some human factors include: |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
size of letters |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
capitalization |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
color (in different cultures, colors mean
different things, so one should limit the amount of color) |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
line length |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
number of lines on the screen |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Avoid delays that can anger users, such as
a lengthy sequence of menus to achieve a simple operation. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
User should be able to change a previous selection
without having to return to the top level menu. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Different sets of HCIs can be used, tailored
to the skill level and psychological profile of its intended users. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Although HELP facilities must always be provided,
they will be used less with a carefully designed HCI. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Uniformity of HCI appearance across a product
or group of products can result in users intuitively knowing how to use
a screen they have never seen before. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Benefits from considering the HCI |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Reduces learning time. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Lowers error rates. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Can also increase user productivity. |
Rapid
Prototyping as a Specification Technique
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
A superficially attractive but dangerous variant
of the prototyping model. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Dispenses with specifications as such and
uses the rapid prototype itself either as the specifications or as a significant
part of the specifications. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Advantage: |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
offers speed and accuracy |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
State that the product will do what the rapid
prototype does, and list any additional features that the product must
support, such as file updating, security, and error handling. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Disadvantage: |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
unlikely that a rapid prototype will stand
as a legal statement of a contract between developer and client. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Potential problems with maintenance due to
lack of documentation |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
because the rapid prototype is the current
version of the specs, you don't necessarily have documentation of the prior
versions. |
Reusing
the Rapid Prototype
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Another superficially attractive but dangerous
variant of the prototyping model. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Evolutionary Approach: develop and refine
the rapid prototype rather than discard it. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
If not careful, this process can disintegrate
into BuildandFix. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Changes have to be made to a working product. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Issue of performance: |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
performance is important, especially in real-time
systems |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
because a rapid prototype is based on functionality,
performance issues are not handles |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
unlikely that response times and other timing
constraints will be met. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
One way of ensuring that the rapid prototype
will be thrown away, and that the product is properly designed and implemented,
rather than attempts made to refine it, is to build the rapid prototype
in a different language from that of the product. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
One instance when it is permissible to refine
a rapid prototype or, more specifically, portions of the rapid prototype: |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
When portions of the rapid prototype are computer
generated, then those portions may be used in the final product. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Example: User interfaces generated using CASE
tools such as screen generators and report generators. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Hybrid approach: |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
In some organizations, management decides
before
the rapid prototype is constructed which portions may be used in the final
product: |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Portions must pass the same quality assurance
tests as other software components. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Problems: |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
components that are of sufficiently high quality
to pass design and code tests are not usually found in rapid prototypes |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
to ensure quality, must be built slower than
"rapid" |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Advantage: |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Recovery of some of the time and money spent
on developing the rapid prototype |
Other
Uses of Rapid Prototyping
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Means of arriving at a consensus when there
is a disagreement among requirements analysis team (disagreement between
client and developers or disagreement among the clients). |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Schach recommends the use of a rapid prototype
as a requirements analysis technique. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
A rapid prototype can take the place of specifications
for some types of products, but can never replace design. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Main characteristic of the Rapid Prototyping
model is that there is much more interaction with the client. |
Management
Implications of the Rapid Prototyping Model
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Client requests increased number of major
changes |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
due to perception about ease of change brought
about through use of rapid prototype |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Client expects a quick implementation |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
because of speed with which prototype was
produced |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Prototype not operational quality so client
has to wait |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Vital that management be aware of the advantages
and disadvantage of rapid prototyping. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Prototype products result in less code and
less effort but not as much functionality |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Specifying produces more coherent designs
and software that is easier to integrate. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Ease of integration is important for large-scale
products, especially for C4I software |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Command, control, communications, and intelligence. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Because the rapid prototype is rapidly thrown
together, if it is kept, the following problems can ensue: |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
poor design |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
difficulty with maintenance |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
poor performance |
Experiences
with Rapid Prototyping
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
39 case studies of Rapid Prototyping by Gordon
and Bieman |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
33 successes, 3 failures, and 3 not rated. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Incomplete data and specific topics may not
be explicitly mentioned |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Found that rapid prototyping meets client
needs |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Choice of language does not appear to be of
critical importance. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Risks involved with retaining a rapid prototype
(bad design, hard to maintain, and poor performance) appear to grow in
proportion with the size of the product. |
Joint
Application Design (JAD)
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Also called Joint Application Development |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
A related method is called Participatory Design |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
JAD is an extended form of rapid prototyping
in which the client organization plays a more active role. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
A technique for the requirements and specification
phases |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Users and developers work as a team and take
joint responsibility for the result. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Productivity increases of 20 to 60% have been
reported using JAD |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Team leader must be a skilled facilitator |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
JAD team leader should not have a vested interest
in the success of the project. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Aim of the team leader should be to obtain
a consensus without having a specific interest in the decisions. |
Comparison
of Requirements Analysis Techniques
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Interviewing = the primary requirements analysis
technique |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
any combination of techniques must include
interviewing |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Rapid Prototyping is the most accurate analysis
technique |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Unless rapid prototyping or a related technique
such as JAD is used, there is risk the the requirements analysis phase
will not be performed properly and the client's needs will not be completely
met by the product. |
Testing
during the Requirements Phase
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Users
(not necessarily the same entity as the client) must be given the opportunity
to experiment with the rapid prototype. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Users suggest changes that, when approved
by the client, will be implemented. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
SQA (Software Quality Assurance Group) ensures
that relevant individuals have the opportunity to interact with the prototype,
and to make sure that their suggestions reach the client or committee of
client managers responsible for analyzing suggestions. |
CASE
Tools for the Requirements Phase
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Interpreted languages work well for rapid
prototyping |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
do not have to be compiled or linked |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
faster development |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
difficult to maintain but this is irrelevant
if the prototype is to be discarded |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
CASE tools: |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Smalltalk - has an environment to assist user
with a variety of tools |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Interlisp environment - for Lisp programmers |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Java environments |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
UNIX shell programming language |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Hypertext - ensures that prototype will be
discarded |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
CASE tools for rapid prototyping of user interfaces: |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Demo II |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Guide |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Hypertext |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Hypercard |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Hypertalk |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
4GL (fourth generation languages) |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
fewer statements are needed to achieve the
same functionality |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
many are supported by powerful CASE tools |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Examples of 4GLs that can be used: |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Management must be shown that the cost of
a rapid prototyping tool or workbench is small compared to the potentially
huge expense of trying to convert a rapid prototype into production quality
software and then attempting to maintain that product. |
Metrics
for the Requirements Phase
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Need for Metrics: IEEE definition of software
engineering includes "quantifiable approach". |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
What is important is how rapidly the prototyping
team determines the client's real needs. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Meaningful metrics for the requirements phase
include: |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
requirements volatility - how frequently the
requirements change |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
how many times a certain feature was tried
(HCI) with rapid prototype |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
number of requirements that change during
the rest of the software process |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
if many requirement change during subsequent
phases, then the methods of the requirements team need to be analyzed. |
Object-Oriented
Requirements?
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
There is no such thing as Object-Oriented
Requirements, nor should there be such a thing. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Requirements Phase is a determination of the
client's needs, that is, what the functionality of the target system should
be. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
The requirements phase has nothing to do with
how the system is to be built. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
However, in the construction of a rapid prototype,
some insights may be gained into the fundamental building blocks of the
product to be constructed. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
This information may be useful in O.O. class
extraction. |
|