• Aucun résultat trouvé

Chapitre IV. Langage de description d’exigences non-fonctionnelles temporelles

3. Composition d’exigences

Les diagrammes d’exigences TURTLE (cf. section 2.1) ne prennent pas en compte les notions de raffinement et de satisfaction (a quelles fonctionnalités correspondent les exigences temporelles qui doivent être vérifiés ?). Or le langage SysML [SysML 06] permet par les concepts de composition

OK Start_Action KO Capture_Action Ch1 Capture_Action Start_Action Ch2 (c T KO Start_Action OK Capture_Action T (a OK Start_Action KO T1 (b OK T2 Tn KO Start_Action OK KO T1 T2 Exigences A1 Exigences A2 Exigences An Capture_Action Capture_Action

Exigence de type Promptness Exigence de type Minimal Delay

Exigence de type Interval Delay Exigence de type Interval Delay

Exigence de type Punctuality avec T1=T-1 et T2=T+1

et de satisfaction d’exprimer ces deux notions. Cette section formule une proposition d’extension des diagrammes d’exigences TURTLE supportant les notions de composition et satisfaction.

3.1. Les concepts de composition et satisfaction

Dans le domaine de l’ingénierie des exigences [HUL 04] [LAM 06] [RAS 03], on distingue généralement deux types de relations de composition d’exigences :

• La relation de composition vise à décrire un processus de raffinement d’exigence.

• La relation de satisfaction permet de faire un lien entre exigences fonctionnelles et exigences non-fonctionnelles décrivant respectivement un mécanisme à construire et le but que ce dernier doit atteindre.

Le concept de composition est employé très souvent dans la phase de construction de bases de données. Des outils de base de données comme DOORS [BUC 05] ou ARCaDe [RAS 05], expriment ce concept par une classification des exigences en fonction des numéros (1.0 pour une exigence souche, 1.1 pour l’exigence raffinée produite à partir de 1.0). Dans la méthode KAOS [LAM 05], on construit un arbre d’exigences pour raffiner celles-ci jusqu’à obtenir des exigences « feuilles », point de départ du dispositif de formalisation des exigences. Dans la méthodologie présentée dans le chapitre III, il est possible d’intégrer ce concept dans la construction de la base de données (cf. section 3.1.1), mais pas dans les diagrammes d’exigences TURTLE. Or ce concept est pris en compte dans le langage SysML [SysML 06] par la relation de composition d’exigences qui est exprimée par une association entre exigences notée avec un signe « + » entouré. Nous proposons donc d’inclure cette relation de composition dans les diagrammes d’exigences TURTLE.

Avant l’apport de SysML pour la spécification des exigences, le concept de satisfaction d’exigence dans les outils de vérification orienté UML était généralement employé dans la phase d’analyse [HAS 06] [DHA 07]. Après avoir identifié les fonctionnalités du système, on définissait des exigences temporelles liées à des exigences fonctionnelles (ou fonctionnalités) telles que la durée d’une fonctionnalité [HAS 06] [DHA 07] [BRA 05] [DAM 01]. Cependant, il est admis dans la communauté de l’ingénierie des exigences [LAM 06] [HUL 04] que les exigences non-fonctionnelles sont très souvent définies dans le cahier des charges avant les exigences fonctionnelles qui décrivent des mécanismes. Pour palier ce fossé entre recueil et spécification d’exigences, [LAM 06] lie les exigences raffinées au concept d’agent (qui sont vues comme des entités du système devant satisfaire les exigences). C’est pourquoi nous choisissons de lier chaque exigence non-fonctionnelle temporelle raffinée à une (ou plusieurs) exigence(s) fonctionnelle(s) qui peuvent être vues comme des agents dans [LAM 06]. Nous proposons d’inclure ce concept non seulement dans les bases de données [RAS 03], mais aussi dans les diagrammes d’exigences SysML [SysML 06]. Tout comme le concept de composition, le concept de satisfaction est pris en compte en SysML par la relation de dépendance stéréotypé par « satisfy » liant une exigence fonctionnelle à une exigence non-fonctionnelle.

3.2. Proposition d’extension des diagrammes d’exigences

Reprenons l’exemple courant de la section 2.1.1 (cf. Fig.33). Le processus qui doit s’exécuter en moins de 10 unités de temps est maintenant décomposé en plusieurs sous processus (dont un processus de début Begin_Process et un processus de fin End_Process). Pour ces deux derniers, on souhaite aussi vérifier des exigences temporelles liées à leurs durées (respectivement en moins de 2 et 3 unités de temps).

Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML

Le diagramme d’exigences TURTLE étendu de la Fig.40 décrit les exigences énoncées dans le paragraphe précédent. Les extensions proposées dans le diagramme d’exigence TURTLE intègrent les concepts de composition d’exigences et de satisfaction d’une exigence non-fonctionnelle temporelle par une exigence fonctionnelle.

Fig.40. Proposition d’extension des diagrammes d’exigences TURTLE

L’exigence non-fonctionnelle temporelle informelle Process_Duration décrite par les Fig.33 et Fig.35 est décomposée en deux « sous » exigences temporelles informelles Begin_Process_Duration et End_Process_Duration. Ce processus de raffinement d’une exigence se fait à l’aide d’une relation de composition d’exigence [SysML 06] (association avec un signe « + » entouré) entre l’exigence Process_Duration et les exigences raffinés Begin_Process_Duration et End_Process_Duration. La notion de composition s’applique uniquement aux exigences informelles, la formalisation des exigences non-fonctionnelles temporelles se faisant avec la relation « derive » (cf. Fig.33).

Les exigences formelles Formal_Begin_Process_Duration et Formal_End_Proces_Duration sont respectivement associées aux exigences fonctionnelles Begin_Process et End_Process par la relation « satisfy ». Cette relation représente la satisfaction d’une exigence non-fonctionnelle temporelle par un mécanisme. L’exigence formelle exprimée par TRDD est vérifiée à l’aide d’un observateur pour un mécanisme particulier du système (décrit par une exigence fonctionnelle qui sera ensuite dérivée en cas d’utilisation puis en scénario). C’est pourquoi nous établissons la relation « satisfy » entre une exigence non-fonctionnelle formelle et une exigence fonctionnelle. Dans la mesure où la vérification formelle repose sur une confrontation entre exigences formelle et spécification formelle du système. Ce dernier est construit à partir des exigences fonctionnelles (cas d’utilisation). « satisfy » « satisfy » TRDD= < TRDD_2> TRDD= < TRDD_1> Relation de composition Relation de satisfaction +

3.3. Définition formelle

Un diagramme d’exigences TURTLE étendu (noté ERD) est un graphe 3-parties composé d’un diagramme d’exigences (RD voir définition 2 dans la section 2.1.2 de ce chapitre) et des fonctions « composition » (comp) et « satisfy » (sat). La relation de composition relie une exigence informelle à plusieurs exigences informelles qui composent la première. La relation « satisfy » lie une exigence fonctionnelle (IR avec type(IR)=fonctionnelle) à une exigence non-fonctionnelle temporelle formelle (FTR), pour représenter la satisfaction d’une exigence non-fonctionnelle par une exigence fonctionnelle.

Nous ne présentons pas le méta-modèle du diagramme d’exigences étendu, car les relations de composition et de satisfaction sont déjà définies dans le méta-modèle du langage SysML [SysML 06] sur lequel se base le méta-modèle du diagramme d’exigences.

4.

Conclusion

La vérification formelle d’exigences temporelles est au cœur des contributions présentées dans ce mémoire. La vérification de ce type d’exigence nécessite donc de pouvoir les spécifier formellement. L’incorporation d’un langage graphique, en l’occurrence SysML, dans les diagrammes du profil TURTLE, nous a paru inévitable du fait que le cadre sémantique de TURTLE est basé sur UML.

L’approche présentée dans ce chapitre correspond à la phase de spécification des exigences (cf. chapitre III section 3.1.3) du profil TURTLE. Les contributions présentées dans ce chapitre reposent sur :

• La définition du diagramme d’exigences TURTLE, basé sur le diagramme d’exigences SysML, qui permet de définir des exigences formelles par le stéréotype « Formal_Requirement ». Ces dernières sont dérivées d’exigences informelles et vérifiées formellement à l’aide d’observateurs (que nous avons également définis dans ce chapitre). • La définition d’un langage graphique d’exigences temporelles (TRDD), basé sur les

chronogrammes et qui permet de décrire formellement une exigence présentant une occurrence de début et de fin pour qu’elle puisse être vérifiée en termes de distance temporelle. Ceci préfigure la génération automatique d’observateurs permettant de guider la vérification de l’exigence formalisée par un TRDD (cf. chapitre V).

• La définition des relations de composition dans les diagrammes d’exigences TURTLE pour raffiner des exigences informelles et de satisfaction d’une exigence non-fonctionnelle par une exigence fonctionnelle.

Définition 7 : Diagramme d’exigences étendu ERD = (RD, comp, sat)

RD est diagramme d’exigences (voir définition 1)

comp: IR → IR est une fonction décrite par ⊕

sat: IR → FTR est une fonction décrite par <<satisfy>> si et seulement si type(IR)=fonctionnelle

Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML

Les contributions présentées dans ce chapitre, permettent donc d’exprimer de manière formelle des exigences non-fonctionnelles temporelles présentant une occurrence de début et de fin et ainsi les confronter à une spécification formelle du système. Cependant, pour des projets pouvant contenir des milliers d’exigences, les langages graphiques du type SysML atteignent leurs limites. Il est donc nécessaire de construire des bases de données d’exigences [HUL 04] [RAS 03] [BUC 05]. Généralement ces dernières ne prennent pas en compte toutes les descriptions d’un diagramme d’exigences, en particulier la formalisation et les moyens mis en œuvre pour vérifier ces dernières. Une contribution future serait de construire des bases de données, contenant des descriptions formelles de type TRDD, pour pouvoir à partir de celles-ci générer automatiquement des diagrammes d’exigences SysML.

La spécification des exigences temporelles, par des diagrammes d’exigences TURTLE et des TRDD, est le point de départ pour la vérification des exigences temporelles guidée par des observateurs qui est présentée dans le chapitre suivant.

Chapitre V.

Vérification formelle d’exigences