0% found this document useful (0 votes)
29 views58 pages

PHP Final SE Report

PHP notes

Uploaded by

tadamek748
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views58 pages

PHP Final SE Report

PHP notes

Uploaded by

tadamek748
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 58

Software Engineering (3150711)

GUJARAT TECHNOLOGICAL UNIVERSITY

Shri S’ad Vidya Mandal Institute of


Technology
Affiliated with GTU

A Project On
Taxi Management System
Under subject of
SOFTWARE ENGINEERING
B. E. III, Semester - V
(Computer Science & Engineering)

Submitted by:
Group:
Sr. Name of student Enrollment No.
1. Rana Mokshang Kirankumar 200450131018
2. Khatri Deep Dharmendrakumar 200450131004
3. Patel Pratik Hirenbhai 200450131008
4. Solanki Yash Bharatbhai 200450131010

Prof. Priyanka Patel


(Faculty Guide)

Dr. Kruti J Dangarwala

Head of the Department

Academic Year
(2022-23)

200450131004 , 200450131008 , 200450131010 , 200450131018 1


Software Engineering (3150711)

Shri S’ad Vidya Mandal Institute of Technology

Department of Computer Engineering and Information technology

Academic Year 2022-2023

CERTIFICATE
This is to certify that the Project entitled “TAXI MANAGEMENT SYSTEM” has
been prepared by Rana Mokshang Kirankumar(200450131018), Khatri Deep
Dharmendrakumar(200450131004), Patel Pratik Hirenbhai(200450131008), Solanki
Yash Bharatbhai(200450131010) in the subject of SOFTWARE ENGINEERING under
my guidance in partial fulfilment of the degree of Bachelor of Engineering in Computer
Science & Engineering (5th Semester) of Gujarat Technological University, Ahmedabad
during the academic year 2022-23.

Date: 28/11/2022

Place: SVMIT, Bharuch

Project Guide Head of CSE/IT Department


Prof. Priyanka Patel Dr. Kruti J. Dangarwala

200450131004 , 200450131008 , 200450131010 , 200450131018 2


Software Engineering (3150711)

ACKNOWLEDGEMENT

In preparing our project, we would like to express our thanks to the people
who have helped us most throughout our project. We would like to show our
gratitude to Dr. Kruti Dangarwala, head of the CSE/IT department, and Prof.
Priyanka Patel, faculty guide, Shri S’ad Vidya Mandal Institute of
technology for giving us a good guideline for our project throughout
numerous consultations.

A special thank you for our team goes to our friends and classmates who
helped us out in completing the project, where they all exchanged thrown
interesting ideas, and thoughts and made this possible to complete the project
with all accurate information. We wish to thank our parents for their support
and attention who inspired us all to go our own way and finally to God made
all the things possible for our team till the end.

Rana Mokshang kirankumar (200450131018)

Khatri Deep Dharmendrakumar (200450131004)

Patel Pratik Hirenbhai (200450131008)

Solanki Yash Bharatbhai (200450131010)

200450131004 , 200450131008 , 200450131010 , 200450131018 3


Software Engineering (3150711)

ABSTRACT

Our project Taxi Management System is a web application system for the
management of taxis. The main aim of this project is to develop an
application system that should be able to receive and fulfil the passengers
request and react accordingly. Usually, method of hiring a taxi is street
hailing. Also, the taxi drivers usually rely on their luck to increase their
profits which usually includes first come first serve basis. These methods
usually lead to problems like traffic congestion, long passenger waiting time,
safety issues, and low taxi utilization. With this application, we provide a
solution to these problems which make taxi utilisation an easy process for
both the drivers and the passengers. The proposed system is based on a server
which receives requests from the passengers via a website which in turn
informs the taxi driver about the location and destination of the passenger.
The taxi driver on receiving a request from a server sends a confirmation
message to the passenger. Having this system makes it convenient for the
passengers to book taxi easily. All of these will be achieved bycreating a user-
friendly taxi booking system for passengers.

Rana Mokshang Kirankumar (200450131018)

Khatri Deep Dharmendrakumar (200450131004)

Patel Pratik Hirenbhai (200450131008)

Solanki Yash Bharatbhai (200450131010)

200450131004 , 200450131008 , 200450131010 , 200450131018 4


Software Engineering (3150711)

TABLE OF CONTENTS
TITLE OF THE PROJECT
CERTIFICATE
ACKNOWLEDGEMENT
ABSTRACT
TABLE OF CONTENTS
LIST OF FIGURES 7
LIST OF TABLES 8
CHAPTER 1 INTRODUCTION 9
1.1 Overview of the System 9
1.2 Objectives and Scopes 10
1.3 Report Organization 10

CHAPTER 2 STUDY AND ANALYSIS OF SDLC AND PROCESSED MODEL 11

CHAPTER 3 PROJECT PLANNING AND SCHEDULING 16

CHAPTER 4 SYSTEM ANALYSIS 18


4.1 Study of Existing System 18
4.2 Design of Proposed System 19
4.3 Feasibility Study 19

CHAPTER 5 SYSTEM DESIGN 22


5.1 Design of Data Dictionary 22
5.2 Data Flow Diagram 27
5.3 Diagram Design (UML) 29
5.3.1 Survey and Design of Class Diagram
5.3.2 Survey and Design of Use Case Diagram
5.3.3 Survey and Design of Activity Diagram
5.3.4 Survey and Design of Sequence Diagram

200450131004 , 200450131008 , 200450131010 , 200450131018 5


Software Engineering (3150711)

CHAPTER 6 IMPLEMENTAION 36
6.1 Introduction and Tools & Technology Used 36
6.2 Data Entry Development 42
6.3 Security Features 45
6.4 Coding Standards 46

CHAPTER 7 SOFTWARE TESTING 49


7.1 Analysis of Testing Method 49
7.2 Analysis of Test Cases 51

CHAPTER 8 COST ESTIMATION 54


8.1 Basic and Intermediate COCOMO 54

CHAPTER 9 CONCLUSION AND FUTURE ENHANCEMENT 58

200450131004 , 200450131008 , 200450131010 , 200450131018 6


Software Engineering (3150711)

LIST OF FIGURES

Figure No. Figure Name Page No.


2.1 Software Development Life cycle 11
2.2 SDLC Model 13
2.3 Spiral Process Model 15
3.1 Gantt Chart 17
4.1 Data Modeling and System Analysis 18
5.1 System Design 22
5.2 Level 0 DFD 27
5.3 Level 1 DFD 28
5.4 Class Diagram 30
5.5 Use-Case Diagram 31
5.6 Activity Diagram 32
5.7 State Chart 33
5.8 Sequence Diagram 34
5.9 Collaboration Diagram 35
6.1 Login page 42
6.2 Client profile 43
6.3 Home page 43
6.4 Registration form 44
6.5 Taxi Details 44
6.6 Booking list 45
7.1 Validation for login page 51
7.2 Validation for Registration form 52
7.3 Validation for Email 52
7.4 Validation for Manage profile 53
7.5 Validation for Change password 53
8.1 Effort versus product size 55
8.2 Development time versus size 56

200450131004 , 200450131008 , 200450131010 , 200450131018 7


Software Engineering (3150711)

LIST OF TABLES

Table No. Table Name Page No.

3.1 Project planning 16

5.1 User 23

5.2 Ride 23

5.3 Passenger 24

5.4 Driver 24

5.5 Taxi details 25

5.6 Payment 25

5.7 Feedback 26

8.1 Coefficient for Intermediate COCOMO 57

200450131004 , 200450131008 , 200450131010 , 200450131018 8


Software Engineering (3150711)

Chapter 1: Introduction
This chapter gives a brief introduction to the overview of the system. Basic problem definition,
current problems proposed solutions are discussed below. Later in the sectionthe scopes and
objectives of our proposed system have been explained briefly.

1.1) Overview of the System:

We have designed a taxi management system which can be used to partially computerize the
work performed in the taxi management system like generating monthly daily bookings,
record of routes available, fare charges of every route; store record of the customer. This
system is designed for every device as it requires only a web browser to run the application
system.
Our topic is entitled as Taxi management system aim is to priority booking of taxi or
cab before our journey , this management system provides ease to the passengers/ customers
as well as the cab/taxi drivers as the booking is priority done and destination is provided to
the cab/taxi driver so they can drop the passenger on their desired location and can pick up
next passenger to their ahead this will play an important role in metropolitan cities where
there a huge traffic chaos and as its time saving.
This will save measurable amount of time of passengers and drivers as their travelling list
will be provided priority, through this maximum cab drivers will get enough passengers for
the trip.
As other public transport services are inefficient and unreliable this management system will
also help cab drivers in saving fuel as they don’t have to wait for passengers for the next trip
even it will reduce traffic as there will be minimum cab drivers waiting for the passengers
and passengers waiting for cabs.
This system as being automated it will be more robust and public will prefer more to travel
through cabs as there is less chance in delaying in their trip and use of private vehicles will be
less which ends in less fuel consumption.
At many times it may be difficult for people to get taxis from their desired locations,
especially at the night. And during night, people who are travelling alone, may face some
security issues.
Passengers can optional between shared journey or private journey to their destinations and
as taxi fare will calculated on the basis of distance travelled in kilometres there will be no
monopoly of any particular cab unions.

200450131004 , 200450131008 , 200450131010 , 200450131018 9


Software Engineering (3150711)

1.2) Objectives and Scope:


The main objective of our project is to help people easily get access to taxi during
regular transit or during emergencies. The main objectives of the are project as
follows:
To keep the information of Customer
To ease taxi access for transit.
To save time during transit by following shortest path.
To provide path selection as per passenger.

To keep track of all of the information about drivers and passengers as well as, all the
information about trips and also the payment information.

To provide a single or small group of passengers for transit.


To maintain record of every employee of every route.
Passengers can choose between shared or unshared service.
24/7 Customer Support team
Live taxi tracking
To provide background verified and trained drivers.
Our project ‘Taxi Booking System’ is designed and developed for the sole purpose of
providing the people with quick booking and easy access of the taxi from their current
locations or desired locations
Taxi Booking System is an application solution for android and iPhone that helps the people
to reach the destination by booking the taxi with just a push of a button.

1.3) Report Organization


Chapter 2: The study and analysis of SDLC and process model are described here.

Chapter 3: The planning of the project is described using a timeline (Gantt) chart
Chapter 4: The study and analysis of the existing and proposed system in detail are
discussed here along with a feasibility study.
Chapter 5: UML diagrams with explanations are used to describe the project. UML
diagrams
like Class, activity, sequence, state, and use case diagrams are keeping.

Chapter 6: The implementation of our project is described here in detail.

Chapter 7: In this chapter software testing methods like static, dynamic, white box and,
the black boxis described.
Chapter 8: We describe the cost estimate of the COCOMO model. Solve the example
using FP.

Chapter 9: We describe the conclusion and future scope of our project.

200450131004 , 200450131008 , 200450131010 , 200450131018 10


Software Engineering (3150711)

CHAPTER 2: STUDY AND ANALYSIS OF SDLC AND


PROCESS MODELS:
Deciding upon an appropriate methodology is vital for the overall development of any
software application to ensure a realistic timeframe is established for each stage of the
project and requirements are clearly outlined.
There are following six phases in every software development life cycle model:

1. Requirement gathering and analysis

2. Design

3. Implementation or coding

4. Testing

5. Deployment

6. Maintenance

2.1 Software Development Life Cycle

This approach includes project definition, analysis of the system, system design,
development,testing, deployment and maintenance.

200450131004 , 200450131008 , 200450131010 , 200450131018 11


Software Engineering (3150711)

Details of each phase:

1) Requirement gathering and analysis:

Business requirements are gathered in this phase. This phase is the main focus of
the project manager or owner of company and user (Passengers) are held to
determine the requirements like; who is going to use the system? How will they
use the system? What data should be input into the system? What data should be
output by the system? These are general questions that get answered during a
requirement gathering phase. After requirement gathering these requirements are
analyzed for their validity and the possibility of incorporating the requirement in
the system to be developed is also studied.
Finally, a requirement specification document is created which serves the purpose
ofguideline for the next phase of the model.

2) Design:

In this phase, the system and software are designed from the requirement
specifications which were studied in the first phase. System design helps in
specifying hardware and system requirements and also helps in defining the
overall system architected. The system design specification serves as input for
the next phase of the model.

3) Implementation/coding:

On receiving the system design document, the work is divinity into


modules/units and actual coding is started. Since, in this, phase the code is produced so it
is the main focus for the developer. This is the longest phase of the software development
lifecycle.

4) Testing:

After the code is developed it is tested against the requirements to make sure that the
product solves the needs addressed and gathered during the requirements phase. During
this phase unit testing, integration testing, system testing, and acceptance testing is done.

5) Deployment:

After the successful testing, the product is delivered/deployed to the customer for their
use.

200450131004 , 200450131008 , 200450131010 , 200450131018 12


Software Engineering (3150711)

6) Maintenance:

Once when the customer starts using the developed system then the actual problems come
up and need to be solved from time to time. This process where the care is taken for the
developed product is known as maintenance. In our project, we are going to use an
incremental model. Because we are going to make Taxi management system. And we
know the passenger’s database which can increase day by day. We can add more services
to it. So that using the incremental model we are going to build such a system.

List of process models:

2.2 SDLC Models

200450131004 , 200450131008 , 200450131010 , 200450131018 13


Software Engineering (3150711)

Selection of process model: Spiral Model


Justification of selected model:
In a big project, especially we are thinking about the spiral model.
It gives us space to get feedback directly from the customer.
When the long-term project is running and commitment is not feasible due to changes
made in economic priorities.
We are using the spiral model because it is cost-effective. Development is getting
faster as compared to the waterfall model. Also, features are getting added
systematically.
And the main benefit of this Spiral model is risk management. This risk analysis phase
saves us from complications in the future.

When to use the spiral model?


A Spiral model in software engineering is used when the project is large
When releases are required to be frequent, the spiral methodology is used
When the creation of a prototype is applicable
When risk and costs evaluation is important
Spiral methodology is useful for medium to high-risk projects
When requirements are unclear and complex, the Spiral model in SDLC is useful
When changes may require at any time
When long term project commitment is not feasible due to changes in economic
priorities

Advantages:
Software is produced early in the software life cycle.
Risk handling is one of important advantages of the Spiral model, it is best
development model to follow due to the risk analysis and risk handling at everyphase.
Flexibility in requirements. In this model, we can easily change requirements at later
phases and can be incorporated accurately. Also, additional Functionality can be
added at a later.
It is good for large and complex projects.
It is good for customer satisfaction. We can involve customers in the development of
products at early phase of the software development. Also, software is produced early
in the software life cycle.
Strong approval and documentation control.
It is suitable for high-risk projects, where business needs may be unstable. A highly
customized product can be developed using this.

200450131004 , 200450131008 , 200450131010 , 200450131018 14


Software Engineering (3150711)

Disadvantages:
It is not suitable for small projects as it is expensive.
It is much more complex than other SDLC models. The process is complex.
Too much dependable on Risk Analysis and requires highly specific expertise.
Difficulty in time management. As the number of phases is unknown at the start of the
project, time estimation is very difficult.
Spiral may go on indefinitely.

Diagram:

2.3 Spiral process model

200450131004 , 200450131008 , 200450131010 , 200450131018 15


Software Engineering (3150711)

CHAPTER 3: PROJECT PLANNING AND SCHEDULING

Project planning is an aspect of project management that focuses a lot on project


integration. The project plan reflects the current status of all project activities and is used to
monitor and control the project.
The project planning tasks ensure that various elements of the project are
coordinatedand therefore guide the project execution.
Project planning helps in…
- Facilitating communication
- Monitoring/measuring the project progress
- Provide overall documentation of assumption/planning decision. The project planning
phase can be broadly classified as follows:
- Development of the project plan
- Execution of the project plan
- Change control and corrective action
Project planning is an ongoing effort throughout the project lifecycle. After examining the
project’s feasibility, there comes project planning. Scheduling the project tasks is an
important project planning activity. This activity involves which task is to be done and
when.
A set of project milestones and deliverables are produced illustrating the project
breakdown to create a management plan to adhere to throughout the project lifecycle,
however, there are maybe slight changes in each iteration as some requirements may
require modification. The steps required in each iteration are outlined in each project
deliverable. A product risk management plan and a project plan are displayed through the
use of a Gantt chart showing the project tasks for each step.
The project milestones will be used to evaluate the project progression, set dates for tasks
to be completed and, identifies objectives that have been satisfied.

Ch.
Chapters Start date End Date
No.
1 INRODUCTION 28-07-2022 04-08-2022
STUDY AND ANALYSIS OF SDLC AND
2 04-08-2022 18-08-2022
PROCESS MODELS
3 PROJECT PLANNING AND SCHEDULING 18-08-2022 25-08-2022
4 SYSTEM ANALYSIS 25-08-2022 01-09-2022
5 SYSTEM DESIGN 01-09-2022 15-09-2022
6 IMPLEMENTATION 15-09-2022 22-09-2022
7 SOFTWARE TESTING 22-09-2022 29-09-2022
8 COST ESTIMATION 29-09-2022 06-10-2022
9 CONCLUSION AND FUTURE ENHANCEMENT 06-10-2022 06-10-2022

Table 3.1

200450131004 , 200450131008 , 200450131010 , 200450131018 16


Software Engineering (3150711)

3.1 Gantt Chart

200450131004 , 200450131008 , 200450131010 , 200450131018 17


Software Engineering (3150711)

CHAPTER 4: SYSTEM ANALYSIS

At this step, the developer decides on a roadmap for their plan and tries to bring up the
best software model suitable for the project. System analysis includes an understanding
of software products, limitations, learning system related problems, or changes to be
done in the existing system before identifying and addressing the impact of the project on
the organization, personnel etc. The Merriam-Webster dictionary defines system analysis
as “the process of studying a procedure in order to identify its goals and purposes and
create system and procedures that efficiently the way”. System analysis is the activities
that comprise software engineering as a process in the production of software. It is the
software process.

This process has 4 main activities which are:

- Software Specification
- Software design and implementation
- Software validation
- Software evolution

4.1 data modelling in system analysis

4.1 Study of Existing System


It is very difficult these days to maintain the records of passengers for a particular trip. It is
very difficult to maintain the historical data. The whole process of maintaining the
records of each Trips done by passengers in a particular period time is very difficult. So,
this TAXI MANAGEMENT SYSTEM is the perfect fit for all the issues.

200450131004 , 200450131008 , 200450131010 , 200450131018 18


Software Engineering (3150711)

4.2 Design of Proposed System

The TAXI MANAGEMENT SYSTEM is divided into Three sections.

1.Customer module:

The main objective of this module is provide all functionality related to customers. It
tracks all the information of the Customers.

2.Car module:

The main aim for developing this module is to manage the car. This car module is an
important module in this project Taxi system.

Features:

-Admin can manage the car

-Admin can edit/delete the car

-Admin can see the list of all car

-Customer can see his car

3.Booking module:

The main objective for developing this module is to manage the booking. So all booking will
be managed by admin.

Features:

-Admin can manage the booking

-Admin can edit/delete the booking

-Admin can see the list of all booking

-Customer can see his booking

4.3 Feasibility study:

Worldwide flight tourism project feasibility. The main objective of the feasibility
study is to test the technical, operational, and Economical feasibility of adding new
modules and debugging old running systems All system is feasible if there are
unlimited resources of infinite time.

200450131004 , 200450131008 , 200450131010 , 200450131018 19


Software Engineering (3150711)

There are three types of feasibility.

• Technical feasibility

• Operational feasibility

• Economic feasibility

• Legal feasibility

• Scheduling feasibility

4.3.1 Technical Feasibility:

The technical feasibility study centers on alternatives for hardware, software and design
the approach of the functional aspects of system. This projects on Taxi management
system will be platform independent since it is being coded in php language (using
JavaScript and CSS). HTML is used to create web pages. Hardware requirements are
compatible with all Operating System. Only authorized person will be able to use the
website so it would be secure. The system can also be expanded as per the needs of
requirement specification. It is concerned with specifying equipment and software that
will meets the equipment and goals.

The analyst must find out whether current technical resource can be upgraded or added to
inmanner that fulfils the request under consideration. The system must be evaluated from
the technical point of view first. The assessment of this feasibility must be based on an
outline design of the system. Requirement in the terms of input, output, programs and
procedures.

4.3.2 Operational Feasibility:

Operational Feasibility is a measure of how people are able to work with system this type
of feasibility demands if the system will work when developed and installed. Some of the
important issues raised during operational feasibility are that
• Will the system be used and work properly if it is being developed and
implemented?
• Is there sufficient support for the management from the user?
• Since the website is very user friendly so users will find it comfortable to work on
this site.

200450131004 , 200450131008 , 200450131010 , 200450131018 20


Software Engineering (3150711)

4.3.3 Economic Feasibility:

A system can be developed technically and will be if installed it must still be a good
investment for the organization. Financial benefits must equal or exceed the costs. It is the
most frequently used evaluating the effectiveness of proposed system, more commonly
known as Benefit analysis.

Benefit analysis is to determine benefits and savings which are expected from candidate
system and compare them with cost. If the benefits are more than cost, the decision is
made to design and implement the system. The cost and benefits may be direct or indirect
and tangible or intangible.

4.3.4 Legal Feasibility:


This assessment investigates whether any aspect of the proposed, project conflicts with legal
requirements like zoning laws, data protection acts, or social media laws. Let's say an organization
wants to construct a new office building in a specific location. A feasibility study might reveal the
organization's ideal location isn't zoned for that type of business. That organization has just saved
considerable time and effort by learning that their project was not feasible right from the beginning.

4.3.5 Scheduling Feasibility:


This assessment is the most important for project success: after all, a project will fail if not completed
on time. In scheduling feasibility, an organization estimates how much time the project will take to
complete.
When these areas have all been examined, the feasibility study helps identify any constraints the
proposed project may face, including:
Internal Project Constraints: Technical, Technology, Budget, Resource, etc. Internal Corporate
Constraints: Financial, Marketing, Export, etc. External Constraints: Logistics. Environment, Laws
and Regulations, etc.

200450131004 , 200450131008 , 200450131010 , 200450131018 21


Software Engineering (3150711)

CHAPTER 5: SYSTEM DESIGN


System design is the process of defining the architected, modules, interfaces, and
data for a system to satisfy specified requirements. System design could be seen as the
application of system theory to product development. It is therefore the process of
definingand developing systems to specified recruitment of the user.

System design implies a systematic approach to the design of a system. It may


take a bottom-up to top-down approach, but either way the process is systematic where in
it takes into account all relates variables of the system that needs to be created from the
architected, to the required hardware and software, right down to the data and how it
travels and transforms throughout its travel through the system.

Figure 5.1 System Design

5.1 Design of Data Dictionary


A data dictionary is a collection of description of the data objects or items in a data model
for the benefit of programmers and others who need to refer to them. A data dictionary
contains metadata i.e., data about the database. The data dictionary is very important as it
contain information such as what is in the database, who is allowed to access it, where is
the database physically stored etc. the users of the database normally don’t interact with
data dictionary; it only handled by the database administrator.
It is a file or a set of files that contains a database’s metadata. The data dictionary
contains records about other objects in the database, such as data ownership, data
relationship to other objects and other data.

200450131004 , 200450131008 , 200450131010 , 200450131018 22


Software Engineering (3150711)

List of tables included in T A X I MANAGEMENT SYSTEM:

• User
• Ride
• Passenger
• Driver
• Taxi Details
• Payment Details
• Feedback

Database table description:

1. Table name: User

Table Description: This table consists the details of the user who want to
login the system and use the system. It contains details like user id, user name.
password, etc. On the basis of the details of this table the user is authenticated.
Column
Description Data type Data size Constraints
name
User_id Id for the user Varchar2 6 Primary key
User_name Enter the name of user Varchar2 25 Not null
Password Enter the password of the user Varchar2 15 Not null
Email_id Enter the email-id of the user Varchar2 20 Not null
Table 5.1

2. Table name: Ride

Table Description: This table consists the details of the booking about
taxi through passenger, like when passenger went to go at which place
from their current location. Its also provide driver and taxi details to
passengers.

Column name Description Data type Data size Constraints

Booking_id Taxi booking id Varchar2 6 Primary key


Date for booking
Date taxi Date Not null
Start_Time Journey start time Time Not null
End_Time Journey end time Time Not null

200450131004 , 200450131008 , 200450131010 , 200450131018 23


Software Engineering (3150711)

Passenger current
Pickup_Loc location Varchar 15 Not null
Passenger drop
Drop_Loc location Varchar 15 Not null
User_id Id of user Varchar2 6 Foreign key
Driver_id Enter driver id Varchar2 6 Foreign key
Taxi_id Enter taxi id Varchar2 6 Not null
Table 5.2

3. Table name: Passenger

Table Description: This table consists the details of passengers like user
id, passengers name, mobile number, email id etc.

Column name Description Data type Data size Constraints


User_id Id for user Varchar2 6 Primary key
Passenger first
First_name name Varchar2 20 Not null
Passenger last
Last_name name Varchar2 20 Not null
Passenger mobile
Mobile_no number Integer 10 Not null
Email_id Passenger email id Varchar2 20 Not null
Age Passenger age Integer 3 Not null
Gender Passenger gender Varchar2 6 Not null
Table 5.3

4. Table name: Driver

Table Description: This table consists the details of driver. It consist


details like driver id, driver name, mobile number, email id, license
number, age, rating for driving etc.
Column name Description Data type Data size Constraints
Driver_id Id for driver Varchar2 6 Primary key
First_name Driver first name Varchar2 20 Not null
Last_name Driver last name Varchar2 20 Not null
Driver mobile
Mobile_no number Integer 10 Not null
Email_id Driver email id Varchar2 20 Not null
Age Driver age Integer 3 Not null
Gender Driver gender Varchar2 6 Not null
Rating Rating for driving Integer 2
Driver license
License number Varchar2 16 Not null
Table 5.4

200450131004 , 200450131008 , 200450131010 , 200450131018 24


Software Engineering (3150711)

5. Table name: Taxi Detail

Table Description: This table consists the details of Taxi(vehicle). It


consists details of Car like RTO vehicle number, Model name, Seating
capacity, colour of vehicle etc.

Column name Description Data type Data size Constraints


Taxi_no Vehicle number Varchar2 10 Primary key
Model Taxi model name Varchar2 10 Not null
Taxi seating
Seating_capacity capacity Integer 2 Not null
Colour Taxi colour Varchar 8 Not null
Table 5.5

6. Table name: Payment Detail

Table Description: This table consists the details of payment done by


passenger for taxi booking. Its consists details of payment no, date,
payment type like UPI/Debit card/Credit card etc.

Column name Description Data type Data size Constraints


Payment_no Payment id Varchar2 8 Not null
Date Date of payment Date Not null
Status about
Status payment Boolean 5 Not null
Payment_type Payment method Varchar2 8 Not null
Time of payment
Time done by passenger Time Not null
Passenger booking
Booking_id id Integer 6 Primary key
Total payable
Amount amount Integer 10 Not null
Table 5.6

200450131004 , 200450131008 , 200450131010 , 200450131018 25


Software Engineering (3150711)

7. Table name: Feedback

Table Description: This table consists the details of feedback which is


given by passenger. It’s all about passenger review for the taxi and driver
for their journey.

Column name Description Data type Data size Constraints


Feedback_id Id for feedback Varchar2 6 Primary key
User_id Passenger user id Varchar2 6 Foreign key
Driver_id Id of driver Varchar2 6 Not null
Booking_id Booking id Varchar2 6 Not null
Driver_rating Rating for driver Integer 2 Not null
Car_rating Rating for car Integer 2 Not null
Passenger
Suggestion suggestions Varchar2 50
Table 5.7

200450131004 , 200450131008 , 200450131010 , 200450131018 26


Software Engineering (3150711)

5.2 Data Flow Diagram

Definition of DFD
- The data flow diagram is a graphical representation that depicts
information flow and the transforms that are applied as data moves from
input to output. The DFD may be used to represent a system or software
at any level of abstraction. In fact, DFD may be partitioned into levels that
represent increasing information flow and functional detail.

Level 0 DFD or Context Free Diagram:


- The level 0 DFD or a context model represents the entire software
element as a single bubble with input and output data indicated by
incoming and outgoing arrows, respectively.

5.2 DFD Level Zero

Level 1 data flow diagram:


- This highlights the main functions carried out by the system. A level 1
data flow (DFD) is more detailed than a level 0 DFD. It breaks down the
main processes into sub-sequent that can then be analyzed and improved
on a more intimate level. This enables us to keep the model manageable
on screen or paper.

200450131004 , 200450131008 , 200450131010 , 200450131018 27


Software Engineering (3150711)

5.3 DFD Level One

200450131004 , 200450131008 , 200450131010 , 200450131018 28


Software Engineering (3150711)

5.3 Diagram Design (UML)

The undefined modeling language (UML) is a general-purpose visual


modeling language that is used to specify, visualize, construct and
document the artifacts of a software system. It captures decision and
understanding about systems that must be constructed.
In diagram design mention all the UML diagrams like:
• Class Diagram
• Use case Diagram
• Activity Diagram
• State chart Diagram
• Sequence Diagram
• Collaboration diagram

5.3.1 Class Diagram:

The class diagram is a static diagram. It represents the static view


of an application. Class diagram is not only used for visualizing,
describing and documenting different aspects of a system but also
for constructing executable code of software application. The class
diagram describes the attributes and operations of a class and also
the constraint imposed on the system. The classes diagram are
widely used in modeling of object oriented systems because they
are the only UML diagram which can be mapped directly with
object oriented languages. The class diagram shows a collection of
classes, interfaces, associations, collaboration and constraints. It is
also known as a structural diagram.

200450131004 , 200450131008 , 200450131010 , 200450131018 29


Software Engineering (3150711)

5.4 Class Diagram

200450131004 , 200450131008 , 200450131010 , 200450131018 30


Software Engineering (3150711)

5.3.2 Use-case Diagram:


The use case view is used to represent functionality of system which
is connected with input and output user of the system. It divides the
system functionality into transactions meaningful to actors. The use
case view models the functionality of the system as perceived by
users, called actors, a use-case is coherent unit of functionality
expressed as transaction among actors and the system. In this diagram
actor are admin, accountant, system user, messaging Chanel and chat
bot API, and customer.

5.5 Use Diagram

200450131004 , 200450131008 , 200450131010 , 200450131018 31


Software Engineering (3150711)

5.3.3 Activity Diagram:


An activity diagram is similar to a flowchart. Activity diagram are
related while a state chart diagram focuses on an object undergoing a
process (or on a process as an object), an activity diagram focuses on
the flow of activities involved in a single process. The activity
diagram shows how these single-process activities depend on one
another. Activity diagrams which are related to program flow plans
are used to illustrate activities. In the external view, we use activity
diagrams for the description of that process that describe the
functionality of the system. In this diagram we describe the activity of
student and administrator.
For Admin For User:

For Login:

5.6 Activity Diagram

200450131004 , 200450131008 , 200450131010 , 200450131018 32


Software Engineering (3150711)

5.3.4 State Diagram:

State chart diagram describes the flow of control from one state to
another state. States are defined as a condition in which an object
exists and it changes when some event is triggered. The most
important purpose of state diagram is to model lifetime of an
object from creation to termination. State chart diagram are also
used for forward reverse engineering of a system. However, the
main purpose is to model the reactive system.

For Payment:

5.7 State Diagram

200450131004 , 200450131008 , 200450131010 , 200450131018 33


Software Engineering (3150711)

5.3.5 Sequence Diagram:


A sequence diagram simply depicts interaction between objects in
a sequential order i.e., the order in which these interactions take
place. 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. Used to model and
visualize the logic behind a sophisticated function, operation or
procedure. Used to understand the detailed functionality of current
or future systems. Visualize how messages and tasks more between
objects or components in a system

5.8 Sequence Diagram

200450131004 , 200450131008 , 200450131010 , 200450131018 34


Software Engineering (3150711)

5.3.6 Collaboration Diagram:


Collaboration diagram is another form of interaction diagram. It represents the
structural organization of a system and the messages sent/received. Structural
organization consists of objects and links.
The purpose of collaboration diagram is similar to sequence diagram. However,
the specific purpose of collaboration diagram is to visualize the organization of
objects and their interaction.
Passenger
Application
Driver

5.9 Collaboration Diagram

200450131004 , 200450131008 , 200450131010 , 200450131018 35


Software Engineering (3150711)

CHAPTER 6: IMPLEMENTATION

6.1 Introduction and tools & technology used


Platform (Server): VS code, WampServer
Language:
Frontend: HTML, CSS
Backend: PHP, MySQL
Operating System: Windows

WampServer: -
WampServer is a Web development platform on Windows that allows you to
create dynamic Web applications with Apache2, PHP, and MySQL.
WampServer automatically installs everything you need to intuitively develops
Web applications. You will be able to tune your server without even touching
its setting files You will be able to tune your server without even touching its
setting files. Best of all, WampServer is available for free (under GPML
license) in both 32- and 64-bit versions. WampServer is not compatible with
Windows XP, SP3, or Windows Server 2003. The acronym WAMP refers to a
set of free (open source) applications, combined with Microsoft Windows,
which are commonly used in Web server environments. The WAMP stack
provides developers with the four key elements of a Web server: an operating
system, database, Web server and Web scripting software.

Language:
Frontend:
Hypertext Markup Language: Hypertext Markup Language (HTML) is the
standard markup language for creating web pages and web applications. With
Cascading Style Sheets (CSS) and JavaScript, it forms a triad of cornerstone
technologies for the World Wide Web. Web browsers receive HTML
documents from a web server or from local storage and render them into
multimedia web pages. HTML describes the structure of a web page
semantically and originally included cues for the appearance of the document.
HTML elements are the building blocks of HTML pages. With HTML
constructs, images and other objects, such as interactive forms may be

200450131004 , 200450131008 , 200450131010 , 200450131018 36


Software Engineering (3150711)

embedded into the rendered page. It provides a means to create structured


documents by denoting structural semantics for text such as headings,
paragraphs, lists, links, quotes and other items.

Cascading Style Sheets (CSS): Cascading Style Sheets (CSS) is a style sheet
language used for describing the presentation of a document written in a markup
language. Although most often used to set the visual style of web pages and
user interfaces written in HTML and XHTML, the language can be applied to
any XML document, including plain XML, SVG and XUL, and is applicable to
rendering in speech, or on other media. Along with HTML and JavaScript, CSS
is a cornerstone technology used by most websites to create visually engaging
webpages, user interfaces for web applications, and user interfaces for many
mobile applications. CSS is designed primarily to enable the separation of
presentation and content, including aspects such as the layout, colours, and
fonts. This separation can improve content accessibility, provide more
flexibility and control in the specification of presentation characteristics, enable
multiple HTML pages to share formatting by specifying the relevant CSS in a
separate css file, and reduce complexity and repetition in the structural content.

Backend:
PHP: PHP is a server-side scripting language designed for web development
but also used as a general-purpose programming language. Originally created
by Rasmus Lerdorf in 1994, the PHP reference implementation is now produced
by The PHP Group PHP originally stood for Personal Home Page, but it now
stands for the recursive acronym PHP: Hypertext Pre-processor PHP code may
be embedded into HTML code, or it can be used in combination with various
web template systems, web content management systems, and web frameworks.
PHP code is usually processed by a PHP interpreter implemented as a module in
the web server or as a Common Gateway Interface (CG!) executable. The web
server combines the results of the interpreted and executed PHP code, which
may be any type of data, including images, with the generated webpage. PHP
code also be executed with a command-line interface (CLI) and can be used to
implement may standalone graphical applications.

200450131004 , 200450131008 , 200450131010 , 200450131018 37


Software Engineering (3150711)

MySQL: MySQL is an open-source relational database management system


(RDBMS). A relational database organizes data into one or more data tables in
which data may be related to each other; these relations help structure the data.
SQL is a language programmers use to create, modify and extract data from the
relational database, as well as control user access to the database. In addition to
relational databases and SQL, an RDBMS like MySQL works with an operating
system to implement a relational database in a computer's storage system,
manages users, allows for network access and facilitates testing database
integrity and creation of backups.
Login page PHP code:
<?php require_once('./config.php') ?>
<!DOCTYPE html>
<html lang="en" class="" style="height: auto;">
<?php require_once('inc/header.php') ?>
<body class="hold-transition login-page">
<script>
start_loader()
</script>
<style>
body{
width:calc(100%);
height:calc(100%);
background-image:url('dist/img/taxi.jpg');
background-repeat: no-repeat;
background-size:cover;
}
#logo-img{
/* width:15em;
height:15em; */
object-fit:scale-down;
object-position:center center;
}
</style>
<div class="login-box">
<?php $page = isset($_GET['page']) ? $_GET['page'] : 'home'; ?>
<?php if($_settings->chk_flashdata('success')): ?>
<script>
alert_toast("<?php echo $_settings->flashdata('success') ?>",'success')
</script>
<?php endif;?>
<!-- /.login-logo -->
<center><img src="<?= validate_image($_settings->info('logo')) ?>" alt="System Logo" id="logo-
img"></center>
<div class="clear-fix my-2"></div>
<div class="card card-outline card-purple">
<div class="card-header text-center">
<a href="./" class="h4 text-decoration-none"><b>Client Login Panel</b></a>
</div>
<div class="card-body">
<form id="clogin-frm" action="" method="post">
<div class="input-group mb-3">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>

200450131004 , 200450131008 , 200450131010 , 200450131018 38


Software Engineering (3150711)

</div>
</div>
<input type="email" class="form-control" name="email" placeholder="Email">

</div>
<div class="input-group mb-3">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
</div>
<input type="password" class="form-control" name="password" placeholder="Password">

</div>
<div class="row align-items-center">
<div class="col-8">
<a href="<?php echo base_url ?>" style="text-decoration:none;">Back</a>
</div>
<!-- /.col -->
<div class="col-4">
<button type="submit" class="btn btn-success btn-sm btn-flat btn-block">Log In</button>
</div>
<!-- /.col -->
</div>
<div class="row">
<div class="col-12 text-center">
<a href="<?php echo base_url.'register.php' ?>" style="text-decoration:none;">Create an Account</a>
</div>
</div>
</form>
<!-- /.social-auth-links -->

<!-- <p class="mb-1">


<a href="forgot-password.html">I forgot my password</a>
</p> -->

</div>
<!-- /.card-body -->
</div>
<!-- /.card -->
</div>
<!-- /.login-box -->

<!-- jQuery -->


<script src="plugins/jquery/jquery.min.js"></script>
<!-- Bootstrap 4 -->
<script src="plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- AdminLTE App -->
<script src="dist/js/adminlte.min.js"></script>

<script>
$(document).ready(function(){
end_loader();
})
</script>
</body>
</html>

200450131004 , 200450131008 , 200450131010 , 200450131018 39


Software Engineering (3150711)

Cab available page PHP code:

<section class="py-5">
<div class="container px-4 px-lg-5 mt-5 card rounded-0 card-outline card-purple shadow">
<div class="row">
<div class="col-md-12">
<center>
<h1 class="display-4 fw-bolder">Available Cabs</h1>
<hr>
</center>
<div class="form-group">
<div class="input-group mb-3">
<input type="search" id="search" class="form-control" placeholder="Search Here..." aria-
label="Search Here" aria-describedby="basic-addon2">
<div class="input-group-append">
<span class="input-group-text bg-success" id="basic-addon2"><i class="fa fa-
search"></i></span>
</div>
</div>
<hr>
</div>
<div class="row gx-4 gx-lg-5 row-cols-1 row-cols-sm-1 row-cols-md-2 row-cols-xl-3" id="cab_list">
<?php
$cabs = $conn->query("SELECT c.*, cc.name as category FROM `cab_list` c inner join
category_list cc on c.category_id = cc.id where c.delete_flag = 0 and c.id not in (SELECT cab_id FROM
`booking_list` where `status` in (0,1,2)) order by c.`reg_code`");
while($row= $cabs->fetch_assoc()):
?>
<a class="col item text-decoration-none text-dark book_cab" href="javascript:void(0)" data-
id="<?php echo $row['id'] ?>" data-bodyno="<?php echo $row['body_no'] ?>">
<div class="callout callout-primary border-success rounded-0">
<dl>
<dt class="h3"><i class="fa fa-taxi"></i> <?php echo $row['body_no'] ?></dt>
<dd class="truncate-3 text-muted lh-1">
<small><?php echo $row['category'] ?></small><br>
<small><?php echo $row['cab_model'] ?></small>
</dd>
</dl>
</div>
</a>
<?php endwhile; ?>
</div>
<div id="noResult" style="display:none" class="text-center"><b>No Results!!</b></div>
</div>
</div>
</div>
</section>
<script>
$(function(){
$('#search').on('input',function(){
var _search = $(this).val().toLowerCase().trim()
$('#cab_list .item').each(function(){
var _text = $(this).text().toLowerCase().trim()
_text = _text.replace(/\s+/g,' ')
console.log(_text)
if((_text).includes(_search) == true){
$(this).toggle(true)
}else{
$(this).toggle(false)

200450131004 , 200450131008 , 200450131010 , 200450131018 40


Software Engineering (3150711)

}
})
if( $('#cab_list .item:visible').length > 0){
$('#noResult').hide('slow')
}else{
$('#noResult').show('slow')
}
})
$('#cab_list .item').hover(function(){
$(this).find('.callout').addClass('shadow')
})
$('#cab_list .book_cab').click(function(){
if("<?= $_settings->userdata('id') && $_settings->userdata('login_type') == 2 ?>" == 1)
uni_modal("Book Cab - "+$(this).attr('data-bodyno'),"booking.php?cid="+$(this).attr('data-id'),'mid-
large');
else
location.href = './login.php';
})
$('#send_request').click(function(){
if("<?= $_settings->userdata('id') > 0 && $_settings->userdata('login_type') == 2 ?>" == 1)
uni_modal("Fill the cab Request Form","send_request.php",'mid-large');
else
alert_toast(" Please Login First.","warning");
})

})
$(document).scroll(function() {
$('#topNavBar').removeClass('bg-purple navbar-light navbar-dark bg-gradient-purple text-light')
if($(window).scrollTop() === 0) {
$('#topNavBar').addClass('navbar-dark bg-purple text-light')
}else{
$('#topNavBar').addClass('navbar-dark bg-gradient-purple ')
}
});
$(function(){
$(document).trigger('scroll')
})
</script>

200450131004 , 200450131008 , 200450131010 , 200450131018 41


Software Engineering (3150711)

6.2 Data Entry Development


• Login page
• Client profile
• Home page
• Registration page
• Taxi detail
• Booking List

1. Login page:

6.1 Login Page

200450131004 , 200450131008 , 200450131010 , 200450131018 42


Software Engineering (3150711)

2.Client profile

6.2 Client profile

3.Home page

6.3 Home Page

200450131004 , 200450131008 , 200450131010 , 200450131018 43


Software Engineering (3150711)

4.Registration page

6.4 Registration Form

5.Taxi Details

6.5 Taxi Details

200450131004 , 200450131008 , 200450131010 , 200450131018 44


Software Engineering (3150711)

6.Booking List

6.6 Booking List


6.3 Security Features
Security management system was not designed to impose a complete overhaul of one’s
security operations rather it was created to demonstrate what should be aimed for. If
current policies and practices within an organization provide a satisfactory outcome, there
may not beany need to change or modify the approach.

Security management System (SMS), by integrating security awareness throughout the


organization and verifying compliance through quality assurance, can be a significant
force in achieving the highest possible level of regulatory compliance. Specific security
practices, training and audit functions within a security management system should all be
built so as to ensure compliance with applicable national aviation security programs.

A security management system is an element of the corporate management responsibility


which sets out a company’s security policies and its intent to manage security as an
integral part of its overall business. It is important to keep in mind however that each
airline must implement the system that works best in their specific situation there is no
“one-size-fits-all” system. As with any business plan, goal set, levels of authority are
established and so on.
Ultimately, SMS becomes woven into the fabric of the organization and becomes part of
itsculture.

200450131004 , 200450131008 , 200450131010 , 200450131018 45


Software Engineering (3150711)

6.4 Coding Standard


Purpose of Having Coding Standards:
• A coding standard gives a uniform appearance to the codes written by
different engineers.
• It improves readability, and maintainability of the code and it reduces
complexity also.
• It helps in code reuse and helps to detect error easily.
• It promotes sound programming practices and increases efficiency of the
programmers.
Some of the coding standards are given below:

1. Limited use of globals:


These rules talk about which types of data that can be declared global and the
data that can’t be.

2. Standard headers for different modules:


For better understanding and maintenance of the code, the header of different
modules should follow some standard format and information.The header
format must contain below things that is being used in various companies:
• Name of the module
• Date of module creation
• Author of the module
• Modification history
• Synopsis of the module about what the module does
• Different functions supported in the module along with their input output
parameters
• Global variables accessed or modified by the module

3. Naming conventions for local variables, global variables, constants and


functions:
Some of the naming conventions are given below:
• Meaningful and understandable variables name helps anyone to
understand the reason of using it.
• Local variables should be named using camel case lettering starting with
small letter (e.g., localData) whereas Global variables names should start
with a capital letter (e.g., GlobalData). Constant names should be formed
using capital letters only (e.g., CONSDATA).
• It is better to avoid the use of digits in variable names.

200450131004 , 200450131008 , 200450131010 , 200450131018 46


Software Engineering (3150711)

• The names of the function should be written in camel case starting with
small letters.
• The name of the function must describe the reason of using the function
clearly and briefly.

4. Indentation:
• Proper indentation is very important to increase the readability of the
code. For making the code readable, programmers should use White
spaces properly. Some of the spacing conventions are given below:
• There must be a space after giving a comma between two function
arguments.
• Each nested block should be properly indented and spaced.
• Proper Indentation should be there at the beginning and at the end of each
block in the program.
• All braces should start from a new line and the code following the end of
braces also start from a new line.

5. Error return values and exception handling conventions:


All functions that encountering an error condition should either return a 0 or 1
for simplifying the debugging.
On the other hand, Coding guidelines give some general suggestions regarding
the coding style that to be followed for the betterment of understandability and
readability of the code. Some of the coding guidelines are given below :

6. Avoid using a coding style that is too difficult to understand:


Code should be easily understandable. The complex code makes maintenance
and debugging difficult and expensive.

7. Avoid using an identifier for multiple purposes:


Each variable should be given a descriptive and meaningful name indicating the
reason behind using it. This is not possible if an identifier is used for multiple
purposes and thus it can lead to confusion to the reader. Moreover, it leads to
more difficulty during future enhancements.

8. Code should be well documented:


The code should be properly commented for understanding easily. Comments
regarding the statements increase the understandability of the code.

9. Length of functions should not be very large:

200450131004 , 200450131008 , 200450131010 , 200450131018 47


Software Engineering (3150711)

Lengthy functions are very difficult to understand. That’s why functions should
be small enough to carry out small work and lengthy functions should be broken
into small ones for completing small tasks.

10. Try not to use GOTO statement:


GOTO statement makes the program unstructured, thus it reduces the
understandability of the program and also debugging becomes difficult.

Advantages of Coding Guidelines:

• Coding guidelines increase the efficiency of the software and reduces the
development time.
• Coding guidelines help in detecting errors in the early phases, so it helps
to reduce the extra cost incurred by the software project.
• If coding guidelines are maintained properly, then the software code
increases readability and understandability thus it reduces the complexity
of the code.
• It reduces the hidden cost for developing the software.

200450131004 , 200450131008 , 200450131010 , 200450131018 48


Software Engineering (3150711)

CHAPTER 7: SOFTWARE TESTING

Software testing is a critical element of software quality assurance and


represents the ultimate review of specification, design, and code generation. The
engineer creates a series of test cases that are intended to "defeat" the software
that has been built. In fact, testing is the one step in the software process that
could be viewed (psychologically, at least) as destructive rather than
constructive.

7.1 Analysis of Testing Method

Tests can be conducted based on two methods:


• Functionality testing
• Implementation testing

When functionality is being tested without taking the actual implementation in


concern it is known as black-box testing. The other side is known as white-box
testing where not only functionality is tested but the way it is implemented is
also analyzed.
Exhaustive tests are the best-desired method for a perfect testing. Every single
possible value in the range of the input and output values is tested. It is not
possible to test each and every value in real world scenario if the range of
values is large.
Static Testing:
Static testing a technique which is performed without executing the
application being tested. The errors in the application are found by checking
the syntax or reading the code manually, hence it is also called “Dry Run
Testing”. It is an inspection of software artifacts such as requirement
specification, design and code.
Dynamic Testing:
Dynamic testing is testing technique which is performed by executing the
application being tested. Input is given and the output is checked by
comparing the actual result with the expected result. It is further divided into
three categories white box testing, black box testing and grey box testing.

200450131004 , 200450131008 , 200450131010 , 200450131018 49


Software Engineering (3150711)

White box testing:


• White-box testing, sometimes called glass-box testing, is a test-case design
philosophy that uses the control structure described as part of component-
level design to derive test cases.
• Using white-box testing methods, you can derive test cases that
1. Guarantee that all independent paths within a module have been exercised at
least once.
2. Exercise all logical decisions on their true and false sides.
3. Execute all loops at their boundaries and within their operational bounds.
4. Exercise internal data structures to ensure their validity.

• White Box Testing method is applicable to the following levels of software


testing:

̶ It is mainly applied to Unit testing and Integration testing


̶ Unit Testing: For testing paths within a unit.
̶ Integration Testing: For testing paths between units.
̶ System Testing: For testing paths between subsystems.

Black Box Testing:


• Black-box testing, also called behavioral testing, focuses on the functional
requirements of the software.
• That is, black-box testing techniques enable you to derive sets of input
conditions that will fully exercise all functional requirements for a program.
• Black-box testing is not an alternative to white-box techniques. Rather, it is a
complementary approach that is likely to uncover a different class of errors
than white box methods.
• Black-box testing attempts to find errors in the following categories:
1. Incorrect or missing functions
2. Interface errors
3. Errors in data structures or external database access
4. Behavior or performance errors
5. Initialization and termination errors.

200450131004 , 200450131008 , 200450131010 , 200450131018 50


Software Engineering (3150711)

• Black Box Testing method is applicable to the following levels of software


testing:
- It is mainly applied to System testing and Acceptance testing
- Integration Testing
- System Testing
- Acceptance Testing

• The higher the level, and hence the bigger and more complex the box, the
black box testing method comes into use.

7.2 Analysis of test cases


While creating a project or modules we need to keep in mind that there is some validation
required, so that the entries of data are as per required and necessary.

Following are the validations in our project.

1) Validation for login page

7.1 Validation for login page

200450131004 , 200450131008 , 200450131010 , 200450131018 51


Software Engineering (3150711)

2) Validation for Registration Page

7.2 Validation for Registration page

3) Validation for Email

7.3 Validation for Email

200450131004 , 200450131008 , 200450131010 , 200450131018 52


Software Engineering (3150711)

4) Validation for Manage Profile

7.4 Validation for Manage Profile


5) Validation for Change Password

7.5Validation for change password

200450131004 , 200450131008 , 200450131010 , 200450131018 53


Software Engineering (3150711)

CHAPTER 8: COST ESTIMATION

A software cost estimating methodology is an indirect metric used by software professionals


to estimate project costs. They're utilized for a variety of things. It contains the following
items −
• Budgeting − The most desired capability is for the overall estimate to be correct. As a
result, the first focus is on estimating the software product's budget.

• Analysis of trade-offs and risks − The ability to expose the cost and schedule sensitivity
of software project choices is a significant added feature (scoping, staffing, tools, reuse,
etc.).

• Controlling and planning the project − Another option is to break down costs and
schedules by component, stage, and activity. Investment analysis for software
enhancements Tools, reuse, and process maturity are all beneficial to the software
development process.

Uses of Cost Estimation


1. During the planning stage, one needs to choose how many engineers are required for the
project and to develop a schedule.
2. In monitoring the project's progress, one needs to access whether the project is
progressing according to the procedure and takes corrective action, if necessary.

8.1 Basic and Intermediate COCOMO


COCOMO (Constructive Cost Model) is a regression model that is built on LOC (Lines of
Code). It is a cost estimation model for software projects that is frequently used to anticipate
the different characteristics connected with creating a project such as size, effort, cost, time,
and quality.
COCOMO applies to three classes of software projects:

• Organic projects - "small" teams with "good" experience working with "less than
rigid" requirements
• Semi-detached projects - "medium" teams with mixed experience working with a mix
of rigid and less than rigid requirements
• Embedded projects - developed within a set of "tight" constraints. It is also a
combination of organic and semi-detached projects. (Hardware, software, operational.)

COCOMO offers the following three distinct models:

1. The basic model

2. The intermediate model

3. The detailed model

200450131004 , 200450131008 , 200450131010 , 200450131018 54


Software Engineering (3150711)

1. Basic COCOMO Model: The basic COCOMO model provide an accurate size of the
project parameters. The following expressions give the basic COCOMO estimation model:

Effort=a1*(KLOC) a2 PM
Tdev=b1*(efforts)b2 Months

Where, KLOC is the estimated size of the software product indicate in Kilo Lines of Code,

a1,a2,b1,b2 are constants for each group of software products,

Tdev is the estimated time to develop the software, expressed in months,

Effort is the total effort required to develop the software product, expressed in person
months (PMs).

Estimation of development effort

For the three classes of software products, the formulas for estimating the effort based on the
code size are shown below:

Organic: Effort = 2.4(KLOC) 1.05 PM

Semi-detached: Effort = 3.0(KLOC) 1.12 PM

Embedded: Effort = 3.6(KLOC) 1.20 PM

Estimation of development time

For the three classes of software products, the formulas for estimating the development time
based on the effort are given below:

Organic: Tdev = 2.5(Effort) 0.38 Months

Semi-detached: Tdev = 2.5(Effort) 0.35 Months

Embedded: Tdev = 2.5(Effort) 0.32 Months

Some insight into the basic COCOMO model can be obtained by plotting the estimated
characteristics for different software sizes. Fig shows a plot of estimated effort versus product
size. From fig, we can observe that the effort is somewhat superliner in the size of the
software product. Thus, the effort required to develop a product increase very rapidly with
project size.

figure
8.1 Effort vs Product size

200450131004 , 200450131008 , 200450131010 , 200450131018 55


Software Engineering (3150711)

The development time versus the product size in KLOC is plotted in fig. From fig it can be
observed that the development time is a sub linear function of the size of the product, i.e.
when the size of the product increases by two times, the time to develop the product does not
double but rises moderately. This can be explained by the fact that for larger products, a
larger number of activities which can be carried out concurrently can be identified. The
parallel activities can be carried out simultaneously by the engineers. This reduces the time to
complete the project. Further, from fig, it can be observed that the development time is
roughly the same for all three categories of products. For example, a 60 KLOC program can
be developed in approximately 18 months, regardless of whether it is of organic,
semidetached, or embedded type.

8.2 Development time vs Size

From the effort estimation, the project cost can be obtained by multiplying the required effort
by the manpower cost per month. But, implicit in this project cost computation is the
assumption that the entire project cost is incurred on account of the manpower cost alone. In
addition to manpower cost, a project would incur costs due to hardware and software required
for the project and the company overheads for administration, office space, etc.

It is important to note that the effort and the duration estimations obtained using the
COCOMO model are called a nominal effort estimate and nominal duration estimate. The
term nominal implies that if anyone tries to complete the project in a time shorter than the
estimated duration, then the cost will increase drastically. But, if anyone completes the
project over a longer period of time than the estimated, then there is almost no decrease in the
estimated cost value.

2. Intermediate Model: The basic Cocomo model considers that the effort is only a function
of the number of lines of code and some constants calculated according to the various
software systems. The intermediate COCOMO model recognizes these facts and refines the
initial estimates obtained through the basic COCOMO model by using a set of 15 cost drivers
based on various attributes of software engineering.

200450131004 , 200450131008 , 200450131010 , 200450131018 56


Software Engineering (3150711)

Classification of Cost Drivers and their attributes:

(i) Product attributes -


o Required software reliability extent
o Size of the application database
o
The complexity of the product
Hardware attributes -
o Run-time performance constraints
o Memory constraints
o The volatility of the virtual machine environment
Personnel attributes -
o Analyst capability
o Software engineering capability
o Applications experience
o Virtual machine experience
o Programming language experience
Project attributes -
o Use of software tools
o Application of software engineering methods
o Required development schedule
Intermediate COCOMO equation:

E=ai (KLOC) bi*EAF


D=ci (E)di

Project ai bi ci di

Organic 2.4 1.05 2.5 0.38

Semidetached 3.0 1.12 2.5 0.35

Embedded 3.6 1.20 2.5 0.32


Table 8.1

Coefficients for intermediate COCOMO

200450131004 , 200450131008 , 200450131010 , 200450131018 57


Software Engineering (3150711)

CHAPTER 9: CONCLUSION AND FUTURE


ENHANCEMENT

Conclusion:
After more than two months of investigation, research, analysis, design and
development, the basic management of the taxi management information system
is completed. This system will be more efficient once it has been put into
practice and it will help to save time of driver and passenger both. It
functions seamlessly in each and every aspect one can think. Being user
friendly it can be used easily by people of every age.

Future Enhancement:
For future enhancement of our Taxi management project, we have following
ideas to make it more reliable:
➢ Adding comments section so that users can give their suggestions.
➢ Providing live tracking status for their family or friends.
➢ Providing sharing facilities to solo passenger to reduce the fare.
➢ Providing female driver for female passengers.
➢ Surveillance Cameras in Taxis for safety.

200450131004 , 200450131008 , 200450131010 , 200450131018 58

You might also like