Skip to topic | Skip to bottom
Home
Minfo
Minfo.ArchiLogProjet0910r1.4 - 16 Mar 2010 - 16:34 - PhilippeCollettopic end

Start of topic | Skip to actions

TD5/TD6 : Projet Simulateur en Fractal avec chargement dynamique et patrons de conception

PhilippeCollet

Introduction

Les deux dernières séances (et pas mal de travail personnel) sont consacrées à la réalisation d'un projet en commun.

Le projet regroupe le simulateur de bébêtes :

  • refactoré en composants Fractal,
  • avec un afficheur et des calculs de statistique divers,
  • avec du chargement dynamique des bebêtes et de leurs comportements, le tout organisé avec des patrons de conception.

Décomposition architecturale

L'architecture générale est organisée autour de composants Fractal qui correspondent à la partie statique :

  • le simulateur : doit fournir de quoi le démarrer (un Runnable ?), le suspendre, le reprendre. L''équipe chargée du simulateur doit s'occuper aussi du composant englobant et du démarrage de l'application.
  • un visualisateur : doit afficher la simulation en observant le simulateur, et fournir de quoi régler les fréquences d'affichage et de simulation (en agissant donc sur le simulateur), ainsi que des actions pour (re)charger les entités
  • un calculateur de statistique : qui doit collecter des informations observés sur le simulateur et les entitées simulées, les afficher éventuellement sur une console de log et générer un fichier de résumé en sortie.
  • une usine à entités : qui encapsule l'"abstract factory" déjà dévéloppée et est utilisée par le simulateur pour créer les entités simulées (bébêtes, champis...). L'usine utilise le chargeur de plugins pour obtenir les constructeurs à utiliser par réflexivité
  • un chargeur de plugins : qui encapsule le chargeur objet déja fourni (cf. description des autres composants).

archiSimu.png

Les données qui "traversent" ces composants sont essentiellement les entités simulées :

  • les bébêtes dont la simulation se décompose en deux actions par une "template method" : calculeDeplacement, effectueDeplacement.
  • leurs comportement(s) décomposés à l'aide du patron "strategy", avec deux stratégies possible pour effectuer les déplacements (rebond ou traversée)
  • un patron "stratégy" couplé à un patron "composite" pour le comportement de calcul de déplacement : stratégie unitaire déjà vue (hasard, émergente, sensible) et une stratégie composite qui agrège plusieurs stratégies et choisit dynamiquement la stratégie en fonction de l'état de la bébête (algo de choix à inventer).

Réalisation

Chaque équipe doit :

  • Réaliser incrémentalement sa partie
  • Discuter et établir les interfaces avec les autres équipes adjacentes
  • Tester unitairement sa partie
  • Intégrer sa partie avec les autres
Il faudra donc bien réfléchir à l'organisation afin de ne pas être tributaire des autres équipes pour commencer à implémenter tout en s'intégrant au fur et à mesure sans remettre en cause le code déjà dévéloppé et testé.

Planning

  • Mardi 16 mars : démarrage du projet, distribution des tâches par équipe de 2 ou 3 étudiants
  • Mardi 23 mars, 16h15-18H15 : 2h TD pour vous aider à réaliser votre réalisation, coordonner les interactions entre les équipes
  • Jeudi 25 mars, 16h15-18h15 : 2h TD pour vous dépannersur les projets, assurer l'intégration entre les développements
  • ALERT! Dimanche 4 avril minuit : rendu de l'ensemble sur le google code mis en place :
    • Chaque équipe enverra un mail pour faire un bilan sur les tâches qui lui ont été attribuées, la démarche suivie, les problèmes rencontrés, etc.

Répartition des tâches

A priori :

  • Simulateur (difficulté : ALERT! ALERT!, 3 personnes) : Gaudino, Teixeira, Wadjahdi
  • Visualisateur (difficulté : ALERT! ALERT!, 3 personnes) : Arnhart, Strangi, Trillard
  • Statistiques (difficulté : ALERT!, 2 personnes) : TIP Annulé
  • Usine à entités (difficulté : ALERT! ALERT!, 3 personnes) : Cherrak, Ducot, Liu
  • Chargeur de plugins (difficulté : ALERT!, 2 personnes) : Ben Lahoussine, Nicolas
  • Bébêtes avec template-methode et strategy de déplacement (rebond, traversée) (difficulté : ALERT!, 3 personnes) : Cabaret, Dardailler, Nourdine
  • Strategy de comportement de calcul de déplacement + version composite en fonction de l'état (difficuluté : ALERT! ALERT!, 3 personnes) : Jacquemin, Laville, Tataruch

-- PhilippeCollet - 16 Mar 2010


to top


You are here: Minfo > ArchiLogProjet0910

to top

Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WIKIDeptinfo? Send feedback