Sie sind auf Seite 1von 64

CONTENTS

Title

Page No

Abstract.iv List of Tablesvi List of Figures..vii

Chapter I: Introduction 1.1. 1.2. Organization Profile.......01 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

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

6.2.2. Integrating Testing..

Chapter VII: System Implementation 7.1. Introduction 7.2. Implementation

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

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.

CHAPTER 1 INTRODUCTION

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

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.

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

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 in making 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.

CHAPTER 2 SYSTEM ANALYSIS

2.1 EXISTING SYSTEM

2.2 PROPOSED SYSTEM

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 flow statements 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

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.

CHAPTER 3 SYSTEM SPECIFICATION

3.1 Hardware Requirements


Processor/system
Main memory Cache memory Processor speed Hard disk drive

: : : : :

Pentium IV 1 GB RAM 512 KB 600 MHz 40 GB

3.2 Software configuration


Operating system Front End Programming Language Back End

: : : :

Windows2000/XP Professional JSP/ SERVLETS J2EE MYSQL 5.1

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.

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 userinterface, by opening a new window or dialog box.

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 Remote

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

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.

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.

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 worry about the type of the object, and the correct function call again, the call is always: Print(something).

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: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD><TITLE>Welcome to Our Store</TITLE></HEAD> <BODY> <H1>Welcome to Our Store</H1>

<SMALL>Welcome, <!-- User name is "New User" for first-time visitors --> <% out.println(Utils.getUserNameFromCookie(request)); %> To access your account settings, click <A HREF="Account-Settings.html">here.</A></SMALL> <P> Regular HTML for all the rest of the on-line store's Web page. </BODY></HTML> 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.

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 :-).

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.

Servlet: A servlet is a Java programming language class used to extend the capabilities of servers 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 a server instead of abrowser.[1] A Servlet is a Java class in Java 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 HTTP protocol. Therefore, the word "Servlet" is often used in the meaning of "HTTP Servlet". Thus, a software developer may use a servlet to adddynamic content to a Web server using the Java platform. The generated content is commonly HTML, but may be other data such as XML. Servlets are the Java counterpart to non-Java dynamic Web content technologies such as CGI and ASP.NET. Servlets can maintain state in session variables across many server transactions by using HTTP cookies, or URL rewriting. To deploy and run a Servlet, a Web container must 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 hierarchy javax.servlet, defines the expected interactions of the Web container and 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 package javax.servlet.http defines 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 aWAR file as a Web application.

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-viewcontroller pattern. 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

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 the init() method. This configuration object allows the servlet 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. The HTTP request is received by the web server.

2.

The server maps this request to a particular servlet. The servlet is dynamically retrieved and loaded into the address space of the server.

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. The servlet remains in the servers address space and is available to process any

5.

other HTTP requests received from clients.

The service () method is called for each HTTP request. The server may, at some point, decide to unload the servlet from its memory.

6.

The algorithms by which this determination is made are specific to each server. The server calls the destroy () method to relinquish any resources such as file

7.

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.

3.3.4 MYSQL 5.1 MySQL is the world's most used relational database management system (RDBMS) that runs 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, HPUX, eComStation, i5/OS, IRIX, Linux, Mac OS X, Microsoft Windows, NetBSD, Novell NetWare, 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

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 and optimization 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 powerful hardware, 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.

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

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 for multiple 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

Hot backup (via mysqlhotcopy) under certain conditions

CHAPTER 4 SYSTEM DESIGN

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.

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

4.2 Data Model 4.2.1 Entity relationship diagram:

4.2.2 Data Dictionary:

4.3 Process model: 4,3.1 Context Analysis Diagram:

4.3.3 Architecture Diagram

4.3.3 Data Flow Diagram Level 0:

Level 1:

Level 2:

CHAPTER 5 SOFTWARE DEVELOPMENT

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

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 6 SYSTEM TESTING

6.1 SYSTEM TESTING The development of a software system involves a series of production activities where opportunities for injection of human fallibilities are enormous. Errors may begin to occur at the very inception of the process where the objectives may be erroneously or imperfectly specified, as well as errors that occur in later design and development stages. Software Testing is a critical element of software quality assurance and represents the ultimate review of specification, design and coding. Testing is a set of activities that can be planned in advance and conducted systematically. For this reason, a template for software testing a set of steps into which places specific test case design techniques and testing methods-should be designed for the software engineering process. The following are the testing objectives: Testing is a process of executing a program with the intent of finding an error. A good test case is one that has a high probability of finding an as yet and discovered error. A successful test is one that uncovers an as yet undiscovered error. If testing is conducted successfully, it will uncover errors in the software. As a secondary benefit, testing demonstrates that software functions appear to be working according to specification, that performance requirements appear to have been met.

In addition, data collected as testing is conducted to provide a good indication of software reliability and some indication of software quality as a whole. Testing cannot show the absence of errors, it can only show the presence of the software defects. The test design for software and other engineered products can be as challenge as the initial design of the product itself. The tests will be designed such that it should have the highest likelihood of finding the most errors with the minimum amount of the time and effort. Any engineered product can be tested in one of the two ways: Knowing the specified function that a product has been

designed to perform, tests can be conducted that demonstrates each function fully operational- Black Box Testing. Knowing the internal workings of a product, tests can be

conducted to ensure that all the gears mesh, that is, that the internal operations of the product performs according to specifications and all internal components have been adequately exercised- White Box Testing.

Although, the test is designed to uncover errors, black box tests are used to demonstrate the operational of the software functions means that the integrity maintained by the external information. A black box test examines some aspect of a system with little regard for the internal logical structure of the software.

White box testing of the software is predicted on a close examination of the procedural detail. The status of the program may be examined at various points to determine if the expected or asserted status corresponds to the actual status.

The test plan describes the overall strategy for integration. Testing is divided into phases and builds the address specific functional and characteristics of the software. Each of the phases and sub-phases delineates a broad functional category within the software and can generally be related to a specific domain of the program structure. Therefore, program builds are created to correspond to each phase. A schedule for integration, (i.e.) the start and end dates for each phase is established and availability of windows for unit-tested modules are defined. Software testing is an element of a broader topic which is often referred to as verification and validation. Verification- Are we building the product right? Validation - Are we building the right product? Verification refers to the set of activities that ensure that software correctly implements a specific function. Validation refers to a different set of activities that the software that has been built is traceable to member requirements.

6.2. SOFTWARE TESTING STRATEGY 6.2.1 Unit Testing Unit testing focuses verification effort on the smallest unit of the software design module. The relative complexity of the tests and the errors detected as a result is limited by the constrained scope, which is established for unit testing. Unit testing is a white-box testing and the steps can be conducted in multiple modules parallel. The module interface is tested to ensure the information about the program under testing. The local data structure is examined to ensure the integrity of the data which is stored temporarily during the execution of the algorithm sequence. Boundary conditions are tested to ensure that the operation of the modules established to limit or restrict processing at the boundaries. All independent paths of the control structures have to be exercised to verify that all statements in a module have been executed at least once. And finally, all error-handling paths are tested. Because a module is not a stand-alone program, a driver and/or stub software must be developed for each unit test. In most applications a driver is nothing more than a main program that accepts test case data to the module to be tested, and prints the relevant results. Stubs serve to replace modules interface, may do minimal data manipulation, prints verification of entry and returns. In this project, the unit testing is done step by step where each module has to be tested separately in order to get the desired output. The modules were tested for

boundary conditions, independent paths, error handling paths. Here, the testing is done for the retrieval and updating of needed files by specifying the filenames. The image transferring from mobile the system is also tested. 6.2.2 Integration Testing A new event or modification in the software world might ask a seemingly legitimate question one all modules have been unit tested. Data can be lost across the interface putting modules together; one module can have an inadvertent, adverse affect on another sub-function when combined, may not produce desired major functions. Integration testing is a systematic technique test to uncover errors associated with interfacing. Top-Down Integration is an incremental approach for the construction of program structure. Modules are integrated by moving downward through the control hierarchy, beginning with the main control module. Modules subordinate to the main control module are incorporated into the structure in depth-first manner. Bottom-Up Integration testing, as its name itself implies, begins construction and testing with the atomic modules. Because modules are integrated from the bottom up, processing required for modules subordinate to a give level is always available and the need for stubs is eliminated. Integration testing for this project was carried out using the Bottom-up integration-testing model. The atomic modules were first tested unit-wise for output. Then the modules were integrated with the index page of the website to test if the session is being tracked with consistency and the process is tested to get the output without any errors.

6.2.3 System Testing System testing is actually a series of different tests whose primary purpose is to fully exercise the computer-based system. Although each test has a different purpose, all work should verify that all system elements have been properly integration and perform allocated functions. Recovery Testing is a system test that forces the software to fail in a variety of ways and verifies that recovery is properly performed. Security testing attempts to verify that protection mechanism built into a system will, in fact, project it from improper penetration. Stress Testing is designed to confront programs with abnormal situation. Performance Testing is designed to test the run-time performance of the software within the context of integration.

6.2.4 Test cases in details


SN O TEST CASE NAME Mandator y fields in User name and Password Mandator y fields in User name and Password Search File Option is Click for File search Search File Option Click for File search PROCEDUR E EXPECTED RESULT ACTUAL RESULT STATUS/ RESULT

Feeding User Name and Password of the user to login

Loading and display next page.

Option screen displayed

Success

Feeding wrong User Name and Password of the user to login When Search File button is clicked, then type filename with extension When Search File button is clicked, then type wrong filename

Invalid user name and password

Invalid user name and password is displayed

Failure

Search Results should be display.

Search Results displayed

Success

Empty Screen textbox

Textbox is display as empty

Failure

with extension 5 Edit display text Update Button is click When Upload image Button is clicked, it lists the picture from the gallery. File is update Text file updated Success

Click Upload image button

Image is upload to PC

Image uploaded.

Success

CHAPTER 7 SYSTEM IMPLEMENTATION

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

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 8
PERFORMANCE AND LIMITATIONS

8.1 MERITS OF THE SYSTEM 8.2 FUTURE ENCHANCEMENTS Future work can be done using the same architecture includes: Market demand forecasting, down to micro-market segmentation and predicting of sales, loyalty rates, and market share forecasting. Incentive effectiveness analysis and tracking and scoring of special marketing investment such as rebates, financing offers, and other incentives issues to dealers, agents, or distributors. Market segmentation and precise targeting to the segment and the individual as appropriate. Optimizing on-line interaction systems and tracking and understanding on-line consumer behavior to predict market trends off-line.

Sales prediction by individual item model tailored to each individual micro-market and accounting for general market trend information including a modeling of changing consumer trends.

CHAPTER 9 APPENDICES

9.4 CONCLUSION
We provided in this paper, a survey on the data mining techniques developed in car market area. A classification of the available data mining techniques was also provided, based on the kinds of databases to be mined, the kinds of knowledge to be discovered, and the kinds of techniques to be adopted. This survey is organized according to one classification scheme: the kinds of knowledge to be mined. A DCX case study was presented in order to demonstrate the capability of data mining techniques in providing important analysis such as launch analysis and slow turning analysis.

BIBILIOGRAPHY
S. Bongsik, An exploratory investigation of system success factors in data warehousing, Journal Of The Association For Information Systems, vol. 4, pp. 141-168, 2003. L. Cabibbo and R. Torlone, An architecture for data warehousing supporting data independence and interoperability: an architecture for data warehousing, International Journal Of Cooperative Information Systems, vol. 10, no. 3, 2001. D. Calvanese, G. D. Giacomo, M. Lenzerini, D. Nardi, and R. Rosati, Data integration in data warehousing, International Journal Of Cooperative Information Systems, vol. 10, no. 3, pp. 237, 2001. N. Chan, H. Wong, Data mining of resilience indicators, IIE Transactions, vol. 39, no. 6, pp. 617-627, 2007.

S. Elkaffas and A. Toony, Applications of genetic programming in data mining, Enformatika; vol. 17, pp. 1-5, 2006. M. Ester, H. P. Kriegel, J. Sander, M. Wimmer, and X. Xu, Incremental clustering for mining in a data warehousing environment, Proceedings Of The 24th Vldb Conference, New York, USA, 1998. U. Fayyad, G. Piatetsky-Shapiro, and P. Smyth, From data mining to knowledge discovery in databases, American Association For Artificial Intelligence. AI Magazine, pp. 37-54, 1996.

Das könnte Ihnen auch gefallen