Skip to content

Requirement Specification

Requirement Specification Template 2.0 - 6.4.2021 (NarsuMan)

  • Wimma Lab 2021
  • Version Number 1.5

Topics

Topics in order of appearance

  1. Introduction
  2. About client
  3. About author
  4. Service Description
  5. Stakeholder map
  6. Stakeholders and Profiles
  7. Client's wishes and needs
  8. Identified risks
  9. Selected Customer Stories
  10. Service-Related Customer Paths
  11. Relevant Use Cases
  12. Main Features / Functionalities
  13. MockUp Prototype
  14. Preliminary User Stories
  15. Service System Requirements
  16. Restrictions Affecting the Service
  17. Service Related Equipment Requirements
  18. Requirements related to the service execution environment
  19. Service-defined features / functionalities
  20. Functional Requirements for the Service
  21. Non-functional requirements of the service
  22. Preliminary Service Architecture
  23. Preliminary Service Placement View
  24. Preliminary database description of the service)
  25. Service Integrations with Other Systems
  26. On Quality of Service Assurance
  27. Standards and Sources

Introduction

Jamk (Jyväskylä University of Applied Sciences) offers a course named Future Factory. Jamk Future Factory is Jamk's innovation and learning platform which connects students and working life. At Future Factory course students solve real development challenges which are given by different companies. Jamk wants a service/system where the courses students can easily choose assignments which they are interested in. Service is like a marketplace for companies assignments/projects. Companies can fill out the form where they tell about the project. Then some of the given information will be seen for the students.

Our project task is to design and develop this kind of service/system for the Jamk Future Factory.

About client

The client for the requirements specification is Jamk, and the contact person is Mikko Keskinen. The product is for Jamk's Future Factory consept, especially for the Future Factory course. Mikko Keskinen is one of the specialist of the Future Factory consept. JAMK Future Factory is Jyväskylä University of Applied Sciences' “New Generation Academy” innovation and learning platform that connects students and working life.

About Author

Overflow company's project team which consist of 6 members. Overflow is a virtual company which offers solutions for different development projects.

Service Description

Our purpose is to create service for JAMK's Future Factory - course. Service will be useful for companies, students and lecturers. If companies or private persons have some kind of a project for students, they can place assignments to the service. Then students can choose assignments which they are interested in and service will automatically create teams for the assignments. This is very approachable for employers to give challenges for students and it's great if students could choose what they are interested in. It also saves lecturer's time when they don't have to create teams, manage students etc.

Stakeholder map

For the project we have made a stakeholder map:

Stakeholders and profiles

The profile / stakeholder descriptions below are for guidance.

Stakeholder group/Specific profile Description About Motivation
Onni Opiskelija Student 1 Represent stakeholder group Students
Keijo Gona Student 2 Represent stakeholder group Students
Jarmo Jakaja Client 1 Represent stakeholder group Clients
Tinna Toimari Client 2 Represent stakeholder group Clients
Pienpanimo Kanuuna Client 3 Represent stakeholder group Clients
Oliver Ohjaaja Teacher/Instructor Represent stakeholder group Teachers/Instructors
Overflow Developer Developer Represent stakeholder group Developers
Heikki Hakkeri Evildoer Represent stakeholder group Evildoers
Ulla Ylläpitäjä Maintenancer Represent stakeholder group Maintenancers
Jamk Development client Represent stakeholder group Development clients, Future Factory

Client's wishes and needs

Consider what kind of wishes / needs the end user has regarding the service? Interview people in a real situation?

RequirementID Category Description
CUSTOMER-REQ-0001 Customer Requirement Logging in to the service requires to take different data security regulations into account.
CUSTOMER-REQ-0002 Customer Requirement FF-course is held five times per year, most likely twice in both autumn and spring semesters and once during the summer.
CUSTOMER-REQ-0003 Customer Requirement The project teams should consist of students from different fields.
CUSTOMER-REQ-0004 Customer Requirement The students choose the teams by themselves according to their interests.
CUSTOMER-REQ-0005 Customer Requirement The skills required in the project are shown in the project information.
CUSTOMER-REQ-0006 Customer Requirement Assignments/projects can have multiple teams providing their own solutions.
CUSTOMER-REQ-0007 Customer Requirement One project group can have up to 30 members and one team consists of about 5 members.
CUSTOMER-REQ-0008 Customer Requirement FF-Marketplace creates the teams automatically when enough students have signed to a team.

Identified risks

What are the risks associated with product development, product markets, potential competitors, resources? These are good to identify at an early stage

RiskID Category Description
Risk-0001 Schedule problems This could occur either by the developing team and their actions or due to the clients demands (JAMK).
Risk-0002 Technical difficulties Such as data security and information privacy (consider GDPR) + system implementation and software integrations. Frequent changes in the requirement could also be part of a technical risk.
Risk-0003 Poor quality code This is somewhat related to technical difficulties, but deserves it's own description. Poor quality code can occur for a number of reasons, for example when projects are underestimated and developers rush to complete the iteration. Poor quality code could also mean that the code is difficult to read (affects maintaining the product later by other developers) or the code could be rushed and released without testing (bugs).
Risk-0004 Management issues One example could be doing some procedures in the wrong order in the development process and thus making the development process harder for ourselves.
Risk-0005 End-user Engagement This risk is where a product is released to the market but the users are resistant to change, or there is conflict between users. Users of the software should actually adopt the software.
Risk-0006 Lack of Ownership While the early stages of the software development are rather clear regarding ownership, the owner of the product needs to maintain it in the future. The owner should be established (JAMK?).

Selected Customer Stories

Customer Story 1

Onni Opiskelija: (Motivated to find a team)

As a student I want different required applications and services to be easy to use. JAMK has quite many different services that are required, such as Moodle, Peppi and Office 365. Adding one more to the list adds a bit more workload to students, as we might have to manage different credentials and try to follow these services. I also think that some of the JAMK's services aren't that good in mobile applications.

I'm quite accustomed in using different mobile applications. I think it's a fun idea to make kind of a Tinder app for students and clients/employers for creating matches and teams. The applications also gives some freedom of choice to the students and we aren't necessarily forced into a project we might not be interested at all.

I must say that I like the possibility to login to the service via our school Office365 credentials. This removes one thing I don't like about using multiple services (multiple credentials). This also helps in information security.

The process of finding project openings and finding teams is made possible with either a list option or a swipe mechanic, which some users might prefer when browsing with their phones. Choosing a team after finding the suitable one is also made easy, you just press the green or red button. I also got a clear confirmation when I was matched with a team, so I know I got the process right.

I'm very happy about the application and would like to see such fun usage in other courses as well.

Customer Story 2

Tinna Toimari: (Private client/employer)

At first I was a bit on the back of my feet when I heard there would be an application required finding a team for my needs. This is a new method for team finding and I was a bit hesitant of how it would work.

However, the process of acquiring credentials for the service was made easy and I got them to my email that I provided on the Future Factory form when I first contacted JAMK.

As a client of Future Factory, my motivation for using the service is to make the process of finding applicants for my assignment easier for me. I also prefer using anything else but email for monitoring the team creation status, for example to see how many possible students are interested in my assignment, so I can make changes to my "offering" to make the assignment more interesting to students. I would very much like some sort of an automation process for getting a notification when the team is complete and lucky for me this option was provided in the application.

Customer Story 3

Oliver Ohjaaja: (Teacher at JAMK)

As a teacher of JAMK and project instructor of teams I was first a little suspicious about getting new application additionally with all of other applications to handle. After i got used to application, I understood that this application is very helpful for me to do my job but also students have been very excited about this.

For students this is absolutely more meaningful than for me, because they can have an impact on what kind of project they can work with.

For me this application saves some time as project instructor, for example I don't have to build teams from students, application will handle that by itself. In its entirety this kind of application is very useful for JAMK.

Customer Story 4

Pienpanimo Kanuuna: (Potential client/employer)

As potential employer I was very excited when I heard that this kind of application was going to launch. I have thought for a while, that it would be pretty cool to get part of something like this and get to known with local students.

Because of this application I can take a look of projects that other companies have offered and what kind of projects students will sign up for. I'm also interested about projects that JAMK offers. This way I can get some hints for me what kind of projects students are interested and I can maybe do some adjustments to project ideas I was thinking.

I think because of this application, next time when JAMK's Future Factory will be organized, I will muster up and sign up with my project idea!

Customer service path

FF-admin adds assignment

FF-admin adds assignment

Student full journey

Student full journey

*4.Example of Team roles test: https://www.123test.com/team-roles-test/

Student in FF-marketplace

Student in FF-marketplace

When team is full

When team is full

Relevant use cases

uml diagram

Use case Section Feature
Use case 1 - Browsing assignments Project assignments
Use case 2 - Reserve spot in team Project assignments
Use case 3 - Authenticate and confirm spot selection by email Project assignments
Use case 4 - Add assignment Project assignments
Use case 5 - Manage project team Project assignments
Use case 6 - Login / authentication Authentication

Main functionalities / features

  • Main Functionalities
    • FF admins and coaches can log in to the service
    • FF admin can add new assingments to the service
    • Student can use service without registering a new account(?)
    • Student can filter the assignment search to their liking
    • Student can reserve a spot in a team & project to join
    • Teacher can keep track of how the teams are filling up
    • Power automate flow gets the team data after assignment teams are filled

User Interface as MockUp

FFmarketplace frontend

There were done some changes on the plan of the popup, this is the new plan (on the mockup there is the old one):

Admin frontend

Some captures of the admin panel plan.

These plannings/designs are directional.

Preliminary user stories

  • User Story: [As a student I want to see what assingments are available] ()
  • User Story: [As a teacher who oversees assignments I want that the service tells me when a teams are formed] ()
  • User Story: [As a student, I want to sorth the assignments based on what skills and roles are needed] ()
  • User Story: [As a client, I want to specify what kind of students my assingment needs and how many students I need. Fields/roles] ()
  • User Story: [As a client, I want to create advertisement that attracts right type of students.] ()

System Requirements from technical perspective

System requirements are commonly described as high level requirements, which are used to define the system as a whole. Different requirements of system can be gathered from several point of views. Common way is to describe system as collection of different functionalitys. There is also a need to understand system from quality point of view as non-functional requirements. Non-functional point of view consist of serveral areas from performance, security, scalability and more.

Still functional and non-functional requirement perspectives are not enough to describe a system. Because there is a needs to cover system as whole we have to define a technical environment for service. Commonly technical requirements are defining environment which is required to execute and run service proper way. Some of non-functional requirements are linked with technical requirements (eg. performance). By defining proper environment is important part of requirement gathering process. Still it is advisable to identify purely the technical requirements(or limitations) of the system and record them also as part of the requirements specification. Remember to avoid excessive concentration on the describing of technical requirements may not be recommended. Further design process can reveal more needs for technical environment.

In this section, it is worth considering, for example, the following

  • How is the service produced? As a SAAS / PAAS / IAAS / HOSTED service etc
  • Whether to use Cloud Services as part of the solution or to utilize own servers
  • Is it the so-called A hybrid service that utilizes multiple separate services
  • How must the service be available 24 / 7h 100%? So is that even possible :)?
  • What kind of SLA is prepared for the service?
  • How much does the production of the service cost?
  • What kind of data storage / archiving needs are related to the service?
RequirementID Category Description Related Functionality
SYSTEM-HW-REQ-0002 System Technical Requirement Palvelun tärkeimpien palvelujen on oltava vähintään kahdennettu N+1
SYSTEM-HW-REQ-0003 System Technical Requirement Palvelimen muistikapasiteeti >16GB
SYSTEM-HW-REQ-0004 System Technical Requirement Prosessori Intel/AMD x64
SYSTEM-HW-REQ-0005 System Technical Requirement Palvelimen fyysinen sijainti on oltava kotimaassa (Suomi)
SYSTEM-HW-REQ-0005 System Technical Requirement Verkkoyhteyden nopeus >100MB/s
SYSTEM-HW-REQ-0005 System Technical Requirement Laitekaapin suositeltava koko 1m X 1m X 2m

Avainsanat: pilvipalvelun tuotanto, Palveluiden hallinta, SLA

Constraints and standards

The implementation and use of different software / services is often governed by laws and regulations. The requirements required by these are usually recorded as restrictions and their impact often affects the implementation of the entire software system. For this reason, they are worth identifying and finding out in a timely manner because of the impact may be quite crucial in the long run.

Id Vaatimuksen kuvaus kategoria Vastuullinen
CONSTRAINT-REQ-S00000 Constrain Palvelun kirjautumisprosessin on noudatettava XYZ-käytäntöjä
CONSTRAINT-REQ-S00001 Constrain On huomioitava Standardi ZZZ osana palvelun tapahtuma login talletusta
CONSTRAINT-REQ-S00002 Constrain GDPR (General Data Protection Regulation).
CONSTRAINT-REQ-S00003 Constrain User authentication has restrictions due to GDPR and interactions with existing services used by JAMK.

Functionalities and features

Priorisoi oleelliset ominaisuudet/toiminnot

  • P1 = Mandatory
  • P3 = Needed
  • P5 = Nice to have
Feature Priority Links
Example Feature 1 P1 FUNCTIONAL-REQ-C0001
Example Feature 2 P1 FUNCTIONAL-REQ-C0011

Functional Requirements of the service/system

What are the functional requirements? Functional requirements describe the operation required of a software / system Functional requirements are the most easily identifiable. Avoid writing multiple Requirement in the same sentence! Each Requirement separately .. You can present them in a table or refer to one as a whole

RequirementID Category Description Related Functionality
FUNCTIONAL-REQ-C0001 Functional Requirement Login / user authentication. This isn't yet decided if we require users to login with for example Office 365 credentials or authenticate them with some other method. Log in
FUNCTIONAL-REQ-C0002 Functional Requirement Student profile. Regardless of how the above is done, students need a profile for themselves to be able to choose their assignment. Kirjautuminen ft1, Tilaushallinta
FUNCTIONAL-REQ-C0003 Functional Requirement Language settings. As an exchange student, my finnish language isn't that good and I appreciate the ability to be able to use the service in english. I couldn't sign in to a team otherwise.
FUNCTIONAL-REQ-C0004 Functional Requirement Instructions / tutorial. As a student, I'd like to have a small tutorial about the usage of the service, the very basics is enough for me, but I would also appreciate the option for skipping the tutorial. Tämä voi myös olla non functional requirement
FUNCTIONAL-REQ-C0005 Functional Requirement Team browsing. I like the swipe functionality for browsing teams. However, I'd also like to see a list of the teams to be able to form some kind of a big picture of how many teams are there + I don't have to swipe through 100+ teams. Browse assignments
FUNCTIONAL-REQ-C0006 Functional Requirement Team selection. "For students, the team selection option should be as simple as a "Sign" button or similar." - Student XYZ
FUNCTIONAL-REQ-C0007 Functional Requirement Team creation. Create teams automatically when enough students are signed, as a coach I don't want to do this manually.
FUNCTIONAL-REQ-C0008 Functional Requirement Team confirmation. As a student I hate services that aren't clear enough in whether the process succeeded or failed.
FUNCTIONAL-REQ-C0009 Functional Requirement Team removal. As a student I appreciate the option to be able to change my decisions in an agile way. I'd rather make the changes needed myself than bother someone else about it. I'd like to be able to remove myself from a team if needed.
FUNCTIONAL-REQ-C0010 Functional Requirement Team bookmarking / add favorites. I'd like to able to like or otherwise bookmark the most interesting teams in case I want to review them later without going through all the teams again. This is not implemented but wouldn't hurt if it was.
FUNCTIONAL-REQ-C0011 Functional Requirement Feedback / report system. As a teacher/coach I'm using the service extensively and I would very much like the option of providing feedback and reporting possible problems in the service. Feedback button please!

Non Functional (aka Quality) requirements of the service

What were the non-functional requirements? How well does the service / component or other part of the service perform during the load? What are the bottlenecks. What requirements should the service be able to meet?

Performance

What are the requirements for the service from a performance perspective?

RequirementID Category Description Related Functionality
PERFORMANCE-REQ-0000 Non-Functional Performance Logging in is possible simultaneously for 100 users (100 request/s) Kirjautuminen ft1
PERFORMANCE-REQ-0001 Non-Functional Performance Scalability. Service performance is as good with 12 000 concurrent users as it would be with 10 users. Such service as FF-Marketplace has high user spikes during enrolls to the Future Factory course and much lower usage between them.
PERFORMANCE-REQ-0002 Non-Functional Performance Short response times for processes in the service, e.g., showing teams assignment infos to students.
PERFORMANCE-REQ-0003 Non-Functional Performance What happens in the backend if multiple students try to assign themselves to the same available spot in a team at the very same time? Database
PERFORMANCE-REQ-0004 Non-Functional Performance
PERFORMANCE-REQ-0005 Non-Functional Performance

Security

What are the requirements for the service from a security perspective?

RequirementID Category Description Related Functionality
SECURITY-REQ-0001 Non-Functional Security Salasanassa on käytettävä vähintään MD5-tason salausta, koska standardi XY112 sitä edellyttää Kirjautuminen ft1
SECURITY-REQ-0002 Non-Functional Security Application should use SSL or HTTPS for external communications. When communicating personal information of any kind, that data must be encrypted.
SECURITY-REQ-0003 Non-Functional Security Indentifying information, other than an email address, about students will not be saved.
SECURITY-REQ-0004 Non-Functional Security All data that the app collects should be stored in a safe place and backups should also be encrypted. (Users should also know how long their data will be retained for.)
SECURITY-REQ-0005 Non-Functional Security Backups for data every X hours.
SECURITY-REQ-0006 Non-Functional Security Requirements for user passwords (if there will be any) such as password length, special characters etc.
SECURITY-REQ-0007 Non-Functional Security Logging & monitoring (with GDPR restrictions), for example such accounts as admin accounts and database actions. Team OverFlow didn't have the time needed to implement solutions for these.
SECURITY-REQ-0008 Non-Functional Security Avoid exposure of sensitive data for example in the possible error messages to users. https://owasp.org/www-project-top-ten/2017/A3_2017-Sensitive_Data_Exposure
SECURITY-REQ-0009 Non-Functional Security Other OWASP Top 10 topics should be considered as well. https://owasp.org/www-project-top-ten/ & https://owasp.org/www-project-proactive-controls/v3/en/c1-security-requirements
SECURITY-REQ-0010 Non-Functional Security Only authenticated sources can fill up assignment data to the service. This prevents outsiders to interact with the FF-Marketplace to enhance security.
SECURITY-REQ-0011 Non-Functional Security Only enrolled students can join teams & assignments. Tämä on toki osaltaan turvallisuuteen liittyvä, mutta voisi sopia paremmin johonkin toiseen kategoriaan?
SECURITY-REQ-0012 Non-Functional Security Students can't make team selection for other students. Tämäkin kohta johonkin toiseen kategoriaan?
SECURITY-REQ-0013 Non-Functional Security As the service runs on Kubernetes & Docker + database on a virtual machine (?), security regarding these platforms should be taken in to consideration, like container scanning etc.

Usability (käytettävyys)

VaatimusID Tyyppi Kuvaus Ominaisuus johon vaikuttaa
USABILITY-REQ-0001 Non-Functional Usability Instructions / tutorial. As a student, I'd like to have a small tutorial about the usage of the service, the very basics is enough for me, but I would also appreciate the option for skipping the tutorial.
USABILITY-REQ-0002 Non-Functional Usability Language selection (Finnish & English).
USABILITY-REQ-0003 Non-Functional Usability Web page accessability. "When websites and web tools are properly designed and coded, people with disabilities can use them. However, currently many sites and tools are developed with accessibility barriers that make them difficult or impossible for some people to use."
USABILITY-REQ-0004 Non-Functional Usability The service functions fluidly and is responsive: actions done by users should be fast, whether it's adding a team to the service or students browsing teams.
USABILITY-REQ-0005 Non-Functional Usability Possible errors & error codes and exceptions are easy to understand (but they shouldn't show too much information, for example about OS and other server-side related info -> information leakage). https://owasp.org/www-project-proactive-controls/v3/en/c10-errors-exceptions.html

Availability

What is meant by availability? What kind of issues/instructions must be taken into account when implementing of availabilty in service?

RequirementID Category Description Related Functionality
USABILITY-REQ-0000 Availabilty Login Feature
USABILITY-REQ-0001 Availabilty Availability (saatavuus) 99% of the time. Some downtime is allowed for example during maintenance between the enrollment periods.
USABILITY-REQ-0002 Availabilty Disaster recovery plan should be made to ensure that the service is back online as fast as possible after an unplanned incident. https://www.ibm.com/services/business-continuity/disaster-recovery-plan
USABILITY-REQ-0003 Availabilty
USABILITY-REQ-0004 Availabilty
USABILITY-REQ-0005 Availabilty

Testability

What issues need to be considered for product quality assurance ?. During development, the necessary interfaces or tool software must be created for the software product, to control the product version under test. These requirements need to be recorded in a timely manner as they are crucial to the product’s testing capabilities. An example is the management of logs, their collection, initialization.

RequirementID Category Description Related Functionality
TESTABILITY-REQ-0000 Non-Functional Testability Käyttäjärekisteri on kyettävä palauttamaan alkutilaan ennen testien ajoa Kirjautuminen ft1
TESTABILITY-REQ-0001 Non-Functional Testability Lisätietoa
TESTABILITY-REQ-0002 Non-Functional Testability Lisätietoa
TESTABILITY-REQ-0003 Non-Functional Testability Lisätietoa
TESTABILITY-REQ-0004 Non-Functional Testability Lisätietoa
TESTABILITY-REQ-0005 Non-Functional Testability Lisätietoa

General Software architecture and deployment

Software implementation requirements can be set for pre-defined technologies that must be followed in development. This situation often occurs when the software is related to a previously implemented solution

Deployment diagram

The deployment view allows you to describe how different parts of a service are running and executed when it's in production.

General Database architecture

You can find database architecture of the product here (Notice! There might be made some changes afterwards which are not yet added there): General Database architecture

Palvelun laadun varmistus

Ohjelmisto

Palvelun/Ohjelmiston alustavat hyväksyntätestit

Acceptance tests generally focus on the customer / end user perspective. The aim is to validate, ie to validate whether the product meets the customer's wishes and whether it meets the set requirements. Acceptance tests can be used to determine whether a product is also sufficiently high-performance, usable, or secure for customer use.

Preliminary approval tests are attached to the requirements in tabular form.

Lähde Testitapaus Id Description Category
Example Feature 1, FUNCTIONAL-REQ-0001 Example Test Case 1 esim. Tarkista kirjautuminen palveluun uutena käyttäjänä Hyväksyntätesti
Example Feature 2, FUNCTIONAL-REQ-0201, USE-CASE-017 Testitapaus 2 esim. Tarkista kenkilökohtaisten tietojen poisto Hyväksyntätesti
Feature 3, Testitapaus 101 esim. Takista Kirjautuminen toimivalla salasanalla Hyväksyntätesti

Standards and references

As part of the definition of requirements, it is essential to identify important sources that are useful or relevant to the whole. Standards and pre-distributed guidelines are useful sources and as needed clarify the meaning of the Requirements.

DocumentID Name Link Description
REF1 JHS 165 ICT JHS Suositukset vaatimusmäärittelylle Requirement specification's recommendation
REF2 SO 9241-11 Käytettävyys Usability
REF3 ISO9001 Laadunhallinta Quality
REF4 GDPR GDPR asetus General Data Protection Regulation
REF5 EN 301 549 Availability Availability