TP : UML / JAVA
MIF17

 

Objectifs

Travailler les liens entre UML pour la modélisation et un langage objet tel que JAVA pour la programmation effective. Explorer la pro et la rétro-ingénierie objet. Utiliser des patrons de conception.

Environnement

Outils UML (ceux installés à l'UFR informatique), IDE Java.

Déroulement

On vous fournit le logiciel suivant : tetris.zip, qui a été récupéré sur le site http://www.javafr.com/ (http://www.javafr.com/codes/TETRIS-SOUL-TPS_23041.aspx)

Lancement du logiciel

Décompactez le zip, ouvrez les sources dans Eclipse, lancez le logiciel.

Compréhension du fonctionnement

Etudiez les sources du logiciel.

Utilisez les capacités de rétro-ingénierie des logiciels UML à votre disposition pour générer à partir des sources diagrammes de classes et diagrammes de séquences permettant d'en mieux comprendre le fonctionnement interne.

Réingénierie du logiciel

Le jeu présenté comporte un unique paquetage.

Menez une opération de refactoring pour obtenir au moins trois paquetages, l'un concernant l'IHM, un autre la couche applicative-contrôle, un autre le métier, dont les dépendances seront contrôlées. Il conviendra peut-être de créer de nouvelles classes, de déplacer des méthodes, etc. Une des contraintes qu'on se donne est de pouvoir facilement ajouter de nouveaux types de pièce au jeu.

Une méthode à suivre pourrait être de commencer par faire un modèle métier du tétris : terrain, pièces, etc. Le modèle métier pourra tourner tout seul dès que vous lancer une partie : les pièces arrivent, tombent, se superposent, la partie se finit. Il est alors possible de rajouter une fenêtre graphique interactive qui présente le terrain à chaque instant, et récupère les commandes de l'utilisateur pour les transmettre au contrôleur qui actualisera le modèle métier en conséquence.

Amélioration du logiciel

Vous ajouterez une fenêtre graphique qui fournit en temps réel quelques statistiques (par exemple le score, le nombre de pièces jouées, un histogramme de la hauteur de la pile en fonction du temps, etc.)

Rapport

Rédigez un rapport expliquant clairement le fonctionnement du logiciel modifié, en utilisant tous les diagrammes UML nécessaires. Le cahier des charges est le suivant : vous devez expliquer ce logiciel à un programmeur Java que vous ne connaissez pas, mais qui doit préparer un version réseau du jeu de tétris.

Rendu du travail

Le TP est à rendre pour pour le lundi 1er décembre.

Il est impératif d'aller voir et de respecter les instructions générales pour le rendu de TP.

En fonction du groupe de TP auquel vous appartenez, vous enverrez à votre encadrant yannick.prie (a) liris.cnrs.fr ou lionel.medini (a) liris.cnrs.fr ou LotfiSofiane.settouti (a) liris.cnrs.fr une archive (zip uniquement) contenant : 

N'oubliez pas de demander un accusé de réception.

Remarque

Le rapport sur le projet comprendra deux parties

    1. La description et les explications sur le fonctionnement du logiciel réalisés, en s'appuyant sur des diagrammes UML
    2. Toutes vos remarques sur la réalisation du TP : outil(s) utilisé(s), facilité de refactoring, etc.

Barême