RICM4 2017 2018 - UltraTeamMV : UML

=Usecase=

End user own geolocation reading on the map

 * Pre-condition :
 * Smartphone should be on, with a loaded map into the app
 * The geolocation should be stored in the app
 * The UI should be on map page

The smartphone does not display anything, the page is blank.
 * Start:

The smartphone displays the map with a marker on end user's geolocation
 * End:


 * Normal execution
 * 1) Smartphone loads geolocation from application
 * 2) Smartphone loads relevant map part
 * 3) Smartphone displays map
 * 4) Smartphone displays end user's geolocation as a marker


 * Alternative execution
 * If map can't be loaded or displayed, redirect to another page and display an error message
 * If geolocation can't be loaded, display a loaded map and display an error message


 * Non-functional constraint
 * Loading should take less than 2 seconds as it is a main feature hence frequently used.
 * Map should be readable even in a non urban area (a acceptable default zoom level shall be used).

Read other hikers’ geolocation on the map

 * Pre-condition :
 * Smartphone should be on, with a loaded map into the app
 * The other hikers’ geolocation should be stored in the app
 * The UI should be on map page

The smartphone does not display anything, the page is blank.
 * Start:

The smartphone displays the map with a marker on every other hikers’ geolocation
 * End:


 * Normal execution
 * 1) Smartphone loads other hikers’ geolocation from application
 * 2) Smartphone loads relevant map part
 * 3) Smartphone displays map
 * 4) Smartphone displays other hikers’ geolocation as a marker


 * Alternative execution
 * If map can't be loaded or displayed, redirect to another page and display an error message
 * If an other hikers’ geolocation can't be loaded or displayed, proceed as if it did not exists

End user own geolocation reading on the map

 * Pre-condition :
 * Smartphone should be on, with a loaded map into the app
 * The geolocation should be stored in the app
 * The UI should be on map page

The smartphone does not display anything, the page is blank.
 * Start:

The smartphone displays the map with a marker on end user's geolocation
 * End:


 * Normal execution
 * 1) Smartphone loads map
 * 2) Smartphone displays map
 * 3) Smartphone loads geolocation from application
 * 4) Smartphone displays end user's geolocation as a marker


 * Alternative execution
 * If map can't be loaded or displayed, redirect to another page and display an error message
 * If geolocation can't be loaded, keep map displayed and display an error message


 * Non-functional constraint
 * Loading should take less than 2 seconds as it is a main feature hence frequently used.
 * Map should be readable even in a non urban area (a acceptable default zoom level shall be used).

Read specific hiker’s geolocation on the map

 * Pre-condition :
 * Smartphone should be on, with a loaded map into the app
 * The other hiker’s geolocation should be stored in the app
 * The UI should be on map page

The smartphone does not display anything, the page is blank.
 * Start:

The smartphone displays the map centered on a marker displaying other hiker’s geolocation
 * End:


 * Normal execution
 * 1) Smartphone loads specific hiker’s geolocation from application
 * 2) Smartphone loads map
 * 3) Smartphone displays map centered on
 * 4) Smartphone displays other hikers’ geolocation as a marker


 * Alternative execution
 * If map can't be loaded or displayed, redirect to another page and display an error message
 * If an other hikers’ geolocation can't be loaded or displayed, proceed as if it did not exists

End user course creation

 * Pre-condition :
 * Application is launched on home page.

Course does not exist.
 * Start:

A course was created. Application generated an AES encryption key.
 * End:


 * Normal execution
 * 1) User clicks on "Create course"
 * 2) AES encryption key is generated
 * 3) A QRCode is displayed on screen or smartphone starts to send data via NFC


 * Alternative execution
 * If something goes wrong, smartphone should display a "cancel | recreate course" button


 * Non-functional constraint
 * Course should be under 10 seconds
 * Smartphone display should be large and bright enough for other users to flash it or smartphone should be equipped of an NFC chip

End user course join

 * Pre-condition :
 * Another physically near user shall have created a course,
 * Application is launched on home page.

End user is not enrolled in the given course.
 * Start:

End user is enrolled in the given course.
 * End:


 * Normal execution
 * 1) Users clicks on "Join course" button,
 * 2) Users clicks on "Via QRCode" or "Via NFC" button,
 * 3) Camera opens or NFC starts to listen, and code is received,
 * 4) Received code is stored into the application.


 * Alternative execution
 * If nothing is received in a given time, display a help message

Template

 * Pre-condition :


 * Start:


 * End:


 * Normal execution


 * Alternative execution

[Suggestions :]
 * Non-functional constraint
 * Time
 * Cost
 * Direct environment constraints (physical environment, connections, interfaces, safety, testability, deployment...)
 * Indirect environment constraints : PESTLE analysis (Political, Economic, Social, Technological, Environmental, Legal)

=Sequence diagram=

=Deployment diagram=

=Activity diagram=

=Relationship diagram =