Web sémantique pour la gestion des exigences agiles

Publié par Éric Le Merdy
Qu'est-ce que le web sémantique ?
Dans le web "des humains", deux pages peuvent être liées entre elles mais le sens de ce lien n'est pas strictement définit par l'auteur de la page.
Le modèle de liens du web.
Dans le web sémantique, le modèle de liens entre pages est enrichi d'une signification connue et non ambiguë.
Modèle de liens du web sémantique.
C'est cet apport d'une signification forte qui forme le triplet "sujet-prédicat-objet". Rien n'empêche alors de bénéficier de la puissance de calcul des machines pour nous aider à organiser les données.Par exemple, vous pouvez visiter dbpedia qui est la version sémantique de wikipedia. Exemple: Valtech.

D'où vient la gestion d'exigences ?

La gestion des exigences -dans le cycle de développement logiciel traditionnel en V- est une discipline à part entière qui intervient dans les phases amont du développement. Dans cet univers où la prédictibilité est indispensable, la gestion d'exigences permet de mettre d'accord fournisseur et client sur le contour fonctionnel du système à développer.Il existe de nombreux outils spécialisés dans cette tâche (Requisite PRO, Doors, etc.). Ils sont portés par des éditeurs de solutions qui ont répondu à un besoin existant dans l'industrie du développement logiciel. A mesure que les échecs des projets ont fait souffrir les clients qui n'obtenaient pas le produit souhaité dans les délais et le budget prévu, la tentation a été de renforcer toujours plus les exigences afin d'établir des contrats encore plus robustes aux aléas de la réalité des projets.L'approche agile s'inscrit à contre-pied de cette vision en mettant plutôt en avant la collaboration entre le client et le fournisseur plutôt que renforcer leurs positions défensives. De même, je trouve plus pragmatique d'exprimer les exigences aux travers de user stories car cela met les besoins en rapport avec leur utilité pour l'utilisateur. J'ai parfois lu des exigences en ayant l'impression qu'elles étaient "tombées du ciel", détachées de tout lien avec un scénario utilisateur. J'ai alors eu peur de me perdre en abstractions ce qui peut renforcer la tendance à la sur spécification et au sur développement.Mais alors, quels outils utiliser pour porter cette relation plus saine ? Comment gérer efficacement les user stories ? Doit-on cesser de spécifier les fonctionnalités et prier pour que le logiciel réalise ce qu'on avait imaginé ? (Bien sûr que non)

Mettre en accord gestion d'exigences et agilité

Dans un projet récent, nous avons utilisé un wiki (MediaWiki, le même produit que celui qui donne vie à Wikipedia) pour faciliter la collaboration. Nous avons ajouté son extension sémantique (Semantic Mediawiki) pour donner encore plus de **sens** aux informations de spécification.Un système de gestion d'exigences offre un modèle prédéfinit (parfois extensible) : liste d'exigences, gestion de leur version, génération documentaire, analyse d'impacts, traçabilité. Un wiki sémantique propose quant à lui de définir une "ontologie" (un modèle de données sémantique) au fil des besoins.
Les concepts utilisés dans notre wiki pourdécrire les liens d'une user story.
Le schéma est entièrement adaptable aux informations dans la mesure où lorsqu'un prédicat manque, il suffit simplement de créer un nouveau lien "à la wiki" préfixé par ce prédicat.La définition progressive du modèle de données est intéressante mais n'est pas utile si on ne sait pas l'exploiter de façon intuitive et simple. Que propose Semantic MediaWiki ?
  • possibilité de définir des requêtes :exemple: la liste des user stories avec les acteurs impliqués.
  • navigateur sémantique :permet de parcourir l'information en passant par les liens sémantiques qui ont été posés (on dit poser une **annotation**).

Exemple de User Story dans un wiki sémantique

A quoi ressemble la création d'une user story dans un tel système ? Cela revient à créer une page qui contient des liens sémantiques en utilisant les concepts que l'on s'est donné pour décrire l'information [1].[[user_story::User Story 8]] of the [[product::WhiteHouse]]'As a' [[role::PresidentOfTheUnitedStates]]'I want to' contact any president in the world very fast'So that' I can defuse any potential international crisis.Acceptance:- enter in the White House,- Simulate an attack on a United State allied country- Verify that the president can call the president of the attackers immediatelyDesign Notes:- [[story_point::8]]- Set-up a "red phone" with all other country- [[requires::user Story 6]], [[requires::user Story 12]]Implementation Notes:- Use secure lines between capitals.Following:- status [[status::IN PROGRESS]]
Les relations sémantiques de la user-story.
Le lien requires permet de représenter les dépendances entre stories.

Exemple de requête

{{#ask: mainlabel=User Story| [[product::WhiteHouse]]| ?role=Role| ?story-point=Estimate| ?status=Status| ?requires=Dependencies| Sort=story-point,role}}C'est une requête en ligne donnant le tableau des user stories du produit 'WhiteHouse' ordonnées par story point puis rôle.
Il est également possible d'exporter la base sémantique au format RDF pour être exploitée par d'autres outils sémantiques standardisés.

Conclusion

Pour résumer, on arrive à tirer des bénéfices non négligeables d'un tel outil :
  • flexibilité de la base ontologique, adaptation aux besoins
  • capacités de requêtage de l'information
  • édition collaborative
Dans le cas où on utilise la méthode TDR, les solutions actuelles utilisent déjà un wiki pour décrire les cas de tests fonctionnels automatisés. L'ajout de capacités sémantiques permettrait de décupler la valeur descriptive des stories en complément des spécifications exécutables. En particulier, on pourrait ainsi s'éviter de créer manuellement un index des tests en prévenant le risque d'en oublier.


[1]: il est très important que la sémantique utilisée pour décrire les liens soit définie et non ambigüe. On dispose dans ce cas de catalogues de concepts (comme le Dublin Core pour les choses élémentaires, le FOAF pour les relations entre personnes ou d'autres catalogues spécialisés par métier) afin de s'assurer que l'exploitation des informations sera conforme au vocabulaire utilisé.