On cherche ici à créer un outil de simulation et de pilotage d'un système complexe d'ascenseurs tels qu'on les trouve dans de très grands buildings. Le système devra être totalement paramétrable : nombre de cabines, nombre d'étages desservis par chaque cabine, possibilité d'exceptions (étages non desservis par une cabine donnée), tour de différentes hauteurs, ascenseurs rapides desservant en priorité la partie haute de la tour.

En première partie, vous devrez modéliser le fonctionnement d'un tel mécanisme et proposer une architecture pour le système de contrôle : comment décider quand un client appelle un ascenseur quelle cabine lui envoyer.

En deuxième partie, vous devrez réaliser le mécanisme proposé, et démontrer sa validité en créant un environnement de test. Cet environnement de test permettra de visualsier graphiquement les objets mis en jeu (cabines, moteurs, portes) et gèrera les commandes associées. Vous devrez connecter votre système de contrôle à votre environnement de test pour valider le fonctionnement. Vous pourrez utiliser des threads et des mécanismes de synchronisation pour réaliser ce projet.

Selon le temps disponible, vous pourrez ensuite ajouter un générateur d'événements qui animera automatiquement l'ensemble.