Délimitons les besoins de l'utilisateur pour ce logiciel.
Il y a un feu. L'utilisateur dispose d'une carte avec le relief du terrain et une carte de positionnement de feu à mettre au dessus. Il dispose d'un nombre donné de robots et de différents types, robots à pattes ou robots à chenille. Les robots ne sont pas encore sur la zone, on doit les positionner.
Il faut pouvoir lancer la simulation et avoir une idée visuelle immédiate de ce qu'il se passe sur le terrain.
Sur l'interface graphique, on visualisera le relief de la carte en niveaux de gris. Le feu et les zones infranchissables seront éventuellement en couleur. On devra pouvoir distinguer les différents types de robots sur la carte et savoir directement quels sont les robots en déplacements, occupés à éteindre un feu ou oisifs (...)
[...] On positionne plusieurs robots. On vérifie que c'est bien le robot le plus proche qui se déplace pour l'éteindre. On vérifie que le robot parcourt un chemin cohérent avec l'uniformité du relief : on vérifie que ce chemin est bien le plus court. Rapport de Conception Page 13 Rapport de Conception Page 14 Cas particulier d'un relief représentant un chemin dont le relief permet un parcours plus rapide qu'une ligne droite du robot au feu qui lui ferait traverser un relief difficile. [...]
[...] [Sophie] De nouveau, ces classes peuvent être développées et testées en parallèle puisque pour Carte et l‘algorithme de pathfinding, les classes inférieures ont été codées et testées. Ensuite, il faudra développer : Robot. [Charlotte] Manager. [Sophie] Cependant, ces classes ne pourront pas être testées en parallèle. Il faudra que la classe Robot ait été testée et validée pour pouvoir tester ensuite la classe Manager. Enfin, nous développerons la classe Simulateur avec les classes du package graphique qui nous seront fournies et que nous pourrons adapter à notre travail. [...]
[...] : Simulateur create carte : Carte create robPattes : Robot create create robChenille : Robot manager : Manager eteindreLesFeux( ) create fire : Feu getDistance(fire, carte) getLigne() getColonne() getMatNoeud() 30 getDistance(fire, carte) 25 orderExtinction(fire) Rapport de Conception Page 6 Le diagramme de séquence est effectué pour deux robots. La méthode getDistance() utilise également d'autres classes du package pathfinding non explicitées ici. Le diagramme est repris ci-dessous quand la méthode orderExtinction() est appelée. m : Manager fire : Feu orderExtinction() Rob :Robot getLigne() create Dep1 : Deplacement getColonne() create Dep* + : Deplacement create ext :Extinction effectuerEvenement() getLigne() getColonne() getEtat() Les évènements effectués successivement sont tout d'abord des instances de Deplacements d'où le diagramme ci-dessus. Le dernier évènement du vecteur listeEvenements sera une instance de Extinction. [...]
[...] Vérifier que le manager n'envoie pas d'ordre à des robots déjà occupés : visuellement, un robot en action ne doit pas s'arrêter en plein milieu pour aller en réaliser une autre. Vérifier visuellement la cohérence du choix du robot qui se déplace vers un feu. Vérifier que l'état d'occupation du robot correspond bien à ce qui est affiché sur l'interface graphique. Rapport de Conception Page 3 III- Interface graphique Charger la carte Charger l'incendie LANCER LA SIMULATION Robots R. à pattes 1 OISIF R. à pattes 2 EN MOUVEMENT R. à pattes 3 EN ACTION R. à chenilles 1 OISIF R. [...]
[...] Si l'utilisateur essaie d'effectuer une autre opération avant, un message s'affiche lui demandant de charger le relief d'abord. Choix du fichier à ouvrir à l'aide d'un JFileChooser. Après chargement, la carte est bien affichée sur l'interface dynamique. Rapport de Conception Page 10 Chargement de l'incendie : idem avec message si l'utilisateur essaie une autre opération. Une fois l'incendie chargé, on vérifie que l'affichage est correct. En même temps un message s'affiche pour expliquer à l'utilisateur qu'il doit charger un robot et le placer sur la carte. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture