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.
Outils UML (ceux installés à l'UFR informatique), IDE Java.
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)
Décompactez le zip, ouvrez les sources dans Eclipse, lancez le logiciel.
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.
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.
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.)
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.
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.
Le rapport sur le projet comprendra deux parties