IFT 3901 Analyse et Conception des Logiciels Analyse et

Transcription

IFT 3901 Analyse et Conception des Logiciels Analyse et
Automne 2001
Petko Valtchev
! #"$$%
1
! #"$$%
2
1
Cas d’Utilisation
(Scénarios)
Diarg. Classes
(Analyse)
Diarg. Classes
(Conception)
Diarg. Interactions
(Conception)
Conception
Diarg. Activités*
Diagr. composants
Diarg. Interactions*
(Analyse)
Scénarios détaillés*
* = élément optionnel
! #"$$%
! "
#
3
$
%
Énoncé:
l
Un logiciel embarqué de contrôle pour l’ascenseur d’un immeuble de m
étages. L’ascenseur se déplace entre les étages selon les contraintes
suivantes:
1.
L’ascenseur a m boutons, un par étage. Lorsque appuyé, un bouton
s’allume et force l’ascenseur à visiter l’étage correspondant. A
l’arrivée à cet étage, le bouton s’éteint.
2.
Chaque étage, à l’exception du premier et du dernier, ont deux
boutons pour appeler l’ascenseur, l’un afin de monter plus haut et
l’autre afin de descendre. Lorsque appuyé, un tel bouton s’allume et
ne s’éteint que lorsque l’ascenseur visite l’étage pour ensuite s’en
aller dans la bonne direction.
3.
Lorsqu’il est vide et n’est pas demandé à un étage, l’ascenseur
reste sur l’étage actuel avec ses portes fermées.
! #"$$%
4
2
%
&
$
Le diagramme de contexte:
l
CdU « Appel de l’ascenseur »
l
CdU « Indication de l’étage désiré »
l
CdU « Utilisation complète de l’ascenseur »
Ascenseur
« includes »
Appel ascenseur
Utilisation ascenseur
Usager
« includes »
Indication étage
'
1.
! #"$$%
(
%
5
)
*
Usager A (User A) appuie sur le bouton (floor button) Up à l’étage X afin de se
rendre à l’étage Y.
2.
Le bouton Up est allumé.
3.
L’ascenseur (elevator) arrive à l’étage X.
4.
Le bouton Up est éteint.
5.
Les portes de l’ascenseur (elevator doors) s’ouvrent.
6.
Le compteur de temps d’arrêt est actionné. Usager A entre dans l’ascenseur.
7.
Usager A appuie sur le bouton (elevator button ) pour l’étage Y.
8.
Le bouton Y est allumé.
9.
Les portes se ferment après la fin du temps d’arrêt.
10.
L’ascenseur monte à l’étage Y.
11.
Le bouton Y est éteint.
12.
Les portes de l’ascenseur s’ouvrent.
13.
Le compteur de temps d’arrêt est actionné. Usager A descend de l’ascenseur.
14.
Les portes se ferment après la fin du temps d’arrêt.
! #"$$%
6
3
%
&
$
+
,
Le diagramme de
transitions d’états
10 états, dont :
• Attente événement (1)
• Traitement requête (2)
• Test du besoin d’arrêt (3)
• Mouvement continu (4)
• Arrêt (5)
12 événements, dont :
• Bouton (ét./asc.) appuyé
• Bouton non allumé
• Ascenseur arrêté
• Étage-cible atteint
%
! #"$$%
&
$
7
+
,
Le diagramme des classes
d’Analyse
(cas général : n ascenseurs)
Système à dominance
matériel
Classes (A) = dispositifs matériel
Classes domaine incluent:
• le contrôle (Contrôleur Asc.)
• l’interface (Bouton Ét./Asc.)
! #"$$%
8
4
%
&
$
Diagramme de Séquence système
+
,
Contracts des Opérations
Système
(effet sur le modèle domaine)
Ascenseur
Usager
Allumer Bouton Up; Mettre en marche
Ascenseur; Arrêter Ascenseur à
l’étage X; Éteindre Bouton Up;
Ouvrir Portes ascenseur;
Actionner Compteur temps
d’arrêt.
pressFloorButton(X)
elevatorAtRequestedFloor
pressElevatorButton(Y)
elevatorAtRequestedFloor
Allumer Bouton Y; Fermer Portes à la fin du
temps d’arrêt; Mettre en marche
Ascenseur; Arrêter Ascenseur à l’étage
Y; Éteindre Bouton Y; Ouvrir Portes
ascenseur; Actionner Compteur temps
d’arrêt; Fermer Portes à la fin du temps
d’arrêt;
%
! #"$$%
&
$
9
+
,
Les CRC des classes métier
Qui (c’est-à-dire, quelle classe?)
fait quoi (c.-à-d., quel message?)
afin de remplir le contrat?
Ex.
Elevator Controller
! #"$$%
10
5
Cas d’Utilisation
(Scénarios)
Diarg. Classes
(Analyse)
Diarg. Interactions
(Conception)
Conception
Diarg. Classes
(Conception)
Détails
Algorithmiques
Cartes CRC
(Analyse)
Une Approche :
1. Construire les diagrammes d’interaction pour chaque scénario
2. Construire le diagramme de classes détaillé (conception)
3. Faire la conception détaillée de chaque classe
1. Structures de données (types) pour les attributs
2. Algorithmes pour les méthodes
! #"$$%
- '
1.
11
(
(
(
Usager A (User A) appuie sur le bouton (floor button) Up à l’étage X afin de se rendre à
l’étage Y.
2.
Le bouton Up informe le contrôleur (elevator controller) de la requête.
3.
Le contrôleur envoie un message au bouton Up pour qu’il s’allume.
4.
Le contrôleur envoie une série de messages à l’ascenseur pour qu’il se déplace à l’étage X.
5.
Le contrôleur envoie un message au bouton Up pour qu’il s’éteigne.
6.
Le contrôleur envoie un message aux portes (elevator doors) pour qu’elles s’ouvrent.
7.
Le contrôleur actionne le compteur de temps d’arrêt. Usager A entre dans l’ascenseur.
8.
Usager A appuie sur le bouton (elevator button ) pour l’étage Y.
9.
Le bouton Y informe le contrôleur de la requête.
10.
Le contrôleur envoie un message au bouton Y pour qu’il s’allume.
11.
Le contrôleur envoie un message aux portes pour qu’elles se ferment après le délai d’arrêt.
12.
Le contrôleur envoie une série de messages à l’ascenseur pour qu’il se déplace à l’étage Y.
13.
Le contrôleur envoie un message au bouton Y pour qu’il s’éteigne.
14.
Le contrôleur envoie un message aux portes pour qu’elles s’ouvrent afin de laisser A sortir.
15.
Le contrôleur actionne le compteur de temps d’arrêt.
16.
Le contrôleur envoie un message aux portes pour qu’elles se ferment après le délai d’arrêt.
! #"$$%
12
6
.
%
# #
( /
Attention,
numérotation
non-standard!
.
! #"$$%
%
0
13
! #"$$%
%
14
7
0 1
Aspects complémentaires de la conception d’une classe
(objet) :
l
Description de protocole : établit l’interface d’un objet
l
l
l
les messages qu’il peut recevoir,
les opération qu’il exécute en réponse d’un message.
Description d’implantation : présente les détails d’implantation pour
chaque opération associée à un message.
l
l
l
informations sur la partie dissimulée de l’objet,
détails internes concernant les structures de données qui
représentent les attributs de l’objet,
détails des procédures qui réalisent les opérations qu’elles soient
exportées par le protocole ou bien cachées.
! #"$$%
.
15
%
! #"$$%
16
8

Documents pareils