Assessment item 4
Final Programming Project
Value: 40%
Due Date: 04-Feb-2019
Task
The purpose of this assessment item is to develop skills in professional software development. It tests your ability to develop code to a client’s requirements, and to create basic documentation to communicate the analysis and design.
It is worth 40% of the subject evaluation.
A client has asked you to develop a GUI business application for their restaurant. The application is called ‘Food for Thought’. This application is for use by various staff, waiters and the administrator of the restaurant.
The following requirements have been provided:
1.Each user of the system needs to have an account. Each account consists of a staff ID (6 digit unique integer), name, role (administrator or waiter), username, password and the account creation date.
2.The administrator account is allowed to create new waiters as well as delete them (no other account holders may perform these actions)
3.There should only be one administrator account; this account cannot be deleted.
In addition to the system requirements above, the application should allow account holders to perform the following actions:
1.Create new meals to be added to the GUI. Each meal listed will also have the following details: identifier (menu number), size, price, and special requirements. Drinks are also orderable and are any of soft, alcoholic or hot drinks. Together these are menu items.
2.Display the details of any menu item by selecting it.
3.Update any of the details about a menu item and have these changes reflected immediately in the GUI
4.Search for menu items based on any of their attributes, with those meeting the search criteria shown in the GUI
5.Save any changes to meals and drinks to one or more files using object serialization.
Finally, the program should provide the following features:
1.Upload the details of all meals, drinks and user accounts from file when the application first loads.
2.Check that the user has saved any changes to the program before closing; and, if they have not, issue a message asking them if they want to save their work.
3.Write the following details to a log (a text file) whenever a new meal is added: The name of the person who added the meal, the meal’s details, and the date and time the meal was created.
4.Write the following details to a log (a text file) whenever a meal is changed: The name of the person who changed the meal, details of what was updated, and the date and time that the update occurred.
Your documentation report should include:
1.Any requirements analysis notes
2.A UML class diagram
Rationale
This assessment task will assess the following learning outcome/s:
be able to describe and apply the advanced techniques of object-oriented programming in mobile application development.
be able to explain and apply elements of good programming style by identifying, isolating and correcting errors in code.
be able to interpret algorithms and the program code of solved programming problems.
be able to investigate and create solutions to programming problems using the C# programming language that contain an analysis, solution design and documented code.
be able to develop GUI programs for Windows Phone that incorporate sound user interace design principles.
be able to solve complex mobile app problems and develop applications using advanced OOP techniques.
On successful completion of this assessment, you should:
be able to describe and apply the advanced techniques of object-oriented programming in mobile application development;
be able to explain and apply elements of good programming style by identifying, isolating and correcting errors in code;
be able to interpret algorithms and the program code of solved programming problems;
be able to investigate and create solutions to programming problems using the C# programming language that contain an analysis, solution design and documented code;
be able to develop GUI programs for Windows Phone that incorporate sound user interace design principles;
be able to solve complex mobile app problems and develop applications using advanced OOP techniques