Data Flow Diagram (DFD) Data Flow Diagram (DFD) Description
Description A
A Data Data Flow Flow Diagram Diagram (DFD) (DFD) tracks tracks processes processes and and their their data data paths paths withinwithin the business or system boundary under investigation. A DFD defines each the business or system boundary under investigation. A DFD defines each domain boundary and illustrates the logical movement and transformation domain boundary and illustrates the logical movement and transformation of data within the defined boundary. The diagram shows 'what' input data of data within the defined boundary. The diagram shows 'what' input data enters the domain 'what' logical processes the domain applies to that data
enters the domain 'what' logical processes the domain applies to that data
and 'what' output data leaves the domain. !ssentially a DFD is a tool for and 'what' output data leaves the domain. !ssentially a DFD is a tool for process modelling and one of the oldest.
process modelling and one of the oldest.
Uses Uses A
A Data Data Flow Flow Diagram Diagram is is useful useful for for establishing establishing the the boundary boundary of of thethe bu
busisineness ss or or sysyststem em dodomamain in (t(the he spsphehere re of of ananalalyysisis s acactitivivityty) ) unundeder r in
inveveststigigatatioion. n. "t "t ididenentitififies es any any e#e#teternarnal l enentititities es aloalong ng wiwith th ththeieir r dadatata interfaces that interact with the processes of interest. A DFD can be a interfaces that interact with the processes of interest. A DFD can be a useful tool (particularly when used as a top DFD $ refer to
useful tool (particularly when used as a top DFD $ refer to %onte#t diagram%onte#t diagram)) for helping secure stakeholder agreement (sign$off) on the pro&ect scope. "t for helping secure stakeholder agreement (sign$off) on the pro&ect scope. "t is also a useful tool for breaking down a process into its sub$processes for is also a useful tool for breaking down a process into its sub$processes for closer analysis.
closer analysis.
Application Application A Data Flow
A Data Flow Diagram can Diagram can be be modelled modelled early early in the in the reuirements reuirements elicitationelicitation process of the Analysis phase within the ystem Development ife %ycle process of the Analysis phase within the ystem Development ife %ycle (D%) to define the pro&ect scope. A DFD can also be created throughout (D%) to define the pro&ect scope. A DFD can also be created throughout th
the e DD% % to to ininveveststigigatate e an an asaspecpect t of of ththe e sysyststem. em. "f "f necnecesessasaryry eaceachh pr
prococesess s unundeder r ststudy udy wiwiththin in a a DFDFD D ccan an be be brbrokoken en dodowwn n ininto to itits s susub$b$
processes on a new DFD to show more details. A sub$process in turn can processes on a new DFD to show more details. A sub$process in turn can be broken down further to reveal its sub$processes on a new DFD and so be broken down further to reveal its sub$processes on a new DFD and so on until sufficient analysis is reached. The activity of drilling down the DFD on until sufficient analysis is reached. The activity of drilling down the DFD le
levevels ls is is cacalllled ed 'fun'functctioionanal l dedecocompmpososititioion' n' wiwith th ththe e resuresultltining g new new DFDFDD referred to as a 'levelled DFD'. For e#ample the top level DFD (also known referred to as a 'levelled DFD'. For e#ample the top level DFD (also known as a
as a %onte#t diagram%onte#t diagram) is a level * DFD level + DFD refers to the initial) is a level * DFD level + DFD refers to the initial decomposition level , DFD to a second level decomposition and so on.
decomposition level , DFD to a second level decomposition and so on.
Audience Audience Th
The e prprimimary ary auaudidiencence e ininvovolvlved ed wiwith th a a DFDFD D arare e ststakakeheholdolderers s susuch ch asas pro&ect sponsors managers and sub&ect matter e#perts who provide the pro&ect sponsors managers and sub&ect matter e#perts who provide the
information for a DFD and are the same people who should approve each information for a DFD and are the same people who should approve each DFD. -ro&ect managers and reuirements teams are also involved to plan DFD. -ro&ect managers and reuirements teams are also involved to plan the pro&ect work.
the pro&ect work.
Components Components A
A DFD can be assembled from the following four componentsDFD can be assembled from the following four components
Process:
Process: A A process process is is a a logical logical activity activity that that transforms transforms or or manipulatesmanipulates incoming data within the domain under investigation. A process can be incoming data within the domain under investigation. A process can be regarded as a 'black bo#'/ it receives input processes it and produces regarded as a 'black bo#'/ it receives input processes it and produces output. A rounded rectangle (or circle) represents a process under study.
output. A rounded rectangle (or circle) represents a process under study.
!ach process is labelled inside its rectangle to describe its function or
!ach process is labelled inside its rectangle to describe its function or purpose. "t is common to use a verb$noun phrase for naming a process
purpose. "t is common to use a verb$noun phrase for naming a process
e.g. 0%heck stock1 and 02eserve product1. "f several Data Flow Diagrams e.g. 0%heck stock1 and 02eserve product1. "f several Data Flow Diagrams reference each other (e.g. as in a decomposed levelled DFD structure) reference each other (e.g. as in a decomposed levelled DFD structure) each process should be tagged with a numbering scheme or identifier to each process should be tagged with a numbering scheme or identifier to show the hierarchical relationships between them. For e#ample 'process show the hierarchical relationships between them. For e#ample 'process +.
+.*' *' in in lelevevel l * * DFD DFD cacan n dedecocompmposose e ininto to 'p'prorocecess ss +.+.+'+' 'p'prorocecess ss +.+.,',' 'process +.3' etc in level + DFD. imilarly 'process +.+' in level + DFD can 'process +.3' etc in level + DFD. imilarly 'process +.+' in level + DFD can decompose further into 'process +.+.+' 'process +.+.,' etc in level , DFD
decompose further into 'process +.+.+' 'process +.+.,' etc in level , DFD
and so on. "t is usual to place the level identifier above the process name and so on. "t is usual to place the level identifier above the process name with a hori4ontal line separating them.
with a hori4ontal line separating them.
Externa
External l entityentity:: An An e#ternal e#ternal entity entity sits sits outside outside the the domain domain of of interest interest andand supplies data to or receives data from the domain. An e#ternal entity is supplies data to or receives data from the domain. An e#ternal entity is referred to as an e#ternal source or sink (destination) for data flowing in referred to as an e#ternal source or sink (destination) for data flowing in and out of the domain. A rectangle defines an e#ternal entity and is labelled and out of the domain. A rectangle defines an e#ternal entity and is labelled w
witith h a a nonoun un phphrarase se ininsiside de itits s rectrectananglgle e to to dedescscriribe be an an ororgaganinisasatitionon process machine or person (i.e. a thing) that is outside the domain under process machine or person (i.e. a thing) that is outside the domain under analysis. !#amples of naming an e#ternal entity are 0-ayment company1
analysis. !#amples of naming an e#ternal entity are 0-ayment company1
0tore locator1 '5ainframe server' and 0%ustomer1. 6ote an e#ternal entity 0tore locator1 '5ainframe server' and 0%ustomer1. 6ote an e#ternal entity in a DFD is not permitted to transform data/ only a process can.
in a DFD is not permitted to transform data/ only a process can.
Data flow:
Data flow: A A data data flow flow represents represents the the path path of of data data moving moving through through thethe domain under anal
domain under analysis. A ysis. A data flow shows the movement of ddata flow shows the movement of data between aata between a process and an e#ternal entity a process and another process and a process and an e#ternal entity a process and another process and a process and a data store (data repository). An arrow is the symbol used to process and a data store (data repository). An arrow is the symbol used to connect a process with other DFD components. !ach arrow should be connect a process with other DFD components. !ach arrow should be labelled appropriately to describe the data being passed e.g. 0%ustomer labelled appropriately to describe the data being passed e.g. 0%ustomer detail
details1 02e&ected order1 and s1 02e&ected order1 and 'toc'tock k level lookup' are level lookup' are commoncommon. A data flow. A data flow can move the same type of data in both directions in which case both ends can move the same type of data in both directions in which case both ends
information for a DFD and are the same people who should approve each information for a DFD and are the same people who should approve each DFD. -ro&ect managers and reuirements teams are also involved to plan DFD. -ro&ect managers and reuirements teams are also involved to plan the pro&ect work.
the pro&ect work.
Components Components A
A DFD can be assembled from the following four componentsDFD can be assembled from the following four components
Process:
Process: A A process process is is a a logical logical activity activity that that transforms transforms or or manipulatesmanipulates incoming data within the domain under investigation. A process can be incoming data within the domain under investigation. A process can be regarded as a 'black bo#'/ it receives input processes it and produces regarded as a 'black bo#'/ it receives input processes it and produces output. A rounded rectangle (or circle) represents a process under study.
output. A rounded rectangle (or circle) represents a process under study.
!ach process is labelled inside its rectangle to describe its function or
!ach process is labelled inside its rectangle to describe its function or purpose. "t is common to use a verb$noun phrase for naming a process
purpose. "t is common to use a verb$noun phrase for naming a process
e.g. 0%heck stock1 and 02eserve product1. "f several Data Flow Diagrams e.g. 0%heck stock1 and 02eserve product1. "f several Data Flow Diagrams reference each other (e.g. as in a decomposed levelled DFD structure) reference each other (e.g. as in a decomposed levelled DFD structure) each process should be tagged with a numbering scheme or identifier to each process should be tagged with a numbering scheme or identifier to show the hierarchical relationships between them. For e#ample 'process show the hierarchical relationships between them. For e#ample 'process +.
+.*' *' in in lelevevel l * * DFD DFD cacan n dedecocompmposose e ininto to 'p'prorocecess ss +.+.+'+' 'p'prorocecess ss +.+.,',' 'process +.3' etc in level + DFD. imilarly 'process +.+' in level + DFD can 'process +.3' etc in level + DFD. imilarly 'process +.+' in level + DFD can decompose further into 'process +.+.+' 'process +.+.,' etc in level , DFD
decompose further into 'process +.+.+' 'process +.+.,' etc in level , DFD
and so on. "t is usual to place the level identifier above the process name and so on. "t is usual to place the level identifier above the process name with a hori4ontal line separating them.
with a hori4ontal line separating them.
Externa
External l entityentity:: An An e#ternal e#ternal entity entity sits sits outside outside the the domain domain of of interest interest andand supplies data to or receives data from the domain. An e#ternal entity is supplies data to or receives data from the domain. An e#ternal entity is referred to as an e#ternal source or sink (destination) for data flowing in referred to as an e#ternal source or sink (destination) for data flowing in and out of the domain. A rectangle defines an e#ternal entity and is labelled and out of the domain. A rectangle defines an e#ternal entity and is labelled w
witith h a a nonoun un phphrarase se ininsiside de itits s rectrectananglgle e to to dedescscriribe be an an ororgaganinisasatitionon process machine or person (i.e. a thing) that is outside the domain under process machine or person (i.e. a thing) that is outside the domain under analysis. !#amples of naming an e#ternal entity are 0-ayment company1
analysis. !#amples of naming an e#ternal entity are 0-ayment company1
0tore locator1 '5ainframe server' and 0%ustomer1. 6ote an e#ternal entity 0tore locator1 '5ainframe server' and 0%ustomer1. 6ote an e#ternal entity in a DFD is not permitted to transform data/ only a process can.
in a DFD is not permitted to transform data/ only a process can.
Data flow:
Data flow: A A data data flow flow represents represents the the path path of of data data moving moving through through thethe domain under anal
domain under analysis. A ysis. A data flow shows the movement of ddata flow shows the movement of data between aata between a process and an e#ternal entity a process and another process and a process and an e#ternal entity a process and another process and a process and a data store (data repository). An arrow is the symbol used to process and a data store (data repository). An arrow is the symbol used to connect a process with other DFD components. !ach arrow should be connect a process with other DFD components. !ach arrow should be labelled appropriately to describe the data being passed e.g. 0%ustomer labelled appropriately to describe the data being passed e.g. 0%ustomer detail
details1 02e&ected order1 and s1 02e&ected order1 and 'toc'tock k level lookup' are level lookup' are commoncommon. A data flow. A data flow can move the same type of data in both directions in which case both ends can move the same type of data in both directions in which case both ends
should show the arrows. Data flows are also useful for identifying interfaces should show the arrows. Data flows are also useful for identifying interfaces which will need closer data analysis (e.g. !2 data modelling). 6ote that a which will need closer data analysis (e.g. !2 data modelling). 6ote that a data flow is considered to be
data flow is considered to be withiwithin the n the domain of the domain of the process under studyprocess under study whereas an e#ternal entity is not.
whereas an e#ternal entity is not.
Data store:
Data store: A A data data store store represents represents a a logical logical data data repository repository accessibleaccessible within the domain under study. A data store can be a place where data is within the domain under study. A data store can be a place where data is cr
creaeateted d rereadad chchanangeged d anand d ststorored ed tetempmpororararilily y or or pepermrmananenentltly y by by aa process. A thin rectangle with the right side open (or two hori4ontal parallel process. A thin rectangle with the right side open (or two hori4ontal parallel lines) shows a data store and is labelled with a noun phrase inside its lines) shows a data store and is labelled with a noun phrase inside its rectangle to describe the data stored e.g. '7rder records' and '7nline rectangle to describe the data stored e.g. '7rder records' and '7nline catalogue'. -hysically a data store can represent a file or a database catalogue'. -hysically a data store can represent a file or a database system. 6ote a data store is not permitted to process data.
system. 6ote a data store is not permitted to process data.
Note:
Note:
Th
Therere e arare e twtwo o mamain in ststylyles es of of didiagagrarammmmatatic ic nonotatatitions ons fofor r DaData ta FlFlowow Diagrams/ 8ane 9 arson notation set (e.g. rounded suare symbol for a Diagrams/ 8ane 9 arson notation set (e.g. rounded suare symbol for a process missing right$sided thin rectangle symbol for a data store) and process missing right$sided thin rectangle symbol for a data store) and :ourdon's notation (e.g. circle symbol for a process parallel hori4ontal lines :ourdon's notation (e.g. circle symbol for a process parallel hori4ontal lines symbol for a data store).
symbol for a data store).
;hile there are guiding principles and rules for using Data Flow Diagrams
;hile there are guiding principles and rules for using Data Flow Diagrams
in
in prpracactiticce e ththey ey arare e nonot t nnececesessasaririly ly alalwwayays s fofolllolowweded. . oome me DFDFDD pra
practctititioionerners s adadd d new new sysymbombols ls or or adadapt apt ththe e ruruleles s to to suit suit ththeieir r neeneedsds..
ometimes this could be useful but the important point is that whatever the
ometimes this could be useful but the important point is that whatever the prin
principciples les or or rulrules es they should they should be be applapplied ied consconsististentently ly thrthrougoughout hout thethe pro&ect. The following are some of the principles and rules for using Data pro&ect. The following are some of the principles and rules for using Data Flow Diagrams
Flow Diagrams
Principles:
Principles:
;ithin a DFD the e#ternal environment (i.e. e#ternal entities) sends data
;ithin a DFD the e#ternal environment (i.e. e#ternal entities) sends data into the domain under analysis where it is transformed as it moves from into the domain under analysis where it is transformed as it moves from one
one prprococesess s to to anothanother er ininsiside de ththe e domdomaiain. n. ThThe e proprocesscessed ed datdata a fifinalnallyly returns to the e#ternal environment as output data.
returns to the e#ternal environment as output data.
A DFD
A DFD is is designed designed to to be be broken broken down down or or decomposed decomposed into into a a hierarchicalhierarchical tree structure of Data Flow Diagrams (DFD levels) with each child DFD tree structure of Data Flow Diagrams (DFD levels) with each child DFD revealing more details than its parent.
revealing more details than its parent.
Rules:
Rules:
A
A process process and and a a data data store store must must each each have have incoming incoming and and outgoing outgoing datadata flows.
flows.
A
A process process and and a a data data store store can can each each have have one one or or more more input input data data flowsflows and one or more output data flows.
and one or more output data flows.
A
A process process can can connect connect to to any any other other component component including including to to another another process.
process.
An e#ternal entity must send its outgoing data flow only to a process.
An e#ternal entity must send its outgoing data flow only to a process.
An e#ternal entity must receive an input data flow only from a process.
An e#ternal entity must receive an input data flow only from a process.
A
A data store receives an incoming data flow only from a process.data store receives an incoming data flow only from a process.
A
A data store sends an output data flow only to a process.data store sends an output data flow only to a process.
7nly a process is permitted to transform or change data.
7nly a process is permitted to transform or change data.
Development Development
The following steps present guidelines for developing Data Flow Diagrams
The following steps present guidelines for developing Data Flow Diagrams
Defin
Define e the process:the process: tart a DFD by identifying each process under studytart a DFD by identifying each process under study and naming it appropriately. "f the process needs to be broken down into and naming it appropriately. "f the process needs to be broken down into su
sub$pb$procrocesesseses s fofor r fufurtrtheher r anaanalylysisis s add add a a numnumbeberinring g scschemheme e to to eaceachh process to show the hierarchical relationships between the parent and child process to show the hierarchical relationships between the parent and child processes (see '-rocess' under %omponent section). Also label each DFD processes (see '-rocess' under %omponent section). Also label each DFD with a descriptive name for referencing purposes appending its levelled with a descriptive name for referencing purposes appending its levelled DFD seuence identifier appr
DFD seuence identifier appropriately.opriately.
Identify external entities:
Identify external entities: "dentify each e#ternal entity that interacts or "dentify each e#ternal entity that interacts or impacts the process of interest and label each one with a descriptive name.
impacts the process of interest and label each one with a descriptive name.
Connect data flows:
Connect data flows: %onnect each e#ternal entity to the process under %onnect each e#ternal entity to the process under investigation by an arrow to show its data flow direction. 6ame each data investigation by an arrow to show its data flow direction. 6ame each data flow clearly and as close to it as possible so as to avoid confusing the flow clearly and as close to it as possible so as to avoid confusing the name with other d
name with other data flows close by.ata flows close by.
Identify data stores:
Identify data stores: Add an Add any identified y identified data store data store on on the diagrathe diagram label m label itit and connect its data flow to its associated process.
and connect its data flow to its associated process.
Repeat the steps for each levelled DD:
Repeat the steps for each levelled DD: 2epeat the above steps for 2epeat the above steps for each levelled DFD that is discovered or needed for further analysis. Finally
each levelled DFD that is discovered or needed for further analysis. Finally
nam
name e eaceach h DFDFD D coconsnsisistetentntly ly fofor r refrefererencencining g baback ck to to it it ththrouroughghouout t ththee pro&ect.
pro&ect.
!ips:
!ips:
<eep in mind the following pointers when developing Data Flow
<eep in mind the following pointers when developing Data Flow Diagrams
Diagrams
Decide which style of notation (8ane 9 arson or :ourdon) to use for the Decide which style of notation (8ane 9 arson or :ourdon) to use for the DFD components throughout the pro&ect.
DFD components throughout the pro&ect.
=egin with the %onte#t diagram to show the target domain's top process
=egin with the %onte#t diagram to show the target domain's top process (think of it as the top 'black bo#') with its ma&or e#ternal entities and data (think of it as the top 'black bo#') with its ma&or e#ternal entities and data flows. This will illustrate the overall business or system under investigation
flows. This will illustrate the overall business or system under investigation
includ
including its ing its domain boundary from domain boundary from the outside environment. ometimthe outside environment. ometimes ites it may be useful to leave out any data store details in a %onte#t diagram in may be useful to leave out any data store details in a %onte#t diagram in
order to focus on the big picture/ there is an assumption that the data order to focus on the big picture/ there is an assumption that the data stores are included within the top process.
stores are included within the top process.
"f
"f yyou ou wwisish h tto o aavovoid id dadata ta flflow ow lilinenes s crcrosossising ng oovever r eaceach h ooththerer trtryy rep
repososititioionining ng ththe e compcomponeonentnts s to to sesee e if if ththis is hehelplps. s. "f "f it it dodoes es notnot it it isis acceptable to duplicate components on the diagram for this purpose.
acceptable to duplicate components on the diagram for this purpose.
"f possible limit the number of decomposition DFD levels to three/ it will be
"f possible limit the number of decomposition DFD levels to three/ it will be eas
easieier r fofor r ststakakehoeholdlderers s to to fofollllowow. . "f "f fufurtrtheher r DFDFD D lelevevels ls arare e necnecesessasaryry provide a separate diagram to show the hierarchical tree structure of all the provide a separate diagram to show the hierarchical tree structure of all the levels involved.
levels involved.
"t
"t is is cocommmmon on to to attaattach ch a a %o%ontnte#e#t t didiagagraram m in in a a hihighgh$l$levevel el bubusisinenessss reuirements document to define the pro&ect scope. 5ore detailed Data reuirements document to define the pro&ect scope. 5ore detailed Data Flow Diagrams can be developed later on during the analysis phase and Flow Diagrams can be developed later on during the analysis phase and attached to the reuirements specification or functional documentation as attached to the reuirements specification or functional documentation as needed.
needed.
!ngage pro&ect stakeholders when developing Data Flow Diagrams and
!ngage pro&ect stakeholders when developing Data Flow Diagrams and secure their approval (sigh$off) as soon as possible.
secure their approval (sigh$off) as soon as possible.
Decomposing diagrams into Level 2 and lower hierarchical levels What is a Level 2 (or lower) DFD
We have already seen how a level 0 Context Diagram can be decomposed (exploded) into a level 1 DFD. In DFD modeling terms we tal o! the Context Diagram as the
"parent# and the level 1 diagram as the "child#.
$his same process can be applied to each process appearing within a level 1 DFD. % DFD that represents a decomposed level 1 DFD process is called a level & DFD.
$here can be a level & DFD !or each process that appears in the level 1 DFD.
% possible level & DFD !or process '& oan o! video* o! the level 1 DFD is as
!ollows
+ote, that every data !low into and o-t o! the parent process m-st appear as part o! the child DFD. $he n-mbering o! processes in the child DFD is derived !rom the n-mber o! the parent process so all processes in the child DFD o! process &, will be called
&./ (where / is the arbitrary n-mber o! the process on the level & DFD). %lso there are no new data !lows into or o-t o! this diagram this ind o! data !low validation is called balancing.
oo at the rectang-lar bo-ndary !or this level & DFD. -tside the bo-ndary is the external entity "C-stomer#. %lso o-tside the bo-ndary are the two data stores
altho-gh these data stores are inside the system (see the level 1 DFD), they are o-tside the scope o! this level & DFD.
Constructing Level 2 (and lower) DFDs - Functional Decomposition
$he evel 1 Data Flow Diagram provides an overview o! the system. %s the analysts#
-nderstanding o! the system increases, it becomes necessary to expand most o! the
evel 1 processes to a second or even third level in order to depict the detail within it.
Decomposition is applied i! necessary i.e. i! there is eno-gh detail hidden within the process to each o! the processes on the evel 1 diagram. 2ach process on the
evel & diagrams also needs to be checed !or possible decomposition, and so on.
% process box that cannot be decomposed !-rther is mared with an asteris in the bottom right hand corner. % brie! narrative description o! each bottom3level process
sho-ld be provided with the Data Flow Diagrams to complete the doc-mentation o!
the Data Flow 4odel.
2ach process on the evel 1 diagram is investigated in more detail, to give a greater -nderstanding o! the activities and data !lows. +ormally processes are decomposed where
• $here are more than six data !lows aro-nd the process
• $he process name is complex or very general which indicates that it incorporates a n-mber o! activities.
$he !ollowing steps are s-ggested to aid the decomposition o! a process !rom one DFD to a lower level DFD. %s yo- can see they are very similar to the steps !or creating a evel 1 DFD !rom a context diagram
1. Make the process box on the Level 1 diagram the system boundary on the Level 2 diagram that decomposes it. $his evel & diagram m-st balance with its "parent# process box i.e. $he data !lows to and !rom the process on the
evel 1 diagram will all become data !lows across the system bo-ndary on the
evel & diagram. $he so-rces and recipients o! data !lows across the evel &
system bo-ndary are drawn o-tside the bo-ndary and labeled exactly as they are on the evel 1 diagram. +ote that these so-rces and recipients may be data stores, as well external entities or other processes this is beca-se a data store in a evel 1 diagram will be o-tside the bo-ndary o! a evel & process that sends or receives data !lows to5!rom the data store.
&. Identify the processes inside the Level 2 system boundary and draw these processes and their data flows. 6emember, each data !low into and o-t o! the
evel & system bo-ndary sho-ld be to5!rom a process. 7sing the res-lts o! the more detailed investigation, !ilter o-t and draw the processes at the lower level that send and receive in!ormation both across and within the evel & system bo-ndary. 7se the level n-mbering system to n-mber s-b3processes so that, !or
example, 8rocess 9 on the evel 1 diagram is decomposed to :-b3processes 9.1, 9.&, 9.; < on the evel & diagram.
;. Identify any data stores that exist entirely within the evel & bo-ndary, and draw these data stores.
9. Identify data flows between the processes and data stores that are entirely within the Level 2 system boundary. 6emember, every data store inside this bo-ndary sho-ld have at least one inp-t and one o-tp-t date !low.
=. Check the diagram. 2ns-re that the evel & Data Flow Diagram does not violate the r-les !or Data Flow Diagram constr-cts.
Exercises and related work Exercise 13
What is meant by !-nctional decomposition.
7nder what conditions wo-ld yo- decompose a process on a Data Flow Diagram>
% disc-ssion on this exercise can be !o-nd at the end o! this chapter .
Exercise 14
Decompose the ?ideo 6ental evel 1 DFD process "loan o! video# into a evel &
DFD.
% disc-ssion on this exercise can be !o-nd at the end o! this chapter .
Review Question 2
Create a evel 1 DFD !or the 2state %gency case st-dy based on the context diagram
!rom the previo-s 6eview @-estion and the case st-dy text.
% disc-ssion on this review A-estion can be !o-nd at the end o! this chapter .
Review Question 3
Create a evel & DFD !or the "invoice client# process o! the 2state %gency case st-dy based on the evel 1 DFD !rom the previo-s 6eview @-estion and the case st-dy text.
% disc-ssion on this review A-estion can be !o-nd at the end o! this chapter .
ummar! and recap Context diagrams
$he Context Diagram is drawn -p at the o-tset o! analysis, and is -sed to establish the analysis !ramewor. It involves establishing the bo-ndaries o! the system and the
scope o! the investigation, to ens-re that no essential areas are omitted !rom the
investigationB and so that reso-rces are not wasted on detailed wor in areas o-tside o!
the system scope.
$he analyst m-st establish a clear overview o! the system -nder investigation, and identi!y the activities and in!ormation that are necessary !or the b-siness to meet its obectives. $his may be done in cons-ltation with a single -ser, with a broad b-t adeA-ately detailed nowledge o! all areas incl-ded within the scope, or in
cons-ltation with a gro-p o! -sers. %lternatively, partial views obtained individ-ally
!rom a n-mber o! -sers may be combined to give the complete pict-re.
$he Context Diagram, sometimes called evel 0 Data Flow Diagram, is drawn -sing a single process, appropriately labelled, to represent the entire system. %ll data !lows into and o-t o! the system, to and !rom external so-rces and recipients, are shown aro-nd the edge o! the process.
$he types o! in!ormation !lowing within the system will be a!!ected by the nat-re o!
system being investigated. $he c-rrent system may be entirely man-al or it may be partly comp-terised b-t reA-iring maor enhancements. %n existing comp-ter system
may no longer meet -sers# reA-irements, or may no longer be s-pported (either by external s-ppliers or internal I$ reso-rces). In some cases there may be no existing system in place to s-pport, !or example, a new area o! the b-siness or new legislation, in which case it may be necessary to investigate how other organisations have
addressed the iss-e.
%ll systems have both !ormal components s-pported by set proced-res and
str-ct-red in!ormation s-ch as !orms, records and !iles 3 as well as in!ormal aspects 3 which operate thro-gh int-ition and -dgement 3 which -ses conversation and other -nstr-ct-red in!ormation. $he -nstr-ct-red as well as str-ct-red in!ormation !lows need to be considered d-ring investigation o! the c-rrent system.
Levels
4ost practical systems will have many h-ndreds o! processes. Clearly, i! these were all shown on one data3!low diagram then we wo-ld hardly be any better o!! than i! we had -sed a single text doc-ment to describe the system. owever, we do need to thin
abo-t all these processes and describe them. $o resolve this problem, data3!low
diagrams can have a n-mber o! levels and the whole system is represented by a set o!
levelled data3!low diagrams.
$he top3most level is called the context diagram or level 0 diagram. n it there is a single process represented by a plain box (with no divisions) representing the system as a whole. $he remainder o! the diagram is all o! the external entities and the data3
!lows between them and the system. $h-s, the diagram gives the context !or the system where the bo-ndaries are between the system and the rest o! the world.
$he next level which is simply called the level one diagram shows the maor processes o! the system. %ll o! the external entities are still shown b-t now the
processes which receive inp-ts and generate o-tp-ts are also shown and also the data3