You are on page 1of 59

(Online Airline Ticket Reservation System)

PROJECT REPORT

For partial fulfillment of the degree Of BACHELOR OF TECNOLOGY GNIT GIRLS INSTITUTE OF TECHNOLOGY Under the guidance of NIIT

SUBMITTED BY: PALLAVI SRIVASTAVA 0841610404

C.S

CERTIFICATE

Certified that

PALLAVI SRIVASTAVA has carried out the RESERVATION SYSTEM for the

project work presented in this report entitled ONLINE FLIGHT(AIRLINE) award of Bachelor of Technology from Uttar Pradesh Technical University, under my supervision. The report embodies result of original work and studies carried out by Student herself and the contents of the report do not form the basis for the award of any other degree to the candidate or to anybody else.

DECLARATION

I, Pallavi Srivastava hereby declare that the report of the project entitled Online Flight Reservation Sysytem has not presented as a part of any other academic work to get my degree or certificate except Gnit Girls Institute of Technology for the fulfillment of the requirements for the degree of Bachelor of Technology.

PALLAVI SRIVASTAVA

ACKNOWLEDGEMENT
I take this opportunity to express my sincere thanks and deep gratitude to all those people who extended their wholehearted co-operation and have helped me in completing this project successfully. Special thanks to Ms.Ritu Sharma (Project Manager) for all the help and guidance extended to me by him in every stage during my training. His inspiring suggestions and timely guidance enabled me to perceive the various aspects of the project in a new light. I would also thank to Mr. Rohit & my internal project guide who guided me a lot in completing this project.I would also like to thank my project mate for guiding and encouraging me throughout the duration of the project. In all I found a congenial work environment in NIIT. and this completion of the project will mark a new beginning for me in the coming days.

INTRODUCTION ABOUT NIIT COMPANY

NIIT is a leading Global Talent Development Corporation, building skilled manpower pool for global industry requirements. The company which was set up in 1981, to help the nascent IT industry overcome its human resource challenges, has today grown to be amongst worlds leading talent development companies offering learning solutions to Individuals, Enterprises and Institutions across 40 countries.

NIITs training solutions in IT, Business Process Outsourcing, Banking, Finance and Insurance, Executive Management Education, and Communication and Professional Life Skills, touch five million learners every year. NIITs expertise in learning content development, training delivery and education process management make it the most preferred training partner, worldwide. NIIT has provided computer-based learning to over 15,000 government and private schools. The futuristic NIIT NGuru range for schools is a holistic education package that comprises Interactive Classrooms (an embedded Teaching Learning Material, that uses elements of interactivity, automation and web links library); Math lab(technology tools that enable school students to learn and explore mathematical concepts); IT Wizard(equips the students with core computer knowledge and IT skills); Quick School (an Education Resource Planning solution for school management); and Mobile Science Lab (the first of its kind portable computerized Science Laboratory which enables students to correlate scientific concepts taught in the class to real life).

CONTENT
1.PROJECTS MOTTOS 2.INTENDED AUDIENCE 3.COOL FEATURE OF OUR SITE 4.TECHNOLOGIES USED: a. server technologies b.software technologies 5.UML INTRODUCTION: a.usecase diagram b.sequence diagram c.interaction diagram d.state chart diagram e.deployment diagram f.activity diagram 6.SYSTEM ARCHITECTURE 7.CONTROL FLOW IN A TYPICAL USER SESSION 8.DATABASE DESIGN

9.SECURITY 10.HANDICAPPED ACCESS 11.DISTRIBUTION OF COMPUTATION 12.MULTIMEDIA 13.FLEXIBILITY 14.IMPLEMENTATION EXPERIENCE 15.SNAPSHOTS OF OUR SITE. 16.ADVANTAGES AND DISADVANTAGES OF ONLINE FLIGHT RESERVATION. 17.BIBLIOGRAPHY

1.PROJECTS MOTTO

The main aim of the project was to develop a website which would facilitate the reservation of online air tickets through an effective and yet simple GUI for a normal passenger intending to travel in airways. Apart from reserving tickets, through our system a passenger can compare online fares from various cities to various cities.

2. INTENDED AUDIENCE
1. The project is basically targeted at those people who would like to travel through air and have an Internet access. 2. As we will be making our site WAP enabled, this will facilitate our site to accept requests from other alternative devices like PDAs and WAP-enabled browsers. Apart from the above category of audience, passengers using hand-held devices will be our second major category of audience. 3. Finally passengers curious in comparing the prices for various Airlines for their selected source and destination cities form our third category of audience.

3.COOL FEATURES OF OUR SITE: 1.Dynamic Bandwidth Calculation:

We dynamically calculate the users bandwidth and redirect him to either to the Graphical Version or to the Text-Version based on the clients bandwidth. 2.Sitemap: We are providing a cool map of our entire site for easy access of our pages. Sitemap includes all the links in all the pages in our site categorized based on the functionality of the pages. 3.Flash Images of Flights: We created flight detail images and used Flash to integrate them and show the user the seating arrangement of the flight. The user can know about the details of the seating arrangement, emergency exit doors and lavatory details before entering the flight.

4.Airport Layouts: We are showing the airport layouts so that the user can know the airline counter details prior to his arrival at the airport. He can directly go to the counter concerned to collect his travel tickets. 5.Points Based System: We are giving discounts to the regular customers shopping on our site based on points he achieved. One percent of discount is given on present transaction for each $1000 previous transaction amount with a maximum of 20 percent. This will attract regular travelers to use our site instead of others.

4.TECHNOLOGIES USED.

Following are the core technologies used in developing our website. A . SERVER TECHNOLOGIES:WEB SERVER : 1. Tomcat Server Tomcat is enterprise class, robust web server which comes bundled with JavaServlets and JSP that provides a java application server environment One of the other major issues why we chose Tomcat was Scalability. Presently Java is our core technology used for portability and in future if we want to make our site be reachable to users using Microsoft products we would be having no conflicts between the servers because Tomcat can be deployed as either a standalone product with its own internal Web server or in conjunction with several other Web servers, including Netscape Enterprise Server. Microsoft Internet Information Server. Microsoft Personal Web Server.

It adheres to the latest standards, which expands the security features. Configuration, tuning and maintenance are lot easier than compared to other prevailing web servers.

Since we were not going for enterprise java beans in our project we didnt feel the necessity of going for other application servers like J2EE or JBOSS .We were basically looking for a reliable web server which would be compatible with both the front-end and back-end technologies we were using and our ultimate choice was Apaches Tomcat Web Server.

Database server

1. Oracle Server We are listing the four main reasons why we have used Oracle instead of any other prevailing database servers SCALABLE Oracle supports the largest databases, which can contain terabytes of data. To make efficient use of expensive hardware devices, Oracle enables full control of space usage. Even though we want to extend our site to incorporate upcoming various Airlines database we would be having no problems at all in extending our database. RELIABLE For now, since our website is not a full-fledged corporate website we are estimating that there would be a maximum of

150-200 hits per day including from all the above mentioned categories of audience who come to our site either to make an online reservation or to compare the prices of various airlines. Oracle supports large numbers of concurrent users executing a variety of database applications operating on the same data. It minimizes data contention and guarantees data concurrency. This definitely helps us make our website robust and accessible to many number of users simultaneously. In future even though users increase there would be no problem on overall. SECURE One of the major concerns about our database were the security issues as we would be maintaining tables to store user information like his user-name, password and personal information like credit card details. We had this extra overhead of maintaining all this information securely and at the same time transparent to the user. We have no regrets now for choosing Oracle as our database server. To protect against unauthorized database access and use, Oracle provides security features to limit and monitor data access. These features make it easy to manage even the most complex design for data access.

OTHER REASONS Based upon the functionality of our website, it obvious that we have to be in a position to handle requests from users accessing our website from various different types of computers and operating systems. Oracle software enables different types of computers and operating

systems to share information across networks. Even in future if we want to jump into distributed environment/network we can do so. For networked, distributed environments, Oracle combines the data physically located on different computers into one logical database that can be accessed by all network users. Apart from these reasons, Oracle software lets you replicate groups of tables and their supporting objects to multiple sites. Oracle supports replication of both data- and schema-level changes to these sites.

B. Software Technologies:
1. Java Server Pages (JSP) 2. Java Servlets 3. Java Beans 4. JavaMail 5. XML & XSL 6. HTML 7. WML 8. JavaScript 9. HTTP Sessions 10.Java Bean Java Server Pages (JSP)

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. JSP was designed to work with Java Servlets and JavaBeans in a seamless fashion, it provides applications developers with the capability to cleanly separate content generation from content presentation.

This means that Web page designers can work independently from business logic developers, and the end result will work in a distributed, heterogeneous computing environment.

Java Servlets

Java Servlets are server-side technologies that provide a component-based, platform-independent method for building web-based applications. They provide web developers with a simple, consistent mechanism for extending the functionality of a web server and for accessing existing databases. Since our website was more database-centric we found servlets as more appropriate choice.

Servlets have access to the entire family of Java APIs, including the JDBC API to access databases. Servlets can also access a library of HTTP-specific calls and receive all the benefits of the mature Java language, including portability, performance, reusability, and crash protection. Our other alternative for Java servlets was CGI. But we continued with Java servlets mainly because of the following reasons i) Efficient: With traditional CGI, a new process is started for each HTTP request. With servlets, the Java Virtual Machine stays up, and each request is handled by a lightweight Java thread, not a heavyweight operating system process. ii) Convenient: Each one of us was more comfortable with Java Besides the convenience of being able to use a familiar language, servlets they have this added advantage of automatically parsing and decoding HTML form data, tracking sessions, and many other such tasks. As these operations were very much needed for our website we found our decision to be right.

iii) Powerful: Java servlets let us do several things easily, which are either difficult or impossible by traditional CGI. One thing is servlets can talk directly to the Web server (regular CGI programs can't). This simplified operations that needed us to look up data stored in standard places. We found them very useful in maintaining information from request to request, simplifying things like session tracking and caching of previous computations. JavaMail

Hosting an Online Air tickets Website we had this requirement of sending out an email to our customer once he purchased ticket through our site as a confirmation with his flight details and schedule. As we were using Java as our programming language we had this added advantage of using JavaMail API to suffice our need. We implemented this feature of sending out emails using JavaMail successfully. For this we had to download Javamail API and JavaBeans activation Framework apart from setting their paths in our webservers classpath. JavaMail API allowed us to instantly add the ability to send-out e-mail with our Java applications with negligible programming effort.

XML & XSL XML was mainly used because of its extensibility feature. It had this added advantage of presenting the same content in different formats to different clients. Our site is completely driven by XML data. We have implemented all our servlets in such a way that they throw XML DOM tree for each and every page. So once we had this XML DOM tree in hand we implemented XSLs to throw out either a HTML data or WML data to

the client depending on either the request coming from http browser or WAP browser. In this way our site is more extensible, suppose that in future we had to extend our site to clients with a new markup language what all we need to do is write out a separate XSL to display the data in the form specific to that client. Another major advantage of sending XML data to the client instead of html data is, we can offload some computation to the client from the server. i.e. we werent forced to bother about the presentation data on the server's side, instead we concentrated on sending the data and using style sheets to display it in according to the clients needs. WML Our site is PDA enabled. We used WML to make our site accessible through handheld devices. WML is the basic mark-up language for the alternate web-access devices. JavaScript JavaScript was basically used for client-side validation. JavaScript is compatible with all versions of Microsoft Internet Explorer and Netscape Navigator. We have small java scripts, which are lightweight and will not hinder the download time of the HTML document significantly.

HTTP Sessions& Java Beans:

Every user who logs in to our system is given a new session. We implemented this feature using the Http Session API provided by the Servlets and Java Beans.

UML Introduction
the diagrams that comprise UML, and offers a Use-Case-driven approach on how these diagrams are used to model systems. The paper also discusses UML's built-in extensibility mechanisms, which enable its notation and semantics to be extended. This paper also suggests extending UML by two non-built-in techniques: CRC cards for responsibility-driven analysis and entity relation diagrams for modeling of relational databases. This whitepaper introduces the Unified Modeling Language (UML), version 1.1. It reviews What Is UML? The Unified Modeling Language prescribes a standard set of diagrams and notations for modeling objectoriented systems, and describes the underlying semantics of what these diagrams and symbols mean. Whereas there has been to this point many notations and methods used for object-oriented design, now there is a single notation for modelers to learn. UML can be used to model different kinds of systems: software systems, hardware systems, and real-world organizations. UML offers nine diagrams in which to model systems: Use Case diagram for modeling the business processes Sequence diagram for modeling message passing between objects Collaboration diagram for modeling object interactions State diagram for modeling the behavior of objects in the system Activity diagram for modeling the behavior of Use Cases, objects, or operations Class diagram for modeling the static structure of classes in the system Object diagram for modeling the static structure of objects in the system Component diagram for modeling components Deployment diagram for modeling distribution of the system.

UML Provides Standard Notation and Semantics


UML prescribes a standard notation and underlying semantics for modeling an object-oriented system. Previously, an object-oriented design might have been modeled with any one of a half dozen popular methodologies, causing reviewers to have to learn the notational semantics of the methodology before trying to understand the design. Now with UML, different designers modeling different systems can readily understand each others designs.

UML Is Not a Method


UML, however, does not prescribe a standard process or method for developing a system. There are a number of popular, published methodologies; a few of the most popular of which include the following: Catalysis: An object-oriented method that fuses much of the recent work on object-oriented Methods, and in addition provides specific techniques for modeling distributed components. Objectory: A Use-Case driven method for development created by Ivar Jacobson. Shlaer/Mellor: "The" method for design of real-time systems, put forth by Sally Shlaer and1 Steven Lifecycles, Modeling the World in Data (Prentice Hall). Shlaer/Mellor continue to periodically update their method (most recent update is The OOA96 Report), and recently published a white paper on how to use UML notation with Shlaer/Mellor. Fusion: Developed at Hewlett Packard in the mid-nineties as the first attempt at a standard object-oriented method. Combines OMT and Booch with CRC cards and formal methods.

OMT: The Object Modeling Technique was developed by James Rumbaugh and others, and published in the seminal OO book, Object-Oriented Modeling and Design (Prentice Hall, 1991). A method preaching iterative analysis and design, heavy on the analysis side. Booch: Similar to OMT, and also very popular, Grady Booch's first and second editions of Object-Oriented Design, With Applications (Benjamin Cummings, 1991 and 1994) detail a method preaching iterative analysis and design, heavy on the design side. In addition, many organizations have developed their own internal methodology, using different diagrams and techniques from various sources. Examples are the Catalyst methodology by Computer Sciences Corporation (CSC) or the Worldwide Solution Design and Delivery Method (WSDDM) by IBM. These methodologies vary, but generally combine workflow analysis, requirements capture, and business modeling with data modeling, with object modeling using various notations (OMT, Booch, etc), and sometimes include additional object-modeling techniques such as Use Cases and CRC cards. Most of these organizations are adopting and incorporating UML as the object-oriented notation of their methodology. Some modelers will use a subset of UML to model what theyre after, for example just the class diagram, or just the class and sequence diagrams with Use Cases. Others will use a fuller suite, including the state and activity diagrams to model real-time systems and the implementation diagram to model distributed systems. Still others will not be satisfied with the diagrams offered by UML, and will need to extend UML with other diagrams such as relational data models and CRC cards. UML 1.1 Extensions Built-in extensibility mechanisms enable UML to be a somewhat open specification that can cover aspects of modeling not specified in the 1.1 document. These mechanisms enable UML's notation and semantics to be expanded.

Stereotypes Stereotype is the most widely used built-in extensibility mechanism within UML. A stereotype represents a usage distinction. It can be applied to any modeling element, including classes, packages, inheritance relationships, etc. For example, a class with stereotype <<actor>> is a class used as an external agent in business modeling. A template class is modeled as a class with stereotype <<parameterized>>, meaning itcontains parameters. Business Modeling Extensions A separate document within UML specification calls out specific class and association stereotypes that extend UML to cover business-modeling concepts. This includes stereotyping a class as an actor, a worker (both internal and case), or an entity, and stereotyping an association as a simple communication, or a subscription between a source and a target. Object Constraint Language (OCL) A picture can only describe so many words. Similarly, a graphical model can only describe a certain amount of behavior, after which it is necessary to fill in additional details with words. Describing something with words, however, almost always results in ambiguities; i.e., "what did he mean when he wrote that?" The Object Constraint Language (OCL) is incorporated into UML as a standard for specifying additional details, or precise constraints on the structure of the models. Developed within the IBM Insurance Division as a business modeling language, the OCL is a formal language designed to be easy to read and write. OCL is more formal than natural language, but not as precise as a programming language it cannot be used to write program logic or flow control. Since OCL is a language for pure expression, its statements are guaranteed to be without side effect they simply deliver a value and can never change the state of the system. Further Extensions Two specific areas that UML does not address currently, even with its specified extensions, are responsibility-driven analysis and modeling of relational databases. This paper introduces these techniques as current, realworld extensions to UML that should be considered. Responsibility-Driven Analysis with CRC Cards

A widely used technique for getting into the 'mindset' of object-oriented thinking is responsibility-driven analysis with Class Responsibility and Collaborator (CRC) cards. With this technique, classes discovered during analysis can be filtered to determine which classes are truly necessary for the system. Relational Data Modeling Although object-oriented databases are becoming more popular, in today's development environment, the relational database remains the predominant method for data storage. The UML class diagram can be used to model the relational database the system is based on, however, traditional data modeling diagrams capture more information about the relational database and are better suited to model it. This paper discusses using Entity Relationship (ER) diagrams as an important UML extension for relational database modeling. An Overview of UML A Use Case Driven Tour Once again, UML is a notation, not a method. It does not prescribe a process for modeling a system. However, because UML includes the Use Case diagram, it is considered to lend itself to a problem-centric, Use Case driven approach to design. The Use Case diagram provides the entry point into analyzing the requirements of the system, and the problem that needs to be solved. Figure 1 provides a general flow of how diagrams of UML, with extensions, interact in a Use Case-driven approach to design. Use Cases and Interaction Diagrams A Use Case is modeled for all processes the system must perform. Processes are described within the Use Case by a textual description or a sequence of steps performed. Activity diagrams can also be used to graphically model the scenarios. Once the system's behavior is captured in this way, the Use Cases are examined and amplified to show what objects interrelate to make this behavior happen. Sequence and Collaboration diagrams are used to show object interrelationships. Class and Implementation Diagrams As the objects are found, they can be grouped by type and classified in a Class diagram. It is the Class diagram that becomes the central analysis diagram of the object-oriented design, and one that shows the static structure of the system. The class diagram can be divided into business, application,

and data layers, which show the classes involved with the user-interface, the software logic of the application, and the data storage, respectively. Component diagrams are used to group classes into components or modules. Overall hardware distribution of the system is modeled using the Deployment diagram. CRC Cards An Informal UML Extension As an informal extension to UML, the CRC Card technique can be used to drive the system through responsibility-driven analysis. Classes are examined, filtered, and refined based on their responsibilities to thesystem, and the classes they need to collaborate with in order to fulfill their responsibilities. State Diagrams Real-time behavior of each class that has significant dynamic behavior is modeled using a State diagram. The Activity diagram can again be used at this point, this time as an extension to the State diagram, to show the details of actions performed by objects in response to internal events. The Activity diagram can also be used to graphically represent the actions of class methods. Implementing the Design Implementation of the system concerns translating information from multiple UML models into code and database structure. When modeling a large system, it is useful to break the system down into its business layer (including user-interface objects), its application layer (including implementation objects), and its data layer (including database structure and access objects). Implementing the Application The class diagram is used to generate a skeletal structure of the code in the chosen language. Information from the Interaction, State, and Activity diagrams can provide details of the procedural part of the implementation code. Implementing the Database Design The data layer of the class diagram can be used to directly implement an object-oriented database design, or, as a UML extension, be mapped to an Entity Relation diagram for further analysis of entity relationships. It is in the ER diagram that relationships between entities can be modeled based on

keyed attributes. The logical ER diagram provides a basis from which to build a Physical diagram representing the actual tables and relationships of the relational database. Testing Against Requirements Use Cases are also used to test the system to see if it satisfies initial requirements. The steps of the Use Cases are walked through to determine if the system is satisfying user requirements.

An In-Depth Look at UML The following sections present a more detailed look at modeling with UML. A very simple Airline Reservation System is used to illustrate UML modeling techniques and diagrams. The following topics are covered: Organizing your system with packages Modeling with Use Cases, and using them to capture system requirements Modeling with Sequence and Collaboration diagrams Analyzing and designing with the Class diagram, and extending UML with the CRC card technique Modeling behavior with State and Activity diagrams Modeling software components, distribution, and implementation Extending the UML with relational database design. Organizing Your System with Packages One of the key tasks to modeling a large software system is to break it down into manageable areas first. Whether these areas are called domains, categories, or subsystems, the idea is the same: break the system into areas that have similar subject matter. UML introduces the notion of a package as the universal item to group elements, enabling modelers to subdivide and categorize systems. Packages can be used on every level, from the highest level, where they are used to subdivide the system into domains, to the lowest level, where they are used to group individual Use Cases, classes, or components.

Figure 2 Organizing System Using Packages PRINCIPLES OF MODELING There are four basic principles of modeling: 1. The choice of what models to create has a profound influence on how a problem is attacked and how a solution is shaped. In software, the models you choose can greatly affect your world view. If you build a system through the eyes of a database developer, you will likely focus on entity-relationship models that push behavior into triggers and stored procedures. If you build a system through the eyes of a structured analyst, you will likely end up with models that are algorithmic-centric, with data flowing from process to process. If you build a system through the eyes of an object-oriented developer, you'll end up with a system whose architecture is centered around a sea of classes and the patterns of interaction that direct how those classes work together. Any of these approaches might be right for a given application and development culture, although experience suggests that the object-oriented view is superior in crafting resilient architectures, even for systems that might have a large database or computational element. That fact notwithstanding, the point is that each

world view leads to a different kind of system, with different costs and benefits. 2. Every model may be expressed at different levels of precision. An analyst or an end user will want to focus on issues of what; a developer will want to focus on issues of how. Both of these stakeholders will want to visualize a system at different levels of detail at different times. 3. The best models are connected to reality. It's best to have models that have a clear connection to reality, and where that connection is weak, to know exactly how those models are divorced from the real world. All models simplify reality; the trick is to be sure that your simplifications don't mask any important details. In objectoriented systems, it is possible to connect all the nearly independent views of a system into one semantic whole. 4. No single model is sufficient. Every nontrivial system is best approached through a small set of nearly independent models. If you are constructing a building, there is no single set of blueprints that reveal all its details. At the very least, you'll need floor plans, elevations, electrical plans, heating plans, and plumbing plans. To understand the architecture of such a system, you need several complementary and interlocking views: a use case view (exposing the requirements of the system), a design view (capturing the vocabulary of the problem space and the solution space), a process view (modeling the distribution of the system's processes and threads), an implementation view (addressing the physical realization of the system), and a deployment view (focusing on system engineering issues). Each of these views may have structural, as well as behavioral, aspects. Together, these views represent the blueprints of software. Depending on the nature of the system, some models may be more important than others. For example, in distributed systems, such as one finds in Webintensive applications, implementation and deployment models are the most important.

USE CASE DIAGRAM:Use Case Modeling

Use Case modeling is the simplest and most effective technique for modeling system requirements from a users perspective. Use Cases are used to model how a system or business currently works, or how the users wish it to work. It is not really an object-oriented approach; it is really a form of process modeling. It is, however, an excellent way to lead into objectoriented analysis of systems. Use cases are generally the starting point of object-oriented analysis with UML. The Use Case model consists of actors and use cases. Actors represent users and other systems that interact with the system. They are drawn as stick figures. They actually represent a type of user, not an instance of a user. Use cases represent the behavior of the system, scenarios that the system goes through in response to stimuli from an actor. They are drawn as ellipses.

Figure 3 Use Case Modeling

Each Use Case is documented by a description of the scenario. The description can be written in textual form or in a step-by-step format. Each Use Case can also be defined by other properties, such as the pre- and postconditions of the scenario conditions that exist before the scenario begins, and conditions that exist after the scenario completes. Activity Diagrams provide a graphical tool to model the process of a Use Case. These are described in a later section of this document. Capture and/or Verify Requirements

The final objective of any software design is to satisfy the user requirements for the system. These requirements can be software requirements, product requirements, or testing requirements. The goal of capturing and verifying user requirements is to ensure that all requirements are fulfilled by the design, and that the design conforms to the defined requirements. Oftentimes system requirements exist already in the form of requirements documents. Use Cases are used tocorrelate every scenario to the requirements it fulfills. If the requirements do not exist, modeling the system through Use Cases enables discovery of requirements. Organization of Use Case Diagrams During business analysis of the system, you can develop one Use Case model for the system, and build packages to represent the various business domains of the system. You may decompose each package with a Use Case diagram that contains the Use Cases of the domain, with actor interactions. A Use Case for Every Scenario The goal is to build a Use Case diagram for each significantly different kind of scenario in the system. Each scenario shows a different sequence of interactions between actors and the system, with no 'or' conditions. Model Alternate Sequences through "Extends" Relationship Typically, one models each Use Case with a normal sequence of actions. The user then considers "what if" conditions for each step, and develops Use Cases based on these alternate sequences of events. The alternate sequences are modeled in separate Use Cases, which are related to the original Use Case by an "Extends" relationship. The Extends relationship can be thought of as a Use Case equivalent to inheritance, in that the Extending Use Case inherits and overrides behavior of the original Use Case. Eliminate Redundant Modeling through "Uses" Relationship To eliminate redundant modeling of a chunk of behavior that appears in multiple Use Cases, the chunk of behavior can be modeled in a separate Use Case that is related to the other Use Cases by the Uses relationship. The Uses relationship can be thought of as a Use Case equivalent of aggregation

Figure 4 Use Case Extends Versus Uses Relationships

Use Cases Aid in Testing System against Requirements Use Cases are also used to build test scripts that are used to verify that the application satisfies the business and system requirements.When you have arrived at the lowest Use Case level, you may create a Sequence diagram for the Use Case. With the Sequence and Collaboration diagrams, you can model the implementation of the scenario.

SEQUENCE DIAGRAM FOR AIRLINE BOOKING SYSTEM

Figure 5 Sequence Diagram for a Scenario Analysis and Design with the Class Diagram The class diagram is the main static analysis and design diagram for a system. In it, the class structure of the system is specified, with relationships

between classes and inheritance structures. During analysis of the system, the diagram is developed with an eye for an ideal solution. During design, the same diagram is used, and modified to conform to implementation details. Development of Class Diagram During Analysis Use Case Driven Approach In a Use Case-driven approach to OO analysis, the Class diagram is developed through information garnered in the Use Cases, Sequence diagrams, and Collaboration diagrams. The objects found during analysis are modeled in terms of the classes they instantiate, and the object interactions are mapped to relationships between the instantiated classes.

Figure 7 Class Diagram During Analysis Stage Responsibility-Driven Extension The CRC card technique is sometimes used as an extension to UML for responsibility-driven analysis. Class definitions are refined based on the

class's responsibilities and other classes it collaborates with to fulfill responsibilities. Each class is represented on an index card, and designers play-act the roles of classes in the system to determine their job, and who they need to collaborate with to fulfill their responsibilities. This information translates directly into a class diagram; responsibilities correspond to class methods, collaborations translateto associations between classes.

Figure 8 Informal UML Extension -- CRC Cards for Responsibility Driven Analysis

Design of System with Class Diagram

During design, the class diagram is elaborated to take into account the concrete details of implementing thesystem. Multi-Tiered Architectures One concern during design is to establish the architecture of the system. This includes establishing whether it will be a simple system designed to run on a single machine, a two-tiered system consisting of a client and a server, or a multi-tiered system with user-interface objects separate from business application objects separate from the database, each potentially running on different platforms.One approach to managing the class diagram for a complex system is to separate the diagram into sections that show the application logic, the user interface design, and the classes involved with the storage of data. This can be physically done by segmenting the class diagram, using separate diagrams for each section, or simply by adding a property to each class that tracks which tier it belongs to.

Figure 9 Component Design: Specifying Interface of Class

INTERACTION DIAGRAM:-

Iterative Analysis and Design

The class diagram can be developed in an iterative fashion, through a repeated cycle of analysis, design, and implementation, and then back to analysis, to begin the cycle again. This process is often referred to as roundtrip engineering. Modeling tools such as System Architect 2001 can facilitate this process by enabling you to implement the design in a language such as C++ or Java, and then reverse the code back into the existing class diagram, automatically updating the information stored on the diagram and in the underlying repository.

Figure 10 Iterative Analysis and Design and Documentation with Class Diagram

STATE CHART DIAGRAM:-

Modeling Class Behavior with State Diagram While interaction and collaboration diagrams model dynamic sequences of action between groups of objects in a system, the state diagram is used to model the dynamic behavior of a particular object, or class of objects. A state diagram is modeled for all classes deemed to have significant dynamic behavior. In it, you model the sequence of states that an object of the class goes through during its life in response to received stimuli, together with its own responses and actions. For example, an objects behavior is modeled in terms of what state it is in initially, and what state it transitions to when a particular event is received. You also model what actions an object performs while in a certain state. States represent the conditions of objects at certain points in time. Events represent incidents that cause objects to move from one state to another. Transition lines depict the movement from one state to another.Each transition line is labeled with the event that causes the transition. Actions occur when an object arrives in a state.

Figure 11 Modeling Dynamic Behavior of Flight Object with State Diagram

ACTIVITY DIAGRAM:-

Activity Diagrams The Activity Diagram is a multi-purpose process flow diagram that is used to model behavior of the system. Activity diagrams can be used to model a Use Case, or a class, or a complicated method. An Activity Diagram is similar to a flow chart; the one key difference is that activity diagrams can show parallel processing. This is important when using activity diagrams to model business processes, some of which can be performed in parallel, and for modeling multiple threads in concurrent programs. Using Activity Diagrams to Model Use Cases Activity Diagrams provide a graphical tool to model the process of a Use Case. They can be used in addition to, or in place of, a textual description of the Use Case, or a listing of the steps of the Use Case. A textual description, code, or another activity diagram can detail the activity further. Using Activity Diagrams to Model Classes When modeling the behavior of a class, a UML State Diagram is normally used to model situations where asynchronous events occur. The Activity Diagram is used when all or most of the events represent the completion of internally generated actions. You should assign activities to classes before you are done with the activity diagram.

OBJECT DIAGRAM FOR AIRLINE BOOKING SYSTEM

Figure 12 Activity Diagram

Modeling Software Components The component diagram is used to model the structure of the software, including dependencies among software components, binary code components, and executable components. In the component diagram you model system components, sometimes grouped by package, and the dependencies that exist between components (and packages of components).

Figure 13 Modeling Components with Component Diagram

DEPLOYMENT DIAGRAM:DEPLOYMENT DIAGRAM FOR AIRLINE BOOKING SYSTEM


Modeling Distribution and Implementation

Deployment diagrams are used to model the configuration of run-time processing elements and the software components, processes, and objects that live on them. In the deployment diagram, you start by modeling the physical nodes and the communication associations that exist between them. For each node, you can indicate what component instances live or run on the node. You can also model the objects that are contained within the component. Deployment diagrams are used to model only components that exist as runtime entities; they are not used to model compile-time only or link-time only components. You can also model components that migrate from node to node or objects that migrate from component to component using a dependency relationship with the becomes stereotype.

FLIGHT DETAILS

Figure 14 Modeling Distribution of System with Deployment Diagram

Relational Database Design A UML Extension The class diagram presents an implementation neutral mechanism to model the data storage aspects of the system. Persistent classes, their attributes, and their relationships can be implemented directly in an object oriented database. However, in today's development environment, the relational database remains the predominant method for data storage. It is in modeling this area that UML falls short. The UML Class diagram can be used to model some aspects of the relational database design, but it fails to cover all the semantics involved in relational modeling, most notably the notion of keyed attributes that relate tables to one

another. To capture this information, an Entity Relation (ER) diagram is recommended as an extension to UML. The class diagram can be used to model the logical framework of the database, independent of it being objectoriented or relational, with classes representing tables, and class attributes representing columns. If a relational database is the chosen implementation medium, then the class diagram can be mapped to a logical ER diagram. Persistent classes and their attributes map directly to logical entities and their attributes; the modeler is faced with choices on how to map associations over to relationships between entities. Inheritance relationships are mapped directly to super-sub relationships between entities in an ER diagram.

Figure 15 UML Extension Relational Database Design with ER Diagram Once in the ER diagram, the modeler can begin the process of determining how the relational model fits together; and which attributes are primary keys, secondary keys, and foreign keys based on relationships with other entities. The idea is to build a logical model that conforms to the rules of data normalization.

When implementing the relational design, it is an advised strategy to map the logical ER diagram to a physical diagram representing the target RDBMS. The physical diagram can be denormalized to achieve a database design that has efficient data access times. Super-sub relationships between entities are resolved by actual table structures. In addition, the physical diagram is used to model vendor-specific properties for the RDBMS. Multiple physical diagrams are created if there are multiple RDBMS's being deployed; each physical diagram representing one target RDBMS.

6..SYSTEM ARCHITECTURE:

A:Architecture Model Used:

B. Overall Architecture:

Our System

Database Server

U s e r

Database Server Database Server

Internet

C. Detailed Architecture:

Webserv er server

Database Server

DataBase of Airlines

WML

Our Servlets Java Beans DataBase XSL STYLE SHEETS XML DOM Tree JAVA SCRIPT, APPLET HTML,

In the Design of our website we made an assumption that we are accessing the database of different airline to get the flight information. Any

last minute changes to the flight schedule are taken care by the respective airlines. Presently we are accessing database of three airlines. In our website we will be maintaining the table to hold user information, his transaction details only. The figure shows how our website is organized. The Servlet accesses the Database, which use the bean. The Servlet generates a DOM tree, which contains the required information. This XML it transformed in to a code containing HTML, JAVASCRIPT code. Which is displayed to the user in a web browser. In case of a PDA device WML code is generated by the XSL. We are using an Applet to encrypt to user credit card and password information.

7. CONTROL FLOW IN A TYPICAL USER SESSION:


User will type the URL of our site: eztickets.com in the browser. 2. User will be shown our homepage containing various page links and search option. 3. User will click on the Login button to log on into our system. 4. The user-id and password are validated and the user is allowed to login. 5. The user is directed to the home page where he can start his search for his travel options. 6. The user can select the Departure and arrival cities and click on the Search button. 7. The user will be shown a page with various list boxes he has to choose for his tickets. 8. The user will select the departure airport, arrival airport, departure date, arrival date, and number of tickets and will click on the Search button again. 9. The user is presented with page listing all the options for his search criteria.

10. The user can select one of the options and click on the Buy button. 11. The user will be shown the details of the option and the discount offered to him on his selection for his confirmation. 12. The user can click on the Confirm button or can cancel even at this point. 13. If he chooses to buy this ticket he will be sent E-mail with all details of the tickets and is shown a page with a link to the flight seating arrangement details page. 14. User can click on that link and go to the Flight seating arrangement details page. 15. He can click on the link corresponding to his flight number to see the seating arrangement of his flight. 1. User can either continue shopping or close his session by logging out of the system.

8. DATABASE DESIGN:
We use Oracle as the backend and use JDBC connectivity to access the database. The servlets access the database using JDBC and output the results according to the query, which again takes into account the options, selected by the user. The following gives the various tables and their fields used in our database, which was a major design decision of our project. USERS Table contains the details of the users registered for our services. The fields in this table are as follows: USERID PASSWORD FNAME LNAME SSN ADDRESS CARDTYPE CREDITCARD EXPMONTH EXPYEAR POINTS USERID is the PRIMARY KEY of this table.

TRANSACTIONS Table contains the details of all the transactions done by the users through our site. The table contains the following fields: TNO USERID TDATE DDATE DAIRLINE DCITY ACITY AAIRLINE RDATE TOTAL OFNO TICKETS RFNO

TNO is the PRIMARY KEY of this table. NEWS Table contains the details of the current news. This news includes flight cancellations, flight delay information and other important weather information. The table contains the following fields: HEADLINE HREF HEADLINE is the PRIMARY KEY of this table and the HREF is the link to the file, which contains the complete data regarding the headline. MOTELS Table contains the motel information for various cities. The fields in this table are as follows: CITY LUXURY MOTEL ADDRESS DELUX

(CITY,MOTEL) is the PRIMNARY KEY of this table. DELUX AND LUXURY are the corresponding of the MOTEL. AIRLINE Table contains the information about the various flight availabilities and the related information. The table has the following fields: FLIGHT DEPCITY DEPPORT DEPTIME ARRCITY ARRPORT ARRTIME AIRLINE ECPRICE ECSEATS BSPRICE BSSEATS (FLIGHT, DEPTIME) is the PRIMARY KEY of this table.

We assumed three airline databases in the above format. For that we created three different tables DELTA, UNITED, AMERICAN with the same above schema.

9SECURITY:
We have been very much successful in implementing the security features to our site as stated in our project specifications. We are enclosing the brief description of how we have carried out this feature. Password Encryption: We have used Java Applets for the encryption of the password typed by the user. We implemented the Unix Crypt command for the password encryption. The encrypted password is sent to the servlet. The encrypted password itself is stored in the database table. This will avoid unauthorized users/malicious technical staff from accessing our database. Whenever user tries to login into our system, the password typed by the user is again encrypted and is compared with the encrypted password stored in the database. Encryption of Credit Card Details: We have used RSA algorithm for the encryption of the credit card number. When the user gives credit card number in the Registration form, the credit card number is encrypted using a Java Applet implementing the RSA algorithm and is sent to the servlet. The encrypted credit card number is decrypted using the same algorithm and is stored in the database. For all other purposes the server will use the format XXXX-XXXX-XXXX-1234 and send only the last four digits of the credit card. So the sensitive card information is well secured in our system. Httpsessions: We have implemented session tracking using HTTP sessions API provided by the servlets. New session is created each time a user logs in and all the information required is stored in the session object. The HTTP session keeps track of the user status and whenever he logs

out of the system, the entire data in the session object is destroyed so that other users cant access his information. More over we are not storing the entire credit card number in the session, only the last four digits are stored. So, even if the user doesnt close the browser, others cant access his personal details.

10. HANDICAPPED ACCESS:


Text-Only Version: We have provided text-only version of our entire website which makes it more accessible to both the handicapped users and low computational powered devices. ALT Tags: We have provided ALT tags to all the images and other multimedia content on our website. This will enable the handicapped users to use their screen readers to know about the images on our site. Sitemap: We provided a map of our entire website. A hyperlink is given on Home page so that users can click on that link to have the entire sitemap. In this way the users can have a quick glance of our entire site. This will also enable the handicapped users who are unable to find particular page access that page directly from our sitemap. No Frames: We have completely avoided using frames on our web pages as these frames avoid screen readers providing information to the handicapped users. Minimal User Input: We have taken major steps to minimize the user input. We used Pull Down menus to avoid the user providing the information. User can browse the entire site with very less amount of

input. This will attract not only the handicapped users but also the normal users.

11. DISTRIBUTION OF COMPUTATION:


A. Client-side Computation: Password encryption and Credit Card encryption are done at the client-side using the java applets. This will reduce the server side computation a bit. Validation of the data entered by the user is done at the clientside using javascripts. This will avoid the users entering invalid data. All the fields either in Registration form or in Login form are checked before sending to the servlet. As we have designed our Servlets in such a way that they throw out the XML DOM tree, in a way we are able to offload the computation to the client side thereby reducing the overhead on the server side.

B. Server-side Computation: The server side computations include Servlet accessing the database Building the XML DOM tree XSL transforming the XML data into HTML/WML We are assuming that at most 500 simultaneous users will access our site at any instance, so this requires high computational powered server. We assumed dual processor web server with each 1.0 GHz power. This will be sufficient for the requirements.

12. MULTIMEDIA:
Inner view of the Flights: We created various flash videos giving the details of the flights such as: Statistical details Seating arrangement Details Rough Pictorial View of the Flights.

13. FLEXIBILITY:
Content generation and Content Presentation are separated in our system. We used XML and XSL for achieving this feature. This will enable us to extend our site to new era of alternate web access devices. We implemented our system accessing an airline database at the backend. We can extend this to access any number of airline databases as backend information providers.

12. PERFORMANCE RESULTS:


Since our website doesnt involve bandwidth occupying images or bitmaps which could unnecessarily take lot of time to load, our loading times for each of the JSP pages are quite decent and fast. Moreover we are calculating the clients bandwidth dynamically and directing the client to the text version if it has low bandwidth. The pages that invoke the servlets (which in turn access the database) to generate dynamic content may take some few seconds to load as the

servlet has to establish a connection and then has to query the database. This cannot be avoided in our case and it doesnt occupy much of a time really. The performance result actually depends on the number of users accessing the database. Our optimal case, average case and the worst case all depend upon the number of users trying to connect to the database. The worst case will be when several hundreds of users are accessing the pages, which might cause the database server to crash. Since we create new connection every time a servlet is invoked it could be a case that the connections are used rapidly and it will come to a point where the database server could crash. We have around 3 servlets for WML which enables our website to be accessed by hand held devices.

14. IMPLEMENTATION EXPERIENCES:


We had problems in implementing Dynamic Bandwidth Calculation in our site. We used an Applet to load a fixed-size image from the server to the client in the background. Based on the time taken by the file transmission we tried to direct the user to either Graphical version or the Text version of our site. We initially thought of providing the user an option of sorting the results based on his own priority. We started implementing this using java script but we were unable to implement it both in Internet explorer and Netscape navigator. We thought this wouldnt affect our sites experience much. We initially planned to show the user an animated inner view of the flights but we were unable to create the animated pictures and hence we used flash to show various static images of the flights. Initially we installed Tomcat Version 3.4.1 but it was unable to recognize the class path. So we had to move to Version 3.2.4. We had many problems with the WAP simulators in passing the parameters dynamically to the servlets. We tried on many

available WAP simulators but we were unable to find one for our purpose. We had problem with Oracle database population. We thought of providing the user at least one month flight details but because of the constraints on the usage of CIS oracle database space, we couldnt populate it as we planned.

15. SNAPSHOTS OF OUR SITE:

Graphical Version Home Page

TextVersionHomepage

15. SNAPSHOTS OF OUR WAP-ENABLED SITE: 1. HOME PAGE :

2. USER SELECTION PAGE:

ADVANTAGE OF ONLINE FLIGHT RESERVATION:


Why should I book online? Here are just some of the benefits at a glance:

New: pay by direct debit up to 9 days before departure (bank details and departure in Austria, Germany or the Netherlands) Because its cheap. Compared to booking by telephone, youll make serious savings. The processing charge for a ticket booked online is just EUR 10. Because you can make the booking any time you want. You can search for and book flights 24 hours a day, 7 days a week. Because you can use it at short notice. You can book your flight anything up to 3 hours before takeoff. Because you can book without a credit card. For departures within the next 3 days, you can also book without the need for a credit card. You simply pay your ticket at the airport before your departure. Because special offers are so easy to find. We offer a wide range of low-cost redtickets, and remaining availability is clearly shown.

Because of the support you receive. If you have any queries whatsoever, you simply call our Internet Helpdesk or send us an E-Mail. Because its so comfortable. You can check in from the comfort of your own home or office, and print out your boarding pass yourself there and then. Because you can request a seats free of charge. You simply click on your preferred seat on the seating plan, and its booked.** Because its so safe. Credit card payments are encrypted, and we guarantee complete protection of your customer data. Because of the extra services you can enjoy. You can also book hotels and rental cars online at low cost. Because you can take out travel cancellation insurance online. Because of the special menus.* Free reservation. Because of the travel info you get. Youll be sent information about your flight and valuable travel tips by E-mail during the week leading up to your departure.

DISADVANTAGES OF ONLINE FLIGHT RESERVATION:

Planning your trip over the Internet can be convenient and easy. You can research destinations at your own pace, shop around for the best fares and hotel deals, and make reservations right from your computer. But online booking can have its pitfalls. It may not always be the right choice, especially if you have special needs.

1.Live Help When you book online, you usually can't ask a live person questions about hotel rooms, flight routes, visa requirements or anything else you're concerned about. 2.Customization Many travel websites can't handle complicated itineraries, like a trip that combines train, bus and plane travel. 3.Hidden Fees Many online travel sites advertise low rates to attract your attention, and then add fees and surcharges for a much less competitive deal.
4.Special Needs

You usually can't confirm any special requests at the time of your online reservation, such as requesting a wheelchair or adding an infant to your plane ticket.

5.Limited Validity

The bargain rates that make booking online appear so attractive often mean giving up flexibility in your dates of travel or other such constraints.
6.Limited Options

Some small inns and tour guides may not have an online presence. If you only look for businesses that have websites and online booking capability, you could miss out on some local color

6. BIBLIOGRAPHY

BOOKS REFERRED The following books were used extensively for the project development and implementation. 1.The Complete Reference OF JAVA Wiley Pvt. Ltd. Publishing Company By Hill Evjen, Scott Hanselman, Devin Rader. 2. Software Engineering, A Practitioners Approach Tata McGraw-Hill Publishing Company Limited. By Roger S. Pressman. 3. Programming in ADVANCE JAVA Tata McGraw Hill Education Private Limited. By E Balagurusamy 4. PL/SQL. By Ivan Bayross.

WEBSITES REFERRED The following links were searched and exploited extensively for the project development and implementation. http://www.w3schools.com http://www.java2s.com http://info.med.yale.edu/caim/manual/index.html http://www.xml101.com:8081/xml/ http://www.webdevelopersjournal.com/ http://developer.iplanet.com/viewsource/marchal_xml.htm http://www.object-arts.com/EducationCentre/Overviews/MVC.htm http://www.w3.org/ http://www.gelon.net http://www.delta.com http://www.priceline.com

You might also like