FILE.ois
FILE.ois
1.1 Introduction
This project is intended for use by a Car Rental Company that specializes in renting cars to
customers. It is an online system that allows customers to view available cars, register, view
profiles, and book vehicles.
1.2 Motivation
The advancement of information technology and internet penetration has greatly improved
various business processes and communication between companies (service providers) and their
customers, including the car rental industry. This E-Car Rental System has been designed to offer
the following services:
● Improve Business Processes: To be able to use internet technology to project the rental
company's services to the global world rather than limiting their services to their local
domain alone, thereby increasing their return on investment (ROI).
● Online Vehicle Reservation: A tool that allows customers to reserve available cars
online in advance of their expected pick-up date or time.
● Customer registration: A registration portal that stores customer information, monitors
their transactions, and uses it to provide better and more personalized services to them.
Group bookings: Allows the customer to reserve space for a group, such as a wedding or
a corporate meeting (Event management).
1.4 Objectives
The objective of the project is to automate vehicle rental ad reservation so that the customers do
not need to call and spend unnecessary time to reserve a vehicle.
● To transform the manual process of hiring car to a computerize system
● To validate the Rental car system using user satisfaction test
● To produce the documentation such as Software Requirement Specification(SRS),
Software Design Description as system development reference
1.5 Scope
This project covers a wide range of topics, from business concepts to the computing field, and it
necessitated the completion of several research projects in order to meet the project's objectives.
The following topics are covered:
● Car rental industry: This includes research into how the car rental business is conducted,
the processes involved, and the opportunities for improvement.
● PHP Technology used for the development of the application.
● General customers as well as the company’s staff will be able to use the system
effectively.
● Web-platform means that the system will be accessible 24 hours a day, seven days a
week, except when there is a temporary server issue, which is expected to be minor.
Experiment-2
Aim- Write the initial requirement of Car Rental Management System.
1. Introduction
1.1 Purpose
The purpose of this document is to comprehensively describe all the requirements for the Car
Rental Management System. It serves as a primary communication tool between stakeholders,
including administrative staff, rental agents, developers, and customers. The document outlines
functional and non-functional requirements that define the scope of the system and guide the
development process. While face-to-face conversations may occur during the project, only the
requirements documented herein or in future revisions will be considered as the basis for system
development.
1.2 Scope
The software product under consideration is the Car Rental Management System, designed to
streamline the operations of a car rental agency. The system facilitates vehicle allocation to
customers, reservation management, billing, reporting, and administrative functions. Rental
agents utilize the system to allocate vehicles based on availability and customer requirements,
while customers use it to search for available vehicles, make reservations, and view billing
details. The intention of the system is to improve operational efficiency, reduce overtime costs,
and enhance customer satisfaction by accurately managing vehicle inventory and reservations.
1.4 References
Lauesen, S. (2003). Task Descriptions as Functional Requirements. IEEE Computer Society.
Available: http://www.itu.dk/~slauesen/Papers/IEEEtasks.pdf
1.5 Overview
This document provides a comprehensive overview of the requirements for the Car Rental
Management System, detailing functional and non-functional requirements, user characteristics,
constraints, and assumptions. It serves as a reference guide for stakeholders involved in the
development, implementation, and maintenance of the system.
2. Overall Description
2.1.7 Operations
The system shall perform operations such as vehicle registration, reservation management,
billing, reporting, and administrative functions. It shall handle concurrent user interactions and
data processing tasks efficiently, ensuring smooth and uninterrupted operation.
● Vehicle Registration: Admins shall be able to register new vehicles into the system,
providing details such as make, model, year, registration number, and rental price per day.
● Reservation Management: Users shall be able to search for available vehicles and make
reservations based on criteria such as location, date, vehicle type, and rental duration.
● Billing and Payment Processing: The system shall calculate rental charges, process
payments securely, and generate invoices for completed bookings.
● Reporting and Analytics: The system shall generate reports on key metrics such as
revenue, occupancy rate, and popular vehicle models for analysis and decision-making.
● Administrative Functions: Admins shall have access to a dashboard for managing
system settings, user accounts, and vehicle inventory.
● Admins: Responsible for managing the system settings, user accounts, and vehicle
inventory.
● Rental Agents: Handle customer inquiries, allocate vehicles, and manage reservations.
● Customers: Search for available vehicles, make reservations, and view billing details
through the user interface.
2.4 Constraints
● Regulatory Compliance: The system shall comply with data protection regulations such
as GDPR and PCI DSS to ensure the security and privacy of user data.
● Compatibility: The system shall be compatible with major web browsers and operating
systems to provide a consistent user experience across different platforms.
● Scalability: The system architecture shall be scalable to accommodate future growth in
user base and vehicle inventory, supporting increased demand and data volume.
Theory
A Use Case Diagram is a vital tool in system design, it provides a visual representation of how
users interact with a system. It serves as a blueprint for understanding the functional
requirements of a system from a user’s perspective, aiding in the communication between
stakeholders and guiding the development process.
A use case diagram is a representation of a user’s interaction with the system that shows the
relationship between the user and different use cases in which the user is involved. A use case
diagram is used to represent the dynamic behavior of a system.
It encapsulates the system’s functionality by incorporating the use cases, actors and their
relationship. It models the tasks, services and functions required by a system/subsystem of an
application.
It depicts the high-level functionality of a system and also tells how the user handles a system. A
use case diagram is typically used to portray the dynamic aspects of a system. It gathered the
system needs, depicted the external view of the system, recognized the internal as well as
external factors that influenced the system and represented the interaction between actors.
1) Actors: The users that interact with a system. An actor may be a person, an organization or an
outside system that interacts with an application or system and they appear outside the rectangle.
2) Use Case: It is a list of actions or event steps, typically defining the interactions between a
role/actor and a system, to achieve a goal. These use cases are represented within a rectangle
providing functionality.
3) Relationships: It is basically a solid line that describes the relationship between actors and use
cases or between the use cases.
Experiment-4
Aim- Design Use Case Description of Car Rental Management System.
Introduction: This use case describes the process by which a user registers as a member on
the car rental platform.
Actors: Customer
Precondition: The user accesses the car rental system website or mobile application.
Postcondition: The user's registration information is stored in the system, and they become a
registered member.
Event Flow
Basic Flow:
1. The user navigates to the registration page on the car rental platform.
2. The user enters their personal details, such as name, email, phone number, and password.
3. The user submits the registration form.
4. The system validates the entered information.
5. If the information is valid, the system registers the user as a member and sends a
confirmation email.
6. The user receives the confirmation email and verifies their account.
7. The user's registration is completed successfully.
Alternate Flow:
If the entered information is invalid, the system prompts the user to correct the errors and
resubmit the form.
Special Requirements:
The system should ensure that each email address is unique to prevent duplicate registrations.
Passwords should be securely hashed and stored in the database.
Associated Use Cases:
Process Rental: After registration, the user can proceed to rent a car.
Make Reservation: The registered member can make reservations for vehicles.
Introduction: This use case describes the process by which a registered member makes a
reservation for a vehicle.
Actors: Customer
Precondition: The user is logged in to their account on the car rental platform.
Postcondition: A reservation is created for the selected vehicle, and the user receives a
confirmation.
Event Flow
Basic Flow:
1. The user searches for available vehicles based on location, date, and other criteria.
2. The user selects a vehicle from the search results.
3. The user specifies the rental dates and any additional preferences.
4. The user confirms the reservation.
5. The system validates the reservation details and checks for vehicle availability.
6. If the vehicle is available, the system creates a reservation and sends a confirmation to the
user.
7. The user receives the reservation confirmation via email or on the platform.
Alternate Flow:
If the selected vehicle is not available for the specified dates, the system notifies the user and
suggests alternative options.
Special Requirements:
The system should display real-time availability and pricing information for vehicles.
Users should be able to modify or cancel reservations within a specified timeframe.
Associated Use Cases:
Process Rental: The reservation process is a precursor to renting a vehicle.
Return Car: Once the reservation period is over, the user can return the vehicle.
Introduction: This use case describes the process by which a customer returns a rented
vehicle to the car rental agency.
Actors: Customer
Precondition: The customer has rented a vehicle from the car rental agency.
Postcondition: The rental agreement is terminated, and the vehicle is checked back into the
system as available for rent.
Event Flow
Basic Flow:
1. The customer arrives at the designated return location with the rented vehicle.
2. The customer informs the rental agent of their intent to return the vehicle.
3. The rental agent inspects the vehicle for any damages or discrepancies.
4. If there are no issues, the rental agent closes the rental agreement in the system.
5. The system updates the vehicle's status to "available for rent."
6. The customer receives a confirmation of the return.
Alternate Flow:
If there are damages or issues with the vehicle, the rental agent follows the protocol for handling
such situations, which may involve documenting the damages and initiating repairs.
Special Requirements:
The return process should be quick and efficient to minimize customer wait times.
The system should maintain accurate records of vehicle returns for billing and inventory
purposes.
Associated Use Cases:
Process Rental: Returning the vehicle concludes the rental process.
Add New Car: After a vehicle is returned, it becomes available for rent again.
Alternate Flow:
If the customer encounters any issues with the feedback submission process, they may contact
customer support for assistance.
Special Requirements:
The feedback form should be easy to access and user-friendly to encourage participation.
The system should allow customers to submit feedback anonymously if desired.
Associated Use Cases:
Reply to Customer's Feedback: After receiving feedback, the car rental agency may respond to
the customer's comments or take corrective actions as needed.
Alternate Flow:
If the admin encounters any issues during the new car addition process, they may contact
technical support for assistance.
Special Requirements:
The system should support the addition of various types of vehicles, including cars, vans, trucks,
etc.
Admins should have the option to set availability dates and restrictions for newly added vehicles.
Associated Use Cases:
Update Car Details: After adding a new car, the admin may need to make changes or updates to
its details.
Process Rental: The newly added car becomes available for rental after being added to the
inventory.
Alternate Flow:
If the admin encounters any issues during the car details update process, they may revert the
changes or contact technical support for assistance.
Special Requirements:
The system should maintain a revision history of car details to track changes made by admins.
Changes to car details should be reflected in real-time on the rental platform for customers to
see.
Associated Use Cases:
Add New Car: After updating the details of an existing car, the admin may need to add more cars
to the inventory.
Process Rental: Updated car details affect availability and rental rates for customers.
Alternate Flow:
If the feedback requires further investigation or follow-up, the admin may escalate the issue to
the appropriate department or personnel for resolution.
Special Requirements:
The system should provide templates or guidelines for formulating responses to common types
of feedback.
Responses to customer feedback should be timely and professional to maintain customer
satisfaction.
Associated Use Cases:
Give Feedback: Customers provide feedback, which may lead to further communication or
action by the car rental agency.
Introduction: This use case describes the process by which a customer rents a vehicle from
the car rental agency.
Actors: Customer, Rental Agent
Precondition: The customer has completed the reservation process and is ready to pick up the
rented vehicle.
Postcondition: The customer receives the rented vehicle along with all necessary
documentation, and the rental agreement is initiated.
Event Flow
Basic Flow:
1. The customer arrives at the designated pickup location to collect the rented vehicle.
2. The rental agent verifies the customer's reservation details and identity.
3. The rental agent prepares the rental agreement and explains the terms and conditions to
the customer.
4. The customer signs the rental agreement and provides any required documentation, such
as a driver's license and insurance information.
5. The rental agent hands over the keys and relevant documents to the customer.
6. The customer inspects the vehicle for any damages and notes them on the rental
agreement if necessary.
7. The rental agent records the vehicle handover in the system and marks the reservation as
"fulfilled."
Alternate Flow:
If there are discrepancies or issues with the reservation or documentation, the rental agent
follows the appropriate protocol for resolving them.
Special Requirements:
The rental process should be efficient and streamlined to minimize customer wait times.
The system should generate rental agreements with all relevant details, including rental rates,
insurance coverage, and vehicle condition.
Associated Use Cases:
Return Car: After the rental period is over, the customer returns the vehicle to the car rental
agency.
Make Reservation: Renting a vehicle follows the reservation process, where the customer selects
a vehicle and specifies rental dates.
Alternate Flow:
If the admin encounters any issues during the staff addition process, they may revert the changes
or contact technical support for assistance.
Special Requirements:
The system should support different types of staff roles, such as rental agents, administrative
staff, and managers.
Access privileges should be configurable and granular to ensure appropriate data security and
confidentiality.
Associated Use Cases:
Update Staff Details: After adding a new staff member, the admin may need to make changes or
updates to their details.
Process Rental: New staff members may be involved in various stages of the rental process, such
as customer service or vehicle inspection.
Alternate Flow:
If the admin encounters any issues with report generation or access, they may contact technical
support for assistance.
Special Requirements:
The system should provide customizable report templates and filters to cater to different
analytical needs.
Reports should be generated in a user-friendly format, such as tables, charts, or graphs, for easy
interpretation.
Associated Use Cases:
Update Car Details: Analysis of reports may inform decisions related to adding new vehicles or
adjusting rental rates.
Process Rental: Rental transaction data may be included in various reports for financial analysis
and forecasting.
Experiment-6
Aim- Design Class diagram of Car Rental Management System.
Theory
The class diagram represents a static view of an application. It depicts the types of objects
residing in the system and the relationships between them. A class consists of its objects, and
also it may inherit from other classes. This diagram is used to visualize, describe, document
various different aspects of the system, and also to construct executable software code. The class
diagram represents a static view of an application. It depicts the types of objects residing in the
system and the relationships between them. A class consists of its objects, and also it may inherit
from other classes. This diagram is used to visualize, describe, document various different
aspects of the system, and also to construct executable software code.
The class diagram is the basic building block; in a class diagram, a number of classes are
recognized and arranged together, which aids in determining the structural relations between
those objects. Class diagrams are a type of UML (Unified Modeling Language) diagram used in
software engineering to visually represent the structure and relationships of classes in a system.
UML is a standardized modeling language that helps in designing and documenting software
systems.
Experiment-7
Aim- Design Sequence Diagram of Car Rental Management System.
Theory
A sequence diagram simply depicts interaction between objects in a sequential order i.e. the
order in which these interactions take place. We can also use the terms event diagrams or event
scenarios to refer to a sequence diagram. Sequence diagrams describe how and in what order the
objects in a system function. These diagrams are widely used by businessmen and software
developers to document and understand requirements for new and existing systems. It helps in
envisioning several dynamic scenarios. It portrays the communication between any two lifelines
as a time-ordered sequence of events, such that these lifelines took part at the run time. In UML,
the lifeline is represented by a vertical bar, whereas the message flow is represented by a vertical
dotted line that extends across the bottom of the page. It incorporates the iterations as well as
branching. Uses of sequence diagrams –
• Used to model and visualize the logic behind a sophisticated function, operation or procedure.
• They are also used to show details of UML use case diagrams.
• Used to understand the detailed functionality of current or future systems.
• Visualize how messages and tasks move between objects or components in a system.
Member Registration
Reservation of Car
Customer Feedback
Adding a New Car
Feedback Response
Return Car and Check Rental Details
View Report
Experiment-8
Aim- Design Collaboration Diagram of Car Rental Management System.
Theory
A collaboration diagram, also known as a communication diagram, is an illustration of the
relationships and interactions among software objects in the Unified Modeling Language (UML).
These diagrams can be used to portray the dynamic behavior of a particular use case and define
the role of each object. Both the sequence and the collaboration diagrams represent the same
information but differently. Instead of showing the flow of messages, it depicts the architecture
of the object residing in the system as it is based on object oriented programming. An object
consists of several features. Multiple objects present in the system are connected to each other.
The collaboration diagram is used to portray the object's architecture in the system. Following
are some of the use cases enlisted below for which the collaboration diagram is implemented:
1. To model collaboration among the objects or roles that carries the functionalities of use cases
and operations.
2. To model the mechanism inside the architectural design of the system.
3. To capture the interactions that represent the flow of messages between the objects and the
roles inside the collaboration.
4. To model different scenarios within the use case or operation, involving a collaboration of
several objects and interactions.
5. To support the identification of objects participating in the use case.
Experiment-9
Aim- Design Activity Diagram of Car Rental Management System.
Theory
An activity diagram is a behavioral diagram i.e. it depicts the behavior of a system. An activity
diagram portrays the control flow from a start point to a finish point showing the various
decision paths that exist while the activity is being executed. We can depict both sequential
processing and concurrent processing of activities using an activity diagram. They are used in
business and process modeling where their primary use is to depict the dynamic aspects of a
system. Some of the most common components of an activity diagram include:
• Action: A step in the activity wherein the users or software perform a given task. In Lucid
chart, actions are symbolized with round-edged rectangles.
• Decision node: A conditional branch in the flow that is represented by a diamond. It includes a
single input and two or more outputs.
• Control flows: Another name for the connectors that show the flow between steps in the
diagram.
• Start node: Symbolizes the beginning of the activity. The start node is represented by a black
circle.
• End node: Represents the final step in the activity. The end node is represented by an outlined
black circle.
Member Registration
Profile Modification
Customer Feedback
Reservation of Car
View Report
Experiment-10
Aim- Design Test Cases of Car Rental Management System.
Test Cases for Car Rental Management System
1. Vehicle Registration
● Verify Vehicle Registration: Register a new vehicle with all mandatory details. Verify
that the vehicle is successfully added to the inventory.
● Duplicate Registration: Attempt to register a vehicle with the same registration number
as an existing vehicle. Verify that the system displays an error message and prevents
duplicate registration.
2. Reservation Management
● Search for Available Vehicles: Search for available vehicles based on location, date, and
vehicle type. Verify that the system displays a list of matching vehicles.
● Book Vehicle: Book a vehicle for a specific date and time. Verify that the vehicle's
availability status is updated, and the reservation is recorded correctly.
● Cancel Reservation: Cancel a reservation before the pickup time. Verify that the vehicle
becomes available again, and the reservation is removed from the system.
6. User Interface
● GUI Navigation: Navigate through different sections of the user interface, such as
vehicle search, reservation booking, and account management. Verify that all features are
accessible and functional.
● Error Handling: Enter invalid input or perform incorrect actions in various parts of the
system. Verify that appropriate error messages are displayed to guide the user.
7. Performance Testing
● Response Time: Perform simultaneous actions, such as searching for vehicles and
making reservations, with multiple users. Measure the response time of the system and
verify that it remains within acceptable limits.
● Concurrency Test: Simulate a high load scenario with a large number of concurrent
users accessing the system. Verify that the system can handle the load without crashing or
slowing down significantly.
8. Security Testing
● Authentication: Attempt to access restricted functionalities without logging in. Verify
that the system redirects to the login page and prompts the user to authenticate.
● Data Protection: Enter malicious input or attempt to manipulate URLs to access
unauthorized data. Verify that the system detects and prevents such unauthorized access
attempts.
9. Compatibility Testing
● Browser Compatibility: Access the system using different web browsers (e.g., Chrome,
Firefox, Safari) and verify that all features work correctly on each browser.
● Device Compatibility: Access the system from different devices (e.g., desktop, laptop,
tablet, smart phone) with varying screen sizes and resolutions. Verify that the user
interface is responsive and adapts to different devices.