C305 - Devoirs à rendre
eMia@ge - M1S1 - 2006-2007

Les devoirs 1 et 2 fonctionnent ensemble, le devoir 3 n'est pas encore déterminé.

Vous pouvez utiliser l'outil Poseidon, disponible à l'UFR informatique, pour réaliser vos diagrammes UML, générer le code, etc.

Devoir 1

L'objectif général est de mettre en place une application graphique dans laquelle deux équipes de joueurs s'affrontent sur un terrain de jeu, avec une balle. Chaque équipe a pour objectif d'amener la balle dans l'en-but de l'adversaire. Les joueurs peuvent se passer la balle au sein d'une équipe, et se la prendre lorsqu'ils sont assez proches. Chaque équipe agit suivant une tactique, qui détermine ce que font les joueurs en fonction de l'état du jeu. Chaque joueur a une ensemble de caractéristiques (Comportement) qui modifient sa façon de réagir/réussir par rapport à ce qui lui est prescris par la Tactique. Une équipe doit pouvoir changer de tactique.

1.1- Compréhension du code fourni

On vous fournit un fichier zip contenant package logo composé de trois classes (code repris de Jacques Ferber, légèrement modifié). Ces trois classes définissent une application graphique permettant de contrôler une tortues logo qui dessine sur un espace.

Pour commencer, on compilera l'application, pour en vérifier le fonctionnement. Cette application fournira une base pour l'application à concevoir et développer, vous devez donc vous plonger un minimum dans le code pour bien comprendre comment elle fonctionne. Dessiner le diagramme de classe de l'application à la main. Utiliser un outil pour obtenir ce diagramme par rétro-ingénierie. Dessinez un diagramme de séquence d'une utilisation typique de l'application : par exemple dessin par un utilisateur d'un triangle équilatéral.

1.2- Réingénierie : des joueurs et une balle

Dans cette partie, on veut avoir plusieurs joueurs, qui se déplacent au hasard, se saluent par leur nom (et éventuellement se passent la balle) lorsqu'ils sont assez proches.

La classe Tortue est une classe essentiellement graphique. Dans l'objectif de pouvoir mettre en place un jeu de balle avec des joueurs et une balle, on doit séparer la couche IHM (dessin) de la couche Métier (gestion du jeu). Il s'agit donc de fournir différentes classes qui seront les éléments décrivant l'état du jeu.

On créera donc au minium trois classes

Ces classes métiers seront liées aux classes d'affichage, on modifiera en particulier la classes Tortue pour qu'une Tortue puisse se dessiner différemment en fonction des besoins.

Dessinez le nouveau diagramme de classe, proposez en parallèle un ou plusieurs diagrammes de séquences pour expliquer en particulier ce qu'il se passe dans un tour de jeu (déplacement d'un joueur avec la balle ou non, conséquences du déplacement, redessin, etc.)

Codez cette nouvelle application.

1.3- Conception du jeu par équipes

On veut désormais mettre en place le jeu par équipes. On doit donc largement compliquer la couche métier, en faisant intervenir des notions d'équipe, de tactique, de gestion du jeu, etc. Il s'agit de concevoir cette nouvelle application, en construisant en parallèle diagramme de classe et diagrammes de séquence.

Le rendu du devoir 1 comprendra

Devoir 2

Ce devoir vise réaliser l'application : génération du code Java, développement, changements, etc.

Le rendu du devoir 2 comprend

Devoir 3

Un banque a des clients et des comptes. Un client peut avoir plusieurs comptes, dont au moins un compte courant. Il existe aussi des compte épargne caractérisés par un taux d'intérêt. Un prêt est adossé à un compte courant. Un prêt a une durée, une somme à rembourser mensuellement. Un employé de banque gère les comptes et les clients. Les clients peuvent faire diverses opérations bancaires. Les virements des prêts sont faits automatiquement tous les mois. Le directeur de la banque gère la banque.

L'objectif est de construire une application permettant de gérer les comptes et les prêts des clients d'une banque.

1/ Construire le modèle du domaine de la Banque.

2/ Déterminer les acteurs et les cas d'utilisation principaux du système qu'on veut construire.

3/ Choisir quelques cas d'utilisation niveau système / objectif utilisateur liés aux opérations sur le compte par le client, et décrire textuellement les scénarios associés (scénario nominal + extensions).

4/ Réaliser ces cas d'utilisation avec des diagrammes de séquence utilisant les objets du modèle du domaine, ainsi que de nouveaux objets nécessaires (qui donneront de nouvelles classes).

5/ Déduire des diagrammes de séquence un premier diagramme de classe d'analyse.


Dernière modification : (none)
Pour tout problème, contacter l'auteur : Yannick Prié - http://liris.cnrs.fr/yannick.prie