You are welcome to use any flowcharting methodology you want to document the system flow, but I would expect you to use a methodology which is easy to follow using common sense. Imagine you are providing this document for your bosses' boss (who pays your consulting fee), a person you like and want to please. Your bosses' boss understands technology quite well, but doesn't know the details of what you have done. I would expect your flowchart to contain boxes (or circles or whatever symbol you want to use) that represent people and pieces of technology. As a minimum:
Let me give you a simple example. If I were documenting an ATM banking system as an assignment, I might create a flowchart that looked like this:
A - Checking Account Withdrawal
A1 - Customer inserts Bank Card into ATM and enters PIN through keypad
A2
- ATM connects with Account Database to Verify PIN
A3 - Customer makes
Checking Withdrawal request for $X
A4 - ATM connects with Account Database to
Deduct $X from Account
A5 - Customer removes $X and Bank Card from ATM
Note the consistent numbering system (I would have processes B, C, D, etc. numbered sequentially as well).
Your system architecture diagram should document all functionality requested in the following section.
To make our database work for everyone, I am requesting that you use the database field names as the NAME attributes within your form control elements. For example, in your New Customer Form, you would have an INPUT element that looks like this:
<INPUT TYPE=TEXT NAME=Phone_Nbr>
because I have documented in the Restaurant Database document that the Customer table field for phone number is named Phone_Nbr. Creating your forms for requirements 1, 2, and 3 above should be easy if you just create an input control for each field in the respective tables.
The Order Receipt Report should show provide one horizontal line of text for each meal a customer has requested for that order. Add the other obvious fields the customer would want to see (for example, Quantity). You will fill the details for the report automatically by creating the proper SQL command that requests the right fields based on the current Order_ID (the Web browser will keep track of that).
The Add and Delete Buttons should allow a user to select an item on the Order Request Report (a checkbox next to each item would work well) and then send the proper SQL command to process the add or delete. The Add and Delete Buttons do not have to be of TYPE=INPUT, but instead can be of TYPE=BUTTON. The Submit button should be reserved for the customer submitting the order (which is when the order becomes final). I will show you the code in class that will be behind your Add and Delete buttons. They will both make servlet calls. You will just have to provide me with the SQL command each servlet should process.
The Total Revenue Report will sum up all orders that have been delivered during the last month and show them by meal Category. You will be responsible for providing the proper SQL command to generate the report and you will create the report as a static HTML document (like the Chef's Preparation Report of Project 1). The report will also show a grand total which will be calculated by the servlet (I will show you the code).
The Late Order Report will show a list of all late orders for the month. The report should show the Order_ID and interesting fields that might help in determining why such orders were late. You can group the report any way you think best. You will hand in the proper SQL command to make the detail report. You will also hand in a second SQL command that determines the percentage of orders that were late and the average minutes late. The Late Order Report should also show one horizontal line of text for each late order over the last month.
ACTION=http://www.cev.washington.edu/servlets/newMeal
and a proper SUBMIT button:
<INPUT TYPE=SUBMIT VALUE="Add Item">
Right after the SUBMIT button code, you should place a comment outlining what SQL Commands should be run and under which conditions. Take a look at the example:
<!--
1. Find the next available Meal_ID with SQL Command:
2. Verify the Meal is not already in the database with SQL Command:
3. If not already in Meal Table, Add to the Meal table with SQL Command:
Upon Choosing SUBMIT, Servlet Processing should:
SELECT MAX(Meal_ID) AS MAX_ID FROM Meal
SELECT * FROM Meal WHERE Name='Name'
INSERT INTO Meal VALUES (Meal_ID,'Name','Description',Price,Prep_Time,Category_LU,'Comments')
-->
You will have two such comments for your Order Receipt Report, one for creating the body of the Order items table and another for processing the Delete button (the Add button should just connect you with a proper form for adding a new menu item.