Note de lecture : Use Case Modeling, par Kurt Bittner & Ian Spence

Note 6 ; Cas d’utilisation & Unified Process !

Cela n’apparaît pas dans le titre, mais voici le livre officiel sur l’utilisation des cas d’utilisation dans le RUP. Cela explique, comme nous le verrons, une orientation de l’ouvrage clairement orientée vers le processus, plutôt que vers la modélisation. Le cadre est donc franchement prescriptif, mais aussi avec quelques avantages à ce positionnement : l’articulation avec d’autres éléments du processus.

Le texte en lui-même couvre 300 pages sur 12 chapitres. Quand on considère le thème, on peut considérer que c’est un ouvrage franchement volumineux. Mais les chapitres restent de taille raisonnable. Le tout est structuré en deux parties. La première couvre 145 pages pour 5 chapitres. Son objectif est de nous mettre le pied à l’étrier avec les cas d’utilisation. Le premier chapitre est la très classique introduction, destinée à nous permettre d’appréhender la place des cas d’utilisation au sein de la gestion des exigences. Le style est plutôt guindé, mais néanmoins efficace pour à la fois donner un peu de contexte Unified Process et évoquer les finalités des cas d’utilisation sans les trahir.

Le second chapitre s’attaque aux éléments fondamentaux des cas d’utilisation. En réalité il couvre bien tous les éléments nécessaires pour les mettre en œuvre à l’exception des éléments les plus exotiques. L’approche consiste en une déconstruction systématique des éléments méthodologiques : éléments du modèle, acteurs, flux d’évènements, mais aussi artéfacts support. Le tout hélas sans exemple et sans aborder le fond de ce que sont les cas d’utilisation au long de ces 30 pages. Bref, tout y est, sauf l’essence même des cas d’utilisation. Le chapitre 3 parle d’établir la vision, mais en fait le titre est un peu trompeur : il traite de manière plus générale de l’approche « feature » telle qu’elle est proposée par Dean Leffingwell dans « Managing the Requirements process ». Une approche une fois encore très orientée processus à tel point que les presque 40 pages du chapitre s’articulent en étapes ! Cette approche vient, en théorie, intersecter l’approche Cas d’Utilisation qui a une orientation plus comportementale. Dans la pratique, les deux approches ne se rencontrent guère ici. L’un des points forts de ce chapitre est l’étude minutieuse des parties prenantes et de leurs représentants.

Les 30 pages de ce chapitre 4 sont assez rafraichissantes. On y évoque l’identification des acteurs et des cas d’utilisation, et on attaque vraiment le fond. Plus question de processus ou de modélisation (ou si peu), mais des guides et des conseils pour opérer cette identification. Voilà un propos de qualité très honnête. Le chapitre 5 qui clôt cette première partie est consacré à l’atelier d’élaboration des cas d’utilisation. C’est de prime abord un peu déroutant de parler d’un seul atelier, alors qu’il faut distinguer l’identification des cas d’utilisation et l’élaboration/raffinement de ces cas d’utilisation. Mais en fait ce chapitre ne s’articule que vaguement sur l’agenda d’un tel type d’atelier. Il s’agirait plutôt d’une liste de course des choses à faire. Il eut été possible de rendre ce chapitre plus vivant et concret, mais si tout y est, le rendez-vous me semble quand même manqué.

La seconde partie est consacrée à l’écriture et la revue des cas d’utilisation. Si elle occupe la même place que la partie précédente, celle-ci se découpe en 7 chapitres. Retour au « mode processus » avec le chapitre 6 qui nous invite à appréhender le cycle de vie des cas d’utilisation ! Autant dire que le propos est un peu lourd, structuré cette fois encore autour d’une description en étapes, dans un style des plus assertif. Le moins que l’on puisse dire, c’est que ce n’est pas spécialement amusant à lire.

Le chapitre 7 aborde le contenu des cas d’utilisation eux-mêmes, cette fois sous un angle plus technique : caractéristiques, vue évènementielle, préconditions.. Certes la plupart des concepts sont hérités de Ivar Jacobson lui-même, mais on ne fait pas dans la simplicité. Parmi les éléments intéressants, on notera toutefois la notion de « subflows » ou de points d’extension publics ou privés, ainsi que les notions de « use case realization » et de « use case instance ». C’est une vue très orientée métamodèle, pas nécessairement formidable d’un point de vue pratique, mais il en est autrement sous l’angle méthodologique. Je ne m’attendais pas spécialement à trouver un chapitre dédié à l’écriture textuelle des cas d’utilisation, mais c’est bien ce que nous offre le chapitre 8, et c’est plutôt bien fait ! On a même droite à des exemples et des guides d’écriture : un bon chapitre.

Le chapitre 9 s’inscrit dans la continuité. Il s’attache aux éléments gravitant autour de la colonne vertébrale : préconditions, sous-flots, etc. Il s’agit d’éléments d’usage moins courants, mais le propos reste très valable. Un petit plus pour ce chapitre : la mise en relation et en complémentarité des cas d’utilisation avec le glossaire et le modèle du domaine est particulièrement bien abordée. Le titre même du chapitre 10 nous indique que nous rentrons dans une zone piégeuse : l’utilisation des relations include et extend ! Le propos est abordé sous un angle très méthodologique, avec l’intérêt d’une certaine clarté. Ce n’est pas un mauvais chapitre, finalement.

Le chapitre 11 est assez court et aborde la question de la revue des cas d’utilisation. Le texte est assez formel et n’ajoute guère d’éléments par rapport à ce que nous avons vu précédemment. Disons qu’il a au moins l’intérêt d’aborder la question ! L’ouvrage se referme sur le chapitre 12. Il nous invite à regarder la pratique des cas d’utilisation au sein de perspectives plus large : développeurs, UX, tests, cycle de vie logiciel, etc. L’idée est bonne mais ces perspectives sont peu développées et on en est réduit aux platitudes. C’est bien dommage.

Les auteurs articulent le propos du livre dans le contexte d’une version « lourde » de UP. Je ne pense pas être d’accord avec certaine des prises de position des auteurs : descriptions très détaillées, structuration en flows très importante et fine, par exemple. Néanmoins, au-delà de cela, ce livre présente un usage d’UML avec les cas d’utilisation dans une pratique très avancé, mais aussi forcément très méthodologique ! Il est également à mon avis, le texte le plus abouti pour ce qui est de l’utilisation des cas d’utilisation dans Unified Process. Choisissez votre poison, comme on dit…

Référence complète : Use Case Modeling – Kurt Bittner & Ian Spence – Addison Wesley / OT series 2002 – ISBN: 0-201-70913-9

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.