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
- Cahier des Charges – EasySave
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.
- 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
- 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)
- Configuration : L'utilisation doit pouvoir définir une liste d'extensions prioritaires (ex :
.txt,.pdf).
- Langues supportées : Français et Anglais (par défaut).
- 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).
- 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 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).
- Sources et cibles :
- Disques locaux
- Disques externes
- Lecteurs réseau
- Contenu sauvegardé : Tous les fichiers et sous-répertoires du répertoire source.
Le système repose sur une DLL : EasyLog.dll, compatible JSON et XML.
- 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)
- 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
- 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.
- Interdiction : Chemins absolus du type
C:\temp\. - Recommandation : Utiliser des chemins relatifs ou configurables pour une compatibilité maximale avec les serveurs clients.
- 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.
| 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) |
| 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 |
