31 3 142KB
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
}
10