Chapter 6 - Requirements Modeling Scenarios and Information
Chapter 6 - Requirements Modeling Scenarios and Information
Requirements Models
• The model should focus on requirements that are visible within the problem or
business domain and be written as a relatively high level of abstraction.
• Each element of the analysis model should add to the understanding of the
requirements and provide insight into the information domain, function, and
behavior of the system.
• Delay consideration of infrastructure and other non-functional models until
design.
• Minimize coupling throughout the system.
• Be certain the analysis model provides value to all stakeholders.
• Keep the model as simple as possible.
Domain Analysis
Scenario-Based Modeling
• Makes use of use cases to capture the ways in which end-users will interact
with the system
• UML requirements modeling begins with the creation of scenarios in the from
of use cases, activity diagrams, and swim lane diagrams
• Use cases capture the interactions between actors (i.e. entities that consume
or produce information)
• Begin by listing the activities performed by a single actor to accomplish a
single function
• Continue this process for each actor and each system function
• Use-cases are written first in narrative form and then mapped to a template if
more formality is required
• Each primary scenarios should be reviewed and refined to see if alternative
interactions are possible
o Can the actor take some other action at this point?
o Is it possible that the actor will encounter an error condition at some
point? If so, what?
o Is it possible that the actor will encounter some other behavior at some
point? If so, what?
Exceptions
• Describe situations (failures or user choices) that cause the system to exhibit
unusual behavior
• Brainstorming should be used to derive a reasonably complete set of
exceptions for each use case
o Are there cases where a validation function occurs for the use case?
o Are there cases where a supporting function (actor) fails to respond
appropriately?
o Can poor system performance result in unexpected or improper use
actions?
• Handling exceptions may require the creation of additional use cases
• Variation of activity diagrams used show flow of activities in use case as well
as indicating which actor has responsibility for activity rectangle actions
• Responsibilities are represented by parallel line segments that divide the
diagram vertically headed by the responsible actor
Data Objects
• Examine the problem statement and try to find nouns that fit the following
categories and produce or consume information (i.e. grammatical parse)
o External entities (systems, devices, people)
o Things (e.g. reports, displays, letters, signals)
o Events occurring during system operation
o Roles (e.g. manager, engineer, salesperson)
o Organizational units (e.g. division, group, team)
o Places
o Structures (e.g. sensors, vehicles, computers)
• Consider whether each potential class satisfies one of these criteria as well
o Contains information that should be retained
o Provides needed services
o Contains multiple attributes
o Has common set of attributes that apply to all class instances
o Has common set of operations that apply to all object instances
o Represents external entity that produces or consumes information
• Examine the processing narrative or use-case and select the things that
reasonably can belong to each class
• Ask what data items (either composite or elementary) fully define this class in
the context of the problem at hand?
Defining Operations
Classes
Collaborations
• Any time a class cannot fulfill a responsibility on its own it needs to interact
with another class
• A server object interacts with a client object to fulfill some responsibility
Reviewing CRC Models
• Association - present any time two classes are related to one another in some
fashion
o association multiplicity or cardinality can be indicated in a UML class
diagram (e.g. 0..1, 1..1, 0.., 1..)
• Dependency – client/server relationship between two classes
o dependency relationships are indicated in class diagrams using
stereotype names surrounded by angle brackets (e.g. <<stereotype>>)
Analysis Packages