Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Group Assignment: CT038-3-2-OODJ Object Oriented Development With Java

Download as pdf or txt
Download as pdf or txt
You are on page 1of 33

GROUP ASSIGNMENT

TECHNOLOGY PARK MALAYSIA

CT038-3-2-OODJ
OBJECT ORIENTED DEVELOPMENT WITH JAVA
NP2F1909IT

HAND OUT DATE: 18 November 2019

HAND IN DATE: 25 February 2020

Submitted By: Submitted To:


Aaditya Jha (NP00290) Mr. R.N. Thakur
Netra Adhikari (NP000316) Lecturer
Rakshya Nepal (NP000331)

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,

Aaditya Jha (NP000290)

Netra Adhikari (NP000316)

Rakshya Nepal (NP000331)


Executive Summary
In this modern era of the internet, almost all of us rely on web-based applications from small to
big tasks. Well, Online order management system is one of the most popular use-cases considered
by the professionals while building applications in java The main objective of online order
management system is to manage the details of order, customer, delivery, record, accounts, and
order. The project is totally built at admin, customer and product. The purpose of this project is to
build an application program to reduce the manual work for managing order, customer, product,
delivery. It tracks all the details about the product and the customer. We have demonstrated the
object oriented concepts and their responsibilities in the existing system and documented to reflect
the design of the implementation codes and the implementation details that utilises the Object-
oriented programming concepts.The project was successfully completed according to the APU
requirements. And we were able to develop the practical ability to describe, justify, and implement
an Object-oriented system.
Assumptions

 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.

This system can be accessed by two types of users:

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:

5.1.1. Technical feasibility

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.

5.1.2. Operational feasibility

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.

5.1.4. Economic feasibility

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:

 The greatest benefit of Extreme Programming is that by removing unproductive tasks, it


helps Software Development Corporation to save expenses, pressure and time. It lets
developers focus on coding.

 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.

 An extreme Programming project is simplicity. Developers who prefer using this


methodology create very simple code that can be upgraded at any time.

 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.

 Extreme programming helps to improve employee productivity and retention.

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.

 Repeat menu until the user opts to leave the program.

 The admin is in a position to add customers and products.

 The admin have access to manage the profile of the customers.

 Admin can add/delete/edit/view/search the product.

 Admin also can view and search the order placed by the customer and also can reject and
accept the order.

 The customer can manage their own profile.

 Customers also can order. This means they can add, delete, edit, view, search the product
and display their bill.

Non-functional requirements

Some of the non-functional requirements for this system are:

 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

Figure 1 Use Case Diagram

10
6.2.Class Diagram

Figure 2 Class Diagram

11
6.3. Gantt Chart

Figure 3 Gantt chart Timeline 1

Figure 4 Gantt chart Timeline 2

12
Figure 5 Gantt chart 1

Figure 6 Gantt chart 2

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

The basic requirement of Software to run this software are:

i. Operating System: Windows XP/Vista/7/8/10


ii. Application Software: NetBeans 8.2 with JAVA IDK 8 151 updates.

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.

Figure 7 Inheritance code

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 10 Implemented code

Figure 11 Interface

19
10.5. Screenshots

Figure 12 Select User Type

In this screen the type of user is chosen to Login to the system. There are two options either Admin
or Customer.

Figure 13 Admin Login

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.

Figure 15 Admin Panel

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.

Figure 17 Add Products

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.

Figure 19 Manage Customers

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.

Figure 21 Signup Form

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

Edx.org. (2020). [online] Available at: https://www.edx.org/course/software-testing-fundamentals


[Accessed 20 Jan. 2020].

Java Programming Language - GeeksforGeeks. [online] Available at:


https://www.geeksforgeeks.org/java/ [Accessed 16 Jan. 2020].

Java Tutorial Network | Java Tutorials for Beginners and Professionals. [online] Available at:
https://javatutorial.net/ [Accessed 25 Jan. 2020].

Kak, A. (2003). Programming with Objects. Hoboken: Wiley-IEEE Press [Imprint].

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.

www.javatpoint.com. (2020). Java OOPs Concepts - Javatpoint. [online] Available at:


https://www.javatpoint.com/java-oops-concepts [Accessed 13 Jan. 2020].

W3schools.com. (2020). Java OOP (Object-Oriented Programming). [online] Available at:


https://www.w3schools.com/java/java_oop.asp [Accessed 16 Jan. 2020].

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

SN Name NP Number Workload Signature


Percentage

1 Aaditya Jha NP000290 33%

2 Netra Adhikari NP000316 33%

3 Rakshya Nepal NP000331 33%

27

You might also like