Group Assignment: CT038-3-2-OODJ Object Oriented Development With Java
Group Assignment: CT038-3-2-OODJ Object Oriented Development With Java
Group Assignment: CT038-3-2-OODJ Object Oriented Development With Java
CT038-3-2-OODJ
OBJECT ORIENTED DEVELOPMENT WITH JAVA
NP2F1909IT
INSTRUCTIONS TO CANDIDATES:
1 Submit your assignment at the administrative counter
2 Students are advised to underpin their answers with the use of
references (cited using the Harvard Name System of Referencing)
3 Late submission will be awarded zero (0) unless Extenuating
Circumstances (EC) are upheld
4 Cases of plagiarism will be penalized
5 The assignment should be bound in an appropriate style (comb bound or
stapled).
6 Where the assignment should be submitted in both hardcopy and softcopy,
the softcopy of the written assignment and source code (where appropriate)
should be on a CD in an envelope / CD cover and attached to the hardcopy.
Acknowledgement
This project report is prepared for the partial fulfillment of the requirement for the degree of Bsc.IT
in accordance to the rules and regulations prescribed by Asia Pacific University (APU). We would
like to express our heartfelt gratitude towards APU for providing us an opportunity to apply our
theoretical knowledge into the practical world to enhance our knowledge.
The final outcome of this assignment would not be possible without the guidance and assistance
from few peoples especially our lecturer Mr. R.N. Thakur. We would like to express our sincere
gratitude for providing their invaluable guidance, comments and suggestions throughout the
project. We are indebted to our lecturer and friends for being a constant source of encouragement,
inspiration and support.
Sincerely,
The username and password for the admin are "admin" and "admin123" respectively.
Customers need to feel up a signup form to request for an account.
The signup form is seen and account is registered by admin.
Table of Contents
1. Introduction ........................................................................................................................... 1
2. Existing System Overview..................................................................................................... 3
3. Objective ................................................................................................................................. 4
4. Scope ....................................................................................................................................... 5
5. Research methodology .......................................................................................................... 6
5.1. Feasibility analysis: ........................................................................................................ 6
5.1.1. Technical feasibility ................................................................................................ 6
5.1.2. Operational feasibility ............................................................................................ 6
5.1.3. Schedule feasibility.................................................................................................. 7
5.1.4. Economic feasibility ................................................................................................ 7
5.2. Software Development Methodology ............................................................................ 8
5.3. Functional and non-functional specification................................................................ 9
6. Software Development ........................................................................................................ 10
6.1. Use Case Diagram ........................................................................................................ 10
6.2. Class Diagram............................................................................................................... 11
7. Hardware and Software Requirement .............................................................................. 14
7.1. Hardware Requirement ............................................................................................... 14
7.2. Software Requirement ................................................................................................. 14
8. Backup and Recovery .......................................................................................................... 15
9. Testing Strategies................................................................................................................. 16
9.1. Unit Testing ................................................................................................................... 16
9.2. System Testing .............................................................................................................. 16
9.3. Performance Testing .................................................................................................... 16
10. Implementation of Code .................................................................................................. 17
10.1. Inheritance ................................................................................................................ 17
10.2. Polymorphism ........................................................................................................... 17
10.3. Encapsulation ............................................................................................................ 18
10.4. Abstraction ................................................................................................................ 19
10.5. Screenshots ................................................................................................................ 20
11. Conclusion ........................................................................................................................ 25
Reference ..................................................................................................................................... 26
List of Figures
Figure 1 Use Case Diagram ...................................................................................................................... 10
Figure 2 Class Diagram ............................................................................................................................ 11
Figure 3 Gantt chart Timeline 1 ................................................................................................................ 12
Figure 4 Gantt chart Timeline 2 ................................................................................................................ 12
Figure 5 Gantt chart 1 ............................................................................................................................... 13
Figure 6 Gantt chart 2 ............................................................................................................................... 13
Figure 7 Inheritance code.......................................................................................................................... 17
Figure 8 Polymorphism ............................................................................................................................ 18
Figure 9 Encapsulation code ..................................................................................................................... 19
Figure 10 Implemented code..................................................................................................................... 19
Figure 11 Interface .................................................................................................................................... 19
Figure 12 Select User Type ....................................................................................................................... 20
Figure 13 Admin Login ............................................................................................................................ 20
Figure 14 Customer Login ........................................................................................................................ 21
Figure 15 Admin Panel ............................................................................................................................. 21
Figure 16 Customer's Dashboard .............................................................................................................. 22
Figure 17 Add Products ............................................................................................................................ 22
Figure 18 Add Customer ........................................................................................................................... 23
Figure 19 Manage Customers ................................................................................................................... 23
Figure 20 Manage Products ...................................................................................................................... 24
Figure 21 Signup Form ............................................................................................................................. 24
1. Introduction
This report describes about overall process in building an Order Management System for a
retailing shop. We have been assigned to build this system by 'Grocery to Home'. It is a retailing
shop where customer can purchase different kinds of grocery products and many more. An Order
Management System manages the real world entities like customer, order and products for the
owner of the shop. It makes the overall transaction of products easier and efficient. Easier in a
sense that everything from registering a product to processing an order is done digitally so the
manual task is reduced. Customers can significantly choose products and place orders from
anywhere using Web access. This will reduce the amount of paper printing and recording manual
entries which saves lot of time.
i. Admin
Admin are the super user of this system. Admin is provided with a unique user ID and
a password for access. They have access to each and every part of the system. They are
responsible for registering a new customer to the system. Admin can add products
modify them and process the orders made by customers. Admin can add, view, search,
modify and delete the products. Admin can also view or search the order and also the
can accept and reject the order.
ii. Customers
Customers have access to the system for making orders. Admin assigns every customer
with a user ID and password. Every customer has a Customer Name, Address and
contact number to be recorded on the system. Customers can modify their profiles. The
have access to view and search the products. Customers can make orders, delete orders,
view orders, modify orders and search orders.
1
The other entities managed by this system are:
i. Order
An order is made by the customer. Every order is assigned with a unique order ID and
customer Id of the customer who makes the order. Also the order contains number of
products ordered by customer. No duplicate orders are allowed by the system. Orders
can be made for only available products on the system.
ii. Product
A product is added by the admin in the system. Each product has a unique Product
Identification number. Product Name is also assigned to every product with its rate.
Also packaging rate is applied to every product. Products have two categories i.e.
Fragile and non-fragile. Packaging rate for non-fragile product are cheaper than the
fragile.
iii. Order Item
Every order item is an entity of a product. An order item has order ID and Product ID
of the products ordered.
2
2. Existing System Overview
Studying about the problems and condition of existing system is the most essential task for
developers because it helps in defining the need and requirements of the system. If we are
aware of the problems of existing system it makes a clear vision and understanding about how
the system should be built. We will be aware of the functionalities to be added on the system.
In this assignment, we have given a scenario and according to it, the 'Grocery to Home' is a
retailing shop where the owner manages the orders of customer manually. Customers should
also physically visit the shop for purchasing any product. The orders made by customers are
registered by the owner manually and the reports are also created manually. There is no
digitalization in the transactional processes. Management of the records manually is a
complicated task and also in many cases it is not accurate. It also consumes a lot of time to
manage all the records manually.
3
3. Objective
To digitalize the traditional way of purchasing goods from the retailing shop 'Grocery
to Home'.
To enable customers to order goods remotely from home or any other location.
To keep record of orders, customers and products of the shop and manage it to generate
day-to-day reports.
To reduce the time that consumes in overall ordering process
To make the ordering and delivery processes easier and accurate and reducing the
redundancy of data.
4
4. Scope
i. This online ordering system can be used by any retailing shops for managing the
overall ordering and transactional processes.
ii. This system reduces the time consumption in ordering the products and managing or
generating reports of the records.
iii. It helps in developing a healthy relationship between owner and customer.
5
5. Research methodology
5.1.Feasibility analysis:
Feasibility means a way of determining whether or not the project has a reasonable chance of
success. The objective of this study is to ensure that the project is legally feasible and economically
acceptable. A feasibility study also helps to evaluate the strengths and weaknesses of the proposed
project and provides the guidance for the actions that will enhance the project and produce the
desired outcomes. The feasibility study generally depends on the areas in which the projects
analyzed projects are implemented. Some of them are as follows:
There are certain technical issues which have to be fulfilled for the project to be technically
feasible. The technological review in the assigned project means that whether the current systems
can be updated to use the new technology or not, and that the existing system can be modified to
use or not. We don’t require any other additional hardware and software because the software is
to be developed in java platform. The project is to just develop the application that stimulates the
simple order management system and we need the internet access to operate the system.
The operational feasibility refers to the system that the user accepts and uses it to support the
business objectives. The system is simple and user-friendly but has the attractive interface. No
specific training is required for the users to operate the system. The technical presentation include
the subject matter like whether the system can provide the accurate information about the
customers and products details and whether the system can be configured in such a way that it
always offers the right information on time and at the right place.
6
5.1.3. Schedule feasibility
This is the method used to determine the degree to which future timeframes and completion dates
require organizational deadlines and restrictions to influence the adjustments for all major project
activities. To make the success system, the schedule feasibility must be acquired because the
project will fail if it is not accomplished on time. And the proposed system has exceeded all the
entire schedules.
It defines the cost benefit analysis which involves the process of identifying the economic benefits
and the expenses associated with project development. The order management system is
economically feasible as it eliminates the paper work completely. The system will be operated in
the existing hardware and software infrastructure, so there are not any additional requirements of
hardware and software. This system is also time-effective as both the admin and the customer do
not have to struggle to add details to the customer and to place orders and to find the right product
information. And since time is money, the proposed system is highly economically feasible.
7
5.2.Software Development Methodology
The online order management system is developed based on Extreme Programming (XP) for
software development. XP is applied to both hardware and software development. We have
chosen XP because it is based on the agile-principles, simplicity, communication and the opinion.
XP is also known as project framework because it can be adapted according to the specific
requirements and needs of the customers, employee/staff, projects, etc. In addition, this system is
less complex which does not require a high degree of throughput for which we used XP techniques
within a formal software approach during the design and development phases. XP is value based
and follows the five basic values for the development of software which are: simplicity, courage,
respect, feedback and communication. XP follows all the agile standards including active
participation of consumers in the software development process, team coordination and iterative
development cycles. This works by bringing together the entire team in the midst of specific
procedures, with enough input to encourage the team to see where they are and to adapt the
practices to their unique situation. In comparison with other methodologies, price and time
management are also feasible in this methodology.
Advantages of XP:
One of Extreme Programming's most important advantages is that it reduces the risks
associated with programming and project failure. XP ensures the client is getting exactly
what it wants.
XP means providing regular feedback, displaying the program early on and frequently,
listening carefully and making the required transform. Sprints assist the team make the
right move.
8
5.3.Functional and non-functional specification
Functional requirement
Functional requirements mean the basic requirements that the system must fulfill. Some of the
functional requirements for the system are listed below:
The system have two types of access rights, such as Admin and Customers
The system developed is menu-driven with options to add multiple items to customers,
products and orders.
Admin also can view and search the order placed by the customer and also can reject and
accept the order.
Customers also can order. This means they can add, delete, edit, view, search the product
and display their bill.
Non-functional requirements
All frames have their own exit button and menu tab.
Customers can inform for the late deliveries.
This system can handle a huge amount of traffic at a time.
This system has an excellent privacy setting. No any user except the admin can view the
details of other users.
This system is menu driven and properly documented which makes user easy to use.
9
6. Software Development
6.1. Use Case Diagram
10
6.2.Class Diagram
11
6.3. Gantt Chart
12
Figure 5 Gantt chart 1
13
7. Hardware and Software Requirement
7.1.Hardware Requirement
The basic hardware requirements to run this program smoothly are listed below:
i. Minimum Ram: 1 GB
ii. Minimum available Space: 20 GB or higher
iii. Processor: intel core i3, 1 GHz
7.2.Software Requirement
14
8. Backup and Recovery
It is very important to make backup and recovery plans for a software so that under any error or
disaster situation any data won't get lost. Also, with an effective backup and recovery plan the data
won't get lost even under any critical circumstances and we can recover our data and run the
program smoothly. For this software we have used text (.txt) files for backup. We store the data
generated from this software in a text file. There different text files used for different data
categories like User Detail file, Product Detail file, Order Detail file, etc. Here java file handling
concepts are being used to handle the crude operations of the system i.e. Input and Output to the
file.
15
9. Testing Strategies
Many widely used research methods and methodologies are defined as part of the test policy of
the organization. The test manager should be able to agree on an effective evaluation approach for
the project based on the project criteria as well as the needs of the organizations. The following
testing strategies are well known and the same approach is followed during the testing of the
project.
9.1.Unit Testing
Unit Testing is also referred to as Program Testing. This testing is generally used to carry out unit
tests method to save time and cost. It also instances a small portion of our code and independently
verifies its actions from other parts of the project. The unit testing is implemented in very module
of online order management system. We checked every system module to verify whether the
specific module works well or not.
9.2.System Testing
This is the form of testing which validates the whole, fully integrated software product. The
purpose of this test is to assess compliance of the system with the stated requirements. Another
objective is to test whether it meets quality standard or not. This system is an autonomous tester
that does not engage in application development. Through this system check, we verify that the
program meets the customer's functional, business and technological specifications. Our proposed
system also runs in any environment without any bugs and meets all the quality features.
9.3.Performance Testing
This checks system balance and focuses on checking load handling. It helps to know the system's
capacity, whether it crashes or not because of user excess or data traffic. It occurs throughout all
the steps in the testing process. The efficiency of an individual module is even measured at the
unit level. This software generates customer and product details and produces the report without
loss of time and cost. So we came to the conclusion that the system's overall performance is very
good.
16
10. Implementation of Code
10.1. Inheritance
Inheritance can be defined as the mechanism by which the properties of another object are inherited
by one object. This is significant in that it supports the principle of hierarchical classification. And
some information is also controllable through by hierarchical classifications. Taking a case of a
golden retriever which falls under classification of dog, which go round as a Part of mammal
group, which lies under the Species of a larger class. Without Hierarchical Usage, Every object
must need to clearly identify all of its characteristics. Though, using an inheritance, an object only
needs to describe those characters that make it unique inside its class. Its general attributes can be
acquired from its relationship to blood. It is therefore the principle of inheritance that permits one
object to be a specific instance of a more general case.
10.2. Polymorphism
Polymorphism is derived from Greek meaning “many forms. It's the feature that allows you to use
one interface for a general class of actions. Definite actions are resolute by the precise nature of
the circumstances. In general term, the concept of polymorphism is frequently illustrated by the
expression, "one interface, and multiple methods". This means that a generic interface to a group
of related activities can be designed. This helps to reduce confusion by enabling the same interface
to be used to identify a general class of action. It is the compiler's task to select a particular action
as applicable to each situation. Often, the programmer doesn't require creating this list manually.
All you have to do is recall and use the general code.
17
Figure 8 Polymorphism
10.3. Encapsulation
Encapsulation is a process which links the code and the data which it influence, and maintains
together the external interface and the misuse secure. In other words, encapsulation is a protective
wrapper that prevents arbitrary access to code and data through new code that is defined over the
outer surface of the wrap. Access to the code and data within the wrapper is tightly controlled via
a definite interface E.g.:- Consider the automatic transmission on an automobile to connect the
encapsulation with the real world. It encapsulates hundreds of pieces of engine information such
as how much you spin, the pitch of the surface on which you are and the direction of the shift lever.
The foundation of encapsulation lies in the java class. The class defines the structure and
behaviour, i.e. data and code to be shared by a class set, and each object of a class contains the
structure and behavior specified in the class.
18
Figure 9 Encapsulation code
10.4. Abstraction
It is the process giving access to only required properties of an object and ignoring the unwanted
details. Simply it can be said as hiding of data members or properties from other classes and giving
access to only required ones. For example, we see a car as a complete car not by its individual
component.
Figure 11 Interface
19
10.5. Screenshots
In this screen the type of user is chosen to Login to the system. There are two options either Admin
or Customer.
This is the login screen for Admin. It prompts username and password.
20
Figure 14 Customer Login
This is the login screen for Customer. Here Username and password must be entered to get into
the system. If the user has not been registered in the system they can request for an account to the
login. The button for Request Login redirects to the Signup Form.
Here Admin can perform its all tasks like adding a customer or product and managing them. Also,
admin can view the order list by clicking the respective button .
21
Figure 16 Customer's Dashboard
This screen is the customer's dashboard. Here, customer can select the category of the product they
want to buy. Also they can check the status to their previous orders. They can also manage their
profile.
This screen is for admin to add products. This screen comes after clicking the "Add Products"
button on the Admin Panel.
22
Figure 18 Add Customer
In this screen the Admin can add customers. This screen comes after clicking the Add customer
button on the admin Panel.
This screen is for managing the customers i.e. either deleting or editing the customers profile in
the system.
23
Figure 20 Manage Products
In this screen admin can manage a product by either deleting or editing the details of the product.
In this screen a visitor requests to the admin to register their account by filing required details in
the form.
24
11. Conclusion
The online order management system is developed using java fully and meets the requirement of
the system for which it has been developed. We accomplished this project by compiling a list of
common Java programming errors made by introductory students, developing and coding a
program that recognizes those errors and returns error messages, and testing our system on the
university test suite. This assignment was really helpful for understanding the concept of Object
Oriented Development with Java for us. This project teaches us to demonstrate object oriented
concepts and their responsibilities in the existing system as well. The goal of this project was
accomplished, which was to establish a functional capacity to define, explain and enforce an
object-oriented framework.
Overall, we did our best and finish our project according to the university’s requirements. We
have also been able to develop the realistic ability to define, explain and implement an Object-
oriented method.
25
Reference
Java Tutorial Network | Java Tutorials for Beginners and Professionals. [online] Available at:
https://javatutorial.net/ [Accessed 25 Jan. 2020].
Poo, D., Ashok, S. and Kiong, D. (2008). Object-oriented programming and Java. London:
Springer.
Techopedia.com. (2020). What is Backup and Recovery? - Definition from Techopedia. [online]
Available at: https://www.techopedia.com/definition/24058/backup-and-recovery [Accessed 20
Jan. 2020].
Miller, R. and Kasparian, R. (2006). Java for artists. Falls Church, Va.: Pulp Free Press.
Wampler, B. (2002). The essence of object-oriented programming with Java and UML. Boston,
MA: Addison-Wesley.
Holmes, B. and Joyce, D. (2001). Object-oriented programming with Java, second edition.
Sudbury, Mass.: Jones and Bartlett.
Johari, A. (2020). Object Oriented Programming in Java | Java OOPs Concepts | Edureka.
[online] Edureka. Available at: https://www.edureka.co/blog/object-oriented-programming/
[Accessed 25 Feb. 2020]
26
Workload Matrix
27