le gestionnaire ascenseur
Transcription
le gestionnaire ascenseur
Gestion d'un ascenseur Un 1er exercice : un système de gestion d'ascenseurs Michel Lemoine ONERA - Centre de Toulouse / DPRS SAE [email protected] Michel Lemoine DPRS / SAE 1 Gestion d'un ascenseur Plan • • • • • Description de l’existant Cahier des Charges (CdC) initial CdC Revisité (début) Les Cas d’Utilisation & les Scénarios Les Diagrammes de Séquences Michel Lemoine DPRS / SAE 2 Gestion d'un ascenseur Description de l'existant Considérons un bâtiment constitué de n étages (n ≥ 2). Chaque étage est desservi par m ascenseurs (m ≥ 1). Chaque ascenseur est équipé d'une porte interne. Cette porte interne reste ouverte lorsqu'un ascenseur est arrêté à un étage et est inactif. Elle est refermée dès qu'une demande de mouvement est demandée. Chaque ascenseur est également équipé de n+1 boutons représentant respectivement les n étages accessibles et une alarme. Le fait d'appuyer sur un des n boutons est une demande de déplacement vers un étage. Un voyant associé au bouton confirme la prise en compte de la demande. Chaque ascenseur peut parcourir les n étages. Lorsqu'un ascenseur se déplace, son arrivée à un étage est signalée par un capteur installé dans la cage de l'ascenseur. Chaque étage dispose de m portes palières. Par étage il y a p boutons d'appel (2 ≥ p ≥ 1) permettant de signaler une demande externe. p = 1 simple appel, p= 2 appel avec indication de montée ou de descente Michel Lemoine DPRS / SAE 3 Gestion d'un ascenseur Le Cahier des Charges initial (très) simplifié • • Problème : concevoir le gestionnaire d'un ascenseur dont les aspects matériels ne sont pas totalement figés : n, m et p de la description de l'existant sont des paramètres Principales fonctionnalités d'un ascenseur : – – – – • • monter / descendre à la demande d'utilisateurs externe / interne s'arrêter à un étage signaler une panne et, selon la panne, s'arrêter ... Contrainte impérative : respect des règles de sécurité Optimisation : selon des critères fonctionnels interchangeables à envisager – minimisation du temps d'attente des utilisateurs – minimisation des mouvements des ascenseurs • Autre contrainte : concevoir un système évolutif (1 puis plusieurs ascenseurs) Michel Lemoine DPRS / SAE 4 Gestion d'un ascenseur Début du CdC Revisité (1/2) Identification des principales fonctionnalités : Exigences (pas d'ordre entre les fonctionnalités) E1 : prendre en compte tout appel externe de l'ascenseur E2 : sélectionner un étage depuis l'intérieur de la cabine (prendre en compte un appel interne) E3 : déplacer l'ascenseur (monter/descendre) E3.1 : choisir l'étage à atteindre E3.2 : aller à l'étage E3.3 : s'arrêter au bon étage E4 : prendre en compte tout dysfonctionnement E4.1 : détecter et signaler tout dysfonctionnement E4.2 : prendre la décision qui s'impose (arrêter l'ascenseur, bloquer l'ouverture la fermeture des portes …) Michel Lemoine DPRS / SAE 5 Gestion d'un ascenseur Début du CdC Revisité (2/2) Contraintes par ordre décroissant Impératives C0 : fonctionnement manuel par la maintenance (pompier ou équipementier) C1 : porte interne et palière fermées pendant le déplacement de l'ascenseur C2 : toutes les demandes doivent être satisfaites Relâchables C3 : arrêt seulement devant une porte palière C4 : satisfaction d'un critère d'optimisation (par ex. minimisation du mouvement de l'ascenseur) C5 : aptitude à gérer plusieurs ascenseurs Michel Lemoine DPRS / SAE 6 Gestion d'un ascenseur Identification des principales fonctionnalités : Vérification du CdC Revisité • • • • Levée d'ambiguïté : par ex. distinction entre appel interne (sélection d'un étage) et appel externe (appel avec indication ou pas du sens) Moins d'imprécision : par ex. toutes les demandes doivent être satisfaites Meilleure identification des contraintes et de leur priorité : apparition de la maintenance ... Michel Lemoine DPRS / SAE 7 Gestion d'un ascenseur Identification des principales fonctionnalités : Validation du CdC Revisité Construction d'une matrice de traçabilité • en lignes : les références au texte source • en colonnes : les exigences (Ex.y) et les contraintes (Cz) • mettre un 1 dans la case (i,j) quand une référence (i) est satisfaite par une exigence ou une contrainte de la colonne (j) Validation • une ligne vide traduit la non prise en compte d'un élément du CdC • une colonne vide traduit la présence d'une exigence ou d'une contrainte non rattachée à un élément du CdC Il est impératif de justifier pourquoi une colonne ou une ligne peut être vide Michel Lemoine DPRS / SAE 8 Gestion d'un ascenseur G e st i o n na ir e d 'A sce n se u r Dé p a nn e u r B P E xte rn e G é re r A p p e l (fro m G e sti o n n a i re d 'A sce n se u r) M a i n te n i r (f ro m G esti on n a ire d' Asc en seu r ) B P In te rn e <<e xte n d >> <<i n cl u d e >> Panne Dé p l a ce r L IFT Dé te cte r / TRa i te r (fro m G e sti o n n a i re d 'A sce n se u r) (fro m G e sti o n n a i re d 'A sce n se u r) B P A l a rm e Cp a te u r E ta g e Michel Lemoine DPRS / SAE 9 Gestion d'un ascenseur V&V du diagramme de Cas d’Utilisation • • • • • • • Cpateur Æ Capteur TRaiter Æ Traiter BP Alarme n’est pas une spécialisation de Panne. Panne communique directement avec Dépanneur, et est donc en dehors de notre système Gérer Appel fait appel à Déplacer (via un <<includes>>) <<includes>> entre Détecter/Traiter doit être converti en <<extends>> Les communications entre BP E/I et Gérer Appel sont dans les 2 sens De même entre LIFT et Déplacer Michel Lemoine DPRS / SAE 10 Gestion d'un ascenseur B P E xte rn e (fro m Use Ca se V i e w) Dé p a nn e u r B P A l a rm e (fro m Use Ca se V i e w) (fro m Use Ca se V i e w) G é re r A p p e l M a i n te n i r (fro m G e sti o n n a i re d 'A sce n se u r) (fro m G e sti o n n a i re d 'A sce n se u r) B P In te rn e (fro m Use Ca se V ie w ) <<i n cl u d e >> <<e xte n d >> <<e xte n d >> Ca p te u r E t ag e (fro m Use Ca se V i e w) Panne Dé p l a ce r Dé te ct e r / T ra i t e r (fro m G e sti o n n a i re d 'A sce n se u r) (fro m G e sti o n n a i re d 'A sce n se u r) L IFT (fro m Use Ca se V i e w) Michel Lemoine DPRS / SAE 11 (fro m Use Ca se V i e w) Gestion d'un ascenseur Dictionnaire de données Identificateur Type Définition Panne Acteur Un événement prévu par le système signalant un problème Gérer Appel UC Prise en compte et traitement des appels, dans tous les cas possible … … … Michel Lemoine DPRS / SAE 12 Gestion d'un ascenseur Les acteurs • • • Panne : toute panne qui envoie un signal pour signaler un problème BP Alarme : spécialisation de Panne BP Externe, BP Interne : respectivement les boutons d’appels niveau porte palière et à l’intérieur de l’ascenseur • Dépanneur : représente toute personne, i.e. pompier et vrai dépanneur, autorisée à dépanner l’ascenseur • LIFT : représente l’ascenseur physique, i.e. les moteurs, la cabine, la porte interne et toutes les portes externes. NB : le choix arbitraire permet de raisonner sur le matériel physique considéré comme externe à notre système. Tout autre choix conduirait à un système différent et certainement tout aussi valide • Capteur Etage : représente un capteur qui permet de savoir devant quel étage passe l’ascenseur Michel Lemoine DPRS / SAE 13 Gestion d'un ascenseur Les fonctionnalités ou Cas d’Utilisation • • • • Gérer Appel : macro fonctionnalité qui prend en compte les appels, que l’ascenseur soit au repos ou en mouvement Maintenir : macro fonctionnalité permettant de maintenir i.e. d’effectuer les travaux de maintenance préventifs et correctifs. A noter que suite à une panne une maintenance peut être activée. Déplacer : macro fonctionnalité en charge de gérer les déplacements de l’ascenseur i.e. de choisir l’étage, de lancer les moteurs et de s’arrêter quand nécessaire Détecter / Traiter : macro fonctionnalité qui prend en compte toutes les pannes (y compris l’alarme) et qui réagit i.e. prend les décisions qui s’imposent (p. ex. l’arrêt ou l’appel à la maintenance) Michel Lemoine DPRS / SAE 14 D1 D3 B P E xte rn e L IFT D2 G é re r A p p e l Dé p l a ce r (fro m G e sti o n n a i re d 'A sce n se u r) (fro m G e sti o n n a i re d 'A sce n se u r) D4 <<e xte n d >> Ca p te u r E t ag e D5 B P In te rn e Dé te cte r / T ra i te r Panne (fro m G e sti o n n a i re d 'A sce n se u r) <<e x te n d>> D7 D6 B P A l a rm e M a i n te n i r (fro m G e sti o n n a i re d 'A sce n se u r) Michel Lemoine DPRS / SAE 15 Dé p a nn e u r Révision du Cas d’Utilisation Gestion d'un ascenseur Gestion d'un ascenseur Identification des scénarios des dialogues/interactions • • • • • • D1 et D2 : dialogues qui concernent la gestion des appels D3 : dialogues relatifs à la communication entre le système et l’ascenseur physique D4 : dialogues relatifs à l’envoi d’information d’un capteur vers le système D5 : dialogues relatifs aux pannes et à leur détection D6 : cas particulier de l’alarme D7 : dialogues relatifs à la maintenance Remarquez le sens des flèches ! Michel Lemoine DPRS / SAE 16 Gestion d'un ascenseur Identification des scénarios de D1 et D2 • Scénarios nominaux – UN seul appui sur un BP I ou E, non allumé, avec ascenseur en mouvement – UN seul appui sur un BP I ou E, non allumé, avec ascenseur arrêté • Scénarios non nominaux – – – – UN (ou plusieurs) appui(s) sur un BP I ou E allumé, avec ascenseur en mouvement Appui sur un BP I ou E correspondant à l’étage où est arrêté l’ascenseur Appui sur un BP I ou E et pas de retour du système : le voyant ne s’allume pas ! … Michel Lemoine DPRS / SAE 17 Gestion d'un ascenseur Identification des scénarios de D4 • Scénarios nominaux – Passage devant un capteur et envoi de signal au gestionnaire • Scénarios non nominaux – Capteur d’étage en panne Et ainsi de suite avec tous les dialogues ! Michel Lemoine DPRS / SAE 18 Gestion d'un ascenseur Description d’un scénario nominal : D1 ou D2 1. L’ascenseur est en mouvement 2. On appuie sur un BP I non allumé 3. Le signal du BP I (avec le n° d’étage) est envoyé au gestionnaire de l’ascenseur (on introduit un objet qui est en fait le récipiendaire du service Gérer Appel) 4. Le gestionnaire de l’ascenseur délègue à un gestionnaire des requêtes la demande 5. Le gestionnaire des requêtes prend en compte la requête et renvoi une acceptation 6. Le gestionnaire d’ascenseur renvoi un signal autorisant l’allumage du BP I Michel Lemoine DPRS / SAE 19 Gestion d'un ascenseur Description d’un autre scénario nominal : D1 ou D2 1. L’ascenseur est arrêté 2. Idem jusqu’à 6 inclus 7. Le gestionnaire de l’ascenseur demande au gestionnaire de requête que est le prochain étage à servir 8. Le gestionnaire de requête renvoi le n° d’étage 9. Le gestionnaire de l’ascenseur demande aux moteurs de démarrer (dialogue D3) Michel Lemoine DPRS / SAE 20 Gestion d'un ascenseur Rôle des scénarios et des diagrammes de séquences • • Identifier Qui fait quoi ? QUI : Ies objets responsables des traitements (de l’interaction) – le gestionnaire de l’ascenseur – le gestionnaire des requêtes • QUOI : les services, éventuellement décomposés en sous-services délégués à d’autres objets – Gérer Appel : service principale (c’est un cas d’utilisation) – Gérer demande : sous-service – Quel prochain étage ? Michel Lemoine DPRS / SAE 21 Gestion d'un ascenseur g : G e sti o n n a i re A sce n se u r : B P E xte rn e l : G e sti o n n a i re Re q u ê te s G é re r A p p e l (n °) A p p a rti e n t? (n °): b o o l e a n A l l u m e r() P ro ch a i n E ta g e () n° d é m a rre r(h a u t/b a s) Michel Lemoine DPRS / SAE 22 : L IFT Gestion d'un ascenseur Exemple de diagramme de séquence • Objets – g (Gestionnaire Ascenseur) – L (Gestionnaire Requêtes) • Opérations – – – – – Gérer Appel (g) Appartient? (l) Allumer (acteur : BP Externe) Prochain Etage (l) Demarrer (acteur : LIFT) Michel Lemoine DPRS / SAE 23 Gestion d'un ascenseur G est ionn aire A s ce nse ur Ges tionnaire R equêtes Proc hainEtage EtageC ourant Etat H au tBas Gérer Appel(n°étage) D ép la cer( ) D étec terT ra iter() N bR equêtes 1 1 Arrêter() Diagramme de classes du gestionnaire Michel Lemoine DPRS / SAE 24 In it( ) Ajouter(n°) App ar tien t? (n °) : b oo le an Pro c hainEtage() : n° R etirer(n°) Gestion d'un ascenseur Commentaires • • Seulement 2 classes car on a considéré ni la gestion des portes palières, ni la gestion de la porte de l’ascenseur Attributs de Gestionnaire d’Ascenseur : – EtageCourant : étage devant lequel l’ascenseur est arrêté ou étage devant lequel il vient de passer – ProchainEtage : étage à atteindre ou rien – Etat : en panne ou pas – HautBas : sens du mouvement • Opérations de Gestionnaire d’Ascenseur : ... Est-on sûr de ne pas avoir oublié d’attributs et/ou d’opérations ? Il faut passer au diagramme états-transition ! Michel Lemoine DPRS / SAE 25 Diagramme états-transitions pour le Gestionnaires de Requêtes Gestion d'un ascenseur In i t In i t d o / i n i ti a l i sa ti o n Re ti re ( n ° ) / Nb Re q u ê te s-1 ... P ro ch a i n E ta g e In te rm é d i a i re d o/ NO P A p p a rti e n t? ( n ° ) A j o u te ( n ° ) / Nb R eq u ê te s+1 ... Michel Lemoine DPRS / SAE P a nn e 26 Gestion d'un ascenseur Commentaires • • • Le diagramme est-il robuste, i.e. tous les cas ont-ils été pris en compte ? Quelles actions sont à effectuer ? Quid du diagramme états-transitions de Gestionnaire d ’Ascenseur ? Michel Lemoine DPRS / SAE 27