Information Technology Reference
In-Depth Information
Feature and Requirement Interdependencies
Finally, there are dependencies between entities that need to be identified and managed, a depen-
dency that Malone et al. (1999) labeled “fit.” In particular, interactions among features are often a
problem in large systems with many features. Analysts must determine how each feature interacts
with every other feature in the system and control for undesirable interactions. When there are hun-
dreds of features, each supported by different teams of people, these interactions may be extremely
difficult to detect. Modifying the software for one feature may affect other features in very subtle
ways that the analyst specifying the modification has not anticipated, with the result that those in
charge of the affected feature might not become aware of the changes until their feature “breaks.”
In order to solve the feature-interaction problem, one must know how to get important information
to the appropriate people without overloading everyone by broadcasting all information to all
people. Additionally, the requirements themselves may have dependencies. Developing a consis-
tent specification when many different people must write parts of the specification is difficult.
Coordination Mechanisms for Requirements Analysis
Many of the solutions proposed for requirements analysis correspond to the suggestions of CT,
focusing on better ways to manage dependencies or even to reduce and eliminate them. An exam-
ple of the second is the decomposition of a system into decoupled subparts with well-defined
interfaces or using design methodologies that only allow certain kinds of interactions, with the
goal of forcing dependencies along particular channels.
Strategies for managing dependencies focus on more efficient ways to transfer information
among people, such as formal languages or prototyping, to surface dependencies. These include
techniques for eliciting requirements from people, modeling techniques, requirements definition
methods, and computer support tools (Brackett, 1990). Techniques for eliciting requirements include
a variety of general techniques for information gathering, such as those surveyed by Davis (1983)
and Powers, Adams, and Mills (1984). The joint application development technique (JAD), which
was developed by IBM, allows analysts to get information from and negotiate with clients in
intensive workshop sessions. Structured analysis and design technique (SADT) (Marca and
McGowan, 1988) provides a method for iterative review of requirements by developer and client.
Walk-throughs (Freedman and Weinberg, 1982) and technical reviews (Collofello, 1988) can be
used to assess the quality and progress of the requirements definition process.
Modeling techniques are used to represent aspects of the information gathered. The methods
are typically graphical, although physical and simulation models are occasionally used. Most
modeling methods allow the system to be described in terms of several of the following in order
to gain a sufficiently comprehensive view of the system: interfaces to external entities, functions
to be performed, data transformations, structure of input/output data, relationships among infor-
mation and system behavior (Brackett, 1990).
There are many computer-based tools to support requirements definition and model develop-
ment. Most of these are method-specific tools. Non-method-specific tools also exist, with Problem
Statement Language (PSL) and Problem Statement Analyzer (PSA), usually referred to as PSL/PSA
(Teichroew and Hershey, 1977), being one of the most well known of these. The non-method-
specific tools generally require either customization to the method used by the developer or transla-
tion from the developer's notation to the tool's notation. Finally, many tools have been developed
to support prototyping. These include languages and packages designed for creating prototypes,
fourth-generation languages, windowing system tool kits, and many others (Brackett, 1990).
Search WWH ::




Custom Search