Requirement Specification
|
|
Document |
Requirement Specification |
Specification name |
Tukko1.1 Doc |
Author: |
Jesse Anttila |
Version: |
1.0 |
Date: |
22.2.2024 |
Introduction
As part of Jamk Future Factory IT 2024, our team's task is to implement additional features and modifications to Tukko - Traffic Visualizer, developed by WimmaLab's IoTitude. This service provides various types of information about current and past traffic data in Finland. We have decided to call this new version Tukko 1.1.
Our ideas of improvement include upgrading the user experience through better accessibility, general nice-to-have features as well as expanding the scale of the service to Sweden.
Client
Our client is Combitech Finland, who were also the client of the original Tukko service. They are now collaborating with Jamk, providing us students with an interesting team project for our Future Factory IT course.
About the author and project team
We are ESCapes, a team consisting of five Jamk IT students with different skill levels and experiences, but an interest in IT and learning is something we all have in common. Read more about us on our team introduction page.
Short description of service/solution
As mentioned above, our solution is to enhance the Tukko user experience by increasing and upgrading accessibility, for example by providing a color blindess mode and enhancing the already implemented dark mode to be more easier to look at. One of our other objectives is adding an option for Swedish localization, which should be beneficial for all current and future Swedish-speaking users.
Business requirements / goals?
ReqID |
Description |
BUSINESS-REQ-0001 |
The service must show current traffic data in the predetermined area |
BUSINESS-REQ-0002 |
The service must have an user-friendly interface that is both easy to use and navigate |
BUSINESS-REQ-0003 |
The service should be easy to maintain |
BUSINESS-REQ-0004 |
The service is expanded to show data from Sweden |
BUSINESS-REQ-0005 |
The service is well documented |
BUSINESS-REQ-0006 |
The service supports future development |
Stakeholder map
Stakeholders and profiles
Stakeholder / profile |
Info |
Motivation |
Combitech Finland |
The client of the assignment |
Wants upgrades to the original Tukko |
ESCapes |
The team responsible for Tukko 1.1 |
Wants to gain glory from Future Factory IT |
Jamk |
School organization which organizes Future Factory IT |
Collaborates with Combitech to make this project assignment happen, mentor team supports ESCapes |
Product Owner |
Middle man between customer and development team, belongs to Jamk |
Wants to have a successful FF project |
End user group 1 |
Persons aged 15-70+ |
Uses the service regularly and benefits from it's information |
End user group 2 |
Persons aged ~20-65+ |
Sometimes uses the service for work purposes |
End user story example 1
Regular user Riku wants to take his fiancée out for dinner. Neither of them like getting surprised by a sudden road work area just before reaching the restaurant, so Riku opens up Tukko 1.1 to check for the best possible route. It looks like his initially planned route has just recently had a car accident, and so the traffic there will be slowed down for a while. Riku then plans a new route and they make it to the restaurant without issues.
End user story example 2
Delivery driver Delilah must deliver an important package to one of her customers as soon as possible. This extra fast delivery job requires her to plan her travel route efficiently. She remembers a colleague mentioning Tukko 1.1 once, saying how easy and useful it was for checking the current traffic speeds around the whole country. Delilah decides to try it out and finds out that out of three different routes she could take, route 3 would theoretically be the fastest according to the most recent traffic data.
Customer needs
ReqID |
Description |
CUSTOMER-REQ-0001 |
As a user I want to easily find a specific place on the map |
CUSTOMER-REQ-0002 |
As a driver I want to see road conditions |
CUSTOMER-REQ-0003 |
As a Swedish user I want to see traffic data from Sweden too |
CUSTOMER-REQ-0004 |
As a user with color blindness, I too want to see the service |
CUSTOMER-REQ-0005 |
As a user I prefer a dark mode with more pleasant colors |
CUSTOMER-REQ-0006 |
As an older Swedish user I would like to read reports in Swedish |
CUSTOMER-REQ-0007 |
As a user I want to collect data for my personal use |
Customer Journey paths in Service/solution
Customer journey path as PlantUML Statemachine -diagram
Preliminary User Storys
User Story ID |
Description / link to issue |
US001 |
As a user, I want to be able to compare different LAM stations side by side #58 |
US067 |
As a user, I want to compare two separate LAM stations real time data side by side on one view for both directions. #140 |
US068 |
As a user, I want to compare two different LAM stations both directions data-analytics on the same window or graph. #141 |
US003 |
As a data analyst, I want to export data to csv from the database #60 |
US010 |
As a user I want to export history data from specific dates #66 |
US017 |
As a developer, I want to regularly scan the codebase and dependencies for known security vulnerabilities and address them promptly #73 |
US018 |
As a developer, I want to enforce secure coding practices, such as input validation and output encoding, to prevent common security vulnerabilities like cross-site scripting (XSS) attacks #74 |
US045 |
As a user, I want the dark mode colors to not pop out as much #101 |
US046 |
As a user with color blindess, I want the web app to have sufficient color contrast between text and background elements, so that, I can easily read and understand the content #102 |
US048 |
As a user, I want road condition reports #104 |
US052 |
As a user, I want to search location by name #108 |
US053 |
As a user, I want to see traffic situation in Sweden #109 |
US058 |
As a swedish person I want to use the user interface in my native language, Swedish #114 |
US060 |
As a product owner I want the testing to include exploratory testing #116 |
US062 |
As a product owner, I want the WIMMA Lab / IoTitude branding changed to development team's and JAMK's branding. #133 |
Selected Use Cases
Preliminary MockUp-prototype layouts for solution/service
System requirements
RequirementsID |
Description |
SYSTEM-HW-REQ-0001 |
Linux 20.0 LTS or newer |
SYSTEM-HW-REQ-0002 |
The main services must be at least duplicated N + 1 |
SYSTEM-HW-REQ-0003 |
Server memory capacity> 16GB |
SYSTEM-HW-REQ-0004 |
Intel / AMD x64 processor |
Constraints and standards that affect on service design
ReqId |
Description |
CONSTRAINT-REQ-S00001 |
The service must follow GDPR guidelines |
CONSTRAINT-REQ-S00002 |
The service must follow proper and secure coding practices |
Service primary features and functionalities
Priorization of essential features / functions
- P1 = Mandatory
- P2 = Required
- P3 = Nice to have
Functional requirements of the service
ReqID |
Description |
Affected feature? |
FUNC-REQ-C0001 |
User is able to compare traffic statistics between any two LAM stations |
FEA101 |
FUNC-REQ-C0002 |
User is able to search for a specific city, area etc. by using a search bar |
FEA109 |
FUNC-REQ-C0003 |
User can export past traffic data to .csv format |
FEA201 |
FUNC-REQ-C0004 |
User can specify the timeframe of data they wish to export |
FEA203 |
FUNC-REQ-C0005 |
User can change the service language to Swedish at any time |
FEA304 |
Software / service non-functional requirements
ReqID |
Requirement |
Description |
PERF-REQ-0000 |
Response Time |
The gateway service should respond to requests within a reasonable time frame under normal load conditions |
PERF-REQ-0001 |
Throughput |
The gateway service should be able to handle a certain number of requests per second without degradation of performance |
PERF-REQ-0002 |
Scalability |
The gateway service should be able to scale up to handle increased load, either by adding more resources (vertical scaling) or by distributing the load across multiple instances (horizontal scaling) |
PERF-REQ-0003 |
Availability |
The gateway service should be available for use a certain percentage of the time, often expressed as a "five nines" (99.999%) availability requirement |
PERF-REQ-0004 |
Resilience |
The gateway service should be able to recover quickly from failures and continue to function |
Security Requirements
ReqID |
Requirement |
Description |
SEC-REQ-0001 |
Vulnerabilities |
Security performs scans for known vulnerabilities at regular intervals |
Accessability Requirements
ReqID |
Requirement |
Description |
ACC-REQ-0001 |
Visibility |
All content must be viewable by people with color blindness |
ACC-REQ-0002 |
Visibility |
All content must be easily viewable in dark mode |
Quality Assurance
Software architecture, placement view, database description, and integrations
Integrations with other systems
Standards and sources
Name |
Description |
ISO 9241-11 |
Usability standard |
ISO 9001 |
Quality management standard |
TypeScript |
JavaScript with type syntax |
React |
JavaScript library for UI development |
Node.js |
JavaScript runtime environment |
Leaflet.js |
Interactive map tool / library |
Geoman.io |
Geospatial data management tool / library |
Redis |
In-memory database |
MongoDB |
NoSQL-database |
Docker |
Containerization |
Digitraffic |
External data source for Finnish traffic data |
TBD |
Yet undefined data source |