RRS Software Design Report
RRS Software Design Report
Submitted by:
1.1Assumptions:
The system design would be able to manage all the reservation related functions.
The system is distributed in nature and has been divided into different zones. Each
zone has same functionalities and can store the information about Train name, train
schedules, availability.
Modules:
Admin Module
Train Details Module
Reservation Module
Billing Module
Cancellation Module
Features:
• The administrator would be able to enter any change related to the train
information like change in train name, number etc.
• The system is able to reserve seat in a train for a passenger and cancel a
reservation.
• The passengers can check their reservation status online by entering their PNR no.
• The system can display passenger’s current status like confirmed, RAC or waiting
list. They are also able to see information related to the train schedules.
• The system is able to print the report and can generate reservation chart, train
report, reservation ticket which will have train no and name, date of journey,
Boarding station, destination station, person name, age, [censored], total fare and a
unique PNR no.
• The system is able to print the cancellation ticket which will have total fare and the
amount deducted.
1.2 Constraints:
Standards Compliance:
For example, this could specify the requirement for software to trace processing activity.
Such traces are needed for some applications to meet minimum government or
financial standards. An audit trace requirement might, for example, state that all
changes to a payroll data base must be recorded in a trace file with before and after
values.
Hardware Limitations:
Identify the requirements for the software to operate inside various
hardware constraints.
25
Quality Characteristics:
There are a number of quality characteristics that can apply to software. Pick the
ones most important to this product and develop a section for each one.
Hardware Requirement:
* Intel Processor 2.0 GHz or above.
* GB RAM or more.
* 160 GB or more Hard Disk Drive or above.
* Front end:
* HTML
* CSS
* JavaScript
* Back end:
* PHP
* MySQL
SPIRAL MODEL:
A spiral model is divided into a number of framework activities
Typically, there are six task regions as shown in figure.
Customer communication—tasks required to establish effective communication
between developer and customer.
Planning—tasks required to define resources, timelines, and other project related
information
Risk analysis—tasks required to assess both technical and management risks.
Engineering—tasks required to build one or more representations of the
application.
Construction and release—tasks required to construct, test, install, and provide
user support (e.g., documentation and training).
Customer evaluation—tasks required to obtain customer feedback based on
evaluation of the software representations created during the engineering stage
and implemented during the installation stage.
The decision to use the spiral model methodology is due to the following characteristics
of the project:
Early iterations of the project are the cheapest, enabling the highest risks to be
addressed at the lowest total cost. This ensures that as costs increase, risks
decrease.
Each iteration of the spiral can be tailored to suit the needs of the project.
2. Architecture
A typical three-layer structure is used in the system: the database layer, the application
service layer and the user interface layer.
The context diagram shows the main actors interacting with the system.
Booking profile
history
help
PNR enquiry Find Train
Reservation
Edit Change password
Cancellation
Check availability
Enter details Fin Reset
d
“Train ”class contains no operations of its own it just gets information about the
train no and the train name and update the database
accordingly.Theparent(Container)classis“passenger”andthechild(Contained)classis“train”
.
“Clerk ”class contains two operations of its own namely cancellation form and form
details cancellation form generates a cancellation request form for the who want to delete
his booked ticket while form details is a function that return details of the form to the
parent class “passenger”.
“Payment” is a class that do not have functions of its own ,it just contains return total
amount that has to be paid by the user who has just booked ticket.
Lastly the parent class “passenger” contains a class named railway system that has id
attribute and a class named response which basically returns a response to the
passenger class so that the booking ticket process is initiated and done completely.
6.4 Class Diagram for ticket Cancellation
ThePHP classforticket cancellation
is:“Customer.java”,itimportsfiveotherclassestousethemfor
callingdifferentmethods.Thefourclassesare:“Refund”,“Ticket”,“Agent”, “Booking
counter” and “common functions”.
“Ticket
class”containsseveralmethodstoconnecttothedatabase,“Passenger”usesthisclasstoselectdat
a
fromtheDatabase,orUpdatetheDatabase.Therelationshipbetweenthetwoclassesisasimpl
eaggregation
relationship.Theparent(Container)classis“Passenger”andthechild(Contained)classis“ticket
”the child class can still exist and function if the parent class is destroyed.
“Common functions ”class has many other important functions like “search ticket”,
“book ticket”, , “cancel ticket”, “make payments” and “fill details” .All the functions
do their respective jobs and return the data to the customer class to update the database.
“Refund” class the child class contains an operation refund amount that calculates &
returns the amount to be refunded to the user when he/she cancel the ticket. it has several
function inside it to deduce the required amount of money from the original amount paid
by the user and return the required data to the customer function.
“Agent class ” contains no other functions of its own it just contains two attributes
namely id and name of the user that is taking the charge of canceling the ticket of the
user.
6.5 Module Search
Class SQLSearch – this is more concrete class, which inherits all methods from
interface IGenericSearch and class AGenericSearch. This class performs search in
specific area, in databases.
Class DB_Utiles – this class connects with DB and return result of query
in different data structures. Class SQL_query - general class to run any
SQL query and receive a table as the result.
Class Message – this class transfers information (for example, about errors) from class
to class. We choose message instead of String because it is more universal. String is
not mutable, as soonaswecreatenew String, weloseoldinformation, while
withmessagethis problem is absent.
Class SearchDriver – this class shows in which way we perform search. It takes
from user request what and where to search, creates necessary objects, after all
another class performs search in thoseobjects.
Class SearchException – this class and its subclasses are form of Throwable that
indicates conditions that a reasonable application might want to catch.
Class ResultBean – contains getters for accessing Data Module (JAVA classes)
from the View Module (HTML). Getters must have names with following strong
rule: “get” + MethodName. Correspondent method will be automatically called.
Class SearchBean – contains getters for accessing Data Module (JAVA classes)
from the View Module (HTML). Getters must have names with following strong
rule: “get” + MethodName. Correspondent method will be automatically called.
So from this follows that in our design we use Abstract Factory Pattern. By
definition Abstract Factory Pattern “provides an interface for creating families of
related or dependent objects without specifying their concrete classes”. In
implementation it is no families (it is only one class SQLSearch), because as was
mentioned earlier, in our project Basic search is a one of the cases of Advanced
search. In addition all information in inventory system keeps in databases, so there
is no necessity to perform search in another collections. However design is flexible
and allows creating families (for example, SQLSearch, CollectionSearch) for more
complicated task.
visitor pattern breaks the Open-Closed Principle (Software entities should be open
for extension but closed for modification);
writing additional code: the visitor class with one abstract method per class, and a
accept method per class. If we add anewclass, thevisitor class needsanewmethod
7. Questions
OBJECTIVE:
The main objective of this section is to pin out major advantages and limitations of
railways reservation system.
There are a number of questions that we would use to guide our review.
Q1. Is the Passenger Reservation System an optimal application for the users?
Ans. The Internet-based E-ticketing reservation system, whose front end has been
developed using CRIS. It allows a passenger anywhere to book train tickets from
any station to any station. RRS handles reservations, changes, cancellations and
refunds. Complex rules, validations and fare-computation techniques are
interwoven in the application.
Q6. Does the website provide proper train route information to ensure safety during
journey?
Ans. The RRS software provides real-time railway route information. Information
includes location, status and keeps a proper track of all the intermediate stations between
the destinations. The software issue SMS alerts to management and supervisors if crew
levels drop below a level likely to affect train operations.