IT UNIVERSITY OF COPENHAGEN
SUBMISSION OF WRITTEN WORK
Class code:
DSSOESQ1KU
Name of course:
Software engineering and software qualities
Course manager:
Mansooreh Zahedi
Course e-portfolio:
Thesis or project title:
Supervisor:
Mansooreh Zahedi / Mathias Holm Mølgaard
Full Name:
Birthdate (dd/mm-yyyy):
E-mail:
Silviu-George Agafitei
Vlad-Alexandru Ilie
2.
19/04-1995
21/03-1995
sgeo
vali
Emil Greve Krogsgaard
29/12-1989
egrk
@itu.dk
Roman Novosad
25/05-1996
romn
@itu.dk
1.
3.
4.
@itu.dk
@itu.dk
5.
@itu.dk
6.
@itu.dk
7.
@itu.dk
Software Engineering and Software Qualities
JustPark - mobile parking solution for Copenhagen
Table of Contents
Project Glossary
4
Smart Parking - Case Exploration
6
Software process models
10
Waterfall model:
11
Spiral Model
12
Incremental
14
Prototyping model
14
Agile model
15
Project kick-off - common lunch
17
Project Planning
19
Roles in Scrum
23
Risk Analysis
25
Project risks:
27
Product risks:
28
Team risks:
28
Exploring software qualities
31
Reliability
33
Usability
33
Performance Efficiency
33
4. Maintainability
33
5. Security
34
Reflection on process model
34
Requirement Elicitation
35
Social requirements:
38
Functional Requirements:
40
Nonfunctional Requirements:
40
1
Understanding the social and technical context of the JustPark app:
41
Problem domain:
41
Application domain:
42
Technical context:
42
Technical figures portraying the system structure
43
Illustration of the problem domain using Rich pictures
46
Rich picture legend
47
Rich picture 1 - Cruising
48
Rich picture 2 - Using a mobile app
50
Scenarios
51
Traffic jam
53
Reservation process / pay as you go system
53
Actor descriptions
54
Use case diagram
55
Use case description
57
General Use case
58
Class Diagram
61
Interface Design using Mock-ups
62
Documenting Project Requirements
65
Document convention
67
Configuration management plan
69
Introduction
70
Configuration Management tool
71
Configuration Management Activities
71
Configuration Control
71
Procedures for implementing standard changes
72
Change Control Board
72
Release process
72
2
Software testing
73
Software quality
74
Dynamic Test Specification
77
Software testing
Test cases
Black box testing
Scenario testing
White box testing
Branch coverage
Analyzing Architectural Patterns to Support Quality Attributes
78
79
79
79
81
81
82
Model view controller
83
Architectural fit for achieving software quality
84
Reflection
85
References
88
Appendix
90
3
Project Glossary
Term
Alternative
Explanation
expression
User
Driver, client
User driven a vehicle in need of parking interacting
with the app with intention of finding a parking
place.
Vehicle
Car
Object to be parked at the purchased parking place.
Route
Calculation of the optimal route to the user’s desired
calculation
parking place. (not to be confused with price
calculation)
Route
Optimization of the aforementioned calculation
optimization
according to the live traffic info.
Price
Calculation of the final price. Calculated as: [price
calculation
per time unit]x[duration of parking]
Critical
Critical
App won’t be functioning without this feature.
Major
App will be functioning, but the feature is still
priority
Major priority
essential.
Minor priority
Minor
The feature is nice to have, but doesn't necessarily
have to be included.
4
Done
A task is done, when it has been quality checked and
is finished according to the specification and relevant
user stories defined by product owner.
5
Smart Parking - Case Exploration
Document title: Smart Parking - Case Exploration
Document Ref:
Version No: 1.0
Document Status: Final
Date: 25/112017
Author: Roman Novosad, Silviu Agafitei
Owner: Roman Novosad
1. Purpose of Document
1.1 Overview
The purpose of this document is to is to explore the the application and the problem domain
of the case.
1.2 Distribution List
This product was carried out buy the product owner and scrum master, but it’s contents were
communicated to the whole team to achieve complete understanding of the topic.
1.2.1 For Review
Name & Role
reason
Date
status
sent
6
Roman
-
Product Owner
Silviu - Scrum
Master
Product owner needs to
Final
be well oriented within
10/12/2
the problem domain
017
The team leader has to
consider
technical
implications within the
Final
10/12/2
017
problem domain
1.2.2 For Information
Name & Role / Department
Development team
Over the last decade, the number of cars in the cities has grown exponentially. However,
parking estate has stayed factually the same. Obsolete infrastructure combined with limited
number of parking spots is unable to cope with the influx of vehicles on the roads. Especially
in larger cities, there have been various proposals on how to improve this situation. These
proposals have been revolving around three main concepts:
1. Improving driver experience
2. Decreasing travel times
3. Improving monetization possibilities
Along with these three, implementation of a smart parking system would help to decrease air
pollution caused by “cruising” (Shoup, 2006) and congestions in the cities. In the upcoming
report we want to address all of these while focusing on the given setting of Copenhagen.
7
As Copenhagen is a relatively small city (compared to some other european capitals), there
have been some predecessors who have already implemented smart parking on a small scale.
In relation to this, there has been a lot of research into opportunities such as parking
improvements, which we will take in account while planning this project in Copenhagen and
draw from it’s examples to make this process as effective and seamless as possible.
There are a number of distinct facets for this solution, such as: communication of parking
information (availability, location) with drivers, monetization of parking services and
ensuring prevention of fraudulent driver behavior. Here, we are going to refer mostly to the
more challenging - latter point. The solution for preventing drivers from parking their car at a
problematic location would be an effective system of vehicle detection. There is a lot of work
already produced on this topic, for this case we chose Idris et. al. (2009) paper describing
number of instances of solution for detecting presence of a car directly on the parking spot.
It considers different technological concepts like:
-
Active infrared sensors
-
Inductive loop detectors
-
Magnetometer
-
Piezoelectric sensor
-
Pneumatic road tube
-
WIM sensors
-
Microwave radar
-
Acoustic sensors
-
Ultrasonic sensor
-
RFID
There has been a number of these systems deployed for numerous places around the globe
(Idris, Leng, Tamil, Noor & Razak, 2009). After a brief examination, we can assume that for
the project of a big scale, these solution requiring modification of an individual parking
8
spaces would be considerably difficult to implement. On the other side, there have been
numerous proposals of solutions using GPS, thus not requiring physical alteration of parking
spaces (Pullola, 2007). We will also refer closer to the choice of specific technology once we
dive deeper into the case.
This outline has so far provided us with some valid options to select from. As mentioned
above, we also need to establish the communication between our solution and the end-user.
This is intended to be done via smartphone, namely a mobile application with location data
for parking spots as well as metadata about them, for example: the possibility of making a
reservation or different types of payment possibilities for them. Studies show, that this
implementation would improve driver satisfaction and traffic condition in the cities
significantly. (Wang and He, 2011)
9
Software process models
Document title: Descriptions of the software process models
Document Ref:
Version No: 2.0
Document Status: Final
Date: 25/11/2017
Author: Roman Novosad, Silviu Agafitei, Emil Krogsgaard, Vlad Ilie
Owner: Silviu Agafitei
1. Purpose of Document
1.1 Overview
This document provide basic understanding of the different software development projects
and choose the one most suitable for the given project.
1.2 Distribution List
To ensure that this section has sufficient standard, Scrum Master collected and summarized
all the details on relevant software development projects.
1.2.1 For Review
Name & Role
reason
Date
status
sent
10
Silviu - Scrum
Master
Scrum master should be
Final
the one most with best
10/12/2
capabilities to consider
017
correctness of the model
descriptions
1.2.2 For Information
Name & Role / Department
Development team
Product Owner
This section will be used for discussing the process models that could be used to develop this
software application. The models are complex and choosing one requires a lot of attention to
details. In order to make the best choice, we utilised the online learning platform ISTQB
Exam Certification (hereinafter: ISTQB, 2017).
Waterfall model:
The Waterfall Model was introduced by Winston Walker Royce in 1970 in his paper ,
"Managing the Development of Large Software Systems" (Winston W. Royce, 1970) and
represents a plan-driven approach to creating and implementing software products. This
methodology has also been referred to as a linear-sequential life cycle model (Winston W.
Royce, 1970). It assumes, that the development process can be broken down into a list of
non-overlapping steps that have to be completed in a strict, sequential order. As a result, at
the end of each stage, a formal review has to be conducted in order to decide whether or not
the current stage has been finalised and whether or not the project can advance to the net
11
phase. This type of software development model is mainly used for small projects or projects
that have a very well defined list of requirements. (ISTQB, 2017)
Advantages of waterfall model:
●
This model is simple and easy to understand and use.
●
The rigidity of the model makes it easy to manage
●
Each phase has individual deliverables
●
No overlapping phases entails that steps are processed and completed one at a time.
Disadvantages of waterfall model:
●
If concepts changes after development has initiated it is complicated to pivot.
●
Working software is only available at a very late stage in the life cycle.
● Inadequate model for long, ongoing or iterative projects.
● The method is is generally seen as containing high volumes of risks and uncertainty
When to use the waterfall model:
● The definition of the final product is well understood in the development team and
the familiarity with the technology is s high.
● There are no ambiguous requirements
● Resources and expertise is freely available
● The project is short or well-defined.
Spiral Model
The spiral model uses a risk-driven approach to the development process, and easily
integrates styles from other process models such as the incremental model (Boehm, 1986).
This model is divided into four consecutive phases: Planning, Risk Analysis, Engineering and
Evaluation. The project will repeatedly iterated through these phases also referred to as
Spirals. When going through each phase the product will be further developed and thus
12
produce an input to the next cycle. When a project is kicked off it will start in the baseline
spiral, diving into the planning phase, from here the project will develop requirements and
determine any risks associated with the project. All following spirals seeks to expand on the
original baseline spiral (Boehm & Hansen, 2000). (ISTQB, 2017)
Advantages of Spiral model:
● Risks are assessed in each cycle, thus should help to minimize most risks from
impacting the project.
● It is possible to adhere to developing needs.
● Software is produced in every iteration, creating builds early in the life cycle.
Disadvantages of Spiral model:
● It is rather costly and complex to use.
● The analysis of risks are generally considered costly and will often require external
consultants.
● Is of limited use for smaller projects as the bureaucracy quickly outweighs the pros of
minimizing risks that are already limited in small projects.
When to use Spiral model:
● When costs and risk evaluation is important
● For medium to high-risk projects
● Users are unsure of their needs
● The Requirements gathered are complex
● New product line or less known product
● Significant changes are expected to the final product.
13
Incremental
The incremental model the whole requirement is divided into various builds (ISTBQ, 2017),
adding piece by piece but expect that each piece is fully finished and the process continues
until the whole system is built and functional.
Advantages of Incremental model:
● It is flexible and generates working software in a fast pace and early during the
software life cycle.
● It is easier to test and debug in increments.
● The customer is able to respond to each built.
● Easy to manage risk because risky pieces are handled during iteration.
Disadvantages of Incremental model:
● To enable its success strong project management is a necessity.
● All aspects of the system generally needs to be defined before the project can be split
into the increments that will create the product.
● Generally results in higher costs.
When to use
● The Incremental model can be used when the project has a complete understanding of
all the requirements prior to the building phase.
Prototyping model
First of all, prototype model is a software development model. The model aims to create an
early approximation of a final system or product, based on the known requirements. By
creating an early model an opportunity for end user interaction is enabled which allows for
valuable feedback that can provide guidance for the remainder of the project. In general, the
method is applied for large and complicated system, which do not have an existing process or
system to determine the requirements (for example a technology that was never developed)
(ISTQB, 2017).
14
There are several advantages by using the Prototype model:
● The users are actively involved in the development, enabling great transparency
between end users and project teams.
● By creating prototypes we enable the detection of errors and misunderstood
requirement early in the development phase.
● Missing functionality can be detected easily.
However, there are several disadvantages when using the Prototype model:
● The model may increase the complexity of the system and the scope may be expanded
compared to the original plans.
● Incomplete application may cause application not to be used as the full system was
designed
● The problem analysis is incomplete.
There are several situations where prototyping is a particularly useful software model:
● When a new technology is being developed.
● As there is a lot of focus on making the user interact with the unfinished systems the
model is very good at supporting the development of products that has great user
experiences.
Agile model
Agile development is a software development model focused on developing using a very
iterative approach. This means focusing on building small chunks of the project one at a time,
realising each before delving into the next part of the project.
There are various advantages of agile model, so in this part we will outline some of them.
Teams usually prefer this model because customer satisfaction increases when offering rapid,
continuous delivery of useful software. (ISTQB, 2017) In this method, people and
interactions are emphasized rather than process and tools and members of an agile team
constantly interact with each other. It’s useful to note here, that in agile, face-to-face
communication is considered the most useful form of communication. However, many agile
15
teams are due to various advantages embracing online communication tools. Main of them
being able to offshore while being cohesive and dynamic. The agile manifesto strongly
implies, that working software is delivered frequently (weeks rather than months) and even
late changes in requirements are welcomed.
Even though most of the teams are in favour of Agile (namely Scrum), there are
disadvantages to this model. It can be difficult to assess the complete effort required to fulfil
project of larger sizes. Other disadvantage of agile results from it relying on people’s
individual skills. There is often a great reliance on senior developers to making decisions,
hence it has limited place for junior programmers, unless efficiently combined with
experienced resources. (ISTQB, 2017)
Summary table for the software development models:
Waterfall
Spiral
Incremental
Prototyping
Agile
Ease of use
High
Low
High
Low
High
Rigidity
High
Medium
Low
Low
Low
Requireme
Few
Many
Few
Many
Many
nts stability
changes
changes
changes
Changes
Changes
Risk factor
High
High
Medium
Low
Low
Complexity
Low
High
High
Medium ->
Medium ->
High
High
Time-span
Low
High
Low
High
->
Low
High
->
Low
->
High
16
Criteria for choosing a process model for our project:
a. rapid, continuous delivery
b. taking advantage of communication between team members
c. frequent software delivery
d. attention to a good software rather than extensive documentation
e. adaptability to changes
f. speed of deployment
Project kick-off - common lunch
Document title: Descriptions of the software process models
Document Ref:
Version No: 2.0
Document Status: Final
Date: 25/11/2017
Author: Roman Novosad, Silviu Agafitei, Emil Krogsgaard, Vlad Ilie
Owner: Silviu Agafitei
1. Purpose of Document
1.1 Overview
This document is very short description of a team building activity carried out by our team.
The purpose was to get to know each other better in order to ease collaboration in a team.
17
1.2 Distribution List
Each team member has participated, but original initiative was taken by a Scrum master.
1.2.1 For Review
Name & Role
reason
Date
status
sent
Development
Each of the team should
Final
team
approve the document
29/10/2
content
017
1.2.2 For Information
Name & Role / Department
Development team
As a group we have been working together for quite a while, but for the purposes of getting
closer together and getting to know each other better, we decided to have lunch in the school
canteen. The whole event was mildly successful and our experience was accompanied by
vivid discussions and exertion of excitement about what is awaiting us. We have spent time
planning for the future endeavors of our group and how each member can contribute to the
great group experience by their individual qualities. (Image 1)
18
Image 1
Project Planning
Throughout the “Smart parking” project we expect a high degree of compartmentalisation,
precisely larger parts of the project will need to be coordinated. Therefore, in our first group
meeting we decided to use Agile methodology, namely Scrum. In scrum, the use for daily
cooperation and conversations within the team are highly needed, thus this version of the
agile model is the best choice from the process models available.
The project is planned to commence between 31 august - 15 december, when we should
present a fully functional application. We decided to split the time in eight Sprints, which will
in the end result into a functional product. Each iteration will contain: Sprint planning, sprint
19
goal and sprint retrospective/review. The Sprint will be planned in terms of workload
distribution by creating a Sprint backlog and thereafter Sprint goal will be created. The sprint
review and retrospective would help us to improve the future sprint. Below, we created the
representation of the future Sprint distribution. Each sprint length will be two weeks, and in
the given period the sprint backlog items have to be “done”. In this context, done is defined
as as a shippable product/derivable.
Sprint
Period
Sprint Goal
Sprint #1
31/08 - 14/09
Structuring the core solution
Sprint #2
14/09 - 28/09
Discovering
technical
possibilities (pretotyping)
Sprint #3
28/09 - 12/10
Map setup and map creation
(blackbox)
Sprint #4
12/10 - 26/10
Integration with Google and
Septima API’s
Sprint #5
26/10 - 09/11
Log In / User registration
Sprint #6
09/11 - 23/11
Route calculation
Sprint #7
23/11 - 07/12
Route optimization
Sprint #8
07/12 - 15/12
Integration with established
billing systems
Table 1 - Sprint overview
Above we described the Sprint distribution throughout the project. As mentioned, we will
split the project in Sprints and each Sprint will have to meet the Sprint Goal. A sprint goal is
20
a description of what we have to achieve during the sprint. As a result of defining a sprint
goal, we need to create the sprint backlog. A sprint backlog will consist of a set of
requirements that have to be “done” at the end of the iteration. In Scrum a requirement is
known as a user story, and all the user stories are stored in the Product Backlog (see table 2).
Our Product backlog includes user stories describing all the functionalities desired in the
“Smart parking” application, the amount of points allocated for the given task and the priority
level. However, the product backlog is never “done”. Throughout the project, new items have
to be added to the product backlog based on the customer's new requirements.
One of the most complex requirements in Scrum is to estimate the duration to implement the
user stories. Usually the whole team gathers together when estimation is taking place. The
most common estimation methods are “planning poker”, “planning onion” or “fibonacci
planning”. We now have to decide which of the methods would fit best in our project. If
planning is not applied correctly, we would have a delayed release and therefore higher costs
and customer dissatisfaction.
Planning poker is a widely used method for estimation, in an Agile environment (Cohn,
2017). The planning session consists of the product owner/customer and development team,
each member of the development team holding a deck cards with values from 0, 1, 2, 3, 5, 8,
13, 20, 40 and 100. The product owner/customer reads a user story out loud and each member
of the development team has to assign a card number, the higher the value the more complex
the task is. The planning process is repeated until consensus is achieved or until a particular
item needs to be deferred to a timer where additional information can be acquired. By taking
into consideration we are creating a solution and an application within an academic course,
even though the estimation is particularly difficult due to the lack of experience. Moreover,
planning poker is more suitable when the backlog contains a small number of items (Berteig,
2015).
The table below displays the Product Backlog, explicitly a series of user stories with the
corresponding estimation and prioritization. However, the tasks assigned with story points
have been planned without having a common planning practice. The manner in which stories
and tasks were assigned a “story score was ” by having a debate on the difficulty of each task.
21
User story
Task
Story points
/Estimation
Priority
As a user I want to
have a description of
the tool, so I can
decide if the case is
relevant.
Built documentation
for JustPark. Should
include FAQ, quick
guides, instructional
video.
8
6
As a driver, I would
like to be able to
find an available
parking spot. (epic
user story)
Build an application
for the parking
system in
Copenhagen.
89
1
As a driver, I want
to be directed to an
available parking
spot closest to my
desire destination.
Area scanner. /
localization system
plus availability
check
34
2
As a driver, I want
to have a system that
updates the parking
time so that I would
avoid parking
tickets.
Create stopwatch
function. Payment
update by
stopwatch.
8
2
As a driver, I want
to be able to pay
through the app so
that I am not forced
to manually pay at
the ticket booth.
Create a payment
interface using a
mixture of mobile
pay and credit cards
5
4
Integration with
billing systems.
3
5
As a user, I want to
receive the billing
on my email, so I
22
could keep track on
my spendings.
As a parking control
officer, I want to be
able to check if cars
are registered for
parking.
Built a number plate
scanner.
8
4
Table 2 - Product Backlog
As it can be depicted from the table, the product backlog consists of that have to be done are
epics, user stories that cannot be done within a single sprint. Usually, an epic user story is not
broad and short on details. Moreover, the story has to be splitted into multiple smaller stories
before assigning the tasks.
If in a normal Scrum environment only the development team resolves the task, in our
context, academic, all of us had to work for the completion of the tasks. We decided to split
the work not necessarily only between our two developers. Throughout the project, we have
created Scrum planning sessions, which enabled us to create the main stories, epics, and
thereafter splitting them into multiple smaller tasks, so we can ensure each sprint goal and
backlog will be met accordingly without delays. However, the Scrum Product backlog should
be composed out of short and understandable requirements, instead of having an epic user
story.
Roles in Scrum
As we have chosen to use scrum methodology for our project, here we outline a number of
roles that are specific for this methodology. Below is a table showing assignment of the roles
in our team.
Roles
Person assigned
Responsibilities
Product owner
Roman
Customer /
client
23
communication
To provide
requirements
Scrum Master
Silviu
Coordination /
coaching
Developer#1
Vlad
Coding
Developer#2
Emil
Coding
Table 2 - Scrum role designation
There are three main roles in the scrum methodology: product owner, scrum master and
developer. In an ideal scenario, there would be one product owner, one scrum master and
multiple (preferred size of 3 - 9) developers (Schwaber & Sutherland, 2013) - as our group is
consisting of only four members, we decided to have two full-time developers and keep other
members flexibly available for contribution to the development when needed. In a smaller
team scenario, it’s a common practice to combine roles of the team members (most often we
can see a scrum master who is at the same time developing).
According to The Scrum Guide, the product owner should be in a constant dialogue with the
customer, conveying the information about his/her needs to the development team. As in this
project there is no explicit customer; as a result the product owner will be responsible for
finding all the information needed for the project from appropriate stakeholders as well as
various online sources (websites related to the project, blog posts and public project
documentation). This includes analysis of the market and competition, and appropriately
reacting to the changing market needs throughout the project. Product owner will also be
determining what should be built and in what order. This is generally done in product
backlog, from where developers pull their work. It further includes building requirement
specification (definitions of completion and verification criteria), from which epics will be
derived. These epics will be later decomposed by the product owner and the team. Lastly, the
24
product owner is responsible for reviewing the work done by the developers at the end of
each iteration. Work can then be accepted and released, or returned for another iteration.
As it can be seen in Table 1, Silviu as a scrum master will coach and coordinate the team.
What this entails is ensuring compliance of the team with scrum methodology and its correct
execution. Other than this, he will be the link between the development team and the product
owner. He is shielding the development team from the outside influences and making sure
they will keep the required effectivity. Regarding collaboration with the product owner,
scrum master will assist with defining the tasks for developers and keeping product backlog
organized.
Our development team is consisting of two members but as aforementioned, the other
members will be able to contribute to the development as well. A special quality of a scrum
team is the ability to self-organize. There is no hierarchy in scrum. Instead, the team is
responsible for their actions as a whole and this is being reflected onto the motivation and
commitment of the members. The developers are expected to be cross functional, which suits
experiences of Emil and Vlad. This will allow great flexibility within the team and ensuring
all other members’ correct expectations of the deliverables.
Generally, doing scrum should be a great experience for each member of the team if executed
correctly. At the end of the day, everyone will gain experiences from collaborating and
communicating with other members closely to avoid redundancy and satisfy customer in the
best manner possible.
Risk Analysis
Document title: Risk Analysis
Document Ref:
Version No: 4.0
Document Status: Final
25
Date: 15/ 12/ 2017
Author: Vlad Alexandru Ilie
Owner: Vlad Alexandru Ilie
1. Purpose of Document
1.1 Overview
The purpose of this document is to provide a detailed Risk Analysis. This section contains a
list of initial risk that were identified through brainstorming, a ranking of these factors that
could drastically influence the project at a later stage, In addition to this, we recognized the
necessity for further research and we took an appropriate course of action to mitigate the most
severe risks.
1.2 Distribution List
This document is to be communicated for the following stakeholders for review and for
information.
1.2.1 For Review
Name & Role
reason
Date sent
status
Silviu
Owner of the document,
25
Final
needs to know what
September
problems might arise in
2017
Scrum Master
the future
Roman
Product owner
Customer needs to be
25
made aware of what
September
Final
26
vulnerabilities the
2017
product might have
1.2.2 For Information
Name & Role / Department
Developers
This section of the report will focus on exploring various aspects of the “JustPark” solution
that we, as a team, identified to be potential sources of risk. In the following paragraphs three
major types of risks are presented and ranked according to a risk level - which is calculated
based on the probability of the event happening and the effects it would have if it did happen.
It is important to note that the first risk assessment was conducted before the initial data
generation period. The reason for this, is that we first had to identify which areas of the
project required further investigation. After a series of semi-structured interviews, we
conducted a second risk analysis and changed our solution in order to mitigate the three risks
that, initially, had a probability of 100%.
Project risks:
1. Copenhagen already has systems that attempt to improve traffic congestions, as a
result drivers might feel confused or unwilling to change from their preferred choice.
2. The system would have a limited efficiency during peak hours. In this case, traffic is
caused by an infrastructure that cannot support a large number of cars. In addition to
this, roads in Copenhagen need constant attention and repairing. Because of this,
many areas and routes have to be closed to allow for repairs to be made.
27
3. To be able to direct drivers to a specific parking spot, the app needs to know where
and how many parking spots are in any given area of the city. As a result, the task of
creating a system of such size can easily be under-planned.
4. The solution would be required to use the billing system created by the already
established private parking organisations - since they have ownership and regulatory
authority over the paid parking areas.
Product risks:
1. A piece of software, no matter how advanced, cannot ensure that traffic problems will
be solved.
2. The software relies on driver’s participation in order to improve the driving and
parking experience
3. Vague requirements
4. Part of the spectrum of the app’s functionality might have been left at the developer’s
interpretation.
5. Unknown size of the app’s infrastructure.
Team risks:
1. Divergent set of skills
2. Misunderstandings as to what the solution should be.
3. Different ways of understanding the methodologies.
4. Having different backgrounds, we believe that different things should be the prime
focus.
Table 2: Risk Analysis prior to data generation
ID
Description
Probability
Effect
Level
Action
28
1
User
resistance
to 50%
5
2.5
Marketing campaign
10
7
Continuously
change
2
Limited
efficiency 70%
during peak hours
3
Difficulty
update
and
optimize the software
assessing 50%
7
3.5
the size of the system
Create an actual solution and
not work with a hypothetical
solution
4
Integration
established
with 10%
10
1
billing
A
smartphone
a
new
billing
system, which would cause
systems
5
Develop
significant delays.
app 50%
10
5
More research.
8
4
Marketing campaigns.
10
10
More and better discussion
cannot solve traffic
issues
6
Community
based 50%
needing many users
7
Vague requirements
100%
with whoever initiated the
project or whoever is paying.
8
Devs are responsible 100%
for
defining
functionality
the
2
2
Ethnographic
studies
to
determine what the best UX
and interfaces.
29
9
10
Unknown
100%
10
10
Create an actual solution and
infrastructure
not work with a hypothetical
dependencies
solution
Divergent skills
40%
3
1.2
Assign responsibilities based
on what we are capable of
doing.
11
Misunderstandings in 60%
5
3
regards to the solution
Have more meetings where
we discuss what we did,
what we plan on doing and
how we plan on doing it.
12
Different
60%
3
1.8
understanding of the
We
should
study
the
methodologies more
methodologies
13
Different focuses
40%
7
2.8
Have more meetings where
we discuss what has to be
done.
It is important to note that at the point of writing the risk analysis, we believed, as a group
that further documentation and data generation was needed in order to fully understand the
functionality of the application. As a result some of the entries presented in Table 2 have
been addressed. The following table “Table 3: Risk Analysis after data generation”, presents
the risks that had a probability factor of 100% and have been mitigated.
Table 3: Risk Analysis after data generation
7
Vague requirements
50%
10
5
Features that will be added
after the initial release might
30
require changes to the entire
application
8
Devs are responsible 10%
for
defining
2
0.2
the
created
functionality
9
Unknown
The GUI and UX should be
by
a
proficient
designer.
30%
10
3
The
billing
system
is
infrastructure
black-boxed. To be able to
dependencies
integrate
application
it
with
a
our
partnership
with the billing organisations
needs to be reached.
Exploring software qualities
Document title: Exploring software qualities
Document Ref:
Version No: 1.0
Document Status: Final
Date: 12/12/2017
Author: Emil Krogsgaard
Owner: Emil krogsgaard
1. Purpose of Document
31
1.1 Overview
The purpose of this document is to discuss the software qualities associated with the
development of the JustPark app.
1.2 Distribution List
This document is to be communicated for the following stakeholders for review and for
information.
1.2.1 For Review
Name & Role
Roman
Product owner
Silviu
Scrum Master
reason
Date sent
Customer needs to be
5/10/17
made
aware
of
the
status
Final
architecture being used.
Owner of the document,
needs
to
cascade
information
to
5/10/2017
Final
developers.
1.2.2 For Information
Name & Role / Department
Scrum Team
32
Using the ISO/IEC 25010 Product Quality model characteristics we have decided on the 5
qualities that will be of utmost importance to the success of the final product (ISO, 2017),
these characteristics are listed from most important to least important:
1. Reliability
This characteristic discovers how mature the final product is. By focusing on this aspect, we
will focus on how often the product is up and running, how tolerant it is against faults and
how easy it is to recover in case of a breakdown.
As our product aims to replace the majority of the existing parking systems in Copenhagen,
we deem it to be of utmost importance that the system is stable and has the highest possible
level of availability. If this is not the case the public is likely to turn their opinion on the
system and possibly reject it completely.
2. Usability
This product characteristic describes how appropriate the final product is to its intent. It is
very user centric in that it accounts for how the user views the product by for example
understanding of operational qualities, ease of learning and accessibility.
For a mobile app that will be used by everyone with a driver's license it is really important
that it succeeds in creating a positive user experience as this will help people to accept the
product faster.
3. Performance Efficiency
This aspect seeks to understand how the product performs under scrutiny of stress testing. If
the functions are developed well enough then it will be capable of handling the incoming user
queries. As there will be an intense load on the system in rush hour times, it is critical to
product success that it is able to handle the load during peak hours.
4. Maintainability
Maintainability refers to the easiness of maintaining a given system. This can be in terms of
how easy it is to modify the product, use the product for similar purposes or test it.
33
Even though the main requirements for our system are likely to remain stable once properly
implemented, we expect that unforeseen user behaviours will spike the need for changes in
the system. As different parking options emerge (for example Charging stations) it must be
possible to not only add new metadata, but also make adjustments to general functions in the
product.
5. Security
The focus in the security domain is on integrity and confidentiality of the user that it is
serving.
As many transactions will be made through this system it is highly critical that the system is
properly secured, thus minimizing the risk of stolen data. Users will also have to create
accounts that work to authenticate them and their car.
This said we decided to value the security lower than our other quality aspects. This decision
was made because the product will need to be fit for purpose and reach a high quality level
seen from the user's perspective in the beginning of the project life cycle. Once we have
gained the support of our users we can pivot our focus in quality to security.
Reflection on process model
As we have decided on using the agile method of Scrum, the first software quality
characteristic that comes to our attention is the focus on maintainability. This area also
focuses on creating an agile product that is not completely static after launch, but it has a
design that allows for some flexibility in improving its functionality. This is likely to be
needed; as future technological progress is expected to impact the parking market. However,
usage of scrum might not necessarily be the best method, as it does not have a deep focus on
providing proper documentation of the end product, making it harder to carry out
improvements and changes in a more distant future.
In addition to this, making further progress on the tool can in many aspects be seen as
contradiction to the security and the reliability of the system. Any changes made to a system
will inevitably cause concerns in terms of security and reliability as it can cause disturbances
in both aspects if not properly managed. In worst case this can break existing features.
34
However, to minimize these concerns a large emphasis should be made on conducting proper
change management which is discussed in greater detail later in the paper.
Requirement Elicitation
Document title: Requirements Elicitation
Document Ref:
Version No: 4.0
Document Status: Final
Date: 15/ 12/ 2017
Author: Vlad Alexandru Ilie
Owner: Vlad Alexandru Ilie
1. Purpose of Document
1.1 Overview
The purpose of this document is to provide a complete list of requirements that have to be
implemented into the application. It is important for our solution to attempt to solve the real
problems that are faced by the drivers. In order to reflect reality, the functional and
nonfunctional requirements have been created based on user stories and epics, which in turn
were created based on semi-structured interviews.
1.2 Distribution List
This document is to be communicated for the following stakeholders for review and for
information.
35
1.2.1 For Review
Name & Role
reason
Date sent
status
Silviu
Owner of the document,
14 October
Final
needs to confirm that
2017
Scrum Master
this is the final list of
requirements
Roman
Product owner
Customer needs to
approve the final list of
requirements
14 October
Final
2017
1.2.2 For Information
Name & Role / Department
Developers
The initial phases of the software development process of the JustPark application relied on a
set of assumptions in regards to the social tendencies of drivers in Copenhagen. Moreover, as
developers, we did not possess a good enough understanding of the social requirement that
would have to be met in order for the application to be accepted and used by drivers. In
addition to this, a series of risks directly related to the necessity of having more research into
user behaviour, have been identified in the Risk Analysis section. In order to bridge this gap
in knowledge, our group has conducted 3 semi-structured interviews with drivers of different
background. The following paragraph will provide a description of the interview guidelines
and our rationale for choosing this method.
36
The interviews have been developed as a means to better connect with our potential user base
and ensure that the gap between user stories and actual user desires will be lessened. The
semi-structured style encourages the use of personal intuition to navigate between set
questions and prompting the interviewee for elaboration when needed. This allows for a high
degree of flexibility and gives the interviewer the freedom needed to investigate topics that
the interviewee brings into the conversation (Edwards & Holland, 2013)
Semi-structured interview script:
1. Can you please tell us how your general driving routines are?
a. How often do you drive ?
b. Where to ?
c. Any daily commutes?
2. How would you describe the parking situation in the areas that you generally drive to?
a. How easy is it to find a spot?
b. How much time would you say you spent?
3. Do you have a parking story that you would consider horrible?
a. What was the irritating elements about it?
4. How could this experience have been improved?
5. What are your general concerns in regards to parking?
6. We are in the process of designing a parking app for the city of Copenhagen that
would help you find and locate available parking spots in the vicinity of your
destination.
a. What are your general feelings about creating such a service?
7. How could you see an app like this change your life as a driver in Copenhagen? (will
they alleviate some of your concerns).
37
This interview structure has been used to conduct three interviews with drivers in
Copenhagen. From these interviews we have identified the following aspects that drivers
would be interested in.
Social requirements:
1. Drivers would like an app that tells them where to find a parking spot and how to get
there.
2. Drivers don’t want to use multiple apps just for parking:
a. app for finding your way to the parking spot
b. app that tells you where the parking spot is
c. app that allows you to pay
3. A driver wants to be told whether the parking spot they are directed to is paid or free.
4. A driver wants to be able to select the type of parking (paid / free) they they will be
directed to.
5. Drivers would like to specify the maximum distance between the parking lot and their
destination.
6. Drivers don’t want to spend time setting up and using the app.
a. creating the account and setting up payment methods
b. choosing a destination / parking spot has to be intuitive and fast
c. verifying a driver’s position in the parking lot has to be done automatically
7. Drivers are more interested in parking spots in the central area and not so much in the
suburbs.
8. Drivers are interested in receiving parking information when they travel to less known
destination.
9. The app must not require user input while the user is driving.
38
10. Drivers want to be able to terminate their parking timer without paying for the entire
time.
a. If a user occupies a parking spot and selects, for example: an interval of 4
hours but ends up spending only 1 hour. The driver will pay for 1 hour and not
their initial estimation
Technical requirements:
1. Personalized user accounts (profile pictures / route tracking / parking time tracking)
are not a vital necessity but could be implemented at a later time
2. Drivers want the assurance that their data is secure:
a. nobody should have access to their driving / payment history
3. Client - Server - 3rd Parties communication channels for devices
a. secure data transfer from a user’s smartphone to our servers
b. establish secure connection between a driver and the billing system
4. Custom made map of Copenhagen
a. Septima.dk for geolocating all danish addresses
b. parking lot registration:
i.
where is the parking lot
ii.
how many parking spots are there
iii.
where are all the parking spots
c. route calculation
d. route optimization
Based on the social and technical requirements created from interviews with drivers in
Copenhagen, as well as taking into consideration our judgement of what functionality an
39
application is supposed to have, we have created the following functional and nonfunctional
requirements that our app, JustPark, has to support.
Functional Requirements:
1. A user should be able to use the JustPark app 24/7.
2. A user should be able to search for a parking spot in any part of Copenhagen
including the suburbs.
3. A user should be able to view parking spots for both paid and unpaid parking areas.
4. A user is uniquely identified by their phone number / email.
5. A user confirms occupying a parking spot via any smartphone’s gps/location signal.
6. A user cannot reserve a parking spot in advance as the Smart Parking app uses a first
come, first served basis.
7. The app has to be able to process a very high level of requests in real time without any
latency issues.
8. A user’s activity within the app should be anonymised
a. can be achieved by securing all communications between a user’s smartphone
and our servers via SHA-256 encryption methods.
Nonfunctional Requirements:
1. The app’s GUI needs to be designed in such a way that users could be capable of
intuitively using the application.
2. For users who want to be shown how the app functions, a tutorial video, no longer
than 30 seconds will be available at all times in the main menu.
40
Understanding the social and technical context of the JustPark app:
Problem domain:
A problem domain, defined as “the area of expertise or application that needs to be examined
to solve a problem”("problem domain", 2017), is represented, in our case, by location
tracking methods, data processing techniques, online payment protocols and parking policies.
This application is not the first one to attempt to resolve the parking situation in Copenhagen,
however the manner in which our Smart Parking app will tackle these issues is different from
anything our competitors are offering. The main problem when using a parking app is the fact
that so far, no application available at the moment on either Android’s Play Store or Apple’s
App Store, is capable of saying how many parking spots are available at any given time in a
parking lot in Copenhagen (Appendix C). The reason for this is that, already existing
application use software to monitor traffic in order to make predictions about available
parking spots and show users a percentage of expected available spots. For example, a driver
using EasyPark would be told that in a certain area or parking lot, there should be, for
example, 50% available spots. While this represents an important first step, we believe that
the key to a highly reliable and accurate parking system is in developing a map of
Copenhagen and its suburbs that can store information, such as: time restrictions, price, type
of parking, available spaces, etc.
Our JustPark app is intended to allow users to select a destination and they will be provided
with the the most optimal route as well as with the closest available parking spot to their
destination. The application is not intended and will not be capable of billing users directly.
The reason for this is that, the entire region of Copenhagen and its suburbs are regulated by
the government with four service providers: Easypark, WayToPark, Parkman or Parkpark
(Parking in Copenhagen, 2017). As a result, our solution to the parking problem in
Copenhagen is not a for-profit organisation because it would not have ownership rights for
any parking area in Copenhagen. Despite this, our application will take into account the
owners of each parking area and will have integrated their payment mechanism.
The JustPark application represents a centralisation of car park service providers over a new
and improved road map infrastructure.
41
Application domain:
The application has an over encompassing goal of being utilised by all drivers in Copenhagen
and subsequently in Denmark.
The targeted user is any person that has a driver’s license, access to an automobile and wants
to drive anywhere in Copenhagen.
Because our application is capable of providing the most optimal route to a selected
destination, the app can be used as a replacement for GPS navigation devices.
Technical context:
As stated in the problem domain section, our Smart Parking application mainly revolves
around the use of location tracking over a custom made map of Copenhagen and its suburbs
via cloud processing methods to ensure reliable and fast service.
So far, the toughest challenge is the creation of the custom map of Copenhagen and its
suburbs in order to be able to track parking lots occupancy rates and level of traffic. The first
step would be to buy an already existing map of Copenhagen that contains all Danish
addresses (P/S, 2017). This map would have to be modified in such a way that it would be
able to store information about each parking lot. Each parking lot would be registered on the
map as an address containing multiple parking spots, which contain different types of
information and details about the parking conditions.
A user would start using the app by first either typing in the address of the destination or
selecting one on the map. Once the user finished picking the destination, they would be asked
whether or not they would like to park at the destination. If the user declines the offer, the app
will simply provide the user with the best route. If the user accepts the offer, not only will the
app provide the user with the best route to the destination, but once the driver is close to the
destination (for example less than 300 meters to the destination ) the route will be
automatically updated so that it would take the driver to an available parking spot that is the
closest to the desired destination. Once the driver arrives, the app will automatically detect
via the driver’s smartphone GPS location and cross-referencing it with the custom made map
to accurately tell the position of the parked car. Once the driver confirms the position of the
42
car on the map, the he/she will be directed to the billing system that corresponds to the
service provider of the car park.
After a user pays, the map is updated to reflect that the parking spot has been occupied.
Technical figures portraying the system structure
The first figure represents an abstraction of all components that form our solution to the
parking problem in Copenhagen. It can be seen that the client, driver only has access to the
smartphone application, which represents a direct connection to our servers. In addition to
this, the user is required to provide the app with a valid destination and depending on parking
policies, the driver will have to pay.
The server represents everything that our application has to be capable of doing reliably. As
previously stated, the core component is the custom made Map of copenhagen and its
suburbs. As it represents the backbone of the entire solution, it is of the utmost importance
that the map reflects reality, in terms of where each parking lot and parking spots are.
In addition to this, the server contains the algorithm by which a driver is provided with an
optimal route to a selected destination. The route calculation and route optimization functions
43
will be applied for two distinct purposes. The first time, these will be used to provide the
driver with a reliable route to the selected destination and after that, the two functions will be
used, in a dynamic manner, to alter the route and change the end stop with a parking spot that
is or will be available by the time the driver arrives. The map and the methods for providing
the route rely on infrastructures and software that have already been created by Google Maps
as well as, by the Danish organisation, Septima.
The last function that our application is meant to achieve is to have an integrated billing
process. This could be achieved easily, because all that the application is required to do is
connect the driver with the billing system of the owner of the respective car park. On the
other hand, as stated in “Table 2: Risk Analysis after data generation”, this step represents a
potential risk because there is no way to know the manner in which those systems function in
the back-end. In order to fully mitigate this risk, our application needs to have access to the
programming interfaces of the established billing systems. This can be achieved by creating a
partnership or an agreement with those companies.
The second figure illustrates the process that a user is required to undertake in order to
successfully utilise the app. One of the main requirements for the application is to be as
black-boxed as possible. Users do not need to know about the internal working of the app. As
a result, the user will have a number of interactions with the app that is as small as possible.
44
In such a way, the design of the app will influence the manner in which drivers utilise it. the
only aspects that are needed from the driver is the final address, type of parking and payment
method.
The first step for a driver is to select a destination and, before they start driving, to choose
whether they would like free or paid parking or perhaps, no parking at all. Next the driver
will be provided by the app with a route and possible parking spots at the end. At this point,
they have to either confirm the route and start driving or make changes to the route and repeat
step 2. The next step will be achieved by the application without the need for the user’s
involvement. While a car is getting close to the destination, depending on the user input and
on their preferences, the application will be capable of altering the route such as the endpoint
will be an available parking spot. The last step, once the driver has reached the destination
and has parked the car, the user is required to register the car as parked on the map. This step
will be achieved automatically through the user’s smartphone location tracking sensors and
the position will be cross referenced with the one one the Map in order to guarantee that a
specific parking spot has been taken.
45
Illustration of the problem domain using Rich
pictures
Document title: Illustration of the problem domain using Rich pictures
Document Ref:
Version No: 3.0
Document Status: Final
Date: 09/12/2017
Author: Roman Novosad
Owner: Roman Novosad
1. Purpose of Document
1.1 Overview
THis document depicts the problem domain within the area of parking in copenhagen. They
will aid in developing a common understanding of important aspects of a problem and
application domain.
1.2 Distribution List
This document is applicable for the whole development team.
1.2.1 For Review
Name & Role
reason
Date sent
status
46
Roman
Product owner
Problem domain will be
reviewed by the product
owner
5/12/17
Final
1.2.2 For Information
Name & Role / Department
Scrum Team
Already in 1981, Peter Checkland carried out a research with his colleagues at Lancaster
University, where he discovered the high value that rich pictures are adding to the proper
explanation of the problem domain. In his later works, he outlined, that “[a] picture is a good
way to show relationships; in fact it is a much better medium for that purpose than linear
prose” (Checkland & Poulter, 2006).
The Rich picture is very useful after conducting initial interviews involving the problem
description by the actors from the examined setting, since this way we can display their
understanding of the situation graphically. These vivid expressions will then be used to create
a holistic understanding on how the actors see the problem and to get feedback on the
picture to improve it(Checkland & Poulter, 2006). In the following rich pictures, we will focus
on the problematic aspects (Iversen, Mathiassen & Nielsen, 2004) of finding an appropriate
parking spot in Copenhagen.
Rich picture legend
47
Action
Relationship
Expression bubbles
Drivers in need of a parking spot (angry)
Conflict
Regulatory bodies overlooking proper parking behaviour
Congestions
Streets
Parking area with an available parking spot
Mobile app
Drivers not in need of a parking spot
Rich picture 1 - Cruising
48
Our first Rich picture explains the following situation : There are some drivers wanting to get
to their destination with need to find parking there. For an arbitrary reason, they have chosen
to find free parking spots manually (not using any of the mobile solutions). They can be
looking for the parking for various reasons - i.e. going to school, visiting a friend or
shopping. ( Interview A) As we depicted above, the parking spots are often “hidden” in the
city streets, and seeking an available parking spot manually is often challenging. This
significantly contributes to the congestions in the city, further escalating to the bad mood of
the drivers in need of parking spot and other drivers present in the streets in question (often
emerging into conflict between these two). Situation gets worse during peak hours, and
reoccurs mainly on weekdays.
Apart of this, there are two other concerns of the drivers trying to find parking. First of them
being price - the demand of the majority of the drivers is to be able to find as cheap parking
as possible, sometimes for the expense of the parking spot being further from the destination.
(Interview B) Second problem is the concern of parking in the wrong place, while fines are
49
being high, there is an understandable worry about finding a parking spot, and despite paying
for the parking being fined by the appropriate operators of the paid parking areas. (Interview
A)
Rich picture 2 - Using a mobile app
In our second rich picture, the drivers wanting to get to the available parking spot are
choosing one of already available parking applications for smartphones. As expected, this is
not contributing to the bad driving situation as much as in the above mentioned scenario, but
there are other issues impacting the drivers. Their dissatisfaction is fueled mainly by larger
selection of the apps for parking and their limited usability (Interview A). Problematic
situations arises when a driver is not able to find a parking spot at the place of arrival.
Currently, there is no system that would have ability to monitor availability of parking spaces
in Copenhagen and navigate drivers to an available parking spot and therefore it is possible,
that these mobile solutions are not going to help (Interview A).
50
Similarly to the first scenario, the user is risking being fined for an inappropriate parking (as
a result of mobile app not showing the exact available parking spot) (Interview A). Apart of
this, other concern of drivers using this solution is being price - the demand of the majority of
the drivers is to be able to find as cheap parking as possible, sometimes for the expense of the
parking spot being further from the destination (Interview B).
Scenarios
Document title: Scenarios
Document Ref:
Version No: 3.0
Document Status: Final
Date: 09/12/2017
Author: Emil Krogsgaard
Owner: Roman Novosad
1. Purpose of Document
1.1 Overview
This document seeks to explore different usage scenarios as seen from the users point of
view.
1.2 Distribution List
This document is applicable for the whole development team.
1.2.1 For Review
51
Name & Role
Roman
Product owner
reason
Date sent
Usage scenarios will be
5/12/17
status
reviewed by the product
owner.
Final
1.2.2 For Information
Name & Role / Department
Scrum Team
A usage scenario describes a real-world example of how one or more people, or
organizations interact with a system or a software piece. It is used to describe the steps,
events, and actions which occur during the interaction. We used two types of scenarios:
the traffic jam section and reservation / pay as you go system. The first one consists of a
very detailed version, indicating exactly how someone works with the user interface; a
second type consists of a high-level description of the actions and events within the apps
interface but not indicating how they are performed.
The structure for our scenarios are based on the following model:
§ The system under discussion: an easier and faster parking application;
§ Primary Actor: application user/driver;
§ Goal: faster parking process for the user;
52
§ Conditions/assumption: every user has JustPark application;
§ Outcome: finding the parking spot easier
Therefore, we have created two scenarios based on the model: a detailed version of the
process and the interaction between the user and the application process.
Traffic jam
Jesper is living 30 km away from his current office. Every morning he has to commute and
due to traffic jam and the lack of parking spots the searching process becomes stressful.
Moreover, his company does not provide parking facilities. By using JustPark the whole
scenario changes.
First of all, the application will require to access the localization and afterwards the user can
type the destination he will be travelling to. Thereafter, the app functionality would be as a
GPS. When Jesper reaches a 500 meters’ distance from the destination, JustPark will provide
the nearest available parking spot at the destination. Another option is if Jesper finds a
parking spot and parks his car without before starting the app. When using the application, he
is informed whether the spot is free or not. The same situation would be applied if Jesper
doesn’t want to use the GPS function of the app. In this case, he could turn on the app when
he reaches the destination and choose the “find near parking spot” and he would be redirected
to the nearest available spot. The last step of the parking is to press “start” when the car is
parked and “stop” when he will be leaving the spot.
Reservation process / pay as you go system
Jette is always receiving fines for not extending the time spent in the parking lots. By using
JustPark the extra steps are avoided and highly simplified:
I. S
witch on the app.
53
II. Choose destination. Jette is guided through GPS. A parking spot is displayed when the user
is close to destination. Press accept spot. Park the car.
III. Press “START parking”. Timer will start.
IV. Amount of time passed. Jette returns to her car.
V. O
pen the app. Press “STOP parking”. A total time and price will be displayed and the
corresponding amount of money will be withdrawn from his credit card.
VI. A receipt is being sent via email/SMS.
Actor descriptions
Actors are represented by the future users of the system. Actors model the user's perspective
of the system and they are located outside the system; therefore, in order to depict actors, it is
important to define the boundaries between actors and the system(Papajorgji, 2016). In our
project we could identify only one actor that is not being part of the system. This may be
defined as the first type of actors, which is the most common type, an application user.
However, we created a technical use case diagram where we displayed the interaction
between actors that are not part of the system. The second category includes IT systems
interacting with the application system, and human actors that are being part of JustPark
processes.
In this chapter, we decided to present only the most relevant type of actor, the application
user, and further describe their characteristics and a sample example of their interaction with
JustPark app.
Application user / drivers
Purpose: A person that owns a car. The user wants to find in the quickest way possible a
parking spot.
Characteristic: The system’s users include same type of accounts.
54
Examples: Account owner A travels to Copenhagen Centrum. The user is concerned how
much time it would take to find a parking spot. He switches on JustPark, selects destination
500m before destination is reached all available parking spots will be displayed.
Use case diagram
In definition, an actor is always outside the system and anything that is part of the system is a
secondary actor (Papajorgji, 2016). However, we decided to be more precise when it comes to
user interaction and the ‘backend’ that makes the system work. First use case diagram
describes all the actors involved in the JustPark process.
1. A
customer may have an account or not, therefore we divided a customer into two
categories: registered user and new customer. If the customer doesn’t have an account, a first
55
step is the registration process. This step has to be verified and an internal actor may be
involved. First of all, the Service authentication actor represents the person in charge of
verifying customer’s authentication data and approving the application. In general, this is an
automated process, but some scenarios may require human interaction.
2. A
fter registration, the user has to select a destination. A GPS tracker would be activated
and when the user reaches a 500m distance to destination he/she would be asked to check and
select from the available parking spots. The reservation starts by pressing a start button and
finishes when the stop button is being triggered.
3. T
he third step is the payment process, where the payment and receipt are automatically
generated. Here we list three actors getting involved: The authentication actor, responsible for
the user’s authenticity, the identity provider is in charge of the issues regarding parking spots.
If there were any spots marked as free and they weren’t or if the user got a fine for parking in
that area etc. The third actor is the payment service that has to approve and make sure the
payments were done correctly.
Compared to the first technical use case, the second diagram follows the user step by step. We
use it to display the complexity of the app and as it can be noticed, the app has a lower
complexity than most of the existing parking apps.
1.
Sign In / Log In
2.
Select destination
3.
Check available spots
4.
parking area displayed / Park
5.
Start parking timer
6.
Stop parking timer
7.
Review availability and service
8.
Payment generated automatically
56
Use case description
USE CASE NAME
Create account
USE CASE ID
1
BRIEF DESCRIPTION
Register as new User
ACTORS
Unregistered User
PRECONDITIONS
The app is already installed
57
MAIN FLOWS
1. The use case starts when the user select Registration.
2. The system requires user details
2.1 Car plates
2.2 Payment method
2.3 Personal Information (Name, Address, phone
number)
POST CONDITION
The account is now created
ALTERNATIVE
none
58
General Use case
Use case description #2
USE CASE NAME
General Use Case / Search for parking spot
USE CASE ID
2
BRIEF DESCRIPTION
The user search for an address / for a spot
ACTORS
JustPark User
PRECONDITIONS
USER ALREADY INSTALLED THE APP
59
MAIN FLOWS
1. The use case starts when the user selects a
destination or asks for parking spot.
2. The system provides the user GPS
guidance until the parking spot is reached.
3. The user presses the “Start” button to start
the parking.
4. Before the leaving point, the user triggers
the “Stop” button.
5. A review box is being displayed.
6. The user receives the bill via
SMS/mail/app.
POST CONDITION
None.
ALTERNATIVE
The user receives a fine for not paying the
parking.
60
Class Diagram
UML class diagram
Disclaimer: The above mentioned UML diagram represents only our system and not any third
party actors. (established billing systems)
The UML class diagram above describes classes, their attributes and operations as well as
relations between them. The more detailed version of the class diagram can be found in the
appendix, where each method contains the corresponding parameters. (Appendix D)
The User class contains four attributes and one method. By using logIn() method the Map
class is being instantiated. However, this is not necessary a composition, considering the Map
can be accessed even without having to create a user.
61
The Map class is constituted by three methods and one attribute. The three methods are based
on the user input. FindSpotNear() is displaying the nearest free parking spot. The stop()
method is used to create the receipt, using the timer for calculating the price.
The ParkingLot class contains four attributes and no methods. ParkingLot class instantiated
by the Spot class, considering ParkingLot contains all the spots. Therefore, the ParkingLot
class is in composition with Spot, by being part of it. (a parking lot cannot exist without the
spots) The last class, Receipt has four attributes and no methods. This class is meant to
contain the information needed to generate receipts.
Interface Design using Mock-ups
Document title: Interface Design of the JustPark parking solution
Document Ref:
Version No: 5.0
Document Status: Final
Date: 13/12/2017
Author: Roman Novosad
Owner: Roman Novosad
1. Purpose of Document
1.1 Overview
The purpose of this document is to depict design requirements for the JustPark solution.
1.2 Distribution List
62
Reviewed by product owner.
1.2.1 For Review
Name & Role
reason
Date
status
sent
Product Owner
Specify
the
requirements
1.2.2 For Information
Name & Role / Department
Development team
According to the aforementioned scenarios, we have constructed a design mockup depicting a
user journey when making a parking place reservation. (Image 1) Interactive design was
created using Invision app (full link to the interactive interface is available in the footnote)1.
We have rapidly prototyped the mockups in order to collect user feedback needed for future
development. During the mockup workshop, we found a number of aspects that we wanted to
further incorporate or modify in the design. The initial design is available in the Appendix E.
In the final design mockups displayed below, the user is led through a process of booking a
parking spot. Unlike in the design we originally developed, user is not booking a parking spot
in advance, but rather traveling to a closer proximity of the destination and only then is
1
https://invis.io/QRENFTT7C#/265980188_Image_005
63
guided to the nearest available parking spot. This enables more dynamic designation of the
parking spots and mitigates an erroneous behaviour from the user side.
Registered user getting an available parking spot (Image 1)
After the user is presented with the login screen, he/she can input login details and log into
their app. (this goes for already registered user) After that, the user will have to select a
“Map” option on the welcome screen. From here, user is able to navigate in the map and
choose parking destination. As aforementioned, there is no particular parking spot that a user
would be navigated to. Instead, there is an area, and closest parking spot is selected upon
arrival. In this stage, the app works like the GPS in for instance Google Maps. When a user
parks in the desired parking spot, the next screen shows up and user is prompted to register
for parking. (Start button) The parking time is counted until user’s departure when the user
has to check out (Stop button).
Image 1
Registered user ending a parking session (Image 2)
When a user is already checked in the parking spot, at some point he/she will have to leave
the spot. In this case, the app will display a “Stop” button below the timer for elapsed parking
time.
Immediately after launching the app, user will be presented with this timer. If the user wishes
to leave the parking place, he/she can simply end parking by pressing “Stop” button and will
be presented with a final calculation of the price. Below the calculation, user will be able to
choose a preferred payment method (pre-set earlier by the user) or choose new payment
64
method in case none of the available is desired. As the user presses “Pay” button, they the
transaction will be made via integrated payment gate and upon a successful transaction user
will be shown a simple thank-you message.
Image 2
When all the necessary mock-ups are constructed and refined, we can create development
tasks based on them. These tasks have to be as exact as possible, however with the
development framework we have chosen, we cannot exclude further iterations on them.
Documenting Project Requirements
Goals
● Simplification of parking for drivers and residents in Copenhagen
● Improvement of waiting time for availability of the parking spot
● Decreasing number of illegally parked vehicles in the city
● Adding ease of use to the process of finding and placing user’s vehicle in a
Copenhagen parking place
Background and strategic fit
65
● Mitigation of the congestion creation in the city, improving driver user experience,
improving overall image of the city
Requirements
# Title
User story
Priority
1 User login
As a user, I want a page where I can use Critical
Notes
my login information and log in to the
app.
2 User new account As a user, I want to have an easy and Critical
registration
convenient way of creating a new profile
so
I can start using
the parking
immediately.
3 Guest
parking As a visitor of the city, I want to be able Major
reservation
to pay for parking no matter whether I
have created an account or not.
4 Main timer
As a user, I want to have a convenient Critical
way of checking how much I have left
from my paid parking time.
5 Map screen
6 Booking
As a user, I want to be able to browse Major
Google
free parking locations on the map, so that
maps
I can easily choose where I want to park.
integration
API
in As a user, I want to have an option to Major
advance - time book whatever time and duration for
66
picker
parking I want.
7 Payment - price As a user, I want to have a clear Minor
calculation
information about the amount of money I
will be charged.
8 Payment method As a user, I want to be able to add and Minor
selection
Forwarding
easily pick from multiple payment
of
the
methods.
payments to
the relevant
parking
providers
Document convention
Below, we have created a document convention for all documents that can be classified as a
configuration item. This convention is to be added in the beginning of these documents to
establish some necessary metadata for the document.
Document title:
Document Ref:
Version No: x.x
Document Status: Draft / Final
Date: dd/mm/yyyy
67
Author: The person responsible for its creation
Owner: The person accountable for its content
1. Purpose of Document
1.1 Overview
The purpose of this document is to...
Note: This document is subject to change and will be revised and approved per the document
change control process.
1.2 Distribution List
This document is to be communicated for the following stakeholders for review and for
information.
1.2.1 For Review
This section specifies who should review and approve the document in questions.
Name & Role
reason
Date
status
sent
1.2.2 For Information
Name & Role / Department
68
Configuration management plan2
Document title: Configuration management plan
Document Ref:
Version No: 1.0
Document Status: Final
Date: 12/11/2017
Author: Emil Krogsgaard
Owner: Silviu (Scrum Master)
1. Purpose of Document
1.1 Overview
The purpose of this document is to establish a configuration management plan to ensure that
the development of the smart parking app for Copenhagen is streamlined.
1.2 Distribution List
For inspiration the configuration management plan found on Nasa’s website has been used.
https://www.nasa.gov/sites/default/files/t2401_-_rev_b.doc
2
69
This document is to be communicated for the following stakeholders for review and for
information.
1.2.1 For Review
Name & Role
Silviu
Scrum Master
reason
Owner of the document,
needs
to
cascade
information
Date sent
Status
13 December
Final
2017
to
developers.
Roman
Product owner
Customer needs to be
made
aware
of
management
the
12 December
Final
2017
of
configuration items.
1.2.2 For Information
Name & Role / Department
Developers
Introduction
To secure that the configurations related to the product developed are released and managed
in a way that makes sense for our approach to development, we have created a configuration
management plan that will guide us through releases, changes and documentation.
70
As previously stated, one of our core software quality aspects is the idea that the final product
should be easily maintainable and reliable which means that we must provide a system that is
easy to support. A second aspect of maintenance includes the possibility of introducing new
features after go-live. Both activities are likely to be performed by support teams or
developers not involved with the development aspect of the original product. Thus, when
designing our configurations we need to consider how we enable our future colleagues to
service the product in the best way possible.
Configuration Management tool
We have decided on using the visual studio Team foundation Server as it is a fully fledged
software development tool that can provide aid in many aspects of development. This
includes version control, support of agile processes and continuous integration.
Configuration Management Activities
As we are using an agile approach to develop the product we need to adhere to this approach
on a documentation level. “The agile strategy is to defer the creation of all documents as late
as possible, creating them just before you need them via a practice called "document late"
("Best Practices for Agile/Lean Documentation", 2017). As also discussed in this web based
article this does not mean that we are “paper free” in the initial phases of the project, but
rather that we focus on documenting higher level concepts and requirements.
Configuration Control
When the development of the tool has reached a point where it can be tested by potential
stakeholders we will start to adhere to a specific change management process. This process
aims to ensure that we have proper control of the configurations and releases that we present
to customers. From this point and onwards all changes needed must follow the change
management process. However, to eliminate some bureaucracy we will distinguish between
71
standard changes and significant changes. The changes that can be handled as standard
changes will be stated in the standard change catalogue.
Procedures for implementing standard changes
All standard changes must be logged in the Visual studio team foundation Server. The
request will then be processed by our helpdesk agents, who will help to fulfill the basic
amendments that are requested.
Upon creation of the standard change catalogue, a link will be available in this section.
Procedures for processing change requests
All changes not logged in the standard change catalogue must follow the change management
process. This process aims to ensure that changes are thoroughly tested and that stakeholders
affected by the change are properly informed. Hence, the goal is to minimize risks and
adverse effects of implementing changes.
Change Control Board
As we are working with an agile approach changes will be common, hence the change control
board should be summoned on a weekly basis. Its members should consist of the lead
developer(s) on the change, representatives from the customer side and the scrum master.
The meeting will be held to ensure that all aspects of the change management process is
being followed, thus limiting risks and potential impacts of the change in question.
Release process
When releasing a new version of the product there should be some basic information
associated with the release. This is to ensure that we keep a proper history of what goes into
the releases and to keep stakeholders informed on what progress is being made to the product.
Thus all releases should produce the following documentation:
72
A Basic description of what is in the release, if only specific parts of the product is impacted
it should state what parts of the product it relates to. If the new release fixes any bugs or
known errors this should be listed.
Software testing
Document title: Software quality assurance plan
Document Ref:
Version No: 1.0
Document Status: Final
Date: 25/11/2017
Author: Emil Krogsgaard
Owner: Emil Krogsgaard
1. Purpose of Document
1.1 Overview
The purpose of this document is to give its audience an introduction into the design of the
quality assurance plan for the development of the JustPark app.
Note: This document is subject to change and will be revised and approved per the document
change control process.
1.2 Distribution List
This document is to be communicated for the following stakeholders for review and for
information.
73
1.2.1 For Review
Name & Role
reason
Date
status
sent
Roman
Product owner
Customer needs to be
made
aware
of
management
the
of
configuration items.
Silviu
Scrum Master
Owner of the document,
needs
to
cascade
information
to
developers.
1.2.2 For Information
Name & Role / Department
Scrum Team
Software quality
This section is focused on discussing how we ensure that quality is incorporated into the
software delivered to the end users. As such, it is focused on how our practices will ensure
that quality is built into the final product. These practices are created and conducted in respect
74
to the scrum methodology and the general software qualities that have been stated in earlier
sections.
In Ian Sommerville’s book Software Engineering he describes Quality management in agile
development as “informal rather than document-based. It relies on establishing a quality
culture, where all team members feel responsible for software quality and take actions to
ensure that quality is maintained.” (Sommerville, 2016). We are mostly incorporating this
informal approach into our development cycle, although in later sections we do have specific
test cases prepared. This said, the main focus on our quality approach is to incorporate it into
the daily work culture as is the general style in scrum. This means that testing is the
responsibility of the developer writing the specific code. To ensure that the code is generally
well written it will be discussed in the daily stand up meetings when the developers have the
chance to catch up on each other's work and create alignment for ongoing developments.
In the Scrum Manifesto emphasis is put on reflection on quality during the Sprint
retrospectives:
“During each Sprint Retrospective, the Scrum Team plans ways to increase product quality
by improving work processes or adapting the definition of “Done”, if appropriate and not in
conflict with product or organizational standards.” (Schwaber & Sutherland, 2014)
Thus, improvements in work practices that will aid in the quality assurance process can be
reflected upon after each sprint helping the work and team to mature. Ultimately this also
means that a complete plan of how quality will be assured can not be shared as it is an ever
evolving effort in which perfection will never be reached.
Not all our processes adhere to the fundamental principles in Scrum. As stated in the
Configuration management plan, we do have a formalized version of the practice “Check
before check-in” (Sommerville, 2016). This is in essence a change management process,
which introduces a specific way of implementing changes to verify that the release will not
have negative impacts on the current build. Though this adds some bureaucracy to the
development process, this will help us achieve our top prioritised software quality:
Reliability.
75
Except from the change management process we want our developers to feel free from
referring to and updating page after page of formal quality management documentation.
Instead we want to encourage a culture of ownership work. Thus, the time that would
otherwise be spent on developing documents, should be used for be verification of own work.
Additionally team members can assist each other with problems and use the daily standup
meetings for discussing granter matters.
76
Dynamic Test Specification
Document title: Dynamic Test Specification
Document Ref:
Version No: 1.0
Document Status: Final
Date: 26/11/2017
Author: Roman Novosad
Owner: Roman Novosad
1. Purpose of Document
1.1 Overview
Purpose of this document is to outline information about the dynamic testing incorporated
into the software development methodology chosen to carry out the JustPark project. It was
chosen to do unit testing in the earlier stages of the project, system tests, regression testing
and practices associated with them to ensure maximum possible quality. Below, we will
describe what needs to be done in order to successfully carry out this dynamic testing and
ensure a quality of produced software.
1.2 Distribution List
This document is to be communicated for the following stakeholders for review and for
information.
1.2.1 For Review
77
Name & Role
Roman
Product owner
reason
Date sent
status
Customer needs to be
19 October
Final
made
2017
aware
of
management
the
of
configuration items.
Silviu
Scrum Master
Owner of the document,
needs
to
cascade
information
to
20 October
Final
2017
developers.
1.2.2 For Information
Name & Role / Department
Scrum Team
Software testing
By having a look at the glossary at the beginning of the paper, one might notice that we have
defined “Done” followingly: “A task is done, when it has been quality checked and is
finished according to the specification and relevant user stories defined by product owner.”
(Schwaber & Sutherland, 2013)
We used a term “quality checked”, which means that appropriate testing practices were
executed on the task in question. In the next section, we will explain relevant processes
invoked by this definition.
78
To start with, as we have chosen to use the Scrum framework for our project we can turn to
The Scrum Guide written by Ken Schwaber and Jeff Sutherland (2013, p. 18). That explicitly
states: “Each Increment is additive to all prior Increments and thoroughly tested, ensuring
that all Increments work together.”
There is a number of ways how to segment the methods of testing in the software
development project. Firstly, there are three distinct stages of testing on a chronological
scale: development testing, release testing and user testing. (Sommerville, 2016, p. 232)
Secondly, there are two main approaches of testing the developed software: black box and
white box testing. Latter of these is done during the development testing and especially in
Scrum, it’s generally automated (Collins et. al., 2012).
When using Scrum methodology, the team should deliver a potentially shippable iteration at
the end of every sprint. This means that the software should be usable, therefore it should be
tested by the (customarily cross-functional) team. (Schwaber and Sutherland, 2013) On the
other side, what we might consider a black box testing is a review of the iteration by product
owner after the sprint is finished. He or she could accept the iteration, or return it back to
development.
In our case case, we intend to employ the approach suggested by Sommerville (2016,
232-247), where developers will be responsible for white box tests - as they are the ones
knowing the code, they should be able to perform these tests most effectively. In our case,
developers will perform the black box testing as well, but this test should by definition not
performed/written by the ones developing tested feature. In the next part, we have picked a
number of examples of scenarios for white and black box testing for our project.
Test cases
Black box testing
Scenario testing
Test case #1: Login screen
1. User launches the app.
79
2. At the login screen, user enters login information.
Expected: If the information is valid, user will be sent to a welcome screen If the information
is invalid, user will be prompted with a pop-up: “Username or password is invalid.”.
Test case #2: Payment gate
1. User opens the app.
2. User goes through the process of getting to the parking spot.
3. After finishing parking, user is prompted to pay for the parking.
4. User will pick a payment method from the list on the screen. (always containing at
least the one method set-up upon the account creation)
Expected: If the payment information is invalid, user will be prompted with a message: “You
have entered incorrect payment information.” If the payment information is valid, but there
are not sufficient funds under selected payment method, user will be prompted with a
message: “Insufficient funds. Please select another payment option.” If all the
aforementioned requirements are fulfilled, required amount of money is deducted from the
selected payment method and use is shown the next screen.
Test case #3: Total price calculation
1. User opens the app.
2. User goes through the process of getting to the parking spot.
3. After getting to the parking spot, user is able to see in which zone the parking spot is
and corresponding hourly rate for this zone - 99 dkk/hour.
4. User checks in and stays at the parking spot for 8 hours from the current time.
Expected: The total price will be calculated with a minute precision. If user wants to park for
8 hours, the price will be [8 hours]*[99 dkk/hour] = 798 dkk.
80
White box testing
Branch coverage
Two cases below are designed to cover all possible scenarios of user login and registration.
(Flowchart 1 and 2) Every option of the user input has to be tested. This also complies with
the software qualities we outlined earlier. Furthermore, developers will be required to ensure
each scenario outlined in cases below is secured. Even though white box testing is
remarkably demanding in regard to the individual capabilities of a tester, it’s important to
incorporate it in the project. White box testing, when executed correctly, will yield deeper
understanding of the written code, opportunity for optimization and others. (Somerville,
2015, p. 236)
Document title: Analyzing Architectural Patterns to Support Quality
Attributes
Document Ref:
Version No: 1.0
Document Status: Final
Date: 12/12/2017
Author: Emil Krogsgaard
Owner: Emil krogsgaard
1. Purpose of Document
1.1 Overview
81
The purpose of this document is to discuss how the architectural pattern of MVC can support
some of the software qualities associated with our final product.
1.2 Distribution List
This document is to be communicated for the following stakeholders for review and for
information.
1.2.1 For Review
Name & Role
Roman
Product owner
Silviu
Scrum Master
reason
Date sent
Customer needs to be
13 December
made
2017
aware
of
the
status
architecture being used.
Owner of the document,
needs
to
cascade
information
to
13 December
Final
2017
developers.
1.2.2 For Information
Name & Role / Department
Scrum Team
Analyzing Architectural Patterns to Support Quality
Attributes
82
In this part of the report we will discuss how the architectural pattern of model view
controller can support the software qualities that we selected in a previous section.
Model view controller
The model view controller, also referred to as the MVC, is a specific way of organizing the
code that will make up the final system. This helps creating structure and make it easier for
multiple developers to work in sync as it makes task separation easier.
The name of model comes from the “blocks” that the code is organized into: model, view and
controller. Each block should be used for carrying out a specific purpose. The model can be
described as the brain of the code consisting of the logic and behaviour, thus it should contain
all algorithms responsible for the manipulation of data that is used in the background of the
programme. The view on the other hand is concerned with representing the information
important to the user. At the end the controller is where all the user’s input method should be
stored. On figure 3 you can see a visualized version of the model. In this model Google maps
and Septima has been included to illustrate how external applications can be used to provide
data to our system. Note that Google maps and Septima do not correspond to all the external
entities that our application will communicate with.
3
3
h ttps://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller#/media/File:MVC-Process.svg
83
Figure 3
Architectural fit for achieving software quality
One of our core software qualities is maintainability. This quality focuses on creating a
product that is simultaneously easy to support and easy to expand upon. As MVC has a
strong focus on separating different functions of the code into specific classes it should, when
done correctly, enable the developer to create code that is easy to understand and support.
Furthermore, as the code is divided it becomes increasingly simple for multiple developers to
work on it simultaneously. However, the separation of the controller and the view often
complicates matters when updates needs to be made, as one block can seldom be updated
without also updating the other block.
Usability is regarded as our second most important software quality. This is supported quite
nicely using MVC as the logic of the software is completely separated from the front end that
the user sees. This means that it is easy to iterate over the design continuously without
causing any problems to the more fragile backend architecture.
Based on the very limited research we have done on MVC and other architectural patterns it
is difficult to state whether this pattern is the most suitable pattern for achieving the software
qualities that we have defined in our project. This said the positive aspects of using MVC
appears to outweigh its negative forces, thus we believe that it would be a feasible pattern to
use for our project.
84
Reflection
Reflection on using Scrum framework
When we started this project we felt slightly confused and possibly overwhelmed at the task
at hand. As we did not possess previous experience with execution of software projects under
scrutiny of software development frameworks, we felt that the mountain to climb seemed
disturbingly steep. After learning about the various frameworks, we quickly decided on using
Scrum as our approach to solving the task at hand. There was a need to start using elements
of the Scrum framework already in the beginning of the project, without having enough time
to research this project thoroughly. One member of our team took the position as a scrum
master, but he was simply not able to gain enough information to coach the scrum team in the
early stages of the project.
As we gained more understanding of the methodology, we have become more confident in
the execution of the scrum practices and could focus on improving this execution to benefit
the given project in the best possible way. That being said, we couldn’t avoid some hiccups
along the way. Here we discuss some of them.
1. When we originally decided on using scrum as our development method, we assigned
roles to everyone in the team. This included assigning the roles of product owner and
scrum master to members within our team. Some of the members did not have the
necessary background to be effective in their roles and as such the roles were taken
too lightly by the remaining team members causing us all to have more or less generic
developer roles. This resulted in a lot of uncertainty in terms of how the product
should be developed, which created long passionate discussions on what technologies
to use, what was in scope, how to do billing etc. - As the discussion were not
facilitated in any way they often did not lead to a specific solution causing us to
reenage in the argument the following week. Since the Agile development
methodology relies on coordination, communication and collaboration, it can be felt
on the quality of the deliverables and time management when these tasks are not
performed optimally. Ultimately we feel that that even though we had a scrum master
85
assigned on paper, in reality we felt as if we as a team were never properly managed
causing us to spend too much time on determining the path to follow.
2. Second problem we experienced was tied to a lack of effectiveness of communication
inside our team. The product owner had a particular idea of how a project should be
carried out, but there was a number of instances when the idea of other team members
was not identical. Oftentimes, development team did not have the full overview of
what the final product should look like, and when a final implementation was made, it
didn’t match required specification.
3. In addition to this, we felt like the practices that scrum requires were initially forced
and were limiting instead of aiding us. This might have been due to lack of
experience, or due to adhering to scrum practices too strictly instead of fitting them
onto the team.
In a more realistic scenario we would have had a more experienced coach, a product owner
closer to the customer, and larger number of developers. This would have enabled a greater
certainty of the backlog items, and in general more alignment in terms of ideas than we saw
when we created the project.
Software qualities
As we got further into the project and got increasingly aware of the task at hand we got
increasingly uncertain to whether we had prioritised our software qualities correctly. There
was an increased belief in the group that more attention should be put into ensuring that
security of the final product should be our top focus when it comes to qualities, however as
we originally rated it as our least prioritized quality we decided to keep it at that to reflect our
assumptions in the beginning phases of the project. It was generally difficult to decide on
prioritizing the software qualities. And as we went through our project we often felt the need
to pivot our original assumptions.
Legal aspects
One of the problems we encountered during the project was the legal aspect of our solution.
The case description “Smart Parking for Smart Cities”, that originated the interest into
solving the parking situation in Copenhagen, does not mention any legal requirements.
86
During the research period of the project, we identified that Copenhagen is divided into five
distinct zones each having its own set of regulations and laws that need to be respected. In
addition to this, there are only a few organisations that are allowed to operate within the
parking industry. Taking into consideration that these companies are competing over
proprietary rights for parking lots, the realistic chance of creating a partnership with all those
companies and being given access to their API in order to integrate their billing system is
slim. In a situation such as this, our solution would be restricted to suggesting parking options
only for free parking lots.
Last but not least, we have to address the amount of learnings that resulted from this project.
Even though we were unsure and insecure in the beginning, we have picked up on the right
practices quickly. Had there been more time and other resources available for the project, we
strongly believe that we could actually deliver a valuable solution for the parking situation in
Copenhagen.
87
References
1. B
erteig, M. (2015). 9 Agile Estimation Techniques. Retrieved December 14, 2017, from
http://www.agileadvice.com/2015/10/13/agilemanagement/9-agile-estimation-techniques/
2. Best Practices for Agile/Lean Documentation. (2017). Agilemodeling.com. Retrieved 14
December 2017, from
http://www.agilemodeling.com/essays/agileDocumentationBestPractices.htm
3. Boehm, B. (1986). A spiral model of software development and enhancement. ACM
SIGSOFT Software Engineering Notes, 11(4), 22-42.
http://dx.doi.org/10.1145/12944.12948
4. B
oehm, B., & Hansen, W. J. (2000). Spiral Development: Experience, Principles, and
Refinements. https://www.sei.cmu.edu/reports/00sr008.pdf
5. C
heckland, P., & Poulter, J. (2006). Learning for action: a short definitive account of soft
systems methodology and its use for practitioner, teachers, and students. Hoboken, NJ:
Wiley.
6. C
ohn, M. (n.d.). Planning Poker: An Agile Estimating and Planning Technique. Retrieved
December 14, 2017, from https://www.mountaingoatsoftware.com/agile/planning-poker
7. C
onrad Weisert (2003) “There's No Such Thing as the Waterfall Approach! (and There
Never Was), Information Disciplines, Inc., Chicago 8 February, 2003.” Waterfall
ww.idinews.com/waterfall.html.
Methodology: There's No Such Thing!, w
8. E
dwards, R., & Holland, J. (2013). What is qualitative interviewing? London:
Bloomsbury.
9. Idris, M., Leng, Y., Tamil, E., Noor, N., & Razak, Z. (2009). Car Park System: A Review
of Smart Parking System and its Technology. Information Technology Journal, 8(2),
101-113. http://dx.doi.org/10.3923/itj.2009.101.113
88
10. ISO - International Organization for Standardization. (2017, August 16). Retrieved
December 14, 2017, from h ttps://www.iso.org/standard/35733.html
11. Iversen, Mathiassen, & Nielsen. (2004). Managing Risk in Software Process
Improvement: An Action Research Approach. MIS Quarterly, 28(3), 395.
http://dx.doi.org/10.2307/25148645
12. P/S, S. (2017). Databerigelse. Septima. Retrieved 14 December 2017, from
http://www.septima.dk/databerigelse
13. Papajorgji, P. (2016). Software engineering techniques applied to agricultural systems (p.
61). Springer
14. Parking in Copenhagen. (n.d.). Retrieved December 14, 2017, from
https://international.kk.dk/artikel/parking-copenhagen
15. Problem domain. (2017). Definitions. Retrieved December 14, 2017, from
http://www.definitions.net/definition/problem%20domain
16. Pullola, S., Atrey, P. K., & Saddik, A. E. (2007). Towards an Intelligent GPS-Based
Vehicle Navigation System for Finding Street Parking Lots. 2007 IEEE International
Conference on Signal Processing and Communications. doi:10.1109/icspc.2007.4728553
17. Schwaber, K., & Sutherland, J. (2013). The Scrum Guide. Scrum.Org and ScrumInc.
Retrieved from https://www.scrumguides.org/docs/scrumguide/v1/scrum-guide-us.pdf
18. Semi-structured Interviews. (n.d.). Retrieved December 14, 2017, from
http://www.qualres.org/HomeSemi-3629.html
19. Shoup, D. (2006). Cruising for parking. Transport Policy, 13(6), 479-486.
http://dx.doi.org/10.1016/j.tranpol.2006.05.005
20. Sommerville, I. (2016). Software engineering (10th ed.).
21. The Scrum Guide. (n.d.). Retrieved December 14, 2017, from
https://www.scrum.org/resources/scrum-guide
89
22. Wang, H., & He, W. (2011). A Reservation-based Smart Parking System. 2011 IEEE
Conference on Computer Communications Workshops (INFOCOM WKSHPS).
doi:10.1109/infcomw.2011.5928901
23. What is Incremental model- advantages, disadvantages and when to use it? ISTBQ Exam
Certification:
http://istqbexamcertification.com/what-is-incremental-model-advantages-disadvantages-a
nd-when-to-use-it/
24. What is Waterfall model- advantages, disadvantages and when to use it? ISTBQ Exam
Certification:
http://istqbexamcertification.com/what-is-waterfall-model-advantages-disadvantages-andwhen-to-use-it/
25. Winston W. Royce (1970) Managing the development of large software systems. August
1970 IEEE WESCON, The Institute of Electrical and Electronic Engineerins, p. 1 – 9
Available at http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf
90
Appendix.
Table of content:
Appendix A: Semi-structured interview 1
2
Appendix B: Semi-structured interview 2
7
Appendix C: Semi-structured interview 3
11
Appendix D: Class diagram - detailed
14
Appendix E
15
Appendix F - Flowchart 1 / Test case #2: User registration
16
Appendix G - Flowchart 2
17
Appendix
1
Appendix A: Semi-structured interview 1
I = Interviewer
D = Interviewee / Driver
I: Can you please tell us how your general driving routines are? (how often do you drive, where
to, daily commutes?)
D: Basically I have to drive from home to school sometimes, home to my girlfriend, and if I have
to go into the city it is a mess to park, because you have to find your own spot and that is a
difficult task within central copenhagen. If it is within the outside areas maybe it is a bit easier,
but still it may get tough if their are private parking spots so yeah.
I: For your general driving it is not a problem, like when you park next to your home or next to
your girlfriend’s?
D: Yeah because they have private parking like the buildings parking so you don’t have to think
about how am i going to park they have a certain ticket you put it in the dashboard, and then that
is it you park.
I: Okay, cool. How often do you drive into central copenhagen?
D: Mmmm, depends a lot, two times a week approximately.
I: And how would you describe the parking situation in those areas? Liken when you drive into
central copenhagen?
D: Difficult, considering you are usually not able to find a parking spot and if you do they are
mostly private and then you have to pay a lot, but still you cannot check for all of them if they
have or not free spots for example there are the ones at malls, shopping malls right, and they do
Appendix
2
have some sensors checking how many spots they have available or not, but they cannot do that
in the inner city where there are no private parking, i mean it is private, but it is outside so they
didn’t add any sensors, so you just go by luck and if you find something that is it and if you don’t
you get stressed and nervous due to the traffic jam.
I: How much time do you think you spent when you are looking for spots in the middle of the
city?
D: Mmmm, between 10 to 15 min. Maybe, it takes a lot actually.
I: Do you have a parking story that you would consider your nightmare story when you are
driving around and finding a spot? Maybe it is going to be as bad as this time.
D: Actually, I do. I don't know how funny it is or not. But usually there are those streets with
public parking and you cannot find a spot at least not in the evening when everyone is coming
home, and then there was this guy he parked basically on two spots, more or less, and then there
was half a spot and then in COpenhagen it is quite common to have it on the borders that yellow
line that indicates that this is the end of the parking area or like how much you can park, how far
you can park to the intersection, and the funny fact is I went maximum half a meter more than
that and I had to pay a fine of more than 500 kr., so they should somehow mark them, and take
an approximation how to do it, because the guys that are giving the tickets they don't care.
I: What about the actual process of finding a spot, do you have a similar story for this process
too?
D: Yes, I would say to because I ended up to search for like 20 min. In Copenhagen in the
central area close to kongens nytor, and it was funny because I searched for 20 min. So I was
just moving around and I couldn't find anything so I had to go into those parking houses and
then they are usually qpark and I had to pay 48 kr. For an hour, and that was funny because I
didn't have any other opportunity and that is because on the street the spots get easily occupied
if you are not like focused around, looking all the time and you end up paying a ton because you
don't know which spots may be free.
Appendix
3
I: And maybe you also dont know all the rules about the system?
D: That is true, there are a lot of rules and a lot of companies that manage those parking areas,
like five companies that keep track of them, they don't even keep track, they just want you to pay
and that is it. And the public sector is even worse, you don't even have an app, for most of them
you have to pay with cash or card.
I: What are your general concerns in regards to parking?
D: Yes, but as I mentioned price, because I ended up paying a private company, because I
couldn’t find a spot outside. I mean there the private spots on the street or outdoor they are
usually cheaper, they are not that expensive, because I wasn’t able to find a proper or normal
one. So it would be price and how fast I could get a spot and find out where is a free spot. Which
no company has. They have some approximation, but it is not like they predict exactly where you
have a spot in what area. It is actually only one company that does that the rest you just add the
code, and you add it when you are already in the parking spot, but they do not mention anything
about availability. Parkman has some percentages about availability. But not in the specific
location.
I: So basically price and ease of use are concerns. What about proximity to location, how much
of a concern is that versus price. Like are you okay with walking 500 meters.
D: Naahh, okay it depends. If I would spend less time on finding the parking, 500 meters is not
that much. I could still be happy with that. Instead of moving around with the car and being
stressed at least I know I am close and I have my parking and I can walk. 500 meters are just fine
to walk.
I: We are in the process of designing a parking app for the city of Copenhagen that would help
you find and locate available parking spots in the vicinity of your destination.
I: What is your general feelings about creating such a service?
D: Just do it. Every driver in Copenhagen needs it, if you could connect it in the public sector
that would be really great. Because the public sector is the worst one and then find a way to
Appendix
4
connect it with the other apps I don't know, make an agreement with them, because they are not
that good either, except for the fact that you can book it on the phone now.
I: How could you see an app like this change your life as a driver in Copenhagen? (will they
alleviate some of your concerns)
D: I think change my live is…. Haha
I: Let us think about the driving aspect of your life.
D: Okay then, from what you told me it seems like I would have more free time to drink my
coffee, before I get to work or school, but of course there would be some problem with the app
as there always are. But I hope that it would help the sector in copenhagen.
I: Are there sometimes where you sit at home and think about going to this cafe in the city
center, but then dread the parking situation.
D: Yes, and then you end up taking the metro and paying even more. Haha, probably not more.
But yes I can see what you mean. You don’t want to go because you are scared of being locked
in a traffic jam and then the horns from everyone because you find a small spot and you are
trying to put your car there and everyone is anxious around you. It is not fun.
I: So you mention this thing with the horns, do you feel that people are very aggressive when you
are trying to find a spot?
D: Of course, in some concern I would be as well, but then it is understandable due to the lack of
spaces and the lack of knowing where you can or what areas are more freely available. And then
everyone go in a certain area because as you said maybe I would to go to a cafe and 20 other
people are going at the same time as I am. And then you mentioned something about proximity,
so all of us could park close to the cafe, but not in that place and therefore no jam and I suppose,
no nerves or horns.
I: Do you ever feel like an accident is more likely to happen because of the parkings.
Appendix
5
D: Accident is too big of a word, but a small collision yes, where to people crash at slow speeds,
they are fairly common. And a lot of them happen due to the rush because I put it in the park
right now and somebody could steal my place. Actually that happens quite often in IKEA.
I: So maybe even IKEA could use something like this?
D: Well they actually have sensors, but it is just so full of people there, mainly in the weekends,
so it can be really hard to find a place to park.
I: And they mainly have sensors for the general…?
D: For each parking spot.
I: But are you guided to a specific spot?
D: No they have some lighting at the top of the wall, like on the ceiling. Where there is a car you
have a red, and free spots have a green.
Appendix
6
Appendix B: Semi-structured interview 2
I = Interviewer
D = Interviewee / Driver
I: Hello, thank you for allowing us to conduct this interview. Now I would like to ask you about your
general driving routines. How often do you drive?
D: Hi, well... I don’t drive very often, but usually when I do it's to school, to university and sometimes it's
for leisure such as going out in the city, or going to some sort of museum or park or whatever.
I: Okay. But you wouldn't say that you commute daily to university or to school or to work?
D: Yeah, not that often because driving in the morning is sometimes stressful because of all the traffic and
the time pressure, sometimes it's just easier to just take the public transportation.
I: So would you say that during peak hours, public transport is better than driving yourself?
D: depends on the route, some buses are a total nightmare in peak hours so it depends.
I: Okay, I guess it depends on the situation itself. But general I guess that you prefer driving rather than
public transport.
D: Yes, it's more convenient.
I: Okay. Now let's talk a little bit about the parking situation where you go. You said you go to university;
do you have an easy time parking there?
D: Yes, they have a yearly pass that I can buy and then I can just park... so it's really not a problem but I
do have a struggle when I go somewhere in the city.... for.... in my own time, then it’s.... sometimes it's
really hard to find a parking lot and it's really hard to find one that is not extremely overpriced.
I: *laughs* would you say this is the case with the central areas of Copenhagen or like... bigger?
D: Definitely, central area because the prices can get crazy high, above 100 kr. per hour and then they just
accumulate over hours and it costs a fortune.
Appendix
7
I: Yeah, yes... so would you be... so in the case with the city centre, even though you have to pay so much
do you have an easy time finding them or?
D: It's also a struggle because there are some parking areas that are not that expensive to park, but are
usually already taken, so at some point I just end up driving around for a good half an hour and then not
finding it and having to go to a very expensive area... so.... yeah....
I: Oh, yeah.... I guess that’s the worst situation, well I guess you have already answered my next question,
because... the time spent looking for a parking spot how high can that go? #
D: well... that was one of those cases when I have been looking for a parking lot for I would say.... even
longer than half an hour, and it was a weekend, I think, and of course all the spots were taken and then I
had to go to, I think, the most expensive area, it was right next to the central square, and I had to park the
car for at least 4 hours and I paid over 500 kr. just for the parking.
I: okay... that sounds like way too much, would you say this was the worst experience you had?
D: yeah, personally yes.
I: that definitely sounds like something very bad. Do you think the situation could have been improved
somehow?
D: I would have been really nice to have somewhat of map indicating the parking lots, because I don't
drive that often so I don’t have the knowledge of where all the parking areas are so I would like to have
an overview of where my possibilities are and maybe even the price range, that would be really
convenient.
I: Yes, that sounds like quite the feature. Do you have any general concerns when it comes to parking?
Are you... do you care about the type of parking: parallel parking, time restrictions, stuff like that?
D: I mean of course, the easier the better, but it's not going to scare me away if I have to parallel park.
I: All right, so as long as you know that you will have a parking spot you will generally go with it
regardless of paid, not paid?
Appendix
8
D: Paid or not paid not that big of concern but it's more how much it costs, because I am pretty open to
paying a small sum per hour if I have to park for a few hours or like a limited amount of money for the
whole day like some places do. But I would not be comfortable paying a really big amount.
I: Yes of course. It wouldn't make sense.
I: Okay so, my team and I are in the process of designing a parking application for the city of Copenhagen
and we want to create an app that helps you find and locate available parking spots near your destination
or near your location on the map.
D: oh... nice.
I; Would you use an app like that?
D: Oh yes, definitely.
I: Would you be interested in... selecting the parking spots yourself or would you trust the app to give one
to you?
D: .... depends on the efficiency of the app, because if it works really well then I am more comfortable
with that, for example, at Ikea they have those green and red lights that indicate if the parking spot is
available and more often than not they are accurate so I really having that guidance system rather than
driving up to the spot and looking out because there are sometimes really small cars that park, and you
think the spot is free but then you just drive up and you see it's taken and it's a whole new feeling of
disappointment *sigh*
I: *sigh* yeah, yeah, I understand you... but yeah.... any suggestion or improvements that you would like
to see from a parking app?
D: it would be nice to have the map, preferably... with multiple parking spots in the area or how many
there are... maybe have a certain range... already there, on those parking spots, indicating the price range
or if it's free or not. Maybe even, how many spots are available at the moment if it's possible, I don’t
know how far that technology goes.
I: would you be... do you think it would be better if the app showed you, for example, you have 20 spots
available or if the app showed you, 20 percent empty spots.
Appendix
9
D: definitely in spots not in percentage.
I: so knowing exactly or approximately how many spots are available is better?
D: yes, I am not a cyborg I don’t do percentages.
I: *laughs* okay. I think that is it. Thank you for your time.
D: Goodbye.
Appendix
10
Appendix C: Semi-structured interview 3
I = Interviewer
D = Interviewee / Driver
I: Can you please tell us how your general driving routines are?
D: Hello! Well, because we live in Denmark, and in Copenhagen the driving is a bit expensive, and as an
international, I definitely drive less in Copenhagen than in my home country. Also.... it's usually just
getting to work or getting to the city centre and that's about it.
I: Yeah, but how often do you drive?
D: A.... it depends a lot on what I have to do that week or that day, but generally I would say on average
like.... 3 times a week, probably... 3 - 4 times a week
I: Back and forth..
D: Yeah, yeah, obviously back and forth. I am not just going to leave my car there
I: Makes sense. How would you describe the parking situation in the areas that you generally drive to?
How easy is it to find a spot or how much would you spend looking for a parking spot?
D: Well... whenever I go to work that's incredibly easy, because the workplace has its own parking spots,
so I know for a fact that if I go there I will have more than enough parking spots. Because, actually, there
are less people with cars in the entire building then there are parking spots in the parking lot. So, that's
amazing. But if I have to go to university or I have to go somewhere else, it's usually a real pain...
I: Then do you have a parking story that you would consider horrible?
D: A.... yes, there are a few. For example, I remember one time I went out shopping and I took my car to
the city centre and I tried to park somewhere in Kongens Nytorv, I think. And I remember.... I remember
looking around... I remember finding a parking spot that was.... it didn't look like it was one of those paid
parking lots, so I imagined it was simply free, I looked around like it was legitimate to park there by all
driving laws. And then I didn't see any signs from any company owning that parking lot and then I just
Appendix
11
left. Once... once I came back I saw a fine for like 500 krr and no way to repeal it, because yeah.... And I
remember that one time I actually... it was EasyPark I think... probably...I think it was EasyPark the guys
who owned the parking lot and I tried calling them and I tried asking them why was there no sign there or
anywhere else to say that parking spot was paid... and yeah, they said that that's the law and that's it,
nothing they can do about it.
I: Oh okay, so what would you say was the most irritating aspect of the whole story?
D: Not having any idea that, that parking spot is paid even though there is no sign or what so ever around
to say it.
I: Mhmmm, and how could this experience have been improved?
D: Aa.... *sigh* well... I don't know. Maybe just have some signs, whenever there is a paid parking lot
there should definitely be a sign there and I know that with paid parking lots there is also that ticket booth
and I know that nowadays there are making phone apps for that. But the thing is with phone apps.... when
you log onto their apps and try to pay for it, they either tell you that you are in a zone that does not belong
to them either you are in a zone that belongs to them.... but the zone is the entire Norreport region, so I
have no idea if this particular street is owned by them or is free or... I have no idea. It feels like you need
to be a good driver, or to have been a driver around Copenhagen for a really long time so you just get the
hang of it and then you get used to it.
I: What are your general concerns in regards to parking?
D: .... Whether it's legal or not. *laughs*
I: *laughs*
D: Well... .most of the times, in Copenhagen you have some pretty weird laws in terms of parking, for
example I know that if there is no continuous lien on the middle of the road, and you try to park next to
the edge of the road, there is a present distance from the edge of the intersection where you can park, and
usually this distance is marked by these small yellow triangles, but the thing is, those were literally
painted on the concrete a few years ago and they just get removed or washed away by getting used or by
rain or stuff like that. So it's just knowing where you are allowed to park and where you are not allowed to
park, that's my biggest concern.
Appendix
12
I: Well, I can tell you that we are in the process of designing a new parking app for the city of
Copenhagen that would help you find and locate available parking spots in the vicinity of your
destination. What are your general feeling about having such a service?
D: *sigh* my immediate concern would be how would that work.... but that's up to the app to decide, if it
does what you say it does, then yeah sure I am all up for it. I would use it, or at least give it a try.
I: And how could you see an app like that change your life as a driver in Copenhagen.
D: I imagine I would get less infuriated and less stressed about not knowing whether what I did was legal
or not and it would reduce a lot of the stress of just waiting to see if you got a ticket or not. *laughs*
I: Okay, thank you for the interview.
D: Thank you.
Appendix
13
Appendix D: Class diagram - detailed
Appendix
14
Appendix E
Appendix
15
Appendix F - Flowchart 1 / Test case #2: User registration
Appendix
16
Appendix G - Flowchart 2
Appendix
17