← Projets

LDVH — Le Livre Dont Vous Êtes le Héros

Sorbonne UniversitéIngénierie LogicielleSept. — Déc. 2022

Projet d'ingénierie logicielle conduit en équipe de 8 (compagnie STLoosers) suivant le cycle en V : spécification, analyse, conception, implémentation et tests. L'objectif est de livrer un logiciel permettant à un auteur de créer, éditer et naviguer dans des livres-jeux structurés comme des graphes de sections et d'enchaînements.

Modélisation métier

Le modèle métier repose sur trois entités principales : Livre (conteneur racine), Section (nœud du graphe, composé d'un texte narratif et d'objets optionnels) et Enchaînement (arête orientée entre deux sections, avec description et condition d'objet facultative).

Deux cas d'utilisation centraux ont été entièrement spécifiés, conçus et testés :

UC03 — Construire une section

L'auteur saisit le texte de la nouvelle section, choisit d'y associer ou non des objets (itération jusqu'à validation), puis confirme. Le système ajoute la section au graphe du livre.

  • Alternatif A1 — ajout d'un ou plusieurs objets nommés avant confirmation.
  • Exception E1 — annulation : aucune section créée, retour au menu.

Trois tests de validation couvrent le cas nominal (TV08), l'alternatif avec objet (TV09) et l'exception d'annulation (TV10), chacun vérifié par inspection du graphe de sections.

UC04 — Définir un nouvel enchaînement

L'auteur sélectionne une section de départ, une section d'arrivée, saisit une description et choisit optionnellement un objet comme condition. Le système valide le graphe (pas de doublon, pas d'auto-boucle, deux sections distinctes requises) avant de créer l'enchaînement.

  • Alternatif A1 — aucun objet de condition sélectionné.
  • Exception E1 — annulation utilisateur.
  • Exception E2 — sections invalides (non saisies, identiques, enchaînement déjà existant).

Sept tests de validation (TV010 à TV016) couvrent l'ensemble des scénarios, incluant les quatre cas d'erreur de l'exception E2.

Architecture et conception

La conception s'appuie sur une architecture à composants avec diagramme de structure interne. Deux composants principaux — LivreManager et EnchaînementManager — communiquent via interfaces typées. Les tests d'intégration valident les séquences composant-à-composant avec assertions JUnit.

Diagramme de conception détaillée — Définir un nouvel enchaînement

Exemple de tests d'intégration sur l'UC04 :

// contexte : livre avec sections {1,2,3,4}, enchaînement (1,3) existant
assertEquals(creer_enchainement(1, 2, "il ouvre la porte").getSectionEnd(), 2); // true
assertExists(creer_enchainement(1, 2, "il ouvre la porte"), livre.getAllEnchainements()); // true
assertEquals(creer_enchainement(4, 5, "description") in livre.getAllEnchainements(), false); // true — section inexistante

L'interface finale présente trois écrans : édition du livre (vue graphe), édition d'une section (texte + objets) et édition d'un enchaînement (sélection des sections + description + condition).

Stack

Java

Équipe — STLoosers

Daniel SimaSorbonne Université
Zeid FazaziSorbonne Université
Olando BazilSorbonne Université
Abdelkader BoumessaoudSorbonne Universitéabdelkader.boumessaoud.pro@gmail.com
Quentin GavoilleSorbonne Université
Farouck CherfiSorbonne Université
Arthur PendelliouSorbonne Université
Amaury CurielSorbonne Université