Building Analysis Model
Building Analysis Model
6/e
Chapter 8
Analysis Modeling
copyright © 1996, 2001, 2005
R.S. Pressman & Associates, Inc.
system
description
analysis
model
design
model
Rules of Thumb
The model should focus on requirements that are visible within the
problem or business domain. The level of abstraction should be
relatively high.
Each element of the analysis model should add to an overall
understanding of software 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 that the analysis model provides value to all
stakeholders.
Keep the model as simple as it can be.
Domain Analysis
Software domain analysis is the identification, analysis,
and specification of common requirements from a
specific application domain, typically for reuse on
multiple projects within that application domain . . .
[Object-oriented domain analysis is] the identification,
analysis, and specification of common, reusable
capabilities within a specific application domain, in
terms of common objects, classes, subassemblies, and
frameworks . . .
Donald Firesmith
Domain Analysis
Define the domain to be investigated.
Collect a representative sample of applications in
the domain.
Analyze each application in the sample.
Develop an analysis model for the objects.
Data Modeling
examines data objects independently of
processing
focuses attention on the data domain
creates a model at the customer’s level of
abstraction
indicates how data objects relate to one
another
What is a Data Object?
Object —something that is described by a set
of attributes (data items) and that will be
manipulated within the software (system)
each instance of an object (e.g., a book)
can be identified uniquely (e.g., ISBN #)
each plays a necessary role in the system
i.e., the system could not function without
access to instances of the object
each is described by attributes that are
themselves data items
Typical Objects
external entities (printer, user, sensor)
things (e.g, reports, displays, signals)
occurrences or events (e.g., interrupt, alarm)
roles (e.g., manager, engineer, salesperson)
organizational units (e.g., division, team)
places (e.g., manufacturing floor)
structures (e.g., employee record)
Data Objects and Attributes
A data object contains a set of attributes that
act as an aspect, quality, characteristic, or
descriptor of the object
object: automobile
attributes:
make
model
body type
price
options code
What is a Relationship?
relationship —indicates “connectedness”;
a "fact" that must be "remembered"
by the system and cannot or is not computed
or derived mechanically
several instances of a relationship can
exist
objects can be related in many different
ways
ERD Notation
One common form:
(0, m)
object1 relationship object 2
(1, 1)
attribute
Another common form:
object1 relationship
object 2
(0, m) (1, 1)
Building an ERD
(1,i)
materials lists
Object-Oriented Concepts
Must be understood to apply class-based
elements of the analysis model
Key concepts:
Classes and objects
Attributes and operations
Encapsulation and instantiation
Inheritance
Classes
• object-oriented thinking begins with the
definition of a class, often defined as:
– template
– generalized description
– “blueprint” ... describing a collection of
similar items
• a metaclass (also called a superclass)
establishes a hierarchy of classes
• once a class of items is defined, a
specific instance of the class can be
identified
Building a Class
class name
attributes:
operations
attributes:
operations:
What is a Class?
occurrences roles
things organizational units
places
external entities
structures
class name
attributes:
operations:
Encapsulation/Hiding
The object encapsulates
both data and the logical
procedures required to
manipulate the data method method
#2
#1
data
method
method #3
#6
method method
#5 #4
subclasses of the
instances of Chair
Methods
(a.k.a. Operations, Services)
An executable procedure that is
encapsulated in a class and is designed
to operate on one or more data attributes
that are defined as part of the class.
A method is invoked
via message passing.
Scenario-Based Modeling
“[Use-cases] are simply an aid to defining what exists
outside the system (actors) and what should be
performed by the system (use-cases).” Ivar Jacobson
(1) What should we write about?
(2) How much should we write about it?
(3) How detailed should we make our description?
(4) How should we organize the description?
Use-Cases
a scenario that describes a “thread of usage” for
a system
actors represent roles people or devices play as
the system functions
users can play a number of different roles for a
given scenario
Developing a Use-Case
What are the main tasks or functions that are performed by the
actor?
What system information will the the actor acquire, produce or
change?
Will the actor have to inform the system about changes in the
external environment?
What information does the actor desire from the system?
Does the actor wish to be informed about unexpected changes?
Use-Case Diagram
Saf e Ho m e
Acce s s cam e ra
s u rve illan ce via t h e cam e ras
Int e rn e t
h o m e o wn e r
Se t alarm
Activity Diagram
Supplements the use-case by providing a diagrammatic
representation of procedural flow
e n t e r p a ssw ord
a n d u se r ID
se le c t sp e c ific
se le c t c a me ra ic o n
c a me ra - t hu mb n a ils
vie w c a me ra o ut pu t
in la be lle d win do w
p ro mp t for
a n ot h e r vie w
computer
input based output
system
Flow Modeling Notation
external entity
process
data flow
data store
External Entity
sensor #
sensor #, type,
look-up location, age
sensor
report required data
type,
location, age
sensor number
sensor data
Data Flow Diagramming:
Guidelines
all icons must be labeled with meaningful
names
the DFD evolves through a number of
levels of detail
always begin with a context level diagram
(also called level 0)
always show external entities at level 0
always label data flow arrows
do not represent procedural logic
Control Specification (CSPEC)
The CSPEC can be:
state diagram
(sequential spec)
activation tables
Guidelines for Building a CSPEC
list all sensors that are "read" by the software
list all interrupt conditions
list all "switches" that are actuated by the operator
list all data conditions
recalling the noun-verb parse that was applied to the
software statement of scope, review all "control items"
as possible CSPEC inputs/outputs
describe the behavior of a system by identifying its
states; identify how each state is reach and defines
the transitions between states
retained information
needed services
multiple attributes
common attributes
common operations
essential requirements
Class Diagram
Class name
System
systemID
verificationPhoneNumber
systemStatus attributes
delayTime
telephoneNumber
masterPassword
temporaryPassword
numberTries
program()
display()
reset()
query() operations
modify()
call()
Class Diagram
Flo o rPlan
type
name
outs ideDimensions
determineType ( )
pos itionFloorplan
s cale( )
change color( )
is pa rt of
Ca m e ra Wa ll
t yp e t yp e
ID wa llDim e n s io ns
lo c a t io n
fie ld Vie w
p a n An gle
Zo o m Se t t in g
determineType ( )
d e t e rm in e Ty p e ()
computeDimensions ( )
t ra n s la t e Lo c a t io n ()
d is p la y ID()
d is p la y Vie w()
d is p la y Zoo m ()
is us e d t o build is us e d t o build
is us e d t o build
type type t y pe
s t a rt Co o rd in a t e s s t a rt Coo rd in a t e s s t a rt Co ordina t e s
s t o p Co ord in a t e s s t o pCoo rd ina t e s s t op Co ordin a t e s
n e xt Wa llSe m e nt n e x t Win do w ne xt Do or
1 1 1
Wa llSe g m e n t Win d o w Do o r
Dependencies
DisplayWindow Camera
<<access>>
{password}
Analysis Packages
Various elements of the analysis model (e.g., use-cases,
analysis classes) are categorized in a manner that
packages them as a grouping
The plus sign preceding the analysis class name in each
package indicates that the classes have public visibility
and are therefore accessible from other packages.
Other symbols can precede an element within a package.
A minus sign indicates that an element is hidden from
all other packages and a # symbol indicates that an
element is accessible only to packages contained within a
given package.
Analysis Packages
p ackag e n ame
En viro nm e n t
+Tree
+Landscape
+Road
+Wall
+Bridge
+Building Rule s OfThe Gam e
+VisualEffect
+Scene +RulesOfMovement
+ConstraintsOnAction
Charact e rs
+Player
+Protagonist
+Antagonist
+SupportingRole
Behavioral Modeling
The behavioral model indicates how software will respond to
external events or stimuli. To create the model, the analyst must
perform the following steps:
Evaluate all use-cases to fully understand the sequence of interaction within
the system.
Identify events that drive the interaction sequence and understand how
these events relate to specific objects.
Create a sequence for each use-case.
Build a state diagram for the system.
Review the behavioral model to verify accuracy and consistency.