December 20071
Analysis ModelingAnalysis Modeling
Two primary methods todayTwo primary methods today Structured AnalysisStructured Analysis Object-oriented analysisObject-oriented analysis
Some important considerationsSome important considerations Analysis products must be maintainableAnalysis products must be maintainable Effective partitioning is essentialEffective partitioning is essential Graphics should be used whenever possibleGraphics should be used whenever possible Distinguish between logical and implementationDistinguish between logical and implementation
December 20072
Structured AnalysisStructured Analysis
Elements of AnalysisElements of Analysis Describe what customer requiresDescribe what customer requires Establish basis for creating software designEstablish basis for creating software design Define requirements Define requirements that can be validatedthat can be validated
December 20073
Graphical View of ModelGraphical View of Model
Data
Dictionary
Entity
Relationship
Diagram
Data Flow
Diagram
State Transition
Diagram
Dat
a
ObjectDescription Process
Specification
Control Specification
( ERD)
(DFD)
(STD)
December 20074
Data ModelingData Modeling
The model consists ofThe model consists of Data object [types]Data object [types] AttributesAttributes RelationshipsRelationships
Data objectsData objects A representation of almost any composite A representation of almost any composite
information that must be understood by information that must be understood by softwaresoftware..
December 20075
Data ModelingData Modeling
AttributesAttributes Attributes define the properties of a data object Attributes define the properties of a data object
and take on one of three different characteristics:and take on one of three different characteristics: Name an instance of the data objectName an instance of the data object Describe the instanceDescribe the instance Make reference to another instanceMake reference to another instance
Make Model ID# Body type Color Owner
Ford Taurus Q12A45.. Sedan Blue ABC
Lexus LS400 AB123... Sports White XYZ
Naming attributesDescriptive attributes
Referential attributes
Identifier
December 20076
Data ModelingData Modeling
RelationshipsRelationships Defined pairwise -- many varietiesDefined pairwise -- many varieties
Book Bookstore
orders
displays
sells
returns
December 20077
Cardinality and ModalityCardinality and Modality
CardinalityCardinality How many occurrences of object X are related to How many occurrences of object X are related to
how many occurrences of object Yhow many occurrences of object Y One-to-one (1:1)One-to-one (1:1) One-to-many (1:N)One-to-many (1:N) Many-to-many (M:N)Many-to-many (M:N)
ModalityModality =0 => optional relationship=0 => optional relationship =1 => relationship must appear=1 => relationship must appear
December 20078
ExampleExample
Customer Repair actionis provided with
Mandatory: in order to havea repair action, we must havea customer
Optional: there may be a situationin which a repair action is not necessary
December 20079
Entity Relation Diagrams (ERD)Entity Relation Diagrams (ERD)
Cornerstone of the data model -- includesCornerstone of the data model -- includes data objects, data objects, attributes, attributes, relationships, andrelationships, and various type indicatorsvarious type indicators
manufacturer carbuilds
ID# model body type engine transmission . . .Data Object Table
December 200710
ExampleExample
December 200711
Data Object HierarchiesData Object Hierarchies
December 200712
Associating Data ObjectsAssociating Data Objects
December 200713
Functional ModelingFunctional Modeling
Data
Dictionary
Entity
Relationship
Diagram
Data Flow
Diagram
State Transition
Diagram
Data
ObjectDescription Process
Specification
Control Specification
( DFD )
December 200714
Data Flow Diagrams (DFD)Data Flow Diagrams (DFD)
A graphical technique that depicts A graphical technique that depicts information flow and the transforms information flow and the transforms applied as data move from input to outputapplied as data move from input to output
NotNot the same as flow charts. Does not the same as flow charts. Does not show the logic of the transformationsshow the logic of the transformations
Can be used at any level of abstractionCan be used at any level of abstraction
December 200715
General Information Flow ModelGeneral Information Flow Model
December 200716
Basic NotationBasic Notation
December 200717
External Entity
A producer or consumer of dataA producer or consumer of data
Examples: a person, a device, a sensorExamples: a person, a device, a sensor
Another example: computer-basedAnother example: computer-basedsystemsystem
Data must always originate somewhereData must always originate somewhereand must always be sent to somethingand must always be sent to something
December 200718
Process
A data transformer (changes inputA data transformer (changes inputto output)to output)
Examples: compute taxes, determine area,Examples: compute taxes, determine area,format report, display graph format report, display graph Data must always be processed in some Data must always be processed in some way to achieve system functionway to achieve system function
December 200719
Data Flow
Data flows through a system, beginningData flows through a system, beginningas input and be transformed into output.as input and be transformed into output.
computecomputetriangle triangle
areaarea
basebase
heightheight
areaarea
December 200720
Data Stores
DataData is often stored for later use.is often stored for later use.
look-uplook-upsensorsensor
datadata
sensor #sensor #
report requiredreport required
sensor #, type, sensor #, type, location, agelocation, age
sensor datasensor data
sensor numbersensor number
type, type, location, agelocation, age
December 200721
Data Flow Diagramming:Guidelines
all icons must be labeled with all icons must be labeled with meaningful namesmeaningful names
the DFD evolves through a number of the DFD evolves through a number of levels of detaillevels of detail
always begin with a context level always begin with a context level diagram (also called level 0)diagram (also called level 0)
always show external entities at level 0always show external entities at level 0 always label data flow arrowsalways label data flow arrows do not represent procedural logicdo not represent procedural logic
December 200722
Constructing a DFD—I
review the data model to isolate data review the data model to isolate data objects and use a grammatical parse to objects and use a grammatical parse to determine “operations”determine “operations”
determine external entities (producers determine external entities (producers and consumers of data)and consumers of data)
create a level 0 DFDcreate a level 0 DFD
December 200723
Level 0 DFD Example
useruserprocessing processing
requestrequest
videovideosourcesource NTSCNTSC
video signalvideo signal
digitaldigitalvideovideo
processorprocessor
requestedrequestedvideovideosignalsignal
monitormonitor
December 200724
Constructing a DFD—II write a narrative describing the write a narrative describing the
transformtransform parse to determine next level parse to determine next level
transformstransforms ““balance” the flow to maintain data balance” the flow to maintain data
flow continuityflow continuity develop a level 1 DFDdevelop a level 1 DFD use a 1:5 (approx.) expansion ratiouse a 1:5 (approx.) expansion ratio
December 200725
The Data Flow Hierarchy
PPaa bbxx yy
p1p1p2p2
p3p3p4p4 55
aa
bb
cc
ddee
ff
gg
level 0level 0
level 1level 1
December 200726
Flow Modeling Notes
each bubble is refined until it does just one thingeach bubble is refined until it does just one thing the expansion ratio decreases as the number of the expansion ratio decreases as the number of
levels increaselevels increase most systems require between 3 and 7 levels for most systems require between 3 and 7 levels for
an adequate flow modelan adequate flow model a single data flow item (arrow) may be expanded a single data flow item (arrow) may be expanded
as levels increase (data dictionary provides as levels increase (data dictionary provides information)information)
December 200727
Process Specification (PSPEC)
PSPECPSPEC
narrativenarrativepseudocode (PDL)pseudocode (PDL)
equationsequationstablestables
diagrams and/or chartsdiagrams and/or charts
bubblebubble
December 200728
Maps intoMaps into
DFDs: A Look Ahead
analysis modelanalysis model
design modeldesign model
December 200729
Real Time ExtensionsReal Time Extensions
Fundamental issue - The time at which Fundamental issue - The time at which results are produced is a part of the results are produced is a part of the correctness of the computation.correctness of the computation.
Hatley/Pirbhai notationHatley/Pirbhai notation
December 200730
Ward/Mellor NotationWard/Mellor Notation
December 200731
ExampleExample
December 200732
ExampleExample
December 200733
Hatley and Pirbhai ExtensionsHatley and Pirbhai Extensions
Use separate Use separate data flow diagramdata flow diagram (DFD) and (DFD) and control flow diagramcontrol flow diagram (CFD) (CFD)
Data flow diagrams Data flow diagrams Used to represent data and the processes that Used to represent data and the processes that
manipulate itmanipulate it Control flow diagrams Control flow diagrams
Show how events flow among processes and Show how events flow among processes and show those external events that cause various show those external events that cause various processes to be activatedprocesses to be activated
December 200734
Control Flow Diagrams Represents “Represents “eventsevents” and the processes that ” and the processes that
manage eventsmanage events An “event” is a Boolean condition that can be An “event” is a Boolean condition that can be
ascertained by:ascertained by: listing all sensors that are "read" by the software.listing all sensors that are "read" by the software. listing all interrupt conditions.listing all interrupt conditions. listing all "switches" that are actuated by an operator.listing all "switches" that are actuated by an operator. listing all data conditions.listing all data conditions. recalling the noun/verb parse that was applied to the recalling the noun/verb parse that was applied to the
processing narrative, review all "control items" as processing narrative, review all "control items" as possible CSPEC inputs/outputs.possible CSPEC inputs/outputs.
December 200735
The Control Modelthe control flow diagram is "superimposed" on the DFD the control flow diagram is "superimposed" on the DFD and shows events that control the processes noted in and shows events that control the processes noted in
the DFDthe DFD
control flows—events and control items—are noted by control flows—events and control items—are noted by dashed arrowsdashed arrows
a vertical bar implies an input to or output from a control a vertical bar implies an input to or output from a control spec (CSPEC) — a separate specification that spec (CSPEC) — a separate specification that
describes how control is handleddescribes how control is handled
a dashed arrow entering a vertical bar is an input to the a dashed arrow entering a vertical bar is an input to the CSPECCSPEC
a dashed arrow leaving a process implies a data a dashed arrow leaving a process implies a data conditioncondition
a dashed arrow entering a process implies a control a dashed arrow entering a process implies a control input read directly by the processinput read directly by the process
control flows do not physically activate/deactivate the control flows do not physically activate/deactivate the processes—this is done via the CSPECprocesses—this is done via the CSPEC
December 200736
Relationship Between ModelsRelationship Between Models
December 200737
ExampleExample
December 200738
CFD for PhotocopierCFD for Photocopier
readoperator
input
managecopying produce
userdisplays
reloadpaper
performproblem
diagnosis
paper feed status(jammed, empty)
start/stop
alarm
fullreprofault
Copy
Info
status
Reloadstatus
Problemtype
December 200739
Control Specification (CSPEC)The CSPEC can be:The CSPEC can be:
state diagram state diagram (sequential spec)(sequential spec)
state transition tablestate transition table
decision tables decision tables
activation tablesactivation tables
combinatorial speccombinatorial spec
December 200740
Guidelines for Building a CSPEClist all sensors that are "read" by the softwarelist all sensors that are "read" by the software
list all interrupt conditionslist all interrupt conditions
list all "switches" that are actuated by the operatorlist all "switches" that are actuated by the operator
list all data conditionslist all data conditions
recalling the noun-verb parse that was applied to therecalling the noun-verb parse that was applied to thesoftware statement of scope, review all "control items"software statement of scope, review all "control items"
as possible CSPEC inputs/outputsas possible CSPEC inputs/outputs
describe the behavior of a system by identifying its describe the behavior of a system by identifying its states; identify how each state is reach and defines states; identify how each state is reach and defines
the transitions between statesthe transitions between states
focus on possible omissions ... a very common error in focus on possible omissions ... a very common error in specifying control, e.g., ask: "Is there any other way I specifying control, e.g., ask: "Is there any other way I can get to this state or exit from it?"can get to this state or exit from it?"
December 200741
Behavioral ModelingBehavioral Modeling
DataDictionary
Entity
Relationship
Diagram
Data Flow
Diagram
State Transition
Diagram
Data
ObjectDescription Process
Specification
Control Specification
( STD )
December 200742
State Transition DiagramsState Transition Diagrams
A State is any observable mode of behaviorA State is any observable mode of behavior e.g., reading commands, computing control, e.g., reading commands, computing control,
waiting for next time eventwaiting for next time event States represented as rectanglesStates represented as rectangles Arrows represent transitionsArrows represent transitions Value above arrow identifies event causing Value above arrow identifies event causing
transitiontransition Value below arrow indicates ensuring actionValue below arrow indicates ensuring action
December 200743
State Transition DiagramState Transition Diagram
readingcommands
making copiesreloading
paper
diagnosingproblem
jammedinvoke perform problem-diagnosis
emptyinvoke reload paper
not jammedinvoke read-op-input
fullinvoke read-op-input
idle
invoke read-op-inputfull and start
invoke manage-coping
copies doneinvoke read-op-input
December 200744
Creating an ERDCreating an ERD
List entities that customer addressesList entities that customer addresses For each, determine the connectionsFor each, determine the connections For each connection, create one or more For each connection, create one or more
object-relationship pairsobject-relationship pairs For each relationship, determine cardinality For each relationship, determine cardinality
and modalityand modality Define the attributes of each entityDefine the attributes of each entity Formalize and review ERDFormalize and review ERD IterateIterate
December 200745
Home Security System ExampleHome Security System Example
Initial entitiesInitial entities Homeowner, control panel, sensors, security Homeowner, control panel, sensors, security
system and monitoring servicesystem and monitoring service
December 200746
Home Security System ExampleHome Security System Example
Relationships between sensor and security sys.Relationships between sensor and security sys. Security system monitors sensorSecurity system monitors sensor Security system enables/disables sensorSecurity system enables/disables sensor Security system tests sensorSecurity system tests sensor Security system programs sensorSecurity system programs sensor
December 200747
Creating a Data Flow ModelCreating a Data Flow Model
First create level 0 diagramFirst create level 0 diagram Depict software system as single bubbleDepict software system as single bubble Show primary inputs and outputsShow primary inputs and outputs
Identify processes, data objects, and data stores Identify processes, data objects, and data stores to be expanded at next levelto be expanded at next level
Label all arrows with meaningful namesLabel all arrows with meaningful names Information flow continuity must be maintainedInformation flow continuity must be maintained Refine only one bubble at a timeRefine only one bubble at a time
December 200748
Home Security System ExampleHome Security System Example
December 200749
RefinementRefinement
Analyze textual description of bubbleAnalyze textual description of bubble verbs are often processesverbs are often processes nouns are often external entities, data or control nouns are often external entities, data or control
objects or data storesobjects or data stores ExamplesExamples
Control panel is used to program and configure Control panel is used to program and configure the systemthe system
Upon a sensor event, the software invokes an Upon a sensor event, the software invokes an alarmalarm
December 200750
Home Security System ExampleHome Security System Example
December 200751
Home Security System ExampleHome Security System Example
December 200752
Creating Control Flow ModelsCreating Control Flow Models
Strip arrows from DFDStrip arrows from DFD Add event and control items. E.g., tryAdd event and control items. E.g., try
List all sensors read by the softwareList all sensors read by the software List all interrupt conditionsList all interrupt conditions List all operator actuated switchesList all operator actuated switches List all data conditionsList all data conditions Check noun-verb parse for possible CSPEC I/OCheck noun-verb parse for possible CSPEC I/O Identify states, how each is reached and transitionsIdentify states, how each is reached and transitions Focus on possible omissionsFocus on possible omissions
December 200753
Level 1 CFD for Safe-HomeLevel 1 CFD for Safe-Home
December 200754
Control SpecificationControl Specification
December 200756
Process SpecificationsProcess Specifications
Describes all flow model processes at final Describes all flow model processes at final level of refinementlevel of refinement Narrative text,Narrative text, Program design language descriptionProgram design language description Mathematical equationsMathematical equations TablesTables DiagramsDiagrams ChartsCharts
December 200757
Data DictionaryData Dictionary
DataDictionary
Entity
Relationship
Diagram
Data Flow
Diagram
State Transition
Diagram
Data
ObjectDescription Process
Specification
Control Specification
December 200758
Data DictionaryData Dictionary
Why a data dictionary? Need an organized way Why a data dictionary? Need an organized way to represent data & control characteristicsto represent data & control characteristics
Usual contentsUsual contents NameName AliasAlias Where and how usedWhere and how used Content description (of composite items)Content description (of composite items) Supplementary information, e.g., restrictions, Supplementary information, e.g., restrictions,
limitations, preset valueslimitations, preset values
December 200759
ExampleExample
Name:Name: Shuttle poseShuttle pose Aliases:Aliases: Position-orientation vectorPosition-orientation vector Where used:Where used: Display of Shuttle on mapDisplay of Shuttle on map Content:Content: x, y, z position wrt to Earth’s x, y, z position wrt to Earth’s
Center, roll, pitch, yawCenter, roll, pitch, yaw Supplementary Info: Elevation must be Supplementary Info: Elevation must be
above 140 nautical milesabove 140 nautical miles
December 200760
Data DictionaryData Dictionary
Common tools supporting DDCommon tools supporting DD Preventing creation of duplicate namesPreventing creation of duplicate names Enforce naming conventionsEnforce naming conventions Printing dictionary Printing dictionary Determine the range of impact of changes, i.e., Determine the range of impact of changes, i.e.,
which processes are affectedwhich processes are affected Assist configuration managementAssist configuration management
December 200761
SummarySummary
Key elementsKey elements Data modelingData modeling
Data objects, attributes and relationshipsData objects, attributes and relationships Cardinality and modalityCardinality and modality Entity-relationship diagramsEntity-relationship diagrams
Functional modelingFunctional modeling Data and control flow diagramsData and control flow diagrams
Behavioral modelingBehavioral modeling State transition diagramsState transition diagrams
Data DictionaryData Dictionary