Documentation
Documentation
2022-23 Autumn
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…
2
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
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).
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
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.
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.
System Boundary
5
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
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.
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
7
21040036 SUJEET MAINALI
CS5002NI 5 marks SOFTWARE ENGINEERING
8
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
9
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
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
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
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.
Alternative:
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).
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
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
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.
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.
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
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
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)
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
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.
• 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.
• 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
• 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.
• 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.
• Reflexive message
20
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
• 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.
21
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
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.
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
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
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).
• 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
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
• 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
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).
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.
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.
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
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.
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.
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
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.
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
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
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.
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
36
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
37
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
38
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
39
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
40
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
41
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
42
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
43
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
44
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
45
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
46
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
47
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
48
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
49
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
50
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
51
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
52
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
53
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
54
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
55
21040036 SUJEET MAINALI
CS5002NI SOFTWARE ENGINEERING
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.
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