There are only four different symbols that are normally used on a DFD. The elements represented are:
- External entities
- Processes
- Data stores
- Data flows
External entities are those things that are identified as needing to interact with the system under consideration. The external entities either input information to the system, output information from the system or both. Typically they may represent job titles or other systems that interact with the system to be built. Some examples are given below in Figure 1. Notice that the SSADM symbol is an ellipse. If the same external entity is shown more than once on a diagram (for clarity) a diagonal line indicates this.
Processes
Processes are actions that are carried out with the data that flows around the system. A process accepts input data needed for the process to be carried out and produces data that it passes on to another part of the DFD. The processes that are identified on a design DFD will be provided in the final artefact. They may be provided for using special screens for input and output or by the provision of specific buttons or menu items. Each identifiable process must have a well chosen process name that describes what the process will do with the information it uses and the output it will produce. Process names must be well chosen to give a precise meaning to the action to be taken. It is good practice to always start with a strong verb and to follow with not more than four or five words.
Examples of good process names would be :
- Enter customer details
- Register new students
- Validate sales orders
Try to avoid using the verb ‘process’, otherwise it is easy to use this for every process. We already know from the symbol it is a process so this does not help us to understand what kind of a process we are looking at.
Data stores are places where data may be stored. This information may be stored either temporarily or permanently by the user. In any system you will probably need to make some assumptions about which relevant data stores to include. How many data stores you place on a DFD somewhat depends on the case study and how far you go in being specific about the information stored in them. It is important to remember that unless we store information coming into our system it will be lost.
Data flows
The previous three symbols may be interconnected with data flows. These represent the flow of data to or from a process. The symbol is an arrow and next to it a brief description of the data that is represented. There are some interconnections, though, that are not allowed.
These are:
- Between a data store and another data store
- This would imply that one data store could independently decide to send some of information to another data store. In practice this must involve a process.
- Between an external entity and a data store
- This would mean that an external entity could read or write to the data stores having direct access. Again in practice this must involve a process.
DFD Example
Here are some
key points that apply to all DFDs
- All the data flows are labelled and describe the information that is being carried.
- It tends to make the diagram easier to read if the processes are kept to the middle, the external entities to the left and the data stores appear on the right hand side of the diagram.
- The process names start with a strong verb
- Each process has access to all the information it needs. In the example above, process 4 is required to check orders. Although the case study has not been given, it is reasonable to suppose that the process is looking at a customer’s order and checking that any order items correspond to ones that the company sell. In order to do this the process is reading data from the product data store.
- Each process should have an output. If there is no output then there is no point in having that process. A corollary of this is that there must be at least one input to a process as it cannot produce data but can only convert it form one form to another.
- Data stores should have at least one data flow reading from them and one data flow writing to them. If the data is never accessed there is a question as to whether it should be stored. In addition, there must be some way of accumulating data in the data store in the first place so it is unlikely there will be no writing to the data store.
- Data may flow from
- External entity to process and vice-versa
- Process to process
- Process to data store and vice-versa
- No logical order is implied by the choice of id for the process. In the example process id’s start at 4. There is no significance to this.