You are on page 1of 27

Car Service

1. INTRODUCTION
This system “car services” allows providing vehicle for service. If customer got any problem
with his vehicle can request for providing services.Customers can view service details,book
for service,view service status,Post Feedback.Admin can manage services,service charges
and update service status and customer queries.Proposed application uses indexing for
inserting customer details ,service details.Indexing is a data structure technique which allows
you to quickly retrieve records from a database file. An Index is a small table having only
two columns. The first column comprises a copy of the primary or candidate key of a table.
Its second column contains a set of pointers for holding the address of the disk block where
that specific key value stored.

Objective & Aim:


Main objective of this application is used to build single platform for managing car service
system using indexing.

Existing System
Existing system is manual where customer should go and check for available
services and book for services.Need Manual effort not so user friendly.
Proposed System
Proposed application developed using indexing to minimize the disk usage and fasten the
data access.Proposed application provides single platform for customer and admin to manage
car services.

2. LITRATURE SURVEY
Indexing

https://www.geeksforgeeks.org/indexing-in-databases-set-1/

https://www.guru99.com/indexing-in-database.html
Introduction
When we come to technology we are using java JDK 1.6 version , Java is
a programming language originally developed by James Gosling at Sun
Microsystems (which is now a subsidiary of Oracle Corporation) and released
in 1995 as a core component of Sun Microsystems' Java platform. The language
derives much of its syntax from C and C++ but has a simpler object model and
fewer low-level facilities. Java applications are typically compiled to byte code
(class file) that can run on any Java Virtual Machine (JVM) regardless of
computer architecture. Java is a general-purpose, concurrent, class-based,
object-oriented language that is specifically designed to have as few
implementation dependencies as possible. It is intended to let application
developers "write once, run anywhere". Java is currently one of the most
popular programming languages in use, and is widely used from application
software to web applications. Java is a platform independent language.JDK is
the Java Development Kit which includes the Java Runtime Environment (JRE).
JDK is for programmers to write Java programs and applets. Applets are java
executable code that runs in a web browser for example a lot of broadband
speed tests use a java applet that loads in the web browser.JRE must be installed
on the client PC to support the running of the applet. Java is used a lot on the
web and also in mobile phones and consumer devices because java is versatile
and platform independent
One characteristic of Java is portability, which means that computer
programs written in the Java language must run similarly on any supported
hardware/operating-system platform. This is achieved by compiling the Java
language code to an intermediate representation called Java byte code, instead
of directly to platform-specific machine code. Java byte code instructions are
analogous to machine code, but are intended to be interpreted by a virtual
machine (VM) written specifically for the host hardware. End-users commonly
use a Java Runtime Environment (JRE) installed on their own machine for
standalone Java applications, or in a Web browser for Java applets.
Standardized libraries provide a generic way to access host-specific
features such as graphics, threading, and networking.
A major benefit of using byte code is porting. However, the overhead of
interpretation means that interpreted programs almost always run more slowly
than programs compiled to native executables would. Just-in-Time compilers
were introduced from an early stage that compiles byte codes to machine code
during runtime.

Java Implementations

Sun Microsystems officially licenses the Java Standard Edition platform


for Linux, Mac OS X, and Solaris. Although in the past Sun has licensed Java to
Microsoft, the license has expired and has not been renewed. Through a
network of third-party vendors and licensees, alternative Java environments are
available for these and other platforms.

Sun's trademark license for usage of the Java brand insists that all
implementations be "compatible". This resulted in a legal dispute with
Microsoft after Sun claimed that the Microsoft implementation did not support
RMI or JNI and had added platform-specific features of their own. Sun sued in
1997 and in 2001 won a settlement of US$20 million, as well as a court order
enforcing the terms of the license from Sun. As a result, Microsoft no longer
ships Java with Windows, and in recent versions of Windows, Internet Explorer
cannot support Java applets without a third-party plug-in. Sun, and others, have
made available free Java run-time systems for those and other versions of
Windows.
Platform-independent Java is essential to the Java EE strategy, and an even
more rigorous validation is required to certify an implementation. This
environment enables portable server-side applications, such as Web services,
Java Servlets, and Enterprise JavaBeans, as well as with embedded systems
based on OSGi, using Embedded Java environments. Through the new
GlassFish project, Sun is working to create a fully functional, unified open
source implementation of the Java EE technologies. Sun also distributes a
superset of the JRE called the Java Development Kit (commonly known as the
JDK), which includes development tools such as the Java compiler, Javadoc,
Jar, and debugger.

Java Performance

Programs written in Java have a reputation for being slower and requiring
more memory than those written in C. However, Java programs' execution
speed improved significantly with the introduction of Just-in-time compilation
in 1997/1998 for Java 1.1 the addition of language features supporting better
code analysis (such as inner classes, String Buffer class, optional assertions,
etc.), and optimizations in the Java Virtual Machine itself, such as Hotspot
becoming the default for Sun's JVM in 2000. Currently, Java code has
approximately half the performance of C code.Platforms offer direct hardware
support for Java; there are microcontrollers that can run java in hardware
instead of a software JVM, and ARM based processors can have hardware
support for executing Java byte code through its Jazelle option.

Automatic Memory Management

Java uses an automatic garbage collector to manage memory in the object


lifecycle. The programmer determines when objects are created, and the Java
runtime is responsible for recovering the memory once objects are no longer in
use. Once no references to an object remain, the unreachable memory becomes
eligible to be freed automatically by the garbage collector. Something similar to
a memory leak may still occur if a programmer's code holds a reference to an
object that is no longer needed, typically when objects that are no longer needed
are stored in containers that are still in use. If methods for a nonexistent object
are called, a "null pointer exception" is thrown. One of the ideas behind Java's
automatic memory management model is that programmers can be spared the
burden of having to perform manual memory management. In some languages,
memory for the creation of objects is implicitly allocated on the stack, or
explicitly allocated and deallocated from the heap. In the latter case the
responsibility of managing memory resides with the programmer. If the
program does not deallocate an object, a memory leak occurs. If the program
attempts to access or deallocate memory that has already been deallocated, the
result is undefined and difficult to predict, and the program is likely to become
unstable and/or crash. This can be partially remedied by the use of smart
pointers, but these add overhead and complexity. Note that garbage collection
does not prevent "logical" memory leaks, i.e. those where the memory is still
referenced but never used.

Garbage collection may happen at any time. Ideally, it will occur when a
program is idle. It is guaranteed to be triggered if there is insufficient free
memory on the heap to allocate a new object; this can cause a program to stall
momentarily. Explicit memory management is not possible in Java.

Java does not support C/C++ style pointer arithmetic, where object addresses
and unsigned integers (usually long integers) can be used interchangeably. This
allows the garbage collector to relocate referenced objects and ensures type
safety and security.

As in C++ and some other object-oriented languages, variables of Java's


primitive data types are not objects. Values of primitive types are either stored
directly in fields (for objects) or on the stack (for methods) rather than on the
heap, as commonly true for objects (but see Escape analysis). This was a
conscious decision by Java's designers for performance reasons. Because of this,
Java was not considered to be a pure object-oriented programming language.
However, as of Java 5.0, auto boxing enables programmers to proceed as if
primitive types were instances of their wrapper class.

Java contains multiple types of garbage collectors. By default, Hotspot uses the
Concurrent Mark Sweep collector, also known as the CMS Garbage Collector.
However, there are also several other garbage collectors that can be used to
manage the Heap. For 90% of applications in Java, the CMS Garbage Collector
is good enough.

3. SYSTEM REQUIREMENTS SPECIFICATIONS


3.1 Requirements
3.1.1 Functional requirements
Customer
 Register
 Login
 View Services
 Request Service
 View Request Status
 View Bill
 Logout
Admin:
 Login
 Add Services
 View Service Request
 Approve or reject service request
 Generate Bill
 Logout

3.1.2 Non functional requirements


Non-functional requirement is a requirement that specifies criteria that
can be used to judge the operation of a system, rather than specific behaviors.
Functional requirements define what a system is supposed to do whereas non-
functional requirements define how a system is supposed to be. The non-
functional requirements are the constraints or the environment in which the
software is developed.

Reliability- is the ability of a person or system to perform and maintain


its functions in routine circumstances, as well as hostile or unexpected
circumstances. The application manages to perform all the functionalities well.

Security- regarding security or privacy issues surrounding use of the


product or protection of the data used or created by the product. Define any user
identity authentication requirements.

Usability- The word "usability" also refers to methods for improving


ease-of-use during the design process.

Interoperability- is a property referring to the ability of diverse systems


and organizations to work together (inter-operate).
3.2 System requirements
3.2.1 Hardware requirements

o Processor : i3

o RAM : 8GB

o Hard Disk : 80GB


o Speed : 2.4 GHz+

3.2.2 Software requirements

 Operating System : Windows 7 or Higher

 Coding Language : Java,j2ee

 Front-End Language: HTML,CSS,JavaScript

 Java Software : JDK 1.7 or above

 Tool : Eclipse
System Design

The purpose of the design phase is to plan a solution of the problem specified
by the requirements document. This phase is the first step in moving from the
problem domain to the solution domain. In other words, starting with what is
needed; design takes us toward how to satisfy the needs. The design of a system
is perhaps the most critical factor affecting the quality of the software; it has a
major impact on the later phases particularly testing and maintenance.

The design activity often results in three separate outputs –

 Architecture design.

 High level design.

 Detailed design.

Architecture Design:

Architecture focuses on looking at a system as a combination of many different


components, and how they interact with each other to produce the desired result.
The focus is on identifying components or subsystems and how they connect. In
other words, the focus is on what major components are needed.
Context flow diagram

It is common practice to draw a context-level data flow diagram first, which shows
the interaction between the system and external agents which act as data sources
and data sinks. On the context diagram (also known as the 'Level 0 DFD') the
system's interactions with the outside world are modeled purely in terms of data
flows across the system boundary. The context diagram shows the entire system as
a single process, and gives no clues as to its internal organization. This context-
level DFD is next "exploded", to produce a Level 1 DFD that shows some of the
detail of the system being modeled. The Level 1 DFD shows how the system is
divided into sub-systems (processes), each of which deals with one or more of the
data flows to or from an external agent, and which together provide all of the
functionality of the system as a whole. It also identifies internal data stores that
must be present in order for the system to do its job, and shows the flow of data
between the various parts of the system.

Data flow diagram


A data flow diagram (DFD) is a graphical representation of the "flow" of data
through an information system. DFDs can also be used for the visualization of
data processing (structured design). On a DFD, data items flow from an external
data source or an internal data store to an internal data store or an external data
sink, via an internal process. A DFD provides no information about the timing
of processes, or about whether processes will operate in sequence or in parallel.
It is therefore quite different from a flowchart, that shows the flow of control
through an algorithm, allowing a reader to determine what operations will be
performed, in what order, and under what circumstances, but not what kinds of
data will be input to and output from the system, nor where the data will come
from and go to, nor where the data will be stored (all are shown on a DFD).
Symbols used in DFD:
Process

A process transform data values. The lowest processes are our functions without
side effects.

Data flows

A data flow connects the output of an object or process to the input of another
object or process.

Actors

An actor is an active object that drives the data flow graph by producing or
consuming values.Actors are attached to the inputs and outputs of a dataflow
graph.

Data store

A data store is a passive object within a data flow diagram that stores data for
later access.

Data flow diagram


UML diagram

The Unified Modeling Language(UML) is a general purpose, developmental,


modeling language in the field of software engineering that is intended to
provide a standard way to visualize the design of a system.

UML offers a way to visualize a system’s architectural blueprints in a diagram,


including elements such as:

 any activities(jobs);
 individual components of the system and how they can interact with other
software components;
 how the systems will run;
 how entities interact with others(components and interfaces);
 external user interface;

Use case diagram

Use case diagrams model the functionality of a system using actors and use
cases. Use cases are services or functions provided by the system to its users.
Use case diagrams are usually referred to as behavior diagrams used to describe
a set of actions (use cases) that some system or systems (subject) should or can
perform in collaboration with one or more external users of the system (actors).
Each use case should provide some observable and valuable result to the actors
or other stakeholders of the system.

Symbols used in Use case diagram:

Actor
An actor is a person, organization or external system that plays a role in one or

more interactions with the system.

Use case

A use case describes a sequence of actions that provide something of


measurable value to and is drawn as a horizontal ellipse.

System boundary box

A rectangle is drawn around the use cases, called the system boundary box, to
indicate the scope of the system. Anything within the box represents
functionality that is in scope and anything outside the box.
Use case Diagram for User
Sequence diagram
The Sequence Diagram models the collaboration of objects based on a time
sequence. It shows how the objects interact with others in a particular scenario
of a use case. With the advanced visual modelling capability, you can create
complex sequence diagram in few clicks. Besides, Visual Paradigm can
generate sequence diagram from the flow of events which you have defined in
the use case description. The sequence diagram models the collaboration of
objects based on a time sequence. It shows how the objects interact with others
in a particular scenario of a use case. It depicts the objects and classes involved
in the scenario and the sequence of messages exchanged between the objects
needed to carry out the functionality of the scenario.
Symbols used in Sequence diagram:

Lifelines

A sequence diagram shows, as parallel vertical lines(lifelines), which indicates


different processes or objects that live simultaneously.

Message

Messages, written with horizontal arrows with the message name above them
display information.
Activation box

Activation box are opaque rectangles drawn on top of lifelines to represent that

processes are being performed in response to message.

Student sequence diagram

4. IMPLEMENTATION
The Waterfall Model was first Process Model to be introduced. It is also
referred to as a linear-sequential life cycle model. It is very simple to
understand and use. In a waterfall model, each phase must be completed fully
before the next phase can begin. This type of model is basically used for the
project which is small and there are no uncertain requirements. At the end of
each phase, a review takes place to determine if the project is on the right path
and whether or not to continue or discard the project. In this model the testing
starts only after the development is complete. In waterfall model phases do not
overlap.

The waterfall model is a sequential(non-iterative) design, used in


software development processes, in which progress is seen as flowing steadily
downwards (like a waterfall) through the phases of conception, initiation,
analysis, design, construction, testing, production/implementation and
maintenance. Despite the development of new software development process
models, the Waterfall method is still the dominant process model with over a
third of software developers still using it.

The waterfall development model originates in the manufacturing and


construction industries: highly structured physical environments in which after-
the-fact changes are prohibitively costly, if not impossible. Because no formal
software development methodologies existed at the time, this hardware-oriented
model was simply adapted for software development.It is also referred to as a
linear-sequential life cycle model. It is very simple to understand and use. In a
waterfall model, each phase must be completed before the next phase can begin
and there is no overlapping in the phases. Waterfall model is the earliest SDLC
approach that was used for software development.
Advantages of waterfall model:

 This model is simple and easy to understand and use.


 It is easy to manage due to the rigidity of the model – each phase has
specific deliverables and a review process.
 In this model phases are processed and completed one at a time. Phases
do not overlap.
 Waterfall model works well for smaller projects where requirements are
very well understood.
5. TESTING
Software testing is performed to verify that the completed software package functions
according to the expectations defined by the requirements/specifications. The overall
objective is not to find every software bug that exists, but to uncover situations that could
negatively impact the customer, usability and/or maintainability.

PURPOSE OF TESTING

 Finding defects which may get created by the programmer while developing the
software.
 To prevent defects.
 To make sure that the end result meets the business and user requirements.
 To ensure that it satisfies the BRS that is Business Requirement Specification and
SRS that is System Requirement Specifications.
 To gain the confidence of the customers by providing them a quality product.

TYPES OF TESTING

There are two types of testing. They are:


1. White Box Testing
2. Black Box Testing

WHITE BOX TESTING

It is a software testing method in which the internal structure/design/implementation


of the item being tested is known to the tester. The tester chooses inputs to exercise
paths through the code and determines the appropriate outputs. Programming know-
how and the implementation knowledge is essential. This method is named so because
the software program, in the eyes of the tester, is like a white/transparent box; inside
which one clearly sees. Internal software and code working should be known for this
type of testing. Tests are based on coverage of code statements, branches, paths,
conditions. Also known as structural testing and Glass box Testing.
BLACK BOX TESTING

Internal system design is not considered in this type of testing. Tests are based on
requirements and functionality. This method is named so because the software program, in
the eyes of the tester, is like a black box; inside which one cannot see. Black box testing is a
testing technique that ignores the internal mechanism of the system and focuses on the output
generated against any input and execution of the system. It is also called functional testing.

LEVELS OF TESTING

There are four levels of software testing.


1. UNIT TESTING

Unit Testing is a level of the software testing process where individual


units/components of a software/system are tested. The purpose is to validate that each
unit of the software performs as designed.
2. INTEGRATION TESTING

Integration Testing is a level of the software testing process where individual


units are combined and tested as a group. The purpose of this level of testing is to
expose faults in the interaction between integrated units.
3. SYSTEM TESTING

System Testing is a level of the software testing process where a complete,


integrated system/software is tested. The purpose of this test is to evaluate the system’s
compliance with the specified requirements.
System Testing is a level of the software testing process where a complete,
integrated system/software is tested. The purpose of this test is to evaluate the system’s
compliance with the specified requirements.

4. ACCEPTANCE TESTING

Acceptance Testing is a level of the software testing process where a system is tested
for acceptability. The purpose of this test is to evaluate the system’s compliance with the
business requirements and assess whether it is acceptable for delivery.

Acceptance testing or User Acceptance Testing (UAT) is a level of the software


testing process where a system is tested for acceptability. The purpose of this test is to
evaluate the system’s compliance with the business requirements and assess whether it is
acceptable for delivery.

User Acceptance Testing (UAT) is performed by Users or on behalf of the users to


ensure that the Software functions in accordance with the Business Requirement Document.
UAT focuses on the following aspects:

 All functional requirements are satisfied.


 All performance requirements are achieved.
 Other requirements like transportability, compatibility, error recovery etc. are
satisfied.
 Acceptance criteria specified by the user is met.

REGRESSION TESTING

The purpose of regression testing is to confirm that a recent program or code change
has not adversely affected existing features. Regression testing is nothing but full or partial
selection of already executed test cases which are re-executed to ensure existing
functionalities work fine. This testing is done to make sure that new code changes should not
have side effects on the existing functionalities. It ensures that old code still works once the
new code changes are done.

Regression testing is the process of testing changes to computer programs to make


sure that the older programming still works with the new changes. Regression testing is a
normal part of the program development process and, in larger companies, is done by code
testing specialists. Test department coders develop code test scenarios and exercises that will
test new units of code after they have been written. These test cases form what becomes the
test bucket. Before a new version of a software product is released, the old test cases are run
against the new version to make sure that all the old capabilities still work. The reason they
might not work is because changing or adding new code to a program can easily introduce
errors into code that is not intended to be changed.
Purpose of testing
Test Test case name Test case test steps test data Expected Actual Status
case Description output output
Id
1 Admin login validate Admin Enter valid mailId: Admin login Admin login Pass
login username Password should be is successful
and password successful
2 Admin login validate Admin Enter invalid mailId error error Pass
login username and password message as message as
valid “enter valid “enter valid
password username/p username/p
assword” assword” is
should be displayed
displayed
3 View service View service Click on view N/A Admin must Service Pass
request request details service be able to request
request view service details
request sent displayed
by user successfully
4 Add Services Add service Click on add Service details Admin must Admin Pass
details service be able to successfully
add service updated
details service
details

Test Test case name Test case test steps test data Expected Actual Status
case Description output output
Id
1 Customer login validate Customer Enter valid mailId: Customer Customer Pass
login username Password login should login is
and password be successful
successful
2 Customer login validate Customer Enter invalid mailId error error Pass
login username and password message as message as
valid “enter valid “enter valid
password username/p username/p
assword” assword” is
should be displayed
displayed
3 View Services Customer view Select service Service data Customer Customer Pass
service details must view successfully
services and sent service
request for request and
a service service
details are
visible in
service page
5 View Bill Bill details Select view userId and Customer Bill data Pass
bill service id must be displayed
able to view successfully
bill details
Conclusion:
Car service management is an user friendly web application ,which gives single
platform for both user and service provider,where provider can upload service
details and customer can request for service using web application.Proposed
application is secured and automates the existing manual process of booking
services.

References:

Books:

 Java complete Reference

 Advanced Java Mastering

Websites:

 https://www.javatpoint.com/cpp-tutorial

 https://www.programiz.com/cpp-programming

 https://www.cplusplus.com/doc/tutorial/

 https://www.tutorialspoint.com/cplusplus/index.htm

 https://www.tutorialspoint.com/data_structures_algorithms/hash_data_structure.htm

 https://www.geeksforgeeks.org/hashing-data-structure/

You might also like