Why DFDs l DFDs help to represent and

  • Slides: 34
Download presentation
Why DFDs l DFDs help to represent and communicate – – – Information and

Why DFDs l DFDs help to represent and communicate – – – Information and data flows Processes that change or handle data Stored data System boundaries Sources and recipients of data/information

Benefits of DFDs l l l Provide a pictorial representation Are easy to understand

Benefits of DFDs l l l Provide a pictorial representation Are easy to understand are non-technical Quick to produce and to amend Small number of symbols with specific meanings Easy progression between different levels

DFD Components – External Entity • • Represents sources or recipients outside the system

DFD Components – External Entity • • Represents sources or recipients outside the system described by the DFD eg. external person, system or user If duplicated on the same diagram

DFD Components - Process • Process transform or handle data • • • May

DFD Components - Process • Process transform or handle data • • • May be automated or manual or mixture Can be decomposed into several levels of detail Name should be simple imperative statement Identifier numbers DO NOT indicate sequence Control logic is NOT shown as in flowcharts

DFD Components – Data Store Single Multiple • Represents data retained by the system

DFD Components – Data Store Single Multiple • Represents data retained by the system (long and short term) • • Manual data stores referenced by M!, M 2, M 3 etc. Transient data stores (short term) referenced by T 1, T 2, T 3 etc. Computer data stores referenced by C 1, C 2, C 3 etc. Transient Manual stores referenced by T 1(M), T 2(M), T 3(M) etc. Eg. computer files, record boxes, boxes of paper, filing cabinets etc

DFD Components – Data Flow 1 Data Flow • • • Shows the input

DFD Components – Data Flow 1 Data Flow • • • Shows the input and/or output of information or data to or from Processes Arrows show direction of flow Description normally given in data flow Identified by source and destination and data flow description Eg. Dataflow a-1 goes from external entity “a” to process 1.

DFD Components – Data Flow 2 Data Flow • • Shows flow of information

DFD Components – Data Flow 2 Data Flow • • Shows flow of information or data NOT storage media Usually flow to or from Processes • An exception might be, for example, letters between external entities

DFD Rules - Processes • • • Active verb label No process can have

DFD Rules - Processes • • • Active verb label No process can have only outputs. It is making data from nothing. If an object has only outputs it must be a source, not a process (big bang). No process can have only inputs. If it has only inputs it is a sink not, not a process (black hole)

DFD Rules – Data Store • • Has a noun label Data cannot move

DFD Rules – Data Store • • Has a noun label Data cannot move directly from one data store to another. It must be moved by a process (wormhole) Data cannot move directly from outside source to a data source. Data must be moved by a process. Data cannot move directly to an outside source from a data source. Data must be moved by a process.

DFD Rules – External Source/Sink • • Has a noun label Data cannot move

DFD Rules – External Source/Sink • • Has a noun label Data cannot move directly from a source to a sink. It must be moved by a process if the data is of any concern to our system. Otherwise, the data flow is not shown in this DFD

DFD Rules – Data Flow 1 • • A noun label Has only one

DFD Rules – Data Flow 1 • • A noun label Has only one direction of flow between processes and/or data store. However, it may flow in both directions at DIFFERENT times this is indicated by two separate arrows. Eg. A read before an update • A forked data flow indicates that exactly the same data goes from a common location to two or more processes, data stores or sinks.

DFD Rules – Data Flow 2 • • A join means that exactly the

DFD Rules – Data Flow 2 • • A join means that exactly the same data comes from any two or more processes, data stores or sources to a common location A dataflow cannot loop back on itself so it goes back to the process it has just come from (an infinite loop). There must be at least another process in the “loop”.

DFD Rules – Data Flow 3 • • A dataflow to a data store

DFD Rules – Data Flow 3 • • A dataflow to a data store is an update A dataflow from a data store is a retrieve

DFD Rules – General • • • The inputs to a process are different

DFD Rules – General • • • The inputs to a process are different to the outputs of a process……otherwise the process is doing nothing All objects have a unique name……but to keep things uncluttered you can repeat objects Different levels (0/1/2) are talking about the same system…. . the diagram zooms in on processes at the higher levels

The Art of Developing DFDs 1 1. 2. 3. 4. Establish in your mind

The Art of Developing DFDs 1 1. 2. 3. 4. Establish in your mind a level of detail and STICK TO IT Identify key data flows Agree the system boundary. Identify what is in the system and what is not part of the system Create an initial DFD (level 0) to get a rough idea (only one process)

The Art of Developing DFDs 2 5. 6. 7. Identify processes and data stores

The Art of Developing DFDs 2 5. 6. 7. Identify processes and data stores Check for completeness. Check the dataflows are bounded by locations. Check for stores with inputs but no outputs, or outputs but no inputs are supposed to be sinks and sources.

The Art of Developing DFDs 3 6. Check processes which seem not to use

The Art of Developing DFDs 3 6. Check processes which seem not to use the data entered, or which seem to produce information for which they have no information

Checking your DFD 1 1. 2. 3. 4. Are all components uniquely named? If

Checking your DFD 1 1. 2. 3. 4. Are all components uniquely named? If there are duplicate names are they referring to the same thing Are there any data stores that are not referenced by dataflows? Are there process that do not receive input?

Checking your DFD 2 5. 6. 7. Are there process that do not produce

Checking your DFD 2 5. 6. 7. Are there process that do not produce output? Are there processes that serve a multiple purpose? If so, simplify by exploding them into multiple processes. Is the inflow of data to a process adequate for it to perform its function?

Checking your DFD 3 8. 9. 10. 11. Is there excessive amounts of data

Checking your DFD 3 8. 9. 10. 11. Is there excessive amounts of data in the data store? If so, can this data be split into different data stores? Is the inflow of data into a process too much for the process to handle? DO you need another process to deal with it? Are ALL processes independent and do a specific job? Are ALL processes ONLY dependent on the input they receive?

Errors

Errors

Errors

Errors

Errors

Errors

Errors

Errors

Errors

Errors

Errors

Errors

Errors

Errors

Errors

Errors

Errors

Errors

Level 0 Customer Notify closure Customer details Deposit Get Account no. Withdraw Get balance

Level 0 Customer Notify closure Customer details Deposit Get Account no. Withdraw Get balance 0 Bank

Hierarchy

Hierarchy

Level 1

Level 1

Hierarchy

Hierarchy

Level 2

Level 2