Requirements
Final Requirements
Here are final requirements that we have devised from our project course and multiple meetings with the clients.
ID | Requirement | Functional? | Priority |
---|---|---|---|
R01 | The server must use data sets with different update times (e.g. in real time, hourly, monthly) | Functional | Must |
R02 | The smartwatch must display the pollution data | Functional | Must |
R03 | The smartwatch must have an intuitive and clear UI using visusalisations that are widely recognisable | Non-Functional | Must |
R04 | The smartwatch must have a scalar data view | Non-Functional | Must |
R05 | The smartwatch must have a detailed data view | Non-Functional | Must |
R06 | The smartwatch must interact with the smartphone app | Functional | Must |
R07 | The smartphone must send requests to the API | Functional | Must |
R08 | The smartphone must receive data from the API | Functional | Must |
R09 | The smartphone must request new data when location changes | Functional | Must |
R10 | The smartphone must be able to send notifications to the smartwatch on a location change | Functional | Must |
R11 | Should have our own database in which all data is consolidated and stored | Functional | Should |
R12 | Should have a synchronous connection to database | Functional | Should |
R13 | Should have an asynchronous connection to database | Functional | Should |
R14 | The app should store the last set of data received offline | Functional | Should |
R15 | Should be able to update data upon demand | Functional | Should |
R16 | The database should have clearly defined zones of the city | Functional | Should |
R17 | The backend API shall include traffic data in London and the smartwatch app should visualise those data | Functional | Could |
R18 | The smartwatch app shall allow user to search for pollution data of a particular location by using voice command | Functional | Could |
R19 | The smartphone app shall have an better UI that provides detailed visualisations of pollution data | Non-Functional | Could |
R20 | The smartphone app shall include information about the effects on health of each pollutants | Non-Functional | Could |
R21 | The smartphone app shall cache pollution data when the device is connected to wifi to reduce data usage | Non-Functional | Could |
R22 | The project would extend to other cities | Functional | Would |
R23 | The API would include more data sources | Functional | Would |
R24 | The database would have developed API allowing others to use it | Functional | Would |
Initial Requirements - MoSCoW
Based on initial meetings with our client, we identified some simple MoSCoW requirements that were requested for our system.
Must
- Use 3 pollution data sets updated at different rates ie live, daily, yearly
- Display data visually on a smartwatch
- Have a general view and a detailed view for each type of data
- Interact with an android app
- Must update as the user moves round the city and periodically or when the user requests a refresh
- Have a clear simple UI
Should
- Have our own database to consolidate all other data sources into
- Send notifications to users based on air quality and their quality preferences
- Have synchronous and asynchronous connection to database
- Store the last set of data offline in the app
- Have clearly defined zones for the city
Could
- Include social data eg twitter posts or facebook etc.
- Include traffic data
- Allow user to select which information they want to display
Would
- Extend for use in other cities
- Extend to a fully fledged android or web app for visualisations as well
- Develop api for our database so others can use the data we have consolidated
- Expand the number of data sources we are using to
Use Cases
Use Case 1: Recieving Data Updates
Name | StartReceivingDataUpdates |
---|---|
ID | UC1 |
Brief Description | The user starts the app to constantly receive air quality data based on location change |
Primary Actor | User |
Secondary Actor | None |
Preconditions | The phone is connected to the Internet |
Main Flow |
1) The user opens the app on the smartphone. 2) The app starts the data service that runs in the background and constantly send data to the smartwatch |
Post Conditions | The data service is started |
Alterative Flows | None |
User Case 2: User Checking Air Quality
Name | CheckAirQuality |
---|---|
ID | UC2 |
Brief Description | The user uses the app to check the air quality of current location |
Primary Actor | User |
Secondary Actor | None |
Preconditions | The phone is connected to the Internet and the data service is running |
Main Flow |
1) The app displays the main menu which contains for icons on the smartwatch 2) The user clicks the Air icon 3) The smartwatch displays the data for each pollutants in the form of coloured blocks |
Post Conditions | None |
Alterative Flows | None |
Use Case 3: Checking Raw Values
Name | CheckAirQualityRawData |
---|---|
ID | UC3 |
Brief Description | The user uses the app to check the raw values of different air pollutants in current location |
Primary Actor | User |
Secondary Actor | None |
Preconditions | The phone is connected to the Internet and the data service is running |
Main Flow |
1) The app displays the main menu which contains for icons on the smartwatch 2) The user clicks the Air icon 3) The smartwatch displays the data for each pollutants in the form of coloured blocks 4) The user clicks the top bar of the current view 5) The system displays the raw value for each air pollutant |
Post Conditions | None |
Alterative Flows | None |
Use Case 4: Halting Data Update Retrieval
Name | StopReceivingDataUpdate |
---|---|
ID | UC4 |
Brief Description | The user decides to stop receiving data updates |
Primary Actor | User |
Secondary Actor | None |
Preconditions | The phone is connected to the Internet and the data service is running |
Main Flow |
1) The user opens the app on the smartphone 2) The user clicks the stop update button 3) The app stops the data service that has been running in the background |
Post Conditions | The data service is stopped and the smartwatch will no longer receive data from the phone |
Alterative Flows | None |
Use Case 5: Requesting API Data
Name | RequestDataFromAPI |
---|---|
ID | UC5 |
Brief Description | The smartphone app requests air quality data from the backend API |
Primary Actor | Smartphone app |
Secondary Actor | None |
Preconditions | The phone is connected to the Internet and the data service is running |
Main Flow |
1) The app detects a location change 2) The app make a request with the current coordinates as query parameters to the API 3) The API returns a json array that contains all the data with the nearest one as the first element |
Post Conditions | None |
Alterative Flows | None |