0% found this document useful (0 votes)
137 views

Group CW

The document details a software engineering group assignment. It includes a project charter, software requirements specification, group tasks including models and specifications, and individual tasks and specifications for different functions. The group worked collaboratively on the project and submitted it on time with appreciation for support received.

Uploaded by

Anisha Acharya
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
137 views

Group CW

The document details a software engineering group assignment. It includes a project charter, software requirements specification, group tasks including models and specifications, and individual tasks and specifications for different functions. The group worked collaboratively on the project and submitted it on time with appreciation for support received.

Uploaded by

Anisha Acharya
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 73

Module Code & Module Title

CS5002NT Software Engineering

Assessment Weightage & Type


20% Group Coursework

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

Assignment Due Date: 2023-01-02


Assignment Submission Date: 2023-01-02
I confirm that I understand my coursework needs to be submitted online via Google Classroom under the
relevant module page before the deadline in order for my assignment to be accepted and marked. I am
fully aware that late submissions will be treated as non-submission and a marks of zero will be awarded.
Acknowledgement
We are grateful to Itahari international college for providing the resources and platform
for our growth, as well as our module instructor, Mr. Pratik Sedain sir, for leading us
through our whole project and providing us views, suggestions, and feedback. Thank you
will not be insufficient; therefore, appreciation will be best upon all team members who
worked tirelessly to accomplish this job. Despite our extra load and stressful days, we
made it possible and completed the assignment. We are making steady progress and
finishing the project by the help of supporting parents and encouraging tutors through the
help of collage resources.
Table of Contents
1. Introduction .............................................................................................................. 1

2. Project Charter ......................................................................................................... 1

2.1. Problem Statement ............................................................................................ 1

2.2. Business Case ................................................................................................... 1

2.3. Goal Statement .................................................................................................. 2

2.4. Timeline ............................................................................................................. 2

2.5. Scope ................................................................................................................. 2

2.6. Team Members .................................................................................................. 3

3. Software Requirement Specification (SRS) ................................................................. 3

3.1. Functional Requirements ...................................................................................... 4

3.2. Non-functional Requirements ............................................................................... 7

3.2.1. Hardware Specifications................................................................................. 7

3.2.2. Software Specification .................................................................................... 7

4. Group Task ................................................................................................................. 9

4.1. Environmental Model Specification ....................................................................... 9

4.1.1 Context Diagram ................................................................................................. 9

4.1.2 Data Flow Diagram Level 1 .............................................................................. 10

4.2.2 Level 2 Data Flow Diagram............................................................................... 11

4.2. Internal Model Specification ................................................................................ 13

4.2.1. Entity Relationship Diagram ......................................................................... 13

4.2.2. Data Dictionary............................................................................................. 16

4.2.3. Process Specification ................................................................................... 21

4.3 Design Specification ............................................................................................ 24

4.3.1. Structure Chart ............................................................................................. 24


4.5 Assignment Diary................................................................................................. 24

4.5.1. Assumptions .................................................................................................... 25

4.5.2. Inconsistencies ................................................................................................ 27

4.5.3. Group Member Responsibilities ................................................................... 27

4.5.2 Group Meetings............................................................................................. 29

5. Individual Task ....................................................................................................... 34

Student Name: Nikita Parajuli ....................................................................................... 34

Function Name: Register membership .......................................................................... 34

Environmental Model Specification ............................................................................ 35

Internal Model Specification ....................................................................................... 35

Design Specification .................................................................................................. 37

Module Specification.................................................................................................. 38

Student Name: Selisha Rai ........................................................................................... 39

Function Name: Rent a Vehicle ..................................................................................... 39

Environmental Model Specification ............................................................................ 39

Internal Model Specification ....................................................................................... 39

Design Specification .................................................................................................. 41

Module Specification.................................................................................................. 42

Student Name: Anisha Acharya .................................................................................... 43

Function Name: Book a cab .......................................................................................... 43

Environmental Model Specification ............................................................................ 43

Internal Model Specification ....................................................................................... 44

Design Specification .................................................................................................. 46

Module Specification.................................................................................................. 47

Student Name: Binaya Thapa ....................................................................................... 49


Function Name: Report preparation. ............................................................................. 49

Environmental Model Specification ............................................................................ 49

Design Specification .................................................................................................. 53

Module Specification.................................................................................................. 54

Student Name: Ekeshta Bohora .................................................................................... 57

Function Name: Join Training Course ........................................................................... 57

Environmental Model Specification ............................................................................ 57

Internal Model Specification ....................................................................................... 58

Design Specification .................................................................................................. 60

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

2.1. Problem Statement


A well-established company “Allgemein” which has dominated the entertainment
industry for a decade is currently falling behind due to the numerous competitors in
the market. This competition has resulted in a 10% decrease in the company's annual
revenue. The company is now suffering a 5% loss.

2.2. Business Case


To cover up the loss and increase the company’s annual revenue, “Allgemein” is
looking at expanding its business to transport industry as well which is booming
1
CS5002NT SOFTWARE ENGINEERING

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.3. Goal Statement


The new web application is being implemented by “Allgemein” to achieve the following
goals: -
• To allow customers to sign up for membership online.
• To facilitate customers by offering an online cab booking system.
• To track and monitor every transaction record, customer information, and
vehicle information so that the essential data can be obtained whenever
needed

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.

2.6. Team Members


Member Name Role
Anisha Acharya Front-End Developer
Ekeshta Bohora Designer
Selisha Rai Tester
Nikita Parajuli Back-End Developer
Binaya Thapa Project Manager

3. Software Requirement Specification (SRS)


A software requirements specification (SRS) is a detailed description of the intended use
and environment for software that is currently being developed. The SRS clearly outlines
the functions and performance standards for the software. An SRS reduces the amount
of time and effort needed for developers to achieve their goals as well as the cost of
development. A good SRS outlines how an application will communicate with the system
hardware, other software, and users in a wide range of real-world scenarios.
(techtarget.com, 2022)
For this project, we are making a web application system for transport industry which will
help them to grow their business. The designed web application should have the features
given by the organization.

3
CS5002NT SOFTWARE ENGINEERING

3.1. Functional Requirements


A functional requirement (FR) is a specification of the service that the system must
provide. It represents a software system or a part of it. A function is nothing more than
the software system's inputs, behaviour, and outputs. It can be a calculation, data
manipulation, business procedure, user interaction, or any other particular activity that
specifies what purpose a system is likely to offer. (guru99, 2022) The functional
requirements identified for our system are:

ID Functions and sub- Description


Functions
1. Take Membership Any new customer should be a member to use the
services.
1.1 Verify Member Information If a user has already been registered with the
provided information, then the system must verify
and check them.
1.2 Generate Member Details about registration date, member details
Registration Report should be included by forming a report at the end
of member registration.

The provision to book the cab. The users place


2. Book cab. requests specifying the journey details. The cab
drivers confirm the booking.
2.1 Record customer’s The system must keep the record of customers
destination destination while booking the cab.
2.2 Send pickup request The system must keep the record of customers
pickup destination while booking the cab.
2.3 View journey Details The system provides cab driver with the journey
details of the customer

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

5. Hire a vehicle. The provision to hire vehicles (like


bulldozers/cargo trucks) and hire the specialist
drivers if needed.
5.1 Verify identification System should check and verify the customer’s
document identification document such as citizenship or
passport.
5.2 Verify payment System should check if the customer has made
payment for the hire or not.

6. Report preparation. The facility for the admins to generate reports


related to customers, business, revenue
generated, vehicles.
6.1 Customer Report The system admin should be able to prepare
customer report that includes information about
customers whenever required.
6.2 Vehicle Report The system admin should be able to prepare
report related to vehicles and contains information
about different vehicles whenever required.

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

3.2. Non-functional Requirements


Non-Functional requirements are the set of requirements that describes the capabilities
and operational limitations of the system and attempt to enhance its functional. It
describes how system operate. This includes qualities like their usability, performance,
security, maintainability, and scalability. They essentially offer the right exams and
balances to the useful requirements. These are the quality constraints that the system
must meet in accordance with the project contract. The importance or extent that the each
of these factors are implemented varies by project.
3.2.1. Hardware Specifications
a. Minimum of 4GB RAM.
b. Display of 1024*720 pixels.
c. 1.6 Ghz i5 processor or equivalent.
d. Internet connection of at least 10mbps.

3.2.2. Software Specification


a. Latest version of Chrome, Firefox, or Edge internet browser
b. Windows 10 or higher.

7
CS5002NT SOFTWARE ENGINEERING

c. HTTPS connection.
d. MySQL database.

3.3.3. Other Non-Functional requirements.


• Security: Several customer data are being recorded every minute for transportation
purpose. This data of customers is kept confidentially. Financial transaction is also
stored in the application, which is sensitive in nature, so this kind of data must be
stored in an encrypted state.
• Scalability: Data can be processed in parallel manner at a single time. It offers us for
multi-tasking. The web application can handle more than 3000 users concurrently
without any issues.
• Performance: The web application ensures high performance as it takes very less
period to reply to the response. If a request is made by the customer, the request is
answered by the system with 10 seconds.
• Maintainability: The web application is designed in such a way that it can evolve for
all the changes desired. Other functionalities can be added or removed easily in the
future. If there is a failure of the system, then it will be able to be fixed within 3 hours.
In case of failure, the data of the system is backed up so that they can be restored
after the application maintenance.
• Usability: The User Interface for the web application is designed in such a way that
anyone can use it easily or learn to use in very short period. Users will be satisfied
with the UI.
• Reliability: The application is highly reliable. For instance, if ten requests are made
to the application then 9 requests will be answered, and the last 1 request maybe be
subject to failure.
• Availability: Customers can take membership and make payments anytime they
want. Transportation service will be available for 24 hours for the customer help and
their demand place.

8
CS5002NT SOFTWARE ENGINEERING

4. Group Task

4.1. Environmental Model Specification


Data flow diagram is the concrete representation which demonstrate the flow of the
process of an organization.it highlights the important information and steps that should
be done through the flow diagram. Depending on the process it represents, different
designs and levels of detail. It could be a basic outline of a broad system or more thorough
evaluation of a multi-level process.it is organized hierarchically. Data’s in DFD are flowed
in the process of input and output and it also indicates the information as well it also gives
idea about where the data goes and stored. (venngage, 2022)

4.1.1 Context Diagram


Context Diagram is a simple diagram that shows an entity's scope, boundaries, and
relationships to other external factors like stakeholders. It is used to give a general
overview of a system, including its inputs, outputs, and important parts or activities. A
context diagram is also known as a Level 0 data flow diagram. (Pedriquez, 2022)

9
CS5002NT SOFTWARE ENGINEERING

Figure 1: Context Level Diagram (Level 0)

4.1.2 Data Flow Diagram Level 1


The context diagram is divided into numerous bubbles and processes in 1-level DFD. In
this level, we highlight the key functions of the system and split the high-level 0-level DFD
process into subprocesses. (geeksforgeeks, 2022)

10
CS5002NT SOFTWARE ENGINEERING

Figure 2: Data Flow Diagram Level 1

4.2.2 Level 2 Data Flow Diagram


In 2-level DFD, parts of 1-level DFD are further discussed in detail. It can be used to plan
or keep track of the exact or important information about how the system works.
(lucidchart, 2022)

11
CS5002NT SOFTWARE ENGINEERING

Figure 3: Level 2 diagram for Member Registration

Figure 4: Level 2 diagram for Join Training


12
CS5002NT SOFTWARE ENGINEERING

Figure 5: Level 2 diagram for Hire Vehicles

4.2. Internal Model Specification


4.2.1. Entity Relationship Diagram
An Entity Relationship (ER) Diagram is a type of flowchart that shows the relationships
between "entities" like people, things, or concepts within a system. ER Diagrams are most
frequently used in the disciplines of software engineering, business information systems,
education, and research to build or troubleshoot relational databases. They use a
predefined collection of symbols to represent the interconnection of entities, relationships,
and their qualities. These symbols include rectangles, diamonds, ovals, and connecting
lines. (lucidchart, 2022) Entity Relation Diagram contains entities, attributes, and
relationships which are shown below:

• 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

a physical objects or business concepts that help to distinguish objects or business


concepts. Each Entity is represented as a rectangle in the ER diagram.

• 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:

Staff – Staff_ID, Staff_Name, Staff_Contact, Licence_No, Staff_Address, Salary,


Date_of_join

Admin – Admin_ID, Admin_FullName, Admin_Username, Admin_Password,


Admin_Contact

Vehicle – Vehicle_No, Vehicle_Type, Vehicle_Model, Fuel_Type, Vehicle_Variant

Vehicle Report – V_Report_No, Report_Date, Vehicle_Status

Notification – Notification_ID, Notification_Type, Notification_Time, Message

Vehicle Booking – Booking_ID, Booking_Date, Booking_Charge, Rating

14
CS5002NT SOFTWARE ENGINEERING

Member – Member_ID, Date_of_membership, Member_Password, Member_Name,


Member_Address, Member_Email

Member Report – M_Report_No, Report_Date, Member_Status

Training – Training_ID, Training_Type, Training_Duration, Training_Cost

Hire – Hire_ID, Hire_Date, Payment, Rating

Enrollment – Enrollment_ID, Enrollment_Date

15
CS5002NT SOFTWARE ENGINEERING

Figure 6: Entity Relationship Diagram

4.2.2. Data Dictionary


A data dictionary is a file or series of files that contains the metadata of a database. It
keeps information about other entities in the database, such as data ownership,
relationships to other objects, and other data. The Data Dictionary is the most important
component of the system's structured analysis model. It contains a list of all the data
elements present in DFD. (javatpoint, 2022)

16
CS5002NT SOFTWARE ENGINEERING

The data dictionary of this system is given below:

Staff = Staff details + Staff records *DATA STORE*


Staff records = {Staff details} *
Staff details = Staff_ID + Staff_Name + Staff_Contact + Licence_No + Staff_Address
+ Salary + Date_of_join
Staff_ID = String
Staff_Name = String
Staff_Contact = Big Integer
Licence_No = Integer
Staff_Address = String
Salary = Integer
Date_of_join = Date

Vehicle = Vehicle details + Vehicle records *DATA STORE*


Vehicle records = {Vehicle details} *
Vehicle details = Vehicle_No + Vehicle_Type + Vehicle_Model + Fuel_Type +
Vehicle_Variant
Vehicle_No = Integer
Vehicle_Type = String
Vehicle_Model = String
Fuel_Type = String
Vehicle_Variant = String

Vehicle_Booking = Vehicle_Booking details + Vehicle_Booking records *DATA STORE*


Vehicle_Booking records = {Vehicle_Booking details} *
Vehicle_Booking details = Booking_ID + Booking_Date + Booking_Charge + Rating
Booking_ID = String
Booking_Date = Date
Booking_Charge = Integer
Rating = String
17
CS5002NT SOFTWARE ENGINEERING

Hire = Hire details + Hire records *DATA STORE*


Hire records = {Hire details} *
Hire details = Hire_ID + Hire_Date + Payment + Rating
Hire_ID = String
Hire_Date = Date
Payment = Integer
Rating = String

Member = member details + member records *DATA STORE*


Member records = {member details} *
Member details = Member_ID + Date_of_membership + Member_Password +
Member_Name + Member_Address + Member_Email
Member_ID = String
Date_of_membership = Date
Member_Password = String
Member_Name = String
Member_Address = String
Member_Email = String

Training = Training details + member records *DATA STORE*


Training records = {Training details} *
Training details = Training_ID + Training_Type + Training_Duration + Training_Cost
Training_ID = String
Training_Type = String
Training_Duration = Integer
Training_Cost = Integer

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

Enrollment = Enrollment details + Enrollment records *DATA STORE*


Enrollment records = {Enrollment details} *
Enrollment details = Enrollment _ID+ Enrollment _Date
Enrollment _ID = String
Enrollment _Date= Date

Admin = Admin details + Admin records *DATA STORE*


Admin records = {Admin details} *
Admin details = Admin_ID + Admin_FullName + Admin_Username + Admin_Password +
Admin_Contact
Admin_ID = String
Admin_FullName = String
Admin_Username = String
Admin_Password = String
Admin_Contact = Big Integer

Notification = Notification details + Notification records *DATA STORE*


Notification records = {Notification details} *
Notification details = Notification_ID + Notification_Type + Notification_Time + Message
Notification_ID = String
19
CS5002NT SOFTWARE ENGINEERING

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

4.2.3. Process Specification

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

4.3 Design Specification


4.3.1. Structure Chart

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)

Figure 7: Structure chat

4.5 Assignment Diary


Assignment diary is a type of record-keeping system that is used to manage and monitor
tasks, goals, objectives, and other types of assignments. It is commonly used by students
to record assignment dates, tasks, and other important information. It is helpful to
understand each member's roles and time management. This project assignment diary is
divided into three sections, which are as follows:

24
CS5002NT SOFTWARE ENGINEERING

● All the assumptions that are made,


● All the omissions/inconsistencies discovered in the provided specification.
● Group member responsibilities, group meetings.

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.

Assumptions on the company’s rules, regulations, and activities: -


1. Any new customer can make a free registration to the system by providing the
valid information to the system.
2. Customer must be above 18 years of age to make a member registration.
3. Staffs in the company are responsible to verify the information and documents
submitted by the new member and issue a membership.
4. The system itself generates the login id and password to the new customer for
the first login. Later, member can change their password.
5. To use the services provided by the company, customer must be member of the
company.
6. Member has an option to hire vehicle with the specialist driver (if needed) or only
the vehicle.

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.

4.5.3. Group Member Responsibilities


We are a group of four persons working on this project. we divided the task amongst
ourselves in order to reduce workload and finish the coursework ahead of schedule in
order to save time. There were discussions and interactions about the entire system so
that each group member understood the general procedure of the system. By helping one
another, we provide the following responsibilities for each individual:

27
CS5002NT SOFTWARE ENGINEERING

Group Member Responsibilities

• Work on Individual task “Report preparation”


• Prepare Project Charter.
Binaya Thapa • Worked on level 0, level 1, level 2 DFD
• Make the design of Structure Chart of the whole systems.
• Research on various topics.
• Work on Individual task “Register membership”
• Prepare introduction of the project
Nikita Parajuli • Design the Entity Relationship diagram.
• Documentation
• Work on Individual task “Rent a Vehicle”
• Detailed explanation of DFDs.
Selisha Rai • Prepare assignment Diary.
• Documentation
• Work on Individual task “Join Training”
• Detailed explanation of non-functional requirement in SRS.
Ekeshta Bohora • Summarise the project.
• Documentation
• Work on Individual task “Book a cab”
• Create a Data dictionary.
Anisha Acharya • Detailed explanation of functional requirement in SRS.
• Work on Entity Relationship Diagram.
• Worked on Process Specification.
• Documentation

Table 2: Research on various topics.

28
CS5002NT SOFTWARE ENGINEERING

4.5.2 Group Meetings

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.

Task Until Next Meeting:


- Start working on documentation
- Complete the study of project charter and SRS.
- Try to prepare the Internal model specification for the system
(ERD, Data Dictionary, Process Specs)

Student Name: Students Signature:

Binaya Thapa Binaya


Nikita Parajuli Nikita
Ekeshta Bohora Ekeshta
Selisha Rai Selisha
Anisha Acharya Anisha

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.

Task Until Next Meeting:


- Prepare a draft of the Context Level Diagram.
- Try to create DFD Diagram for main system.

Student Name: Students Signature:

Binaya Thapa Binaya


Nikita Parajuli Nikita
Ekeshta Bohora Ekeshta
Selisha Rai Selisha
Anisha Acharya Anisha

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.

Task Until Next Meeting:


- Try to create Data Dictionary.
- Write definitions of major topic in documentation.

Student Name: Students Signature:

Binaya Thapa Binaya


Nikita Parajuli Nikita
Ekeshta Bohora Ekeshta
Selisha Rai Selisha
Anisha Acharya Anisha

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)

Task Until Next Meeting:


- Try to complete Design specification (Structure chart).
- Working the design and implementation of assignment diary.
- Distribute function to each group member for individual tasks.

Student Name: Students Signature:

Binaya Thapa Binaya


Nikita Parajuli Nikita
Ekeshta Bohora Ekeshta
Selisha Rai Selisha
Anisha Acharya Anisha

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.

Task Until Next Meeting:


- Try to complete leftover part of documentation.
- Final verification of documentation.

Student Name: Students Signature:

Binaya Thapa Binaya


Nikita Parajuli Nikita
Ekeshta Bohora Ekeshta
Selisha Rai Selisha
Anisha Acharya Anisha

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.

Student Name: Students Signature:

Binaya Thapa Binaya


Nikita Parajuli Nikita
Ekeshta Bohora Ekeshta
Selisha Rai Selisha
Anisha Acharya Anisha

5. Individual Task

Student Name: Nikita Parajuli

Function Name: Register membership


Introduction
The member at Allgemein transportation management system should get
registered to use the services of the system such as Book cab, hire vehicle, join course

34
CS5002NT SOFTWARE ENGINEERING

etc. For the process, members need to supply their information like name, age, email,
address etc.

Environmental Model Specification

Level 0 DFD/ Context Diagram


The context diagram is the beginning process of environmental model specification.

Figure 8: Level 0 DFD- Register membership

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.

Internal Model Specification

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

Figure 9: Level 1 DFD- Register membership

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.

Figure 10:Level 2 DFD- Register membership

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.

Figure 11: Structure Chart- Register membership

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

Student Name: Selisha Rai

Function Name: Rent a Vehicle

Environmental Model Specification


Context Level/ Level 0 DFD

Figure 12: Level 0 DFD- Rent a Vehicle

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.

Internal Model Specification


Level 1 DFD:

Figure 13: Level 1 DFD- Rent a Vehicle


39
CS5002NT SOFTWARE ENGINEERING

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:

Figure 14: Level 2 DFD- Rent a Vehicle

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.

Figure 15: Structure Chart- Rent a Vehicle

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

Student Name: Anisha Acharya

Function Name: Book a cab

Environmental Model Specification


Level 0 DFD/ Context Diagram
The context diagram is the starting process of environmental model specification.

43
CS5002NT SOFTWARE ENGINEERING

Figure 16: Level 0 DFD- Book a cab

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.

Internal Model Specification

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.

Figure 17: Level 1 DFD- Book a cab

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.

Figure 18: Level 2 DFD- Book a cab

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

Figure 19: Structure chart- Book a cab

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

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_booking_details(member_id, vehicle_id, staff_id)
VAR destination=INPUT(“Enter destination:”)
VAR pickup_date=INPUT(“Enter pickup date:”)
VAR pickup_time=INPUT(“Enter pickup time:”)
VAR no_of_passenger=INPUT(“Enter no of passenger:”)
IF(approve_book(DB.get_booking_details()) EQUALS True)
THEN
VAR booking_id(AUTO GENERATED)
VAR
member_name=DB.get_member_name(member_id)
VAR
vehicle_model=DB.get_vehicle_model(vehicle_id)
VAR staff_name=DB.get_staff_name(staff_id)
VAR total_price=DB.get_total_price(member_id,
vehicle_id,destination)
DB.update_booking_details(booking_id,
member_name,
pickup_time,pickup_date,vehicle_model, staff_name,
total_price)
DO
booking_display ();
PRINT “Booking accepted”
END DO
ELSE
PRINT “Booking denied”
END IF
48
CS5002NT SOFTWARE ENGINEERING

END IF
END IF
END DO

INPUT PARAMETERS: member_id, vehicle_id, staff_id, destination, pickup_date,


pickup_time, no_of_passenger
OUTPUT PARAMETERS: booking_display
GLOBAL VARIABLES: DB
LOCAL VARIABLES: member_id, vehicle_id, staff_id, destination, pickup_date,
pickup_time, no_of_passenger, booking_id, member_name, vehicle_model, staff_name,
total_price
CALLS: member_exists, vehicle_availability, staff_availability, approve_book,
get_member_id, get_vehicle_id, get_staff_id, get_booking_details, get_member_name,
get_vehicle_model, get_staff_name, get_total_price, update_booking_details
CALLED BY: main

Student Name: Binaya Thapa

Function Name: Report preparation.

Environmental Model Specification


Level 0 DFD/ Context Diagram

Figure 20: Level 0 DFD- Report preparation

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.

Internal model specification


Level 1 DFD
In level 1 DFD, the context diagram is split into multiple bubbles or sub-functions. It
provides the detailed view of the Context Level Diagram.

Figure 21: Level 1 DFD- Report preparation

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

Figure 22: Level 2 DFD- Report preparation

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)

Figure 23: Structured Chart- Report preparation

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

VAR vehicle_report_no(AUTO GENERATED)


VAR vehicle_model=DB.get_vehicle_model(vehicle_id);
VAR vehicle_variant=DB.get_vehicle_variant(vehicle_id);
VAR vehicle_fuel_type=DB.get_vehicle_fuel_type(vehicle_id);
VAR registration_date=DB.get_registration_date(vehicle_id);
VAR last_service_date=DB.get_last_service_date(vehicle_id);
VAR total_kilometers=DB.get_total_kilometers(vehicle_id_);
VAR vehicle_status=DB.get_vehicle_status(vehicle_id);
DO
FUNCTION report_display();
END DO
END IF
ELSE IF (report_type EQUALS “Staff report”) THEN
VAR staff_id=INPUT(“Enter staff id:”);
IF (staff_exists(staff_id, DB.get_staff_id()) EQUALS true) THEN
VAR staff_report_no(AUTO GENERATED)
VAR staff_name=DB.get_staff_name(staff_id);
VAR staff_DOB=DB.get_staff_DOB(staff_id);
VAR staff_contact=DB.get_staff_contact(staff_id);
VAR license_num=DB.get_license_num(staff_id);
VAR staff_join_date=DB.get_staff_join_date(staff_id);
VAR staff_salary=DB.get_staff_salary(staff_id);
DO
PRINT “Report prepared successfully”
FUNCTION display_report();
END DO
END IF
ELSE IF (report_type EQUALS “Payment report”) THEN
VAR member_id=INPUT( “Enter member id: ” )
IF (member_exists(member_id, DB.get_member_id) EQUALS true)

55
CS5002NT SOFTWARE ENGINEERING

VAR payment_report_no(AUTO GENERATED)


VAR payment_report_date(AUTO GENERATED)
VAR member_name=DB.get_member_name(member_id);
VAR hire_id=DB.get_hire_id(member_id);
VAR hire_payment=DB.get_hire_payment(member_id);
VAR booking_id=DB.get_booking_id(member_id);
VAR booking_payment=DB.get_booking_payment(member_id);
VAR enrollment_id=DB.get_enrollment_id(member_id);
VAR
enrollment_payment=DB.get_enrollment_payment(member_id);
VAR total_payment= sum(hire_payment, booking_payment,
enrollment_payment)
DO
FUNCTION report_display();
END DO
END IF
ELSE
PRINT “Please enter the valid option”;
END IF
END
INPUT PARAMETERS: report_type, member_id, vehicle_id, staff_id
OUTPUT PARAMETERS: member report, vehicle report, staff report, payment report
GLOBAL VARIABLES: DB
LOCAL VARIABLES: member_id, member_report_no, member_name,
member_contact, member_status, date_joined, latest_service, last_login, vehicle_id,
vehicle_report_no, vehicle_model, vehicle_variant, vehicle_fuel_type, registration_date,
last_service_date, total_kilometers, staff_id, staff_report_no, staff_name, staff_DOB,
staff_contact, license_num, staff_join_date, staff_salary,payment_report_no,
payment_report_date, member_name, hire_id, hire_payment, booking_id,
booking_payment, enrollment_id, enrollment_payment, total_payment
56
CS5002NT SOFTWARE ENGINEERING

CALLS: member_exists, vehicle_exists, staff_exists, get_member_fullname,


get_member_contact, get_member_status, get_date_joined,
get_last_login,get_vehicle_id, get_vehicle_model, get_vehicle_variant,
get_vehicle_fuel_type, get_registration_date, get_last_service_date,
get_total_kilometers, get_staff_name,get_staff_DOB, get_staff_contact,
get_license_num, get_staff_join_date, get_staff_salary, get_hire_id, get_hire_payment,
get_booking_id, get_booking_payment, get_enrollment_id, get_enrollment_payment,
sum
CALLED BY: main

Student Name: Ekeshta Bohora

Function Name: Join Training Course


Introduction: This web application is being developed and contains provisions for
members to join a training course. To join a training course, member request for training
course, which is processed by admin.

Environmental Model Specification


Level 0 DFD/ Context Diagram

It is an context diagram which is designed as an abstract view showing the system as a


single process with its relationship to external entities.

Figure 24: Level 0 DFD- Join Training Course

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.

Internal Model Specification


Level 1 DFD
In level 1 DFD, context diagram which is decomposed into multiple bubbles or processes.
At this level 1 DFD we highlight the main functions of the system and divide the high-level
process of the Level 0 DFD into sub-processes.

Figure 25: Level 1 DFD Join Training Course

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.

Figure 26: Level 2 DFD Join Training Course

59
CS5002NT SOFTWARE ENGINEERING

Description:

The functions identify in level 2 are given below:


Get Job Info: The system is designed to accept member info and course info from the
customers to get detail about joining info.
Verify Member Details: If the customers info matches with the already existing member
info, Then, the system will verify member details.
Check the running courses: Now, the system will check the course into with the running
course.
Verify Payment details: If the input course info and running course matches, the system
will verify it and will further ask for enrollment details. The system will show the payment
details so, members can make payment. Now, the system will verify and update payment
details.
Generate Invoice: Then, enrollment is verified by the system. Now, system will generate
invoice and member will be able to track training status.

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

Figure 27: Structure Chart-Join Training Course

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

VAR course_duration =DB.get_course_duration(course_id);


VAR course_start_date=DB.get_course_start(course_id);
VAR total_payment=DB.get_course_payment
(member_id, course_id)
DO
PRINT “Join Training Successful”;
display_jointraining_Invoice();
END DO
END IF
END IF
END IF
END DO
INPUT PARAMETERS: member_id, course_id
OUTPUT PARATEMERS: display_jointraining_Invoice
GLOBAL VARIABLES: DB
LOCAL VARIABLES: invoice_num, member_name, member_id, member_enroll_date,
course_title, course_id, course_duration, course_start_date, total_payment
CALLS: member_exists, course_exists, verify_payment, get_member_name,
get_course_title, get_course_duration, get_course_start, get_course_payment,
display_jointraining_Invoice, date.now, get_member_name
CALLED BY: main

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

wikibooks, 2022. Problem Solving: Structure Charts. [Online]


Available at: https://en.wikibooks.org/wiki/A-
level_Computing/AQA/Problem_Solving,_Programming,_Data_Representation_and_Pr
actical_Exercise/Problem_Solving/Structure_charts?fbclid=IwAR0uDMbO1t8zOyf69Wm
ZJ8tVQgs4CiW_RNYHkJwIN46L5xqdOyeg2HYx28c
[Accessed 29 Dec 2022].

65

You might also like