Proj-2012-2013-CaveVinNFC/SRS

=1.  Introduction=

1.1 Purpose of the requirements document
The purpose of the document is to explain how we will manage our project, the different steps of the conception. Endly, the realisation.

1.2 Scope of the product
The product aims people who have a wine cellar and want to control the humidity and the temperature. We will also provide an application which permits the user to know at every time the telemetry and the contain of his cellar.

1.3 Definitions, acronyms and abbreviations
Wine Cellar : device used to automatically control the telemetry in a room designed to stock wine  NFC : http://en.wikipedia.org/wiki/Near_field_communication  Mifare : http://en.wikipedia.org/wiki/MIFARE RFID : http://en.wikipedia.org/wiki/RFID

1.4 References
http://www.libnfc.org/community : Website of the open source community for nfc  http://www.developer.nokia.com/Community/Wiki/Understanding_NFC_Data_Exchange_Format_%28NDEF%29_messages : Website concerning the data format exchange NDEF messages  http://www.dconstructing.com/2011/02/26/encoding-a-uri-in-an-nfc-ndef-payload/ : Website explaining how encoding an uri in an NFC NDEF payload

1.5 Overview of the remainder of the document
The remainder of this document will present the technical characteristics of the wine cellar, and our guideline to develop it.

=2.  General description=

2.1 Product perspective
A smartphone application and a web application which allows the owner to manage his cellar. Add or remove a bottle, ask for information about a bottle, the humidity and the temperature of the cellar.

2.2 Product functions
The functions of our project are mainly to :
 * - Consult the humidity and temperature of his cellar
 * - Consult the quantity of bottles in his cellar thanks to the database stored on a server from a website or an application
 * - Be able to add/remove a bottle or a box of bottles
 * - An alarm is send to the proprietary of the cellar in case of troubles (using email, sms, notification...) : intrusion, deviations of temperature or humidity

2.3 User characteristics
Like wine ;) Have a wine cellar device Have a NFC equipment (reader, writer, tags)

2.4 General constraints
An Internet access is required A smartphone as NFC equipment is recommended

2.5 Assumptions and dependencies
http://air.imag.fr/mediawiki/index.php/Commande_adaptative_pour_la_r%C3%A9gulation_de_temp%C3%A9rature_et_d%E2%80%99hygrom%C3%A9trie_d%E2%80%99une_cave_%C3%A0_vin =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 : Monitor a wine cellar Description : An application on smartphone or a website <br\><br\> Inputs :<br\> NFC tags<br\><br\> Source :<br\> Web<br\><br\> Outputs :<br\> Monitoring<br\><br\> Destination :<br\> Wine cellar owners<br\><br\> Action :<br\> Must be able to add/remove a bottle<br\> Must be able to consult the state of his cellar :
 * Telemetry : temperature, humidity, opening<br\>
 * Inventory : amount of bottles with datas on each one<br\>
 * Local and distant access<br\>

Must inform the user in case of troubles<br\> May remote control the telemetry<br\> Shall be user-friendly


 * Natural language sentences (with MUST, MAY, SHALL)
 * Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)
 * Mathematical Notations
 * Tabular notations for several (condition --> action) tuples

Non functional requirements:

Pre-condition :<br\> Have the cellar wine device <br\><br\> Post-condition :<br\> Regularly monitor his cellar<br\><br\> Side-effects :<br\> Alcoholism :)

=4. Product evolution= Remote control the cellar in case of problem.<br\> Add more informations about bottles. Read bar code in order to fill the the fields automatically when you want to add a bottle.

=5. Appendices=

=6. Index=