Principles of software design - Sample Essay
a) Scope: A system needs to be created which is used on a hand-held device or a small computer which will be used by a waiter or waitress to take a customers order. It is important that the program works correctly because the companies name is at stake. I am going to create a program which allows the user to add various items to a list box by clicking the related buttons. A list box will display all of the items which have been ordered so that the waiter/waitress can review the order. The list box should have a ‘reset’ button so that the order can be adjusted if a wrong order is made.
A Pizza base for up to 4 pizzas’ can be chose by a tick box. The reason I chose a tick box with just 4 pizza’s is that it is unlikely a customer will order more than 4 pizzas, any addition pizza’s after the first 4 can be wrote in the additional requests box at the bottom. I feel that the main factor that needs to be concentrated on in this application is the simplicity of the interface. This is because when taking orders a waiter wants to be able to get the job done as quickly as possible to keep the customer happy. Inputs:
There will be a choice of buttons with Preset values behind them. A set of tick boxes are included A Text box Outputs: A calculation of all of the values of the pizzas should display as a bill total A Listbox of each item should be displayed. Processing: Establish each individual Pizza size and Toppings included for each. Establish what drinks are included in the order Calculate the total of each item together once order is made. Establish what base for each pizza Storage: Pizza Size Pizza Toppings Pizza Base Drinks.
All information is going to be temporarily stored in the RAM. After this list has being created and total price of items is calculated the list will save as a text file onto the HDD allowing it to be reviewed later on if necessary. User Interface: I am going to separate the UI in to 5 different customisable sections, Pizza’s, Extra Toppings, Drinks, Pizza bases and a ‘Additional Items’ box. The program will also have list box which has the list of items which have been ordered. B) Test number to show priority Test data to be used Reason for testing Expected outcome 1 List Array.
This is the most Important part of the coding for my application, it will determine the order for the waitress to review It displays the list of items which have been clicked. 2 String Concatenation This is important as it is responsible for listing the items which have been ordered so they can be later reviewed. It adds item to the list after the button has been clicked. 3 Byte This will be responsible for Individual prices (nothing values more than 255) Adds values to the list that consist of numbers no higher than 255. 4 Double This will be for calculating and displaying the order total as it may be a very large total.
Displaying order totals. 5 Buttons The buttons for the program are extremely important as they are responsible for inputing almost all of the data into the application Items appear in lift after button is pressed 6 Reset Button This is important so that the user doesn’t need to restart the application every time they want to reset an order Resets total and list back to null 7 Total Multiplication This is very important as it means the the waiter/waitress does not need to manually add up the total of all the items on the list Displays total underneath list box. 8.
List box restriction with Message box This is important as it is responsible for stopping the user inputting more than 10 items at a time. Display message warning user that only 10 items are allowed at one time Task 2. P5 & M3 – Test Plan and Improvements Test Data Did it work? Screen shot or cross reference to evidence Modifications required? If so what? List Array Yes Yes. After giving it to the client, the client pointed out that it would not stop after 10 items. I tackled this issue by implementing some code that would only allow up to 10 pizza’s and drinks collectively.
If this limit was exceeded, it messaged the user alerting them that no more items could be put on the list. String Concatenation Yes No Reset Button Yes Yes. Another adjustment I got from the client, is the idea of saving the items on the list. I decided the best way to include this into the application was to change to the code of the ‘reset’ button to save the items of the list into variables as well as its initial job of resetting it. Total Multiplication Yes No Buttons Yes Yes. A Print button could also be included. Task 3 . P6 & M3.
After creating my application my client had a look at it and suggested adjustments I could make to improve the design. The client said I should include a button to print out the list after the order had been made. The client also wanted a way to back-track an order after the form has been reset, I decided I could achieve this by altering the ‘reset’ button to also include a function which saves the current list to a variables as well as resetting it, this would mean that I would also need to include a drop-box which had a list of up to 10 of the previous orders made
The client also pointed out that the form needed to be able to display at different resolutions without distorting the buttons and content of the form. I feel I could achieve this by making the content resized depending on the size of the screen being used. Changes – M3 List box restriction with message box notification The first change which I made was restricting the user to only 10 items on the list. This was done by implementing additional code on only the pizza and drinks.
This meant that the user could still input as many additional items as preferred (such as extra cheese ect) Print button Another change which I failed to include into the original coding was a button to print the order. I later added this by adding a button to the form and adding a simple bit of code to print to content of the listbox. Save & Reset Button The client pointed out to me that the application was missing a ‘save’ button. After fiddling with the code it became evident that the best way to include this was to alter the ‘reset’ button to be a ‘save & reset’ button.
The code behind the button would take the content of the list and save it as variables. This could later be accessed by a combo box with the saved orders. Automatic Resolution adjusting I also realised that the form would always stay the same size regardless of the resolution of the screen. This would mean that if the application was displayed on a small screen (a tablet for example) the content of the form may be hard to see. I resolved this issue by making the form adjust to the size of the screen.