Cas Ascenseur – UML

Transcription

Cas Ascenseur – UML
Diagramme de cas d!utilisation
Cas Ascenseur – UML
Bernard ESPINASSE
2003
L!objet est de développer un système de contrôle de plusieurs ascenseurs devant servir
dans un immeuble à nombreux étages. Le problème qui nous intéresse ici est la logique
requise pour bouger les ascenseurs entre les étages avec les contraintes suivantes :
Permet :
• une description générale de comment le système sera utilisé
• une présentation générale des fonctionnalités attendues du système
• est compréhensible aussi bien par les utilisateurs que les professionnels
• Chaque ascenseur possède un ensemble de boutons, un pour chaque étage. Ils
s!illuminent quand ils sont pressés et conduisent à amener l!ascenseur à l!étage
correspondant. L!illumination est annulée quand l!ascenseur est à l!étage
correspondant ;
• Chaque étage, excepté le premier et le dernier, ont 2 boutons, un pour demander un
ascenseur en montée et un autre pour demander un ascenseur en descente. Ces
boutons s!illuminent quand ils sont pressés. L!illumination est annulée quand
l!ascenseur arrive à l!étage et quand il évolue dans le sens demandé.
• Lorsqu!un ascenseur n!a pas de demande, il reste à l!étage où il est avec ses portes
fermées.
Les spécifications de notre système seront faites en UML (Unified Modeling Language).
1
Cas Ascenseur – UML – Bernard ESPINASSE
2
Cas Ascenseur – UML – Bernard ESPINASSE
Scénarios de base
Diagramme de classes
Les scénarios de base peuvant être extraits du cas d!utilisation sont les suivants :
Le premier diagramme de classes développé :
• Le passager presse le bouton d!étage ;
n
• Le système détecte le bouton d!étage pressé ;
1
1
n
• L!ascenseur bouge à l!étage demandé ;
• Les portes de l!ascenseur s!ouvrent ;
• Le passager rentre dans l!ascenseur et presse le bouton de l!ascenseur précisant
l!étage demandé ;
m
• Les portes de l!ascenseur se ferment ;
• L!ascenseur va à l!étage demandé ;
• Les portes de l!ascenseur s!ouvrent ;
• Le passager sort de l!ascenseur ;
• Les portes de l!ascenseur se ferment.
Cas Ascenseur – UML – Bernard ESPINASSE
3
Cas Ascenseur – UML – Bernard ESPINASSE
4
Diagramme de séquence
Diagramme de collaboration
• le diagramme de séquence montre les séquences explicites de messages souhaitables
pour modéliser un système temps réel, alors que le diagramme de collaboration montre
les relations entre objets.
Décrit l!ensemble des interactions entre les classes et montre les relations entre les objets
Diagramme de collaboration pour le bouton de la cabine
Diagramme de séquence pour le bouton de la cabine
Cas Ascenseur – UML – Bernard ESPINASSE
5
Diagramme de séquence
Cas Ascenseur – UML – Bernard ESPINASSE
6
Diagramme de collaboration
Diagramme de collaboration pour le bouton de l!étage
Diagramme de séquence pour le bouton de l!étage
Cas Ascenseur – UML – Bernard ESPINASSE
7
Cas Ascenseur – UML – Bernard ESPINASSE
8
Diagramme de classes détaillé
Génération de code
Description détaillée d!opération
Module Name
Module Type
Input Argument
Output Argument
Error Message
File Access
File Change
Method Invoke
Narative
Cas Ascenseur – UML – Bernard ESPINASSE
9
Elevator_Control::Elevator_control_loop
Method
None
None
None
None
None
button::illuminate,
button::cancel_illumination, door::open,
door::close, elevator::move, elevator::stop
Cas Ascenseur – UML – Bernard ESPINASSE
Speudo-code généré
void elevator_control (void)
{
while a button has been pressed
if button not on
{
button::illuminate;
update request list;
}
else if elevator is moving up
{
if there is no request to stop at floor f
Elevator::move one floor up;
else
<Some more code>
}
10