Group CW
Group CW
Year: 2023
Semester: 3rd Semester
S.No. Member Name College ID London Met ID
1 Anisha Acharya NP05CP4A210033 21041068
2 Selisha Rai NP05CP4A210013 21041095
3 Nikita Parajuli NP05CP4A210028 21041084
4 Ekeshta Bohora NP05CP4A210022 21041078
5 Binaya Thapa NP05CP4A210031 21041073
Module Specification.................................................................................................. 38
Module Specification.................................................................................................. 42
Module Specification.................................................................................................. 47
Module Specification.................................................................................................. 54
Module Specification.................................................................................................. 61
6. Summary ................................................................................................................ 62
References .................................................................................................................... 64
List of Figures
Figure 1: Context Level Diagram (Level 0) .................................................................... 10
Figure 2: Data Flow Diagram Level 1 ............................................................................ 11
Figure 3: Level 2 diagram for Member Registration ...................................................... 12
Figure 4: Level 2 diagram for Join Training ................................................................... 12
Figure 5: Level 2 diagram for Hire Vehicles .................................................................. 13
Figure 6: Entity Relationship Diagram ........................................................................... 16
Figure 7: Structure chat ................................................................................................. 24
Figure 8: Level 0 DFD- Register membership ............................................................... 35
Figure 9: Level 1 DFD- Register membership ............................................................... 36
Figure 10:Level 2 DFD- Register membership .............................................................. 36
Figure 11: Structure Chart- Register membership ......................................................... 37
Figure 12: Level 0 DFD- Rent a Vehicle ........................................................................ 39
Figure 13: Level 1 DFD- Rent a Vehicle ........................................................................ 39
Figure 14: Level 2 DFD- Rent a Vehicle ........................................................................ 40
Figure 15: Structure Chart- Rent a Vehicle ................................................................... 41
Figure 16: Level 0 DFD- Book a cab ............................................................................. 44
Figure 17: Level 1 DFD- Book a cab ............................................................................. 44
Figure 18: Level 2 DFD- Book a cab ............................................................................. 45
Figure 19: Structure chart- Book a cab.......................................................................... 47
Figure 20: Level 0 DFD- Report preparation ................................................................. 49
Figure 21: Level 1 DFD- Report preparation ................................................................. 50
Figure 22: Level 2 DFD- Report preparation ................................................................. 52
Figure 23: Structured Chart- Report preparation ........................................................... 53
Figure 24: Level 0 DFD- Join Training Course .............................................................. 57
Figure 25: Level 1 DFD Join Training Course ............................................................... 58
Figure 26: Level 2 DFD Join Training Course ............................................................... 59
Figure 27: Structure Chart-Join Training Course ........................................................... 61
List of Tables
Table 1:- Functional Requirements with description ........................................................ 7
Table 2: Research on various topics. ............................................................................ 28
CS5002NT SOFTWARE ENGINEERING
1. Introduction
Allgemein is the top listed entertainment industry for a decade. The main source of
income for this industry are movie making, documentary filming, music, game
production and so on. well. Now, they are seeking forward to expand their business
with a new project of transport industry. For this, they have managed and purchased
huge number of vehicles to run the business smoothly. It almost covers every type of
vehicles such as from normal cab to construction-oriented vehicles like bulldozers,
cargo-truck and other related vehicles. Their entire focus is to provide two services; to
provide cab services and to provide rental service for vehicle like bulldozers, cargo-
trucks, etc. At first, cab service enables customers to book cab for travelling purpose
from one place to other. This service is not only limited in small city area but is
available to book cab from one state to other also. For rental service, customers are
requested to submit identification documents of any kind along with certain number of
charges as advance deposit. After completing the procedure, customers can rent a
vehicle for some specific time. This industry focus to provide smooth service to its
customers. For this, they must use a better application which can governs their core
functionalities. Besides this, customers information, transaction record of each
customer, every vehicle information is to be recorded at time and should be available
to extract whenever it is necessary.
2. Project Charter
industry. The company is proving services which includes cab services for customers
to travel from one place to another and vehicles like Bulldozers and cargo trucks for
construction and transportation of goods.
2.4. Timeline
The project is estimated to be completed within next 2 months. The team will work on
requirement gathering for the first 7 days. For the next 10 days, the design of the
system will be built. Then the developer team will start developing the application for
the next 1 month. Then in the remaining 13 days, the application will be tested and
implemented.
2.5. Scope
It is the one of the parts of project planning that helps in identifying and documenting
the list of specific project goals, deliverables, tasks, costs and deadlines. The scope
of the system are as follows: -
• A web application that is fully functional and portable.
• A user-friendly front end that provides interface to register new members, book
a cab, track the status of driver and so on.
• Back end that is capable of handling the registration requests, booking
requests, calculate the cost of the service used, keep the data of members,
vehicles and drivers, keep transaction record and so on.
2
CS5002NT SOFTWARE ENGINEERING
• The maximum time for the development and deployment of the fully functional
web application is 2 months.
• The total estimated cost for the project is NRs. 1.5 lakhs.
• There will be team of 5 software engineers working in the project.
• Each team member can work only 10 hours a day including holiday on
Saturday.
3
CS5002NT SOFTWARE ENGINEERING
4
CS5002NT SOFTWARE ENGINEERING
3. Track the status of drivers The provision to track the drivers whether they
have accepted/rejected the request and visualize
their location.
3.1 Get driver’s status Users must be able to view whether the cab
booking request that they have made is accepted
or rejected.
3.2 Get driver’s details Users should be able to view the details of driver
who is going to pick him/her up.
3.3 Visualize the location User must be able to visualize the location of cab
or driver and find out the right pickup time if the
booking is accepted.
4. Register staff and vehicles. System provision to register newly appointed staff
(any staff) and vehicle information in the system.
4.1 Verify staff details System should check and verify if a staff has been
already registered with the given details
(citizenship number, name, address etc.).
4.2 Verify vehicle details System should check and verify if a vehicle with
the given details (Vehicle number) is already
registered or not.
4.3 Generate staff enrollment A report with information about staff details and
report registration date should be generated at the end
of staff enrollment process.
4.4 Generate vehicle registration Vehicle registration report that contains
report information about vehicle details and registration
date should be generated at the end of vehicle
registration process.
5
CS5002NT SOFTWARE ENGINEERING
7. Rate the ride experience Customers should be able to rate the journey they
and vehicle’s efficiency. carried out, rate the efficiency of vehicles they
hired and be able to put suggestions.
7.1 Rate Cab Services Customer should be able to provide rating for the
cab service they used as per their ride experience.
7.2 Rate Vehicle Rental Service Customer should be able to provide rating for the
rented vehicle like cargo trucks, bulldozers
6
CS5002NT SOFTWARE ENGINEERING
8. Join the training courses. Special paid training is carried out twice a year to
learn how to drive heavy vehicles like cargo trucks
and bulldozers. Such programs/announcements
should be able to be posted in the system. The
customers can enroll in the training only after they
pay a certain fee.
8.1 Post announcements System admin should be able to post training
related announcements.
8.2 Select course Customers should be able to select the particular
course that they want to enroll into.
8.3 Verify payment System should verify if the payment has been
done by customers or not.
Table 1:- Functional Requirements with description
7
CS5002NT SOFTWARE ENGINEERING
c. HTTPS connection.
d. MySQL database.
8
CS5002NT SOFTWARE ENGINEERING
4. Group Task
9
CS5002NT SOFTWARE ENGINEERING
10
CS5002NT SOFTWARE ENGINEERING
11
CS5002NT SOFTWARE ENGINEERING
• Entity:
The first step in the database design process is for database designers to determine
which objects or business concepts need to be represented in the database. An entity is
13
CS5002NT SOFTWARE ENGINEERING
• Attribute:
Attributes are the property of an entity. An entity is basically represented by the
attributes that are recorded in the database. It may contain a variety of attributes. In an
E-R diagram, it is shown as an oval or ellipse.
• Relation:
It is a foundation of the relational model’s data structure. Relations describes the
connections between two tables or entities. It is denoted by a diamond shape.
After analysing the scenario and data flow diagrams above, the following objects have
been found to be relevant entities: Staff, Admin, Vehicle, Vehicle Report, Notification,
Vehicle Booking, Member, Member Report, Training, and Hire. The entity and each of its
attributes are given below:
14
CS5002NT SOFTWARE ENGINEERING
15
CS5002NT SOFTWARE ENGINEERING
16
CS5002NT SOFTWARE ENGINEERING
Member Report = member Report details + member Report records *DATA STORE*
Member Report records = {member Report details} *
Member Report details = M_Report_No + Report_Date + Member_Status
18
CS5002NT SOFTWARE ENGINEERING
M_Report_No = String
Report_Date = Date
Member_Status = String
Vehicle Report = Vehicle Report details + member Report records *DATA STORE*
Vehicle Report records = {Vehicle Report details} *
Vehicle Report details = V_Report_No + Report_Date + Vehicle_Status
V_Report_No = String
Report_Date = Date
Vehicle_Status = String
Notification_Type = String
Notification_Time = String
Message = String
➢ Commands
Staff Register = Command
Registration Status = [“Registration Successful”, “Registration Failed”]
Vehicle Register = Command
Registration Status = [“Registration Successful”, “Registration Failed”]
Vehicle Booking = Command
Booking Status = [ “Booking Successful”, “Booking Failed”]
Hire Vehicle Status = Command
Hire Vehicle Status = [ “Hire Vehicle Successful”, “Hire Vehicle Failed”]
Member Register = Command
Registration Status = [“Registration Successful”, “Registration Failed”]
Training Registration = command
Registration Status = [“Training Registration Successful”, “Training Registration
Failed”]
Generate Member Report = Command
Member ID = Member_ID
Member Name = Member_Name
Generate Vehicle Report = Command
Vehicle Number = Vehicle_No
Vehicle Type = Vehicle_Type
Make Announcement = command
Announcement = announcement message + announcement type
20
CS5002NT SOFTWARE ENGINEERING
Process A
Process number: 14.4
Process: Verify Payment
Process description: This process checks whether the user has made necessary
payment for hiring a vehicle or not.
Input:
Member information, vehicle information & driver information, availability status
Output:
Member information, vehicle information & driver information, Payment verification status
Process Logic:
• Get Member information, vehicle information & driver information, availability status
from the process 14.3
• Using those information, the payment of the member is verified. To do this, the Hire
data store is referred to.
• If the payment of the member is verified, then the control goes to process 14.5.
Process B
Process number: 1.3
Process: Generate member credentials
Process description: In this process system generates login id and password for the
member to login to the system.
Input:
Member info, Verification status
Output:
Confirmation message, Update member record
21
CS5002NT SOFTWARE ENGINEERING
Process Logic:
• Get verified Member details from process 1.2
• Using the information received, the process generates member credentials like login
id and password. The generated credentials is stored member data store.
• If the member credentials have been successfully generated, then it sends the
confirmation message to process 1.4
Process C
Process number: 3.3
Process: Check Course availability
Process description: This process checks whether the training course specified by the
member is currently running or not.
Input:
member info, course info, verification status, Course details
Output:
member info, course info, availability status
Process Logic:
• Get verified member details from the process 3.2
• The process checks if the course specified by member is currently running or not. For
the process, the course data store is referred to.
• If the course is currently running, then the control goes to process 3.4 for payment
verification process.
Process D
Process number: 14.5
Process: Record Hire details
Process description: This process keeps the record of hire details
22
CS5002NT SOFTWARE ENGINEERING
Input:
Member information, vehicle information & driver information, Availability Status
Output:
Hire status
Process Logic:
• Get member details, vehicle details, verified payment details and availability status
of vehicle and driver from the process 14.4
• If the vehicle is available, then the vehicle is hired, and the hire details is recorded.
To record the hire details, hire data store is being used.
• Ultimately, hire status is displayed to member.
Process E
Process number: 1.2
Process: Verify member details
Process description: This process checks whether the member details already exist in
a system or not.
Input:
Member info
Output:
Member info, Verification Status
Process Logic:
• Get member details from the process 1.1.
• Check if the duplicate member details is already recorded in the system or not. To
do this check, the member data store is referred to.
• If duplicate record is not found, then the process control goes to 1.3.
23
CS5002NT SOFTWARE ENGINEERING
Module hierarchy is represented by a structure chart which divides the entire system into
its smallest functional modules and goes into deeper detail on the functions and sub-
functions of each module. The system is divided into "black boxes" by Structure Chart
The black boxes receive inputs, and they provide the desired results. The black boxes
receive inputs, and they generate the necessary outputs. (geeksforgeeks, 2022)
24
CS5002NT SOFTWARE ENGINEERING
4.5.1. Assumptions
The designed system required several functions, and all of them are covered in order to
fulfil the requirements of the designed system. During the design phase, just a few
assumptions are to enhance the logic and design of the system. The assumptions are
given below:
➢ Member Details: The member details database stores all the member's information.
➢ Staff Details: The staff details database stores all the staff information.
➢ Vehicle Details: The vehicle details database stores all the vehicle information.
➢ Course Details: The course details database stores all the course information.
➢ Payment details: This Payment database contains all the transaction or payment
details.
➢ Hire Details: Hired details database contains all hiring-related information.
25
CS5002NT SOFTWARE ENGINEERING
7. Members will be able to track the status and location of driver after they have
made a booking of a cab service.
8. Only members can enroll in the training course after paying the training fee.
9. Staffs who are responsible to drive the vehicles should have valid driving license
and should medically be fit.
10. Staffs can receive and view the cab book request and hire vehicle request. They
have the right to either accept or decline the request.
11. New staffs can make registration to the system providing the required information
and documents.
12. Admin of the system can make appointment of new staffs and register vehicles
details in the system.
13. Admin manages the appointed staffs and registered members and vehicles.
14. Admin can post different notifications and announcements related to the service
and training in the system.
15. Only admin has the right to generate and view different reports related to
members, vehicles, staffs, and payments.
Assumptions on ERD
The Entity Relationship Diagram of “Allgemein” contains 11 different entities linked with
each other with different relation. Each entity has its own attributes. There exists one to
one relationship between staff and vehicle which means that one staff is associated with
only one vehicle. There is one to many relationships between admin and notification as
one admin can post multiple notification. One admin can add multiple training, so there is
one to many relationship between Admin and Training entities. To avoid many to many
relationship between the entities, there are bridge entities between them. The entity
Vehicle Report acts as a bridge between Admin and Vehicle and removes many to many
relationship. Between Member entity and Admin entity, there is Member report as a bridge
entity. Similarly, between Member and Vehicle, there are two bridge entities which are
Booking and Hire that omits many to many relationship between Member and Vehicle
entities. Member and Training entities are connected to each other through Enrollment
26
CS5002NT SOFTWARE ENGINEERING
entity acting as a bridge between them in order to remove the possible many to many
relationship between Member and Training.
The different attributes of different entities hold different values of various data type. The
datatype is assigned as per the values they store. For those attributes which store
sequence of characters and has nothing to do with arithmetic operations, they are
assigned by datatype String. For instance, Staff_Name, Staff_Contact, License_No,
Staff_Address, Vehicle_Type, Vehicle_Model, Member_Name, Member_Address and
many more. For those attributes, which holds numeric value i.e. numbers are assigned
with integer datatype or big integer datatype. For example, Vehicle_No, Staff_Contact,
License_No, Salary, Training_Duration, Training_Cost etc. Big integer is assigned to
those attributes which can exceed the range of integer values. Attributes storing dates
are defined with date datatype. Some of the attributes that has date data type are
Hire_Date, Report_Date etc.
4.5.2. Inconsistencies
• One of the inconsistencies in the specification is that it is not mentioned clearly that
payment is to be at the time of booking or after using the service in the “Book cab”
functionality
• The other inconsistency is that there is no provision for member to cancel the book or
hire vehicle service after booking or hiring vehicle has been done.
27
CS5002NT SOFTWARE ENGINEERING
28
CS5002NT SOFTWARE ENGINEERING
Meeting No: 01
Meeting Entry
Meeting No: 01 Date: 4th Dec 2022
Start Time: 8:30 AM Location: Barun class
Finish Time: 10:30 AM
Items Discussed:
- Discussed about scenario given in question.
- Task divided to each team member.
- Revised all the required topic.
Achievements:
- Completed the study of scenario given in question.
- Completed the revision and study of required topic.
29
CS5002NT SOFTWARE ENGINEERING
Meeting No: 02
Meeting Entry
Meeting No: 02 Date: 7th Dec 2022
Start Time: 8:30 AM Location: Guild Hall
Finish Time: 11:00 AM
Items Discussed:
- Discussion and review of project charter and SRS.
- Began working on the Entity Relationship Diagrams.
Achievements:
- Started to make documentation
- Completed introduction of project charter and SRS.
- ERD was drawn.
30
CS5002NT SOFTWARE ENGINEERING
Meeting No: 03
Meeting Entry
Meeting No: 03 Date: 12th Dec 2022
Start Time: 8:30 AM Location: Barun Class
Finish Time: 11:00 AM
Items Discussed:
- Prepare a draft of the Context Level Diagram.
- Try to create DFD Diagram for main system.
Achievements:
- Final Context Level Diagram is created.
- Created the DFD Diagram for main system.
- Working on documentation.
31
CS5002NT SOFTWARE ENGINEERING
Meeting No: 04
Meeting Entry
Meeting No: 04 Date: 17th Dec 2022
Start Time: 12:30 AM Location: Barun Class
Finish Time: 4:00 PM
Items Discussed:
- Try to create Data Dictionary.
- Write definitions of major topic in documentation.
Achievements:
- Data Dictionary was created
- Required definition of major topic was written.
- Prepared the Internal model specification for the system (ERD,
Data Dictionary, Process Specs)
32
CS5002NT SOFTWARE ENGINEERING
Meeting No: 05
Meeting Entry
Meeting No: 05 Date: 22nd Dec 2022
Start Time: 8:30 AM Location: Guild Hall
Finish Time: 11:00 AM
Items Discussed:
- Try to complete Design specification (Structure chart).
- Working the design and implementation of assignment diary.
- Distribute function to each group member for individual tasks.
Achievements:
- Design specification was completed.
- Worked on the design and implementation of assignment diary.
- Distributed individual task was completed.
33
CS5002NT SOFTWARE ENGINEERING
Meeting No: 06
Meeting Entry
Meeting No: 06 Date: 1st Jan 2022
Start Time: 10:30 AM Location: Discussion Room
Finish Time: 11:00 AM
Items Discussed:
-complete leftover part of documentation.
- Look all the documentation format properly.
Achievements:
-Finalized the documentation.
- Completed the coursework.
5. Individual Task
34
CS5002NT SOFTWARE ENGINEERING
etc. For the process, members need to supply their information like name, age, email,
address etc.
The function "Register Membership" is represented in the above figure as a Level 0 DFD
or context level diagram. Member and Admins are the two entities. The member inputs
into the system the personal information needed for registration. The admin views the
registration data, and depending on the accuracy of the information, approves or rejects
the membership request. Finally, the member is shown the registration status.
Level 1 DFD
Context diagrams are split into many processes at level DFD.
We divided the primary procedure into sub-processes at this level. According to the
general idea, there should only be three processes and no external entities. The input
and output of the data must be equal.
35
CS5002NT SOFTWARE ENGINEERING
From the above figure the objective of this figure is given below: -
Member Registration: This process is responsible to accept registration information from
the member.it also displays the registration status to the member.
Approve Registration request: This process is responsible to show the registration
details to the admin. The admin posts the approval or denial request through this process.
This process is also responsible to update the member data store after the admin
approves/denies registration request.
Level 2 DFD
This is the extended level 0.2 process of Level 1 DFD.
36
CS5002NT SOFTWARE ENGINEERING
Verify member info: In this process verifies whether correct registration information is
supplied by the member or not.
Verify registration: This process verifies whether the information supplied by the
member has already been used for the registration process or not.in short, the
functionality of this process is to identify duplicate registration record.
Generate member credential: This process is used to generate credential of the
member like username, password etc. this credential acts as a source of identity of the
individual user.
Update records: The credential thus generated is supposed to store in the data store.
This process is responsible to store the credential in the member data store. Similarly,
this process also displays the registration status to the user.
Design Specification
Structure Chart
Software modules are arranged into a tree in structured programming to use a structure
chart (SC), which is used in software engineering.
37
CS5002NT SOFTWARE ENGINEERING
Module Specification
MODULE NAME: Register a member
PURPOSE: To register new members and issue membership to respective users.
PSEUDOCODE:
DO
VAR member_ID = INPUT (“Enter member ID”)
VAR member_name = INPUT (“Enter member full name”)
VAR member_age = INPUT (“Enter member age”)
VAR member_address = INPUT (“Enter member permanent residence”)
VAR member_phone = INPUT (“Enter member contact number”)
VAR member_email = INPUT (“Enter member email address”)
IF(check_requirement(member_ID,member_name,member_age,member_address,
member_phone,member_email)) THEN
VAR member_detail+username = DB.member_record (member_ID,
member_name,
member_age, member_address, member_phone, member_email, username)
ELSE
Print(“An error was encountered during the member registration process”)
ENDIF
END DO
INPUT PARAMETER: member details
OUTPUT PARAMETER: username and password
GLOBAL VARIABLE: Database
LOCAL VARIABLE: member_ID, member_name, member_age, member_address,
member_contact,member_email
CALLS: GET check requirement for registration, register member
CALLED BY: Main
38
CS5002NT SOFTWARE ENGINEERING
DESCRIPTION:
According to our analysis to hire a vehicle in member case, they must fill member info,
staff details and vehicle info. In staff case, hire vehicle provides hire details to staff. After
collecting hire details from staff, they provide us information whether to approve/deny
status and send it to hire vehicle. Once the data is analysis in hire vehicle it will provide
hire status to member.
DESCRIPTION:
In Level 1 DFD, we have gone through more details of Hire vehicle. There are four main
function of hire vehicle they are:
Hire Vehicle: This function gets member detail and hired vehicle detail from member and
send vehicle details to vehicle database and gets vehicle details from vehicle database,
gets driver info from driver, and send hire details to hire database.
Approve Hire Request: In this function hire database sends hire request to the process.
Hire details are viewed by staff and the staff then either approves or denies the request.
Lastly, hire status is update on hire database.
Level 2 DFD:
40
CS5002NT SOFTWARE ENGINEERING
Verify Hire Details: This function gets vehicle details such as car, motorbike, truck from
vehicle database and hire accurate information of hire details.
Verify Identification Documents: This function gets member details such as password,
license, name, address from member and hire details from verify hire details.
Payment Verify: This function gets hire details, document status from Verify Identification
Documents. It also gives update payment record to Hire database.
Generate Invoice: This function gets payment verification status, hire details from
payment verify. After completing this function, it generates payment invoice displays the
hire status message.
Design Specification
Structure Chart
In software engineering, a structure chart (SC) is a diagram that represents the
breakdown of a system to its most manageable levels. To organize program modules into
a tree, they are employed in structured programming. Each module is represented by a
box that includes its name.
41
CS5002NT SOFTWARE ENGINEERING
Module Specification
MODULE NAME: Rent a Vehicle
PURPOSE: The purpose of this module is to allow registered members to rent a vehicle
for certain period of time after depositing some amount of money.
PSEUDOCODE:
DO
VAR member_id=INPUT(“ Enter member id:”)
VAR vehicle_id=INPUT(“Enter vehicle id:”)
VAR staff_id=INPUT(“Enter staff id:”)
IF(member_exists(member_id,DB.get_member_id()) EQUALS True) THEN
IF(vehicle_availability(vehicle_id,DB.get_vehicle_id()) EQUALS True)
THEN
IF(staff_availability(staff_id,DB.get_staff_id()) EQUALS True)
THEN
DB.add_hire_details(member_id, vehicle_id, staff_id);
VAR rental_date=date.now();
VAR rent_duration=INPUT(“Enter rent_duration”);
IF(approve_hire(DB.get_hire_details()) EQUALS True)THEN
VAR hire_id(AUTO GENERATED);
VAR member_name=DB.get_member_name(membe
r_id)
VAR vehicle_model=DB.get_vehicle_model(vehicle_i
d)
VAR staff_name=DB.get_staff_name(staff_id)
VAR
total_deposit=DB.get_deposit(member_id,vehicle_id,s
taff_id)
DB.update_hire_details(hire_id,member_name,rental
_date,rental_duration,vehicle_model,staff_name,
total_deposit)
DO
42
CS5002NT SOFTWARE ENGINEERING
hire_display()
PRINT “Hire Successful”
END DO
END IF
END IF
END IF
END IF
END DO
INPUT PARAMETERS: member_id, vehicle_id, staff_id, rent_duration
OUTPUT PARAMETERS: hire_display
GLOBAL VARIABLES: DB
LOCAL VARIABLES: hire_id, member_id, member_name, vehicle_id, vehicle_model,
staff_id, staff_name,total_deposit, rental_date, rent_duration
CALLS: member_exists(), vehicle_availability, staff_availability, get_member_id,
get_staff_id, get_vehicle_id, add_hire_details, approve_hire, get_hire_details,
get_member_name, get_vehicle_model, get_staff_name, get_deposit,
update_hire_details, hire_display
CALLED BY: main
43
CS5002NT SOFTWARE ENGINEERING
DESCRIPTION
The above figure shows Level 0 DFD or context level diagram of the function “Book a
cab”. There are two entity (member and staff) and only one process (Book a cab). The
entity member inputs a personal information and booking information required to book a
cab. This information will go through the function Book a cab. After that, the staff views
the booking details and sends the approved or denied booking message to the process.
Then, the member will be able to see their booking status.
Level 1 DFD
Level 1 DFD shows a more detailed view of the Context Level Diagram. Here, the main
functions carried out by the system are highlighted as we break into its sub-processes.
44
CS5002NT SOFTWARE ENGINEERING
DESCRIPTION
From the above figure, the objective of process is given below:
Book a cab: For this process booking details is input. To book a cab, vehicle, member,
and staff details is fetched from the vehicle, member, and staff data store respectively.
Then, the booking details is recorded to the Booking data store. This process produces
booking status as an output.
Approve cab request: This process fetch booking details from booking data store. The
fetched booking details is viewed by the staff as an output. After viewing booking details,
staff either approves or deny the booking request which is the input for this process. The
approved or denied status is recorded to the booking data store.
Level 2 DFD
2-level DFD goes one step deeper into parts of 1-level DFD. It provides much
more detail and breaks down subprocesses as needed.
45
CS5002NT SOFTWARE ENGINEERING
DESCRIPTION
From the above figure, the objective of process is given below
Verify book details: For this process, get booking details is input. To verify book details,
vehicle and member details is fetched from the member and vehicle data store
respectively. Then, it gives verified booking details as an output.
Check availability: This process takes verified booking details as input which is the
output produced by process 0.1.1. To check availability, vehicle details is fetched from
the vehicle data store. Then, it gives member info & vehicle info and availability status as
an output.
View payment details: This process takes member info & vehicle info and availability
status as input which is the output produced by process 0.1.2. Then, it gives member info
& vehicle info as an output.
Send cab request: This process takes member info & vehicle info as input which is the
output produced by process 0.1.3. The booking record is updated and recorded in book
data store.
Design Specification
Structure Chart
A structure chart is a chart derived from data flow. It breaks the system into the lowest
functional modules and explains their function and subfunctions in full detail for each
module and submodule.
46
CS5002NT SOFTWARE ENGINEERING
Module Specification
MODULE NAME: Book a cab
PURPOSE: The purpose of this module is to allow registered members to book a cab to
travel from one place to another.
PSEUDOCODE:
DO
VAR member_id=INPUT(“ Enter member id:”)
VAR vehicle_id=INPUT(“Enter vehicle id:”)
VAR staff_id=INPUT(“Enter staff id:”)
47
CS5002NT SOFTWARE ENGINEERING
END IF
END IF
END DO
49
CS5002NT SOFTWARE ENGINEERING
Description
In the context diagram above, there is a one entity which is represented in a rectangle,
two data flow which are represented by arrows and a function which is represented in a
circle. Admin provides admin info and report type as an input to the system and system
generates report on the basis of information provided by the Admin and gives Report as
an output to the Admin.
50
CS5002NT SOFTWARE ENGINEERING
Description
The process from the Context Diagram is split into 2 sub-processes. Those sub-
processes are explained below: -
0.1 Prepare report:- For this sub-process, admin information and report type are input.
Based on the selected report type, vehicle or member report is prepared by taking details
from the member ,vehicle, staff, hire, enrollment and booking data store. Then, it
produces prepared report as an output.
0.2 Display report:- This sub-process take prepared report as input which is the output
produced by process 0.1. Then, it displays the detailed report as an output.
Level 2 DFD
It is a deeper, more detailed view of a process than a Level 1 DFD. The processes from
Level 1 DFD is further divided into more sub-processes. Hence, the number of bubbles
or sub-processes are more in Level 2 DFD than in Level 1 DFD.
The process 0.1 is further sub-divided into multiple sub-processes in the below diagram.
51
CS5002NT SOFTWARE ENGINEERING
Description
The process 0.1 from the Level 1 DFD is further divided into sub processes which are
briefly described below :-
0.1.1 Specify report type:- This sub-process takes Admin information as input from the
Admin. Then based on the type of report specified by the admin, the process produces
member information for member report, staff information for staff report, vehicle
information for vehicle report and payment information for payment report as an output.
It receives member report data, staff report data, vehicle report data and payment report
data from process 0.1.2, 0.1.3, 0.1.4 and 0.1.5 respectively.
0.1.2 Generate member report:- It takes member information as an input. Based on the
information provided, it retrieves member details from member data store. Using the
details retrieved, it produces member report data as an output.
52
CS5002NT SOFTWARE ENGINEERING
0.1.3 Generate staff report:- It takes staff information as an input. Based on the
information provided, it retrieves staff details from staff data store. Using the details
retrieved, it produces staff report data as an output.
0.1.4 Generate vehicle report:- It takes vehicle information as an input. Based on the
information provided, it retrieves vehicle details from vehicle data store. Using the details
retrieved, it produces vehicle report data as an output.
0.1.5 Generate payment report:- It takes payment information as an input. Based on the
information provided, it retrieves payment details from Hire, Enrollment, Book data store.
Using the details retrieved, it produces payment report data as an output.
Design Specification
Structured Chart
In software engineering, a Structure Chart is a diagram that depicts the breakdown of a
system into its most manageable components. In structured programming, they are used
to organize program modules into a tree. (wikibooks, 2022)
53
CS5002NT SOFTWARE ENGINEERING
Module Specification
Module Name: Report Preparation
Purpose:
The purpose of this module is to generate report related to members, vehicles, staffs and
payments. For this, admin of the system feeds necessary information to the system and
as per the information provided by the admin, the module retrieves the required details
from different data stores and generates the detailed report. This output is displayed to
the admin as an output by the module.
Pseudocode:
DO
VAR report_type= INPUT( “Enter report type: ”);
IF (report_type EQUALS “Member report”) THEN
VAR member_id=INPUT( “Enter member id: ”);
IF (member_exists(member_id, DB.get_member_id()) EQUALS true)
THEN
VAR member_report_no(AUTO GENERATED)
VAR member_name=DB.get_member_fullname(member_id);
VAR member_contact=DB.get_member_contact(member_id);
VAR member_status=DB.get_member_status(member_id);
VAR date_joined=DB.get_date_joined(member_id);
VAR latest_service=DB.get_latest_service(member_id);
VAR last_login=DB.get_last_login(member_id);
DO
FUNCTION report_display();
END DO
END IF
ELSE IF (report_type EQUALS “Vehicle report”) THEN
VAR vehicle_id= INPUT(“Enter vehicle id: ”);
IF (vehicle_exists(vehicle_id, DB.get_vehicle_id()) EQUALS true) THEN
54
CS5002NT SOFTWARE ENGINEERING
55
CS5002NT SOFTWARE ENGINEERING
57
CS5002NT SOFTWARE ENGINEERING
Description:
In the above context level diagram, entity member provides member info and course info
as an input to the system required for joining the training course. The admin will check
the information details provided by the member and admin will be responsible for handling
the request and approving it. Then the member will be able to view their enrollment status.
Description: The function joining training course has been broken down displaying
further details with the help of following two functions:
0.1 Join Training: The system is designed in such a way that it accepts the member
information and course related information as a primary input. The input data related to
the customer is checked within the system to confirm that if the customer is a member of
this company or not. If the input information about the customer is already the member of
58
CS5002NT SOFTWARE ENGINEERING
company, then it proceeds to check the validation of input course. Otherwise, it will reject
the customer information if he/she is not the member of the industry. Then, if the input
course matches with the available training courses, then the member will be able to join
the training.
0.2 Approved Enrollment: Then, input information is ready for the procedure of
enrollment for the desired course. The system should accept the admin information
details. Then, the enrollment details of the member are viewed by the admin. If everything
goes as per the rule, then it is approved and if goes against the rule then it is denied by
the admin and system asks the member to update their enrollment details. Then, the
action from the admin is viewed and the enrollment is approved.
Level 2 DFD
The level 2 DFD goes one step further into the parts of the single-stage DFD. It can be
used to schedule or record specific/required details about the operation of the system.
59
CS5002NT SOFTWARE ENGINEERING
Description:
Design Specification
Structure Chart:
A structure graph is a graphical representation of the decomposition of a problem. It is a
tool that helps in the design of software. A structure diagram illustrates the breakdown of
a problem into sub-problems and shows the hierarchical relationships between the parts.
60
CS5002NT SOFTWARE ENGINEERING
Module Specification
Module Name: Join Training Course
Purpose: The purpose of this module is to enroll the registered member in the different
training courses available in the transportation company.
PSEUDOCODE
DO
VAR member_id= INPUT (“Enter member id:”);
VAR course_id=INPUT (“Enter course id:”);
IF (member_exists(member_id, get_member_id()) EQUALS True) THEN
IF (course_exists(course_id,get_course_id()) EQUALS True) THEN
IF (verify_payment(member_id,course_id) EQUALS True) THEN
DB.add_enrollment(member_id, course_id);
VAR invoice_num(AUTO GENERATED);
VAR member_name=DB.get_member_name(member_id);
VAR member_enroll_date= date.now();
VAR course_title=DB.get_course_title(course_id);
61
CS5002NT SOFTWARE ENGINEERING
6. Summary
In this way for the aim of this Software Engineering coursework we have designed the
system for “Allgemein” company to expand their business in the transport industry which
is booming industry. The issue was identified in a project charter which includes, business
case, Goal statement, timeline, scope, and project team members. The system's features,
including its functional and non-functional requirements, were then defined in an SRS
document.
A context diagram was first developed before level 1 and level 2 data flow diagrams were
included during the design phase. Using DFDs of various levels, the information and its
62
CS5002NT SOFTWARE ENGINEERING
flow throughout the system were ascertained. The context diagram was used to quickly
get a picture of all the data that the system received and discarded.
The higher level DFDs looked further into the use of these data inside the system as well
as the storage of updated and amended data. The numerous procedures required to carry
out tasks were also determined with the use of DFDs. Different entities were chosen and
then ERD was created with the proper relation for the accepted interconnected.
We were able to do the assigned coursework with diligent effort and effective teamwork
thanks to every team member for equal contributions and the assistance of the module
teacher, MR. Pratik Sedhai sir. We consider it an honour to finish the assessment that
Itahari International College has provided us.
63
CS5002NT SOFTWARE ENGINEERING
References
geeksforgeeks, 2022. Levels in Data Flow Diagrams (DFD). [Online]
Available at: https://www.geeksforgeeks.org/levels-in-data-flow-diagrams-dfd/
[Accessed 25 December 2022].
geeksforgeeks, 2022. Software Engineering | Structure Charts. [Online]
Available at: https://www.geeksforgeeks.org/software-engineering-structure-charts/
[Accessed 26 December 2022].
guru99, 2022. Functional requirement. [Online]
Available at: https://www.guru99.com/functional-requirement-specification-example.html
[Accessed 21 Decmber 2022].
javatpoint, 2022. Data Dictionaries. [Online]
Available at: https://www.javatpoint.com/software-engineering-data-dictionaries
[Accessed 22 December 2022].
lucidchart, 2022. What is a Data Flow Diagram. [Online]
Available at: https://www.lucidchart.com/pages/data-flow-diagram
[Accessed 25 December 2022].
lucidchart, 2022. What is an ER diagram?. [Online]
Available at: https://www.lucidchart.com/pages/er-diagrams
[Accessed 21 December 2022].
Pedriquez, D., 2022. What is a Context Diagram (and How Can You Create One)?.
[Online]
Available at: https://venngage.com/blog/context-diagram/
[Accessed 25 December 2022].
techtarget.com, 2022. SRS. [Online]
Available at: https://www.techtarget.com/searchsoftwarequality/definition/software-
requirements-specification
[Accessed 21 December 2022].
venngage, 2022. DFD. [Online]
Available at: https://venngage.com/blog/data-flow-diagram/)
[Accessed 23 December 2022].
64
CS5002NT SOFTWARE ENGINEERING
65