Résumé de la démarche Etude de cas de groupe Qui intervient? Acteurs Que peut-on faire? Cas d utilisation Qui fait quoi? Diagramme des cas d utilisation Comment cela doit-il être fait? Diagrammes de séquence Que manipule-t-on? Classes, diagramme de classe, diagramme d état Comment implanter? Diagramme d activité 2 Comment procéder? Cahier des Charges Acteurs Diagramme des cas d utilisation Cas d utilisation Cas d utilisation Diagrammes de séquence Diagramme de classe Diagrammes d état Diagrammes d activité 3 4 Acteurs «Un agenda de groupe est un logiciel qui permet à différentes personnes de» Administrateur saisie des congés officiels «on distinguera les jours de congés officiels, communs pour tout le monde, que seul l administrateur peut modifier» Service du personnel validation des demandes de congés «Ceux-ci [ ] sont automatiquement mis à jour dans l agenda si le service du personnel valide la demande» 5 Recherche des cas d utilisation () On souhaite réaliser un agenda de groupe. Un agenda de groupe est un logiciel qui permet à différentes personnes de gérer leur agenda personnel et de rendre disponible une partie de leur agenda à d autres personnes (leur secrétaire par exemple). De plus, une fonctionnalité intéressante du logiciel est qu il permet de trouver automatiquement une date de réunion entre différentes personnes en s appuyant sur leurs agendas respectifs. gérer son agenda consulter un autre agenda demander une réunion 6
Recherche des cas d utilisation (2) Nous appellerons tâche tout ce qu un individu est susceptible de rentrer dans son agenda. On distingue deux types de tâches : les tâches ponctuelles : [ ] les tâches périodiques [ ] De plus, chaque tâche est bien évidemment caractérisée par un titre et un descriptif. Il est aussi possible d associer à chaque tâche une alarme [ ]. Un utilisateur peut définir des groupes de personnes. [ ]. Pour chaque tâche, il peut préciser quels groupes ont quels droits sur la tâche. ajouter une tâche associer une alarme définir des groupes associer des droits aux tâches Recherche des cas d utilisation (3) Il est aussi possible de définir des familles de tâches. Pour chaque famille, on peut aussi définir des droits par défaut [ ]. Les différentes fonctionnalités du logiciel sont les suivantes : Modification/Consultation/Impression de son propre agenda [ ] Spécification des jours de congés : on distinguera les jours de congés officiels [ ] que seul l administrateur peut modifier, des jours personnels. Ceux-ci sont demandés grâce au logiciel et sont automatiquement mis à jour dans l agenda si le service du personnel valide, tandis que dans le cas contraire, un message électronique motivant le refus est renvoyé au demandeur définir des familles, définir des droits par défaut modification/consultation/impression de son agenda spécifier des congés officiels demander/valider/invalider des congés personnels 7 8 Recherche des cas d utilisation (4) demande de réunion : [ ]. Le logiciel cherche la première tranche horaire libre. Si cette tranche convient, un message de confirmation est envoyé aux différents participants. Si tous confirment[ ] demander une réunion répondre à une demande de réunion Cas d utilisation : synthèse Gestion des tâches ajout de tâches périodiques, ponctuelles modification et suppression de tâches associer une alarme Gestion des groupes et des familles Gestion des réunions demander une réunion répondre à une demande de réunion Demande de congés Consulter un agenda Saisir les dates des congés officiels Répondre à une demande de congés 9 0 Diagramme des cas d utilisation () Diagramme des cas d utilisation (2) Gestion des tâches Gestion groupes Ajouter une tâche ponctuelle Créer un groupe «extends» Associer des droits Modifier/Supprimer un groupe Ajouter une tâche périodique Associer une alarme Demander des congés Modifier une tâche Consulter une tâche Gestion familles Créer une famille Définir des droits Supprimer une tâche Modifier/Supprimer une famille 2 2
Diagramme des cas d utilisation (3) Diagramme des cas d utilisation (4) Consulter son agenda Consulter une tâche «extends» Administrateur Saisir les congés officiels Consulter un agenda Vérifier les droits d accès s Valider les congés personnels Demander une réunion Répondre à une demande de réunion Service du Personnel Invalider les congés personnels 3 4 Ajouter une tâche ponctuelle Diagrammes de séquence Demande_création r:= demande_carac Créer(carac) 5 6 Supprimer une tâche Demander une réunion (cas OK) Demande_création Serveur demander_réunion p:=dem_participants d:=demander_date(p) c:=dem_créneau Autre util. t:=quelle_tâche? [t existe] Confirmer_suppression [t n existe pas] supprimer r:=ok?(d) avertir [r=oui] confirmer valider faire_confirmer envoyer_conf(c) valider c:=confirmer avertir a {b-a < 2 jours} b Message_erreur Étiquettes et contraintes, non vues en cours 7 8 3
Demander une réunion (cas Refus) Demander une réunion (cas absent) Serveur demander_réunion p:=dem_participants d:=demander_date(p) c:=dem_créneau Autre util. Serveur demander_réunion p:=dem_participants d:=demander_date(p) c:=dem_créneau Autre util. r:=ok?(d) r:=ok?(d) r:=action?(qui) [r=oui] confirmer [ c. c=refus] info_refus(qui) info_décision(r) faire_confirmer envoyer_conf(c) Info_décision(r) c:=confirmer Avertir(r) a {b-a < 2 jours} b r:=action?(qui) [r=oui] confirmer info_absence(qui) info_décision(r) faire_confirmer envoyer_conf(c) Info_décision(r) c:=confirmer Avertir(r) a {b-a > 2 jours} b [r=annuler] [r=annuler] 9 20 Diagramme de classes Trouver les classes () On souhaite réaliser un agenda de groupe. Un agenda de groupe est un logiciel qui permet à différentes personnes de gérer leur agenda personnel et de rendre disponible une partie de leur agenda à d autres personnes (leur secrétaire par exemple). De plus, une fonctionnalité intéressante du logiciel est qu il permet de trouver automatiquement une date de réunion entre différentes personnes en s appuyant sur leurs agendas respectifs. on s intéresse particulièrement aux substantifs un exemple (ici, la secrétaire) ne constitue ni une classe, ni une instance obligatoire 2 22 Trouver les classes (2) Nous appellerons tâche tout ce qu un individu est susceptible de rentrer dans son agenda. On distingue deux types de tâches : les tâches ponctuelles : elles sont caractérisées par un jour et une heure de début, ainsi qu un jour et une heure de fin ; les tâches périodiques : elles sont caractérisées par : la première occurrence, qui a les mêmes caractéristiques qu une tâche ponctuelle, la fréquence [ ], éventuellement une date et une heure [de fin]. De plus, chaque tâche est bien évidemment caractérisée par un titre et un descriptif. Il est aussi possible d associer à chaque tâche une alarme, pour laquelle on peut préciser le délai avec lequel elle va se déclencher. En rouge, les classes En bleu, leurs champs En vert, leur cardinalité Structure suggérée tâche ponct périod. Structure préférable ponct périod. 23 Trouver les classes (3) Un utilisateur peut définir des groupes de personnes. Chaque groupe est constitué d une ou plusieurs personnes et/ou un ou plusieurs autres groupes. Pour chaque tâche, il pourra être précisé quels groupes ont quels droits sur la tâche. Les droits possibles sont : nul [ ], averti [ ], titre [ ], descriptif [ ], modification [ ], général [ ] Il est aussi possible de définir des familles de tâches, telles que loisirs, travail, etc. Pour chaque famille, on peut aussi définir des droits par défaut, appliqués à chaque création de tâche. Ceci permet par exemple d attribuer automatiquement pour les tâches concernant le travail les droits suivants : à sa secrétaire, le droit général, à ses collègues proches, le droit descriptif, et aux autres le droit averti. les droits indiqués sont imposés les familles ne sont que des exemples 24 4
Trouver les classes (4) Parmi les tâches, on distinguera les réunions, impliquant plusieurs personnes. Une réunion a un propriétaire, et tous les participants doivent avoir au moins le droit titre. Structure suggérée : réunion hérite de tâche Contrainte autre : droit «titre» pour les participants à une réunion Trouver les classes (5) Les différentes fonctionnalités du logiciel sont les suivantes : Modification/Consultation/Impression de son propre agenda. Trois vues sont possibles : par jour, par semaine, par mois. Spécification des jours de congés : on distinguera les jours de congés officiels, communs pour tout le monde, que seul l administrateur peut modifier, des jours personnels. Ceux-ci sont demandés grâce au logiciel et sont automatiquement mis à jour dans l agenda si le service du personnel valide la demande, tandis que dans le cas contraire, un message électronique motivant le refus est renvoyé au demandeur. les jours de congés officiels et personnels sont des spécialisation de la notion de jour de congés. 25 26 Personne..* possède membre Structure du schéma Groupe Droits participants Famille constitué de type util. périodique Droits est 0.. associée {complet} Officiels {complet} Personnels 27 Personne + créer(nom) Groupe + créer(nom) + modifiernom(n) - résumé : string - début : date - durée : date + créer(n, r, deb, dur) + consulter() + supprimer() Structures des classes Famille + créer(nom) Droit - type : droit + créer(d) util. + créer() périodique - période : date - fin : date + créer(n, r, deb, dur, pér, fin) + créer() + consulter() + ajouter_tâche() - délai : date + créer(d) - déclencher() + arrêter() - intitulé : string + créer() officiels + créer(déb, dur) personnels + valider() + annuler() 28 Quels diagrammes faire? Diagrammes d état Rappel diagramme d état : transitions possibles entre les différents états d un objet Conséquence diagramme d état associé à une classe nécessaire de recenser les classes à états l état doit se déduire des variables de l instance de l objet, donc il y en a peut-être à rajouter Classes à état alarme réunion congés personnels 29 30 5
Point de jonction, non vu en cours Acceptée Activée Confirmée Demandée délai dépassé En marche Refusée Annulée N.B. : c est certainement une faute du cahier des charges, mais il n a jamais été prévue qu on pouvait annuler une réunion confirmée. 3 32 personnels Demandés Validés Annulés Diagrammes d activité 33 34 Ajouter_tâche : version simple Ajouter_tâche : version améliorée Créer_tâche Créer_tâche Nouvelle tâche Insérer_tâche Insérer_tâche 35 36 6
Créer_tâche Associer_droits Droit La famille de la tâche fait partie des renseignements Demander renseignements Insérer droits par défauts [Non] Associer? Insérer [Oui] Nouvelle Créer_ [Oui] Modifier droits? [Non] Choisir groupe Choisir droit Créer Associer droits 37 38 7