vendredi 25 juin 2010

La méthode SMV : Spécification, Modélisation, Validation

1. Les objectifs

L’objectif principal de la méthode SMV est d’offrir aux parties prenantes un ensemble de méthodes et procédés pour réduire les risques techniques et fonctionnels d’un projet informatique et d’en améliorer l’assurance qualité. Elle met l’accent sur les exigences du client afin de :

  • créer un modèle exécutable,
  • créer des séquences de tests fonctionnels,
  • offrir aux concepteurs des spécifications complètes, détaillées et éprouvées.

À la manière des développements agiles, la méthode SMV s’inscrit dans la V & V à chaque étape des cycles itératifs du développement logiciel en réalisant, à chaque itération, l’ensemble des trois objectifs défini ci-dessus et en répondant constamment aux deux questions :

  • Les spécifications reflètent-t-elles exactement les besoins ?
  • Le produit répond-il aux exigences des spécifications ?

Elle va, afin de réduire le coût de développement d’un projet informatique, identifier les erreurs et omissions possibles et réduire les risques dus aux différents écueils techniques et fonctionnels pour réduire le délai de mise sur le marché et optimiser le retour sur investissement des projets informatiques.

1.1. Pourquoi créer un modèle exécutable ?

La méthode SMV permet, uniquement à partir des exigences du client, de modéliser le système demandé en langage UML puis MDA afin d’en extraire un modèle exécutable. L’obtention de ce modèle identifiera l’ensemble des fonctions du système, et permettra ainsi d’identifier avant le commencement de la phase de développement les omissions et incohérences dans les exigences du client.

L’avantage principal est l’obtention d’un cahier des charges précis qui pourra être transmis ensuite aux réalisateurs. Un second avantage est que la création de ce modèle va répondre au premier V de la V & V, en vérifiant à chaque itération si les spécifications définissent à elles seules le système de manière complète. Elle répondra à chaque instant à la question : « Suis-je en train de réaliser le produit souhaité ? »

1.2. Pourquoi créer des séquences de tests fonctionnels ?

Les séquences de tests vont valider le système en cours de développement. En profitant du modèle exécutable, les séquences de test créées grâce aux modèles UML et aux spécifications UTP à partir des exigences, vont répondre au deuxième V de la V & V, en validant à chaque étape que le système en cours de développement répond exactement aux exigences. Ces séquences répondront à la question : « Suis-je en train de réaliser mon produit correctement ? ».

1.3. Pourquoi offrir des spécifications complètes, détaillées et éprouvées ?

Disposer de spécifications complètes, détaillées et éprouvées permet de poursuivre dans le cycle de développement à partir de faits précis et d’éviter les risques liés à l’imprécision du cahier des charges. La transformation des spécifications littérales en spécifications modélisées offre une interprétation exacte et sans ambigüité de la demande du client.

2. Une solution articulée autour de trois types de logiciels

Afin de modéliser et d’exécuter les opérations effectuées selon ces trois axes, la méthode SMV utilise trois types de logiciels. Le premier est l’environnement de développement Eclipse qui sert de base et de support pour toute la méthode SMV. Par dessus Eclipse viennent se greffer les deux autres outils principaux, les outils Xcarecrows développé par Cogenit et fournis sous licence libre et les outils Rational® Software de IBM.

2.1. IBM Rational® Software

  • Rational® Requisite Pro permet, grâce à plusieurs matrices de traçabilité, de suivre les modifications à chaque étape de la gestion itérative des exigences.
  • Rational® Software Modeler sert de modeleur UML pour réaliser, par exemple, les diagrammes de classes ou de cas d’utilisation.
  • Rational® Functional Tester sert d’automate de test sur lequel appliquer de manière quasiment automatique les tests extraits des diagrammes de séquences pour les exécuter sur le modèle exécutable.

2.2. Xcarecrows

Xcarecrows 4 XML

Ce module complète Eclipse afin de prendre en charge les tâches requises par un éditeur XML. Il offre une interface graphique XML, un schéma XSD, un éditeur de feuilles de style XSL, un comparateur graphique d’arborescences XML, un vérificateur intégré de schémas XSD et un ensemble d’outils pour la transformation XSL.

Xcarecrows 4 MDA

Ce module fournit un ensemble d’outils pour modéliser et vérifier le comportement de tous types d’applications grâce à une approche hiérarchique par machine à états.

Xcarecrows 4 MDI

Ce module fournit une interface graphique pour modéliser les applications au langage UML et les exécuter en accord avec le processus MDA défini par l’OMG. Xcarecrows 4 MDI s’intègre parfaitement dans Rational® Software Modeler développé par IBM®.

Xcarecrows 4 SSL édition MIDP

Il s’agit d’une bibliothèque Java autonome pour créer des connexions sécurisées SSL/TLS au-dessus des API CLDC 1.1 et MIDP 2.0.

Xcarecrows 4 UTP

Il s’agit d’un outil précurseur dans le domaine du test qui décrit explicitement l’architecture sur laquelle appliquer de manière automatique les tests fonctionnels qui valident le système développé.

Xcarecrows 4 Developers Edition

Ce module comprend, dans un seul paquetage, l’ensemble des outils Xcarecrows pour le développement de modèles MDA comme Xcarecrows4MDI et Xcarecrows4MDA, pour développement en UML des applications MDA, et Xcarecrows4XML, pour éditer des documents XML, des schémas XSD et des feuilles de style XSL.

3. Une démarche articulée autour de trois axes

La méthode SMV s’articule autour de trois axes : la gestion itérative des exigences, la gestion itérative des tests et la gestion itérative des modèles.

3.1. La gestion itérative des exigences

Il s’agit d’une méthode de développement de modèle qui crée trois types de modèles UML : le diagramme de cas d’utilisation, le diagramme de classe et le diagramme de séquences. La méthode de la gestion itérative des exigences consiste à utiliser les modèles UML pour décrire en langage informatique les besoins du client.

Figure 4 : Principe de la gestion itérative des exigences

Le diagramme de cas d’utilisation : La première étape de la méthode consiste à transformer l’expression des besoins en un diagramme de cas d’utilisation. Ce dernier découle d’une étape de recueil, d’analyse et d’organisation des besoins menée pour recenser les grandes fonctionnalités du système. Il constitue un langage d’interface entre le client et le concepteur.

Figure 5 : Diagramme de cas d’utilisation d’un site de E-commerce en cours de développement

Chaque ovale de ce diagramme reflète une fonction identifiée par le client. Il sert de fondement à la méthode SMV en ce sens qu’il traduit en modèle le besoin et qu’il permet la création du diagramme de classes qui représente la structure interne du système. Le diagramme de classes : Ce diagramme montre la structure interne de l’application. Plus les exigences du système sont complètes et moins les connaissances métiers seront nécessaires pour modéliser un diagramme de classes complet. Dans le meilleur des cas, on retrouve, avec une relation « un pour un », les fonctionnalités du diagramme de cas d’utilisation.

Figure 6 : Diagramme de classes d’un site de E-Commerce en cours de développement

Les diagrammes de séquences : Les diagrammes de séquences traduisent les exigences fonctionnelles en méthodes et actions ordonnées à appliquer au système. Ils décrivent exactement le cheminement nécessaire pour réaliser les objectifs souhaités par les parties prenantes.

Figure 7 : Exemple d’un diagramme de séquences de l’inscription d’un site de E-Commerce en cours de développement

Il peut y avoir un ou plusieurs diagrammes de séquences par fonction du système. Ils ont une double utilité :

  • offrir aux concepteurs du système des exigences claires, complètes et détaillées,
  • mais aussi offrir aux testeurs des séquences de test applicables sur toutes les plates-formes.

Cette succession de modèles UML offre aux concepteurs des exigences claires complètes et détaillées grâce aux diagrammes de séquences, mais aussi un diagramme de classes, qui sert de base à la gestion itérative des modèles, et le profil UTP, qui sert de base à la gestion itérative des tests.

Figure 8 : Schéma complet de la gestion itérative des exigences

L’utilité de Rational Requisite Pro dans la gestion itérative des exigences Le schéma de la figure 7 montre en détail l’utilisation de Rational Requisite Pro tout au long de l’enchaînement des étapes du déroulement de cette méthode.

Le but premier de Rational Requisite Pro est d’enregistrer les exigences du client et de tracer chaque modification des exigences. Mais Rational Requiste Pro sert aussi à tracer à chaque étape du développement les liens et leurs modifications à chaque changement et modification des modèles.

En liant chaque modèle UML à un attribut Rational Requisite Pro, nous créons quatre matrices de traçabilité qui suivent les changements à chaque étape de la gestion itérative des exigences. Cet utilisation de Rational Requisite Pro répond au premier impératif de la V & V, la vérification en assurant à chaque instant que l’activité est bien réalisée et est conforme à son plan de réalisation et qu’aucun défaut non géré n’est introduit à aucune étape de la gestion itérative des exigences.

Figure 9 : Schéma des liens de la matrice de traçabilité de la gestion itérative des exigences

3.2. La gestion itérative des tests

La dernière étape de la méthode SMV est la gestion itérative des tests. Après avoir traduit les exigences en diagramme de séquences, et avoir créé un modèle exécutable sur lequel vérifier la cohérence et l’exhaustivité du cahier des charges, il ne reste plus qu’à créer des séquences de test à partir des diagrammes de séquences et à les valider sur le modèle exécutable pour avoir un ensemble de séquences de test qui valideront le système réel à chaque itération afin de répondre au deuxième V de la V & V. Cette gestion itérative des tests permet d’avoir à chaque instant d’un développement itératif des tests prêts à être exécutés à la fois sur un modèle, mais aussi sur le système réel.

Le profil UTP : Comme expliqué dans le chapitre sur la gestion itérative des exigences, le profil UTP (UML Testing Profile) [1] permet aux testeurs et aux développeurs de communiquer avec le même langage. Il offre un ensemble de stéréotypes pour structurer les tests et leur appliquer simplement l’ensemble des paramètres qui entrent en jeu pour la validation d’un outil. La figure 8 représente l’ensemble des stéréotypes proposés par l’OMG.

Figure 10 : Ensemble des stéréotypes défini par l’OMG pour le profil UTP

Le schéma général de la gestion itérative des tests

Figure 11 : Principe de la gestion itérative des tests

La création des scripts de tests : À partir des diagrammes de séquences et de la transformation UTP, nous obtenons un ensemble de scripts de test exécutables avec un automate du type Rational Functional Tester. Ces tests générés directement à partir de l’expression des besoins vérifient à chaque instant les modifications par rapport à l’expression des besoins et valident le système final à chaque étape en vérifiant la conformité du système avec les besoins initiaux.

3.3. La gestion itérative des modèles

La gestion itérative des modèles utilise le diagramme de classes de la gestion itérative des exigences en association avec le paradigme MDA (Model-Driven Architecture) pour créer un modèle exécutable. La création de diagrammes d’objets et de diagrammes état-transition génère, grâce à Xcarecrows 4 MDA et Xcarecrows 4 MDI, un modèle exécutable de l’application. Ce modèle servira à valider les séquences de test et vérifier l’état du cahier des charges.

Le paradigme MDA, l’assurance d’un système validé : Dans la méthode SMV, le paradigme MDA est représenté par deux modèles UML, les diagrammes d’objets et les diagrammes état-transition. Les diagrammes d’objets représentent les instances des machines à états finis et les flux de données du système alors que les diagrammes état-transition représentent les transitions à l’intérieur du modèle.

Figure 12 : Exemple de diagramme d’objets pour le paradigme MDA d’un site de E-Commerce en cours de développement

Figure 13 : Exemple d’un diagramme état-transition d’un site de E- Commerce en cours de développement

Ce modèle, réalisé directement à partir des exigences du client, démontre le niveau de complétion des exigences et offre rapidement des informations sur la qualité des exigences fournies par les parties prenantes. De la même manière, il pourra valider le fonctionnement des séquences de test créées lors de la gestion itérative des tests qui devront être exécutés à la fois sur ce modèle et sur le modèle réel pour vérifier et valider la cohérence des développements à chaque étape du projet.

L’avantage du MDA dans la méthode SMV n’est pas de générer automatique du code pour remplacer le travail des concepteurs, mais d’obtenir un modèle simplifié du système à réaliser pour valider les tests de la gestion itérative des tests et vérifier la qualité des exigences fournies par le client.

Le schéma général de la gestion itérative des modèles

Figure 14 : Principe de la gestion itérative des modèles

4. Comment la méthode SMV réussit à réduire les risques techniques et fonctionnels des projets informatiques

SMV est une méthode d’assistance au développement logiciel. Elle réduit les risques inhérents à la création et à l’amélioration des systèmes d’information ; elle s’inscrit parfaitement dans la V & V, car elle intervient dans le processus technique du développement logiciel en créant un référentiel unique à partir des exigences du client pour disposer d’une base de vérification et de validation. Ce référentiel unique est le modèle exécutable créé lors du processus de gestion itérative des modèles. Réalisé uniquement à partir des exigences, il permet de :

  • réduire les risques liés à une architecture défectueuse : Comme l’architecture est déjà modélisée et que certains tests issus des exigences ont été exécutés dessus, l’architecture fournie aux concepteurs est validée pour une réalisation plus robuste,
  • mieux estimer la charge du projet : Disposer d’un modèle global permet de connaître les points susceptibles de créer des difficultés dans le projet. Disposer de ces connaissances sert à mieux répartir les actifs dans un projet pour optimiser son temps de réalisation,
  • préciser le cahier des charges : En créant le modèle exécutable uniquement à partir du cahier des charges, les omissions et les contradictions dans le cahier des charges seront directement retranscrites dans le modèle. On a ainsi dès la phase de création du modèle un aperçu de la qualité du cahier des charges,
  • mieux mesurer le calendrier nécessaire : Ceci revient à mieux estimer la charge du projet,
  • réduire les risques liés aux changements de dernière minute : Appliquer les changements de dernière minute sur le modèle avant de les appliquer sur le projet réel permet de vérifier et de corriger les contradictions et les erreurs qui peuvent être engendrées par ces changements. Le fait de les appliquer sur le modèle de simulation transforme ces changements de dernière minute en nouveaux besoins.

La méthode SMV réduit les risques d’incompréhension dans les projets informatiques en créant des séquences d’actions directement à partir des exigences. Ces séquences d’actions, en liaison avec le référentiel unique créé sont la traduction des exigences littérales du client en exigences fonctionnelles qui permettent à la maîtrise d’ouvrage et à la maîtrise d’œuvre de parler le même langage.

Enfin, ces séquences d’actions, traduction direct des exigences clients, sont transformées grâce à l’utilisation du profil UTP en séquences de test pour valider le système toujours suivant le principe de la V & V, c’est-à-dire en vérifiant la conformité du système avec les exigences du client. L’utilisation du profil UTP pour transformer les exigences en séquences de test permet aux testeurs et aux développeurs de parler le même langage dans tout le cycle de vie du développement du logiciel. Ceci réduit les risques liés à la pénurie de testeurs compétents, mais surtout assure la conformité du projet aux exigences initiales. Bref, il en résulte l’assurance d’une validation correcte, car le besoin initial du client peut être tracé durant chaque étape de création de ces scripts de test.

Références :

  1. Le profil UTP a été spécifié par l’OMG® dans le document UML Testing Profile, Version 1.0 formal/05-07-07 en date de juillet 2005.

Cet article est disponible en téléchargement à l'adresse : http://www.cogenit.fr/index.php/ressources/livres-bleus/smv-methode-agile-assurance-qualite

Aucun commentaire:

Enregistrer un commentaire