7/30/2019 Dcument
1/52
CONTENTS
Title Page No
Abstract.iv
List of Tablesvi
List of Figures..vii
Chapter I: Introduction
1.1. Organization Profile.......01
1.2. Problem Definition.....02
Chapter II: System Analysis
2.2. Existing System Architecture...
2.2. Proposed System Architecture
Chapter III: Development Environment
3.1. Hardware Environment
3.2. Software Environment
3.2.1. Software Description
Chapter IV: System Design
7/30/2019 Dcument
2/52
4.1. Data Model
4.1.1. Entity Relationship Diagram.
4.1.2. Data Dictionary.
4.2. Process Model
4.2.1. Context Analysis Diagram.
4.2.2. Data Flow Diagram
Chapter v: Software Development
5.1. Phases of Software Development
5.1.1. Phase I: Planning...
5.1.2. Phase II: Analysis.
5.1.3. Phase III: Design
5.1.4. Phase IV: Development
5.2. Modular Description..
Chapter VI: Testing
6.1. System Testing.
6.2. Software Testing Strategy
6.2.1. Unit Testing..
7/30/2019 Dcument
3/52
6.2.2. Integrating Testing..
Chapter VII: System Implementation
7.1. Introduction
7.2. Implementation
v
Chapter VIII: Performance and Limitations
8.1. Merits of the system..
8.2. Limitations of the system
8.3. Future Enhancements
Chapter IX: Appendices
9.1. Sample Screen..
9.2. User Manual
Chapter X: References
7/30/2019 Dcument
4/52
ABSTRACT
Data mining techniques provide people with new power to research and manipulate the
existing large volume of data. Data mining process discovers interesting information from the
hidden data which can either be used for future prediction and/or intelligently summarizing the
details of the data. There are many achievements of applying data mining techniques to various
areas such as marketing, medical, financial, and car manufacturing. In this paper, a proposed data
mining application in car manufacturing domain is explained and experimented. The application
results analysis such as Predicting Future Car market Demand such analysis help in providing car
market with base for more accurate prediction of future market demand.
7/30/2019 Dcument
5/52
CHAPTER 1
INTRODUCTION
7/30/2019 Dcument
6/52
1. INTRODUCTION
Data mining application are characterized by the ability to deal with the explosion of
business data and accelerated market changes, these characteristics help providing powerful
tools for decision makers, such tools can be used by business users (not only statisticians) for
analyzing huge amount of data for patterns and trends. Consequently, data mining has
become a research area with increasing importance and it involved in determining useful
patterns from collected data or determining a model that fits best on the collected data.
Different classification schemes can be used to categorize data mining methods and systems
based on the kinds of databases to be studied, the kinds of knowledge to be discovered, and
the kinds of techniques to be utilized.
A data mining task includes pre-processing, the actual data mining process and post-
processing. During the pre-processing stage, the data mining problem and all sources of data
are identified, and a subset of data is generated from the accumulated data. To ensure quality
the data set is processed to remove noise, handle missing information and transformed it to
an appropriate format.
A data mining technique or a combination of techniques appropriate for the type of
knowledge to be discovered is applied to the derived data set. The last stage is post-
processing in which the discovered knowledge is evaluated and interpreted.
Data mining techniques used in business-oriented applications are known as Business
Intelligence (BI). BI is a general term to mean all processes, techniques, and tools that gather
and analyze data for the purpose of supporting enterprise users to make better decisions. The
difficulty of discovering and deploying new knowledge in the BI context is due to the lack of
intelligent and complete data mining system. The measure of any business intelligence
solution is its ability to derive knowledge from data. The challenge is met with the ability to
identify patterns, trends, rules, and relationships from volumes of information which is too
large to be processed by human analysis alone.
7/30/2019 Dcument
7/52
In 2012, plug-in electric vehicles will take major strides toward becoming a mature if
small component of the overall vehicle fleet. The number of battery electric and plug-in
hybrid vehicles sold and the variety of options for consumers will rapidly expand. The fruits
of the multi-billion dollar investments in recent years in lithium ion battery manufacturing
facilities will provide abundance in capacity that could outpace demand, but any oversupply
will not impact vehicle pricing. In order to analyze the impacts of these and other key issues
facing the EV industry, Pike Research has prepared a white paper that makes 10 predictions
about the continuing evolution of the market in 2012 and beyond. Here are three of those
predictions:
Battery production will get ahead of vehicle production.
Manufacturers of lithium ion batteries in the United States spent 2011 readying new and
established factories for the expected surge in electric car and plug-in hybrid sales. The 2009
American Recovery and Reinvestment Act provided funding for scaling up production so that
the United States can compete with Japan, Korea, and China in EV batteries. Most of the award
recipients (including Saft, EnerDel, Johnson Controls, LG Chem, and Dow Kokam) have their
facilities fully online and ready to produce. Now, the production and sales of the cars needs to
catch up.
EV prices will continue to disappoint many consumers.
Many potential EV buyers were disappointed that Nissan raised the price of the LEAF for
2012. While the Chevrolet Volt will sell for $1,000 less, the car comes without several features
that were standard but consumers now must pay for as options. According to data from Pike
Researchs annual Electric Vehicle Consumer Survey, the optimal price for a plug-in electric
vehicle to engage consumers is $23,750. With the 2012 Toyota Prius PHEV ($32,000), the
Honda Fit BEV ($36,625), and the Ford Focus EV ($39,995) all north of $30,000 (before federal
incentives), consumers hoping for an affordable EV ride have been left wanting. Unfortunately,
Pike Research does not expect this trend to stop in 2012.
7/30/2019 Dcument
8/52
EVs will begin to function as home appliances.
In many households, the EV will be the device that consumes the most energy and power.
In 2012, manufacturers of the vehiclesas well as charging equipmentwill introduce
technology that will enable EVs to interact with other home appliances. Automakers want EVs to
be good citizens in balancing their energy requirement with the rest of the building, which
requires establishing communications with smart meters, home energy management devices, and
other types of appliances. For example, an EV could coordinate with the clothes dryer or pool
pump to make sure that the power consumption doesnt surpass a certain threshold. Other long
term applications could include downloading music or movies to the vehicle. The first vehicles
demonstrating this capability will likely be out in 2012, with commercialization soon to follow.
1.1 COMPANY PROFILE
7/30/2019 Dcument
9/52
1.2 SCOPE OF THE PROJECT
The aim of this paper is to provide a proposed data mining solution that can be used for
automotive market, as well as many other areas. This solution can provide inventory managers
with important analysis such as launch analysis and slow turning analysis. The use and benefits
of these two analyses will be identified, and explained. A dcx1 case study will be presented in
detail in order to demonstrate the capability of data mining techniques in the field of car
manufacturing.
1.3 NEED OF THE PROJECT
Using historical data, car maker is collaborating to develop software that will help its cars
predict the best route that drivers can take to save energy and time if car maker experiment inmaking self learning cars takes off, your car will never be the same again.
Using the power of the cloud to analyze historical data of routes, traffic and driver usage,
to create software that will give its cars the capability to predict the destination and the most
energy-efficient route. The new prediction api, a cloud-based analytics service that contains a
suite of algorithms with the ability of analyzing historical business data and the capability to
predict future trends or outcome.
Heres how this system would work. After a vehicle owner opts in to use the service, an
encrypted driver data usage profile is built based on routes and time of travel. In essence, the
system learns key information about how the driver is using the vehicle and where he wants to
go. The system analyzes driving habits, knowledge of routes and combines it with real-time
traffic information to suggest the best possible energy-efficient route.
1.4 OBJECTIVE OF THE PROJECT
In this project, a proposed data mining application in car manufacturing domain is explained and
experimented. The application results analysis such as predicting future car market demand such
analysis help in providing car market with base for more accurate prediction of future market
demand.
7/30/2019 Dcument
10/52
CHAPTER 2
SYSTEM ANALYSIS
7/30/2019 Dcument
11/52
2.1 EXISTING SYSTEM
2.2 PROPOSED SYSTEM
7/30/2019 Dcument
12/52
2.3 LITERATURE REVIEW
R. Nayak and T. Qiu, A data mining application: analysis of problems occurring during a
software project development process, International Journal Of Software Engineering &
Knowledge Engineering, vol.15, no.4, pp. 647-663, 2005.
Data mining techniques provide people with new power to research and manipulate the
existing large volume of data. A data mining process discovers interesting information from the
hidden data that can either be used for future prediction and/or intelligently summarizing the
details of the data. There are many achievements of applying data mining techniques in various
areas such as marketing, medical, and financial, although few of them can be currently seen in
software engineering domain. In this paper, a proposed data mining application in software
engineering domain is explained and experimented. The empirical results demonstrate the
capability of data mining techniques in software engineering domain and the potential benefits in
applying data mining in this area.
S. Elkaffas and A. Toony, Applications of genetic programming in data mining,
Enformatika; vol. 17, pp. 1-5, 2006.
This paper details the application of a genetic programming framework for induction of
useful classification rules from a database of income statements, balance sheets, and cash flowstatements for North American public companies. Potentially interesting classification rules are
discovered. Anomalies in the discovery process merit further investigation of the application of
genetic programming to the dataset for the problem domain.
N. Kerdprasop, and K. Kerdpraso, Moving data mining tools toward a business
intelligence system, Enformatika;, vol. 19, pp. 117-122, 2007.
Data mining (DM) is the process of finding and extracting frequent patterns that can
describe the data, or predict unknown or future values. These goals are achieved by using various
learning algorithms. Each algorithm may produce a mining result completely different from the
others. Some algorithms may find millions of patterns. It is thus the difficult job for data analysts
to select appropriate models and interpret the discovered knowledge. In this paper, we describe a
framework of an intelligent and complete data mining system called SUT-Miner. Our system is
7/30/2019 Dcument
13/52
comprised of a full complement of major DM algorithms, pre-DM and post-DM functionalities.
It is the post-DM packages that ease the DM deployment for business intelligence applications.
G. Liqiang and J. Howard, Interestingness measures for data mining: a survey, ACM
Computing Surveys, vol. 38, no. 3, pp. 1-32, 2006.
Interestingness measures play an important role in data mining, regardless of the kind of
patterns being mined. These measures are intended for selecting and ranking patterns according
to their potential interest to the user. Good measures also allow the time and space costs of the
mining process to be reduced. This survey reviews the interestingness measures for rules and
summaries, classifies them from several perspectives, compares their properties, identifies their
roles in the data mining process, gives strategies for selecting appropriate measures for
applications, and identifies opportunities for future research in this area.
W. Smith, Applying data mining to scheduling courses at a university, Communications
Of AIs; vol. 2005, no. 16, pp. 463-474, 2005.
Scheduling courses (timetabling) at a University is a persistent challenge. Allocating course
sections to prescribed time slots for courses requires advanced quantitative techniques, such as
goal programming, and collecting a large amount of multi-criteria data at least six to eight
months in advance of a semester. This study takes an alternate approach. It demonstrates the
feasibility of applying the principles of data mining. Specifically it uses association rules to
evaluate a nonstandard (aberrant) timetabling pilot study undertaken in one College at a
University. The results indicate that 1), inductive methods are indeed applicable, 2), both
summary and detailed results can be understood by key decision-makers, and 3), straightforward,
repeatable SQL queries can be used as the chief analytical technique on a recurring basis. In
addition, this study was one of the first empirical studies to provide an accurate measure of the
discernable, but negligible, scheduling exclusionary effects that may impact course availability
and diversity negatively.
7/30/2019 Dcument
14/52
CHAPTER 3
SYSTEMSPECIFICATION
7/30/2019 Dcument
15/52
7/30/2019 Dcument
16/52
3.3 SOFTWARE DESCRIPTION
The software used for the development of the project is:
3.3.1 ABOUT JAVA
Java is an object oriented programming language developed by Sun Microsystems.
Modeled on C++, java was designed to be small, simple and portable across platforms.
Java is also unusual in that each Java program is both compiled and interpreted. With a
compiler, you translate a Java program into an intermediate language called Java byte codes--the
platform-independent codes interpreted by the Java interpreter. With an interpreter, each Java
byte code instruction is parsed and run on the computer. Compilation happens just once;
interpretation occurs each time the program is executed. This figure illustrates how this works.
Every Java interpreter, whether it's a Java development tool or a Web browser that can
run Java applets, is an implementation of the Java VM. The Java VM can also be implemented in
hardware.
Java byte codes help make "write once, run anywhere" possible. You can compile your
Java program into byte codes on any platform that has a Java compiler. The byte codes can then
be run on any implementation of the Java VM. For example, the same Java program can run on
Windows NT, Solaris, and Macintosh.
3.3.2 Java Platform
A platform is the hardware or software environment in which a program runs. The Java
platform differs from most other platforms in that it's a software-only platform that runs on top
of other, hardware-based platforms. Most other platforms are described as a combination of
hardware and operating system.
7/30/2019 Dcument
17/52
The Java platform has two components:
The Java Virtual Machine (JVM)
The Java Application Programming Interface (Java API)
The Java API is a large collection of ready-made software components that provide many
useful capabilities, such as graphical user interface (GUI) widgets. The Java API is grouped into
libraries (packages) of related components.
3.3.2.1. Application
It is a program that we can execute from any operating system prompt. A special kind of
application known as a server serves and supports clients on a network. Examples of servers
include Web servers, proxy servers, mail servers, print servers, and boot servers. Another
specialized program is a servlet. Servlets are similar to applets in that they are runtime extensions
of applications. Instead of working in browsers, servlets run within Java servers, configuring the
server.
3.3.2.2 Applet
It is a java program that executes inside a web page. It requires a java enabled browser
which requires an interpreter. Applets are commonly used to enhance the interactivity of a web
page, and deliver client-side content. Applets run in their own frame, and can display graphics,
accept input from GUI components, and even open network connections. Due the potential
security feasibilitys associated with running applets from external and potentially malicious
sources, most web browsers limit file access, and impose additional restrictions on applets.
Stand-alone applications have no such restrictions, and a full range of functionality is
provided for in the way of pre-written Java classes. Stand-alone applications can run as a console
application (writing text to the screen or terminal window), or they can have a graphical user-
interface, by opening a new window or dialog box.
7/30/2019 Dcument
18/52
The important thing required for writing stand-alone Java applications is a java
compiler/interpreter. While there are commercial offerings available, such as Visual J++ and
Borland JBuilder, a freely available SDK is available from Sun. It contains a compiler,
interpreter, debugger. Your browser may not support display of this image.
As a platform-independent environment, Java can be a bit slower than native code.
However, smart compilers, well-tuned interpreters, and just-in-time byte code compilers can
bring Java's performance close to that of native code without threatening portability. The core
API is the API included in every full implementation of the Java platform. The core API gives
you the following features:
The Essentials: Objects, strings, threads, numbers, input and output, data structures,
system properties, date and time, and so on.
Networking: URLs, TCP and UDP sockets, and IP addresses.
Security: Both low-level and high-level, including electronic signatures, Public/private
key management, access control, and certificates.
Object serialization: Allows lightweight persistence and communication via RemoteMethod Invocation (RMI).
Java Database Connectivity (JDBC): Provides uniform access to a wide range of
relational databases.
3.3.2.3 Features
It is an object-oriented internet programming language.
It is a well-structured, high performance and platform-independent
It is a distributed and interpreted language.
It is simple, robust and secure.
7/30/2019 Dcument
19/52
It is multi-threaded, dynamic and portable.
3.3.2.4 Advantages
Get started quickly
Write less code
Write better code
Develop programs faster
Avoid platform dependencies with 100% Pure Java:
Write once, run anywhere
Distribute software more easily
3.3.2.5 Object
An object is a software bundle of variables and related methods. Software objects are modeled
after real-world objects in that they, too, have state and behavior. A software object maintains its
state in variables and implements its behavior with methods.
3.3.2.6 Encapsulation
Packaging an object's variables within the protective custody of its methods is called
encapsulation. Typically, encapsulation is used to hide unimportant implementation details from
other objects
3.3.2.7 Benefits
Modularity-The source code for an object can be written and maintained independently of
the source code for other objects. Also, an object can be easily passed around the system.
Information hiding- object can maintain private information and methods that can be
changed at any time without affecting the other objects that depend on it.
7/30/2019 Dcument
20/52
3.3.2.8 Class
A class is a prototype that defines the variables and methods common to all objects of a
certain kind. When you create an instance of a class, you create an object of that type and the
system allocates memory for the instance variables declared by the class.
3.3.2.9 Interface
An interface in the Java programming language is an abstract type that is used to specify
an interface (in the generic sense of the term) that classes must implement. Interfaces are
declared using the interface keyword, and may only contain method signatures and constant
declarations (variable declarations that are declared to be both static and final). An interface may
never contain method definitions.
As interfaces are implicitly abstract, they cannot be directly instantiated except when
instantiated by a class that implements the said interface. The class must implement all of the
methods described in the interface, or be an abstract class. Object references in Java may be
specified to be of an interface type; in which case, they must either be null, or be bound to an
object that implements the interface.
One benefit of using interfaces is that they simulate multiple inheritance. All classes in
Java (other than java.lang.Object, the root class of the Java type system) must have exactly one
base class; multiple inheritance of classes is not allowed. Furthermore, a Java class may
implement, and an interface may extend any number of interfaces; however an interface may not
implement an interface.
3.3.2.10 Method overriding
Method Overriding, in object oriented programming, is a language feature that allows a
subclass to provide a specific implementation of a method that is already provided by one of its
super classes. The implementation in the subclass overrides (replaces) the implementation in the
super class.
7/30/2019 Dcument
21/52
A subclass can give its own definition of methods which also happen to have the same
signature as the method in its super class. This means that the subclass's method has the same
name and parameter list as the super classs overridden method. Constraints on the similarity of
return type vary from language to language, as some languages support covariance on return
types. Method overriding is an important feature that facilitates polymorphism in the design of
object-oriented programs.
Some languages allow the programmer to prevent a method from being overridden, or
disallow method overriding in certain core classes. This may or may not involve an inability to
subclass from a given class. In many cases, abstract classes are designed i.e. classes that exist
only in order to have specialized subclasses derived from them. Such abstract classes have
methods that do not perform any useful operations and are meant to be overridden by specific
implementations in the subclasses. Thus, the abstract super class defines a common interface
which all the subclasses inherit.
3.3.2.11 Method overloading
It is a feature found in various programming languages such as Ada, C#, C++, D and Java
that allows the creation of several methods with the same name which differ from each other in
terms of the type of the input and the type of the output of the function. For example, doTask ()
and doTask (object O) are overloaded methods. To call the latter, an object must be passed as a
parameter, whereas the former does not require a parameter, and is called with an empty
parameter field. A common error would be to assign a default value to the object in the second
method, which would result in an ambiguous call error, as the compiler wouldn't know which of
the two methods to use. Another example would be a Print (object O) method. In this case one
might like the method to be different when printing, for example, text or pictures. The two
different methods may be overloaded as Print(text object T); Print(image_object P). If we write
the overloaded print methods for all objects our program will "print", we never have to worryabout the type of the object, and the correct function call again, the call is always:
Print(something).
7/30/2019 Dcument
22/52
Method overloading is usually associated with statically-typed programming languages
which enforce type checking in function calls. When overloading a method, you are really just
making a number of different methods that happen to have the same name. It is resolved at
compile time which of these methods are used
3.3.2.12 AWT
The Abstract Window Toolkit (AWT) is Java's original platform-independent
windowing, graphics, and user-interface widget toolkit. The AWT is now part of the Java
Foundation Classes (JFC) the standard API for providing a graphical user interface (GUI) for
a Java program.AWT is also the GUI toolkit for a number of Java ME profiles.
As AWT is a bridge to the underlying native user interface, its implementation on a new
operating system may involve a lot of work, especially for the set of AWT GUI widgets, which
require the development from scratch of native peers for each of the AWT widgets.
Since the opening of Java, a project called Caciocavallo has been created. It aims to
provide a Java API based on the Open JDK to ease AWT implementation on new systems. The
project has successfully experimented the implementation of AWT widgets using Java2D
Java Server Page:
Java Server Pages (JSP) is a technology that lets you mix regular, static HTML with
dynamically-generated HTML. Many Web pages that are built by CGI programs are mostly
static, with the dynamic part limited to a few small locations. But most CGI variations, including
servlets, make you generate the entire page via your program, even though most of it is always
the same. JSP lets you create the two parts separately. Here's an example:
Welcome to Our Store
Welcome to Our Store
7/30/2019 Dcument
23/52
Welcome,
To access your account settings, click
here.
Regular HTML for all the rest of the on-line store's Web page.
Advantages of JSP:
Active Server Pages (ASP) is a similar technology from Microsoft. The advantages of
JSP are twofold. First, the dynamic part is written in Java, not Visual Basic or other MS-specific
language, so it is more powerful and easier to use. Second, it is portable to other operating
systems and non-Microsoft Web servers.
Pure Servlets ,JSP doesn't give you anything that you couldn't in principle do with a
servlet. But it is more convenient to write (and to modify!) regular HTML than to have a zillion
println statements that generate the HTML. Plus, by separating the look from the content you can
put different people on different tasks: your Web page design experts can build the HTML,
leaving places for your servlet programmers to insert the dynamic content.
SSI is a widely-supported technology for including externally-defined pieces into a static
Web page. JSP is better because it lets you use servlets instead of a separate program to generate
that dynamic part. Besides, SSI is really only intended for simple inclusions, not for "real"
programs that use form data, make database connections, and the like.
JavaScript can generate HTML dynamically on the client. This is a useful capability, but
only handles situations where the dynamic information is based on the client's environment.
With the exception of cookies, HTTP and form submission data is not available to JavaScript.
7/30/2019 Dcument
24/52
And, since it runs on the client, JavaScript can't access server-side resources like databases,
catalogs, pricing information, and the like.
Regular HTML, of course, cannot contain dynamic information. JSP is so easy and
convenient that it is quite feasible to augment HTML pages that only benefit marginally by the
insertion of small amounts of dynamic data. Previously, the cost of using dynamic data would
preclude its use in all but the most valuable instances.
Java Servlets:
Servlets are Java technology's answer to CGI programming. They are programs that run
on a Web server and build Web pages. Building Web pages on the fly is useful (and commonly
done) for a number of reasons:
The Web page is based on data submitted by the user. For example the results pages from
search engines are generated this way, and programs that process orders for e-commerce sites do
this as well.
The data changes frequently. For example, a weather-report or news headlines page
might build the page dynamically, perhaps returning a previously built page if it is still up to
date.
The Web page uses information from corporate databases or other such sources. For
example, you would use this for making a Web page at an on-line store that lists current prices
and number of items in stock.
Advantage of Servlets Over "Traditional" CGI?
Java servlets are more efficient, easier to use, more powerful, more portable, and cheaper
than traditional CGI and than many alternative CGI-like technologies. (More importantly, servlet
developers get paid more than Perl programmers :-).
7/30/2019 Dcument
25/52
Efficient. With traditional CGI, a new process is started for each HTTP request. If the
CGI program does a relatively fast operation, the overhead of starting the process can dominate
the execution time. With servlets, the Java Virtual Machine stays up, and each request is handled
by a lightweight Java thread, not a heavyweight operating system process. Similarly, in
traditional CGI, if there are N simultaneous request to the same CGI program, then the code for
the CGI program is loaded into memory N times. With servlets, however, there are N threads but
only a single copy of the servlet class. Servlets also have more alternatives than do regular CGI
programs for optimizations such as caching previous computations, keeping database
connections open, and the like.
Convenient. Hey, you already know Java. Why learn Perl too? Besides the convenience
of being able to use a familiar language, servlets have an extensive infrastructure for
automatically parsing and decoding HTML form data, reading and setting HTTP headers,
handling cookies, tracking sessions, and many other such utilities.
Powerful. Java servlets let you easily do several things that are difficult or impossible
with regular CGI. For one thing, servlets can talk directly to the Web server (regular CGI
programs can't). This simplifies operations that need to look up images and other data stored in
standard places. Servlets can also share data among each other, making useful things like
database connection pools easy to implement. They can also maintain information from request
to request, simplifying things like session tracking and caching of previous computations.
Portable. Servlets are written in Java and follow a well-standardized API. Consequently,
servlets written for, say I-Planet Enterprise Server can run virtually unchanged on Apache,
Microsoft IIS, or WebStar. Servlets are supported directly or via a plugin on almost every major
Web server.
Inexpensive. There are a number of free or very inexpensive Web servers available that
are good for "personal" use or low-volume Web sites. However, with the major exception of
Apache, which is free, most commercial-quality Web servers are relatively expensive.
Nevertheless, once you have a Web server, no matter the cost of that server, adding servlet
support to it (if it doesn't come preconfigured to support servlets) is generally free or cheap.
7/30/2019 Dcument
26/52
Servlet:
A servlet is a Java programming languageclassused to extend the capabilities
ofservers that host applications access via a response programming. Although servlets can
respond to any type of request, they are commonly used to extend the applications hosted
by Web servers. Thus, it can be thought of as a Java Applet that runs on aserverinstead of
abrowser.[1]
A Servlet is a Java class inJava EE that conforms to the Java Servlet API, a protocol by
which a Java class may respond to requests. They are not tied to a specific client-server protocol,
but are most often used with the HTTPprotocol. Therefore, the word "Servlet" is often used in
the meaning of "HTTP Servlet". Thus, a software developermay use a servlet to adddynamic
contentto a Web serverusing the Java platform. The generated content is commonlyHTML, butmay be other data such as XML. Servlets are theJava counterpart to non-Java dynamic Web
content technologies such asCGI andASP.NET. Servlets can maintain state in session variables
across many server transactions by using HTTP cookies, orURL rewriting.
To deploy and run a Servlet, aWeb containermust be used. A Web container (also
known as a Servlet container) is essentially the component of a Web server that interacts with the
servlets. The Web container is responsible for managing the lifecycle of servlets, mapping a
URL to a particular servlet and ensuring that the URL requester has the correct access rights.
The servlet API, contained in the Java package hierarchyjavax.servlet, defines the expected
interactions of the Web containerand a servlet.[2]
A Servlet is an object that receives a request and generates a response based on that
request. The basic servlet package defines Java objects to represent servlet requests and
responses, as well as objects to reflect the servlet's configuration parameters and execution
environment. The packagejavax.servlet.httpdefines HTTP-specific subclasses of the generic
servlet elements, including session management objects that track multiple requests and
responses between the Web server and a client. Servlets may be packaged in a WAR file as
aWeb application.
http://en.wikipedia.org/wiki/Java_programming_languagehttp://en.wikipedia.org/wiki/Class_(computer_programming)http://en.wikipedia.org/wiki/Class_(computer_programming)http://en.wikipedia.org/wiki/Serverhttp://en.wikipedia.org/wiki/Web_serverhttp://en.wikipedia.org/wiki/Java_Applethttp://en.wikipedia.org/wiki/Server_(computing)http://en.wikipedia.org/wiki/Server_(computing)http://en.wikipedia.org/wiki/Web_browserhttp://en.wikipedia.org/wiki/Java_Servlet#cite_note-0http://en.wikipedia.org/wiki/Java_classhttp://en.wikipedia.org/wiki/Java_EEhttp://en.wikipedia.org/wiki/Java_EEhttp://en.wikipedia.org/wiki/HTTPhttp://en.wikipedia.org/wiki/HTTPhttp://en.wikipedia.org/wiki/Software_developerhttp://en.wikipedia.org/wiki/Dynamic_web_pagehttp://en.wikipedia.org/wiki/Dynamic_web_pagehttp://en.wikipedia.org/wiki/Dynamic_web_pagehttp://en.wikipedia.org/wiki/Web_serverhttp://en.wikipedia.org/wiki/Java_platformhttp://en.wikipedia.org/wiki/Java_platformhttp://en.wikipedia.org/wiki/HTMLhttp://en.wikipedia.org/wiki/HTMLhttp://en.wikipedia.org/wiki/XMLhttp://en.wikipedia.org/wiki/Java_(software_platform)http://en.wikipedia.org/wiki/Java_(software_platform)http://en.wikipedia.org/wiki/Common_Gateway_Interfacehttp://en.wikipedia.org/wiki/Common_Gateway_Interfacehttp://en.wikipedia.org/wiki/Active_Server_Pageshttp://en.wikipedia.org/wiki/Active_Server_Pageshttp://en.wikipedia.org/wiki/State_(computer_science)http://en.wikipedia.org/wiki/Session_(computer_science)http://en.wikipedia.org/wiki/HTTP_cookiehttp://en.wikipedia.org/wiki/URL_rewritinghttp://en.wikipedia.org/wiki/Web_containerhttp://en.wikipedia.org/wiki/Web_containerhttp://en.wikipedia.org/wiki/Application_programming_interfacehttp://en.wikipedia.org/wiki/Application_programming_interfacehttp://en.wikipedia.org/wiki/Java_packagehttp://download.oracle.com/javaee/6/api/javax/servlet/package-summary.htmlhttp://en.wikipedia.org/wiki/Web_containerhttp://en.wikipedia.org/wiki/Java_Servlet#cite_note-r1-1http://en.wikipedia.org/wiki/Java_Servlet#cite_note-r1-1http://download.oracle.com/javaee/6/api/javax/servlet/Servlet.htmlhttp://en.wikipedia.org/wiki/Object_(computer_science)http://download.oracle.com/javaee/6/api/javax/servlet/http/package-summary.htmlhttp://download.oracle.com/javaee/6/api/javax/servlet/http/package-summary.htmlhttp://download.oracle.com/javaee/6/api/javax/servlet/http/package-summary.htmlhttp://en.wikipedia.org/wiki/HTTPhttp://en.wikipedia.org/wiki/WAR_(Sun_file_format)http://en.wikipedia.org/wiki/Web_applicationhttp://en.wikipedia.org/wiki/Web_applicationhttp://en.wikipedia.org/wiki/Web_applicationhttp://en.wikipedia.org/wiki/Class_(computer_programming)http://en.wikipedia.org/wiki/Serverhttp://en.wikipedia.org/wiki/Web_serverhttp://en.wikipedia.org/wiki/Java_Applethttp://en.wikipedia.org/wiki/Server_(computing)http://en.wikipedia.org/wiki/Web_browserhttp://en.wikipedia.org/wiki/Java_Servlet#cite_note-0http://en.wikipedia.org/wiki/Java_classhttp://en.wikipedia.org/wiki/Java_EEhttp://en.wikipedia.org/wiki/HTTPhttp://en.wikipedia.org/wiki/Software_developerhttp://en.wikipedia.org/wiki/Dynamic_web_pagehttp://en.wikipedia.org/wiki/Dynamic_web_pagehttp://en.wikipedia.org/wiki/Web_serverhttp://en.wikipedia.org/wiki/Java_platformhttp://en.wikipedia.org/wiki/HTMLhttp://en.wikipedia.org/wiki/XMLhttp://en.wikipedia.org/wiki/Java_(software_platform)http://en.wikipedia.org/wiki/Common_Gateway_Interfacehttp://en.wikipedia.org/wiki/Active_Server_Pageshttp://en.wikipedia.org/wiki/State_(computer_science)http://en.wikipedia.org/wiki/Session_(computer_science)http://en.wikipedia.org/wiki/HTTP_cookiehttp://en.wikipedia.org/wiki/URL_rewritinghttp://en.wikipedia.org/wiki/Web_containerhttp://en.wikipedia.org/wiki/Application_programming_interfacehttp://en.wikipedia.org/wiki/Java_packagehttp://download.oracle.com/javaee/6/api/javax/servlet/package-summary.htmlhttp://en.wikipedia.org/wiki/Web_containerhttp://en.wikipedia.org/wiki/Java_Servlet#cite_note-r1-1http://download.oracle.com/javaee/6/api/javax/servlet/Servlet.htmlhttp://en.wikipedia.org/wiki/Object_(computer_science)http://download.oracle.com/javaee/6/api/javax/servlet/http/package-summary.htmlhttp://en.wikipedia.org/wiki/HTTPhttp://en.wikipedia.org/wiki/WAR_(Sun_file_format)http://en.wikipedia.org/wiki/Web_applicationhttp://en.wikipedia.org/wiki/Java_programming_language7/30/2019 Dcument
27/52
Servlets can be generated automatically from JavaServer Pages (JSP) by the JavaServer
Pages compiler. The difference between Servlets and JSP is that Servlets typically embed HTML
inside Java code, while JSPs embed Java code in HTML. While the direct usage of Servlets to
generate HTML (as shown in the example below) has become rare, the higher level MVC web
framework in Java EE (JSF) still explicitly uses the Servlet technology for the low level
request/response handling via the FacesServlet. A somewhat older usage is to use servlets in
conjunction with JSPs in a pattern called "Model 2", which is a flavor of the model-view-
controllerpattern. A servlet is a Java component that can be plugged into a Java-enabled web
server to provide custom services. These services can include:
New features
Runtime changes to content
Runtime changes to presentation
New standard protocols (such as FTP)
New custom protocols
http://en.wikipedia.org/wiki/JavaServer_Pageshttp://en.wikipedia.org/wiki/JavaServer_Pages_compilerhttp://en.wikipedia.org/wiki/JavaServer_Pages_compilerhttp://en.wikipedia.org/wiki/Java_Server_Faceshttp://en.wikipedia.org/wiki/Model_2http://en.wikipedia.org/wiki/Model-view-controllerhttp://en.wikipedia.org/wiki/Model-view-controllerhttp://en.wikipedia.org/wiki/JavaServer_Pageshttp://en.wikipedia.org/wiki/JavaServer_Pages_compilerhttp://en.wikipedia.org/wiki/JavaServer_Pages_compilerhttp://en.wikipedia.org/wiki/Java_Server_Faceshttp://en.wikipedia.org/wiki/Model_2http://en.wikipedia.org/wiki/Model-view-controllerhttp://en.wikipedia.org/wiki/Model-view-controller7/30/2019 Dcument
28/52
Life cycle of a servlet
During initialization stage of the Servlet life cycle, the web container initializes the
servlet instance by calling the init() method. The container passes an object implementing
theServletConfig interface via theinit() method. This configuration object allows theservlet to access name-value initialization parameters from the web application.
After initialization, the servlet can service client requests. Each request is serviced in its
own separate thread. The Web container calls the service () method of the servlet for
every request. The service () method determines the kind of request being made and
dispatches it to an appropriate method to handle the request. The developer of the servlet
must provide an implementation for these methods. If a request for a method that is not
implemented by the servlet is made, the method of the parent class is called, typically
resulting in an error being returned to the requester.
Finally, the Web container calls the destroy () method that takes the servlet out of service.
The destroy () method, like init (), is called only once in the lifecycle of a servlet.
Three methods are central to the life cycle of a servlet. These are init(), service(),
and destroy(). They are implemented by every servlet and are invoked at specific times by the
server. Let us consider a typical user scenario to understand when these methods are called.
1. Assume that a user enters a Uniform Resource Locator (URL) to a web browser.
The browser then generates an HTTP request for this URL.
This request is then sent to the appropriate server.
2. The HTTP request is received by the web server.
The server maps this request to a particular servlet.
The servlet is dynamically retrieved and loaded into the address space of the
server.
http://docs.oracle.com/javaee/1.3/api/javax/servlet/ServletConfig.htmlhttp://docs.oracle.com/javaee/1.3/api/javax/servlet/Servlet.html#init(javax.servlet.ServletConfig)http://docs.oracle.com/javaee/1.3/api/javax/servlet/Servlet.html#init(javax.servlet.ServletConfig)http://en.wikipedia.org/wiki/HTTP_request#Request_messagehttp://docs.oracle.com/javaee/1.3/api/javax/servlet/ServletConfig.htmlhttp://docs.oracle.com/javaee/1.3/api/javax/servlet/Servlet.html#init(javax.servlet.ServletConfig)http://en.wikipedia.org/wiki/HTTP_request#Request_message7/30/2019 Dcument
29/52
3. The server invokes the init () method of the servlet.
This method is invoked only when the servlet is first loaded into memory.
It is possible to pass initialization parameters to the servlet so it may configure
itself.
4. The server invokes the service () method of the servlet.
This method is called to process the HTTP request.
You will see that it is possible for the servlet to read data that has been provided
in the HTTP request.
It may also formulate an HTTP response for the client.
5. The servlet remains in the servers address space and is available to process any
other HTTP requests received from clients.
The service () method is called for each HTTP request.
6. The server may, at some point, decide to unload the servlet from its memory.
The algorithms by which this determination is made are specific to each server.
7. The server calls the destroy () method to relinquish any resources such as file
handles that are allocated for the servlet; important data may be saved to a persistent
store.
8. The memory allocated for the servlet and its objects can then be garbage
collected.
7/30/2019 Dcument
30/52
3.3.4 MYSQL 5.1
MySQL is the world's most used relational database management system (RDBMS) thatruns as a server providing multi-user access to a number of databases. The SQL phrase stands for
Structured Query Language.
The MySQL development project has made its source code available under the terms of
the GNU General Public License, as well as under a variety of proprietary agreements. MySQL
was owned and sponsored by a single for-profit firm, the Swedish company MySQL AB, now
owned by Oracle Corporation.
Free-software-open source projects that require a full-featured database management
system often use MySQL. For commercial use, several paid editions are available, and offer
additional functionality. Applications which use MySQL databases include: TYPO3, Joomla,
WordPress, phpBB, Drupal and other software built on the LAMP software stack. MySQL is
also used in many high-profile, large-scale World Wide Web products, including Wikipedia.
Uses
MySQL is a popular choice of database for use in web applications, and is a central
component of the widely used LAMP open source web application software stackLAMP is an
acronym for "Linux, Apache, MySQL, Perl/PHP/Python". MySQL is an open source database
management system and is used in some of the most frequently visited websites on the Internet.
Platforms And Interfaces
MySQL works on many different system platforms, including AIX, BSDi, FreeBSD, HP-
UX, eComStation, i5/OS, IRIX, Linux, Mac OS X, Microsoft Windows, NetBSD, NovellNetWare, OpenBSD, OpenSolaris, OS/2 Warp, QNX, Solaris, Symbian, SunOS, SCO
OpenServer, SCO UnixWare, Sanos and Tru64. A port of MySQL to OpenVMS also exists.
Many programming languages with language-specific APIs include libraries for
accessing MySQL databases. These include MySQL Connector/Net for integration with
7/30/2019 Dcument
31/52
Microsoft's Visual Studio (languages such as C# and VB are most commonly used) and the
JDBC driver for Java. In addition, an ODBC interface called MyODBC allows additional
programming languages that support the ODBC interface to communicate with a MySQL
database, such as ASP or ColdFusion. The HTSQL - URL-based query method also ships with a
MySQL adapter, allowing direct interaction between a MySQL database and any web client via
structured URLs.
Deployment
MySQL can be built and installed manually from source code, but this can be tedious so
it is more commonly installed from a binary package unless special customizations are required.
On most Linux distributions the package management system can download and install MySQL
with minimal effort, though further configuration is often required to adjust security andoptimization settings.
Though MySQL began as a low-end alternative to more powerful proprietary databases,
it has gradually evolved to support higher-scale needs as well. It is still most commonly used in
small to medium scale single-server deployments, either as a component in a LAMP-based web
application or as a standalone database server. Much of MySQL's appeal originates in its relative
simplicity and ease of use, which is enabled by an ecosystem of open source tools such as
phpMyAdmin. In the medium range, MySQL can be scaled by deploying it on more powerfulhardware, such as a multi-processor server with gigabytes of memory.
There are however limits to how far performance can scale on a single server, so on
larger scales, multi-server MySQL deployments are required to provide improved performance
and reliability. A typical high-end configuration can include a powerful master database which
handles data write operations and is replicated to multiple slaves that handle all read operations.
The master server synchronizes continually with its slaves so in the event of failure a slave can
be promoted to become the new master, minimizing downtime. Further improvements in
performance can be achieved by caching the results from database queries in memory using
memcached, or breaking down a database into smaller chunks called shards which can be spread
across a number of distributed server clusters.
7/30/2019 Dcument
32/52
Cloud-Based deployment
Main article: Cloud database
Another deployment option is running MySQL on cloud computing platforms such as
Amazon EC2. There are two common deployment models for MySQL on the cloud:
Virtual Machine Image - cloud users can upload a machine image of their own with
MySQL installed, or use a ready-made machine image with an optimized installation of MySQL
on it, such as the one provided by Amazon EC2.
MySQL as a Service - some cloud platforms offer MySQL "as a service". In this
configuration, application owners do not have to install and maintain the MySQL database on
their own. Instead, the database service provider takes responsibility for installing and
maintaining the database, and application owners pay according to their usage.[26] Two notable
cloud-based MySQL services are the Amazon Relational Database Service, and the Xeround
Cloud Database, which runs on EC2, Rackspace and Heroku.
A third option is managed MySQL hosting on the cloud, where the database is not
offered as a service, but the cloud provider hosts the database and manages it on the application
owner's behalf. As of 2011, of the major cloud providers, only Rackspace offers managed
hosting for MySQL databases.
Features
A broad subset of ANSI SQL 99, as well as extensions
Cross-platform support
Stored procedures
Triggers
Cursors
7/30/2019 Dcument
33/52
Updatable Views
Information schema
Strict mode[further explanation needed]
X/Open XA distributed transaction processing (DTP) support; two phase commit
as part of this, using Oracle's InnoDB engine
Independent storage engines (MyISAM for read speed, InnoDB for transactions
and referential integrity, MySQL Archive for storing historical data in little space)
Transactions with the InnoDB, and Cluster storage engines; savepoints with
InnoDB
SSL support
Query caching
Sub-SELECTs (i.e. nested SELECTs)
Replication support (i.e. Master-Master Replication & Master-Slave Replication)
with one master per slave, many slaves per master, no automatic support formultiple masters per slave.
Full-text indexing and searching using MyISAM engine
Embedded database library
Partial Unicode support (UTF-8 and UCS-2 encoded strings are limited to the
BMP)
ACID compliance when using transaction capable storage engines (InnoDB and
Cluster)
Partititoned tables with pruning of partitions in optimiser
Shared-nothing clustering through MySQL Cluster
7/30/2019 Dcument
34/52
Hot backup (via mysqlhotcopy) under certain conditions
.
CHAPTER 4
SYSTEM DESIGN
7/30/2019 Dcument
35/52
4.1 Modules Design
4.1.1 Authentication:
Authentication module contains user name and password. If already login means, they
must enter the username and password for encountered the process of car marketing. New user
means create the new account for enter that process of car product.
4.1.2 Supply Chain Process
Sales:
Sale stage generates the reporting sale data mart that covers the studied period.
Inventory:
Inventory stage generates the reporting inventory data mart. The inventory data is a
snapshot of the inventory stock on the cutoff date.
Orders:
Order stage generates the reporting order data mart. The order data is a snapshot of the
dealer orders on the cutoff date.
Production Plan:
Production Plan data source is a list of models quantities that are planned to be
produced for a specific period.
7/30/2019 Dcument
36/52
4.1.3 Manufacturing information
It Contains car configurations/packages/options codes and description. CarConfig is
used to store Build and Price configurations made on DCX web-sites. TOPs dimension used to
map all car configurations under production. This dimension is used to map vehicles Franchise/
Year/ Model/ Package/ Option to their "Codes/Descriptions/Option Types/Default Options.
Geographic dimension is used to map ZipCode to Zone/Business Center/ State. Dealer
dimension id used to map DCX dealers.
4.1.4 Customers trends information
Websites:
Managers are interested especially in integrated data spanning DCXs relationship with
its customers and prospects regardless of whether the systems are online or offline. Having a data
warehouse that combines online and offline behavioral data for decision-making purposes is a
strategic tool which business users can leverage to improve sales demand forecasting, improve
model/trim level mix planning, adjust body model/trim level mix with inventory data, and reduce
days on lot.
DCX wants to help the inventory managers to move vehicles faster. In order to do this it
needs to identify which vehicles stay long in stock as well as which vehicles move faster. DCX
also wants to make early indication on which vehicle configurations are likely to sell well during
new vehicles launching. These analyzes are related because they all require gathering data,
scrubbing it, storing it, mapping it and finally aggregating it for the purpose of research and
analysis.
Web Activities:
Web Activity data source is used to track all user web hits/requests on DCX websites
7/30/2019 Dcument
37/52
4.2 Data Model
4.2.1 Entity relationship diagram:
7/30/2019 Dcument
38/52
7/30/2019 Dcument
39/52
4.2.2 Data Dictionary:
7/30/2019 Dcument
40/52
7/30/2019 Dcument
41/52
7/30/2019 Dcument
42/52
4.3 Process model:
4,3.1 Context Analysis Diagram:
7/30/2019 Dcument
43/52
4.3.3 Architecture Diagram
7/30/2019 Dcument
44/52
4.3.3 Data Flow Diagram
Level 0:
Level 1:
Level 2:
7/30/2019 Dcument
45/52
CHAPTER-V
SOFTWARE DEVELOPMENT
Software Development Life Cycle in systems engineering and software
engineering, is the process of creating or altering systems, and the models and methodologies
that people use to develop these systems. In software engineering, the SDLC concept underpins
many kinds of software development methodologies. These methodologies form the framework
for planning and controlling the creation of software development process.
5.1 PHASES OF SOFTWARE DEVELOPMENT
The normal phases of a development project are planning, analysis, design,
development, testing, implementation, and enhancement. Different methodologies may call these
phases by different names, but they are always present. Each phase has its own products, which
may be documents, code, or test results. In DCOII system V-model software development life
cycle is followed, which is diagrammatically represented as follows.
5.1.1. PHASE I-PLANNING
Planning is to generate a high-level view of the intended project and determine the
goals of the project. DCOII project plan depends on the V shaped modeling of verification phase
starts at left of V shape, coding starts at the bottom and validation phase starts right of the V-
model.
5.1.2. PHASE II-ANALYSIS
The goal of systems analysis is to determine where the problem is in an attempt to
fix the system. This step involves breaking down the system in different pieces and drawing
diagram to analyze the situation. Analyze project goals, break down functions that need to be
created, and attempt to engage users so that definite requirements can be defined.
7/30/2019 Dcument
46/52
5.1.3. PHASE III-DESIGN
Systems design is the phase where system engineers analyze and understand the business
of the proposed system by studying the user requirements document. DCOII system design is
developed by the webmaster based on the user requirements documents. They figure out
possibilities and techniques by which the user requirements can be implemented. Software
specification document which serves as a blueprint for the development phase is generated. This
document contains the general system organization, menu structures, data structures etc., some
samples screens are created.
5.1.4. PHASE IV-DEVELOPMENT
Modular and subsystem programming code will be accomplished during this stage. Unit
testing and module testing are done in this stage by the CDOII develops. Development stage is
inter mingled with the next in that individual modules will need testing before integration to the
man project. Goals & targets, of DCOII system is achieved by establishing schedules during
project development.
Chapter vi
TESTING
6.1 SOFTWARE TESTING :
7/30/2019 Dcument
47/52
7/30/2019 Dcument
48/52
CHAPTER-VII
SYSTEM IMPLEMENTATION
7.1. INTRODUCTION
It is the process of bringing developed system into operational use. if the
implementation phase is not carefully planned and controlled, it can be lead to many critical
problems. Thus proper implementation is essential to provide a reliable system to meet
managerial requirements.
Implementation is one of the most important tasks in project. Implementation is the
phase, in which one has to be cautions, because all the efforts undertaken during the project will
be fruitful only if the tool is properly implemented according to the plans made.
The implementation phase is less creative than system design. It is primarily concerned
with user training; site preparation and file-sites, the test of the network along with the system
are also included under implementation.
7/30/2019 Dcument
49/52
Depending on the nature of the system extensive user training maybe required
programming is itself a design works. The initial parameters of the management information
system should be modified as a result of programming efforts. Programming provides a real test
for the assumption made by the analyst.
Implementation is used here to mean the process of converting a new or revised system
into an operation one. Here the new system is implemented to an operational use. Maintenance is
far more than fixing mistakes. The maintenance can be defined using four activities that are
undertaken after a program is released for use.
The second activities that contribute to a definition of maintenance occurs because of
the rapid change that encountered in every aspect of computing. Adaptive maintenance as
activity that modifies software to properly interface with a changing environment is both
necessary and common place.
The third activity that may be applied to definition of maintenance occurs when software
package is successful. As the software is used new recommendations for new capabilities,
modifications to existing function and general enhancements are received from the user, to
satisfy this request perceptive maintenance is used.
The fourth maintenance activity occurs when software is changed to improve future
maintainability or reliability, or to provide a better basic for future enhancements. This is often
called preventive maintenance, which is characterized by reverse engineering and re-engineering
technique.
7.2. IMPLEMENTATION
The system has been tested in the location of the developer. But it is not possible
to find all errors here. It may be that even after through testing the user will find errors. In such a
case the user when reports the errors it is possible to correct those errors as that coding has been
documents and it is possible to find out the location where the error is occurring and the reason
for error can be analyzed and corrected. This developed system supports for corrective
maintenance.
7/30/2019 Dcument
50/52
As this software can be run with the requirements given above and it does not
involve any particular hardware as such and it can be run with the rapid development that is
being encountered in the computer industry. If there is a need to include any new modules then it
has been externally and then includes to it with the exits architecture. But up to now the system
holds all the possible reports generation tools, which a team needs. Later on it correspondence
with this limitation may upgrade the system.
Chapter : viii
PERFORMANCE AND LIMITATION
8.1 MERIT OF THE SYSTEM:
7/30/2019 Dcument
51/52
Chapter: ix
APPENDICES
9.1SAMPLE SCREENS:
7/30/2019 Dcument
52/52
Chapter : x
REFERENCES