Skip to content

Latest commit

 

History

History
172 lines (139 loc) · 7.05 KB

File metadata and controls

172 lines (139 loc) · 7.05 KB

Cahier des Charges – EasySave

Projet Génie Logiciel – Développement d’un Logiciel de Sauvegarde


Dernière mise à jour : 25/02/2026
Version actuelle : Livrable finale, Version 3.0

Editeur : ProSoft
- Quentin HAZEMANN
- Nathan VALENNE
- Ulysse BRULEY

FISA A3 INFO 25-28


Sommaire

Contexte et Objectifs

Sous la responsabilité du DSI de ProSoft, notre équipe est chargée de développer EasySave, une solution de sauvegarde. Ce projet vise à développer une application en trois versions successives, des versions 1.x (console), 2.0 (graphique), et 3.0 (finale). Ce document décrit les spécifications de la version finale 3.0, une application .NET.

Spécifications Fonctionnelles

Gestion des Travaux de Sauvegarde

  • Nombre de travaux :
    • v1.0 & v1.1 : Jusqu’à 5 travaux de sauvegarde configurables.
    • v2.0 & v3.0 : Travaux de sauvegarde illimitée.
  • Définition d’un travail :
    • Nom de sauvegarde (ex: "Backup_ProjetX")
    • Répertoire source (chemin UNC)
    • Répertoire cible (chemin UNC)
    • Type de sauvegarde :
      • Complète
      • Différentielle

Exécution séquentielle & parallèle

  • Parallélisme : Les travaux peuvent être lancés simultanément.
  • Séquentielle : Interdiction de transférer en parallèle des fichiers de plus n Ko (configurable)

Priorisation des fichiers

  • Configuration : L'utilisation doit pouvoir définir une liste d'extensions prioritaires (ex : .txt, .pdf).

Internationalisation

  • Langues supportées : Français et Anglais (par défaut).

Sécurité et Chiffrement (CryptoSoft)

  • Intégration : Appel du logiciel externe CryptoSoft.exe.
  • Configuration : L'utilisation doit pouvoir définir une liste d'extensions à chiffrer (ex : .txt, .pdf).
  • Log : Ajouter le champ "Temps de chiffrement" dans le fichier log ($0$ si non chiffré, $>0$ en ms, $<0$ si erreur).

Logiciel métier

  • Fonctionnalité : Le logiciel doit scanner si un processus spécifique est en cours d'utilisation (ex : Calculator, notepad).
  • Action : Interdiction de lancer une sauvegarde si le processus est détecté.
  • Log : L'arrêt dû au logiciel métier doit être consigné.

Exécution des Sauvegardes

  • Exécution console (v1.1 & v2.0) : L’utilisateur peut gérer ou exécuter des travaux de sauvegarde (spécifique ou tous).
  • Exécution par ligne de commande (v1.1 & v2.0) :
    • EasySave.exe 1-3 : Exécute les sauvegardes 1 à 3.
    • EasySave.exe 1,3 : Exécute les sauvegardes 1 et 3.
  • Exécution graphique (v2.0) : L’utilisateur peut gérer ou exécuter des travaux de sauvegarde (spécifique ou tous).

Gestion des Répertoires

  • Sources et cibles :
    • Disques locaux
    • Disques externes
    • Lecteurs réseau
  • Contenu sauvegardé : Tous les fichiers et sous-répertoires du répertoire source.

Journalisation et Centralisation

Architecture des Logs

Le système repose sur une DLL : EasyLog.dll, compatible JSON et XML.

Fichier Log Journalier

  • Format : JSON ou XML
  • Nom : AAAA-MM-JJ
  • Contenu minimal :
    • Horodatage
    • Nom de la sauvegarde
    • Adresse source (UNC)
    • Adresse cible (UNC)
    • Taille du fichier
    • Temps de transfert (ms, négatif en cas d’erreur)
    • Temps de chiffrement (ms) (uniquement v2.0)

Fichier d’État Temps Réel

  • Format : JSON ou XML
  • Nom : state
  • Contenu minimal :
    • Nom du travail
    • Horodatage de la dernière action
    • État (Actif/Non Actif) Si actif :
      • Nombre total de fichiers éligibles
      • Taille totale des fichiers
      • Progression (%)
      • Nombre de fichiers restants
      • Taille des fichiers restants
      • Fichier source en cours
      • Fichier cible en cours

Format des Fichiers

  • Log et État : JSON ou XML, avec retours à la ligne pour une lecture facile dans Notepad.
  • Pagination : Optionnelle mais recommandée pour les fichiers volumineux.

Emplacements des Fichiers

  • Interdiction : Chemins absolus du type C:\temp\.
  • Recommandation : Utiliser des chemins relatifs ou configurables pour une compatibilité maximale avec les serveurs clients.

Service de centralisation

  • Technologie : Déploiement d'un service sous Docker.
  • Modes de stockage (au choix de l'utilisateur) :
    • Local uniquement : Logs sur le PC utilisateur.
    • Centralisé uniquement : Logs envoyés vers le serveur Docker.
    • Hybride : Stockage local et centralisé.
  • Contrainte d'unicité : Le serveur Docker doit maintenir un seul fichier journalier global, capable de différencier les utilisateurs/machines.

Spécifications Techniques

Environnement et Outils

Composant Spécification
Langage C# (Respect des conventions de nommage)
Framework .NET 8.0
Interface Graphique (WPF) - Architecture MVVM
IDE / Versioning Visual Studio / GitHub
Langue Code Anglais (code), Français (Commentaires)
Langue IHM Anglais / Français (Internationalisation)

Synthèse des évolutions

Fonctionnalité Version 1.0 Version 1.1 Version 2.0 Version 3.0
Interface Graphique Console Console Console & Graphique Console & Graphique
Multi-langues Anglais et Français Anglais et Français Anglais et Français Anglais et Français
Exécution Séquentielle Séquentielle Parallèle Parallèle
Travaux de sauvegarde Limité à 5 Limité à 5 Illimité Illimité
Logs JSON JSON / XML JSON / XML + Chiffrement JSON / XML + Chiffrement + Centralisation Docker
Logiciel métier Non Non Oui Oui
Fichiers Prioritaires Non Non Non Oui
CryptoSoft Non Non Multi-instance Mono-instance