1. Du besoin à l’application
Avant d’écrire la première ligne de code, il faut savoir ce que le client veut vraiment, pour qui, avec quelles règles et sous quelles contraintes. Ce travail d’analyse se termine par un modèle que le client comprend et valide, et que les développeurs savent programmer.
AUne demande de Kervanet
Le lundi 28 septembre 2026, Franck Guillou,
responsable technique des bâtiments de Kervanet Hôtels & Résidences,
écrit au centre de services de Vellacor (ticket
VEL-2026-4203). Aujourd’hui, l’entretien périodique des
équipements des sept établissements (chaudières, climatisations,
ascenseurs, organes de sécurité) est suivi dans un classeur de
tableur du partage Qualite : 58 lignes, une par
contrôle à faire, avec la date du dernier passage. Sur les douze
derniers mois, 9 contrôles ont été faits avec plus de 30 jours de retard
et 2 ont été oubliés. Il demande « un module de maintenance préventive
dans KerMaint », l’application de gestion des interventions que Vellacor
développe et maintient pour Kervanet.
C’est un développement nouveau : il n’entre pas dans le forfait de maintenance et fera l’objet d’un devis (contrat : CEJMA-03). Anaïs Lecoq, responsable du pôle développement, confie l’analyse à Sarah Cherif, alternante en BTS SIO option SLAM, sous sa supervision. Tout le chapitre suit ce travail, du premier entretien à la validation du modèle.
BCe que fait l’analyste
Le client exprime un besoin avec ses mots (« ne plus oublier de contrôles »). L’analyste le transforme en spécifications précises, puis en modèle : un ensemble de textes et de diagrammes qui décrivent ce que fera l’application, sans encore dire comment elle sera programmée.
Besoin, spécification, modèle
- Le besoin est ce que le client veut obtenir, exprimé dans son vocabulaire métier.
- Une spécification est une exigence précise et vérifiable que l’application devra respecter (« une intervention préventive est créée 7 jours avant l’échéance »).
- Un modèle est une représentation simplifiée de l’application à construire, sous forme de textes et de diagrammes normalisés, qui sert à comprendre, à communiquer et à valider avant de développer.
CTon rôle de développeur SLAM
Le référentiel attend que tu participes aux spécifications et à l’architecture, en équipe. À l’épreuve E6, la commission te remet une expression de besoins : tu l’analyses, proposes des spécifications et une démarche, puis réalises et fais la recette (exercice 10).
2. Les cycles de production
Une application se construit en passant par des activités qui reviennent toujours : comprendre, concevoir, réaliser, tester, mettre en service, maintenir. Les cycles de production diffèrent par la façon de les enchaîner, et chacun donne une place différente à l’analyse.
ALes activités du développement
Quel que soit le cycle, on retrouve les mêmes activités :
| Activité | Question | Livrables typiques |
|---|---|---|
| Analyse du besoin | Que veut le client, et pourquoi ? | comptes rendus d’entretien, récits utilisateur, cas d’utilisation, règles de gestion |
| Conception | Comment l’application sera-t-elle organisée ? | architecture, diagrammes de classes et de séquence, modèle des données (SLAM-03), maquettes |
| Réalisation | Le code | composants, tests unitaires (SLAM-02, SLAM-07) |
| Tests et recette | Est-ce conforme ? | tests fonctionnels, cahier de recette, procès-verbal (SLAM-10, B1-11) |
| Déploiement | Mettre à disposition | version livrée, documentation, formation |
| Maintenance | Corriger et faire évoluer | tickets d’anomalie, nouvelles versions (SLAM-11) |
BTrois grandes familles de cycles
Tu as vu en B1-10 l’approche prédictive (cascade, cycle en V) et l’approche agile (Scrum, Kanban). Pour une application, on les retrouve sous trois formes :
| Cycle | Principe | Place de l’analyse | Adapté quand… |
|---|---|---|---|
| Séquentiel (cascade, cycle en V) | chaque activité est terminée et validée avant la suivante | complète, au début, figée dans un cahier des charges | le besoin est stable et bien connu (contrat au forfait, contrainte réglementaire) |
| Itératif et incrémental (dont les méthodes agiles) | on livre par petits incréments utilisables, en ajustant à chaque cycle | continue : un cadrage initial, puis chaque élément est précisé juste avant d’être développé | le besoin évolue ou se découvre en voyant le produit |
| Avec prototypage | on construit d’abord une maquette ou un prototype jetable pour faire réagir l’utilisateur | l’analyse s’appuie sur le prototype | l’interface est décisive ou le client a du mal à exprimer son besoin |
Elles se combinent : KerMaint évolue en Scrum (B1-10), et Sarah prototype les écrans avant un sprint.
Une approche plus récente, DevOps, rapproche le développement (development) et l’exploitation (operations) : tests, intégration et déploiement automatisés pour livrer souvent et sans risque. Ses outils (intégration continue) sont étudiés en SLAM-10.
Agile ne veut pas dire « sans analyse ». Dans un cycle agile, l’analyse est découpée : un cadrage au départ (vision, acteurs, grandes fonctions), puis chaque récit est affiné avec le propriétaire du produit juste avant le sprint qui le réalisera.
CLes acteurs de la production
| Rôle | Ce qu’il apporte | Dans le projet |
|---|---|---|
| Maîtrise d’ouvrage (MOA, B1-10) | exprime le besoin, décide, finance, réceptionne | Kervanet : Gwenaëlle Le Bihan signe le devis ; Franck Guillou porte le besoin |
| Utilisateurs clés | décrivent le travail réel, testent | Mathis Le Goff, Nadia Poitevin (techniciens) |
| Propriétaire du produit | ordonne le backlog, accepte les récits | Mélodie Rochereau (délégation de Kervanet) |
| Maîtrise d’œuvre (MOE) | conçoit, réalise, conseille | Vellacor |
| Analyste, architecte | formalise, modélise, choisit l’architecture | Anaïs Lecoq, avec Sarah |
| Développeurs | programment et testent | Romain Daguet, Sarah |
| Exploitation | héberge, sauvegarde, supervise | Thomas Guéguen (KV-KERMAINT) |
| Délégué à la protection des données | conseille sur les données personnelles | DPO externe de Kervanet (CEJMA-08) |
DLes références communes
Pour que tout le monde se comprenne, l’analyse s’appuie sur des références partagées :
| Référence | Ce qu’elle normalise | Où dans ce chapitre |
|---|---|---|
| UML 2.5.1 (Unified Modeling Language), publié par l’OMG en décembre 2017 | la notation des diagrammes | parties 6 à 8 |
| ISO/IEC 25010:2023 | le modèle de qualité d’un produit logiciel (neuf caractéristiques) | partie 4 |
| ISO 9241-110:2020 | les principes d’interaction entre l’utilisateur et le système | partie 11 |
| RGAA, fondé sur les règles internationales WCAG | l’accessibilité des services numériques | partie 11 et B1-09 |
| Scrum Guide (2020), récits utilisateur | l’organisation agile | B1-10 et partie 5 |
| Merise (modèle conceptuel des données) | la modélisation des données | SLAM-03 |
3. Recueillir le besoin
Le besoin ne se devine pas : il se recueille auprès des bonnes personnes, avec des techniques choisies, et dans son contexte, y compris juridique. On commence toujours par comprendre le travail actuel.
AIdentifier les parties prenantes
La première question est : qui est concerné ? Ceux qui paient, ceux qui décident, ceux qui utiliseront l’application, ceux qui subiront ses effets. Sarah dresse la liste avec Anaïs : Franck Guillou (demandeur), les 12 utilisateurs réguliers de KerMaint sur tablette (techniciens de maintenance), les directeurs d’établissement (qui reçoivent les prestataires), Gwenaëlle Le Bihan (budget), Mélodie Rochereau (backlog), Thomas Guéguen (serveur). Oublier un groupe, c’est découvrir son besoin à la recette.
BLes techniques de recueil
| Technique | Principe | Forces | Limites |
|---|---|---|---|
| Entretien | questions ouvertes puis précises à une personne | fait émerger le « pourquoi », les exceptions | une seule vision ; ce qu’on dit faire ≠ ce qu’on fait |
| Observation | suivre l’utilisateur dans son travail réel | révèle les contraintes cachées (gants, bruit, absence de Wi-Fi) | prend du temps |
| Atelier | réunir plusieurs acteurs autour d’un support (récits, maquette) | fait converger les points de vue | demande une animation rigoureuse |
| Questionnaire | mêmes questions à beaucoup de personnes | chiffres, avis du plus grand nombre | réponses superficielles |
| Analyse de documents | lire les supports existants (tableur, procédures, contrats d’entretien) | données réelles, règles implicites | documents parfois obsolètes |
| Analyse de l’existant applicatif | étudier l’application actuelle, sa base, ses écrans | réutilise ce qui marche ; voir la rétro-conception, partie 7 | l’existant peut contenir des défauts |
Sarah combine quatre techniques : un entretien avec Franck Guillou le mercredi 30 septembre, une demi-journée d’observation avec Mathis Le Goff à Port-Neuf le jeudi 1er octobre, l’analyse du classeur des contrôles et un atelier de récits utilisateur le mercredi 7 octobre.
Préparer et mener un entretien
- Préparer : objectif de l’entretien, documents à lire avant (le classeur), une grille de questions qui va du général au précis.
- Ouvrir : « Racontez-moi comment se passe un contrôle aujourd’hui, du début à la fin. » Laisser parler.
- Creuser : demander des exemples réels, les exceptions (« Et si le technicien est absent ? »), les volumes (combien de contrôles par mois ?), les fréquences, les règles (« Qui décide de la date ? »).
- Reformuler : « Si je comprends bien, un contrôle non conforme doit toujours donner une réparation ? » Le client confirme ou corrige.
- Conclure : récapituler, noter les points en suspens et convenir de la suite.
- Rédiger le compte rendu dans les 24 heures et le faire valider par la personne interrogée.
Ce que l'observation a appris à Sarah
À Port-Neuf, Mathis contrôle la chaudière principale dans la chaufferie, au sous-sol : pas de Wi-Fi, des gants de travail, une tablette posée sur un rebord. Il note sur papier et recopie le soir dans le tableur. Aucun entretien n’aurait révélé ces trois contraintes : elles deviendront des exigences non fonctionnelles (grands boutons, enregistrement du brouillon, partie 11).
CLe cadre juridique du besoin
Un besoin s’inscrit dans des règles de droit. L’analyste ne les tranche pas, mais il doit les repérer pour qu’elles deviennent des exigences, et alerter le client : c’est une part du devoir de conseil du prestataire (CEJMA-03).
| Question à se poser | Exemple dans le module | Exigence qui en découle | Où l’approfondir |
|---|---|---|---|
| Des données personnelles sont-elles traitées ? | nom du technicien qui a fait le contrôle | ne collecter que le nécessaire ; durée de conservation ; protection dès la conception | CEJMA-08, B3SLAM-01 |
| Le besoin est-il bien écrit dans le contrat ? | périmètre du module, recette, prix | cahier des charges et devis précis, critères d’acceptation | CEJMA-03 |
| Quels composants et sous quelle licence ? | bibliothèque de génération de PDF pour l’export | licences compatibles avec la politique de Vellacor | CEJMA-02 |
| À qui appartiendra le code ? | module développé pour Kervanet | clause de propriété dans le contrat | CEJMA-06 |
| L’application doit-elle être accessible ? | écrans utilisés par des salariés | bonnes pratiques d’accessibilité | B1-09, partie 11 |
| Qui est responsable en cas de défaut ? | un contrôle de sécurité oublié | traçabilité des contrôles, alertes | CEJMA-05 |
4. Formaliser le besoin
Les notes d’entretien sont riches mais désordonnées. Formaliser, c’est les ranger dans des catégories précises : acteurs, besoins fonctionnels, exigences non fonctionnelles, règles de gestion, vocabulaire commun.
ALes acteurs
Acteur
Un acteur est un rôle joué par une personne ou par un système extérieur qui interagit avec l’application. Ce n’est pas une personne nommée : Mathis Le Goff et Nadia Poitevin jouent tous deux le rôle de Technicien.
On distingue l’acteur principal, qui déclenche une utilisation pour en tirer un résultat, et l’acteur secondaire, qui est sollicité par l’application (la messagerie qui envoie les notifications). Un acteur peut être un système : la tâche planifiée qui lance chaque nuit la génération des interventions est représentée par un acteur Planificateur.
| Acteur | Type | Ce qu’il fait avec le module |
|---|---|---|
| Responsable technique | humain, principal | crée et gère les plans de contrôle, suit les échéances, exporte le registre ; peut aussi faire tout ce que fait un technicien |
| Technicien | humain, principal | consulte ses contrôles à venir, enregistre les résultats |
| Planificateur | système, principal | déclenche chaque nuit la génération des interventions préventives |
| Messagerie | système, secondaire | envoie les notifications par courriel |
BBesoins fonctionnels et non fonctionnels
La distinction a été vue en B1-10 : un besoin fonctionnel dit ce que l’application permet de faire, une exigence non fonctionnelle dit avec quelle qualité ou dans quelles limites. Pour ne pas oublier d’exigences non fonctionnelles, on parcourt une grille : celle de la norme ISO/IEC 25010:2023, qui décrit la qualité d’un produit logiciel en neuf caractéristiques.
| Caractéristique | Exigence du module | Comment la vérifier |
|---|---|---|
| Aptitude fonctionnelle (functional suitability) | les échéances sont calculées exactement selon la règle RG3 | jeu de tests sur des dates de fin de mois |
| Efficacité de performance (performance efficiency) | la liste des échéances d’un établissement s’affiche en moins de 2 secondes sur tablette | mesure sur une tablette de 2020 |
| Compatibilité (compatibility) | fonctionne dans le navigateur des 14 tablettes Android ; partage les équipements et les techniciens de KerMaint | test sur chaque modèle |
| Capacité d’interaction (interaction capability) | un contrôle conforme se saisit en moins de 2 minutes ; cibles tactiles d’au moins 44 × 44 pixels | test utilisateur (partie 11) |
| Fiabilité (reliability) | aucune saisie perdue : brouillon enregistré toutes les 2 minutes ; génération nocturne sans doublon | test de coupure, double exécution |
| Sécurité (security) | seul le profil Responsable modifie les plans ; chaque validation est tracée (qui, quand) | tests d’habilitation, lecture du journal |
| Maintenabilité (maintainability) | code dans le framework de KerMaint ; règles de calcul couvertes par des tests automatiques | revue de code, tests (SLAM-10) |
| Flexibilité (flexibility) | l’ouverture de la 8e résidence ne demande aucune modification du code | création d’un établissement de test |
| Sûreté (safety) | un organe de sécurité non conforme est signalé au responsable par courriel dès la validation | scénario de recette |
Une exigence non fonctionnelle doit être mesurable : « rapide » ne se teste pas, « moins de 2 secondes pour afficher la liste d’un établissement » se teste.
CLes règles de gestion
Règle de gestion
Une règle de gestion est une règle du métier du client que l’application doit appliquer : un calcul, une condition, une contrainte sur les données ou un enchaînement obligatoire. Elle s’écrit en une phrase, sans jargon technique, et porte un identifiant (RG1, RG2…) pour être citée dans les diagrammes et les tests.
| N° | Règle |
|---|---|
| RG1 | Un plan préventif concerne un seul équipement ; un équipement peut avoir plusieurs plans (la chaudière a un entretien annuel et un contrôle mensuel). |
| RG2 | La périodicité d’un plan s’exprime en mois : 1, 3, 6 ou 12. |
| RG3 | L’échéance suivante = échéance précédente + périodicité ; si ce jour n’existe pas dans le mois obtenu, on prend le dernier jour de ce mois. |
| RG4 | Chaque nuit à 5 h, une intervention préventive (priorité 3, statut « ouverte ») est créée pour chaque plan actif dont l’échéance tombe dans les 7 jours, sauf s’il en existe déjà une non clôturée pour ce plan. |
| RG5 | Un contrôle est conforme si tous ses points de contrôle sont conformes. |
| RG6 | Un contrôle non conforme crée une intervention corrective de priorité 2 sur le même équipement, liée à l’intervention préventive. |
| RG7 | Une échéance est en retard si la date du jour la dépasse et que l’intervention préventive correspondante n’est pas clôturée ; elle apparaît en orange dans la liste. |
| RG8 | Seul le profil Responsable crée, modifie ou désactive un plan. |
| RG9 | La durée d’une intervention est comprise entre 0 et 720 minutes. |
RG3 sur trois plans réels
- Chaudière principale de Port-Neuf, entretien annuel, échéance le lundi 16/11/2026 : échéance suivante le 16/11/2027 ; l’intervention préventive est créée le 09/11/2026 (RG4, 7 jours avant).
- Ascenseur A de la Corderie, contrôle visuel mensuel, échéance le 31/10/2026 : le 31 novembre n’existe pas, l’échéance suivante est le 30/11/2026.
- Climatisation de la chambre 214, nettoyage des filtres trimestriel, échéance le 31/01/2027 : la suivante est le 30/04/2027.
RG3 a été précisée pendant l’atelier : Franck voulait d’abord « un an après le dernier contrôle », mais un contrôle fait avec 10 jours de retard aurait décalé toutes les échéances suivantes. Calculer à partir de l’échéance précédente garde un calendrier stable.
DLe glossaire
Franck dit « visite », Mathis « contrôle », le classeur « entretien ». Un glossaire fixe un seul mot par notion, avec sa définition : plan préventif, point de contrôle, échéance, intervention préventive, intervention corrective. Ces mots deviendront les noms des classes (l’intervention corrective, ordinaire, sera simplement la classe Intervention) : le glossaire évite que le modèle et l’interface parlent deux langues différentes.
5. Écrire des récits utilisateur
Le récit utilisateur décrit un besoin du point de vue de celui qui en profite, en une phrase. Accompagné de critères d’acceptation précis, il devient un engagement vérifiable entre le client et l’équipe.
ALa forme d’un récit
Tu as rencontré le récit utilisateur (user story) en B1-10 : « En tant que rôle, je veux action afin de bénéfice ». La troisième partie est la plus importante : elle donne la raison du besoin, qui permet de proposer une meilleure solution ou de prioriser.
| N° | Récit | Priorité |
|---|---|---|
| US1 | En tant que responsable technique, je veux créer un plan préventif pour un équipement (périodicité, points de contrôle) afin de ne plus dépendre du tableur. | Must |
| US2 | En tant que technicien, je veux voir mes contrôles des 7 prochains jours afin d’organiser ma semaine. | Must |
| US3 | En tant que technicien, je veux enregistrer le résultat d’un contrôle point par point sur la tablette afin de prouver que l’entretien a été fait. | Must |
| US4 | En tant que responsable technique, je veux qu’un point non conforme crée automatiquement une intervention corrective afin qu’aucune anomalie ne soit oubliée. | Must |
| US5 | En tant que responsable technique, je veux exporter le registre des contrôles d’un établissement en PDF afin de le présenter à un prestataire ou à l’assureur. | Should |
| US6 | En tant que technicien, je veux saisir un contrôle sans réseau afin de travailler dans les locaux techniques. | Could |
BLa grille INVEST d’un bon récit
Les praticiens agiles vérifient chaque récit avec la grille INVEST :
- Indépendant : il peut être réalisé sans attendre un autre récit ;
- Négociable : c’est une base de discussion, pas un contrat figé ;
- de Valeur : il apporte quelque chose à un utilisateur ou au client ;
- Estimable : l’équipe comprend assez bien pour l’estimer en points ;
- Small (petit) : il tient dans un sprint ;
- Testable : on sait dire s’il est terminé.
« En tant que développeur, je veux créer la table
plan_preventif » n’est pas un récit utilisateur : c’est une
tâche technique, sans valeur visible pour
l’utilisateur. Elle sert à réaliser US1 et se note dans le backlog du
sprint, pas dans le backlog produit.
CLes critères d’acceptation
Critère d'acceptation
Un critère d’acceptation est une condition précise et vérifiable que l’application doit remplir pour que le récit soit accepté par le propriétaire du produit. Chaque critère deviendra au moins un test (fonctionnel ou de recette).
Une écriture très répandue, issue du développement piloté par le comportement, est le format Étant donné / Quand / Alors : le contexte de départ, l’action, le résultat attendu.
Critères d'acceptation de US3 et US4
Scénario 1 — contrôle conforme Étant donné l’intervention préventive « Entretien annuel » de la chaudière principale de Port-Neuf, ouverte et affectée à Mathis Le Goff, quand Mathis marque les 4 points « Conforme », saisit une durée de 90 minutes et valide, alors l’intervention passe au statut « clôturée », son résultat est « conforme » et la prochaine échéance du plan devient le 16/11/2027.
Scénario 2 — un point non conforme Étant donné la même intervention, quand Mathis marque le point « Évacuation des fumées » « Non conforme » et valide, alors l’intervention préventive est clôturée avec le résultat « non conforme », une intervention corrective de priorité 2 est créée sur la chaudière avec la mention du point en cause, et Franck Guillou reçoit un courriel.
Scénario 3 — saisie incomplète Étant donné une intervention dont un point n’est pas renseigné, quand le technicien essaie de valider, alors la validation est impossible et le point manquant est signalé.
Écris toujours au moins un scénario qui échoue (saisie incomplète, droit insuffisant, valeur hors limites). Ce sont ces cas que les développeurs oublient et que la recette découvre.
6. Représenter les cas d’utilisation
UML est le langage graphique standard pour modéliser une application. Le diagramme de cas d’utilisation en est souvent la première pièce : il montre d’un coup d’œil qui fait quoi avec le système, et il se complète par une description textuelle de chaque cas.
AUML en bref
UML
UML (Unified Modeling Language) est un langage de modélisation graphique normalisé par l’OMG (Object Management Group). La version en vigueur est UML 2.5.1 (décembre 2017). Il définit des diagrammes de structure (ce qui compose le système, comme le diagramme de classes) et des diagrammes de comportement (ce que fait le système, comme les diagrammes de cas d’utilisation, de séquence et d’activité).
UML n’est pas une méthode : il dit comment dessiner, pas dans quel ordre travailler. En BTS SIO, on attend surtout les diagrammes de cas d’utilisation (avec leurs descriptions), de classes et de séquence, et la lecture d’un diagramme d’activité, dessinés avec un outil de modélisation (Modelio, PlantUML…).
BLes éléments du diagramme
Cas d'utilisation
Un cas d’utilisation est une façon d’utiliser le système qui apporte un résultat observable et utile à un acteur. On le nomme par un verbe à l’infinitif suivi d’un complément : « Enregistrer un contrôle », pas « Contrôle » ni « Cliquer sur Valider ».
| Élément | Notation |
|---|---|
| Acteur | bonhomme avec son nom dessous ; un système peut aussi être un rectangle portant le mot-clé «actor» |
| Cas d’utilisation | ellipse contenant son nom |
| Sujet (frontière du système) | rectangle contenant les cas, avec le nom du système en haut à gauche ; les acteurs sont dehors |
| Association acteur – cas | trait plein |
| Inclusion | flèche en pointillés à pointe ouverte, du cas de base vers le cas inclus, marquée «include» |
| Extension | flèche en pointillés à pointe ouverte, du cas qui étend vers le cas étendu, marquée «extend» ; condition et point d’extension dans une note reliée à la flèche |
| Généralisation | trait plein terminé par un triangle creux posé sur l’élément général |
CLes relations entre cas
Ces trois relations sont les plus mal utilisées : retiens leur sens.
- «include» : le cas de base contient toujours le cas inclus. On ne peut pas gérer un plan ni enregistrer un contrôle sans rechercher un équipement : la recherche est mise en commun dans un cas inclus. La flèche part du cas qui inclut.
- «extend» : le cas qui étend ajoute parfois un comportement au cas de base, à un endroit précis (le point d’extension, listé dans un compartiment du cas étendu) et sous une condition. Le cas de base est complet sans lui : un contrôle conforme ne crée rien. La flèche part du cas qui étend, vers le cas étendu.
- Généralisation entre acteurs : l’acteur spécialisé peut faire tout ce que fait l’acteur général, et plus. Le responsable technique hérite des cas du technicien.
Le diagramme de cas d’utilisation n’est pas un enchaînement d’écrans : pas de flèches « puis » entre les cas, pas de cas « Se connecter » relié à tout (c’est une condition de départ, notée dans les préconditions). Et les flèches «include» et «extend» vont en sens contraires : «include» part de la base, «extend» arrive sur la base.
DLa description textuelle d’un cas
Le diagramme ne montre que les noms. Le contenu de chaque cas important se décrit dans une fiche textuelle, qui sert de référence aux développeurs et aux testeurs.
| Rubrique | Contenu |
|---|---|
| Acteur principal | Technicien (ou Responsable technique) |
| Acteur secondaire | Messagerie |
| Objectif | consigner le résultat d’un contrôle préventif, point par point |
| Préconditions | le technicien est authentifié dans KerMaint ; une intervention préventive non clôturée existe pour le plan |
| Déclencheur | le technicien ouvre l’intervention depuis la liste de ses contrôles ou en recherchant l’équipement (cas inclus) |
| Scénario nominal | 1. KerMaint affiche l’équipement, l’échéance et les points de contrôle du plan. 2. Le technicien indique pour chaque point « Conforme » ou « Non conforme ». 3. Il saisit la durée, et éventuellement une observation et une photo. 4. Il valide. 5. KerMaint vérifie que tous les points sont renseignés et que la durée respecte RG9. 6. KerMaint enregistre le résultat (RG5), clôture l’intervention et calcule l’échéance suivante du plan (RG3). 7. KerMaint confirme l’enregistrement. |
| Scénario alternatif A1 (point d’extension « résultat ») | en 6, un point est non conforme : KerMaint crée l’intervention corrective (RG6, cas « Créer une intervention corrective ») et la Messagerie prévient le responsable technique ; reprise en 7. |
| Scénario alternatif A2 | à tout moment, le brouillon est enregistré toutes les 2 minutes ; si la connexion est perdue, la saisie reprend à la réouverture. |
| Exceptions | E1 : en 5, un point manque ou la durée est hors limites → message précis, retour en 2. E2 : en 6, l’intervention a été clôturée entre-temps par un autre utilisateur → message, aucune modification. |
| Postconditions | l’intervention est clôturée avec son résultat ; le plan a une nouvelle échéance ; le contrôle figure dans le registre. |
Construire le diagramme de cas d'utilisation
- Lister les acteurs à partir des entretiens (rôles, pas personnes ; penser aux systèmes extérieurs).
- Pour chaque acteur, lister ses objectifs : chacun donne un cas (verbe à l’infinitif + complément).
- Tracer le sujet et y placer les cas ; les acteurs à l’extérieur, reliés à leurs cas.
- Mettre en commun les parties répétées par «include» ; isoler les comportements facultatifs et conditionnels par «extend», avec point d’extension et condition.
- Ajouter les généralisations d’acteurs si un rôle fait tout ce que fait un autre.
- Décrire chaque cas important dans une fiche textuelle et relier ses étapes aux règles de gestion.
- Faire relire le diagramme et les fiches par le client.
7. Modéliser les classes
Le diagramme de classes d’analyse représente les notions du métier et leurs liens : c’est le vocabulaire du domaine mis en forme. Il prépare à la fois la programmation objet et la base de données, sans encore entrer dans leurs détails.
ADécrire une classe
Classe d'analyse
Une classe décrit un ensemble d’objets qui ont les mêmes caractéristiques (attributs) et les mêmes comportements (opérations). Une classe d’analyse représente une notion du métier du client (Equipement, PlanPreventif), pas un élément technique (écran, table, fichier).
Une classe se dessine comme un rectangle à trois compartiments : le
nom (au singulier, avec une majuscule), les
attributs, les opérations. La syntaxe
d’un attribut est nom : Type [multiplicité] :
dateMes : Date [0..1] veut dire que la date de mise en
service d’un équipement peut être absente ; sans crochets, l’attribut a
exactement une valeur. En analyse, on se limite à quelques opérations
significatives (echeanceSuivante() : Date) ; la
visibilité (+, −, #) et le détail des méthodes relèvent
de la programmation objet (SLAM-02).
BAssociations et multiplicités
Association, multiplicité
Une association est un lien durable entre des objets de deux classes, dessiné par un trait plein ; on peut lui donner un nom, avec un petit triangle plein qui indique le sens de lecture. La multiplicité placée à une extrémité indique combien d’objets de cette classe peuvent être liés à un objet de l’autre classe.
| Notation | Sens | Exemple dans le module |
|---|---|---|
1 |
exactement un | une intervention concerne 1 équipement |
0..1 |
zéro ou un | une intervention est réalisée par 0..1 technicien (pas encore affectée) |
0..* ou * |
zéro, un ou plusieurs | un équipement fait l’objet de 0..* plans |
1..* |
au moins un | un plan comprend 1..* points de contrôle |
Trouver une multiplicité sans se tromper
- Pose la question depuis un objet de la classe d’en
face : « Pour un plan préventif, combien d’équipements
au minimum ? au maximum ? » → 1 et 1 : on écrit
1du côté d’Equipement. - Puis dans l’autre sens : « Pour un équipement,
combien de plans ? » → 0 à plusieurs : on écrit
0..*du côté de PlanPreventif. - Vérifie chaque réponse avec un cas réel (la chaudière a deux plans ; une borne Wi-Fi n’en a aucun).
CLes liens particuliers
- La composition (losange plein, côté du tout) indique qu’une partie n’existe pas sans son tout et n’appartient qu’à lui : un point de contrôle n’a pas de sens hors de son plan ; supprimer le plan supprime ses points.
- L’agrégation (losange creux, côté du tout) indique un simple regroupement, sans dépendance de vie : une équipe et ses techniciens. Elle est peu utilisée ; dans le doute, une association simple suffit.
- La généralisation (triangle creux côté classe générale) indique qu’une classe spécialisée est une sorte de classe générale : elle hérite de ses attributs, de ses opérations et de ses associations. Une intervention préventive est une intervention, avec en plus une échéance prévue et un résultat.
Classe abstraite
Une classe abstraite ne peut pas avoir d’objets
directement : seules ses spécialisations en ont. Son nom s’écrit en
italique (ou suivi de {abstract}). On rend une
classe abstraite quand aucun objet ne peut exister sans appartenir à
l’une de ses spécialisations.
Dans le module, la classe Intervention n’est pas
abstraite : une intervention signalée par la réception ou créée par RG6
est une intervention ordinaire, dite corrective, qui n’a rien de plus
que ce que décrit la classe Intervention. Seule l’intervention
préventive ajoute des informations (échéance prévue, résultat) : elle
seule mérite une sous-classe. Ce choix est repris tel quel dans le code
de SLAM-02, où Intervention est une classe concrète et
InterventionPreventive sa fille. À l’inverse, en SLAM-02,
la classe Equipement est abstraite : un équipement est toujours une
climatisation, une chaudière, un ascenseur…
Ne mets pas de clé étrangère (idEquipement) dans les
attributs d’une classe d’analyse : le lien est porté par
l’association. Et un attribut qui a lui-même des
caractéristiques (un point de contrôle avec son ordre et son libellé)
devient une classe, pas une liste de textes.
Quand une association porte elle-même des informations, on la représente par une classe d’association, reliée au trait de l’association par des pointillés. Le résultat de chaque point lors d’une intervention préventive (conforme ou non, commentaire) pourrait se modéliser ainsi entre InterventionPreventive et PointControle ; tu le pratiqueras en exercice 8.
DLes frontières avec les autres chapitres
Le même métier se modélise trois fois, à trois niveaux : ne les confonds pas.
| Modèle | Ce qu’il décrit | Chapitre |
|---|---|---|
| Diagramme de classes d’analyse | les notions du métier et leurs liens | ici |
| Diagramme de classes de conception et code | visibilité, types du langage, méthodes, interfaces, héritage programmé | SLAM-02, SLAM-07 |
| Modèle des données (MCD, modèle relationnel) | tables, clés, contraintes, normalisation | SLAM-03 |
ERetrouver le modèle d’une application existante
Le module s’ajoute à KerMaint, qui existe depuis 2022. Avant de modéliser le neuf, Sarah reconstitue le modèle de l’existant : c’est la rétro-conception (reverse engineering), qui part de ce qui fonctionne (base de données, écrans, code) pour retrouver le modèle.
Rétro-conception
La rétro-conception consiste à reconstruire le modèle d’une application à partir de ses éléments réalisés : schéma de la base, code source, écrans, documentation. Elle sert à comprendre un existant mal documenté, à préparer une évolution ou une migration.
Le schéma de la base de KerMaint (voir le fil rouge) se lit ainsi :
chaque table métier donne une classe ;
chaque clé étrangère donne une
association ; une clé étrangère
obligatoire (NOT NULL) donne la
multiplicité 1, une clé facultative donne
0..1 ; une contrainte CHECK donne une
règle de gestion. Les outils de modélisation savent
dessiner le diagramme à partir de la base ; on peut aussi interroger le
catalogue du SGBD.
Requête exécutée par Sarah sur une copie de la base de KerMaint
(MariaDB 10.11, catalogue information_schema) pour lister
les clés étrangères :
SELECT TABLE_NAME AS table_source, COLUMN_NAME AS colonne,
REFERENCED_TABLE_NAME AS table_cible
FROM information_schema.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA = 'kermaint' AND REFERENCED_TABLE_NAME IS NOT NULL
ORDER BY TABLE_NAME, COLUMN_NAME;+--------------+----------+---------------+
| table_source | colonne | table_cible |
+--------------+----------+---------------+
| equipement | id_etab | etablissement |
| intervention | id_equip | equipement |
| intervention | id_tech | technicien |
| technicien | id_etab | etablissement |
+--------------+----------+---------------+
Lecture : intervention.id_tech accepte la valeur vide
(colonne IS_NULLABLE = YES dans
information_schema.COLUMNS) : une intervention est réalisée
par 0..1 technicien. intervention.id_equip
est obligatoire : elle concerne 1 équipement. La
contrainte priorite BETWEEN 1 AND 4 est une règle de
gestion qu’il faut garder.
Elle révèle aussi des manques : aucune colonne ne relie une intervention à un plan préventif ; la spécialisation InterventionPreventive du modèle cible demandera une évolution du schéma (SLAM-03, migration en SLAM-08).
8. Décrire les échanges et les traitements
Le diagramme de classes montre ce qui existe ; il ne dit pas ce qui se passe. Le diagramme de séquence décrit les messages échangés pendant un scénario, le diagramme d’activité l’enchaînement des actions d’un traitement.
ALe diagramme de séquence
Diagramme de séquence
Le diagramme de séquence représente les messages échangés entre des participants pendant un scénario, dans l’ordre chronologique, de haut en bas. Chaque participant a une ligne de vie verticale.
| Élément | Notation |
|---|---|
| Cadre | rectangle avec, en haut à gauche, un pentagone contenant sd et le nom de l’interaction |
| Ligne de vie | rectangle de tête contenant nom : Type (nom facultatif,
non souligné en UML 2), puis trait vertical en
pointillés ; un acteur peut garder son bonhomme |
| Spécification d’exécution | fine bande verticale sur la ligne de vie : le participant est en train de traiter |
| Message synchrone (appel) | trait plein, pointe pleine : l’émetteur attend la fin du traitement |
| Message asynchrone | trait plein, pointe ouverte : l’émetteur n’attend pas |
| Réponse | trait en pointillés ; le libellé peut indiquer la
valeur rendue (p = avancerEcheance()) |
| Message de création | trait en pointillés, pointe ouverte, qui arrive sur la tête du participant créé |
| Fragment combiné | rectangle avec l’opérateur dans un pentagone : opt
(facultatif), alt (alternatives séparées par des
pointillés), loop (répétition) ; la
garde s’écrit entre crochets
[condition] |
Ce diagramme détaille les étapes 4 à 7 du scénario nominal et
l’alternative A1 de la fiche « Enregistrer un contrôle ». Les messages
correspondent à des opérations des classes :
enregistrerResultat() doit figurer dans
InterventionPreventive, avancerEcheance() dans
PlanPreventif. C’est ainsi qu’on vérifie la cohérence
des diagrammes : tout message reçu par un objet doit être une opération
de sa classe. Ici, avancerEcheance() manque encore au
diagramme de classes : il faudra l’ajouter (Sarah l’a noté pour la
version suivante).
Un diagramme de séquence décrit un scénario, pas
toutes les possibilités : s’il faut dix fragments alt
imbriqués, le diagramme est illisible. Fais un diagramme par scénario
important, et garde les alternatives dans la fiche textuelle.
BLe diagramme d’activité
Diagramme d'activité
Le diagramme d’activité représente l’enchaînement des actions d’un traitement ou d’un processus métier, avec ses décisions et ses actions parallèles. Il peut être découpé en couloirs (partitions) qui montrent qui fait quoi.
| Élément | Notation |
|---|---|
| Action | rectangle à coins arrondis, nommé par un verbe |
| Flux | flèche à pointe ouverte ; une garde entre crochets près du départ |
| Nœud initial | petit rond plein |
| Fin de l’activité | rond plein dans un cercle (cible) : tout s’arrête |
| Fin de flux | cercle barré d’une croix : seul ce chemin s’arrête |
| Décision et fusion | losange : une entrée et plusieurs sorties gardées (décision), ou plusieurs entrées et une sortie (fusion) |
| Fourche et jonction | barre épaisse : une entrée et plusieurs sorties parallèles (fourche), ou plusieurs entrées attendues avant de continuer (jonction) |
| Partition (couloir) | bandes parallèles avec le nom du responsable en tête |
Les gardes d’une même décision doivent être
exclusives et couvrir tous les cas :
[conforme] et [non conforme]. Le diagramme
d’activité convient pour montrer un processus métier à
un client, qui le lit plus facilement qu’un diagramme de séquence.
Quel diagramme pour quelle question ?
- Qui utilise le système et pour quoi faire ? → cas d’utilisation (et fiches textuelles).
- Quelles notions et quels liens ? → classes.
- Qui envoie quel message à qui, dans un scénario ? → séquence.
- Dans quel ordre, avec quelles décisions et quel parallélisme ? → activité.
9. Choisir une architecture
L’architecture applicative, c’est la façon dont l’application est découpée en parties et dont ces parties communiquent et sont déployées. Le développeur ne la décide pas seul, mais il doit savoir lire et justifier les choix possibles.
ALes grandes typologies
Architecture applicative
L’architecture applicative décrit le découpage d’une application en composants (interface, traitements métier, accès aux données, services), leurs échanges et leur déploiement sur des machines.
| Architecture | Principe | Exemple dans le fil rouge |
|---|---|---|
| Client-serveur | un client envoie des requêtes, un serveur les traite ; client léger (navigateur) ou lourd (logiciel installé) | KerMaint : navigateur de la tablette → serveur web |
| En couches (trois niveaux) | présentation / logique métier / données, chaque couche n’appelle que la suivante | KerMaint : écrans, règles de gestion, MariaDB |
| MVC | modèle, vue, contrôleur : une organisation du code de la couche applicative | le framework de KerMaint (SLAM-07) |
| Monolithique | une seule application déployée d’un bloc | KerMaint aujourd’hui |
| Orientée services, API | des fonctions exposées par des interfaces normalisées, appelées par d’autres applications | l’API KerResa (SLAM-09) |
| Microservices | beaucoup de petits services indépendants, déployés séparément | non utilisé : trop lourd pour une petite équipe |
| Application mobile | native (installée, accès au matériel), web (navigateur) ou hybride | « Kervanet & Moi », cliente de KerResa |
L’hébergement fait aussi partie des choix : serveur
du client (KV-KERMAINT), prestataire, ou logiciel à la
demande (SaaS), comme le logiciel de gestion hôtelière
de Kervanet (CEJMA-01).
BL’architecture retenue pour le module
Anaïs et Sarah comparent deux options : intégrer le module dans KerMaint ou acheter un logiciel de maintenance du marché en SaaS (comparaison chiffrée en exercice 7). Elles proposent l’intégration :
- les écrans du module sont de nouvelles vues de KerMaint, utilisées dans le navigateur des tablettes ;
- la logique métier (RG1 à RG9) est programmée dans le framework de KerMaint ;
- les données sont dans la base MariaDB existante : équipements et techniciens sont partagés, sans double saisie ;
- la génération nocturne (RG4) est une tâche
planifiée sur
KV-KERMAINTà 5 h, qui joue le rôle de l’acteur Planificateur ; - les notifications passent par l’envoi de courriels que KerMaint utilise déjà ;
- l’export PDF du registre utilise la bibliothèque déjà présente dans KerMaint, sous licence LGPL, autorisée par la politique de Vellacor (CEJMA-02).
Ce que le module ajoute à la charge du serveur
Données : 58 plans. Même tous mensuels, ils donneraient 58
interventions par mois, environ 2 par jour. Interprétation : charge
négligeable pour KV-KERMAINT (4 vCPU, 8
Go) ; le choix se joue sur l’intégration des données et
le coût.
Le mode hors connexion (US6, Could) changerait l’architecture : saisies stockées sur la tablette, puis synchronisées, avec des conflits à gérer. Sarah le note comme évolution possible, hors devis : le brouillon automatique couvre l’essentiel du risque.
10. Chiffrer une solution
Une solution se choisit aussi sur son coût, et pas seulement sur le prix du développement. Il faut additionner tout ce qu’elle coûtera, au client comme au prestataire, pendant sa durée de vie.
ALa composition du coût
| Composante | Contenu | Pour le module |
|---|---|---|
| Réalisation | analyse, conception, maquettes, développement, tests, recette, pilotage, déploiement, documentation, formation | le devis de Vellacor |
| Acquisition | licences, composants, matériel | composants libres déjà présents ; aucun matériel |
| Exploitation | hébergement, sauvegarde, supervision, énergie | serveur existant, coût marginal négligeable |
| Maintenance | corrective, évolutive, mises à jour | corrective : comprise dans la TMA du forfait ; évolutions : sur devis |
| Coûts internes du client | temps des utilisateurs (entretiens, recette, formation), conduite du changement | temps de Franck Guillou et des techniciens |
| Sortie | réversibilité, export des données | données dans la base de Kervanet, déjà couvertes par le plan de réversibilité (CEJMA-04) |
Coût total de possession
Le coût total de possession (total cost of ownership, TCO) est la somme de tous les coûts d’une solution sur une durée donnée (souvent 3 à 5 ans) : acquisition et réalisation, exploitation, maintenance et coûts internes. Il permet de comparer des solutions dont les coûts ne tombent pas au même moment (un développement payé une fois contre un abonnement mensuel).
BLe devis du module
La charge s’estime par activité et par personne, en jours-homme (j-h), puis se valorise aux prix de journée de Vellacor (B1-10) : cheffe de projet ou responsable technique 680 € HT, technicien ou développeur 560 € HT, alternant 400 € HT.
Le devis envoyé à Kervanet le 19/10/2026
Données : charges estimées par Anaïs et Sarah.
| Activité | Charge | Montant HT |
|---|---|---|
| Analyse et modélisation (Anaïs 2 j, Sarah 3 j) | 5 j-h | 2 × 680 + 3 × 400 = 2 560 € |
| Maquettes et prototype (Sarah 2 j) | 2 j-h | 2 × 400 = 800 € |
| Développement (Romain 6 j, Sarah 5 j) | 11 j-h | 6 × 560 + 5 × 400 = 5 360 € |
| Tests et recette (Romain 1 j, Sarah 2 j) | 3 j-h | 560 + 800 = 1 360 € |
| Déploiement, documentation, formation (Romain 1 j, Sarah 1 j) | 2 j-h | 560 + 400 = 960 € |
| Pilotage (Mélodie Rochereau 2 j) | 2 j-h | 2 × 680 = 1 360 € |
| Sous-total | 25 j-h | 12 400 € |
Calcul : réserve pour aléas de 10 % = 12 400 × 0,10 = 1 240 € ; total = 12 400 + 1 240 = 13 640 € HT.
Coûts internes de Kervanet (hypothèses de Vellacor) : Franck Guillou 10 h à 40 € = 400 € ; Mathis et Nadia, 12 h en tout à 30 € = 360 € ; formation d’une heure des 12 utilisateurs réguliers à 30 € = 360 € ; soit 1 120 €.
Interprétation : le module coûte à Kervanet 14 760 € la première année (13 640 + 1 120), puis presque rien en exploitation. Ce montant se compare au coût des oublis : un contrôle de sécurité oublié peut entraîner une panne en pleine saison ou mettre en cause la responsabilité de l’exploitant.
Oublier les coûts internes du client et la maintenance fausse toute comparaison : un logiciel du marché paraît moins cher à l’achat, mais son abonnement, sa formation et la double saisie s’additionnent chaque année.
11. Maquetter une interface
Les utilisateurs comprennent mieux un écran qu’un diagramme. La maquette et le prototype permettent de valider l’interface tôt, en appliquant les principes d’ergonomie et d’accessibilité, puis en la testant avec de vrais utilisateurs.
AMaquettes et prototypes
Maquette, prototype
- Une maquette (wireframe, puis mock-up) est une représentation statique d’un écran : disposition des zones, libellés, boutons. En basse fidélité (croquis, niveaux de gris), on discute de l’organisation ; en haute fidélité (couleurs, typographie), de l’aspect final.
- Un prototype est une version interactive et simplifiée : on peut cliquer, enchaîner les écrans, saisir. Il peut être jetable (fait pour tester une idée) ou évolutif (il devient l’application).
On maquette sur papier, avec un outil de conception d’interfaces (Penpot, outil libre, ou des outils en ligne du marché) ou directement en HTML et CSS. La maquette respecte la charte graphique du client quand elle existe (couleurs de Kervanet, B1-08), mais pour un outil interne sur tablette, la lisibilité prime.
BLes principes d’ergonomie
L’ergonomie d’une interface, c’est sa capacité à être utilisée efficacement, sans erreur et avec satisfaction par ses utilisateurs, dans leur situation réelle. La norme ISO 9241-110:2020 énonce des principes d’interaction ; en France, on utilise aussi beaucoup les critères ergonomiques de Christian Bastien et Dominique Scapin (INRIA, 1993), conçus pour évaluer une interface.
| Critère | Ce qu’il demande | Sur l’écran de contrôle |
|---|---|---|
| Guidage | l’utilisateur sait où il est, quoi faire, ce qui s’est passé | nom de l’équipement et échéance en tête ; confirmation après validation |
| Charge de travail | peu de saisie, peu à mémoriser, informations utiles seulement | deux boutons par point au lieu d’une liste déroulante ; durée seule à taper |
| Contrôle explicite | l’utilisateur déclenche les actions importantes lui-même | la validation est un geste volontaire, jamais automatique |
| Adaptabilité | l’interface s’adapte au contexte et aux utilisateurs | gros boutons utilisables avec des gants ; affichage en mode portrait ou paysage |
| Gestion des erreurs | prévenir les erreurs, les signaler clairement, permettre de corriger | « Valider » inactif tant qu’un point manque ; message précis sur le point oublié |
| Homogénéité | mêmes choix d’un écran à l’autre | mêmes boutons et mêmes couleurs que les autres écrans de KerMaint |
| Signifiance des codes et des dénominations | des libellés clairs, dans les mots de l’utilisateur | « Conforme » et « Non conforme », termes du glossaire |
| Compatibilité | l’interface correspond aux habitudes et au travail réel | points dans l’ordre où le technicien les contrôle sur place |
CConcevoir pour la tablette et pour tous
L’accessibilité, étudiée en B1-09 avec le RGAA pour les sites publics, s’applique aussi à une application interne comme bonne pratique : elle profite à tous les utilisateurs (gants, lumière forte, fatigue) et à ceux qui ont un handicap.
Les règles d'accessibilité à appliquer dès la maquette
- Ne jamais transmettre une information par la couleur seule : l’état « Non conforme » est orange, mais aussi marqué d’une croix et écrit en gras.
- Contraste suffisant entre le texte et le fond (au moins 4,5 pour 1 pour un texte normal, calcul en B1-09).
- Cibles tactiles assez grandes : les règles internationales WCAG 2.2 demandent au moins 24 × 24 pixels CSS (niveau AA) et recommandent 44 × 44 (niveau AAA) ; KerMaint retient 44 × 44 pour le travail avec des gants.
- Chaque champ a une étiquette visible (« Durée (min) ») et les messages d’erreur disent quoi corriger.
- Tout est utilisable au clavier et lisible par un lecteur d’écran (titres, ordre logique).
DÉvaluer et valider une interface
On évalue une maquette ou un prototype de deux façons :
- l’inspection : un spécialiste examine l’interface critère par critère et liste les défauts ;
- le test utilisateur : de vrais utilisateurs réalisent des tâches précises sur le prototype, sans aide ; on observe et on mesure le taux de réussite, le temps et les erreurs, puis on recueille leur avis.
Organiser un test utilisateur
- Choisir 3 à 5 utilisateurs représentatifs (les vrais techniciens, pas des collègues développeurs).
- Écrire des tâches réalistes, avec un objectif clair (« enregistre le contrôle de la chaudière, un point est non conforme »), sans donner le mode d’emploi.
- Observer sans aider ; noter les hésitations, les erreurs, le temps.
- Calculer les indicateurs : taux de réussite par tâche, temps moyen, erreurs.
- Classer les problèmes par gravité et corriger la maquette ; retester si le changement est important.
Le test du prototype, mardi 13 octobre 2026
Données : 5 techniciens (dont Mathis Le Goff et Nadia Poitevin) ; trois tâches : T1 enregistrer un contrôle conforme, T2 enregistrer un contrôle avec un point non conforme, T3 trouver les échéances en retard d’un établissement. Réussites : T1 5 sur 5, T2 3 sur 5, T3 4 sur 5. Temps pour T1 : 95, 110, 80, 130 et 100 secondes.
Calcul : taux de réussite global = (5 + 3 + 4) ÷ 15 = 12 ÷ 15 = 80 % ; temps moyen de T1 = (95 + 110 + 80 + 130 + 100) ÷ 5 = 515 ÷ 5 = 103 secondes.
Interprétation : T1 respecte l’exigence « moins de 2 minutes » (103 s < 120 s). T2 pose problème : deux techniciens n’ont pas vu comment marquer un point non conforme, car le premier prototype utilisait un petit interrupteur. Sarah l’a remplacé par les deux grands boutons de la maquette ci-dessus.
12. Valider le modèle avec le client
Un modèle n’a de valeur que s’il est validé par ceux qui ont exprimé le besoin. La validation se prépare, se conduit avec des scénarios concrets et se conclut par un accord écrit, qui devient la référence pour la réalisation et la recette.
AFaire comprendre le modèle
Franck Guillou ne lit pas l’UML. Sarah prépare donc une revue de validation avec des supports adaptés :
- les récits et leurs critères d’acceptation, en français courant ;
- les règles de gestion, chacune illustrée d’un exemple chiffré (les trois plans de RG3) ;
- le diagramme d’activité, qui ressemble à un logigramme ;
- la maquette et le prototype, sur une vraie tablette ;
- des scénarios déroulés de bout en bout (« le 9 novembre à 5 h, KerMaint crée l’intervention… »).
Les diagrammes de classes et de séquence sont validés en interne par Anaïs (cohérence avec les récits et les règles).
BLa revue du 16 octobre 2026
La revue réunit Franck Guillou, Mélodie Rochereau, Anaïs Lecoq, Sarah
et Mathis Le Goff. Six scénarios sont déroulés. Trois remarques sont
retenues : un plan doit pouvoir être suspendu pendant
la fermeture d’un établissement (d’où l’attribut actif de
PlanPreventif) ; un organe de sécurité non conforme doit
prévenir immédiatement le responsable (exigence de
sûreté) ; l’export PDF n’est pas indispensable pour la première version
(US5 reste Should). Le compte rendu, avec la version 1.0 des
spécifications, est validé par Franck Guillou et Mélodie Rochereau.
Traçabilité des exigences
La traçabilité relie chaque besoin à ce qui le réalise et à ce qui le vérifie : récit → cas d’utilisation → règles de gestion → tests de recette. Elle permet de prouver que tout ce qui a été demandé est réalisé et testé, et de mesurer l’impact d’un changement.
| Récit | Cas d’utilisation | Règles | Tests de recette |
|---|---|---|---|
| US1 | Gérer les plans préventifs | RG1, RG2, RG8 | MP-01 à MP-04 |
| US2 | Consulter les échéances | RG7 | MP-05, MP-06 |
| US3 | Enregistrer un contrôle | RG3, RG5, RG9 | MP-07 à MP-10 |
| US4 | Créer une intervention corrective (extension) | RG6 | MP-11, MP-12 |
| — | Générer les interventions préventives | RG4 | MP-13, MP-14 |
Conduire la validation d'un modèle
- Vérifier en interne la cohérence : chaque récit a un cas, chaque message de séquence une opération, chaque règle un test, chaque terme un sens dans le glossaire.
- Préparer des supports lisibles par le client : récits, règles illustrées, activité, maquettes, scénarios.
- Dérouler des scénarios réels, y compris des cas d’erreur, plutôt que commenter des diagrammes.
- Noter les remarques, décider ensemble de leur sort (accepté, refusé, reporté) et mettre le modèle à jour.
- Faire valider par écrit la version des spécifications (compte rendu signé ou validation dans l’outil) : c’est la référence du devis et de la recette.
- Gérer les changements ultérieurs : toute nouvelle demande passe par une analyse d’impact et, si elle sort du périmètre, par un nouveau devis (CEJMA-03, SLAM-11).
CEt après ?
Le devis est envoyé le 19 octobre 2026 à Gwenaëlle Le Bihan. S’il est accepté, US1 à US4 entreront dans le backlog produit après l’objectif en cours (fin prévue le 11 décembre, B1-10).
Erreurs fréquentes et points de vigilance
- Écrire la solution au lieu du besoin (« ajouter une table ») : le besoin vient du client, la solution du prestataire.
- Laisser des exigences non fonctionnelles non mesurables (« rapide », « simple »).
- Confondre acteur et personne, ou nommer un cas d’utilisation par un nom ou par un clic.
- Inverser le sens des flèches «include» (de la base vers l’inclus) et «extend» (de l’extension vers la base).
- Placer la multiplicité du mauvais côté de l’association, ou mettre des clés étrangères dans les attributs d’une classe d’analyse.
- Mettre le losange de composition du côté de la partie au lieu du tout.
- Souligner les noms des lignes de vie (notation d’UML 1) ou dessiner une réponse en trait plein.
- Des diagrammes incohérents entre eux : un message de séquence qui ne correspond à aucune opération.
- Faire valider des diagrammes par un client qui ne les lit pas, au lieu de scénarios et de maquettes.
L’essentiel du chapitre
- Analyser, c’est passer du besoin du client à des spécifications vérifiables, puis à un modèle validé, avant de développer.
- Cycles séquentiels, itératifs (dont agiles) ou avec prototypage : en agile, l’analyse est découpée et affinée avant chaque sprint.
- Le besoin se recueille par entretien, observation, atelier, questionnaire et analyse de l’existant ; ses contraintes juridiques deviennent des exigences.
- On formalise : acteurs, besoins fonctionnels, exigences non fonctionnelles mesurables (grille ISO/IEC 25010:2023), règles de gestion numérotées, glossaire.
- Un récit utilisateur (« En tant que…, je veux… afin de… ») respecte la grille INVEST et porte des critères d’acceptation (Étant donné / Quand / Alors).
- UML 2.5.1 : cas d’utilisation (acteurs, sujet, «include», «extend», fiche textuelle), classes (attributs, opérations, associations, multiplicités, composition, généralisation), séquence (lignes de vie, messages synchrones, réponses, fragments), activité (actions, décisions, fourches, couloirs).
- La rétro-conception reconstruit le modèle d’un existant à partir de sa base, de son code et de ses écrans.
- L’architecture (client-serveur, couches, monolithe, services, mobile, hébergement) se choisit selon l’intégration, le coût et les compétences.
- Le coût d’une solution inclut réalisation, acquisition, exploitation, maintenance, coûts internes et sortie : on compare des coûts totaux de possession.
- Une interface se maquette, se prototype et s’évalue (critères ergonomiques, test utilisateur), en appliquant l’accessibilité dès le départ.
- Le modèle se valide avec le client par des scénarios et des maquettes, avec une traçabilité des besoins jusqu’aux tests.
Sources et références
- Arrêté du 29 avril 2019 portant définition et fixant les conditions de délivrance du BTS « Services informatiques aux organisations », modifié par les arrêtés du 8 juillet 2024 et du 22 novembre 2024 : annexe I.B, bloc 2 option B, compétence « Concevoir et développer une solution applicative » et savoirs associés ; définition de l’épreuve E6.
- OMG, Unified Modeling Language, version 2.5.1, document formal/17-12-05, décembre 2017 (omg.org/spec/UML/2.5.1) : notation des cas d’utilisation (§ 18.1.4), des associations (§ 11.5.4), de la généralisation (§ 9.2.4), des attributs (§ 9.5.4), des interactions (§ 17.2.4 à 17.6.4) et des activités (§ 15.2.4, 15.3.4, 15.6.4) ; consulté le 20/10/2026.
- ISO/IEC 25010:2023, Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — Product quality model, 2e édition, novembre 2023 (fiche iso.org : neuf caractéristiques, norme publiée en anglais seulement) ; noms anglais des caractéristiques relevés sur quality.arc42.org ; traduction française libre ; consultés le 20/10/2026.
- ISO 9241-110:2020, Ergonomics of human-system interaction — Part 110: Interaction principles (fiche iso.org : 2e édition, mai 2020, confirmée en 2025) ; consultée le 20/10/2026.
- C. Bastien, D. Scapin, Ergonomic criteria for the evaluation of human-computer interfaces, rapport technique INRIA RT-0156, 1993, critères présentés en anglais et en français (inria.hal.science/inria-00070012, notice consultée le 20/10/2026).
- W3C, WCAG 2.2, critères 2.5.8 « Target Size (Minimum) » (24 × 24 px, niveau AA) et 2.5.5 « Target Size (Enhanced) » (44 × 44 px, niveau AAA), pages « Understanding » de w3.org, consultées le 20/10/2026.
- Scrum Guide (novembre 2020), récits utilisateur et MoSCoW : voir B1-10. RGAA 4.1.2 et obligations d’accessibilité : voir B1-09.
- Requête de rétro-conception exécutée le 20/10/2026 sur la machine de
laboratoire
LAB-UBU01(MariaDB 10.11 ; le catalogueinformation_schemautilisé est le même en MariaDB 11.8), sur une copie du schéma de KerMaint.