cnam:nfe114:secureuml

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
cnam:nfe114:secureuml [2024/06/04 19:16] jcheroncnam:nfe114:secureuml [2024/06/05 01:31] (Version actuelle) – [Exemples] jcheron
Ligne 17: Ligne 17:
 Regroupent les permissions en fonction des responsabilités des utilisateurs. Regroupent les permissions en fonction des responsabilités des utilisateurs.
 === Permissions === === Permissions ===
-Actions autorisées que les rôles peuvent effectuer sur les objets du système.+Actions autorisées que les rôles peuvent effectuer sur les objets du système (ressources).
  
 ==== Diagrammes de Secure-UML ==== ==== Diagrammes de Secure-UML ====
Ligne 49: Ligne 49:
 === Assignation des Permissions === === Assignation des Permissions ===
 Les permissions sont associées aux rôles plutôt qu'aux utilisateurs individuels. Les permissions sont associées aux rôles plutôt qu'aux utilisateurs individuels.
 +
 +==== Exemples ====
 +Gestion d'une bibliothèque :
 +
 +=== Rôles : ===
 +
 +
 +  * Bibliothécaire : Un utilisateur avec le rôle de Bibliothécaire.
 +  * Membre : Un utilisateur avec le rôle de Membre.
 +
 +=== Permissions : ===
 +  * Lecture : Inclut les actions de lire, emprunter et retourner des livres.
 +  * Modification : Inclut les actions d'ajouter, modifier et supprimer des livres.
 +  * Administration : Inclut l'action de gérer les emprunts.
 +=== Cas d'utilisation : ===
 +  * Lecture : Lire un livre, emprunter un livre, retourner un livre.
 +  * Modification : Ajouter un livre, modifier les informations sur un livre, supprimer un livre.
 +  * Administration : Gérer les emprunts.
 +
 +Dans ce diagramme, les rôles "Bibliothécaire" et "Membre" sont associés aux permissions appropriées.
 +
 +Les permissions sont ensuite reliées aux cas d'utilisation correspondants, montrant comment les actions du système sont contrôlées par les rôles et les permissions.
 +=== Secure Use case diagram ===
 +<html><div class="imageB"></html>
 +<uml>
 +@startuml
 +
 +!define ROLE Actor
 +!define PERMISSION Actor/ #pink;line:red;line.bold;text:red
 +
 +' Définition des rôles
 +ROLE Bibliothécaire
 +ROLE Membre
 +
 +' Définition des permissions
 +PERMISSION Lecture
 +PERMISSION Modification
 +PERMISSION Administration
 +
 +' Acteurs (rôles) et leurs permissions
 +Bibliothécaire -down-> Lecture : <<hasPermission>>
 +Bibliothécaire -down-> Modification : <<hasPermission>>
 +Bibliothécaire -down-> Administration : <<hasPermission>>
 +
 +Membre -down-> Lecture : <<hasPermission>>
 +
 +' Cas d'utilisation du système
 +Lecture --> (Lire un livre) : <<canDo>>
 +Lecture --> (Emprunter un livre) : <<canDo>>
 +Lecture --> (Retourner un livre) : <<canDo>>
 +Modification --> (Ajouter un livre) : <<canDo>>
 +Modification --> (Modifier les informations sur un livre) : <<canDo>>
 +Modification --> (Supprimer un livre) : <<canDo>>
 +Administration --> (Gérer les emprunts) : <<canDo>>
 +
 +@enduml
 +
 +</uml>
 +<html></div></html>
 +== Source ==
 +
 +<sxh ;gutter:false>
 +@startuml
 +
 +!define ROLE Actor
 +!define PERMISSION Actor/ #pink;line:red;line.bold;text:red
 +
 +' Définition des rôles
 +ROLE Bibliothécaire
 +ROLE Membre
 +
 +' Définition des permissions
 +PERMISSION Lecture
 +PERMISSION Modification
 +PERMISSION Administration
 +
 +' Acteurs (rôles) et leurs permissions
 +Bibliothécaire -down-> Lecture : <<hasPermission>>
 +Bibliothécaire -down-> Modification : <<hasPermission>>
 +Bibliothécaire -down-> Administration : <<hasPermission>>
 +
 +Membre -down-> Lecture : <<hasPermission>>
 +
 +' Cas d'utilisation du système
 +Lecture --> (Lire un livre) : <<canDo>>
 +Lecture --> (Emprunter un livre) : <<canDo>>
 +Lecture --> (Retourner un livre) : <<canDo>>
 +Modification --> (Ajouter un livre) : <<canDo>>
 +Modification --> (Modifier les informations sur un livre) : <<canDo>>
 +Modification --> (Supprimer un livre) : <<canDo>>
 +Administration --> (Gérer les emprunts) : <<canDo>>
 +
 +@enduml
 +</sxh>
 +
 +=== Secure Class Diagram ===
 +
 +<html><div class="imageB"></html>
 +<uml>@startuml
 +
 +!define ROLE Class
 +!define PERMISSION Class
 +
 +note "<<AuthorizationConstraint>>\n<u>context:</u>read, return\n<u>pre:</u>this.livres.contains(unLivre)" as N1
 +
 +' Définition des classes pour les rôles
 +ROLE Bibliothécaire <<role>>
 +ROLE Membre <<role>>
 +
 +' Définition des permissions
 +PERMISSION Lecture <<permission>> {
 +  + read(unLivre): execute
 +  + return(unLivre): execute
 +  + borrow(unLivre):execute
 +}
 +PERMISSION Modification <<permission>> {
 +  + add():execute
 +  + modify():execute
 +  + delete():execute
 +}
 +PERMISSION Administration <<permission>> {
 +  + manage():execute
 +}
 +
 +' Association des rôles avec les permissions
 +Bibliothécaire -down-> Lecture : <<hasPermission>>
 +Bibliothécaire -down-> Modification : <<hasPermission>>
 +Bibliothécaire -down-> Administration : <<hasPermission>>
 +
 +Membre -down-> Lecture : <<hasPermission>>
 +
 +' Classes du système
 +class Livre <<Resource>> {
 +  +title: String
 +  +author: String
 +  +ISBN: String
 +  +getDetails(): String
 +}
 +
 +class Emprunt <<Resource>> {
 +  +startDate: Date
 +  +endDate: Date
 +  +isOverdue(): Boolean
 +}
 +
 +class Bibliothèque <<Resource>> {
 +  +add(Livre):execute
 +  +modify(Livre):execute
 +  +delete(Livre):execute
 +  +borrow(livre: Livre, membre: Membre): Emprunt
 +  +return(emprunt: Emprunt): execute
 +  +manage(List<Emprunt>): execute
 +}
 +
 +' Permissions pour les méthodes de la classe Bibliothèque
 +Lecture --> Livre : <<use>>
 +Lecture --> Bibliothèque::borrow : <<canDo>>
 +Lecture --> Bibliothèque::return : <<canDo>>
 +
 +Modification --> Bibliothèque::add : <<canDo>>
 +Modification --> Bibliothèque::remove : <<canDo>>
 +Modification --> Bibliothèque::modify : <<canDo>>
 +Modification --> Livre : <<use>>
 +
 +Administration --> Bibliothèque::manage : <<canDo>>
 +Administration --> Emprunt : <<use>>
 +Lecture .. N1
 +@enduml
 +</uml>
 +<html></div></html>
 +
 +== Source ==
 +
 +<sxh ;gutter:false>
 +@startuml
 +
 +!define ROLE Class
 +!define PERMISSION Class
 +
 +' Définition des classes pour les rôles
 +ROLE Bibliothécaire <<role>>
 +ROLE Membre <<role>>
 +
 +' Définition des permissions
 +PERMISSION Lecture <<permission>> {
 +  + read(): execute
 +  + return(): execute
 +  + borrow():execute
 +}
 +PERMISSION Modification <<permission>> {
 +  + add():execute
 +  + modify():execute
 +  + delete():execute
 +}
 +PERMISSION Administration <<permission>> {
 +  + manage():execute
 +}
 +
 +' Association des rôles avec les permissions
 +Bibliothécaire -down-> Lecture : <<hasPermission>>
 +Bibliothécaire -down-> Modification : <<hasPermission>>
 +Bibliothécaire -down-> Administration : <<hasPermission>>
 +
 +Membre -down-> Lecture : <<hasPermission>>
 +
 +' Classes du système
 +class Livre <<Resource>> {
 +  +title: String
 +  +author: String
 +  +ISBN: String
 +  +getDetails(): String
 +}
 +
 +class Emprunt <<Resource>> {
 +  +startDate: Date
 +  +endDate: Date
 +  +isOverdue(): Boolean
 +}
 +
 +class Bibliothèque <<Resource>> {
 +  +add(Livre):execute
 +  +modify(Livre):execute
 +  +delete(Livre):execute
 +  +borrow(livre: Livre, membre: Membre): Emprunt
 +  +return(emprunt: Emprunt): execute
 +  +manage(List<Emprunt>): execute
 +}
 +
 +' Permissions pour les méthodes de la classe Bibliothèque
 +Lecture --> Livre : <<use>>
 +Lecture --> Bibliothèque::borrow : <<canDo>>
 +Lecture --> Bibliothèque::return : <<canDo>>
 +
 +Modification --> Bibliothèque::add : <<canDo>>
 +Modification --> Bibliothèque::remove : <<canDo>>
 +Modification --> Bibliothèque::modify : <<canDo>>
 +Modification --> Livre : <<use>>
 +
 +Administration --> Bibliothèque::manage : <<canDo>>
 +Administration --> Emprunt : <<use>>
 +
 +@enduml
 +</sxh>
 +
 +
  • cnam/nfe114/secureuml.1717521385.txt.gz
  • Dernière modification : il y a 9 mois
  • de jcheron