🖨️ Version PDF
Nous avons cette fois 2 acteurs “métier” principaux :
On peut aussi avoir 2 acteurs techniques qui sont en fait des appels à des API pour l’envoi d’email ou de fax (quoique les fax tombent en désuètudes à notre époque, mais pourquoi pas !):
Un organisme de formation pourrait également apparaître comme un acteur externe puisqu’il reçoit la demande d’inscription. Cependant, si l’organisme n’accède jamais directement au système, il est parfaitement acceptable de représenter uniquement le service de fax comme acteur technique. Bref, tout ceci n’est pas obligatoire.
Représentation sous la forme d’un tableau. L’employé.e peut :
Lorsqu’une demande est créée :
Ces opérations étant obligatoires, elles peuvent être modélisées par des <<include>> !
<<include>>
Le responsable formation peut :
@startuml title TP - Gestion des demandes de formation left to right direction actor "Employé" as Employe actor "Responsable\nFormation" as Responsable actor "Service de\nMessagerie" as Mail actor "Service de Fax" as Fax actor "Organisme de\nFormation" as Organisme rectangle "Système de gestion des formations" { usecase "Consulter\nle catalogue" as UC_CATALOGUE usecase "Initialiser une demande\nde formation" as UC_DEMANDE usecase "Enregistrer\nla demande" as UC_ENREG usecase "Notifier le responsable\npar e-mail" as UC_MAIL_RESP usecase "Sélectionner\nune session" as UC_SESSION usecase "Consulter l'état\ndes demandes" as UC_ETAT usecase "Annuler\nune demande" as UC_ANNULER usecase "Traiter\nune demande" as UC_TRAITER usecase "Accepter\nune demande" as UC_ACCEPTER usecase "Inscrire\nl'employé" as UC_INSCRIRE usecase "Envoyer le bon de\ncommande par fax" as UC_FAX usecase "Ajouter\nune formation" as UC_AJOUT usecase "Modifier\nune formation" as UC_MODIF usecase "Supprimer\nune formation" as UC_SUPPR usecase "Modifier une session\n(date / lieu)" as UC_MODIF_SESSION } ' --------------------- ' Employé ' --------------------- Employe --> UC_CATALOGUE Employe --> UC_DEMANDE Employe --> UC_SESSION Employe --> UC_ETAT Employe --> UC_ANNULER ' --------------------- ' Responsable formation ' --------------------- Responsable --> UC_CATALOGUE Responsable --> UC_TRAITER Responsable --> UC_SESSION Responsable --> UC_ACCEPTER Responsable --> UC_INSCRIRE Responsable --> UC_AJOUT Responsable --> UC_MODIF Responsable --> UC_SUPPR Responsable --> UC_MODIF_SESSION ' --------------------- ' INCLUDE ' --------------------- UC_DEMANDE ..> UC_ENREG : <<include>> UC_DEMANDE ..> UC_MAIL_RESP : <<include>> UC_ANNULER ..> UC_MAIL_RESP : <<include>> UC_INSCRIRE ..> UC_FAX : <<include>> ' --------------------- ' EXTEND ' --------------------- UC_SESSION ..> UC_TRAITER : <<extend>>\n[aucune session choisie] ' --------------------- ' Systèmes externes ' --------------------- Mail --> UC_MAIL_RESP Fax --> UC_FAX Organisme --> UC_FAX @enduml
L’énoncé indique :
« La demande est automatiquement enregistrée […] et transmise au responsable de formation par e-mail. »
Vous comprenez que le comportement est donc obligatoire ! donc… on utilise un :
@startuml left to right direction actor Employé actor "Responsable formation" as Responsable rectangle "Gestion des formations" { usecase "Consulter catalogue" as UC1 usecase "Créer une demande" as UC2 usecase "Consulter ses demandes" as UC3 usecase "Annuler une demande" as UC4 usecase "Traiter une demande" as UC5 usecase "Sélectionner une session" as UC6 usecase "Inscrire l'employé" as UC7 usecase "Ajouter une formation" as UC8 usecase "Modifier une formation" as UC9 usecase "Supprimer une formation" as UC10 usecase "Modifier les sessions" as UC11 } Employé --> UC1 Employé --> UC2 Employé --> UC3 Employé --> UC4 Responsable --> UC1 Responsable --> UC5 Responsable --> UC6 Responsable --> UC7 Responsable --> UC8 Responsable --> UC9 Responsable --> UC10 Responsable --> UC11 UC6 ..> UC5 : <<extend>>\n[session non choisie] @enduml
Le Use Case Etablir une demande peut être détaillé en d’autres Uses Cases