Ajouts oubliés
This commit is contained in:
33
docs/1_Analyse/1.2_Hypotheses.md
Normal file
33
docs/1_Analyse/1.2_Hypotheses.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Hypothèses et dépendances
|
||||
|
||||
## Hypothèses
|
||||
|
||||
1. Est-ce qu'un admin devrait pouvoir créer un autre admin à l'intérieur du
|
||||
programme?
|
||||
- Je penserais que non, les administrateurs devraient avoir à passer par le
|
||||
DBA à l'extérieur pour ajouter d'autres administrateurs.
|
||||
2. Est-ce qu'on devrait utiliser un framework déjà existant pour
|
||||
l'authentification et les autorisations ou bien le faire nous-même?
|
||||
- Oui, un bon standard sera adéquat pour tous les cas de figures pertinents.
|
||||
3. Est-ce que la version originale d'une publication modifiée devrait être
|
||||
sauvegardée?
|
||||
- Pour des fins de journalisation et possiblement juridique, il serait mieux
|
||||
de garder des traces des modifications faites à une publication sans supprimer
|
||||
les anciennes versions.
|
||||
4. Est-ce qu'un invité devrait pouvoir voir le forum sans s'y inscrire?
|
||||
- C'est le standard pour les forums internet, à moins d'une raison
|
||||
spécifique pour un cas particulier, le forum sera public pour la lecture.
|
||||
5. Qu'arriverait-t'il si une catégorie viendrait à être supprimée?
|
||||
- L'administrateur aura le choix entre déplacer les fils dans une autre
|
||||
catégorie ou les supprimer.
|
||||
|
||||
## Dépendances
|
||||
|
||||
1. Ça prend un serveur web.
|
||||
2. Et une base de données.
|
||||
3. Un domaine pour les serveurs dns.
|
||||
4. Un framework d'identité ayant déjà été utilisé.
|
||||
5. Un serveur centralisé serait mieux pour la gestion de concurrence qu'un
|
||||
service cloud.
|
||||
6.
|
||||
|
31
docs/1_Analyse/1.3_UseCases/UC01.md
Normal file
31
docs/1_Analyse/1.3_UseCases/UC01.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# UC01 - [Afficher les Catégories]
|
||||
|
||||
Quelqu'un veut faire afficher les catégories du forum.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Invité ou mieux. (Primaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Il y a au moins une catégorie de préalablement créée dans le forum.
|
||||
|
||||
## Postconditions
|
||||
|
||||
L'invité voit les catégories créées dans le forum.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
1. L'invite fait afficher la liste des catégories du forum.
|
||||
2. La liste s'affiche.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* Aucune exception.
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* L'affichage doit se faire un moins d'une seconde.
|
||||
* Le système doit pouvoir traiter au moins 100 requêtes par minute sans
|
||||
ralentissement.
|
||||
|
29
docs/1_Analyse/1.3_UseCases/UC02.md
Normal file
29
docs/1_Analyse/1.3_UseCases/UC02.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# UC02 - [Créer une Catégorie]
|
||||
|
||||
Un Administrateur veut créer une catégorie dans le forum.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Administrateur (Primaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Aucune précondition.
|
||||
|
||||
## Postconditions
|
||||
|
||||
* Une catégorie a été créée dans le forum.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
1. Un Administrateur ajoute une nouvelle catégorie.
|
||||
2. Il choisit un nom pour cette catégorie.
|
||||
3. La catégorie est créée dans le Forum.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* La transaction a échoué parce que la catégorie existe déjà dans le forum.
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* Aucun.
|
30
docs/1_Analyse/1.3_UseCases/UC03.md
Normal file
30
docs/1_Analyse/1.3_UseCases/UC03.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# UC03 - [Modifier le nom d'une Catégorie]
|
||||
|
||||
Un Administrateur veut modifier le nom d'une catégorie existante dans le forum.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Administrateur (Primaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Le forum doit préalablement contenir au moins une catégorie.
|
||||
|
||||
## Postconditions
|
||||
|
||||
* Le nom d'une catégorie a changé dans le forum.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
1. Un Administrateur choisit une catégorie existante.
|
||||
2. Il modifie le nom de cette catégorie.
|
||||
3. Le nom est modifié pour cette catégorie.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* La transaction a échoué parce qu'une autre catégorie a déjà le même nom dans
|
||||
le forum.
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* L'affichage du nouveau nom doit se faire en moins de 10 secondes.
|
41
docs/1_Analyse/1.3_UseCases/UC04.md
Normal file
41
docs/1_Analyse/1.3_UseCases/UC04.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# UC04 - [Supprimer une Catégorie]
|
||||
|
||||
Un Administrateur veut supprimer une catégorie du Forum.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Administrateur (Primaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Il doit préalablement y avoir au moins une catégorie existante dans le Forum.
|
||||
|
||||
## Postconditions
|
||||
|
||||
* Une catégorie a été supprimée du Forum.
|
||||
* Les fils dans cette catégorie ont été supprimés ou déplacés vers une autre
|
||||
catégorie.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
```plantuml
|
||||
start
|
||||
:Supprimer une catégorie;
|
||||
switch(Quoi faire avec les fils?)
|
||||
case(\r\r\rLes supprimer)
|
||||
:Les fils sont supprimés;
|
||||
case(\r\r\rLes déplacer)
|
||||
:Choisir la catégorie destination;
|
||||
:Les fils sont déplacés vers la catégorie destination;
|
||||
endswitch
|
||||
stop
|
||||
```
|
||||
|
||||
## Exceptions
|
||||
|
||||
* Aucune.
|
||||
|
||||
## Besoins non-fonctionnels spécifiques
|
||||
|
||||
* Il doit être impossible d'afficher la catégorie supprimée au plus tard 10
|
||||
secondes après sa suppression.
|
28
docs/1_Analyse/1.3_UseCases/UC05.md
Normal file
28
docs/1_Analyse/1.3_UseCases/UC05.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# UC05 - [Lister les Fils]
|
||||
|
||||
Quelqu'un veut voir la liste des fils présents dans une catégorie.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Invité ou mieux. (Primaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Il y a au moins une catégorie avec au moins un fil dans le Forum.
|
||||
|
||||
## Postconditions
|
||||
|
||||
* Aucun changement.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
1. Quelqu'un choisit une catégorie pour faire afficher ses fils.
|
||||
2. Les fils sont affichés.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* Aucune.
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* La liste doit se rafraîchir automatiquement à chaque minute.
|
28
docs/1_Analyse/1.3_UseCases/UC06.md
Normal file
28
docs/1_Analyse/1.3_UseCases/UC06.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# UC06 - [Afficher un Fil]
|
||||
|
||||
Une personne veut faire afficher les publications d'un fil en particulier.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Invité ou mieux. (Primaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Au moins un fil existe dans une catégorie.
|
||||
|
||||
## Postconditions
|
||||
|
||||
* Aucun changement.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
1. Une personne choisit un fil à afficher.
|
||||
2. Les publications composant ce fil s'affichent.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* Aucune.
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* Le délai d'affichage devrait être de moins de 1 seconde.
|
29
docs/1_Analyse/1.3_UseCases/UC07.md
Normal file
29
docs/1_Analyse/1.3_UseCases/UC07.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# UC07 - [Créer un Fil]
|
||||
|
||||
Un utilisateur veut créer un fil de discussion.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Utilisateur ou mieux. (Primaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Il doit au moins y avoir une catégorie dans le forum.
|
||||
|
||||
## Postconditions
|
||||
|
||||
* Un fil a été ajouté à une catégorie.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
1. Un utilisateur choisit un titre pour le fil.
|
||||
2. Il créé la publication originale de ce fil ([UC11](UC11.md)).
|
||||
3. Le fil est ajouté au forum.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* L'échec de l'UC11 doit entraîner l'échec de cette transaction.
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* Le fil doit être créé en moins d'une seconde.
|
41
docs/1_Analyse/1.3_UseCases/UC08.md
Normal file
41
docs/1_Analyse/1.3_UseCases/UC08.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# UC08 - [Répondre au Fil]
|
||||
|
||||
Un utilisateur veut répondre à une publication dans un fil.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Utilisateur ou mieux. (Primaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Au moins un fil non-archivé existe dans le forum.
|
||||
|
||||
## Postconditions
|
||||
|
||||
* Une publication de réponse est ajoutée à un fil.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
```plantuml
|
||||
start
|
||||
:L'utilisateur visionne un fil;
|
||||
switch(Il répond)
|
||||
case(Au fil en tant que tel)
|
||||
case(À une publication en particulier dans le fil)
|
||||
:La publication à répondre est ajoutée à la publication en cours;
|
||||
endswitch
|
||||
:Il créé la publication de réponse (UC11);
|
||||
:La publication est ajoutée au fil;
|
||||
stop
|
||||
```
|
||||
|
||||
([UC11](UC11.md))
|
||||
|
||||
## Exceptions
|
||||
|
||||
* L'échec de l'UC11 doit entraîner l'échec de cette transaction.
|
||||
* La transaction doit échouer si le fil est archivé.
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* Mise à jour de l'affichage du fil en moins de 1 seconde.
|
30
docs/1_Analyse/1.3_UseCases/UC09.md
Normal file
30
docs/1_Analyse/1.3_UseCases/UC09.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# UC09 - [Épingler un Fil]
|
||||
|
||||
Un modérateur veut épingler un fil au haut d'une catégorie.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Modérateur ou mieux. (Primaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Au moins un fil existe dans le forum (Il peut être archivé et épinglé en même
|
||||
temps).
|
||||
|
||||
## Postconditions
|
||||
|
||||
* Un fil a été épinglé au haut de sa catégorie.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
1. Un modérateur sélectionne un fil dans une catégorie.
|
||||
2. Il l'épingle.
|
||||
3. Le fil est épinglé.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* Aucune.
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* Aucun.
|
30
docs/1_Analyse/1.3_UseCases/UC10.md
Normal file
30
docs/1_Analyse/1.3_UseCases/UC10.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# UC10 - [Archiver un Fil]
|
||||
|
||||
Un modérateur veut archiver un fil.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Modérateur ou mieux. (Primaire)
|
||||
* Utilisateurs (Secondaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Au moins un fil non-archivé existe dans le forum.
|
||||
|
||||
## Postconditions
|
||||
|
||||
* Un fil a été archivé et devient immuable.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
1. Un modérateur sélectionne un fil dans une catégorie.
|
||||
2. Il l'archive.
|
||||
3. Le fil est archivé.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* Aucune.
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* Le fil doit être archivé en moins de 1 seconde pour tous les utilisateurs.
|
31
docs/1_Analyse/1.3_UseCases/UC11.md
Normal file
31
docs/1_Analyse/1.3_UseCases/UC11.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# UC11 - [Créer une Publication]
|
||||
|
||||
Un utilisateur veut créer une publication dans le cadre d'une création de fil
|
||||
([UC07 - Créer un fil](UC07.md)) ou pour répondre à une autre publication dans
|
||||
un fil existant ([UC08 - Répondre au fil](UC08.md)).
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Utilisateur ou mieux. (Primaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Le déclenchement de [UC07 - Créer un fil](UC07.md) ou de [UC08 - Répondre au
|
||||
fil](UC08.md).
|
||||
|
||||
## Postconditions
|
||||
|
||||
* Une publication est ajoutée dans un fil.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
1. L'utilisateur écrit le contenu de sa publication.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* La transaction va échouer si l'utilisateur est banni.
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* Doit être appliquée avant la fin de son UC déclencheur.
|
||||
|
36
docs/1_Analyse/1.3_UseCases/UC12.md
Normal file
36
docs/1_Analyse/1.3_UseCases/UC12.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# UC12 - [Modifier une Publication]
|
||||
|
||||
Un utilisateur veut modifier une de ses publications.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Utilisateur ou mieux. (Primaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* L'utilisateur doit avoir préalablement publié au moins une publication dans le
|
||||
forum.
|
||||
|
||||
## Postconditions
|
||||
|
||||
* Une publication a été modifiée dans le forum.
|
||||
* Une date de modification a été ajoutée à la publication.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
1. Un utilisateur sélectionne une de ses propre publications.
|
||||
2. Il modifie le contenu de la publication.
|
||||
3. La publication est modifiée.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* La transaction va échouer si l'utilisateur est banni.
|
||||
* La transaction va échouer si l'utilisateur tente de modifier la publication
|
||||
d'un autre utilisateur.
|
||||
* La transaction va échouer si la publication est cachée.
|
||||
* La transaction va échouer si le fil est archivé.
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* La propagation de cette modification doit être faite en moins de 1 seconde.
|
||||
|
30
docs/1_Analyse/1.3_UseCases/UC13.md
Normal file
30
docs/1_Analyse/1.3_UseCases/UC13.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# UC13 - [Cacher une Publication]
|
||||
|
||||
Un modérateur veut cacher une publication pour des raisons de modération.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Modérateur ou mieux. (Primaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Au moins une publication existe dans le forum.
|
||||
|
||||
## Postconditions
|
||||
|
||||
* Une publication est cachée.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
1. Un modérateur choisit une publication à cacher.
|
||||
2. La publication est cachée.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* Aucune (Note: l'archivage d'un fil ne doit pas empêcher la censure d'une
|
||||
publication).
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* La propagation de cette modification doit être la plus rapide possible.
|
||||
|
30
docs/1_Analyse/1.3_UseCases/UC14.md
Normal file
30
docs/1_Analyse/1.3_UseCases/UC14.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# UC14 - [Afficher un Compte]
|
||||
|
||||
Quelqu'un veut faire afficher les informations d'un compte utilisateur du forum.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Invité ou mieux. (Primaire)
|
||||
* Utilisateur (Secondaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Au moins un compte utilisateur existe dans le forum.
|
||||
|
||||
## Postconditions
|
||||
|
||||
* Aucune.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
1. Quelqu'un choisit un compte à faire afficher.
|
||||
2. Un compte est affiché.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* Aucune.
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* Aucun.
|
||||
|
31
docs/1_Analyse/1.3_UseCases/UC15.md
Normal file
31
docs/1_Analyse/1.3_UseCases/UC15.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# UC15 - [Créer un Compte]
|
||||
|
||||
Un invité veut se créer un compte.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Invité (Primaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Aucun.
|
||||
|
||||
## Postconditions
|
||||
|
||||
* Un compte a été créé dans le forum.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
1. Un invité entre son nom d'utilisateur, son adresse courriel, et un mot de
|
||||
passe.
|
||||
2. (Optionnel) Il entre une description et/ou une signature.
|
||||
3. Le compte est créé.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* La transaction va échouer si le nom d'utilisateur ou le courriel existe déjà
|
||||
dans le forum.
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* Aucun.
|
32
docs/1_Analyse/1.3_UseCases/UC16.md
Normal file
32
docs/1_Analyse/1.3_UseCases/UC16.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# UC16 - [Modifier une description de Compte]
|
||||
|
||||
Un utilisateur veut modifier sa description dans son compte ou un administrateur
|
||||
veut modifier la description d'un compte utilisateur.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Utilisateur ou mieux. (Primaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Aucune.
|
||||
|
||||
## Postconditions
|
||||
|
||||
* La description de l'utilisateur a été modifiée.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
1. Un administrateur choisit un compte à modifier. (S'il n'est pas admin,
|
||||
l'utilisateur affiche son compte).
|
||||
2. Il modifie le contenu de la description.
|
||||
3. La description est modifiée.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* La transaction va échouer si l'utilisateur tente de modifier la description
|
||||
d'une autre utilisateur s'il n'est pas un administrateur.
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* Aucun.
|
32
docs/1_Analyse/1.3_UseCases/UC17.md
Normal file
32
docs/1_Analyse/1.3_UseCases/UC17.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# UC17 - [Modifier une signature de Compte]
|
||||
|
||||
Un utilisateur veut modifier sa signature dans son compte ou un administrateur
|
||||
veut modifier la signature d'un compte utilisateur.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Utilisateur ou mieux. (Primaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Aucune.
|
||||
|
||||
## Postconditions
|
||||
|
||||
* La signature de l'utilisateur a été modifiée.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
1. Un administrateur choisit un compte à modifier. (S'il n'est pas admin,
|
||||
l'utilisateur affiche son compte).
|
||||
2. Il modifie le contenu de la signature.
|
||||
3. La signature est modifiée.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* La transaction va échouer si l'utilisateur tente de modifier la signature
|
||||
d'une autre utilisateur s'il n'est pas un administrateur.
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* Aucun.
|
31
docs/1_Analyse/1.3_UseCases/UC18.md
Normal file
31
docs/1_Analyse/1.3_UseCases/UC18.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# UC18 - [Modifier un rôle de Compte]
|
||||
|
||||
Un administrateur veut modifier le rôle d'un compte utilisateur.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Administrateur (Primaire)
|
||||
* Utilisateur ou Modérateur (secondaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Au moins un compte admin et un compte utilisateur ou modérateur existe dans le
|
||||
forum.
|
||||
|
||||
## Postconditions
|
||||
|
||||
* Le rôle d'un utilisateur a changé.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
1. Un administrateur choisit un compte.
|
||||
2. Il choisit le rôle à donner au compte (Utilisateur ou Modérateur).
|
||||
3. Le rôle du compte est changé.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* Aucune.
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* Aucun.
|
30
docs/1_Analyse/1.3_UseCases/UC19.md
Normal file
30
docs/1_Analyse/1.3_UseCases/UC19.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# UC19 - [Bannir un Compte]
|
||||
|
||||
Un modérateur veut bannir un compte utilisateur.
|
||||
|
||||
## Acteur(s) primaires et secondaires
|
||||
|
||||
* Modérateur ou mieux. (Primaire)
|
||||
* Utilisateur ou modérateur. (Secondaire)
|
||||
|
||||
## Préconditions/déclencheur
|
||||
|
||||
* Au moins un compte Modérateur et un compte Utilisateur existe dans le forum.
|
||||
|
||||
## Postconditions
|
||||
|
||||
* Un compte a été banni du forum.
|
||||
|
||||
## Scénario de base
|
||||
|
||||
1. Un modérateur choisit le compte à bannir.
|
||||
2. Le compte est banni.
|
||||
|
||||
## Exceptions
|
||||
|
||||
* La transaction va échouer si le compte à bannir a le même rôle ou un rôle
|
||||
supérieur à celui qui fait le bannissement.
|
||||
|
||||
## Besoins non-fonctionnels spécifique
|
||||
|
||||
* La propagation doit se faire le plus rapidement possible.
|
76
docs/1_Analyse/1.3_UseCases/index.md
Normal file
76
docs/1_Analyse/1.3_UseCases/index.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# Cas d'utilisations
|
||||
|
||||
* [UC01 Afficher les Catégories](UC01.md)
|
||||
* [UC02 Créer une Catégorie](UC02.md)
|
||||
* [UC03 Modifier le nom d'une Catégorie](UC03.md)
|
||||
* [UC04 Supprimer une Catégorie](UC04.md)
|
||||
* [UC05 Lister les Fils](UC05.md)
|
||||
* [UC06 Afficher un Fil](UC06.md)
|
||||
* [UC07 Créer un Fil](UC07.md)
|
||||
* [UC08 Répondre au Fil](UC08.md)
|
||||
* [UC09 Épingler un Fil](UC09.md)
|
||||
* [UC10 Archiver un Fil](UC10.md)
|
||||
* [UC11 Créer une Publication](UC11.md)
|
||||
* [UC12 Modifier une Publication](UC12.md)
|
||||
* [UC13 Cacher une Publication](UC13.md)
|
||||
* [UC14 Afficher un Compte](UC14.md)
|
||||
* [UC15 Créer un Compte](UC15.md)
|
||||
* [UC16 Modifier une description de Compte](UC16.md)
|
||||
* [UC17 Modifier une signature de Compte](UC17.md)
|
||||
* [UC18 Modifier un rôle de Compte](UC18.md)
|
||||
* [UC19 Bannir un Compte](UC19.md)
|
||||
|
||||
```plantuml
|
||||
left to right direction
|
||||
|
||||
:Administrateur: as Admin
|
||||
:Modérateur: as Mod
|
||||
:Utilisateur: as User
|
||||
:Invité: as Guest
|
||||
|
||||
Mod <|- Admin
|
||||
User <|- Mod
|
||||
Guest <|- User
|
||||
|
||||
package Forum {
|
||||
usecase "UC01 - Afficher les Catégories" as UC01
|
||||
usecase "UC02/UC03/UC04 - Gérer une Catégorie" as UC02
|
||||
usecase "UC05 - Lister les Fils" as UC05
|
||||
usecase "UC06 - Afficher un Fil" as UC06
|
||||
usecase "UC07 - Créer un Fil" as UC07
|
||||
usecase "UC08 - Répondre au Fil" as UC08
|
||||
usecase "UC09/UC10 - Épingler/Archiver un Fil" as UC09
|
||||
usecase "UC11 - Créer une Publication" as UC11
|
||||
usecase "UC12 - Modifier une Publication" as UC12
|
||||
usecase "UC13 - Cacher une Publication" as UC13
|
||||
usecase "UC14 - Afficher un Compte" as UC14
|
||||
usecase "UC15 - Créer un Compte" as UC15
|
||||
usecase "UC16/UC17 - Modifier un Compte" as UC16
|
||||
usecase "UC18 - Modifier un Rôle de Compte" as UC18
|
||||
usecase "UC19 - Bannir un Compte" as UC19
|
||||
}
|
||||
|
||||
Guest --> UC01
|
||||
Guest --> UC05
|
||||
Guest --> UC06
|
||||
Guest --> UC14
|
||||
Guest --> UC15
|
||||
|
||||
User --> UC07
|
||||
User --> UC08
|
||||
|
||||
User --> UC12
|
||||
User --> UC16
|
||||
|
||||
Mod --> UC09
|
||||
Mod --> UC13
|
||||
Mod --> UC19
|
||||
|
||||
Admin --> UC02
|
||||
Admin --> UC18
|
||||
|
||||
UC07 ..> UC11 : <<include>>
|
||||
UC08 ..> UC11 : <<include>>
|
||||
|
||||
```
|
||||
|
111
docs/1_Analyse/1.4_Abstractions.md
Normal file
111
docs/1_Analyse/1.4_Abstractions.md
Normal file
@@ -0,0 +1,111 @@
|
||||
# Abstractions principales
|
||||
|
||||
Un forum est divisé par catégories générales (par exemple: un forum ayant
|
||||
comme intêret les aliments pourrait être divisé en 4 catégories qui seraient
|
||||
analogues aux 4 catégories alimentaires); ces sujets vont ensuite être divisés
|
||||
par fils - ou conversations (comme un fil dans la catégorie "Fruits et légumes"
|
||||
avec comme sujet "Comment aimez-vous manger des carottes?"). L'atôme du forum
|
||||
est la publication; un texte écrit par un utilisateur, soit pour démarrer une
|
||||
conversation, soit en réponse à la publication de départ, ou bien en réponse à
|
||||
une réponse en particulier.
|
||||
|
||||
Les forums sont modérés par des utilisateurs particuliers (des modérateurs) et
|
||||
des administrateurs responsables du contenu de ceux-ci, ils peuvent ainsi
|
||||
censurer du contenu inapproprié et bannir un utilisateur qui ne suit pas les
|
||||
conditions d'utilisation des forums.
|
||||
|
||||
## Modèle du domaine (Diagramme de classes simplifié)
|
||||
|
||||
```plantuml
|
||||
hide circles
|
||||
hide methods
|
||||
hide attributes
|
||||
|
||||
package Rôles {
|
||||
class "Administrateur" as Admin
|
||||
class "Modérateur" as Mod
|
||||
class "Utilisateur" as User
|
||||
class "Invité" as Guest
|
||||
}
|
||||
|
||||
Guest <|-- User
|
||||
User <|-- Mod
|
||||
Mod <|-- Admin
|
||||
|
||||
package Forum {
|
||||
class "Catégorie" as Category
|
||||
class "Fil" as Thread
|
||||
class "Publication" as Post
|
||||
class "Compte" as Account
|
||||
}
|
||||
|
||||
Category "1" --o "*" Thread
|
||||
Thread "1" --o "1" Post : Publication Originale
|
||||
Thread "1" ---* "*" Post
|
||||
|
||||
Post "1" --* "*" Post : Références
|
||||
Post "*" o-- "1" Account
|
||||
|
||||
User "1" --o "1" Account
|
||||
|
||||
```
|
||||
|
||||
## Glossaire
|
||||
|
||||
### Langage Commun
|
||||
|
||||
#### Invité (Guest)
|
||||
|
||||
Acteur qui utilise le système sans authentification.
|
||||
|
||||
#### Utilisateur (User)
|
||||
|
||||
Acteur authentifié dans un système.
|
||||
|
||||
#### Modérateur (Moderator)
|
||||
|
||||
Super-utilisateur avec certains droits sur le système et la responsabilité de
|
||||
garder le système sain d'utilisation.
|
||||
|
||||
#### Administrateur (Administrator)
|
||||
|
||||
Super-utilisateur qui gère le système et qui a ainsi tous les droits sur ce
|
||||
dernier.
|
||||
|
||||
### Jargon du domaine
|
||||
|
||||
#### Forum (Forum)
|
||||
|
||||
Souvent vu au pluriel pour désigner son ensemble, c'est l'environnement où des
|
||||
utilisateurs vont discuter sur des sujets désignés selon le contexte de
|
||||
l'endroit.
|
||||
|
||||
#### Catégorie (Category)
|
||||
|
||||
Division des forums par sujets généraux permettant une recherche plus facile des
|
||||
discussions passées.
|
||||
|
||||
#### Publication (Post)
|
||||
|
||||
Message écrit par un utilisateur, qui peut être en réponse à une autre
|
||||
publication ou pour démarrer une discussion.
|
||||
|
||||
#### Fil de discussion (Thread)
|
||||
|
||||
Ensemble de publications entre des utilisateurs qui composent une discussion.
|
||||
|
||||
#### Compte (Account)
|
||||
|
||||
Ensemble des informations reliés à un utilisateur (Nom d'utilisateur, adresse
|
||||
courriel, emplacement, etc.) qui peuvent où ne pas être vues par les autres
|
||||
utilisateurs.
|
||||
|
||||
#### Archivage (Archiving)
|
||||
|
||||
Mettre un fil de discussion dans un état où il est impossible d'ajouter à la
|
||||
conversation; effectivement rendre le fil uniquement lisible.
|
||||
|
||||
### Langage spécifique
|
||||
|
||||
Vu l'aspect général du projet, il n'y a pas vraiment de langage spécifique à
|
||||
utiliser.
|
76
docs/1_Analyse/1.5_Details.md
Normal file
76
docs/1_Analyse/1.5_Details.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# Analyse détaillée
|
||||
|
||||
```plantuml
|
||||
hide circles
|
||||
|
||||
package Rôles {
|
||||
hide methods
|
||||
hide attributes
|
||||
class "Administrateur" as Admin
|
||||
class "Modérateur" as Mod
|
||||
class "Utilisateur" as User
|
||||
class "Invité" as Guest
|
||||
}
|
||||
|
||||
Guest <|-- User
|
||||
User <|-- Mod
|
||||
Mod <|-- Admin
|
||||
|
||||
package Forum {
|
||||
class "Catégorie" as Category {
|
||||
Nom
|
||||
|
||||
AfficherCatégories()
|
||||
CréerCatégorie()
|
||||
ModifierNomCatégorie()
|
||||
SupprimerCatégorie()
|
||||
}
|
||||
class "Fil" as Thread {
|
||||
Titre
|
||||
EstÉpinglé
|
||||
EstArchivé
|
||||
|
||||
ListerFils()
|
||||
AfficherFil()
|
||||
CréerFil()
|
||||
RépondreAuFil()
|
||||
ÉpinglerFil()
|
||||
ArchiverFil()
|
||||
}
|
||||
class "Publication" as Post {
|
||||
Contenu
|
||||
ContenuModifié
|
||||
DateDePublication
|
||||
DateDeModification
|
||||
EstCachée
|
||||
|
||||
CréerPublication()
|
||||
ModifierPublication()
|
||||
CacherPublication()
|
||||
}
|
||||
class "Compte" as Account {
|
||||
Pseudo
|
||||
Courriel
|
||||
Description
|
||||
Signature
|
||||
Rôle
|
||||
|
||||
AfficherCompte()
|
||||
CréerCompte()
|
||||
ModifierDescription()
|
||||
ModifierSignature()
|
||||
ModifierRôle()
|
||||
BannirCompte()
|
||||
}
|
||||
}
|
||||
|
||||
Category "1" --o "*" Thread
|
||||
Thread "1" --o "1" Post : Publication Originale
|
||||
Thread "1" ---* "*" Post
|
||||
|
||||
Post "1" --* "*" Post : Références
|
||||
Post "*" o-- "1" Account
|
||||
|
||||
User "1" --o "1" Account
|
||||
|
||||
```
|
63
docs/1_Analyse/1.6_Robust.md
Normal file
63
docs/1_Analyse/1.6_Robust.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# Analyse de robustesse
|
||||
|
||||
```plantuml
|
||||
left to right direction
|
||||
actor "Invité" as Guest
|
||||
actor "Utilisateur" as User
|
||||
actor "Modérateur" as Mod
|
||||
actor "Administrateur" as Admin
|
||||
|
||||
Mod <|-- Admin
|
||||
User <|-- Mod
|
||||
Guest <|-- User
|
||||
|
||||
|
||||
boundary "Écran Catégories" as CategoryView
|
||||
boundary "Écran Fils" as ThreadView
|
||||
boundary "Écran Publications" as PostView
|
||||
|
||||
boundary "Écran Comptes" as AccountView
|
||||
boundary "Écran Bannir" as BanView
|
||||
boundary "Écran Changer Rôle" as RoleView
|
||||
boundary "Écran Gestion Catégories" as ModCatView
|
||||
|
||||
control "Catégories" as CategoryController
|
||||
control "Fils" as ThreadController
|
||||
control "Publications" as PostController
|
||||
control "Comptes" as AccountController
|
||||
|
||||
entity "Catégorie" as CategoryModel
|
||||
entity "Fil" as ThreadModel
|
||||
entity "Publication" as PostModel
|
||||
entity "Compte" as AccountModel
|
||||
|
||||
Guest -> CategoryView
|
||||
Guest --> ThreadView
|
||||
Guest --> PostView
|
||||
Guest --> AccountView
|
||||
|
||||
Mod --> BanView
|
||||
|
||||
Admin --> ModCatView
|
||||
Admin --> RoleView
|
||||
|
||||
ModCatView --> CategoryController
|
||||
RoleView --> AccountController
|
||||
BanView --> AccountController
|
||||
CategoryView --> CategoryController
|
||||
ThreadView --> ThreadController
|
||||
PostView --> PostController
|
||||
AccountView --> AccountController
|
||||
|
||||
CategoryController --> CategoryModel
|
||||
|
||||
ThreadController --> ThreadModel
|
||||
ThreadController --> PostModel
|
||||
|
||||
PostController --> PostModel
|
||||
PostController --> AccountModel
|
||||
|
||||
AccountController --> AccountModel
|
||||
|
||||
```
|
||||
|
Reference in New Issue
Block a user