Skip to content

Mission

Sebiche09 edited this page Dec 10, 2023 · 6 revisions

Cahier des charges du projet-démo

pas fait

Cahier des Charges - Projet fictif

1. Introduction

1.1 Contexte

Notre client, M. Martin, recherche une solution simple et efficace pour gérer ses tâches quotidiennes. Nous lui proposons le développement d'un Gestionnaire de Tâches en ligne de commande en utilisant le langage de programmation Python.

1.2 Objectif

L'objectif de ce projet est de concevoir un Gestionnaire de Tâches fonctionnel en Python, offrant une interface en ligne de commande pour une utilisation facile et rapide.

2. Spécifications fonctionnelles

2.1 Produit Minimum Viable (PMV)

Le PMV pour notre projet comprend :

  • Ajout de tâches à la liste existante.
  • Suppression d'une tâche de la liste.
  • Affichage de la liste des tâches.

2.2 Gestion des Tâches

Fonctionnalités de Base : Le programme permettra d'ajouter des tâches, d'afficher la liste des tâches, de marquer une tâche comme terminée et de supprimer une tâche.

2.3 User Stories

2.3.1 Ajout de Tâches

En tant qu'utilisateur, je veux pouvoir ajouter une nouvelle tâche à ma liste afin d'organiser mes activités. Critères d'acceptation :

  • L'utilisateur peut spécifier le nom de la tâche à ajouter.
  • La nouvelle tâche est ajoutée à la liste existante.

2.3.2 Affichage de la Liste

En tant qu'utilisateur, je veux pouvoir voir la liste complète de mes tâches afin de suivre mes activités. Critères d'acceptation :

  • L'utilisateur peut afficher la liste de toutes les tâches enregistrées.
  • Chaque tâche est présentée de manière claire avec un identifiant unique.

2.3.3 Marquage comme Terminée

En tant qu'utilisateur, je veux pouvoir marquer une tâche comme terminée afin de suivre mes progrès. Critères d'acceptation :

  • L'utilisateur peut indiquer l'achèvement d'une tâche spécifique.
  • La tâche marquée comme terminée est mise à jour dans la liste.

2.3.4 Suppression de Tâches

En tant qu'utilisateur, je veux pouvoir supprimer une tâche de ma liste afin de maintenir la pertinence de mes activités. Critères d'acceptation :

  • L'utilisateur peut choisir de supprimer une tâche spécifique.
  • La tâche supprimée n'apparaît plus dans la liste.

2.3.5 Sauvegarde des Tâches

En tant qu'utilisateur, je veux pouvoir sauvegarder mes tâches pour les retrouver ultérieurement et éviter la perte de données. Critères d'acceptation :

  • Les tâches sont sauvegardées dans un fichier JSON.
  • À chaque lancement du programme, les tâches précédemment enregistrées sont chargées.

2.4 Persistance des Données

Stockage des Tâches : Les tâches seront sauvegardées dans un fichier JSON pour assurer la persistance des données entre les sessions d'utilisation du programme.

2.5 Rôles Utilisateurs

2.5.1 Administrateur

L'administrateur supervisera le développement du programme, gérera le projet et aura un accès complet à toutes les fonctionnalités de l'application.

2.5.2 Utilisateur - Version gratuite

L'utilisateur possédant une version gratuite, pourra interagir avec le gestionnaire de tâches de manière simple, en ajustant les paramètres de base.

2.5.3 Utilisateur - Version payante

L'utilisateur possédant une version payante, pourra bénéficier d'une interface avancée pour visualiser des statistiques détaillées sur ses activités.

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, avec un cycle d'itérations comprenant les étapes suivantes :

4.1 Itération 1 (Semaine 1-2) : Conception initiale et définition des fonctionnalités.

  • Réunion de lancement pour définir les objectifs et les fonctionnalités prioritaires.
  • Conception initiale de l'architecture du système.
  • Identification des rôles utilisateurs et des scénarios d'utilisation.

4.2 Itération 2 (Semaine 3-4) : Implémentation du PMV avec itérations pour les retours intermédiaires.

  • Mise en place d'une version minimale viable (PMV) incluant les fonctionnalités de base.
  • Démo intermédiaire pour recueillir les premiers retours du client.
  • Itérations successives pour ajouter des fonctionnalités supplémentaires.

4.3 Itération 3 (Semaine 5) : Tests et corrections.

  • Tests approfondis de l'ensemble des fonctionnalités implémentées.
  • Correction des bugs identifiés pendant les tests.
  • Préparation pour la prochaine démo.

4.4 Itération 4 (Semaine 6) : Livraison du produit final.

  • Démo finale pour présenter le produit complet au client.
  • Finalisation du code et préparation pour la livraison.
  • Livraison du produit final au client.

4.5 Itérations Additionnelles (Semaines 7 et suivantes) :

  • En fonction des retours du client, planification d'itérations supplémentaires pour ajouter des fonctionnalités ou effectuer des ajustements.
  • Chaque itération suivante inclura des démos régulières et des cycles de retours pour garantir l'alignement continu avec les 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 une collaboration étroite avec le client, comprenant des itérations régulières pour recueillir des retours fréquents. Notre objectif est d'avoir des réunions hebdomadaires avec le client afin d'examiner et d'ajuster le programme de manière itérative. Cette approche permettra d'assurer une solution personnalisée et flexible, répondant aux besoins évolutifs de l'utilisateur.

7. Conclusion

Ce cahier des charges définit les exigences pour un Gestionnaire de Tâches en ligne de commande. Le PMV inclut les fonctionnalités de base telles que l'ajout, l'affichage, le marquage comme terminée et la suppression de tâches, ainsi que la persistance des données. Le projet sera réalisé par Sébastien Vleminckx sur une période de 6 semaines, suivant une méthodologie agile pour plus de flexibilité.


Spécifications de la classe Fractions

Plan de travail individuel

bnh

Clone this wiki locally