Proj-2013-2014-Open DynDNS/SRS

The document provides a template of the Software Requirements Specification (SRS). It is inspired of the IEEE/ANSI 830-1998 Standard.

Read first:
 * 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

=1.  Introduction=

1.5 Overview of the remainder of the document
=2.  General description=

2.5 Assumptions and dependencies
=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: To dynamically updates the public IP address of a host on a DNS server whenever the host is mobile and is located in a foreign network

Description: Implement an open source dynamic DNS server and demon to run on various device (PC, laptop, Android tablet etc)

Inputs: Dynamic IPs

Source: Users who host their websites or depositories behind a router/modem with dynamic IP

Outputs: Dynamic DNS updates

Destination: Open DynDNS server

Action:
 * Open DynDNS client must notify OpenDynDNS server whenever it detects a change in IP adress on the host
 * Open DynDNS server updates shall not be modified by non-recognizable device

Non functional requirements:
 * Open DynDNS client may be run on various device such as a laptop, PC or an Android tablet.

Pre-condition: - Raspberry PI - Android tablette (Nexus 10) - 2 machine running on Linux
 * Hardware

- Ubuntu desktop - MQTT sensors - Flask API and Flask REST-ful - Kivy - Liclipse for Python
 * Software

Post-condition:
 * User must be situated in a foreign network with different public IP address before launching the daemon

Side-effects:

=4. Product evolution=

=5. Appendices= =6. Index=