Lecture Notes for CS 325
Requirements Analysis, 26 January
2000
-
requirements analysis
- determine the client's problem
- the domain in which the problem occurs
- the problem
- the criteria that solve the problem (not the problem's
solution)
- information passes between client and developer
- the client describes the domain and problem
- the
developer characterizes the solution but doesn't solve the problem
- issues
- defining and extracting the
necessary information from the client
- organizing extracted
information
- organization imposes patterns, emphasizing
irregularities
- fixing problems like inconsistencies,
ambiguity, unresolved trade-offs
- avoiding design
-
general analysis techniques
- use divide and conquer to
partition the problem
- partitions can emphasize various problem
characteristics
- functional partitions emphasize behavior
- object-oriented partitions emphasize entities
- state
partitions emphasize characteristics
- projections emphasize
points of view
- several partitions may be used in one
analysis
- specific analysis techniques
-
informal analysis, formal analysis, or protyping
- informal
analysis
- almost pure information gathering
-
meetings, meetings, meetings
- flexible, exploratory
- formal analysis
- many techniques, all leading to
processed information
- structured analysis technique (sat)
- functional partitioning based on data transformations
-
data flow diagrams (dfd) or bubble diagrams
- each process
(bubble) is a data transformation
- low-level mechanism and minor
details are hidden or ignored
- no processing details (how), just
data transformations (what)
- dfd hierarchies (bubbles inside of
bubbles)
- dfd data flows are unstructured
- data
dictionaries define the structure of data flows
- weak dfd
semantics means limited validity checks
- the structured analysis
technique
- start with a one-process context diagram
-
subdivide the context bubble to identify major data transforms
-
repeatedly subdivide processes until all important data and transforms
are modeled.
- partition the system to identify user-system,
new-old interfaces
- object-oriented analysis (ooa)
- entity-based analysis
- objects have state, provide
services, and are related to other objects
- current hot-topic
due to realism, stability, ability to change
- there are many,
many ooa techniques
- an object is a thing (not necessarily
tangible) in the problem domain
- objects have attributes (state)
that characterize an object and distinguish it from other objects
- similar objects are grouped into a class
- objects offer
services, usually accessed via messages
- relations among classes
are is-a (generalization-specialization) and part-of (aggregation,
assembly, containment)
- multiplicity
- doing
ooa
- identify objects, attributes, relations, and services
- use grammatical analysis to get objects (nouns), attributes
(adjectives) and services (verbs)
- further analysis determines
inter-object relations (is a, part of) and multiplicities
- this
process iterates, under design rules and customer guidance
- entity-relation (er)
- like ooa, but no services or
functions
- most frequently used for database applications
- entity (data), attribute, and relation
- other
formal analysis techniques
- structured analysis and design
technique - more boxes and arrows
- problem statement language
(psl) and problem statement analyzer - a formal language with processor
- requirements statement language (rsl) and the requirements
engineering validation system (revs) - another formal language with
processors, oriented toward real-time systems
-
prototyping
- early experience with actual systems sharpens
the requirements
- quickly and cheaply create versions of the
system to solve the problem
- throw-away and evolutionary
approaches
- throw-away
- inexpensive (to do) and
fast development
- explore poorly understood problem parts
- cycles between requirements and prototyping
- throw away
the finished prototype
- evolutionary
- formal,
but early, development
- demonstrate well understood problem
parts
- keep the finished prototype for further development
- when to prototype, and what kind
- experience
and ability
- ground rules - problem maturity, change
expectations
This page last modified
on 31 January 2000.