• Aucun résultat trouvé

6.2 URM: Un langage de spécification des exigences

6.2.3 Description du métamodèle et sémantique

Dans le langage URM, les exigences sont décrites au sein d’une spécification. Celle-ci est l’élément de haut niveau qui contient la définition de l’ensemble des exigences d’un système particulier. Une spécification englobe un ensemble d’exigences qui sont décrites dans le package Constrained Language. Dans ce qui suit, on décrit le métamodèle du langage URM et on commence par le package de description du langage naturel contraint (Constrained Languge) qui représente l’élément central du métamodèle.

6.2.3.1 Constrained Language Package

Ce package contient les concepts et les constructions grammaticales propres au langage URM pour exprimer les exigences textuelles. Ces concepts sont représentés par la figure 6.3 qui représente un métamodèle conforme au métamodèle MOF.

Dans la suite de cette section, on donne une description détaillée de chaque métaclasse du métamodèle. Pour chaque métaclasse, nous présentons sa description, ses attribues, ses associations ainsi que ses généralisations directes et contraintes s’il y a lieu. Les métaclasses sont présenter selon leur importance et non selon l’ordre alphabétique.

6

Figure 6.3: Présentation du package ConstrainedLanguage

CLRequirement Une exigences est formée d’une ou plusieurs phrases (sentences) de

type CLSentence.

CLSentence est une classe abstraite représentant une phrase qui peut se spécialiser en

différents types de constructions grammaticales. L’attribue SentenceText représente cette phrase sous forme d’une chaîne de caractères libres (sans aucune contrainte grammaticale). Celui-ci est utilisé pour les constructions de phrases qui ne sont pas encore prises en charge par le langage.

CLSimpleSentence Représente une phrase simple sous la forme: sujet, verbe complé-

ment (SVO: Subject, Verb, Object en anglais). La partie VO est représentée par un prédicat Predicate qui pointe vers une phrase verbale (Phrase::VerbPhrase). La classe CLSimpleSentence dispose de trois attributs:

• action: représente l’action que produit le sujet (Subject) sur un objet particulier du système.

• object: représente un objet du système sur lequel est produite l’action.

• constraint: est un attribut facultatif qui représente une contrainte sur l’objet de la phrase.

CLModalSentence Représente une phrase avec un verbe modal (ModalVerb). A la

différence des phrases simples (CLSimpleSentence), les phrases modales expriment soit (1) la priorité d’une activité, soit (2) la modalité, soit (3) l’obligation ou la possibilité pour le sujet d’exécuter l’action.

CLConditionalSentence Représente une phrase avec une condition (décrite par une

conditionalClause) commençant par une conjonction conditionnelle (conditionalCon- jonction) et se termine par une mainClause qui représente la conséquence de si la

6

6.2. URM: UN LANGAGE DE SPÉCIFICATION DES EXIGENCES condition s’avère vraie. La conjonction conditionnelle est représentée par CLCondi-

tionnalConjonction telle que "if" par exemple. La condition est une phrase simple

de type CLSimpleSentence. La conséquence de la condition est une phrase simple (CLSimpleSentence) ou modale CLModalSentence.

Subject Cette classe représente le sujet d’une phrase CLSimpleSentence d’un point de

vue grammatical. Le sujet fait référence à un acteur où un composant du système étudié de la description du domaine (voir le chapitre 4 décrivant la spécification du domaine). Cet élément peut exécuter l’action décrite dans la phrase simple (CLSimpleSentence).

6.2.3.2 Phrases Package

Ce package contient les entités du langage permettant la formulation des phrases dans un langage structuré. Ces phrases représentent des termes (les noms) associés avec d’autres termes (verbes et adjectifs). Une phrase est toujours présentée dans le contexte d’un nom (Subject) et est potentiellement associée à un qualificatif ou un modifiant. Un autre type de phrases sont les phrases verbales qui décrivent le contexte d’un verbe. La figure 6.4 montre l’organisation du package Phrases.

Figure 6.4: Organisation du package PhrasesPackage

Phrase: Une phrase est de type ConstrainedLanguage::CLSentence. Une phrase con-

tient un objet de type Terminology::Noun et potentiellement des compléments d’objet de type Terminology::Modifier et Terminology::Qualifier. L’objet con- tenu dans une phrase représente le nom d’un élément du domaine (DomainEle-

ments::DomainElement).

6

Object est le sujet de la phrase. Il est de type Terminology::Noun

VerbPhrase Une phrase verbale décrit une opération qui peut être exécuté en association

avec un Objet de type Terminology::Noun.

SimpleVerbPhrase décrit une phrase de type Verbe-Complément qui peut être utilisé

en complément d’un sujet.

Exemples: "send request"

ComplexVerbPhrase décrit une relation entre deux objets. La construction grammati-

cale d’un phrase verbale complexe est de type (Verbe - Complément - Complément)

Exemples: "send request to SystemManager"

Modifier Indique comment l’objet en question doit être interprété dans le contexte de

la phrase. De cette façon, de sens de l’objet est distingué de celui décrit par la terminologie.

Qualifier qualifie le sujet de la phrase pour décrire son contexte dans la phrase en terme

de quantité et de variabilité.

PhraseVerb représente le verbe de la phrase. Il est utiliser dans les SimpleVerbPhrase

et ComplexVerbPhrase. Un verbe est de type Terminology::Preposition.

6.3 DISCUSSION ET SYNTHÈSE

Dans ce chapitre, nous avons présenté un langage de spécification des exigences afin de pouvoir les vérifier à l’aide des outils de vérification formelle existant dans un contexte industriel. L’objectif est d’obtenir une spécification suffisamment précise pour être mise en avale d’une chaîne de transformations de modèles. Celle-ci permettras l’obtention automatiquement des artefacts exploitables par ces outils.

Dans cet esprit, nous avons proposé un langage de spécification d’exigences, appelé URM pour la rédaction des exigences du client afin de permettre la génération automa- tique des propriétés CDL tout en facilitant les communications et les discussions sur les exigences. URM s’appuie sur une spécification du domaine sous la forme d’une base de connaissance du domaine listant l’ensemble des entités du domaine.

Ainsi, avec la formalisation des exigences présentée dans ce chapitre et la formalisation des contextes présentée dans le chapitre 5, nous arrivons à la production de l’ensemble des artefacts nous permettant l’application des techniques de vérification formelle par exploitation des contextes. Autrement dit, nous arrivons au point où on peut obtenir des modèles CDL dans lesquels sont spécifiés les comportements des acteurs du contexte et les propriétés à vérifier. Dans les chapitres suivants, nous présentons notre méthodologie de vérification et nous expliquons comment les différents concepts présentés jusqu’à présent vont s’intégrer au processus de développement.

7

Génération de modèles CDL

Dans la partie précédente, nous avons présenté trois langages, dits orientés utilisateur, pour faciliter les activités de spécification et de formalisation des exigences et des contextes. Nous présentons dans ce chapitre les transformations de modèles permettant la génération des modèles CDL pour la chaine d’outils OBP présentée dans la section 3.4.

La figure 7.1 illustre la chaine de transformations proposée. Le processus de déroule en deux temps: Dans une première partie, on génère la description détaillée du comportement des acteurs du contexte à partir des modèles XUC produits manuellement par l’utilisateur. Dans une deuxième partie, nous procédons à la génération de propriétés formalisées CDL à partir des exigences URM. Les exigences du cahier des charges sont réécrites manuelle- ment par l’utilisateur dans la syntaxe URM. En suite un processus automatique permet d’analyser les exigences URM pour identifier les patrons CDL adéquats à appliquer afin de générer le code CDL de la propriété. Les modèles XUC et URM référencent les éléments du domaine stockés dans la spécification du domaine sous la forme de fichiers Dpec.

7.1 GÉNÉRATION DE CONTEXTES

CDL

À PARTIR DES MODÈLES

XUC

Afin de capturer les interactions entre le système en développement et son environnement, nous avons proposé dans le chapitre 5 le langage XUC. Ce langage constitue une extension des cas d’utilisation UML avec la spécification des différents scénarios d’interactions des acteurs directement dans le corps des cas d’utilisation. Aussi, les modèles XUC référencent les éléments du domaine capturés dans les fichiers DSpec pour améliorer la cohérence des modèles construits, mais aussi pour faciliter les traitements automatisés des modèles XUC. Nous présentons dans cette section les différentes étapes permettant la génération de la partie contexte des modèles CDL destinés à être exploités par la chaine d’outils OBP. D’abord, nous rappelons la sémantique des liens vers la spécification du domaine (fichiers .dspec). Ensuite, nous détaillons les algorithmes de transformation permettant la traduc- tion du comportement capturé par les modèles XUC sous la forme d’interactions CDL. Enfin, nous discutons sur la validité de cette chaine de transformations et des extensions possibles.