9ticks:Software Requirements

From BiCEP

Jump to: navigation, search
 
Line 13: Line 13:
== List of Requirements ==
== List of Requirements ==
-
[[Image:9ticks_SystemArchitecture_v01.png|thumb|System Architecture]]
+
* The distinction between user, functional and non-functional requirements is ignored
-
 
+
-
* The distiction between user, functional and non-functional requirements is ignored
+
* The requirements are sorted by logical groups
* The requirements are sorted by logical groups
* Each requirement has been assigned with the following properties:
* Each requirement has been assigned with the following properties:
-
** '''Code''' — (PT|BT|DT)_REQ_[0-9]{4}
+
** '''Code''' — REQ_[0-9]{4}
** '''Requirement'''
** '''Requirement'''
** '''Comment'''
** '''Comment'''
** '''Priority''' — from 1 to 5 (1 as highest)
** '''Priority''' — from 1 to 5 (1 as highest)
** '''Status''' — Draft, Approved, In Progress, Testing, Finished
** '''Status''' — Draft, Approved, In Progress, Testing, Finished
 +
* To see an '''unsorted list of requirement''' folow '''[[9ticks:Unsorted_List_of_Requirement|this]]''' link.
-
=== Predefined Sources ===
+
=== Generic ===
-
{| class="TablePager" border="1"
+
{| class="TablePager" border="1" width="100%"
|-
|-
-
! Code !! Requirement !! Comment !! Priority !! Status
+
! Code !! width="50%" | Requirement !! width="40%" | Comment !! Priority !! Status
|-
|-
-
| REQ_0000 || Predefined sources shall be subscribed. || While subscribing the source user must provide the desirable refresh rate. || 1 || Draft
+
| REQ_0001 || User shall access the system through a web browser. || || 1 || Draft  
|-
|-
-
| REQ_0000
+
| REQ_0002 || User shall access the system through a mobile device. ||  || 1 || Draft  
-
| A predefined Stock source shall be subscribed.
+
-
| Market and quote must be provided.
+
-
| 1
+
-
| Draft
+
|-
|-
-
| REQ_0000
+
| REQ_0003 || User shall subscribe sources. ||  || 1 || Draft
-
| A predefined Weather source shall be subscribed.
+
-
| Location must be provided (defaulting to the IP phisical location).
+
-
| 1
+
-
| Draft
+
|-
|-
-
| REQ_0000
+
| REQ_0004 || User shall tag sources. ||  || 1 || Draft  
-
| A predefined Sports source shall be subscribed.
+
-
| A specific match (source is only that match) or generic team (all team matches) must be provided.
+
-
| 1
+
-
| Draft
+
|-
|-
-
| REQ_0000
+
| REQ_0005 || User shall visualize each source from several perspectives. || e.g.: textual, bar chart, pie chart, ... || 1 || Draft  
-
| A predefined Flight source shall be subscribed.
+
-
| Flight number and flight date must be provided.
+
-
| 1
+
-
| Draft
+
|-
|-
-
| REQ_0000
+
| REQ_0006 || User shall visualize sources in comparison mode. || e.g.: overlap two stock quotes || 1 || Draft  
-
| A predefined Traffic source shall be subscribed.
+
-
| Route must be provided.
+
-
| 2
+
-
| Draft
+
|-
|-
-
| REQ_0000
+
| REQ_0007 || User shall define when and how be alerted of events. || || 1 || Draft  
-
| A predefined RSS Feed source shall be subscribed.
+
-
| RSS URL must be provided.
+
-
| 2
+
-
| Draft
+
|-
|-
-
| REQ_0000
+
| REQ_0008 || User shall visualize the history of any source. ||  || 1 || Draft
-
| A predefined Ebay item source shall be subscribed.
+
|-
-
| Item ID must be provided.
+
| REQ_0009 || User shall perform queries over the gathered data. ||  || 1 || Draft
-
| 2
+
|-
-
| Draft
+
| REQ_0010 || Queries, visualizations and filters shall be stored for future re-utilization by any user. ||  || 1 || Draft
 +
|-
 +
| REQ_0011 || User shall perform all operations in real-time. || Minimum delays. || 1 || Draft  
|}
|}
 +
 +
 +
=== Sources ===
 +
 +
{| class="TablePager" border="1" width="100%"
 +
|-
 +
! Code !! width="50%" | Requirement !! width="40%" | Comment !! Priority !! align="center" | Status
 +
|-
 +
| REQ_0101 || There shall exist a data source API. Details are TBD. || Every source, predefined or custom, must use this API. || 1 || Draft
 +
|-
 +
| REQ_0102 || User shall apply queries or filters to data sources. The result shall be considered as another source, widely available. ||  || 1 || Draft
 +
|}
 +
 +
 +
=== Predefined Sources ===
 +
 +
{| class="TablePager" border="1" width="100%"
 +
|-
 +
! Code !! width="50%" | Requirement !! width="40%" | Comment !! Priority !! align="center" | Status
 +
|-
 +
| REQ_0201 || A predefined Stock source shall be able to be subscribed. || Market and quote must be provided. || 1 || Draft
 +
|-
 +
| REQ_0202 || A predefined Weather source shall be able to be subscribed. || Location must be provided (defaulting to the IP physical location). || 1 || Draft
 +
|-
 +
| REQ_0203 || A predefined Sports source shall be able to be subscribed. || A specific match (source is only that match) or generic team (all team matches) must be provided. || 1 || Draft
 +
|-
 +
| REQ_0204 || A predefined Flight source shall be able to be subscribed. || Flight number and flight date must be provided. || 1 || Draft
 +
|-
 +
| REQ_0205 || A predefined Traffic source shall be able to be subscribed. || Route must be provided. || 1 || Draft
 +
|-
 +
| REQ_0206 || A predefined RSS Feed source shall be able to be subscribed. || RSS URL must be provided. || 1 || Draft
 +
|-
 +
| REQ_0207 || A predefined eBay item source shall be able to be subscribed. || Item ID must be provided. || 1 || Draft
 +
|}
 +
=== Custom Sources ===
=== Custom Sources ===
-
{| class="TablePager" border="1"
+
{| class="TablePager" border="1" width="100%"
|-
|-
-
! Code
+
! Code !! width="50%" | Requirement !! width="40%" | Comment !! Priority !! Status
-
! Requirement
+
-
! Comment
+
-
! Priority
+
-
! Status
+
|-
|-
-
| REQ_0000
+
| REQ_0301 || User shall use a browser extension to select some peaces of information to monitor. ||  || 1 || Draft
-
| A custom source shall be subscribed.
+
|-
-
| User must use a browser extension to select some peaces of information he wants to monitor.
+
| REQ_0302 || The information selected shall be automatically typed.  || May be overridden by the user. || 1 || Draft
-
| 1
+
|-
-
| Draft
+
| REQ_0303 || System shall recognize basic data types.  || e.g.: integer, decimal, percentage, time, date, string, ... || 1 || Draft
 +
|-
 +
| REQ_0304 || System shall connect similar/equivalent data types.  || e.g.: Celsius, Fahrenheit, Kelvin, ... ; Meter, Mile, Yard, Foot, ... ; Euro, U.S. Dollar, Pound, Swiss franc, ... || 1 || Draft
 +
|-
 +
| REQ_0305 || Any single HTML item shall be able to be selected. || e.g.: a table cell or an anchor. || 1 || Draft
 +
|-
 +
| REQ_0306 || Every repetitive HTML item shall be able to be selected. || e.g.: all main titles || 1 || Draft
 +
|-
 +
| REQ_0307 || An HTML table shall be able to be selected. ||  || 1 || Draft
 +
|-
 +
| REQ_0308 || Parts of an HTML table shall be able to be selected. || e.g.: a row whose cell at nth column has the value X  || 1 || Draft
 +
|-
 +
| REQ_0309 || All items inside a bounded polygon shall be able to be selected. ||  || 1 || Draft  
|-
|-
-
| REQ_0000
+
| REQ_0310 || Each custom source shall be stored for future re-utilization by any user. ||  || 1 || Draft  
-
| System shall recognise basic datatypes.  
+
|}
-
| e.g.: integer, decimal, percentage, time, date, string, ...
+
 
-
| 1
+
 
-
| Draft
+
=== Event Processing ===
 +
 
 +
{| class="TablePager" border="1" width="100%"
|-
|-
-
| REQ_0000
+
! Code !! width="50%" | Requirement !! width="40%" | Comment !! Priority !! Status
-
| System shall connect similar / equivalent datatypes.
+
-
| e.g.: Celsius, Fahrenheit, Kelvin, ... ; Metre, Mile, Yard, Foot, ... ; Euro, U.S. Dollar, Pound, Swiss franc, ...
+
-
| 1
+
-
| Draft
+
|-
|-
-
| REQ_0000
+
| REQ_0401 || Each user's alert rules shall be processed on-the-fly. || Use a CEP engine, Esper maybe. || 1 || Draft  
-
| The information information with the browser extension shall be automatically typed. Shall be overridden by the user.  
+
-
|  
+
-
| 1
+
-
| Draft
+
|-
|-
-
| REQ_0000
+
| REQ_0402 || User shall be alerted in a short time window. ||  || 1 || Draft
-
| The information selected with the browser extension shall be automatically typed. Shall be overridden by the user.  
+
|}
-
|  
+
 
-
| 1
+
 
-
| Draft
+
=== Crawler ===
 +
 
 +
{| class="TablePager" border="1" width="100%"
 +
|-
 +
! Code !! width="50%" | Requirement !! width="40%" | Comment !! Priority !! Status
 +
|-
 +
| REQ_0501 || Each source must be polled for updates every "refresh rate"-times. || Based on each source's refresh rate. || 1 || Draft
 +
|-
 +
| REQ_0502 || An efficient scheduling policy shall be in place. || || 1 || Draft
 +
|-
 +
| REQ_0503 || The solution shall have good performance and scalability. ||  || 1 || Draft
 +
|-
 +
| REQ_0504 || The solution shall handle stress peaks. || 1000 Streams, 1000 Events/sec, 1000 Queries || 1 || Draft
 +
|}
 +
 
 +
 
 +
=== Data Store ===
 +
 
 +
{| class="TablePager" border="1" width="100%"
 +
|-
 +
! Code !! width="50%" | Requirement !! width="40%" | Comment !! Priority !! Status
 +
|-
 +
| REQ_0601 || An aggregation engine shall be in place. || Summarize older data. || 1 || Draft
 +
|-
 +
| REQ_0602 || A fault tolerant mechanism must be in place. || Replicate data. || 1 || Draft
 +
|-
 +
| REQ_0603 || A fault tolerant mechanism must be in place. || Replicate data. || 1 || Draft
 +
|-
 +
| REQ_0604 || A locking service must be in place. || Low level concurrency prevention. || 1 || Draft
 +
|-
 +
| REQ_0605 || The solution shall have good performance and scalability. ||  || 1 || Draft
 +
|-
 +
| REQ_0606 || The solution shall handle stress peaks. || 1000 Streams, 1000 Events/sec, 1000 Queries || 1 || Draft
 +
|-
 +
| REQ_0607 || The solution shall provide low response times. ||  || 1 || Draft
 +
|}
 +
 
 +
 
 +
=== Assorted ===
 +
 
 +
{| class="TablePager" border="1" width="100%"
|-
|-
-
| REQ_0000
+
! Code !! width="50%" | Requirement !! width="40%" | Comment !! Priority !! Status
-
| Any single HTML item shall be selected as a source.
+
-
| e.g.: a table cell or an anchor.
+
-
| 1
+
-
| Draft
+
|-
|-
-
| REQ_0000
+
| REQ_0701 || The communication between the user and the system must be optimize in order of each client type. || Push-based vs pull-based. || 1 || Draft
-
| Every repetitive HTML item must be selected as a source.
+
-
| e.g.: all main titles
+
-
| 1
+
-
| Draft
+
|-
|-
-
| REQ_0000
+
| REQ_0702 || The system shall provide a web service for third-party applications. ||  || 1 || Draft
-
| An HTML table must be selected as a source.
+
-
|  
+
-
| 1
+
-
| Draft
+
|-
|-
-
| REQ_0000
+
| REQ_0703 || The system shall be internationalized. || i18n || 5 || Draft
-
| Parts of an HTML table must be selected as a source.
+
-
| e.g.: a row whose cell at nth column has the value X
+
-
| 1
+
-
| Draft
+
|-
|-
-
| REQ_0000
+
| REQ_0704 || The system shall allow OpenID authentication. || || 5 || Draft
-
| All items inside a bounded polygon must be selected as a source.
+
-
|
+
-
| 1
+
-
| Draft
+
|}
|}
Line 150: Line 184:
== Requirement Traceability Matrix ==
== Requirement Traceability Matrix ==
-
Not needed.
+
Not needed, yet.

Current revision as of 14:17, 9 October 2008

Personal tools