Le diagramme de contexte

Revival

J'ai donné mes premières formations il y a déjà quelques années et c'était sur les méthodes les plus populaires[1] de l'époque : SADT et SA/RT.

Dans SA/RT le premier diagramme réalisé était le diagramme de contexte, et dans SADT on faisait souvent l'équivalent appelé, autant que je me souvienne, diagramme A-1.

En ces temps là, j'en ai réalisés de nombreux, pour définir le contexte d'un système ou d'un logiciel. Puis les méthodes objet sont arrivées. Avec la méthode Fusion, qui me plaisait beaucoup, il y avait l'équivalent. Pas avec OMT.

Avec UML qui est devenu le standard, pas de diagramme de contexte non plus[2]; le diagramme de cas d'utilisation est de nature différente, il est statique.

Depuis que je pratique les méthodes agiles, je n'ai pas -complètement- oublié les diagrammes, utilisés comme technique de communication visuelle. Selon l'auditoire et le contexte, il m'arrive de pratiquer (ou conseiller) la modélisation agile. Un modèle du domaine, pour mieux le comprendre, par exemple. Mais ça fait longtemps que je ne parle plus, explicitement, de diagramme de contexte.

En lisant une présentation de Laurent Bossavit sur la charte du projet (je ne trouve plus le lien, l'Institut Agile est en maintenance ce soir), je découvre, un peu étonné de cette reviviscence, qu'il considère le diagramme de contexte comme un excellent outil :

Le Diagramme de Contexte (Palmer et McMenamin[3]) est un excellent outil pour représenter les exigences d’un projet au niveau le plus élevé. On y représente la frontière du système, notion cruciale; les événements métier entrants, et la réponse du système à chacun de ces événements. Même un projet conséquent peut se synthétiser en, au maximum, une à quelques dizaines d’événements essentiels.

A part le terme exigences qui me paraît inapproprié [4], cela m'a donné envie de refaire du diagramme de contexte un outil à mettre en avant dans la vision du projet[5] élaborée dans la phase de lancement, avant les sprints,

Alors comme j'aime bien mettre en pratique rapidement, j'ai demandé aux étudiants que je voyais hier de faire un diagramme de contexte pour compléter la vision qu'ils élaboraient pour leur projet de TD. Le résultat m'encourage à inclure le diagramme de contexte dans la panoplie des (nombreux) outils que je propose au démarrage d'un projet, pour identifier les features, avant de passer aux stories et de se lancer dans le backlog.

Notes

[1] comme quoi la roue tourne, elles font maintenant partie de l'histoire du génie logiciel

[2] il me semble qu'il est revenu dans SysML, je compte sur Pascal Roques pour le confirmer. Ou pas.

[3] le livre date de 1984 ! Un peu plus tard, il y a eu le livre de Tom de Marco et SA/RT en 1989

[4] on y représente des événements ou du flot de données. D'ailleurs SA/RT faisait la distinction entre les 2, avec des pointillés pour les événements. Mais cela avait tendance à ne plus être synthétique, je me souviens de diagrammes avec plusieurs dizaines de flèches...

[5] appelée aussi charte du projet, donc

Commentaires

1. Le vendredi 01 octobre 2010, 08:07 par Fabrice Aimetti

Bonjour Claude,
Laurent Bossavit est passé le 12 janvier à Bordeaux nous faire une conférence sur "La charte de projet, l'agilité... avant le projet". Il y a effectivement présenté le diagramme de contexte, notamment pour s'assurer que la liste des user stories est exhaustive. Rétrospective : http://www.fabrice-aimetti.fr/dotcl...

2. Le samedi 02 octobre 2010, 11:22 par Thomas

Nous utilisons de notre côté des documents de type SRS, j'ai l'impression que ca permet d'avoir une vue claire du contexte et des échanges entre l'application et l'extérieur

http://en.wikipedia.org/wiki/Softwa...

3. Le mardi 05 octobre 2010, 10:31 par loic.fejoz

Bonjour,

si je comprends bien (et me souvient un peu de SADT), ce diagramme de contexte correspond au Concept of Operations [1] en ingénierie système. Il est tout à fait représentable en UML et SysML mais il n'est pas explicitement nommé ainsi et peut d'ailleurs se faire sous différentes formes.

[1] http://en.wikipedia.org/wiki/Concep...