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