Skip to content
Sebiche09 edited this page Nov 22, 2023 · 8 revisions

Cahier des charges du projet

Spécifications du Projet - Simulation de Colonie de Fourmis en 3D

1. Introduction

1.1 Contexte

M. Fourmillion, passionné par les fourmis et travaillant dans un musée, souhaite développer une application de simulation de colonie de fourmis en 3D. Cette application permettra la création et la gestion d'une colonie de fourmis avec des paramètres configurables tels que l'ajout de fourmis, de galeries, de nourriture, etc. Notre programme a été soigneusement conçu pour être accessible à un large public, aussi bien aux non-professionnels qu'aux experts.

1.2 Objectif

L'objectif de ce projet est de concevoir et développer une application en Python capable de simuler une colonie de fourmis en 3D. La simulation devrait offrir un environnement réaliste et interactif. Les fourmis devront présenter un comportement autonome grâce à des algorithmes d'intelligence artificielle (IA) et respecter les rôles traditionnels au sein de la colonie (ouvrières, reine, etc.).

Le programme vise à aider l'utilisateur à comprendre le comportement des fourmis afin qu'il puisse agir en conséquence. Comprendre le comportement des fourmis permettra à l'utilisateur d'ajuster les paramètres de leur environnement et de savoir ce qu'il ne faut pas faire pour assurer la survie des fourmis étudiées.

2. Spécifications Fonctionnelles

2.1 Produit Minimum Viable (PMV)

Le PMV pour notre projet comprend :

  • Placer une fourmi dans un carré rempli, représentant l'environnement initial.
  • Implémenter une horloge pour suivre le passage du temps.
  • Chaque jour, les fourmis ont une chance de mourir et de collecter de la nourriture.
  • Permettre aux fourmis de se déplacer et de creuser automatiquement, mais sans tenir compte de la gravité.
  • Absence d'une interface utilisateur graphique (GUI). Le code devrait être lancé avec des paramètres.
  • Permettre au client d'interagir avec le nombre de fourmis et la quantité de nourriture disponible.

2.2 Simulation de Colonie

Environnement 3D :

L'application devrait présenter une simulation 3D de la colonie de fourmis avec une interface utilisateur graphique.

Ajout de Fourmis :

Les utilisateurs devraient pouvoir ajouter de nouvelles fourmis à la colonie. Il y aura une variété de fourmis, chacune répondant aux besoins spécifiques de la reine. Un type particulier de fourmi, dicté par la hiérarchie, émergera lorsque la larve atteindra la maturité.

Galeries et Nourriture :

Les utilisateurs devraient pouvoir créer des galeries et distribuer de la nourriture dans l'environnement.

Intelligence Artificielle des Fourmis :

Les fourmis devraient être équipées d'algorithmes d'IA pour leur permettre de se déplacer, de chercher de la nourriture, d'interagir avec l'environnement et de remplir leurs rôles spécifiques. Nous avons choisi d'implémenter une IA de base dans notre simulation pour améliorer l'équité. En fournissant aux fourmis une IA simple, elles acquièrent la capacité de prendre des décisions individuelles, favorisant un comportement plus nuancé et varié par rapport à un algorithme uniforme appliqué à chaque fourmi. L'objectif de cette approche est d'isoler le comportement de chaque fourmi dans le programme, permettant une simulation plus réaliste et dynamique où chaque fourmi peut réagir de manière autonome à son environnement.

Rôles des Fourmis :

Les fourmis devraient respecter leurs rôles au sein de la colonie (ouvrières, reine, etc.) avec des comportements spécifiques à chaque rôle. Par exemple, les ouvrières sont dédiées à des tâches telles que la construction, la collecte de nourriture et d'autres activités essentielles. La reine, quant à elle, assure la reproduction et la survie à long terme de la colonie. La spécialisation des rôles améliore l'efficacité et garantit la survie prospère de la communauté dans son ensemble.

Phéromones :

Les fourmis devraient émettre des phéromones pour communiquer entre elles et marquer des chemins. Ce système de communication chimique joue un rôle essentiel dans la cohésion et l'organisation de la colonie. En se déplaçant dans leur environnement, les fourmis libèrent des phéromones, laissant une traînée qui peut être suivie par d'autres membres. Cela permet aux autres fourmis de retrouver leur chemin vers la nourriture ou simplement de retourner au nid.

2.3 Gestion du Temps

Horloge :

L'application devrait implémenter une horloge pour suivre le passage des jours dans la simulation.

Probabilité de Mort :

Chaque jour, les fourmis devraient avoir une probabilité de mourir, simulant le cycle de vie naturel des fourmis.

Recherche de Nourriture :

Chaque jour, il devrait y avoir une probabilité pour que les fourmis trouvent de la nourriture.

Accélération du Temps :

Les utilisateurs devraient pouvoir accélérer le passage du temps pour observer l'évolution de la colonie à différentes vitesses.

3. Langage de Programmation

Le projet sera développé en utilisant le langage de programmation Python.

4. Planification Agile

Le projet suivra une méthodologie de développement agile, permettant des itérations itératives et des ajustements continus en fonction des besoins du client.

5. Contraintes Techniques

L'application doit être compatible avec les systèmes d'exploitation courants (Windows, macOS, Linux). Les bibliothèques et modules Python utilisés doivent être bien documentés.

6. Suivi et Validation

Nous prévoyons de collaborer étroitement avec le client, en recherchant des avis d'experts pour affiner et améliorer le programme de simulation. Notre objectif est d'aider le client à développer un programme qui s'aligne parfaitement sur ses attentes, garantissant une solution personnalisée et efficace.

7. Conclusion

Cette spécification de projet définit les exigences pour une simulation de colonie de fourmis en 3D. Le PMV inclut une simulation de base avec une seule fourmi, une horloge, une gestion du temps et des interactions minimales. Le projet sera réalisé par le groupe "2TL2-6" sur une période de 7 semaines, en suivant une méthodologie agile pour plus de flexibilité


Implémentation et démo du MVP du projet

La MVP de notre projet consistera à placer une fourmi dans un carrée plein. Une horloge sera mise en place pour voir le temps qui passe et ,chaque jour, la fourmi aura une chance de mourir et de récupérer de la nourriture. La fourmi avance et creuse toute seule mais elle n'est pas envore soumise à la gravité. Le client pourra intéragir avec le nombre de fourmi et la quantité de nourriture à disposition.

Analyse du projet - Diagrammes d'architecture et de classes

Projet : Spécifications de méthodes et de classes

Planification et organisation du projet

Projet : Incrément fonctionnel