Proj-2013-2014-SmartCitizen2014/SRS: Difference between revisions
(18 intermediate revisions by the same user not shown) | |||
Line 36: | Line 36: | ||
* '''Arduino''' : It is a open-source board with a microcontroller, intended to make the application of interactive objects or environments more accessible. |
* '''Arduino''' : It is a open-source board with a microcontroller, intended to make the application of interactive objects or environments more accessible. |
||
* '''MongoDB''' :A NoSQL cross-platform document-oriented database system. It uses a JSON-like structure (named BSON) instead of the traditional table-based system. |
* '''MongoDB''' :A NoSQL cross-platform document-oriented database system. It uses a JSON-like structure (named BSON) instead of the traditional table-based system. |
||
* '''Leaflet''' : A open-source JavaScript library for building web mapping applications. |
|||
==1.4 References== |
==1.4 References== |
||
* [http://leafletjs.com/ Leaflet.js] |
|||
* [[Arduino]] |
|||
* [[Node.js]] |
|||
* [http://mongoosejs.com/ Mongoose] |
|||
* [http://www.oesmith.co.uk/morris.js/ Morris.js] |
|||
==1.5 Overview of the remainder of the document== |
==1.5 Overview of the remainder of the document== |
||
=2. General description= |
=2. General description= |
||
==2.1 Product perspective== |
==2.1 Product perspective== |
||
At first, the website will enable people to see data from sensors on a map. Then, a bit of statistics will be made in order to display zone in function of some parameters. Finally, the user will be able to take a picture with geolocalisation and post it on twitter, so that the picture is displayed on the web site. |
|||
==2.2 Product functions== |
==2.2 Product functions== |
||
If a user want to send data from its own sensors to the web site, he will have to register in order to obtaining a key that will be required to setup the sensors.<br> |
|||
The web site display the position of the sensors as well as the data they send to the web site. Zones are also displayed depending on those data. |
|||
==2.3 User characteristics== |
==2.3 User characteristics== |
||
A web browser with JavaScript enabled is needed. |
|||
An access to Twitter is required if the user want to see the alert from twitter. |
|||
==2.4 General constraints== |
==2.4 General constraints== |
||
* MongoDB server |
|||
* NodeJS server |
|||
* Special syntax for [[MQTT]] messages |
|||
* Network connection for arduino sensors to access the NodeJS server |
|||
==2.5 Assumptions and dependencies== |
==2.5 Assumptions and dependencies== |
||
* Web browser with HTML5 and Javascript enabled |
|||
* Two sensors can not be at the same position in the database |
|||
* Values returned by sensors must be right |
|||
=3.Specific requirements, covering functional, non-functional and interface requirements= |
=3.Specific requirements, covering functional, non-functional and interface requirements= |
||
* document external interfaces, |
* document external interfaces, |
||
Line 54: | Line 78: | ||
==3.1 Requirement X.Y.Z (in Structured Natural Language)== |
==3.1 Requirement X.Y.Z (in Structured Natural Language)== |
||
'''Function''': |
'''Function''': |
||
* Gather information from several sensors |
* Gather information from several sensors |
||
* Post information on a map, available from a browser |
* Post information on a map, available from a browser |
||
Line 60: | Line 84: | ||
'''Inputs''': |
'''Inputs''': |
||
* Json data from Twitter |
|||
* MQTT data from sensors |
* MQTT data from sensors |
||
* XML + picture from Android Application |
|||
'''Source''': |
'''Source''': |
||
* Different types of sensors (MQ4, DHT11 ...). They could be plugged to an arduino. |
|||
⚫ | |||
⚫ | |||
* Android application |
|||
'''Outputs''': |
'''Outputs''': |
||
* A |
* A website |
||
⚫ | |||
'''Destination''': |
'''Destination''': |
||
* Citizen |
* Citizen |
||
Line 77: | Line 97: | ||
'''Action''': |
'''Action''': |
||
* Alert by e-mail to Town hall when a threshol is reached |
|||
* Post a tweet when a threshol is reached |
* Post a tweet when a threshol is reached |
||
Line 86: | Line 105: | ||
* Hardware: |
* Hardware: |
||
::- Computer |
|||
::- Arduino Leonardo |
::- Arduino Leonardo |
||
::- Arduino ethernet shield |
|||
::- Senors with MQTT compatibility |
|||
⚫ | |||
*Software: |
*Software: |
||
::- Arduino IDE |
|||
::- Nodejs |
::- Nodejs |
||
::- Mongodb |
::- Mongodb |
||
Line 97: | Line 119: | ||
'''Post-condition''': |
'''Post-condition''': |
||
* A user post a tweet with information and/or a picture with GPS location |
|||
'''Side-effects''': |
'''Side-effects''': |
||
Line 104: | Line 125: | ||
=4. Product evolution= |
=4. Product evolution= |
||
* Mobile application to use embedded sensors (for smartphone and tablet) |
|||
* Mobile applicatin to visualize the map and the sensors values |
|||
* Increase the number of input (social networks) |
|||
* Alert send by e-mail |
|||
* Optimisation of the server (caching ...) |
|||
* API for developpers : to access the database (open data) |
|||
=5. Appendices= |
=5. Appendices= |
||
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard. |
|||
'''References:''' |
|||
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx |
|||
* http://en.wikipedia.org/wiki/Software_requirements_specification |
|||
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998] |
|||
=6. Index= |
=6. Index= |
Latest revision as of 13:11, 8 April 2014
The document provides a template of the Software Requirements Specification (SRS). It is inspired of the IEEE/ANSI 830-1998 Standard.
0.1 | 27/01/2014 | Labat Paul, Fréby Rodolphe | SRS of SmartCitizen project | Validator | Validation Date | |
---|---|---|---|---|---|---|
0.1.0 | TBC | TBC | TBC | TBC | TBC |
1. Introduction
1.1 Purpose of the requirements document
This Software Requirements Specification (SRS) identifies the requirements for the SmartCitizen project. The purpose of the present document is to explain how we organize our project, the different steps of the conception and the project achievement.
1.2 Scope of the product
The purpose of this project is to monitor a city thanks to sensors spread in it and to visualize the data, sent by those sensors, on a map.
1.3 Definitions, acronyms and abbreviations
- MQTT (MQ Telemetry Transport) : It is a messaging protocols that can be used by a range of devices from small sensors, to mobile phones, embedded systems on vehicles, or laptops. It uses the publish-subscribe messaging pattern.
- Arduino : It is a open-source board with a microcontroller, intended to make the application of interactive objects or environments more accessible.
- MongoDB :A NoSQL cross-platform document-oriented database system. It uses a JSON-like structure (named BSON) instead of the traditional table-based system.
- Leaflet : A open-source JavaScript library for building web mapping applications.
1.4 References
1.5 Overview of the remainder of the document
2. General description
2.1 Product perspective
At first, the website will enable people to see data from sensors on a map. Then, a bit of statistics will be made in order to display zone in function of some parameters. Finally, the user will be able to take a picture with geolocalisation and post it on twitter, so that the picture is displayed on the web site.
2.2 Product functions
If a user want to send data from its own sensors to the web site, he will have to register in order to obtaining a key that will be required to setup the sensors.
The web site display the position of the sensors as well as the data they send to the web site. Zones are also displayed depending on those data.
2.3 User characteristics
A web browser with JavaScript enabled is needed. An access to Twitter is required if the user want to see the alert from twitter.
2.4 General constraints
- MongoDB server
- NodeJS server
- Special syntax for MQTT messages
- Network connection for arduino sensors to access the NodeJS server
2.5 Assumptions and dependencies
- Web browser with HTML5 and Javascript enabled
- Two sensors can not be at the same position in the database
- Values returned by sensors must be right
3.Specific requirements, covering functional, non-functional and interface requirements
- document external interfaces,
- describe system functionality and performance
- specify logical database requirements,
- design constraints,
- emergent system properties and quality characteristics.
3.1 Requirement X.Y.Z (in Structured Natural Language)
Function:
- Gather information from several sensors
- Post information on a map, available from a browser
Description:
Inputs:
- MQTT data from sensors
Source:
- Different types of sensors (MQ4, DHT11 ...). They could be plugged to an arduino.
Outputs:
- A website
- A twitter stream
Destination:
- Citizen
- Town hall
Action:
- Post a tweet when a threshol is reached
Non functional requirements:
- Sensors are not blocked
Pre-condition:
- Hardware:
- - Computer
- - Arduino Leonardo
- - Arduino ethernet shield
- - Sensors
- Software:
- - Arduino IDE
- - Nodejs
- - Mongodb
- - Mosquitto
Post-condition:
Side-effects:
- Real time information
- Reactivity from the Town hall
4. Product evolution
- Mobile application to use embedded sensors (for smartphone and tablet)
- Mobile applicatin to visualize the map and the sensors values
- Increase the number of input (social networks)
- Alert send by e-mail
- Optimisation of the server (caching ...)
- API for developpers : to access the database (open data)
5. Appendices
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.
References:
- http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx
- http://en.wikipedia.org/wiki/Software_requirements_specification
- IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998