Modèles UML
Modèle de classes
Todo
update

Modèle de base de données
Todo
update

Use cases
Todo
update

UcLogIn
Contexte de déclenchement:
Use-case déclenché quand l’utilisateur veut se connecter dans l’application.
Rôles:
Aucun
Résumé:
Use-case déclenché quand l’utilisateur se connecte à l’application. L’utilisateur rentre son nom d’utilisateur et son mot de passe, et l’application l’authentifie et lui renvoie un token lui permettant d’être reconnu par l’API.
Pré-conditions:
L’utilisateur n’est pas connecté.
Description:
Une API Rest doit être stateless, toutes les informations d’authentification doivent donc être transmises à chaque requête à l’API.
Lorsque l’utilisateur se connecte, le serveur d’application doit lui fournir un token d’authentification, qui sera transmis à chaque nouvelle requête, permettant de vérifier les droits de l’utilisateur.
Ce token, défini selon le standard JWT, contient les informations de l’utilisateur et une date d’expiration, et est signé avant d’être transmis à l’utilisateur.
Le token ne peut pas être révoqué et ne doit donc pas avoir une date d’expiration trop lointaine.
Post-condition:
L’utilisateur est connecté si l’authentification s’est bien déroulée.
Scénario nominal:
L’utilisateur renseigne son nom d’utilisateur et son mot de passe dans les champs prévus
L’application valide les informations, et renvoie un token d’authentification à l’utilisateur, pour l’authentifier lors des requêtes suivantes
L’utilisateur est redirigé sur la page d’accueil, et l’interface affiche de nouveaux menus accessibles uniquement pour les utilisateurs connectés
Exceptions:
2a. Les identifiants sont incorrects
L’utilisateur renseigne son nom d’utilisateur et son mot de passe dans les champs prévus
Les informations ne sont pas validées par le serveur et l’utilisateur reçoit un message d’erreur
Un message s’affiche, signalant que les identifiants sont incorrects
UcCreateNewProject
Contexte de déclenchement:
L’utilisateur veut créer un nouveau projet.
Rôles:
Utilisateur
Résumé:
L’utilisateur crée un nouveau projet
Pré-conditions:
L’utilisateur est connecté.
Description:
Chaque projet a un utilisateur associé, qui est gestionnaire du projet. Ce gestionnaire est l’utilisateur ayant créé le projet.
Le nom du projet et sa description sont définis lors de la création du projet.
Post-condition:
Un nouveau projet est créé.
Scénario nominal:
L’utilisateur accède à la page de création d’un nouveau projet
L’utilisateur renseigne le nom et la description du projet à créer
L’utilisateur valide la création du projet
Le système crée un nouveau projet lié à l’utilisateur, et portant le nom et la description spécifiés
L’utilisateur est redirigé vers la page de gestion des projets
Exceptions:
3a. L’utilisateur annule la création du projet
L’utilisateur est redirigé vers la page de gestion des projets
UcUploadShapefiles
Contexte de déclenchement:
L’utilisateur veut charger des fichiers shapefile dans l’application.
Rôles:
Utilisateur
Résumé:
L’utilisateur téléverse des fichiers shapefile sur l’application.
Pré-condition:
L’utilisateur est connecté.
Description:
L’application permet de charger des données géographiques au format shapefile.
Le format shapefile nécessite au moins 3 fichiers différents pour représenter une donnée, avec les extensions
.shp
(fichier principal),.shx
(fichier d’index) et.dbf
(fichier d’attributs). Des fichiers supplémentaires peuvent être également fournis, par exemple un fichier.prj
décrivant le système de projection au format WKT.Chaque utilisateur peut téléverser des données shapefile sans restriction. Les données téléversées seront visibles par tous les autres utilisateur, et pourront être utilisées dans d’autres parties de l’application.
Post-condition:
Une nouvelle donnée géographique est disponible dans l’application.
Scénario nominal
L’utilisateur accède à la page de téléversement des fichiers
L’utilisateur sélectionne les fichiers de son shapefile sur son disque
L’utilisateur valide l’envoie des fichiers
L’application lit la liste des fichiers et les charge
L’application reprojette les données en WGS84
L’application enregistre les données en base de données
L’utilisateur est redirigée vers la page listant les données géographiques
Scénarios alternatifs:
5a. La projection n’est pas connue (pas de fichier de projection fourni)
Le chargement continue en considérant que les données sont projetées en WGS84
Exceptions:
4a. Il n’y a pas de fichier avec l’extension .shp dans la liste
Le chargement est arrêté
Un message d’erreur est affiché à l’utilisateur pour l’avertir qu’il y a des fichiers manquants
4b. Plusieurs fichiers avec l’extension .shp sont reconnus
Le chargement est arrêté
Un message est affiché à l’utilisateur, pour lui dire de charger les fichiers un par un
6a. Les données ne sont pas valides (ex: données 3D)
Le chargement est arrêté
Un message d’erreur est affiché à l’utilisateur lui disant que les données ne peuvent pas être chargées
UcDeleteExistingGeoData
Contexte de déclenchement:
L’utilisateur veut supprimer une donnée géographique de l’application.
Rôles:
Utilisateur
Résumé:
L’utilisateur supprime une donnée géographique de l’application.
Pré-condition:
L’utilisateur est connecté
Description:
N’importe quel utilisateur peut supprimer une donnée géographique (
GeoData
) enregistrée dans le système.L’application doit valider la suppression avant d’effectivement supprimer une donnée.
Cette validation échoue si les données sont déjà utilisées dans d’autres parties de l’application (par ex. si un autre utlisateur a ajouté cette donnée dans un modèle, voir
UcAddModelGeoData
). Cette donnée là ne pourra donc pas être supprimée.
Scénarion nominal:
L’utilisateur choisi la donnée à supprimer
L’utilisateur supprime la donnée
L’application autorise la suppression de la donnée
La donnée est supprimée
Exceptions:
3a. L’application n’autorise pas la suppression de la donnée (la donnée géographique est référencée par d’autres objets de l’application, par ex. dans un modèle)
Un message d’erreur est affiché à l’utilisateur, lui disant que la donnée est déjà utilisée et ne peut pas être supprimée
UcViewGeodataDetailsMap
Contexte de déclenchement:
L’utilisateur veut visualiser une donnée géographique de l’application.
Rôles:
Aucun
Résumé:
L’utilisateur visualise une donnée géographique de l’application sur un fond de carte.
Pré-condition:
L’utilisateur est connecté
Description:
L’utilisateur peut visualiser les données géographiques chargées dans l’application sur un fond de carte.
Scénario nominal:
L’utilisateur accède à la page de visualisation d’une donnée géographique
L’application lui renvoie les géométries des données et les affiche sur un fond de carte OSM
UcAddModelGeoData
Contexte de déclenchement:
L’utilisateur veut ajouter une donnée géospatiale dans un modèle
Rôles:
Utilisateur
Résumé:
L’utilisateur ajoute un attribut d’une donnée géospatiale déjà chargée dans l’application dans un modèle.
Pré-condition:
L’utilisateur est connecté
L’utilisateur est sur la page d’un modèle existant
Description:
L’utilisateur peut ajouter des données en entrée d’un modèle.
Ces données proviennent des attributs d’une donnée géospatiale.
Les données ne sont pas référencées directement mais au travers d’un objet intermédiaire (
ModelGeoData
), qui permet d’ajouter des méta-données supplémentaires.
Scénario nominal:
L’utilisateur est sur la page des détails d’un modèle
L’utilisateur sélectionne une donnée géospatiale dans l’application
L’utilisateur valide son choix
L’utilisateur sélectionne l’attribut de la donnée géospatiale
L’utilisateur valide son choix
L’application associe l’attribut de la donnée géospatiale au modèle avec des meta-données
L’utilisateur est de retour sur la page des détails du modèle
UcAddCategoryToModel
Contexte de déclenchement:
L’utilisateur veut ajouter une catégorie dans un modèle
Rôles:
Utilisateur
Résumé:
L’utilisateur ajoute une nouvelle catégorie dans un modèle
Pré-condition:
L’utilisateur est connecté
L’utilisateur est sur la page d’un modèle existant
Description:
L’utilisateur peut ajouter des catégories, qui correspondent aux différentes valeurs possible sur la carte de décision d’un modèle.
Une catégorie est une chaîne de caractères, et l’ordre des catégories dans un modèle représente la direction de préférence des catégories (la première est moins bonne que la dernière).
Scénario nominal:
L’utilisateur est sur la page des détails d’un modèle
L’utilisateur ajoute une nouvelle catégorie en précisant son nom
L’application ajoute cette catégorie à la fin de la liste des catégories
L’utilisateur est de retour sur la page de détail du modèle, avec la liste des catégories à jour
Exceptions:
2a. Le nom est déjà utilisé pour une catégorie dans ce modèle
L’application n’ajoute pas de catégorie
Un message d’erreur est affiché pour indiquer que le nom est déjà utilisé
UcEditCriterionRule
Contexte de déclenchement:
L’utilisateur veut modifier la règle d’un critère
Rôles:
Utilisateur
Résumé :
L’utilisateur édite la règle d’un critère, écrite en Python.
Pré-conditions :
L’utilisateur est connecté
L’utilisateur est sur la page d’un modèle existant
Un critère a déjà été créé dans le modèle
Description :
L’utilisateur peut modifier la règle d’un critère pour choisir quelles valeurs aura la donnée générée par ce critère.
La règle est décrite en écrivant du code en Python. Les données d’entrées sont des objets Python correspondant aux
ModelGeoData
et auxIntermediateData
du modèle, dont les attributs sont accessibles à travers les propriétés des objets (ex : si une donnée “Bathymetrie” est enregistrée dans le modèle, l’utilisateur peut écrireBathymetrie.Origine
dans la règle du critère pour accéder à l’attribut “Origine” de la donnée “Bathymetrie”).
Scénario nominal :
L’utilisateur est sur la page des détails d’un modèle
L’utilisateur voit la liste des critères de ce modèle
L’utilisateur choisi d’éditer la règle d’un critère
Une fenêtre s’ouvre, avec un champ texte permettant de modifier la règle existante
L’utilisateur écrit du code Python pour éditer la règle
L’utlisateur enregistre les modifications
UcProcessCriterion
Contexte de déclenchement:
L’utilisateur veut exécuter les règles d’un critère.
Rôles:
Utilisateur
Résumé:
L’utilisateur exécute les règles d’un critère.
Pré-conditions:
Un critère avec une règle définie existe dans un modèle
Description:
L’utilisateur peut lancer l’exécution des règles d’un critère pour construire la carte de ce critère.
Ce processus peut avoir une durée relativement longue (plusieurs secondes), un message s’affiche à la fin de l’exécution indiquant qu’elle s’est bien déroulée.
Si une erreur survient, un message d’erreur détaillé est affiché à l’utilisateur.
Scénario nominal:
L’utilisateur est sur la page des détails d’un modèle
L’utilisateur voit la liste des critères dans ce modèle
L’utilisateur choisi de lancer l’exécution des règles d’un critère
L’application crée une nouvelle donnée géographique à partir des règles d’un modèle
Un message de succès s’affiche à la fin de l’exécution
Exceptions:
4a. Une erreur survient lors de l’éxecution des règles (ex: erreur dans la définition des règles en python)
Un message d’erreur détaillé est affiché à l’utilisateur