Functional Decomposition is the process of taking a complex process and breaking it down into its smaller and simpler parts. Each of which can be broken down further. Once you've reached the lowest level of decomposed pieces of a subsystem, developers can think about how to start coding those functions. As you are working on the simplest functionality the developer can possibly work with the target system under developed. Therefore developing and testing those functionalities becomes much easier.
In this tutorial, you will be creating a context level DFD and expanding the main process shape into the level 1 DFD.
Creating Context Level DFD
Context level DFD, also known as level 0 DFD, sees the whole system as a single process and emphasis the interaction between the system and external entities. Let's draw a context DFD.
- To create a DFD, select Diagram > New from the toolbar.
- In the New Diagram window, select Data Flow Diagram and click Next.
- Enter Context Diagram as diagram name and click OK to confirm.
- Name the diagram Context Diagram.
- We need to create the main process. Drag Process from diagram toolbar to diagram. Name it Online Bookstore. We will use online bookstore as an example to show you how to create multiple levels DFD.
- As you can imagine, customers will be ordering books through the system. Therefore, add an External Entity to diagram and name it Customer. Like creating process, you can create an external entity by dragging External Entity from diagram toolbar to diagram.
- A data flow is used to represent the movement of data between different parts of the system. In this case, "order" is a data created by customer and submitted into the system. Therefore, create a data flow from Customer to Online Bookstore. To do this, move the mouse pointer over Customer. Drag out the Resource Catalog button.
- Release the mouse button on Online Bookstore and select Data Flow from Resource Catalog. This creates a data flow connector.
- Name it order.
The book store will finally deliver the books to the customer. Make use of the Resource Catalog to create a data flow from Online Bookstore to Customer. Name the flow ordered books.
That's all for the context diagram. As we see the entire system as a single process, there is just one process shape created in this DFD level. In the next section you will decompose the Online Bookstore process and draw its detail.
Creating Level 1 DFD
In this section, you are going to draw the level 1 DFD to show the main functions of online bookstore.
- Right click on Online Bookstore and select Decompose from the popup menu.
- The data stores and/or external entities connected to the selected process would be referred to in the level 1 DFD. So when you are prompted to add them to the new diagram, click Yes to confirm. Note that the new DFD should look very similar to the context diagram initially. Every element should remain unchanged, except that the main process (from which this new DFD decomposes) is now gone and replaced by a blank space (to be elaborated).
- Right click on the background of diagram and select Rename... from the popup menu. Name the diagram Level 1 DFD.
- There is a process that receives customer order and store it into a database. Let's create a process Receive Order and a data store Orders. Add data flows in between.
- When an order is invalid, there should be another process that involves contacting the customer and clarifying his/her need. Create a process Handle Invalid Order. Add suitable data flows between the shapes. Here you may use a bi-directional data flow to represent the a dialog flow.
There is another process that handles shipment. Create the Ship Order process. Again, add appropriate data flows between the shapes.
That's all for this tutorial. Depending on the area of interest, you may create further levels to show the system in more detail. As you can imagine, the Ship Order process can be elaborated into smaller functional units (processes) like packaging, prepare invoice, arrange deliver, etc.