Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This is my first ever DFD that I made after my fair share of learning but I have no way of verifying whether it is correct or not. Although I have taken utmost care to make sure it is right, I may be wrong.

Here is the scenario:

Bebop Records is a mail-order company that distributes CDs and tapes at discount prices to record club members. When an order processing clerk receives an order form, he or she verifies that the sender is a club member by checking the Member file. If the sender is not a member, the clerk returns the order along with a membership application form. If the customer is a member, the clerk verifies the order item data by checking the Item file.

Then the clerk enters the order data and saves it to the Daily Order file. The clerk also prints an invoice and shipping list for each order, which are forwarded to Order Fulfilment.

And here is my diagram:

enter image description here

share|improve this question
Do you really use DFDs in your job? – NoChance Aug 29 '12 at 7:46
Im a student , so Yeah ! – Dummy Derp Aug 29 '12 at 10:35
By any chance, is this a homework assignment? – John R. Strohm Aug 29 '12 at 13:30
No, it is not. If it was, I could simply copy it from other classmates – Dummy Derp Aug 29 '12 at 14:07
up vote 3 down vote accepted

Tom DeMarco invented Data Flow Diagrams, and described them in his book, "Structured Analysis and System Specification". One of his key points was that they're either right or they're OBVIOUSLY wrong.

Your DFD appears, unfortunately, to fall in the latter category.

Your text spec says that the clerk RETURNS non-member order forms, presumably to the customer, along with a blank membership form.

Your DFD, however, shows a non-member order form as going to Order Fulfillment, having gone through all the stages, just like a member order form.

share|improve this answer
If the sender is not a member, the clerk returns the order along with a membership application form. Clerk returns the order i.e. what has been ordered and not the order form. Assuming what I say is right, is my DFD correct? The story that I understand is: If you are not a privileged member, we will ship you the order albeit at full cost and along with our membership form so that you can avail the discounts by signing up – Dummy Derp Aug 29 '12 at 10:36
I think you may have misinterpreted the phrase "clerk returns the order". Verification of item data would appear to be required for an order that is going to be filled, and that step apparently is not performed for a non-member order. You might want to ask your customer (or your TA, if this is a homework assignment) for clarification on this one. – John R. Strohm Aug 29 '12 at 13:32
I actually got it from a slideshow that I downloaded from Google. So this, by no chance, is my homework. And he or she verifies that the sender is a club member by checking the Member file will need to be performed for every order, right? – Dummy Derp Aug 29 '12 at 14:08
You are showing an Item File database and an Available Item database. Non-member orders apparently hit the Available Item database, while member orders hit the Item File database. Why are they distinct? – John R. Strohm Aug 29 '12 at 15:52
I made them as distinct because ItemFile database is a subset of the AvailableItem database. The items that are available to non-members are available to the members at higher price and if an order is placed for such an item then the main database will have to be updated along with the ItemFile database. The same applies to the members. Place an order -> Process the order -> update both the DB. Although I forgot to show the flow of member's order to AvailableItem – Dummy Derp Aug 29 '12 at 16:00

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.