# data[].attributes.body
The analyst should perform some final checks before the DFD is shown to the organisation. These are detailed below.

Does each process receive all the data it needs?

Does any data store have only data flows out and not in?

Does any data store appear to hold data that is never used?

Are all data flows consistent across the L0 and the L1 DFD?

Are all external entities shown on the L1 DFD also shown in the L0 diagram? Are all flows labelled? Are they documented in the data dictionary?

Are there any data flows between two external entities, external entities to data stores and two data stores?

Do any data flows cross on the diagram? If they do, use repeating external entities or data sources.

# data[].attributes.body
There is a wide range of methods that can be used to construct a L1 DFD. One method is given here.

1. Read through the information collected during the investigation and analysis stages.

2. Sort the information into clear sections identifying the people or organisations external to the system under investigation but who interact with it, the documents used in the system inder investigation, the activities that take place within the system under investigation.

3. Produce a data flow table.

4. Convert external users to external entities.

5. Convert documentation to data stores.

6. Convert activities to processes identifying when in the system the activity takes place, who is involved, and any data stores used.

7. Look at the inputs and outputs for each process with the data stores that are used and use data flws to 'link' these.

8. Link each data store and external entity with the associated process.

9. Link the processes (remembering the rules about labelling processes).

10. Check for consistency (e.g. check the initial findings to ensure all documentation has been included, check the flows between external entities given on the context diagram are included, check with the end users of the current system to ensure nothing has been forgotten).

# data[].attributes.body
There are many different levels of DFD. The Level 0 or context diagram gives a summary of the system. It shows the main external entities and the information that flows in to and out of the system.

A Level 0 DFD does not show the processes that occur or the data stores that are used within the system - it simply provides an overview of the system under investigation.

Some systems will have more than one external entity, and the process of constructing the Level 0 DFD will be the same despite the number of external entities and flows involved.

The main aim of the L0 DFD construction is to identify the flows of data that occur between the system and the external entity(s). The flow of data has a source and a recipient. It is convention that the initial flows in the system are shown as the top flows in the L0 DFD, while the flows that happen last are at the bottom.

A Level 1 DFD provides an overview of what is happening within the system. The system is represented in the L0 DFD by the central process box. The overview includes types of data being passed within the system, documents and stores of data used, the activities and the people or organisations that the system interacts with.

This information may be put into a data flow table which will give the analyst a clearer understanding of the flows of information. It may also be easier for the client to check that all the flows are present. This table can also be used to construct the L0 DFD.

# data[].attributes.body
There are certain rules about which DFD symbols can be linked. These are shown in the next table. The table shows that it is not possible to link an external entity with another external entity or a data store with an external entity.

# data[].attributes.body
A DFD does not show the hardware or software required to operate the system. The analyst will use the DFD to show:

the external entities that the system interacts with

the processes that happen

the data stores that are used

the flow of the data and information.

# data[].attributes.body
Data flows indicate the direction or flow of data within the system. Data flows provide a link to other symbols within the DFD. Each flow should be given a simple meaningful descriptive name.

# data[].attributes.body
A data store shows where data is stored. Examples of data stores include a database file, a paper form or a folder in a filing cabinet. A data store should be given a meaningful descriptive name (e.g. a customer file).

The data stores are labelled to indicate the type of data store they are. The two main types are:

D: a computerised store (e.g. files on a database).

M: a manual data store (e.g. a filing cabinet or paper form).

A data sore can be used more than once in a system. This is called a repeating data store. If a data store is repeater, then the same numbering and description are used, but a second vertical line is inserted as shown below.

# data[].attributes.body
A process represents an activity that takes place within, and linked to, the system. All activities within a system have a process attached to them. A process models what happens to the data. It transforms incoming data flows into outgoing  data flows. Usually a process will have one or more data inputs and produce one or more data outputs.

The process box is labelled with a number that should represent when in the system the process is taking place. The process box should also state what the process is. For example, the process shown below is the third process and shows the creation of a purchase order.

# data[].attributes.body
External entities are used to represent people, organisations or other systems that have a role in the system under development but are not necessarily part of it. They either put data into the system or receive data from it.

The external entities are labelled with the name of the person, organisation or system they represent. The external entity shown below shows the Customer as an external entity.

It is possible to have repeating external entities. As with the data stores, the original name is kept and a line is used to show that it is repeated.

# data[].attributes.body
There are many different sets of symbols that can be used when contstructing DFDs. It does not matter which set of symbols is used, but it is important that once the set of symbols has been selected that they are used consistently and are not changed part way through the analysis stage. One set of symbols that could be used are shown below.

# data[].attributes.body
Data flow diagrams show how data moves through a system. They focus on the processes that transform incoming data flows into outgoing data flows. The processes that perform this transformation create and use data that is held in data stores.

A DFD will also show what and who the system interacts with in the form of external entities. Examples of external entities include people and other systems.