Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of UK Essays.
Food Ordering Stand for Kurdish Best Kebab House
TABLE OF CONTENTS
Reason For Application 5
Application Requirements 5
Subsection 1.1.c #
waterfall methodology #
Section 1.3 #
Reason For Application 5
Application Requirements 5
Subsection 1.1.c #
waterfall methodology #
Section 1.3 #
The project aims to develop a Food Ordering program for Kurdish Best Kebab House which is a restaurant/takeaway located in Edinburgh the heart of Scotland. The Program has been requested by the boss/manager. The Food ordering application will be designed to allow its walk-in customers to place orders inside the business with just a few clicks, due to the business being very successful and busy it will be a great idea for reducing the cost for labor/less staff required.
The application will be displayed on a small screen for the customers, the application will provide the category, images, price, quantity, cart and name of foods/drinks. The manager will have an administration view of the application, which will allow him to add, delete or update the food orders/information. The application will only give access to the administrator with the correct username and password which will be pre-set.
The employees and customers view/make the order through the ordering application which will be displayed on a screen, the user interface will be plain (user friendly) and easy to use without any help feature added for better efficiency to the business.
Running a business is very difficult and requires a lot of motivation and high-quality service to keep the customers happy. Due to the rapid growth of food businesses in recent years, there is now a high competition between businesses, which means customers only choose the best. Many businesses in Edinburgh manage customer orders manually by employing certain staff for taking orders on paper and giving the order paper to the chefs, this can lead to errors by misunderstanding the customer properly.
In today’s industry, the rates for labor is increasing which makes it very difficult to find staff when required. Also, the managers don’t have to manually go through all the sales in each day or week by calculating receipts, it will all be designed in the application automatically.
This application will solve all these issues by;
- Customers not having to give their orders to staff therefor the staff can get on with other duties
- It will not require staff behind the counter
- Avoids cost for labor by not having to employ staff for taking orders
- Mistakes are unlikely as it’s a programmed machine
- Avoids queues at the counter as there will be multiple screens for ordering
- The daily/weekly sales of the business will automatically be calculated therefore saves time going through receipts which can take several hours
The main advantage of this application is that it helps the business function faster and accurately, therefore it makes things easier for the customers, employees and the manager in the business as the process is automated hence employees can work at their best. The programming language which will be used to build the application is Java.
The application menu will be up to date as the manager has access to the administration which they can choose to add/update foods, it will not allow access to any employees.
Customers can choose more than one food/drink and place it in their cart, once customers have chosen their order, they can view it before proceeding to payment where the total price is calculated and includes a 5% charge for orders under £5. After the checkout is completed and payment is collected, the order is sent to the kitchen on a large screen which will allow the chefs to read the orders and begin making the food immediately without any confusions or delays. Each processed order by customers will be saved in a database which can be viewed by the manager.
Reason for application
The reason the developer focused on this application came from my dad, he’s been involved in the food industry at a very young age and made me start alongside him. One of the main reasons for developing this application is because the business was getting busy and there were queues leading outside the entrance, personally I hate long waits for my food, so rather than orders manually done on paper by staff, this application would be a great idea for my boss which solves this problem.
The application will be fit for purpose (Validating data) by;
- Making sure the foods, cart, payments are all validated and returns exceptions for invalid values
- Applies 5% charge for orders under £5
- Cannot leave the cart empty and proceed to checkout
- All testing strategies done/test all functionalities e.g. right output calculations
- Validate customer input
- User friendly interface
- Allows the manger to see all the orders placed at the end of each day or week
Problem with the existing process;
The existing way of storing customer details manually requires a lot of work as orders can be easily lost and daily sales will not be added up properly. A lot of takeaways/restaurants in Edinburgh hold their customer details in a manual way, which is a drawback and mistakes can happen because there’s a huge number of customer orders to take. For the managers point of view, it is very hard/time consuming to view orders and count the till at the end of each day. This application will maintain all customer orders and transaction daily.
There is a lot of food complaints from customers because the food was not made to a high standard. This application will solve a very big problem which allows the manager to keep an eye on the kitchen rather than having to worry about taking orders manually as the chefs can easily become tired and lose concentration. The main reason customers visit the takeaway is for good quality food, giving bad food to customers will have a big impact on the business’s reputation which means good management is a vital role for the manager.
Future of this application: this application can be made available for storing employee details in the future, it can also be used to integrate many screens in the business. As the developer, if this application is used by the businesses, there will be many requests to enhance the application by adding new features to it. This application will be evolving constantly and many other businesses in Edinburgh will start bringing this system into their own business environment. As tourist visits are increasing the application can include food translators, so foreign customers can order foods in their own language.
- Data fields required: data fields by customers cannot be left empty, leaving fields black will not allow the customer to proceed onto payment. The application will be designed be using the try/catch/throws exceptions to the customer for leaving fields black, this will be neatly structured.
- Shopping cart validation: customer will not be able to make an order with an empty cart. The application will throw exception to the customer; “Cannot Proceed with empty cart”
- Administrator username: the administrator will have a pre-set password which the developer will provide to the manager, entering the wrong username will throw an exception to the administrator.
- Administrator password: the password will also be pre-set and provided to the manager, entering the wrong password will throw an exception to the manager
Future adaptation is the process of coming back (Iteration) to the application to make modifications required by the manager in the future, e.g. the manager may request to enhance the application by allowing customers to place orders and collect their order at times which suit them best, requesting to change their username/password which will be done by the developer at an extra cost.
Customer ordering process: Manager Login process:
When gathering the requirements of the application, we will use the MoSCoW analysis which is a great technique used for the developer to decide what we will do and won’t do in the application.
Must: we must include them in the application, if we don’t do them the application will fail, they are integral to what the application is about.
Should: if we do them, we can get a big benefit for a relatively modest incremental cost and effort.
Could: good reasons to do them if appropriate resources are available but we don’t have need to.
Wont: would do it if we could but it exceeds the timescale, may be implemented later.
The functionalities of the application include;
- Customer enters menu
- Customer selects food and drinks from menu
- Customer receives order confirmation
- Manager can access administration
- Customer can remove foods and drinks from order
- Customer proceeds to payment
- Manager can view daily or weekly sales
- Customer reviews order before paying
- If order is under £5 apply 5% charge
Won’t have (maybe included in future):
- Manager(administrator) update/adds food
- Manager(administrator) update prices of foods
Once the functionality of the application is complete, the developer will configure the application before giving it out to the business and allowing customers to use it, it is very important all functionalities are fully configured to avoid any loss to the business. Also updating the food menu properly means the developer doesn’t have to go back and correct errors they made.
windows, OS X, Linux
Microsoft MySQL server 2012
Java Runtime Environment
Java SE Development Kit (JDK)
800MHz Intel Pentium
750MB available space/ CD-ROM
USB for backup copy
15” color screen
The application will be developed using NetBeans IDE, IDE stands for integrated development environment which can be used to develop many languages such as java, PHP, C++ or many other programs related to java. Java is very easy to download from oracle by accepting license agreement and downloading windows .exe files. JDK must be installed to start using NetBeans IDE. NetBeans is a very easy to use building tool for java which includes compilers for source code, easy GUI builder and much more.
A matric is a measurement of software characteristics e.g. time it takes to execute, quality of the software, which are countable. Software metrices are important for measuring the performance of the software, planning, measuring productivity, debugging, estimating cost. They are simple, consistent and unambiguous, independent of programming language, easily adaptable and cost effective to obtain. Every matric has a base standard of who saw an ad and how many times they seen that ad, this measures the affect/reach of impressions.
“You can’t control what you can’t measure” – Tom DeMarco
During the testing phase of the waterfall methodology we generate: testing plans, execute test cases, report test outputs, cases passed and failed.
Testing cases metrics:
Waterfall methodology will be used when developing the application, following this methodology properly ensures the application meets the requirements and the right application is delivered. The method is done in a sequential manner one after another therefore the phases do not overlap, each phase has specific deliverables. This method is great for developing small application as its easy to understand and manage due to the rigidity model.
There are six important stages to this methodology:
The Requirements Analysis:
The first stage is the requirements analysis which involves gathering requirements from the customer and analyzing them. The requirements document is created which specifies the functional and non-functional requirements of the application, this document is reviewed and must be signed before the next step can begin.
In this phase the user interface of the application is designed, there are two designs physical and logical. The physical design refers to hardware components such as storage. The logical design is an abstract view of the application showing the data flow (Inputs and outputs). Also, blueprints will be designed for the application to better understand the layouts. Once the design phase is completed the implementation can begin.
This stage involves building the design into the actual application, coding must reflect exactly what’s stated in the requirements documents. Developer will start by coding modules which will then be integrated into complete software. At the end of this phase the developer will review and sign of the product.
The testing team will perform testing on the developed application to ensure that it meets the requirements as stated in the software specification document. The verification and validation test done at this stage will ensure the quality of the product. if the software does not meet the requirements in the requirements document it is sent back to the programmers for further implementations. Once the testing is complete, they can sign of the product. It doesn’t matter who is doing the testing, its more important on how it is been done.
The types of testing include:
Black Box testing: These can be functional or non-functional tests without looking at the internal structure. Black box testing is performed by the end users since it is based on external exceptions. There are three type of testing strategies which are integration, system and acceptance testing, this involves testing the level of the software to make sure it’s acceptable. Black box testing chooses inputs from the requirements specification or test cases without looking at the actual coding. The downsides of this type of testing include:
- Only some test scenarios are performed which means it isn’t completely covered (has limited coverage).
- Also, the tester doesn’t have access to the code which means its difficult to design test cases unless clear specification is provided.
- Insufficient and difficult as the tester is blind to the inner workings of the software.
White Box testing: This testing method is a better type as the internal structure of the source code is known to the tester. The three testing strategies are unit, integrated and system testing but mainly it is focused on unit testing, this type is suitable for testing algorithms. It’s a great way of choosing inputs from the requirements, executing the test cases to see what the expected output is and what isn’t. It looks through the codes to find any gaps to analyze that’s not found by the test cases.
Code coverage analysis is automated (refers to metrics), this involves writing the test cases, creating a condition for the error and allowing the software to tell you the percentage of code that is executed. The downsides of this type of testing include:
- Errors being missed because of codes being left out, white box doesn’t really help with finding missing features because it is focused on finding errors on existing code.
- This testing is very difficult to find all the errors because of how many paths that can be looked into.
- It can be a problem when looking at errors in large software’s.
Acceptance testing proceeds until the developer and client agree that the application is acceptable and meets the requirements
Beta Testing involves many users that agree to use it, they test the product when using it and report problems which were not seen by the developers
Unit testing involves testing each module independently, it is used in white box testing and focuses on units of the source code as its implemented
Validation testing: this test ensures that all functions of the software is tested and correct outputs are thrown.
System testing refers to functionalities to ensure the system meets the requirements of the client. The integrated and complete software is tested.
Team of experts will deploy the product into their world without any hassles.
Maintenance is the phase in which initial issues are resolves. Additional testing carried out to verify acceptable deployment. In this phase software is regularly updated and issues are passed by a team assigned to perform maintenance activities, if any requirements change then the project moves back to the requirements stage and again must produce the requirements specification document.
This manual is provided to give assistance to people using the application from a technical point of view.
The UML activity diagrams below describes how the functional requirements of the application flows as a customer’s point of view:
Customer places order through application; this function allows customers to select food and add it to their shopping card
administration access; allows the manager to update the menu and view the daily/weekly sales on a database.
Order received; the final part after the order has been confirmed is to display it in the kitchen on a screen.
Programming engineers should oblige themselves in the software development life cycle. The analysis, requirement specification, design, implementation, testing and maintenance of programs as they should respect their profession. Software engineers have 8 principles:
1. Public – Software engineers will act reliably towards the public interest. This refers to taking full responsibility of your own work.
2. Client and employer – Software engineers will act in a way that is to the greatest advantage of their end users and employer is reliable with the public interest. This refers to using the client or employer’s property as authorized to do so.
3. Product – Software engineers will guarantee that their items and related changes meet the most astounding profession as possible. This refers to ensuring work completed meets the scope and objectives.
4. JUDGMENT – Software engineers will keep up integrity and freedom in their expert judgment. Not take part in improper financial practices such as bribery
5. Management – Software designing employers and developers will buy in to and elevate an ethical way when dealing with the management of software improvement and maintainability. This refers to good management for projects on which you work on e.g. reducing risks.
6. Profession – Software engineers should act with integrity and not ruin the name of the company to the public interest. This refers to helping the company by acting ethically to improve the reputation of the institution.
7. Colleagues – Software engineers should be reasonable and help of their fellow employees. This refers to helping employees follow the code of conduct of the company and give full credit to the work of others.
8. Self – Software engineers should be involved and show interest in continuous learning as a profession. They should respect moral views when practicing as a profession. This refers to the improvement of their knowledge as a profession when working on projects. Also, not influencing others to take part in actions which will breach the code of conduct of the company/organization.
Cite This Work
To export a reference to this article please select a referencing stye below:
Related ServicesView all
DMCA / Removal Request
If you are the original writer of this essay and no longer wish to have the essay published on the UK Essays website then please: