0% found this document useful (0 votes)
37 views63 pages

Documentation

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

Documentation

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

CS5002NI Software Engineering

35% Individual Coursework

2022-23 Autumn

Student Name: Sujeet Mainali


London Met ID: 21040036
College ID: NP01CP4A210007
Assignment Due Date: Thursday, April 27, 2023
Assignment Submission Date: Wednesday, April 26, 2023
Word Count: 5630

I confirm that I understand my coursework needs to be submitted online via MySecondTeacher 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.
Table of Contents
Introduction ..................................................................................................................... 1
Gantt Chart...................................................................................................................... 2
Use Case ........................................................................................................................ 4
Purpose of use case diagram ...................................................................................... 4
Components/ symbols of Use case diagram: .............................................................. 5
Use Case Diagram ...................................................................................................... 7
High-level use case description ................................................................................... 8
Expanded use case diagram. .................................................................................... 10
Collaboration Diagram................................................................................................... 12
Components of a collaboration diagram .................................................................... 12
Formation of a collaboration diagram ........................................................................ 13
Collaboration Diagram ............................................................................................... 17
Sequence diagram ........................................................................................................ 18
Formation of a sequence diagram. ............................................................................ 22
Final sequence diagram ............................................................................................ 25
Class diagram ............................................................................................................... 26
Relationships in the class diagram ............................................................................ 26
Development process.................................................................................................... 29
Scrum ........................................................................................................................ 29
Scrum Roles........................................................................................................... 30
Scrum events ......................................................................................................... 30
Scrum artifacts ....................................................................................................... 31
Design Pattern ........................................................................................................... 32
Programming Paradigm ............................................................................................. 33
Testing ....................................................................................................................... 33
Testing Approaches ............................................................................................... 34
Development of the system ....................................................................................... 34
Prototype Development ................................................................................................. 36
Conclusion .................................................................................................................... 57
References .................................................................................................................... 58
List of figures
Figure 1 Gantt chart till sprint 3 -------------------------------------------------------------------------- 2
Figure 2 Gantt chart: Sprint 4 and 5 -------------------------------------------------------------------- 3
Figure 3 Symbol: use case.------------------------------------------------------------------------------- 5
Figure 4 Symbol: actor ------------------------------------------------------------------------------------- 5
Figure 5 Symbol: system boundary--------------------------------------------------------------------- 6
Figure 6 Symbol: relationship ---------------------------------------------------------------------------- 6
Figure 7 Use Case Diagram ------------------------------------------------------------------------------ 7
Figure 8 Objects required for booking a cab. ------------------------------------------------------ 13
Figure 9 Adding: Control object. ----------------------------------------------------------------------- 14
Figure 10 Adding: Booking UI -------------------------------------------------------------------------- 14
Figure 11 Adding: Actor --------------------------------------------------------------------------------- 15
Figure 12 Connecting Objects ------------------------------------------------------------------------- 16
Figure 13 System: Collaboration Diagram ---------------------------------------------------------- 17
Figure 14 Sequence Diagram: Object Lifeline ----------------------------------------------------- 18
Figure 15 Sequence Diagram: Synchronous Message ----------------------------------------- 19
Figure 16 Sequence Diagram: Asynchronous Message --------------------------------------- 19
Figure 17 Sequence Diagram: Return Message ------------------------------------------------- 20
Figure 18 Sequence Diagram: Create Message -------------------------------------------------- 20
Figure 19 Sequence Diagram: Destruction Message -------------------------------------------- 20
Figure 20 Sequence Diagram: Reflexive Message ---------------------------------------------- 21
Figure 21 Sequence Diagram: Note ------------------------------------------------------------------ 21
Figure 22 Sequence Diagram: Initial Objects ------------------------------------------------------ 22
Figure 23 Sequence Diagram: Objects Creation ------------------------------------------------- 23
Figure 24 Sequence Diagram: Displaying Drivers ------------------------------------------------ 24
Figure 25 System: Sequence Diagram -------------------------------------------------------------- 25
Figure 26 Class Diagram -------------------------------------------------------------------------------- 28
Figure 27 Scrum demonstration (visualparadigm.com) ----------------------------------------- 29
Figure 28 MVC design pattern ------------------------------------------------------------------------- 33
Figure 29 Prototype 1: Language Selection -------------------------------------------------------- 36
Figure 30 Prototype 2: Login Details ----------------------------------------------------------------- 37
Figure 31 Prototype 3: Enter OTP -------------------------------------------------------------------- 38
Figure 32 Prototype 4: Location Selection ---------------------------------------------------------- 39
Figure 33 Prototype 5: Displaying Drivers ---------------------------------------------------------- 40
Figure 34 Prototype 6: Selected Driver -------------------------------------------------------------- 41
Figure 35 Prototype 7: Booking rejected by driver ----------------------------------------------- 42
Figure 36 Prototype 8: No drivers available -------------------------------------------------------- 43
Figure 37 Prototype 9: Heavy vehicle section ----------------------------------------------------- 44
Figure 38 Prototype 10: Hire Vehicles --------------------------------------------------------------- 45
Figure 39 Prototype 11: Payment --------------------------------------------------------------------- 46
Figure 40 Prototype 12: Training Courses ---------------------------------------------------------- 47
Figure 41 Prototype 13: Admin Screen -------------------------------------------------------------- 48
Figure 42 Prototype 14: Staff and Vehicle Registration ----------------------------------------- 49
Figure 43 Prototype 15: Vehicle registration form ------------------------------------------------ 50
Figure 44 Prototype 16: Staff registration form ---------------------------------------------------- 51
Figure 45 Prototype 17: Generate Report ---------------------------------------------------------- 52
Figure 46 Prototype 18: Business Report ----------------------------------------------------------- 53
Figure 47 Prototype 19: User report ------------------------------------------------------------------ 54
Figure 48 Prototype 20: User Details ---------------------------------------------------------------- 55
Figure 49 Prototype 21: Rating ------------------------------------------------------------------------ 56
List of tables
Table 1 Expanded use case: Book a cab ___________________________________ 10
Table 2 Expanded use case: Join the training course _________________________ 11
CS5002NI SOFTWARE ENGINEERING

Introduction
The coursework is about developing the system for the company named Allgemein.
Allgemein is a company that has been ruling the entertainment industry for a decade.
The main source of the company is projects like movie making, documentaries, etc. But
the company is now interested to move its mark to the transportation sector. The
company has bought a huge number of vehicles like cabs for transportation and
bulldozers, cargo-truck, etc for construction.

Now we are required to develop the system following the principles of software
engineering. For that, scrum methodology was used to make the development process
smooth. UML designs were made to enhance the design implementation for the
development of the system. A Gantt chart was made to plan the project properly using
the scrum methodology. We were required to build a system with the functionalities to
register members to use the system so that the member could book a cab and hire the
vehicles or hire the specialists to operate the heavy vehicles if required. There should
also be a provision to register staff and vehicles in the system. And also, the members
should be able to rate the ride experience after booking a cab and rate the efficiency of
the vehicles after hiring the vehicles. Also, there should be a provision for the admins to
generate the business report or the reports related to members, staff, etc. And finally,
there should be a provision for publishing the notice for the training course which will be
provided twice a year and members should be able to enrol in the training course after a
certain payment.

1
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Gantt Chart
Gantt chart is a project management tool that is widely used to manage projects
whether it is large scale or small scale. It is one of the most common and effective
methods of displaying activities (tasks or events) displayed against time is a Gantt chart.
A list of the activities is located on the chart's left side, and a suitable time scale is
located along the top. A bar is used to symbolize each activity, and the position and
length of the bar correspond to the activity's beginning, middle, and finish dates
(gantt.com, 2023).
9 marks…

Figure 1 Gantt chart till sprint 3

2
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 2 Gantt chart: Sprint 4 and 5

3
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Use Case
The main aim of modelling is to record dynamic activity. Dynamic behaviour of the
system refers to the actions when it is functioning or active. Static behaviour only in the
system is insufficient because it cannot provide the facility to the user to interact with the
system.

Dynamic behaviour is more significant than static behaviour when modelling a system
because only static behaviour is insufficient. Use case diagrams are one of five
diagrams available in UML to depict the dynamic nature. As we've already established,
the use case diagram is dynamic, thus some internal or external factors should be
present to enable interaction.

Use case diagram represents the dynamic behaviour of the system. It contains use
cases, actors, and their interactions to describe the functionality of the system. It is used
to replicate the actions of the user, how the system interacts, and the operations of the
system. It shows the high-level functionality of the system and describes how the user
interacts with the system (JavaTpoint, 2023).

Purpose of use case diagram


The main purposes of use case diagrams are as follows:

Use case diagrams are used to develop a system's requirements, considering both
internal and external factors. Most of these needs are for the design. Therefore, use
cases are created and actors are identified when a system is evaluated to gather its
functionality (Tutorialspoint, 2023).

4
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Components/ symbols of Use case diagram:


Use Case

Use cases are the system requirements in the use case diagrams. It is represented by
an oval shape with the name of the function inside it.

Figure 3 Symbol: use case.

Actor

Actors are the components that interact with the system. They are mainly the end users
like customers or people, admins i.e., the ones managing the services in the application
for the company, etc.

Figure 4 Symbol: actor

System Boundary

As the system cannot have indefinite functionalities, there needs to be a certain


boundary to limit the system's functionality and the system's use cases. It is generally
represented by a rectangle that bounds all the use cases.

5
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 5 Symbol: system boundary

Relationships

It is the representation of the link between use cases and the actors in the system or the
relationships between the use cases only. It is generally represented by an arrow.

Figure 6 Symbol: relationship

There are two types of relationships in the use case diagram. They are:

• Include:

An include relationship exists between two use cases when one of them is shown in a
diagram as utilizing the capability of the other. Speaking, a use case that has an include
relationship incorporates functionality from another use case into its business process
flow. A directed arrow with a dotted shaft represents an included relationship.

• Extend:

When there is an extended relationship between two use cases, the child use case
enhances the parent use case's current capability and attributes. Like the include
connection, an extend relationship is shown as a directed arrow with a dotted shaft. The
kid use case is connected at the arrow’s base, and the arrowhead’s tip points to the
parent use case.

6
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

8 marks
Use Case Diagram

Figure 7 Use Case Diagram

7
21040036 SUJEET MAINALI
CS5002NI 5 marks SOFTWARE ENGINEERING

High-level use case description


1. Use case: Take a membership.
Actor: New member
Description: A new member or normal person should be able to take
membership to use the services.
2. Use case: Book a cab.
Actor: Member, Driver
Description: A member of the system should be able to book a cab specifying
the location details and the driver should be able to confirm or reject the booking.
3. Use case: Track the status of the driver.
Actor: Member, Driver
Description: A member should be able to track the status of the driver (whether
the ride is accepted or rejected by the driver) after booking a cab and should be
able to see the location of the driver if the driver accepts the request.
4. Use case: Register staff and vehicle.
Actor: Admin
Description: The admin in the system should be able to register new staff in the
system and should be able to register new vehicles in the system after verifying
the details.
5. Use case: Hire a vehicle.
Actor: Member
Description: The registered member in the system should be able to hire the
vehicles i.e., heavy vehicles like bulldozers, and Tripper, and also should be able
to hire specialist drivers for the operation of the vehicles if needed.
6. Use case: report preparation.
Actor: Admin
Description: The admin of the system should be able to generate reports
relating to business, members, drivers, vehicle performance, and efficiency
based on the ratings and suggestions by the member.

8
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

7. Use case: Rate the ride experience and vehicle efficiency.


Actor: Member
Description: The member of the system should be able to rate the experience of
the ride (after booking a cab) and vehicles (after hiring the vehicles) and also be
able to put on suggestions related to it.
8. Use case: join the training courses.
Actor: System, Member
Description: The system should be able to post the training course provided
twice a year for learning to drive heavy vehicles and the member of the system
should be able to join the training course after paying a certain amount.

9
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Expanded use case diagram.


Use case: Book a cab.
5 marks

Actor: member, driver

Description: A member of the system should be able to book a cab by providing the
details of the journey and the driver should be able to confirm or reject the booking

A typical course of events:

Member Action System Response


1. The member in the system uses the 2. The system presents the journey
on-screen book a cab option. details form to the member.
3. The member fills up the journey 4. The system passes the details to
details. the nearby drivers of the user’s
current location.
5. The system presents the available
drivers to the member’s screen.
6. The member can now see the 7. The system passes the details to
available drivers and their details the selected driver and takes a
and select the driver. response from the driver.
8. Member can see the location details
of the driver after the driver
confirms the request.
Table 1 Expanded use case: Book a cab

Alternative:

1. Line 5: The process is terminated if the drivers are not available nearby.
2. Line 6: The user does not see the suitable or safe drivers by analyzing ratings.
3. Line 7: The Driver rejects the booking under certain circumstances like if the
driver is busy and is on the way to go offline.

10
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Use case: Join the training course.

Actors: System, Member

Description: The system should be able to post the training course provided twice a
year for learning to drive heavy vehicles and the member of the system should be
able to join the training course after paying a certain amount.

A typical course of events:

Member Action System Response


1. System posts the announcements
of the training courses twice a
year.
2. The member in the system should 3. The system takes the enrolment
be able to see the notification and details and presents the payment
provide details for enrolment. form.
4. Fills out the form of payment 5. Verifies the payment details by the
provided on the screen. user.
6. Forwards the enrolment success
message.
Table 2 Expanded use case: Join the training course

Alternative:

1. Line 2: The member does not see a suitable training course.


2. Line 5: The payment details are not verified.

11
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Collaboration Diagram
A collaboration diagram is the representation of the relationships and interactions
among the objects in the Unified modelling language. Developers and software
engineers use collaboration diagrams to portray the dynamic behaviour of a particular
use case and define the role of each object.

For making a collaboration diagram, firstly we should identify the elements or objects
required to carry out the functionality of an interaction. Then the relation between the
objects is needed to be shown. The relation is made by connecting any pair of objects
which needs to know about each other to send a message or give instruction with a line
(Techtarget, 2023).

Components of a collaboration diagram


Object

Objects in the collaboration diagram are represented by a rectangle with a naming label
inside it. The naming label in the object follows the convention object name: class
name.

Actors

Actors are the bodies that start the interaction in the diagram. Each actor in the diagram
has a unique name and role. It is often represented by a stick figure.

Link

Links are the connecting lines in the diagram. It represents that the objects have a
relation between them and can send and receive messages and instructions between
them.

Messages

Messages are shown by a labelled arrow next to a link. These also contain the
sequence number that is exchanged between objects to transmit information about the
activity.

12
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Formation of a collaboration diagram


From the expanded use case diagram of the book cab use case, we know the typical
action of events that need to be carried out. Firstly, the member in the system needs
User Interface to interact with the system because of this, we need to create an object
of members to store the details of the members using the feature of booking a cab. The
member fills in the journey details, which means we need to create an object of the
journey to store the details of the journey each time the member specifies the journey.
After the journey is stored, the system passes the details to the drivers of the nearby
location, which means we need an object of the driver for further actions like showing
the available drivers to the user, and also the driver needs to accept or reject the
request for the successful booking of a cab.

Hence the objects required to make a collaboration diagram are as follows:

Booking: To store the booking details.

Journey: To store the details of the journey provided by a user

Driver: To get all the available drivers to the user.

Figure 8 Objects required for booking a cab.

After creating objects for all the related components, we need to create a control object
for the interaction between the user interface and all the objects. The control object acts
as the medium or the bridge between the objects and the interface. This control object
helps to manage the diagram in collaboration diagram and manage code in
development rather than randomly communicating between the objects.

The control object is often named by the name of the use case.

13
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 9 Adding: Control object.

After adding the control objects, we now add a user interface so that the user can
interact with the system. Without the user interface, the user cannot interact with the
system, and as the collaboration diagram is the dynamic modeling of the use case,
without the interaction it is incomplete.

Figure 10 Adding: Booking UI

14
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

After adding the user interface we add a member, who is the actor for this use case.
The member in the system can only use the system and its features.

Figure 11 Adding: Actor

After all the components and objects are placed in order, we then link all the objects
with each other. The link here shows that the components interact with each other for
receiving messages and sending messages. Hence, we connect members with the UI
of booking and then the UI of booking is connected to the controller object i.e.,
BookACab. As book a cab is the controller object to communicate between all the
objects i.e., Driver, member, and journey, we connect all with the controller object only
rather than connecting all the objects.

15
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 12 Connecting Objects

After connecting all the objects, firstly, the member initiates the operation by submitting
the on-screen form specifying the journey details. Then, the control object creates
initiates the member class to store the information of the member, and then it initiates
the journey to store the journey details in the system, and then, all the drivers in the
nearby location of the user are fetched by the control object to display the drivers along
with their name average location, etc and the distance between the starting point and
ending point of the journey. Also, the cost is calculated and displayed.

After that, the member selects the suitable driver by analyzing the ratings and other
factors. Then the selected driver accepts or rejects the request and further process of
booking is carried out like displaying the location status of the driver.

16
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Collaboration Diagram 8 marks

Figure 13 System: Collaboration Diagram

17
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Sequence diagram
A sequence diagram represents the sequential order or the time frame order of the
interactions between the objects in the use case or the system. Software engineers and
businesspeople combined frequently utilize these diagrams to describe as well as
understand the requirements for both new and current systems. The sequence diagram
shows the time frame of the objects in the system when the action takes place etc.
(Geeksforgeeks, 2023)

Notations used in sequence diagram.

Actor

Actors are the bodies that start the interaction in the diagram. Each actor in the diagram
has a unique name and role. It is often represented by a stick figure.

Object lifeline

0bject lifeline shows the presence of an object at a particular time. It is generally


denoted by a rectangle with a dotted line to down.

Figure 14 Sequence Diagram: Object Lifeline

18
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Messages

The objects in the sequence diagram communicate with the help of messages. The
messages are shown on the lifeline in chronological sequence. Arrows are how
messages are represented. A sequence diagram's main components are lifelines and
messages.

Types of messages:

• Synchronous message

When a synchronous message is sent, the interaction must wait for a response before
continuing. When the recipient has finished processing the message, the sender waits.
Only after receiving a reply message, or other indication that the preceding message
has been processed by the person who received it, does the caller go on. In object-
oriented programming, a significant portion of calls is synchronous. A synchronous
message is represented by a solid arrowhead.

Figure 15 Sequence Diagram: Synchronous Message

• Asynchronous message

Asynchronous messages don't wait for the sender to respond. No matter if the recipient
processes the preceding message or not, the engagement continues. An asynchronous
event is represented by a lined arrowhead.

Figure 16 Sequence Diagram: Asynchronous Message

• Return message.

It is the message that the asynchronous message returns. They are generally optional
in sequence diagrams and are represented by a dotted line with an arrow.

19
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 17 Sequence Diagram: Return Message

• Creation message

A new object is instantiated in the sequence diagram using a Create message. There
are instances where a certain message call requires the creation of an object. It is
shown as a dotted arrow with the word "create" labelled on it to indicate that it is the
create Message sign.

Figure 18 Sequence Diagram: Create Message

• Destructive message

To remove an object, we utilize a Delete Message. We use the Delete Message symbol
to indicate that an object has been deleted or its memory is deallocated within the
system. It eliminates the object's occurrence in the system. It is symbolized by an arrow
that ends in an x. For instance, the object of the order class can be destroyed in the
scenario below when the user receives the order.

Figure 19 Sequence Diagram: Destruction Message

• Reflexive message

When an object sends a message to itself, it is known as a reflexive message. It is


represented by an arrow pointing to itself only.

20
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 20 Sequence Diagram: Reflexive Message

• Note

All UML diagram types often allow for the insertion of comments. the comment object is
a rectangle with a rounded corner. A dashed line might be used to connect the
comment to the relevant item.

Figure 21 Sequence Diagram: Note

21
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Formation of a sequence diagram.


Firstly, there is a member with the lifeline over the use case as the member is the one
that uses the functionality. Then there is a booking UI and a control object booking a
cab in the starting phase.

Figure 22 Sequence Diagram: Initial Objects

After that, the controller object creates the other objects as per the need. Here firstly, we
need a booking object to record the details of the members booking a cab, and then the
object of the journey is created to store the details of the journey in the system. After

22
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

creating the journey, the control object creates the object of the driver to carry out
further processes in the system.

Figure 23 Sequence Diagram: Objects Creation

After the control object creates the object of a driver, the control objects fetch the driver
details for all the nearby available drivers. For example: if there are 3 drivers nearby, it
fetches the details of all three drivers and displays it to the user. The object then also
displays the cost and distance calculation.

23
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 24 Sequence Diagram: Displaying Drivers

After that the control object displays the details to the customer through the booking UI,
then the customer selects the preferred driver, and location status is fetched to the
control object if only the driver accepts the request of the user. The details are then
stored in a new booking object by creating the one. If the driver rejects the request of
the user, an error message is displayed asking the user to repeat the process.

24
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Final sequence diagram

Figure 25 System: Sequence Diagram

8 marks

25
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Class diagram
A class diagram is a static diagram. It symbolizes an application's static view. Class
diagrams may also be used to create software program executable code in addition to
being utilized for visualizing, describing, and documenting various system components.
A class diagram explains a class's properties and functions as well as the limitations
placed on the system. Because class diagrams are the only UML diagrams that can be
directly transferred to object-oriented languages, they are extensively utilized in the
modelling of object-oriented systems. A class diagram displays several classes,
interfaces, relationships, collaborations, and restrictions. A structural diagram is another
name for it (javatpoint, 2023).

Relationships in the class diagram

• Association

It consists of a fixed or tangible relationship between two or more objects. The number
of objects in the relationship is shown. As an illustration, a department is linked to the It
speaks of a fixed tangible relationship between two or more objects. The number of
objects in the relationship is shown.

• Composition

The composition is a subset of aggregation. It portrays the dependency between the

parent and its child, which means if one part is deleted, then the other part also gets
discarded. It represents a whole-part relationship. A contact book consists of multiple

contacts, and if you delete the contact book, all the contacts will be lost.

26
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

• Aggregation

A subset of association, which denotes a relationship, is an aggregation. As opposed to


association, it is more precise. A part-whole or part-of relationship is described. The
child class in this form of relationship is allowed to exist separately from its parent class.
The company has many employees, so even if one leaves, the business will continue to
operate.

• Multiplicity

It specifies the range of permitted instances of characteristics. If no range is supplied,


one is considered the default multiplicity.

• Generalization

A parent class (superclass) and a child class (subclass) have a relationship that is
known as a generalization. The parent class is inherited by the child class in this case.

While drawing the class diagram, we should first identify the classes we use to build the
system. We generally consider the classes by the nouns used in the use cases. From
the use cases, we found several classes like the member, driver, vehicle, system,
rating, booking, etc. Then the classes were then connected by identifying the
relationship between them. Child classes were demonstrated, and relations like
association, aggregation, and composition were also shown in the class diagram.

27
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
7 marks

Figure 26 Class Diagram

28
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

16 marks
Development process
The main purpose of this coursework is to develop a system for Allgemein which is an
established company in the entertainment industry and is now willing to expand the
business to the transportation sector.

Scrum
Scrum is an agile project management framework that uses a set of values, principles,
and practices to assist teams in organizing and managing their work. Scrum enables
teams to learn from experiences, self-organize while working on a problem, and reflect
on their victories and losses to continuously improve, much like a rugby squad
practicing for the big game.

The scrum referring about can be utilized for various types of teamwork, even though
software development teams use it most commonly. This is only one of the many
benefits of the scrum. Scrum outlines a combination of meetings, tools, and roles that
work in symphony to help teams structure and manage projects. It is frequently thought
of as an agile project management framework (Atlassian, 2023).

Figure 27 Scrum demonstration (visualparadigm.com)

29
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Scrum Roles
1. The scrum product owner

Those who speak for their product are the product owners. They put a lot of effort into
grasping the demands of the business, the client, and the market before setting the
engineering team's workload priorities appropriately.

2. The scrum master.

Within their teams, scrum masters are the person in charge of the scrum. They educate
teams, product owners, and the company on the scrum method and seek ways to
improve their use of it.

The team may improve their transparency and delivery flow with the assistance of an
excellent scrum master, who has a thorough understanding of the work being done by
the team. As the primary facilitator, he or she plans the human and logistical resources
required for sprint planning, stand-up, sprint review, and sprint retrospective.

3. The scrum development team

Scrum teams are often small, connected groups of 5 to 7 people that are successful at
sustainable development strategies. To prevent obstacles, the team members educate
one another and have a variety of skill sets. Self-organizing and cooperative, successful
scrum teams work together to complete each sprint. They forecast how much work they
can do using their historical velocity and gain from set iteration lengths to enhance their
estimation and delivery processes.

Scrum events
I. Daily Scrum

It is important to keep things simple at this daily, extremely brief meeting that occurs
simultaneously (often in the morning). Many teams attempt to finish the meeting in 15
minutes, however, that is only a recommendation. This meeting is sometimes known as
a "daily stand-up," highlighting the necessity for it to be brief. The daily scrum's
objectives are for the team as a whole to be on the same page, focused on the sprint
goal, and develop a plan for the upcoming 24 hours.
30
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

II. Sprint planning meeting

During the planning meeting, the entire development team, led by the scrum master,
plans the scope of work for the current sprint and decides on the sprint goal. User
stories from the product backlog that align with the goal and are feasible to implement
during the sprint are added to the plan. At the end of the meeting, all members of the
scrum team should have a clear understanding of what can be delivered during the
sprint and how the increment will be delivered.

III. Sprint review

At the end of the sprint, the development team holds a review meeting to showcase the
completed backlog items to stakeholders and receive feedback. The product owner may
choose to release the increment at this point. Additionally, the product owner uses the
review meeting to update the product backlog based on the current sprint, which can
inform the next sprint planning session. The sprint review should be time-boxed to a
maximum of four hours for a one-month sprint.

IV. Sprint Retrospective

The retrospective is the time when the team gets together to reflect on and document
what went well and poorly during a sprint, a project, with certain individuals or
relationships, with tools, or even with particular ceremonies. The goal is to establish a
space where the team can concentrate more on what went right than on what has to be
fixed for the next time.

Scrum artifacts
a) Product Backlog

The Product Backlog is a constantly evolving list of features, requirements,


enhancements, and fixes that are maintained by the Product Owner. It serves as the
primary list of work for the team and is used to create the Sprint Backlog. The Product
Backlog is dynamic and is regularly reviewed, reprioritized, and updated to reflect

31
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

changes in the market or project requirements. The Product Owner is responsible for
maintaining the Product Backlog and ensuring it stays current and relevant.

b) Sprint backlog

The sprint backlog is the development team's list of priorities for the current sprint cycle.
It is developed at the sprint planning meeting when the team selects the Product
Backlog items to work on. The primary sprint aim cannot be compromised even if the
sprint backlog is flexible and changes throughout it.

c) Increment (sprint goal)

The Increment, also known as the Sprint Goal, is the usable end-product from a sprint.
It can be demonstrated during the end-of-sprint demo and may be referred to as the
team's definition of "Done", a milestone, a sprint goal, a full version, or a shipped epic,
depending on how the team defines "Done" and their sprint goals.

Design Pattern
MVC design pattern was followed to build the system. In MVC design pattern, An
application must include a data model, presentation information, and control
information. Each of these must be divided into distinct items in accordance with the
pattern. More of an architectural pattern than a full application, MVC. MVC primarily
concerns an application's UI/interaction layer. You will still require a business logic
layer, possibly a service layer, and a data access layer.

32
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 28 MVC design pattern

Programming Paradigm
OOP approach of programming will be followed for making the system so that the
system can support large scaling.
Dart with flutter will be used to make the frontend part of the system which helps to
make cross-platform application that can run in android, IOS, and web app also. And for
the backend of the system, TypeScript with NodeJS will be used which is superset of
JavaScript. And for the database Mongo DB will be used, which is NoSQL database
and can support large scale of the application.

Testing
Testing is the process of making the system error free so that the system runs smoothly
and performs the task that the software is intended to. There are various methods of
testing the software. Testing includes software validation and verification.

33
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Testing Approaches

• Black box testing

It is done so that the program's functioning may be tested. Testing is frequently referred
to as "Behavioural." In this instance, the tester has a set of input values and associated
intended outputs. The software is assessed as "ok" if the output matches the input, and
as "problematic" if it does not.

• Beta testing

Beta testing is the testing that is conducted at one or more customer’s site. This testing
can also be done by releasing a beta version of the application to test it in real time
environment.

• Integration Testing

Integration testing is a technique for evaluating how various parts or units of a software
program work together. It is used to find and fix any problems that could occur when
several software components are merged. To ensure that the various components of
the program perform together as intended, integration testing is often conducted after
unit testing and before functional testing.

Development of the system


Scrum framework was used for the development of the system. This methodology helps
to smoothen the development process and to make the development process flexible so
that we can accommodate the change as per the requirement with the time or the
client’s need during the development process.

34
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Further, for the development process, a Gantt chart was made to project the timeline of
the development process. Firstly, an interview with the client was done for clarification
of the project and its requirement. Then after that, research was done for the best
approach to develop the system and finalize the architecture of the system. Finally, the
project was completed in five sprints. In the first sprint, we performed the tasks for the
registration of members and booking of a cab. In sprint two, we performed the tasks for
tracking the status of the driver and rating the ride experience so that the complete
feature for booking a cab could be completed at first. After the completion of the
booking a cab feature, the beta version of the app was launched.

After launching the beta version of the app, in sprint three, we performed the tasks for
the registration of staff and vehicles and hiring vehicles. In sprint four, we performed the
tasks for joining the training course and rate the vehicle’s efficiency. In this way, we
performed all the required functionalities in the system.

And in sprint five, we integrated the functionalities developed in sprints three and four
with the beta version and performed all the required tests for the system. After testing
the system, the fully-fledged application was launched and the project was completed.

35
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Prototype Development

12 marks

Figure 29 Prototype 1: Language Selection

36
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 30 Prototype 2: Login Details

37
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 31 Prototype 3: Enter OTP

38
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 32 Prototype 4: Location Selection

39
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 33 Prototype 5: Displaying Drivers

40
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 34 Prototype 6: Selected Driver

41
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 35 Prototype 7: Booking rejected by driver

42
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 36 Prototype 8: No drivers available

43
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 37 Prototype 9: Heavy vehicle section

44
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 38 Prototype 10: Hire Vehicles

45
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 39 Prototype 11: Payment

46
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 40 Prototype 12: Training Courses

47
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 41 Prototype 13: Admin Screen

48
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 42 Prototype 14: Staff and Vehicle Registration

49
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 43 Prototype 15: Vehicle registration form

50
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 44 Prototype 16: Staff registration form

51
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 45 Prototype 17: Generate Report

52
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 46 Prototype 18: Business Report

53
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 47 Prototype 19: User report

54
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 48 Prototype 20: User Details

55
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Figure 49 Prototype 21: Rating

56
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

Conclusion
The coursework was about the development of a system for Allgemein to expand its
business to the transportation sector. And the task was fully completed by following the
different approaches of software engineering. Various UML diagrams were made during
the process, including class diagrams and a Gantt chart to project the timeline to
develop the system. Though it was a difficult course, we also got an opportunity to learn
lots of things, principles of software engineering, etc. during the journey of this
coursework.

During the coursework, we learned about use cases and use case diagrams, the
purpose of a use case diagram is that it helps to identify the requirements easily with
the help of diagrams. We also learned about collaboration diagrams and sequence
diagrams, and how to interact with the objects in both class diagrams and sequence
diagrams. After that, we learned about class diagrams, and relationships between the
classes such as association, aggregation, composition, generalization, and multiplicity
in the relationship in the class diagram. We also learned how to draw a Gantt chart to
project the timeline for various events during the system development using various
methodologies and software development frameworks like Scrum.

Though it was a rollercoaster of challenges and happiness to get to learn various


aspects of software engineering, we got lots of assistance from our lecturers and tutors
during the journey of this coursework. Hence, it was a fun journey to cooperate with
teachers and learn different things.

5 marks for report format

57
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING

References
Atlassian, 2023. atlassian.com. [Online]
Available at: https://www.atlassian.com/agile/scrum
[Accessed 24 April 2023].
gantt.com, 2023. gantt.com. [Online]
Available at: https://www.gantt.com/
[Accessed 25 April 2023].
Geeksforgeeks, 2023. geeksforgeeks. [Online]
Available at: https://www.geeksforgeeks.org/unified-modeling-language-uml-sequence-
diagrams/
[Accessed 23 April 2023].
JavaTpoint, 2023. javatpoint. [Online]
Available at: https://www.javatpoint.com/uml-use-case-diagram
[Accessed 15 April 2023].
javatpoint, 2023. javatpoint.com. [Online]
Available at: https://www.javatpoint.com/uml-class-diagram
[Accessed 25 April 2023].
Techtarget, 2023. techtarget.com. [Online]
Available at: https://www.techtarget.com/searchsoftwarequality/definition/collaboration-
diagram#:~:text=A%20collaboration%20diagram%2C%20also%20known,the%20role%
20of%20each%20object.
[Accessed 22 April 2023].
Tutorialspoint, 2023. Tutorialspoint. [Online]
Available at: https://www.tutorialspoint.com/uml/uml_use_case_diagram.htm
[Accessed 15 April 2023].

58
21040036 SUJEET MAINALI

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy