Nothing Special   »   [go: up one dir, main page]

DHRUV BHASIN (RA2111003011395) : (2018 Regulation)

Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

CAR RENTAL SYSTEM

PROJECT REPORT

18CSC202J/ 18AIC203J - OBJECT ORIENTED DESIGN AND


PROGRAMMING LABORATORY
(2018 Regulation)
II Year/ III Semester
Academic Year: 2022 -2023
By
SHRUTHI (RA2111003011397)
DHRUV BHASIN(RA2111003011395)
MANASVI RAO KANUKOLAN (RA2111003011406)
Under the guidance of
Dr. V.Deeban Chakravarthy
Assistant Professor
Department of Computational Intelligence

FACULTY OF ENGINEERING AND TECHNOLOGY


SCHOOL OF COMPUTING
SRM INSTITUTE OF SCIENCE AND TECHNOLOGY
KATTANKALATHUR, KANCHEEPURAM
NOVEMBER 2022

1
BONAFIDE

This is to certify that 18CSC202J - OBJECT ORIENTED DESIGN AND


PROGRAMMING LABORATORY project report titled “CAR RENTAL
SYSTEM” is the bonafide work of SHRUTHI (RA2111003011397) MANASVI
DHRUV
RAO BHASIN(RA2111003011395)
KANUKOLAN (RA2111003011406)
who undertook the task of completing the project within the allotted time.

Signature of the Guide Signature of the II Year Academic Advisor


Dr.V.Deeban Chakravarthy -------------------------
Assistant Professor Professor and Head
COMPUTER SCIENCE
Department of CINTEL, COMPUTER SCIENCE
Department of CINTEL
SRM Institute of Science and Technology SRM Institute of Science and
Technology

2
About the course:-

18CSC202J/ 8AIC203J - Object Oriented Design and Programming are 4 credit courses
with L T P C as 3-0-2-4 (Tutorial modified as Practical from 2018 Curriculum onwards)

Objectives:
The student should be made to:
• Learn the basics of OOP concepts in C++
• Learn the basics of OOP analysis and design skills.
• Be exposed to the UML design diagrams.
• Be familiar with the various testing techniques

Course Learning Rationale (CLR): The purpose of learning this course is to:

1. Utilize class and build domain model for real-time programs


2. Utilize method overloading and operator overloading for real-time application
development programs
3. Utilize inline, friend and virtual functions and create application development programs
4. Utilize exceptional handling and collections for real-time object-oriented programming
applications
5. Construct UML component diagram and deployment diagram for design of applications
6. Create programs using object-oriented approach and design methodologies for real-time
application development

Course Learning Outcomes (CLO): At the end of this course, learners will be able to:

1.Identify the class and build domain model


2.Construct programs using method overloading and operator overloading
3.Create programs using inline, friend and virtual functions, construct programs using
standard templates
4.Construct programs using exceptional handling and collections
5.Create UML component diagram and deployment diagram
6.Create programs using object-oriented approach and design methodologies

3
Table 1: Rubrics for Laboratory Exercises
(Internal Mark Splitup:- As per Curriculum)

CLAP-1 5= (2(E-lab Completion) + 2(Simple Exercises) (from Elab test


CodeZinger, and any other coding platform) +
1(HackerRank/Code chef/LeetCode Weekend
Challenge)
CLAP-2 7.5= (2.0(E-lab Completion) + Elab test
2.0 (Simple Exercises)( from CodeZinger, and any
other coding platform) + 3.5 (HackerRank/Code
chef/LeetCode Weekend Challenge)
CLAP-3 7.5= (2.0(E-lab Completion (80 Pgms) + 2 Mark - E-lab Completion 80
2.0 (Simple Exercises) (from CodeZinger, and any Program Completion from 10
Session (Each session min 8
other coding platform) + 3.5 (HackerRank/Code program)
chef/LeetCode Weekend Challenge) 2 Mark - Code to UML
conversion GCR Exercises
3.5 Mark - Hacker Rank Coding
challenge completion

CLAP-4 5= 3 (Model Practical) + 2(Oral Viva) • 3 Mark – Model Test


• 2 Mark – Oral Viva

Total 25

4
COURSE ASSESSMENT PLAN FOR OODP LAB
S.No List of Experiments Course Blooms Level PI No of
Learning Programs
Outcomes in each
(CLO) session
1. Implementation of I/O Operations in CLO-1 Understand 2.8.1 10
C++
2. Implementation of Classes and Objects CLO-1 Apply 2.6.1 10
in C++
3, To develop a problem statement. CLO-1 Analysis 4.6.1 Mini
1. From the problem statement, Identify Project
Use Cases and develop the Use Case Given
model.
2. From the problem statement, Identify
the conceptual classes and develop a
domain model with a UML Class
diagram.
4. Implementation of Constructor CLO-2 Apply 2.6.1 10
Overloading and Method Overloading
in C++
5. Implementation of Operator CLO-2 Apply 2.6.1 10
Overloading in C++
6. Using the identified scenarios, find the CLO-2 Analysis 4.6.1 Mini
interaction between objects and Project
represent them using UML Sequence Given
diagrams and Collaboration diagrams
7. Implementation of Inheritance concepts CLO-3 Apply 2.6.1 10
in C++
8. Implementation of Virtual function & CLO-3 Apply 2.6.1 10
interface concepts in C++
9. Using the identified scenarios in your CLO-3 Analysis 4.6.1 Mini
project, draw relevant state charts and Project
activity diagrams. Given
10. Implementation of Templates in C++ CLO-3 Apply 2.6.1 10
11. Implementation of Exception of CLO-4 Apply 2.6.1 10
Handling in C++
12. Identify the User Interface, Domain CLO-5 Analysis 4.6.1 Mini
objects, and Technical Services. Draw Project
the partial layered, logical architecture Given
diagram with UML package diagram
notation such as Component
Diagram, Deployment Diagram.
13. Implementation of STL Containers in CLO-6 Apply 2.6.1 10
C++
14. Implementation of STL associate CLO-6 Apply 2.6.1 10
containers and algorithms in C++
15. Implementation of Streams and File CLO-6 Apply 2.6.1 10
Handling in C++

5
LIST OF EXPERIMNENTS FOR UML DESIGN AND MODELLING:
To develop a mini-project by following the exercises listed below.
1. To develop a problem statement.
2. Identify Use Cases and develop the Use Case model.
3. Identify the conceptual classes and develop a domain model with UML Class diagram.
4. Using the identified scenarios, find the interaction between objects and represent them
using UML Sequence diagrams.
5. Draw relevant state charts and activity diagrams.
6. Identify the User Interface, Domain objects, and Technical services. Draw the partial
layered, logical architecture diagram with UML package diagram notation.

Suggested Software Tools for UML:


StarUML, Rational Suite, Argo UML (or) equivalent, Eclipse IDE and Junit

6
ABSTRACT

Many travellers take renting a car for granted especially during the pandemic
when isolation is a priority. Customers prefer convenient and timely service, but
it’s not uncommon for car rentals to lag. Roughly speaking, vehicle pick-ups
delay every third time. Considering the tight competition in this business
landscape, car rental services can’t fail to satisfy their customers. If you want to
accept online reservations and manage your fleet with ease, what you need is a
Car Rental Reservation System (RRS). In this article, we’ll tell you about the
underlying modules of a Car RRS, review some of the key software providers,
and give tips for those ready to roll up their sleeves and build their own platform.

Customers will be able to reserve their vehicles from anywhere in the world due
to the Car Rental System. Consumers provide information to this application by
filling in their personal information. When a consumer creates an account on the
website, he or she can reserve a car. The proposed system is an online system that
is fully integrated. It effectively and efficiently automates manual procedures.
Customers are aided by this automated method, which allows them to fill in the
specifics according to their needs. It contains information on the sort of car they
want to hire as well as the location. The goal of this system is to create a website
where customers can book their automobiles and request services from anywhere
in the world.

There are three phases to this car rental system:

The first phase entails organising car rental locations into pools and allowing
pooled car rental outlets to share a fleet of automobiles. The second phase for
each pool determines the types and quantities of cars to be acquired and delivered
to the auto manufacturer, as well as the geographic redistribution of automobiles
among pools across the long-term planning horizon. The third phase entails day-
to-day operations, during which the fleet's deployment within each pool and
among its locations is determined.

7
MODULE DESCRIPTION

If a driver decides to rent a car beforehand, they go to a car rental website or


app and find a vehicle that meets their needs. Then, they book it and pay for the
chosen rental period, if upfront payment is required.

On the appointed day, this customer arrives at the car rental location to pick up
the chosen car. An agent makes copies of their IDs, explains the terms of the
lease, instructs them on any special features of the car, and finally hands them
the keys. When the customer drops off the car, the agent checks its mileage and
inspects for any damages.

In fact, the car rental process involves many more operations under the hood.
Automating them improves the speed and quality of service. Let’s zoom in on
how each module of the Car RRS contributes to that.

8
USE CASE DIAGRAM WITH EXPLANATION

Use-case diagrams describe the high-level functions and scope of a system.


These diagrams also identify the interactions between the system and its actors.
The use cases and actors in use-case diagrams describe what the system does
and how the actors use it, but not how the system operates internally.

Use-case diagrams illustrate and define the context and requirements of either
an entire system or the important parts of the system. You can model a complex
system with a single use-case diagram, or create many use-case diagrams to
model the components of the system. You would typically develop use-case
diagrams in the early phases of a project and refer to them throughout the
development process.

9
CLASS DIAGRAM WITH EXPLANATION

The class diagram depicts a static view of an application. It represents 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. A class diagram
is used to visualize, describe, document various different aspects of the system,
and also construct executable software code.

It shows the attributes, classes, functions, and relationships to give an overview


of the software system. It constitutes class names, attributes, and functions in a
separate compartment that helps in software development. Since it is a collection
of classes, interfaces, associations, collaborations, and constraints, it is termed as
a structural diagram.

10
SEQUENCE DIAGRAM WITH EXPLANATION

A sequence diagram is a Unified Modelling Language (UML) diagram that


illustrates the sequence of messages between objects in an interaction. A
sequence diagram consists of a group of objects that are represented by
lifelines, and the messages that they exchange over time during the interaction.

A sequence diagram shows the sequence of messages passed between objects.


Sequence diagrams can also show the control structures between objects. For
example, lifelines in a sequence diagram for a banking scenario can represent a
customer, bank teller, or bank manager. The communication between the
customer, teller, and manager are represented by messages passed between
them. The sequence diagram shows the objects and the messages between the
objects.

11
COMMUNICATION DIAGRAM WITH EXPLANATION

A communication diagram is an extension of object diagram that shows the


objects along with the messages that travel from one to another. In addition to
the associations among objects, communication diagram shows the messages
the objects send each other. Communication diagrams show much of the same
information as sequence diagrams, but because of how the information is
presented, some of it is easier to find in one diagram than the other.
Communication diagrams show which elements each one interacts with better,
but sequence diagrams show the order in which the interactions take place more
clearly. However, communication diagrams use the free-form arrangement of
objects and links as used in Object diagrams. In order to maintain the ordering
of messages in such a free-form diagram, messages are labeled with a
chronological number and placed near the link the message is sent over.

12
STATE CHART DIAGRAM WITH EXPLANATION

A state diagram is a type of used in computer science and related fields to


describe the behavior of systems. State diagrams require that the system
described is composed of a finite number of states; sometimes, this is indeed the
case, while at other times this is a reasonable abstraction. State diagrams mainly
depict states and transitions. States are represented with rectangles with rounded
corners that are labeled with the name of the state. Transitions are marked with
arrows that flow from one state to another, showing how the states change.
Each state diagram typically begins with a dark circle that indicates the initial
state and ends with a bordered circle that denotes the final state. However,
despite having clear start and end points, state diagrams are not necessarily the
best tool for capturing an overall progression of events. Rather, they illustrate
specific kinds of behavior—in particular, shifts from one state to another.

13
ACTIVITY DIAGRAM WITH EXPLANATION

Activity diagrams are graphical representations of workflows of stepwise


activities and actions with support for choice, iteration and concurrency. In the
UML, activity diagrams are intended to model both computational and
organizational processes (i.e., workflows), as well as the data flows intersecting
with the related activities. Although activity diagrams primarily show the
overall flow of control, they can also include elements showing the flow of data
between activities through one or more data stores. Activity diagrams can be
regarded as a form of a structured flowchart combined with a traditional data
flow diagram. Typical flowchart techniques lack constructs for expressing
concurrency. However, the join and split symbols in activity diagrams only
resolve this for simple cases; the meaning of the model is not clear when they
are arbitrarily combined with decisions or loops.

14
PACKAGE DIAGRAM WITH EXPLANATION

Package diagrams are structural diagrams used to show the organization and
arrangement of various model elements in the form of packages. A package is a
grouping of related UML elements, such as diagrams, documents, classes, or
even other packages. Each element is nested within the package, which is
depicted as a file folder within the diagram, then arranged hierarchically within
the diagram. Package diagrams are most commonly used to provide a visual
organization of the layered architecture within any UML classifier, such as a
software system. Package diagrams are used, in part, to depict import and
access dependencies between packages, classes, components, and other named
elements within your system. Each dependency is rendered as a connecting line
with an arrow representing the type of relationship between the two or more
elements.

15
COMPONENT DIAGRAM WITH EXPLANATION

Component diagrams are used in modeling the physical aspects of object-


oriented systems that are used for visualizing, specifying, and documenting
component-based systems and also for constructing executable systems
through forward and reverse engineering. Component diagrams are essentially
class diagrams that focus on a system's components that often used to model
the static implementation view of a system. A component diagram breaks
down the actual system under development into various high levels of
functionality. Each component is responsible for one clear aim within the
entire system and only interacts with other essential elements on a need-to-
know basis. A component represents a modular part of a system that
encapsulates its contents and whose manifestation is replaceable within its
environment.

16
DEPLOYMENT DIAGRAM WITH EXPLANATION

Deployment diagrams are used to visualize the hardware processors/ nodes/


devices of a system, the links of communication between them and the placement
of software files on that hardware. A deployment diagram is a UML diagram
type that shows the execution architecture of a system, including nodes such as
hardware or software execution environments, and the middleware connecting
them. Deployment diagrams are typically used to visualize the physical hardware
and software of a system. Using it you can understand how the system will be
physically deployed on the hardware. Deployment diagrams help model the
hardware topology of a system compared to other UML diagram types which
mostly outline the logical components of a system.

17
CONCLUSION

In comparison to previous experiences, when every activity related to the


vehicle rental business was restricted to a physical place alone, the car rental
industry has emerged with new delicacies. Even if the physical location has not
been completely eliminated, the internet's power has altered the nature of
functions and how these tasks are accomplished. Customers may now book
vehicles online, rent automobiles online, and have the car delivered to their
home if they are a registered member, or they can travel to the office to pick up
the car.

REFERENCES

1. https://www.altexsoft.com/blog/car-rental-reservation-system/

2. https://itsourcecode.com/uml/car-rental-system-use-case-diagram/

3. https://itsourcecode.com/uml/online-car-rental-system-class-diagram-uml/

4. https://creately.com/diagram/example/img4wrih1/sequence-diagram-for-
car-rental-system-classic

5. https://www.visual-paradigm.com/guide/uml-unified-modeling-
language/what-is-component-diagram/

18

You might also like