Lecture Notes for Software Engineering
Concepts
Requirements Analysis,
24 January 2001
- 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 24 January 2001.