Académique Documents
Professionnel Documents
Culture Documents
THESE
en vue de l’obtention du
DOCTORAT DE L’UNIVERSITE DE TOULOUSE
Délivré par l’université Toulouse III - Paul Sabatier
Discipline : Informatique
présentée et soutenue
par
Benjamin FONTAN
le 17 janvier 2008
Titre :
Directeur de thèse :
Pierre de SAQUI-SANNES
JURY
M. Jean-Philippe BABAU Rapporteur
Mme Isabelle CHRISMENT Examinateur
M. Guy JUANOLE Président
M. Pierre de SAQUI-SANNES Examinateur
Mme Françoise SIMONOT-LION Rapporteur
M. François VERNADAT Examinateur
AUTEUR : Benjamin FONTAN
TITRE : MÉTHODOLOGIE DE CONCEPTION DE SYSTEMES TEMPS RÉEL ET DISTRIBUÉS EN
CONTEXTE UML/SysML
DIRECTEUR DE THESE : Pierre de SAQUI-SANNES
LIEU ET DATE DE SOUTENANCE : TOULOUSE le 17 janvier 2008
RESUME :
En dépit de ses treize diagrammes, le langage UML (Unified Modeling Language) normalisé par l’OMG
(Object Management Group) n’offre aucune facilité particulière pour appréhender convenablement la
phase de traitement des exigences qui démarre le cycle de développement d’un système temps réel.
La normalisation de SysML et des diagrammes d’exigences ouvre des perspectives qui ne sauraient
faire oublier le manque de support méthodologique dont souffrent UML et SysML.
Fort de ce constat, les travaux exposés dans ce mémoire contribuent au développement d’un volet «
méthodologie » pour des profils UML temps réel qui couvrent les phases amont (traitement des
exigences - analyse - conception) du cycle de développement des systèmes temps réel et distribués en
donnant une place prépondérante à la vérification formelle des exigences temporelles. La
méthodologie proposée est instanciée sur le profil TURTLE (Timed UML and RT-LOTOS Environment).
Les exigences non-fonctionnelles temporelles sont décrites au moyen de diagrammes d’exigences
SysML étendus par un langage visuel de type « chronogrammes » (TRDD = Timing Requirement
Description Diagram). La formulation d’exigences temporelles sert de point de départ à la génération
automatique d’observateurs dédiés à la vérification de ces exigences. Décrites par des méta-modèles
UML et des définitions formelles, les contributions présentées dans ce mémoire ont vocation à être
utilisées hors du périmètre de TURTLE. L’approche proposée a été appliquée à la vérification de
protocoles de communication de groupes sécurisée (projet RNRT-SAFECAST).
MOTS CLES :
Méthodologie, UML temps réel, SysML, Exigences temporelles, Vérification formelle, Observateurs,
Protocoles, Communication de groupe sécurisés
Les travaux à l’origine de ce mémoire ont été réalisés dans le Département de Mathématiques, Informatique
et Automatique de L’ISAE et dans le groupe Outils et Logiciels pour la Communication du LAAS-CNRS. Aussi je
voudrais saisir cette opportunité pour remercier MM Darrenougé directeur de l’ENSICA et Fourrure directeur
général de l’ISAE (issu du rapprochement de l’ENSICA et SUPAERO). Mes remerciements vont de pair à MM
Ghallab et Chatila directeurs successifs du LAAS-CNRS pour m’avoir accueilli dans leur laboratoire. Je tiens
également à remercier François Vernadat et Patrick Sénac respectivement responsables du groupe OLC du LAAS-
CNRS et du département DMIA de l’ISAE pour m’avoir accueilli et aidé dans mes travaux. Enfin, j’ai une pensée
particulière pour J.P Courtiat, ancien responsable du groupe OLC et mon ancien co-directeur de thèse pour m’avoir
guidé durant la première année de ma thèse et pour l’attention qu’il a portée ensuite à mes travaux et ce malgré ses
obligations diplomatiques.
Je voudrais aussi pouvoir exprimer ici mes plus vifs remerciements à Pierre de Saqui-Sannes qui a bien voulu
accepter d’encadrer ce mémoire de Doctorat. Sans sa disponibilité (24 heures sur 24), sa patience, les conseils qu’il m'a
prodigués tout au long de ces trois ans, ses mots d'encouragement, ce travail n'aurait pas pu, sans doute, être mené à
son terme. Son encadrement « rapproché » restera pour moi un très bon souvenir et m’aura grandement appris.
Je remercie Françoise Simonot-Lion et Jean-Philippe Babau qui ont accepté la charge de rapporteurs. Ils ont
aussi accepté d’être membre de mon jury, qu’ils trouvent ici le témoignage de ma reconnaissance. Je remercie
également Guy Juanole, Isabelle Chrisment et François Vernadat de m’avoir fait l’honneur d’examiner mes travaux.
Leur présence dans leur jury fut pour moi un grand plaisir.
Je remercie chaleureusement Ludovic Apvrille, qui a suivi de près ce travail et sans qui mes travaux
n’existeraient pas sous cette forme. Ses observations judicieuses et ses remarques ont été des plus déterminantes dans
la conduite de ces travaux et à la forme finale qu'ils ont pris.
Mes remerciements vont également à tous les membres du projet SAFECAST. J’ai une pensée toute
particulière pour Sara à qui je souhaite de terminer le plus rapidement possible et dans les meilleures conditions son
manuscrit. Je tiens également à remercier Philippe et particulièrement Thierry et Pierre pour m’avoir encadré avec
Sara dans ce projet.
J’adresse mes plus sincères remerciements à Michel Diaz, qui a bien voulu répondre à mes sollicitations pour
mener à bien ce travail.
Les personnels du DMI par leur gentillesse et leur convivialité dont ils ont su faire montre ont rendu mon
séjour très agréable parmi eux. Je tiens à remercier toute l’équipe d’enseignant chercheur du DMI : Laurent, Fabrice,
Emmanuel, Jérôme et Tanguy. Par leur grandes compétences et leurs remarquables qualités humaines, ils ont su
rendre chaleureuses et fructueuses ces quelques années passées parmi eux. Je garde de très bons souvenirs des
nombreuses discussions mathématiques, philosophiques et œnologiques avec Yves pendant lesquelles j’ai su que je ne
savais rien (ou du moins pas grand-chose). Je remercie également le personnel administratif du DMI en l’occurrence
René et Bernard pour leur efficacité et tous les services rendus.
Je n’oublie pas de remercier également l’ensemble de mes collègues du groupe OLC avec qui j’ai passé des
moments agréables. Par leur gentillesse et leur convivialité, ils ont rendu mon séjour très agréable parmi eux. Qu'ils
trouvent ici collectivement et individuellement l'expression de toute ma gratitude.
Je ne saurais passer cette occasion sans saluer les doctorants actuels et anciens que j’ai pu côtoyer au cours
de ces quelques années. Je salue donc les vieux docteurs et jeunes maitres de conférences : Ernesto (pour moi tu
resteras toujours un docteur) et Florestan. Les jeunes docteurs : Francisco, Mathieu, Manu, Hervé, Ahlem et les
doctorants Sara, Jérôme, Nicolas, François, Juan, Ali, Amine, Lei et Nourredine, ainsi que la nouvelle génération qui
je pense va nous faire rêver : Alexandre, Thomas et Guodong. Enfin en écrivant ces lignes j’ai une certaine nostalgie
en pensant à Tarekinho, plus qu’un collègue de bureau ces trois ans de « vie commune » ont été pour moi un vrai
plaisir et une thérapie concernant un certain « humour approximatif ». Ces souvenirs resteront gravés dans ma
mémoire.
Il me semble opportun d’avoir une pensée pour l’ensemble de mes collègues de l’UPS que j’ai eu le plaisir
d’avoir à la fois comme professeurs durant ma scolarité et comme collègues par la suite. Merci de m’avoir donné envie
de continuer dans les études et de m’avoir fait confiance pour les enseignements. Je pense particulièrement à Pascal
qui m’a permis d’apprécier et de m’impliquer dans mes travaux d’enseignements. Enfin je remercie tous les étudiants
(ISAE compris) qui m’ont fait apprécier d’enseigner. Merci à tous d’avoir supporté mes moments d’euphorie et mes
changements d’humeur occasionnés par ce travail.
Un grand merci à tous mes amis qui m’ont supporté durant tant d’années : Philippe, Bastien, Fred et
Adrien. Merci de m’avoir fait décompresser surtout durant la sacro-sainte période de rédaction, merci d’être toujours
là. Je remercie aussi Fanny pour ses talents de cinéaste. J’ai également une pensée particulière pour Anne-Charlotte,
Fabrice et bien sûr ma petite filleule Alix qui court déjà après les tortues. Je remercie chaleureusement toute ma
famille (et aussi la belle) de m’avoir supporté et épaulé. Merci à mes parents d’avoir cru en moi dans des périodes
difficiles, et de m’avoir donné tous les moyens de poursuivre mes études.
Et enfin pour conclure ces remerciements, je ne peux m’empêcher de penser à Gwenaëlle, qui un jour m’a dit
de manière naturelle « Tiens je te verrais bien docteur ! ». Et bien oui c’est fait, encore merci pour ton soutient qui a
été essentiel tout au long de ces huit années. Merci de m’avoir supporté et de m’avoir fait devenir ce que je suis
aujourd’hui : je ne sais vraiment pas ce que je serai devenu sans toi. Du fond du cœur, j’aimerais t’adresser mes plus
grands remerciements, pour le reste tu sais ce que tu représentes pour moi et c’est donc naturellement à toi que je dédie
ce mémoire.
Table des matières
Chapitre I. Introduction................................................................................................................... 9
1. Développer des systèmes temps réel fiables................................................................................... 9
2. L’émergence d’un consensus : UML............................................................................................ 10
3. Les réponses apportées par l’ingénierie des exigences................................................................. 10
4. Contributions apportées dans ce mémoire .................................................................................... 11
5. Organisation du mémoire.............................................................................................................. 12
1
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
2
Table des matières
3
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Références.......................................................................................................................................... 124
4
Index des figures
5
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
6
Index
7
Chapitre I. Introduction
Le problème de la fiabilité des systèmes temps réel est ainsi posé depuis plusieurs décennies.
Les domaines des transports et des banques, pour n’en citer que quelques uns, ont déjà une longue
tradition de la recherche de la fiabilité, eu égard à la criticité des systèmes qu’ils déploient. Ces
domaines sont ceux où les méthodes de développement de systèmes sont les plus rigoureuses
(pensons aux organismes de certification en aéronautique qui tendent aussi à être intégrés dans le
domaine de l’automobile), faisant parfois appel aux méthodes formelles que le reste de l’industrie
juge, avec une opinion préconçue, souvent inutilement compliquées et lourdes à mettre en œuvre.
L’intérêt de ces méthodes formelles n’a cessé de croître avec l’essor des systèmes distribués.
Des défaillances locales qui n’avaient auparavant aucune conséquence, peuvent maintenant entrainer
des pannes plus significatives de par la « connectivité » des systèmes déployés à grande échelle
(Internet par exemple) et en interdépendances croissantes. L’on assiste donc à un intérêt grandissant
pour les méthodes, langages et techniques permettant d’améliorer rapidement et efficacement la
qualité de systèmes répondant aux attentes du client. L’utilité de ces méthodes formelles est avérée en
matière de validation de systèmes a priori puisqu’une vérification formelle de modèle permet de
confronter un modèle de conception aux exigences à valider pour détecter les erreurs de conception
sans attendre la réalisation d’un prototype voire même du système effectif.
9
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Une qualité importante du langage UML est de se construire autour des fonctions que le
système doit offrir (c'est-à-dire les exigences fonctionnelles) ; ce sont les cas d’utilisations. Ce
concept permet d’avoir un vue opérationnelle du système en termes de mécanismes à concevoir, ce
qui convient bien pour décrire des solutions logicielles (architectures, comportement). Mais UML est
mal adapté pour décrire le problème à résoudre - l’objet même du cahier des charges - les exigences
non-fonctionnelles (dans le domaine temporel, par exemple, le temps de sortie des trains
d’atterrissage d’un avion). Or ces exigences non-fonctionnelles influencent toutes les définitions des
mécanismes définis dans des cas d’utilisations.
Dans ce contexte, l’OMG a récemment normalisé SysML [SysML] amenant avec lui, entre
autres concepts, l’idée de pouvoir formuler des exigences au moyen d’un diagramme d’exigences.
Ceux-ci concourent à assurer, à des fins documentaires, un suivi de ces exigences dans le cycle de
développement du système par la construction d’une matrice de traçabilité. Notons néanmoins que
10
Chapitre I. Introduction
dans les premiers outils disposant de plug-ins SysML (par exemple, TAU G2.3.1 [TAU]), les
exigences sont décrites de manière totalement informelle et sans lien automatisé avec les
fonctionnalités de validation de modèles.
11
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
• Caractériser l’insertion d’un observateur dans le modèle à observer. Cet aspect présente un
caractère fondamental de la vérification guidée par observateurs. Si ces derniers ne sont pas
greffés correctement dans le modèle cela conduit à un mauvais diagnostic de l’observateur.
Nous avons donc proposé des patterns de placement « correct » des observateurs caractérisant
différentes exigences temporelles que l’on cherche à vérifier dans le modèle (mesurer la durée
d’une fonctionnalité ou d’un service, mesurer la gigue au niveau de l’application ou le délai de
bout en bout d’un protocole).
5. Organisation du mémoire
Ce mémoire est structuré de la manière suivante.
Le chapitre III présente une proposition de méthodologie pour la vérification des exigences
temporelles dans un système temps réel et en particulier les protocoles. Nous introduisons, tout
d’abord, un langage de description de processus méthodologique utilisé dans la suite du chapitre.
Ensuite, nous présentons une méthodologie de conception de systèmes temps réel en contexte
UML/SysML, en se dégageant d’outils UML particuliers dans un premier temps puis en se focalisant
sur le profil UML TURTLE. Enfin, cette méthodologie est spécialisée pour la conception de
protocoles temps réel.
Le chapitre IV est consacré aux diagrammes de la phase de traitement des exigences dans le
profil TURTLE. Après avoir présenté un état de l’art des travaux dédiés aux langages de description
formelle d’exigences temporelles, nous introduisons les diagrammes utilisés en TURTLE pour
spécifier les exigences non-fonctionnelles temporelles. Il s’agit d’une combinaison des diagrammes
12
Chapitre I. Introduction
Le chapitre VII conclut ce mémoire en dressant un bilan de nos contributions et en ouvrant des
perspectives à notre travail.
13
Chapitre II. Contexte et positionnement des travaux
Le travail présenté dans ce mémoire est centré sur la vérification d’exigences temporelles et le
développement d’une méthodologie qui intègre pleinement ce traitement. Aussi, ce chapitre dresse-t-
il un état de l’art en matière d’exigences et de méthodologies proposées par d’autres auteurs pour les
systèmes temps réel centralisés, puis distribués.
Ce chapitre est structuré comme suit. La section 1 recense dans un premier temps les
exigences posées par les systèmes temps réel et dans un second temps les méthodologies associées à
la conception de ce type de systèmes. La section 2 spécialise la discussion précédente vers les
systèmes qui sont à la fois temps réel et distribués. La section 3 présente le profil UML temps réel
TURTLE adossé au langage formel RT-LOTOS et expose les éléments de méthodologie publiés
jusqu’ici pour ce profil, antérieurement aux (et indépendamment des) contributions présentées dans ce
mémoire. Enfin, la section 4 dresse un bilan général des différents travaux présentés dans ce chapitre
et identifie les points durs non-traités,.
14
Chapitre II. Contexte et positionnement des travaux
1
Une propriété de vivacité assure qu’un événement sous certaines conditions devra fatalement se produire.
2
Une propriété de sûreté assure qu’un événement sous certaines conditions ne doit jamais se produire.
15
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Le choix d’exprimer les exigences dans les bornes strictes (inférieures et/ou supérieures) n’est
pas anodin ; il correspond au non-déterminisme temporel de la sémantique du langage TURTLE (cf.
chapitre V section 3.1) sur lequel s’instancie la méthodologie présentée au chapitre III de ce mémoire.
1.2. Méthodologies de conception de STR
Cette section recense des méthodologies de conception de systèmes temps réel. La section
1.2.1 présente brièvement les méthodologies antérieures à la normalisation d’UML. La section 1.2.2
dresse un panorama des méthodologies dédiées au langage UML. Enfin, la section 1.2.3 recense des
méthodologies reposant sur les méthodes formelles.
Moins rigide que MERISE du point de vue validation, SA-RT (Structured Analysis - Real
Time) [HAT 87] se répandit vers le début des années 1990 comme l'un des standards de description
systèmes temps réel. SA-RT est une méthode graphique de description d'un système temps réel
complexe par analyse fonctionnelle descendante [HAT 87]. L'analyse chemine du général vers le
particulier et le détaillé contrairement à MERISE qui opère des retours successifs au système général.
SA-RT s’appuie sur différentes descriptions du système à concevoir : vue statique présentant les
transformations de données et vue dynamique présentant les réactions du système face à des stimuli
de son environnement. Le temps est représenté dans la vue dynamique de manière logique par des
machines à états finis (ce formalisme permettant de décrire la réaction du système face à des stimuli
extérieurs au système).
Ni MERISE, ni SA-RT ne prennent en compte le fait qu’un système ou une partie d’un
système peut être vue comme un ensemble de modules (notion de modularité) éventuellement
réutilisables (notion de portabilité). D’où l’introduction de méthodes de conception orientée objet qui
16
Chapitre II. Contexte et positionnement des travaux
intègrent les concepts de modularité et portabilité. Ces méthodes basées sur des langages de
modélisation orienté objet (comme OMT3 [RUM 91]) ont été utilisées dans l’industrie pour la
conception des systèmes temps réel avant la normalisation d’UML. Cependant ces méthodes ne
prennent pas en compte explicitement les besoins du client et le fait que ce dernier peut changer
d’avis pendant un projet.
3
OMT est le langage de modélisation orienté objet qui a été fusionné dans UML (principalement dans les diagrammes de
conception).
17
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Cycle itératif
Déploiement Diagramme de déploiement
Implémentation Code (Java, C++, …)
Test
La méthode 2TUP (2 Track Unified Process) [ROQ 04] est une méthode UP qui apporte une
réponse aux contraintes de changements continuels imposés aux systèmes d’information. Le terme « 2
Track » signifie littéralement que le processus suit deux chemins. Il s’agit des chemins fonctionnels
formulés par le client et d’architecture technique définis par l’équipe de conception. Ce dernier
chemin permet la conception d’un prototype dépendant le moins possible des aspects fonctionnels et
réutilisable dans d’autres projets. Cette distinction nous parait donc une bonne piste dans la
distinction des différentes exigences fonctionnelles (distingués par fonctionnels et techniques) dans le
système mais ne permet pas spécifier les exigences non-fonctionnelles contrairement à la
méthodologie présentée dans ce mémoire.
ROPES (Rapid Object-Oriented for Embedded Systems) [DOU 04] spécialise la méthode UP
dans le cadre de la conception de systèmes temps réel. Cette méthode encourage la synthèse
18
Chapitre II. Contexte et positionnement des travaux
automatique de code pour faciliter la génération rapide de prototypes à partir des modèles spécifiés
dans le profil UML SPT [OMG 05] (cf. section 3.1.4) qui spécialise la norme UML dans le domaine
des systèmes temps réel. La classification des exigences fonctionnelles (prioritaire, risque,
standardisation possible) [DOU 04] présente une bonne solution pour définir de manière complète
des exigences fonctionnelles (fonctionnalités). La méthodologie proposée au chapitre III reproduit la
même approche en intégrant un élément manquant dans le cycle de développement à savoir la
définition des exigences non-fonctionnelles temporelles, élément prépondérant dans le développement
de systèmes temps réel.
Enfin, le survol de toutes ces méthodes de conception basées sur le langage semi-formel UML
très utilisées dans le milieu industriel nous amène à faire le constat que la validation du système est
basée uniquement sur le test du code. Ceci est regrettable car des fautes de conception dues à un
défaut de validation a priori sont découvertes lors de la première phase d’implémentation. Des
solutions peuvent être apportées par l’utilisation de méthodes formelles, permettant de générer un
modèle exécutable pour détecter des erreurs de conception a priori lors des premières étapes du cycle
de développement d’un système temps réel.
L’approche proposée ultérieurement dans ce mémoire repose sur cette seconde catégorie de
langages.
S’appuyant également sur la deuxième catégorie de langage, les travaux de [BAB 01]
présentent une méthode de développement de systèmes embarqués basée sur le langage SDL [SDL
99] et appelée PROSEUS (Development method for PROtotyping embedded SystEms by using UML
and SDL). [BAB 01] fait l’hypothèse que l’analyse des besoins fonctionnels et la conception ont été
spécifiées en UML puis traduits en SDL. Afin d’intégrer les contraintes temps réel dans le modèle du
système, [BAB 01] propose un typage des signaux échangés entre système et événements qui
modélise les contraintes de temps de l’application à développer. Les paramètres des signaux
contiennent des caractéristiques temporelles exprimées en logique temps réel [JAH 86] et définies
selon le mode de propagation [BAB 98]. L’étude se focalise ensuite sur la phase de définition de
l’architecture de l’application, phase fondamentale dans les systèmes temps réel embarqués car les
choix effectués au niveau de l’architecture influent directement sur les performances du système
[BAB 01]. La définition de l’architecture matérielle et logicielle (qui peut être exprimée par des
19
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
diagrammes UML de déploiement et de composant) s’appuie sur des structures types définies en SDL
qui représentent les unités de traitement du système, les médiums de communication et
l’environnement. A chaque signal, on associe des contraintes temporelles à partir du modèle
précédent. Cette approche autorise une modélisation fine des contraintes du système (liées aux unités
de traitement du système, aux médiums de communication et à l’environnement). Ceci nous a donné
des pistes pour définir les cycles itératifs de la méthodologie présentée dans ce mémoire (cf. chapitre
III section 3.1.2 et 4.1.2). Le modèle du système doit être conçu dans un premier temps dans un
contexte atemporel. Ensuite, les paramètres temporels sont insérés non pas dans les signaux comme
en [BAB 01] mais dans les diagrammes d’activités TURTLE (cf. section 3.1.2.2 de ce chapitre).
20
Chapitre II. Contexte et positionnement des travaux
systèmes temps réel. MeMVaTEx est orientée développement d’application temps réel dans le
domaine de l’automobile. Le cycle de développement s’inspire de celui présenté dans le projet EAST-
EEA [EAST]. Les exigences initiales sont données sous forme textuelle puis traduites par des
diagrammes d’exigences SysML. Chaque exigence peut être connectée aux autres exigences, greffée
à une partie du modèle ou encore représentée par un cas de test. Les exigences sont ensuite
construites et tracées durant toutes les phases de développement en utilisant les mécanismes de
traçabilité des exigences du méta-modèle SysML (concept de composition, vérification, satisfaction).
La traçabilité des exigences est définie par construction de références entre le modèle et les
documents externes où sont définies les exigences. Ces documents contiennent le résultat de la
validation et vérification des exigences. Une matrice de traçabilité SysML contenant les résultats de
validation des exigences peut alors être produite. Cependant l’aspect « formalisation des exigences »
n’est pas décrit exhaustivement dans MeMVaTEx [ALB 07]. Nous présupposons donc que cette
méthode n’inclut pas encore un processus de description formelle des exigences temporelles. Centrée
autour de la vérification formelle d’exigences temporelles, l’approche proposée dans ce mémoire
prend au contraire en compte l’aspect « recueil d’exigences » et la manière de formaliser les
exigences non-fonctionnelles par une dérivation (cf. chapitre IV). De plus, la méthode MeMVaTEx
repose sur le profil UML MARTE [OMG 07] (cf. section 3.1.4) pour le développement d’applications
automobiles. La méthodologie présentée dans ce mémoire se veut être plus générale ; elle se dégage
d’outils UML spécifiques et s’applique aux systèmes temps réel en général avec une particularisation
au domaine des systèmes temps réel et distribués.
Un lien existe entre ces classes d’exigences et les différentes propriétés définies dans le Tab.1
en section 1.1 de ce chapitre. Par exemple le Jitter peut être associé à la propriété de délai maximum
ou minimum et le End to end delay peut être associé à la propriété de délai borné.
Parmi les travaux dédiés à la spécification des exigences liées à la QoS, [EXP 03] présente
XQoS, un langage de spécification basé sur XML pour définir, entre autre, les exigences de QoS en
termes de temps (par les exigences de gigue et de délai bout en bout), mais aussi la synchronisation et
l’ordre des messages. Ces travaux, qui concernent uniquement l’aspect spécification et non la
21
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
vérification de ce type d’exigences, nous ont inspiré pour définir la taxonomie des exigences non-
fonctionnelles temporelles liés à la QoS présenté dans le paragraphe précédent. Concernant les
protocoles temps réel, [TOU 05] propose de définir la QoS par des contraintes quantitatives sur
l'appel d'un service offert par un composant qui est vu comme une ressource. La formalisation de la
QoS repose donc sur les contraintes d’utilisation de cette ressource (en termes de capacité mémoire,
occupation du CPU, ressources réseau, ...). Cette formalisation des exigences dans l’architecture
orientée QoS Qinna [TOU 05] se construit sous forme de contrats sous forme de bases de données.
Les contraintes temporelles sont traitées par analyse des performances temporelles et non formalisées
au niveau des contrats car difficiles à encapsuler dans ces derniers. Au contraire, l’approche présentée
dans ce mémoire se focalise sur la description d’exigences temporelles telles que la gigue et le délai
de bout en bout (cf. section 1). Ceci permet de décrire entre autres les exigences non-fonctionnelles
auxquelles un protocole est confronté (par exemple, une application multimédia qui impose des
exigences temps réel en termes de gigue et de délai de bout en bout).
2.2. Méthodologies de conception de STRD
Dans le domaine des protocoles, il est essentiel de pouvoir définir de manière complète et non-
ambigüe les règles de dialogue (protocole), utilisées pour l’échange de données et la synchronisation
entre les entités du protocole. La Fig.2 décrit le pattern d’architecture qu’il est convenu d’appliquer
aux protocoles en s’inspirant de [ZIM 80]. L’architecture est décrite par un empilement de modules
ou couches de protocole [ZIM 80]. Un protocole (N) est défini par l’ensemble des règles de dialogue
et des formats de messages caractérisant la communication des entités de la couche (N). Les entités de
protocole (N), fournissent un service (N), décomposé en primitives de services(N), à la couche
supérieure en coopérant entre elles suivant le protocole (N). Les entités de protocoles utilisent le
service (N-1) pour échanger des messages (les (N) PDUs sur la Fig.2). Il est communément admis
([BOC 90] [PEH 90] [COU 91]) de distinguer trois niveaux dans une architecture dédiée à la
vérification :
• Le niveau N+1 décrit l’abstraction des couches supérieures qui vont utiliser les
primitives de service du protocole (N).
• Le niveau N décrit les entités de protocole à vérifier qui fournissent le service (N) en
utilisant le service sous-jacent (N-1).
• Le niveau N-1 décrit le modèle du service sous-jacent (N-1) qui est utilisé par les
entités de protocoles (N) pour échanger leurs (N) PDUs.
22
Chapitre II. Contexte et positionnement des travaux
L’architecture à trois couches décrite par la Fig.2 est réutilisée dans la méthodologie présentée
dans ce mémoire (cf. règle C.1 de la section 4.2 du chapitre III). En termes d’abstractions et
d’itérations dans le cycle de conception d’un protocole, cette méthodologie se base sur les travaux de
[BOC 90] et [COU 91] (cf. Fig.20 présentée dans la section 4.1.3 du chapitre III) qui préconisent la
conception d’un protocole (N) en utilisant trois niveaux d’abstraction :
• La spécification abstraite du service (N), ayant pour objet de représenter
l’ordonnancement temporel des primitives de services, telles qu’elles sont visibles par
les utilisateurs de la couche (N). Cette phase correspond à la phase d’expression des
besoins utilisateurs.
• La spécification abstraite du protocole (N), ayant pour objet de raffiner la spécification
précédente en introduisant les fonctionnalités des entités de protocoles de la couche
(N), ainsi que le « mappage » des (N) PDUs échangés entre les entités sur les
primitives de services de la couche (N-1). Cette phase correspond à la phase de
conception de l’architecture.
• La spécification concrète du protocole (N), correspond à la phase d’implémentation
(prise en compte de l’environnement système/matériel particulier sur lequel le
protocole sera implémenté).
Dans le domaine de la vérification des protocoles, la représentation du service sous jacent est
un élément très important pour la conception d’un modèle de protocole. La méthodologie de
conception de protocoles de niveau Transport présentée en [COU 92] développe l’idée de concevoir
un protocole autour de la description du service sous-jacent (ou medium). Il s’agit d’une démarche
itérative et incrémentale, basée sur le modèle du service sous-jacent. [COU 92] considère deux
propriétés :
P1. Le médium (ou la couche de service sous-jacent) est capable de transmettre des
données de taille arbitraire. Ce qui veut dire que l’on ne considère pas la segmentation de
données.
P2. Le médium est considéré comme fiable (aucune perte, aucune duplication, pas de
déséquencement).
En fonction de ces deux propriétés injectées ou non dans le modèle du médium, la conception
du protocole est caractérisée par les étapes suivantes :
• La première étape impose la satisfaction des propriétés P1 et P2 par le médium qui sera
donc vu comme fiable et sans segmentation de données.
• Dans la deuxième étape, le médium satisfait seulement la propriété P2. Cette étape de
conception correspond donc à l’intégration des mécanismes de
segmentation/réassemblage des données.
• La troisième étape correspond à l’introduction des mécanismes de reconnexion. Le
médium ne satisfait plus les propriétés P1 et P2.
• La dernière étape correspond au raffinement (à l’éclatement) des données dans le
protocole. Chaque PDU considéré dans les étapes précédentes est représenté par les
services de la couche sous-jacente. Le médium ne satisfait pas non plus les propriétés
P1 et P2.
Ces travaux nous ont fortement inspiré pour définir les cycles d’itérations de la méthodologie
présentée dans ce mémoire (voir la définition des Aléas au chapitre III section 3.1.2).
23
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Tout comme les méthodologies UML présentées en sections 1.2.2 et 1.2.3, les méthodologies
de conception de systèmes temps réel et distribués orientées UML [LEP 00] [POP 06] [MUS 07]
prennent en compte la spécification des exigences fonctionnelles (appelées très souvent besoins) par
des cas d’utilisation. [MUS 07] présente une approche de modélisation à base de scénarii : les Uses
Cases Maps (UCM). Les UCM autorisent la définition de contraintes temporelles [HAS 06]
assimilables à des exigences non-fonctionnelles temporelles. Mais cette méthodologie UML [MUS
07] n’intègre pas explicitement la spécification d’exigences non-fonctionnelles, car UML ne permet
pas de spécifier et de différencier explicitement ce type d’exigences par rapport aux fonctionnalités
identifiées par les cas d’utilisations. Au contraire, la méthodologie présentée dans ce mémoire permet
d’exprimer les exigences non-fonctionnelles temporelles dans un contexte SysML et de manière
formelle par construction de chronogrammes (cf. chapitre IV) qui sont le point de départ de la
vérification formelle de ces exigences par le biais du profil UML temps réel TURTLE.
Un processus LOTOS est une boîte noire qui communique avec son environnement au travers
de portes et sur le principe d’une offre de rendez-vous. Des échanges monodirectionnels ou
bidirectionnels de valeurs sont autorisés lors de la synchronisation. Le parallélisme et la
synchronisation entre processus s’expriment par des opérateurs de composition : mise en séquence,
synchronisation sur certaines portes, choix non-déterministe et entrelacement (composition parallèle
sans synchronisation). Enfin, l’opérateur de composition de préemption permet de décrire le fait
qu’un processus puisse interrompre à tout moment d’autres processus. La finalité de ce langage est de
décrire l’ordonnancement temporel des actions. La version de LOTOS normalisée en 1988 n’offre ni
opérateur temporel, ni mécanisme temporel de base de type « temporisateur » par exemple.
24
Chapitre II. Contexte et positionnement des travaux
Notons que cet opérateur porte sur la ou les premières actions du processus auquel il est
appliqué. Par ailleurs, il n’a d’effet que s’il porte sur une action interne ou une action externe
offerte avant la date l, l’occurrence d’une action externe étant, en tout état de cause, soumise à
la date de l’offre faite par l’environnement.
• L’opérateur de restriction temporelle (noté a{T}) limite le temps pendant lequel une action
observable a peut-être offerte à son environnement. Le délai d’expiration commence à courir à
partir du moment où l’action est offerte.
On peut noter que la combinaison d’un opérateur de délai et de latence permet de traiter les
intervalles temporels.
RT-LOTOS permet aussi de faire la distinction entre actions urgentes et non-urgentes. Ces
dernières dépendent soit de l’environnement avec lesquelles elles se synchronisent, soit d’un
opérateur temporel (délai, latence). Les actions urgentes qui ne dépendent ni de l’environnement ni
d’opérateurs temporels sont exécutées instantanément (de manière atomique). Ces actions urgentes
peuvent être aussi le résultat d’une synchronisation toujours offerte par l’environnement.
25
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Identificateur de la Tclass.
Liste d’attributs sauf ceux de type Gate (l’outil TTool supporte les entiers
et les booléens).
Liste des portes déclarées comme public (+) ou privés (-)
Opérateur de
Opérateur de Synchro composition
composition
Association
Association
TC1 TC2
26
Chapitre II. Contexte et positionnement des travaux
• Expression d’un système de déroutement lorsqu’une action n’est pas réalisée dans l’intervalle
attendu (opérateur TLO (t, a, <AD1>, <AD2>) dans le Tab.2).
• Expression du non déterminisme temporel, à savoir le fait qu’une action réalisée par une
activité se produise après un délai variable, non connu a priori (opérateur Latency(t) dans
Tab.2).
Parallel ( [g1, …, gk], Synchronisation sur les portes g1, g2 entre les
<AD1>, …, <AND>)
AD1 ADN
sous activités AD1, …,ADN.
27
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
28
Chapitre II. Contexte et positionnement des travaux
diagramme de séquences décrivant le cas nominal d’un protocole de connexion à distance du type
ping. L’application envoie un message Ping_Command transmis via un réseau dont le temps de
transmission est compris entre 6 et 12 unités de temps (rectangle avec un ressort). L’application
attend un message Print_Ping clôturant la commande Ping_Command.
29
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
L’interface entre les outils TTool et RTL permet de générer des traces de simulation ou un
graphe d’accessibilité de façon transparente depuis TTool, c'est-à-dire sans écrire ou examiner une
seule ligne de code RT-LOTOS.
Parmi les projets qui placent la validation a priori basée sur les modèles au centre du processus
de conception de systèmes temps réel et embarqués, nous pouvons mentionner le projet OMEGA
[OMEGA] et son profil UML temps réel : OMEGA-RT [GRA 05]. Les modèles édités dans les outils
externes au projet OMEGA (ROSE-RT, Rhapsody et Argo) sont traduits dans le formalisme IF
supporté par des outils de validation formelle. La démarche est similaire dans le cas du profil
TURTLE ; les modèles sont traduits en TIF puis dans le formalisme RT-LOTOS [COU 00]. Au
niveau des diagrammes de classes, OMEGA-RT supporte l’orientation objet d’UML en termes
d’héritage. Par contre, la notion d’opérateur de composition que TURTLE hérite des algèbres de
processus n’est pas représentée dans les diagrammes de classes d’OMEGA-RT. Par ailleurs
30
Chapitre II. Contexte et positionnement des travaux
Parmi les profils adoptés par l’OMG dans le domaine des systèmes temps réel, le profil UML
SPT [OMG 05] (Schedulability, Performance and Time) ne considère qu’un temps métrique qui fait
implicitement référence au temps physique (expression quantitative du temps). UML SPT introduit
les concepts d’instant (instant) et de durée (duration). Il modélise également les mécanismes
temporels classiques dans UML (clock et timer). Successeur de SPT à l’OMG, le profil MARTE
(Modeling and Analysis of Real-Time and Embedded systems) [OMG 07] voit ses aspects temporels
regroupés dans le sous profil Time [AND 07]. L’intérêt de MARTE repose sur la distinction entre
plusieurs référentiel de temps (par l’ajout d’un stéréotype « clock »). MARTE modélise aussi bien le
temps physique (continu) que le temps logique. Une autre caractéristique de MARTE est de pouvoir
lier directement et explicitement des éléments comportementaux au temps par les stéréotypes
« TimedEvent » (événement dont l’occurrence est directement liée à une horloge) et
« TimedProcessing » (activité liée à une horloge). Il en est de même avec les contraintes par le
stéréotype « TimedConstraint » (activité liée à une contrainte temporelle) et les observations par
« TimedObservation » (observation du temps d’une activité). Doté de beaucoup moins de stéréotypes
pour décrire le temps, TURTLE permet par le concept de latence de représenter explicitement
l’indéterminisme temporel relatif à l’occurrence d’un événement contrairement à MARTE.
3.2. Méthodologie présentée en [APV 06]
[APV 06] présente une méthodologie de développement de systèmes temps réel et/ou
distribués (cf. Fig.8) basée sur le profil TURTLE. Cette méthodologie inclut une phase de
déploiement qui ne sera pas traitée dans ce mémoire. [APV 06] définit trois étapes :
1. L’analyse comprend la réalisation d’un diagramme de cas d’utilisation pour définir les différentes
fonctionnalités du système (ce diagramme n’ayant pas de sémantique formelle, il n’est produit
qu’à titre documentaire) et d’un ou de plusieurs diagramme(s) global d’interaction et de
diagrammes de séquences (ces deux derniers peuvent être validés formellement). Cette d’analyse
a pour objectif la réalisation d’un sous-ensemble de scénarii possibles au regard des
fonctionnalités décrites dans le cahier des charges d’un système.
2. La conception permet de produire une première définition de l’architecture sous la forme d’un
diagramme de classes décrivant l’aspect architectural du système. L’architecture globale du
système étant définie, le comportement de chaque entité est décrit par des diagrammes d’activités.
Le concepteur peut alors ensuite faire évoluer cette conception et vérifier formellement, par la
génération à partir du modèle TURTLE d’un graphe d’accessibilité, le bon comportement du
système.
3. La validation formelle du modèle TURTLE (soit par les diagrammes d’analyse soit par les
diagrammes de conception) qui va guider l’évolution du modèle TURTLE par utilisation de
techniques de comparaisons comme la bisimulation prouvant que la conception (ou l’analyse) de
l’étape n+1 possède les mêmes ensemble de traces qu’à l’étape n, lorsque bien entendu les traces
de l’étape n+1 sont épurées des actions non présentes dans l’étape n. Cette bisimulation s’effectue
ainsi entre le graphe d’accessibilité de l’étape n, et le graphe d’accessibilité de l’étape n+1
minimisé par rapport aux actions de l’étape n.
31
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Il faut noter que la méthodologie présentée en [APV 06] repose sur une approche incrémentale
(cf. spirale de la Fig.8). A chaque étape, la sémantique formelle de TURTLE permet de réaliser des
validations formelles, et éventuellement de faire des preuves de conservation de propriétés par
utilisation de techniques de bisimulation entre modèles de base et raffiné. Ceci garantit une
conception non-régressive d’un système pour atteindre finalement le centre de la spirale que montre la
Fig.8.
A l’instar des autres méthodologies UML présentées dans les sections précédentes, celle
proposée en [APV 06] ne couvre pas la phase de recueil d’exigences (UML disposant uniquement de
diagrammes de cas d’utilisation). Outre une description plus exhaustive qu’en [APV 06], la
méthodologie présentée dans ce mémoire (cf. chapitre III) repose sur l’ajout de la phase de recueil des
exigences et la formalisation des exigences non-fonctionnelles (cf. chapitre IV), point de départ de la
vérification formelle et de la traçabilité de ce types d’exigences dans le cycle de développement d’un
modèle dédié à la vérification (cf. Fig.8).
4. Conclusion
Le survol des méthodologies de conception de systèmes temps réel utilisées dans l’industrie
nous amène à faire le constat suivant : il existe très peu de méthodologies axées sur le langage UML
et prenant en compte l’aspect « vérification formelle ». La première idée défendue dans ce mémoire
repose sur l’idée de coupler l’aspect conception par construction d’un modèle UML avec la
vérification formelle.
32
Chapitre II. Contexte et positionnement des travaux
types d’exigences par opposition à UML dont les cas d’utilisation traitent uniquement les exigences
fonctionnelles.
33
Chapitre III. Proposition d’une méthodologie
34
Chapitre III. Proposition d’une méthodologie
1.2.1. Principe
Les organigrammes utilisés dans ce chapitre pour décrire les processus de développement
étendent les diagrammes d’activités UML 2.1 [UML]. Les étapes méthodologiques sont présentées
par des activités qui peuvent être raffinées en sous activités. Les activités des diagrammes présentés
dans ce chapitre sont numérotées en conformité avec le Tab.3 de la section 2 de ce chapitre.
La Fig.9 montre une partie d’un processus de développement décrit dans le diagramme de
description de méthodologie (DP pour Development Process) introduit dans cette section. Un
diagramme d’activités débute obligatoirement avec un disque noir représentant le début de la
première activité. Chaque étape est reliée par une flèche de transition montrant les relations de
précédence entre activités (par exemple l’activité sous étape méthodologique suivante doit se produire
après l’activité sous étape méthodologique). Les activités sont représentées par des rectangles aux
coins arrondis. Une activité peut être décomposée en plusieurs sous-activités comme le montre
l’activité étape méthodologique décomposée en deux sous-activités sur la Fig.9.
35
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
d’entrée (les documents consultables représentés par des flèches pleines). Il est possible de
représenter deux types de sorties :
• les documents à créer représentés par des flèches sortantes pleines.
• les documents à modifier représentés par des flèches sortantes pointillées.
Un document sortant (produit ou modifié) est visible et donc consultable par toutes les autres
activités. Par contre, la production est uniquement autorisée dans les activités qui possèdent une
flèche sortante.
Etape méthodologique
36
Chapitre III. Proposition d’une méthodologie
1.2.3. Méta-modèle
Le diagramme de description de méthodologie (DP) que nous proposons étend donc les
diagrammes d’activités (DA) UML 2.1 [UML]. Un méta-modèle décrit ce langage en UML par
référence au méta-modèle des DA UML défini dans la norme UML [UML] (cf. Fig.10).
Consumed_Document_Arrow Produced_Document_Arrow
Type_of_Line=Full Direction=from_Step_to_Doc
Direction=from_Doc_to_Step
Document_Reference
name_of_document:String is_connected_with Methological_Step
is_connected_with is_connected_with
is_connected_with
<<enumeration>>
<<enumeration>> Created_Document
Optional_Document_Reference Type_of_Line Direction
Type_of_Line=Full Modified_Document
from_Doc_to_Step
Guarded_Name= "[name_of_document]" Dotted=" - - -"
Typed_of_Line=Dotted from_Step_to_Doc
Full="__"
Fig.10. Méta-modèle du DP
37
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Les documents associés à chaque étape méthodologique (en entrée ou en sortie) sont
représentés par la classe Document_Reference contenant comme attribut le nom du diagramme
(name_of_document). Cette classe peut faire référence à un diagramme UML ou SysML ; comme le
montre l’association entre refers_to et la classe Diagram. Par défaut, le méta-modèle définit un
document produit ou consommé comme obligatoire. On représente le caractère optionnel du
document par la spécialisation de la classe Document en Optional_Document_Reference où le texte
apparaît entre crochets, (cf. attribut Guarded_Name).
2. Guide de lecture
La méthodologie définie dans ce chapitre présente les relations entre les différentes étapes de
travail et la livraison de diagrammes UML 2.1 [UML] et/ou SysML 1.1 [SysML]. Le Tab.3 confirme
le caractère général de la méthodologie proposée et la possibilité de la spécialiser pour les protocoles.
1
2
Vérification formelle d’exigences temporelles de modèles en Documents produits
Spécialisation dans les protocoles
contexte UML/SysML
1.1.0 2.1.0
Non spécifiques
Expression des besoins Expression des besoins
Fonctionnelles
1.1.1 2.1.1
Distinguer exigences et les Non- Exigences liées aux modes de connexion et
raffiner en vue de les fonctionnelles à la qualité de service (QoS)
formaliser temporelles
38
Chapitre III. Proposition d’une méthodologie
1.2.2 2.2.2
Fonctionnalités : définition des cas d’utilisation Définition des primitives de services
2.2.3 Diagramme de
1.2.3 Description des PDUs échangés entre séquences et
Scénarii : formalisation des scénarios entités de protocoles correspondantes aux Diagramme global
différentes primitives de services d’interaction
1.3.1 2.3.1
Diagramme de
Architecture : construction et association des Architecture du protocole et pattern à trois
Classes
entités couches inspiré du modèle OSI
1.3 2.3.2
Conception Comportement des entités de protocoles à
spécifier
1.3.2 Diagramme
Application des dégradations sur le modèle
Comportement d’activités
abstrait du médium
Construction d’un séquenceur de scénarii
pour faire abstraction de l’application
2.4
1.4 Matrice de
Vérification des exigences temporelles liées
Vérification des exigences non-fonctionnelles temporelles traçabilité
au type de connexion et à la QoS
Tab.3. Guide de lecture du chapitre III
Les méthodologies présentées dans les sections 3 et 4 sont, de plus, instanciées sur le profil
UML temps réel TURTLE (présenté dans le chapitre II section 4.). La dernière colonne du tableau
correspond au type de documents (qui peuvent être des diagrammes UML ou SysML) produits à
chaque phase.
Le périmètre de la méthodologie étant fixé, nous allons nous concentrer sur le processus de
développement proposé.
Cette section est structurée de la manière suivante. Le paragraphe 3.1 présente l’étape de
traitement des exigences incluant les phases de recueil des exigences, de définition des hypothèses de
modélisation et de spécification des exigences. La section 3.2 présente la phase d’analyse. Le
paragraphe 3.3 présente la phase de conception. Enfin la partie 3.4 définit la dernière étape de
vérification des exigences.
3.1. Traitement des exigences
La méthodologie démarre par la levée des ambiguïtés, manques et incohérences contenus dans
les besoins exprimés par le client dans le cahier des charges : ceci correspond à la phase d’expression
des besoins (partie 1.1.0 de la Fig.11). Dans la phase de recueil d’exigences, les besoins sont
classifiés pour être transformés en exigences. Cette étape aboutit à la construction d’une base de
données répertoriant les exigences à traiter (cf. section 3.1.1) où la distinction est faite entre exigences
fonctionnelles qui seront le point de départ pour définir les fonctionnalités [HUL 04] (cf. chapitre II
section 1) et exigences non fonctionnelles temporelles auxquelles le modèle sera confronté dans la
39
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
phase de vérification (cf. section 3.4). Cette étape est effectuée en parallèle avec la définition des
Hypothèse de modélisation (étape 1.1.2 de la Fig.11, cf. section 3.1.2). Ensuite, la phase de
spécification des exigences (étape 1.1.3 de la Fig.11) permet de procéder au raffinement des
exigences pour obtenir des exigences précises et bien formulées en utilisant le diagramme
d’exigences de SysML (cf. section 3.1.3). Après avoir traité les exigences, on peut spécifier les
exigences fonctionnelles dans la phase d’analyse du modèle à concevoir.
Nous considérons que la phase d’expression des besoins (partie 1.1.0 de la Fig.11) a déjà été
effectuée. L’utilisateur de la méthode, conjointement avec le client, a en premier lieu levé les
ambiguïtés, les manques et les incohérences du cahier des charges.
Le Tab.4 correspond à la base de données qui sera remplie durant cette étape; une exigence
sera définie dans la base de données par :
• Un identifiant (champ Requirement ID) qui représente le numéro d’exigence,
hiérarchisé en fonction du degré de raffinement de l’exigence (par exemple l’exigence
200 est d’un niveau plus abstrait que l’exigence 211 qui est raffinée à partir de
l’exigence 210 elle-même découlant de l’exigence 200).
• Du texte (champ Text) décrivant de manière informelle l’exigence à traiter.
• Un niveau d’objectif (champs Level of Goal). Ceci correspond à la distinction entre
niveau utilisateur et technique. On considère dans un premier temps les exigences du
client (équivalent à la branche fonctionnelle de la méthode 2TUP présenté dans le
40
Chapitre III. Proposition d’une méthodologie
chapitre II section 1.2.2) à partir du cahier des charges. Dans un second temps, les
exigences du client étant répertoriées, le recueil des exigences techniques (provenant
des l’équipe de conception) pourra être formulé. Ceci découle en effet des exigences
clients qui vont piloter un choix précis d’architecture et de mécanismes à mettre en
œuvre.
• Le type d’exigence (champ Kind) qui distingue une exigence fonctionnelle d’une
exigence non-fonctionnelle.
• Un domaine d’hypothèses (champ Hypothesis Domain) qui correspond au
positionnement de l’exigence par rapport aux hypothèses de modélisation présentées en
3.1.2 et dont l’étape correspondante est effectuée parallèlement à cette étape (cf. DP de
la Fig.11 section 3.1).
Requirement ID Requirement Name Requirement Text Level of Goal Kind Hypothesis Domain
1 0 0 First Requirement
2 0 0 Second Requirement Informal text of Requirement User Goal or Functionnal or Intangible or
2 1 0 Refined Requirement Technical Goal Non-Functionnal Released
2 1 1 Refined Requirement
Tab.4. Base de données répertoriant les exigences à traiter dans la phase de recueil d’exigences
Ensuite, pour faciliter la construction de la base de données, les exigences peuvent être
formulées selon des patterns d’exigence définis en [HUL 04].
• Pour les exigences fonctionnelles, le pattern est du type suivant :
The <stakeholder type> (shall or must) be able to <capability>
où stakeholder type représente l’objet concerné par l’exigence, les verbes shall/ must
représentent le degré de criticité de l’exigence (haut pour l’emploi de must et bas pour
l’emploi de shall) et capability présente la fonctionnalité à construire.
• Pour les exigences non fonctionnelles temporelle, le pattern est le suivant :
The <stakeholder type> (shall or must) <function> (within, after, in, every or between)
<performances> <units> of <events>
où stakeholder type représente le module concerné par l’exigence, les verbes shall/
must représentent le degré de criticité de l’exigence (haut pour l’emploi de must et bas
pour l’emploi de shall), function présente la fonctionnalité considérée dans l’exigence ;
les prépositions within/ after/ in/ every/ between seront équivalents respectivement aux
types d’exigences temporelles à vérifier Promptness/ Minimal Delay/ Punctuality/
Periodicity/ Interval Delay [ALU 93] (Cf. chapitre II section 1), performance et units
correspondent à la (aux) valeur(s) temporelle(s) de l’exigence et à l’unité temporelle
employée et event correspond à l’(aux) événement(s) déclenchant l’exigence, que nous
appellerons par la suite point(s) d’observation.
41
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
• La liste des acteurs concernés (champ Concerned Actors) définit les acteurs4 impliqués
par l’exigence.
• Le type d’exigence temporelle (champ Kind of Temporal Requirement) formalise
l’exigence selon la classification de [ALU 93] (cf. chapitre II section 1.).
• Les cas d’utilisation (champ Use Case) qui correspondent à l’exigence non-
fonctionnelle.
Requirement ID ,,, Risk Level Concerned Actors Kind of Temporal Requirement Use Case
1 0 0 ,,, Promptness
2 0 0 ,,, High or List of Minimal Delay List of
2 1 0 ,,, Low Concerned Actors Punctuality corresponding
2 1 1 ,,, Periodicity use cases
2 1 2 ,,, Interval Delay
Tab.5. Base de données répertoriant les exigences enrichies dans la phase de spécification d’exigences
Développé pour satisfaire les exigences et sous la contrainte des hypothèses, le modèle du
système comprend la description du système proprement dit et de l’environnement.
Nous supposons ici que la description du seul système ne permet pas de construire un modèle
exécutable dans un outil de vérification et qu’il est nécessaire de modéliser l’environnement du
système. Cet environnement est formé d’un ou plusieurs « aléas ». Par exemple, dans le cadre d’une
modélisation de couche de protocole, le médium sous-jacent à celle-ci est considéré comme un
ensemble d’aléas dans la mesure où l’on peut démarrer la vérification avec un médium parfait pour
intégrer ensuite les pertes, délais de transmissions et autres aléas qu’un tel médium peut introduire.
Sur la base des définitions précédentes, nous menons de front la construction d’une base de
données d’exigences et la définition des hypothèses. Chaque hypothèse entraîne son lot de
simplifications dans le modèle. Lorsqu’il s’agit d’hypothèses intangibles, l’on sait que les
simplifications correspondantes s’appliqueront à toutes les versions du modèle qui pourront être
élaborées. Par essence, les hypothèses appelées à être levées seront la base d’une construction
incrémentale du modèle et leur granularité aura une incidence directe sur le nombre d’incréments de
construction/vérification du modèle.
4
Dans le sens UML, c'est-à-dire extérieurs au système.
42
Chapitre III. Proposition d’une méthodologie
<<formal_requirement>>
<<requirement>>
Formal_Requirement
Informal_Requirement
id = “211”
id = “211” Formal specification=
text=“ … ” (logic or visual language)
kind=“non-functional” <<derive>> kind=“non-functional”
criticality = high criticality = high <<satisfy>>
<<requirement>>
<<verify>>
Function
id = “210”
text=” … “
<<test case>> kind=“functional”
System with Verification techniques criticality = high
5
Le stéréotype « formal_requirement » est une extension de SysML. Le méta-modèle introduisant ce stéréotype est
présenté dans le chapitre IV section 2.1.
43
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
diagramme d’activités étendu de l’étape d’analyse complet. Il est composé de trois sous-activités qui
sont : la description de l’environnement, la construction des fonctionnalités et la définition des
scénarii décrivant dans un premier temps chaque fonctionnalité individuellement. Par la suite, ces
scénarii élémentaires seront structurés dans des scénarii de plus haut-niveaux permettant de définir
des scénarii d’utilisation du système incluant plusieurs fonctionnalités.
Dans un premier temps, il faut définir le périmètre du système et séparer celui-ci de ses
utilisateurs et de son environnement. La base de données construite dans l’étape 1.1.2 (cf. § 3.1.1) sert
de point de départ à la définition des acteurs qui rentrent en jeux dans les exigences fonctionnelles.
Les acteurs extérieurs au système sont répartis en deux catégories : les acteurs qui utilisent le système
et l’environnement (matériel/logiciel) sur lequel repose le système. La seconde étape correspond à la
définition du périmètre du système.
(1.2.2) Fonctionnalités
Répertorier et hiérarchiser les exigences fonctionnelles
(N_UReq) et N=0
Diagramme
de cas
d’utilisation
Associer fonctionnalités avec acteurs et environnements
(1.2.3.) Scenario
Diagramme
d’exigences
44
Chapitre III. Proposition d’une méthodologie
Les fonctionnalités du système qui décrivent l’aspect opérationnel du système sont ensuite
exprimées. Comme mentionné dans [HUL 04] [ROQ 04], les exigences fonctionnelles du système
sont équivalentes aux fonctionnalités du système et donc en termes UML aux cas d’utilisation. Ceux-
ci peuvent être reliés entre eux pour produire des inclusions ou des extensions entre fonctionnalités.
Les stéréotypes de relation de dépendance entre cas d’utilisation sont respectivement « include » et
« extend ». Les cas d’utilisation peuvent aussi se spécialiser et se généraliser par des relations
d’héritage. Ces différentes fonctionnalités sont ensuite associées aux acteurs adéquats. Le diagramme
de cas d’utilisation s’enrichit, comme le montre la flèche en pointillé sortant de l’activité Associer
fonctionnalités avec acteur et environnement sur la Fig.13).
Les fonctionnalités du système ayant été définies (activité (1.2.2) dans un diagramme de cas
d’utilisation, nous passons à l’étape de définition des scénarii. Chaque fonctionnalité est, dans un
premier temps, décrite par un scénario élémentaire où l’on fait intervenir les différentes entités et
acteurs concernés par cette fonctionnalité (activité 1.2.3.1). Ceci est fait en construisant un
diagramme de séquences. On peut alors relier les fonctionnalités aux exigences non-fonctionnelles
produites en section 3.1.1, en insérant des points d’observations présentés dans la section 3.1.1 de ce
chapitre (étape Insérer points d’observations de la Fig.13). Ces points d’observations correspondent
aux événements définissant l’exigence (cf. § 3.1.1) et leur placement est un point très délicat. En
effet, si ces points ne sont pas correctement placés alors l’exigence ne sera pas correctement vérifiée.
Le placement correct des points d’observation fait l’objet de la section 3 du chapitre V.
Une fois construits, les scénarii élémentaires sont structurés par des scénarii de plus haut
niveau. Ces derniers sont composés de fonctionnalités élémentaires incluses dans la fonctionnalité
décrite par un diagramme global d’interaction (activité 1.2.3.2.).
45
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
A partir de ces informations, une ébauche de modèle peut être construite du point de vue
architectural (en représentant les interactions définies dans le diagramme de séquences entre objets du
système, les acteurs et l’environnement) et comportemental (déduits de la description des scénarii
sous forme de diagrammes de séquences et de diagrammes globaux d’interactions).
3.3. Conception
Cette activité prépare l’implantation pour structurer le système en le décomposant en sous-
systèmes qui correspondent aux différentes entités du système et en définissant le comportement
interne de chaque classe. Faisant suite à l’analyse, la conception est décomposée en deux étapes
successives (cf. Fig.15).
Diagramme global
d’interaction Construire ou enrichir activité du
module
46
Chapitre III. Proposition d’une méthodologie
Ensuite, le comportement interne de chaque classe est construit avec un diagramme d’activités
(activité 2.3.2 de la Fig.15), à partir des scénarii définis dans l’analyse (dans un premier temps les
scénarii élémentaires décrits dans les diagrammes de séquences des fonctionnalités puis les scénarii
de plus haut niveau définis dans les diagrammes globaux d’interaction). Pour les classes qui
interviennent dans une exigence temporelle, il faut ajouter des points d’observations, décrits dans la
section précédente, dans le diagramme d’activités en respectant le placement de ces points décrits
dans des diagrammes d’analyse (diagrammes de séquences et diagrammes globaux d’interactions).
Début du processus
Fin du processus
47
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Diagramme de classes
+
Diagramme d’activités
=
Modèle formel (1.4.0) Générer le graphe correspondant Graphe
Diagramme
d’exigences
(1.4.2) Confronter le modèle formel aux
spécifications formelle des exigences
non-fonctionnelles temporelles Matrice de traçabilité
Retour en phase de conception
(1.3)
[Modèle incomplet] [Non satisfaction des exigences]
[Sinon]
Nous nous plaçons ensuite dans l’hypothèse favorable où le graphe d’accessibilité est
construit6 dans un temps acceptable. Il est possible d’exploiter ce graphe en utilisant différentes
techniques de vérification ; soit la vérification par contrôle de modèle (model checking), soit la
construction d’observateurs dédiés à la vérification des exigences. Ces techniques sont décrites plus
amplement dans le chapitre V section 2. On peut alors envisager la vérification des exigences en deux
étapes successives :
• Dans un premier temps, la vérification est envisagée sur l’aspect fonctionnel du
système (activité Vérifier l’aspect fonctionnel du modèle de la Fig.17) à savoir
l’absence de blocage (« deadlock »), l’absence de fonctionnement cyclique infini
(« livelock »), la possibilité de revenir à l’état initial, ou encore les équivalences entre
les diagrammes d’analyse et de conception. La non-vérification de l’aspect fonctionnel
6
Nous nous plaçons dans l’hypothèse ou la vérification s’effectue sur le graphe d’accessibilité complet. Pour l’utilisation
de model-checker à la volée [CLA 99] il suffit de commencer le processus de développement à partir de l’étape 1.4.1.
48
Chapitre III. Proposition d’une méthodologie
La vérification du modèle relève d’un processus incrémental qui démarre en traitant pas à pas
les cas d’utilisation. On se limite dans la première itération à une situation nominale où
l’environnement est supposé parfait. Si le modèle est incomplet, il devra être enrichi au niveau de
l’analyse (par raffinement des cas d’utilisation). Notre approche s’inscrit dans le contexte d’une
modélisation AGILE (cf. chapitre II. section 2.1). Si le modèle est complet et validé, l’itération est
finie. Une présentation au client est faite alors pour lui montrer le modèle et lui rendre compte de la
vérification des exigences dans un mode de fonctionnement sans aléa (cf. section 3.1.2). On rend
ensuite l’environnement plus réaliste en levant les hypothèses simplificatrices et en introduisant pas à
pas des fonctionnements dégradés, sans omettre des tests de non régression (par comparaison entre le
modèle de l’itération n-1 et le modèle de l’itération n) vis-à-vis du modèle qui fonctionnait
correctement au préalable et on recommence une itération si les exigences sont satisfaites. Toutes ces
alternatives sont décrites dans la Fig.17 par les différents choix situés après les étapes 1.4.1 et 1.4.2.
49
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
minimisation (en l’occurrence des éléments communs aux deux modèles). Il résulte en
sortie des automates quotients, qui sont ensuite comparés par le biais d’une
bisimulation [MIL 89]. Si les deux automates quotients sont équivalents alors le
modèle de conception correspond bien au modèle d’analyse : les exigences
fonctionnelles définies dans la phase d’analyse correspondent au modèle de conception.
• La seconde étape correspond aux contributions présentées dans le chapitre V de ce
mémoire. Les exigences non-fonctionnelles temporelles sont vérifiées dans le modèle
de conception à l’aide d’observateurs déduits à partir de l’étape de spécification des
exigences (cf. chapitre IV). Le concept d’observateurs et la vérification formelle des
observateurs automatiquement générés à partir de l’étape de spécification des exigences
sont expliqués en détail dans le chapitre V. Le résultat de la minimisation, est un
automate quotient dans lequel nous pouvons – entre autres informations – rechercher
les étiquettes de violation d’exigences, associées aux exigences temporelles.
L’introduction d’étiquettes de violation d’exigences dans les automates quotients est
liée au pilotage de la vérification par les observateurs. Ceci conduit à la production
d’une matrice de traçabilité (cf. Fig.18) contenant les résultats de la vérification
formelle guidée par les observateurs, en l’occurrence la présence ou non de l’étiquette
de violation de l’exigence qui conduira à la présence respective de KO ou OK dans la
colonne satisfiability. La non-satisfaction de ces exigences produira donc un retour
dans la phase d’analyse comme l’indique la Fig.17. Si celles-ci sont satisfaites alors
nous passons à une nouvelle itération en prenant en compte de nouvelles
fonctionnalités ou de nouvelles dégradations de l’environnement.
50
Chapitre III. Proposition d’une méthodologie
E 4. On distingue deux types d’exigences temporelles liée à la qualité de service (QoS) dans
les systèmes temps réel [STE 93] sur lesquelles nous pouvons appliquer les différentes classes
d’exigences temporelles (promptness, minimal delay, punctuality, periodicity, interval delay)
définies dans le chapitre II section 1. Nous identifions alors :
E 4.1. La variation de délai entre la réception de deux paquets (Jitter) ; ceci correspond à
l’intervalle temporel de réception de deux paquets par une même machine de protocole.
E 4.2. Le délai de bout en bout pour la réception d’un paquet (End to end delay) ; ceci est
équivalent au délai de transmission d’un paquet entre deux machines de protocoles.
HI 1. Une équation faisant intervenir des flottants doit être discrétisée en fonction des modes
de fonctionnement déduits de l’équation.
51
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
HL 1. Le médium est capable de transmettre des données de taille arbitraire. Ce qui veut dire
que l’on ne considère pas la segmentation de données.
HL 2. Le médium est considéré comme fiable (aucune perte, aucune duplication, pas de
déséquencement).
HL 3. Si le médium est considéré comme fiable, le temps de transmission peut être assimilé à
un délai (ou un intervalle temporel de très faible latence).
HL 4. Si le médium est considéré comme non-fiable, trois aléas seront à considérer durant
les itérations :
HL 4.1. Le déni de service.
HL 4.2. La duplication.
HL 4.3. Le déséquencement.
Les itérations successives pour la construction du modèle respecteront le cycle décrit en [COU
92] (voir chapitre II section 5). La conception du protocole est caractérisée par les étapes suivantes :
• La première étape stipule que les propriétés HL 1 et HL 2 doivent être satisfaites par le
médium qui sera donc vu comme fiable et sans segmentation de données. Les temps de
transmission sont modélisés dans le médium.
52
Chapitre III. Proposition d’une méthodologie
A 1. Le périmètre d’un protocole est composé d’une abstraction du service qui utilise les
services du protocole et d’un médium qui est utilisé par le protocole à concevoir.
A 3. Un protocole en mode connecté est défini au moins par trois cas d’utilisation :
l’établissement de connexion, le transfert de données et la libération de connexion [EXP 04].
La Fig.19 présente le diagramme de cas d’utilisation générique pour les différents modes de
protocole.
53
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Oriented_Connection_Protocol_Layer
Non_
Oriented_Connection_Protocol_Layer Connection_Set_Up
Data_Transfer
Data_Transfer
<<actor>>
<<actor>>
: User_Application : User_Application
Connection_Release
(a (b
Fig.19. Diagrammes de cas d’utilisation générique pour un protocole en mode connecté et non-connecté
Après avoir défini les différents cas d’utilisation (phases et primitives de services) du
protocole, on peut donc définir les scénarii de fonctionnement des phases du protocole en construisant
des diagrammes de séquences et des diagrammes globaux d’interaction. En s’inspirant de la
méthodologie Estelle* [COU 91], nous spécifions le protocole (N) en utilisant les deux premiers
niveaux d’abstraction :
• La spécification abstraite du service (N), ayant pour objet de représenter
l’ordonnancement temporel des primitives de services, telles qu’elles sont visibles par
les utilisateurs de la couche (N). Ceci correspond à la première étape de la Fig.20.
• La spécification abstraite du protocole (N), ayant pour objet de raffiner la spécification
précédente en introduisant les fonctionnalités des entités de protocoles de la couche
(N), ainsi que le mappage des (N) PDUs échangés entre les entités sur les primitives de
services de la couche (N-1). Cette phase correspond à la seconde étape de la Fig.20.
<<actor>>
: Protocol_Entity_A : Protocol_Entity_B
: User_Application
<<actor>> <<actor>>
: Protocol_Entity_A : Protocol_Entity_B
: User_Application : Medium
N_Service_Primitive("SDU")
N_1_Service_Primitive("PDU")
N_1_Service_Primitive("PDU")
N_1_Service_Primitive("PDU")
N_1_Service_Primitive("PDU")
54
Chapitre III. Proposition d’une méthodologie
Fig.22. Placement des points d’observation dans un DS pour vérifier une exigence de QoS de « jitter »
L’exigence de QoS de « end to end delay » d’un service N correspond au délai de bout en bout
de transmission d’un paquet sur le réseau entre deux applications utilisant le service N. La Fig.23
montre le placement des points d’observation pour pouvoir vérifier ce type d’exigence (en ayant
préalablement spécifié celle-ci par un diagramme de description d’exigences temporelle montré dans
55
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
le chapitre IV), dans un diagramme de séquence TURTLE. Les points d’observation (PO_Start et
PO_End) sont placés de part et d’autre dans les classes des applications utilisant le service N
respectivement émettrice et réceptrice du message.
Fig.23. Placement des points d’observation dans un DS pour vérifier une exigence de QoS de « end to end delay »
A partir de la définition des différentes phases du protocole, des primitives de services, des
PDU échangées entre entités de protocole et de leur intégration dans les primitives du service sous-
jacent, une ébauche de modèle peut alors être construite à partir du pattern à trois couches défini dans
le chapitre II section 5. Nous passons donc à la phase de conception.
4.2. Les règles liées à la phase de conception
La première étape consiste à définir l’architecture du protocole en construisant un diagramme
de classes. Pour respecter la règle C 1, ce diagramme repose sur le pattern à trois couches défini dans
le chapitre II. Ce pattern est enrichi pour prendre en compte règles C 2 et C 3.
Comme [GOT 02], qui définit un protocole de haut niveau par un ensemble de micro-
protocoles, nous souhaitons représenter l’application comme un scénario appelant des classes de
fonctionnalités assimilable aux micro-protocoles définis en [GOT 02]. Il arrive très souvent qu’un
même utilisateur doive remplir différents rôles dans une session et appeler différentes fonctions. Nous
avons représenté l’abstraction de l’application de la manière suivante :
• Séquenceur de scenarii : les utilisateurs du service sont décrits de la manière la plus
abstraite possible et dans tous les cas en préjugeant le moins possible d’une application
particulière. C’est dans ce niveau, que sont spécifiés dans le diagramme d’activités les
scénarii incluant toutes les fonctionnalités décrites par les diagrammes globaux
d’interactions. Ces fonctionnalités apparaissent dans les scénarii via des appels de
fonctionnalités.
• Appels de fonctionnalités : on représente chaque appel de fonctionnalité par une classe.
Le niveau au-dessus (Séquenceur de scénarii) invoque les différentes classes
fonctionnalités pour que celles-ci puissent être exécutées.
• Rôles correspondants aux scénarii : à chaque fonctionnalité correspondent des rôles
d’utilisateurs différents. Les objets correspondant aux rôles d’utilisateurs sont ensuite
56
Chapitre III. Proposition d’une méthodologie
Séquenceur de scénarii
Fonctionnalité Fonctionnalité
ou Service A ou Service B
C 3. Le modèle du service sous jacent ou médium doit pouvoir prendre en compte les aléas
définis dans la section 4.1.2. Pour cela il doit intégrer des modules d’Aléas (cf. Fig.25).
Comme [GIN 05], qui définit n modules (appelés impairements en [GIN 05]) pour représenter
n routeurs dans les simulations avec leurs caractéristiques propres, nous souhaitons modéliser les
différents Aléas par différents modules d’Aléas pour caractériser le médium et les dégradations qui lui
sont associées. Par exemple, pour modéliser un médium de type non fiable, on représente quatre
modules d’Aléas : un module de transmission prenant en compte les délais et les latences de
transmission, un module de pertes, un module de duplication et un module de déséquencement. Ces
modules (correspondant aux hypothèses appelées à être levées en section 4.1.2) sont ajoutés au fur et
à mesure des itérations. Ainsi les différents Aléas sont représentés et vérifiés indépendamment dans
un premier temps puis ajoutés dans un second temps aux précédent Aleas : ceci garantit donc les tests
de non-régression vis-à-vis du modèle considéré dans l’itération précédente. La Fig.25 décrit la
manière de brancher ces différents modules d’Aléas (ou impairements) dans le modèle du service
sous-jacent.
Vers les entités du protocole correspondantes
57
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Le comportement des entités de protocoles peut alors être spécifié par le concepteur. Le
comportement de chaque module est donc construit, à partir des scénarii définis dans l’analyse (dans
un premier temps les scénarii élémentaires décrit dans les diagrammes de séquences des
fonctionnalités puis les scénarii de plus haut niveau définis dans les diagrammes globaux
d’interaction).
Le processus de vérification ne diffère pas de celui présenté en section 3.4. Les itérations sont
ici levées en fonction de l’insertion des différents aléas (cf. section 4.1.2). Il faut noter que l’insertion
de l’aléa de déséquencement dans le modèle est très délicat ; en effet celui-ci augmente la
combinatoire de l’entrelacement des états de façon significative. Cela peut être à l’origine du
phénomène d’explosion combinatoire qui conduit à la non-construction du graphe d’accessibilité.
C’est dans ce sens que seules les dernières itérations comportent l’Aléas de déséquencement.
L’abstraction de l’application, comme définie dans la règle C 2, est scindée en trois niveaux :
le séquenceur de scénarii dont le diagramme d’activités sera conforme au diagramme global
d’interactions, les modules d’appels de fonctionnalités qui exécuteront la fonctionnalité
correspondante et les rôles correspondant aux fonctionnalités qui sont attribués aux entités de
protocole durant l’exécution d’une fonctionnalité. C’est dans cette couche et plus précisément dans la
sous-couche d’appel de fonctionnalités que les observateurs vont se greffer au modèle. Ceci permet
de définir les points d’observations facilement et directement au niveau des appels de fonctionnalités.
Notons que toutes les actions des modules d’appels de fonctionnalités et de rôles correspondant aux
services doivent être exécutées de manière atomique (c'est-à-dire instantané), ces modules ne devant
pas influer sur le modèle.
Enfin le modèle du médium doit être conforme à la règle C 3. Il est donc constitué d’interfaces
(qui représentent, par exemple pour un protocole de niveau transport, les contraintes liées à la
segmentation des données) et de modules d’Aléas qui sont distingués eux-mêmes par un module
temporel qui représente les temps de transmission (dans un premier temps le modèle sera un délai
puis s’affinera durant les itérations suivantes pour modéliser le type de service employé par le
médium (cf. section 4.1.2).
58
Chapitre III. Proposition d’une méthodologie
Abstraction de
l’application
Séquenceur de Scénarii
Appels de Fonctionnalités
Dispositif Dispositif
d’observation d’observation
Rôles correspondant aux services
Entités de
protocole à
vérifier
Modèle du
Interfaces service sous-
jacent
59
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Début du processus
Fin du processus
Fig.27. Placement des points d’observations dans la classe d’appel de fonctionnalité Service_A
Pour une exigence temporelle de type jitter pour un service N, le placement des points
d’observations s’effectue conformément à la Fig.22, c’est dire sur l’objet concerné par l’exigence à
savoir la classe User_Application_Role qui demande le service N. La Fig.28 montre le placement de
ces points d’observations dans le diagramme de classes et dans le diagramme d’activités de la classe
concernée. Dans ce dernier, les points d’observation (PO_Start et PO_End) sont placés
respectivement après chaque réception de message.
Fig.28. Placement des points d’observations pour vérifier une exigence de QoS de « jitter »
Pour une exigence temporelle de type end to end delay pour un service N, le placement des
points d’observations s’effectue conformément à la Fig.23, c’est dire sur les objets concernés par
l’exigence c'est-à-dire les classes User_Application_Role_Sender envoyant le paquet et
User_Application_Role_Receiver recevant le paquet. La Fig.29 montre le placement de ces points
d’observations dans le diagramme de classes et dans les diagrammes d’activités des classes
60
Chapitre III. Proposition d’une méthodologie
concernées. Dans ce dernier, les points d’observation (PO_Start et PO_End) sont placés
respectivement après chaque réception de message.
Fig.29. Placement des points d’observations dans les classes applications pour vérifier une exigence de QoS de « end to
end delay »
Ensuite, il faut construire les Aléas définis dans le médium à partir de la définition des
hypothèses appelées à être levées (cf. section 4.1.2). Très souvent, un protocole de type Transport
dépend d’un service sous-jacent de type non-connecté ; c’est le cas du protocole réseaux IP (Internet
Protocol).. Il faut donc pouvoir modéliser ce réseau par des modules d’aléas (impairements [GIN 05])
comme stipulé par la règle C 3. En ajoutant la règle HL 4 il va falloir considérer trois types d’Aléas :
le déni de service (DoS), la duplication et le déséquencement. La Fig.31 montre les diagrammes
d’activités des trois modules d’Aléas cités précédemment ; en dessous des diagrammes d’activités
figurent les graphes d’accessibilité issus du modèle présenté dans la Fig.30. Ce modèle correspond à
l’envoi successif borné7 de deux messages par l’objet A ayant pour paramètre un numéro de séquence
et reçus par B via le module d’Aléas correspondant présenté dans la Fig.31.
7
Les modules d’Aleas présentés dans cette section, sont définis à partir de l’hypothèse de l’envoi d’un nombre de
messages borné ; dans le cas contraire (envoi infini de messages) ces modules sont « infinis » et provoquent le phénomène
d’explosion combinatoire.
61
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Modules
présentés
dans la
Fig.31
Le module d’aléa de pertes (DoS) correspond à la non émission d’un message vers la classe B.
Ceci est indiqué par le choix non-déterministe entre l’émission du message activité Receive !Seqnum
et l’envoi du message interne Lost. Comme le montre le graphe d’accessibilité correspondant, chaque
envoi de message peut conduire soit à l’émission du message, soit à la perte du message représenté
par l’étiquette Lost.
Enfin le module d’aléa de déséquencement est moins trivial que ses prédécesseurs. Il
correspond à la réception du message provenant de A (Send ?Seqnum) et aux tâches effectuées en
parallèle, comme le montre l’opérateur de parallélisme, entre la réception et l’envoi du message. Le
graphe d’accessibilité contient plusieurs chemins : d’une part, les deux messages peuvent être
envoyés et reçus séquentiellement (chemin 0-1-3-5-7) ; d’autre part, les deux messages sont reçus
consécutivement dans le médium puis envoyés vers B soit dans l’ordre (chemin 0-1-2-5-7) soit dans
le désordre (chemin 0-1-2-4-6).
62
Chapitre III. Proposition d’une méthodologie
Fig.31. Diagrammes d’activités et graphes d’accessibilité correspondant aux Aléas liés à un service non-fiable
5. Conclusion
La Fig.32 fait une synthèse rapide de la méthodologie instanciée dans le profil TURTLE
présentée dans ce chapitre. Les contributions, par rapport à la méthodologie présentée dans [APV 06]
(restreinte ici aux phases d’analyse, conception et vérification8), concernent l’ajout de la phase de
traitement des exigences et de la traçabilité des exigences non-fonctionnelles temporelles termes de
vérification dans le cycle méthodologique TURTLE de conception et vérification de systèmes temps
réel et protocoles.
8
Les phases de déploiement et de codage sont présentées dans [APV 06] mais ne sont pas traitées dans ce mémoire.
63
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Requirement ID
1 0 0
,,,
,,,
Risk Level Concerned Actors Kind of Temporal Requirement
Promptness
Use Case Méthodologie présentée dans ce chapitre
2
2
0
1
0
0
,,,
,,,
High or
Low
List of
Concerned Actors
Minimal Delay
Punctuality
List of
corresponding
Base de données
2 1 1 ,,, Periodicity use cases
2 1 2 ,,, Interval Delay
Exigences non-
fonctionnelles Diagramme Traitement des
temporelles : d’exigences
TRDD exigences
Contributions présentées
dans le chapitre IV
Exigences
Génération
Insertion des fonctionnelles : Analyse
automatique Uses Cases et
points
d’observateur Scenarii
d’observations
TURTLE
Observateur Insertion Intermediate Architecture et Conception
Génération comportement
Format
(TIF)
Matrice de Traduction
traçabilité
Spécification
RTL RT-LOTOS Vérification
Analyse
d’accessibilité Graphe
guidée par les d’accessibilité
observateurs
Contributions présentées
dans le chapitre V Méthodologie présentée dans [APV 06]
64
Chapitre IV. Langage de description d’exigences non-
fonctionnelles temporelles
L’approche défendue dans ce chapitre privilégie donc les langages graphiques. Elle consiste à
faire correspondre à chaque exigence temporelle définie dans un diagramme d’exigence SysML, un
chronogramme appelé « diagramme de description d’exigence temporelle » ou TRDD (Timing
Requirement Description Diagram). Ce TRDD décrit formellement une exigence temporelle
présentant une occurrence de début et de fin afin de mesurer leur distance temporelle et permet de
tracer ce type d’exigence au niveau de la vérification formelle (chapitre V).
Ce chapitre est structuré de la manière suivante. La section 1 présente un état de l’art des
travaux dédiés aux langages de description formelle d’exigences temporelles. La section 2 introduit
les diagrammes utilisés en TURTLE pour spécifier les exigences non-fonctionnelles temporelles. Il
s’agit des diagrammes d’exigences SysML d’une part et des diagrammes de description d’exigences
temporelles (TRDD) d’autre part. La section 3 montre les extensions proposées dans les diagrammes
d’exigences TURTLE pour décrire l’aspect compositionnel des exigences temporelles en introduisant
les notions de raffinement et de satisfaction d’exigences fonctionnelles. Enfin la section 4 conclut ce
chapitre.
La normalisation de SysML par l’OMG, présente une solution pour pouvoir exprimer les
exigences avec une notation proche d’UML. Un diagramme d’exigences SysML permet en effet
d’exprimer des interactions entre exigences en intégrant les notions de raffinement, satisfaction et
dérivation. Nous avons donc opté pour la construction d’un diagramme d’exigences à la SysML pour
représenter les interactions entre exigences.
65
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Néanmoins, SysML manque d’un support méthodologique pour recueillir correctement les
exigences. De même, la pratique des premiers outils disposant de plug-ins SysML (par exemple, TAU
G 2.3.1 [TAU]) montre que les exigences sont décrites de manière totalement informelle et sans lien
automatisé avec les fonctionnalités de simulation de modèles. A contrario, les travaux présentés dans
ce chapitre proposent d’étendre les diagrammes d’exigences SysML en formalisant des exigences
temporelles et de les tracer dans le processus de vérification (cf. chapitre V).
En termes de méthodologie, KAOS (Keep All Objective Satisfied [LAM 06]) fournit un
langage basé sur des formules de logique et sur la construction de méthodes pour une conception
orientée but. L’outil correspondant, Objectiver [OBJ], permet de spécifier des exigences d’une façon
systématique (par construction d’arbre d’exigences) permettant la traçabilité des exigences jusqu’à la
définition des buts du système. L’intérêt de la méthodologie KAOS est de formaliser et de tracer de
nombreux types d’exigences (fonctionnelles et non-fonctionnelles incluant la sécurité (face aux
intrus), la sûreté de fonctionnement, le coût et la performance). Ce chapitre emprunte à KAOS [LAM
06] l’idée de formaliser des exigences temporelles par un processus de raffinement d’exigences basé
sur la construction d’un arbre d’exigences. Les contributions apportées ici au profil TURTLE offrent
une interface graphique pour la spécification formelle d’exigences temporelles (diagramme
d’exigences et TRDD) contrairement à la logique supportée par KAOS (CTL* voir chapitre V section
1).
Avec l’approche orientée scénario, le processus de vérification consiste à faire un lien (notion
de matching [BRA 05]) entre les scénarii et le modèle du système. Ainsi, Timed Use Case Maps
[HAS 06] (voir TUCM dans le Tab.6) décrit les interactions entre cas d’utilisation en définisant le
temps absolu au moyen d’un « master clock » mais aussi le temps relatif (Durée, Temporisateur). En
décrivant les cas d’utilisations individuellement, Context eXtended Use Case Chart [DHA 07] (voir
CxUCC dans le Tab.6) décrit à la fois le contexte de vérification et l’exigence à vérifier en
construisant un diagramme d’observation (diagramme d’activités UML 2.0 étendu). Visual Timed
Events Scenario [BRA 05] (voir VTS dans le Tab.6) représente les interactions entre événements. Un
événement est vu comme une action qui apparaît potentiellement dans le système. VTS inclut les
représentations temporelles d’ordre partiel entre événements et de contraintes temporelles relatives
entre événements. Live Sequence Charts (LSC dans le Tab.6) étend les Messages Sequence Charts
(MSC [ITU 96]) pour décrire les scénarios. LSC permet de faire la distinction entre scénarii possibles
et nécessaires.
Langages visuels basés sur les scenarii
Nom TUCM CxUCC VTS LSC
Référence [HAS 06] [DHA 07] [BRA 05] [DAM 01]
Clocked Timed
Automate de
Langage Formel Transition Langage IF Computation Tree
Bücchi
System Logic
Type de Model Model Checking Model
Observateurs
vérification Checking (UPPAAL/Kronos) Checking
Tab.6. Langages visuels basés sur la description de scenarii
L’approche orientée scénarii, nous parait de trop bas niveau pour décrire les exigences. En
effet, elle implique une « bonne » connaissance du comportement du système. De plus, la
spécification d’exigences doit être effectuée durant la phase d’analyse. Au contraire, la méthodologie
66
Chapitre IV. Langage de description d’exigences non-fonctionnelles temporelles
présentée dans le chapitre précédent opère une distinction entre les scénarii définis dans la phase
d’analyse et la phase de spécification des exigences.
Afin de réduire le fossé entre le recueil des exigences et leur formalisation, les exigences
temporelles peuvent être représentées par un formalisme de type « chronogrammes » (Timing
Diagrams [UML 07]). Les chronogrammes permettent de représenter les exigences temporelles d’une
manière facile à lire. [CHO 05] donne un modèle formel, en formules LTL (Linear Time Logic)
garantissant la sémantique formelle des Timing Diagram UML. Cependant, l’auteur souligne que les
relations d’ordre partiel ne sont pas représentées dans les chronogrammes. L’outil ICOS [FRA 01]
utilise le formalisme RT-STD (Real Time Symbolic Timing Diagram, voir RT-STD dans le Tab.2)
pour spécifier les systèmes « hardware » (System on Chip SoC) en fonctions des entrées/sorties (un
système est vu comme une boîte noire). L’outil ICOS couvre les phases de conception, vérification,
simulation et prototypage. Pour leur part, les Regular Timing Diagrams [AML 99] (voir RTD dans le
Tab.2) étendent les chronogrammes pour représenter les ordres partiels entre diagrammes. Cependant
les langages visuels présentés dans Tab.2, sont utilisés pour spécifier l’aspect « conception du
système » et non les exigences liées à ce système. C’est pourquoi nous avons défini les Timing
Requirement Description Diagram (TRDD) pour exprimer les exigences temporelles présentant une
occurrence de début et de fin afin de mesurer leur distance temporelle d’une manière graphique et
formelle et qui s’intègre dans notre cycle méthodologique.
Langages visuels basés sur les
chronogrammes
Nom RT-STD RTD TRDD
Référence [FRA 01] [AML 06] [FON 06b]
Langage Automate Valeurs RT-LOTOS
Formel de Bücchi symboliques
Type de Model Model Observateurs
vérification Checking Checking
Tab.7. Langages visuels basés sur les chronogrammes
Il faut souligner que les travaux de recherche dans le domaine de la vérification d’exigences
temporelles restent encore ouverts. Par exemple, le projet TopCAseD [TCAD] cherche à convertir les
diagrammes SysML en langages formels supportés par des outils de vérifications [BOD 06]. Par
ailleurs, [JAN 99] définit un langage de modélisation graphique basé sur des canevas d’exigences
(inspiré des définitions de [ALU 93] cités dans le chapitre II). Ces derniers sont traduits en formule
LTL et vérifiés en utilisant le model-checker SPIN [HOL 03]. En [GRA 05], les exigences
temporelles sont exprimées par des machines à états temporisées définissant le « modèle de contexte
et d’exigences ». Le système modélisé et les machines à états des exigences sont traduits dans le
langage IF défini dans le cadre du projet OMEGA et supporté par des outils de vérification [GRA 05].
Les auteurs construisent les diagrammes de contexte (automates temporels) à la main. Dans
l’approche défendue dans ce mémoire, les observateurs (équivalents aux automates de contextes de
[GRA 05]) sont générés automatiquement à partir des diagrammes de spécification d’exigences
(diagrammes d’exigences et diagramme de description d’exigence temporelle) et les résultats de la
vérification des exigences temporelles sont inclus dans une matrice de traçabilité.
67
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
L’exigence informelle est exprimée par du texte. L’exigence formelle temporelle est exprimée
dans le langage TRDD présenté en section 2.2. Dans l’exemple de la Fig.33, le TRDD a pour nom
Process_TRDD.
L’exigence exprimée par un TRDD est vérifiée formellement par un observateur (relation
<<verify>>). Un observateur (stéréotypé par <<TObserver>>) possède un nom, une référence aux
type de diagrammes qui seront pris en compte dans le dispositif de vérification (attribut diagrams) et
un attribut « Violated_Action » qui spécifie l’identificateur utilisé dans le graphe d’accessibilité pour
caractériser (lorsqu’elle existe) la violation d’exigence (Dans notre exemple, l’identificateur est en
question est KO_Process). Le dispositif de vérification des exigences temporelles décrites par un
TRDD est présenté dans le chapitre V.
68
Chapitre IV. Langage de description d’exigences non-fonctionnelles temporelles
TRDD= <P_TRDD>
Violated_Action= «KO_Process»
Un nœud IR, stéréotypé par <<Requirement>>, est défini par un nom (chaîne de caractères),
une description textuelle de l’exigence (chaîne de caractères), un type (fonctionnel, non fonctionnel)
et un niveau de criticité (haut ou bas).
69
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Un nœud FTR, stéréotypé par <<Formal_Requirement>>, est défini par un nom (chaîne de
caractères). Un diagramme de description d’exigence temporelle (TRDD défini en section 3.2), un
type non fonctionnel et un niveau de criticité (haut ou bas). Un TRDD définit une exigence
temporelle quantitative qui est une exigence non fonctionnelle.
Un observateur, stéréotypé par <<TObserver>>, est défini par un label (son nom), le type de
package (le diagramme de composants TURTLE [APV 06] (contenant un diagramme de classes et
une collection de diagrammes d’activités), auquel il sera greffé pour guider la vérification), et un label
de violation d’exigence (Violated_Action). En cas de violation d’exigence, une transition du graphe
d’accessibilité sera étiquetée par ce label. La violation de l’exigence sera ainsi repérable par recherche
sur les étiquettes du graphe (rappelons ici que l’environnement de vérification de TURTLE repose en
autres sur la construction d’un graphe d’accessibilité).
Définition 5 : Observateur
obs = (Nom, Package, Violated_Action)
où
Nom: string
Package: Package_ref où Package_ref fait de référence à un package (Package_ref)
Violated_Action: Gate_ref où Gate_ref fait référence à une porte
9
L’indicatif T désigne TURTLE
70
Chapitre IV. Langage de description d’exigences non-fonctionnelles temporelles
Class diagram1
TRequirement_Diagram package metamod_obs {1/7}
// TURTLE Requirement Diagram Metamodel
<<metaclass,icon,browserNode>> <<stereotype>>
::SysML::Requirement ::metamod_Tnative::TDesign_Package
Name:String
<<stereotype>>
TFormal_Requirement
derives 1 Kind={Non_Functionnal}
Risk={High,Low}
1
<<stereotype>> 1 refers_to
*
TInformal_Requirement
Text: String
Kind={Functionnal,Non_Functionnal}
Risk={High,Low} Package_ref
1
*
verifies
1
<<browserNode,diagramRestrictions>>
TRDD
1
<<stereotype>> Violated_Action
<<brows erNode,diagramRestrictions>>
TObserver 1 VA_ID:String
TRequirement_Diagram *
<<stereotype>>
<<browserNode,diagramRestrictions,metaclass>>
::TTDTestingProfile::TestCase
::SysML::'Requirement diagram'
Les observateurs (classes stéréotypées TObserver) sont des nouveaux stéréotypes issus entre
autres du stéréotype SysML « TestCase » (classe stéréotype ::TTDTestingProfile ::TestCase) qui
correspond à un dispositif de « vérification » de l’exigence. Dans notre cas, la Tclass de l’observateur
est greffée au modèle de conception TIF (cf. chapitre III section 2.2). L’observateur est une
spécialisation de la classe stéréotypée Tclass. Nous considérons donc qu’un observateur vérifie une et
une seule exigence temporelle formelle ; ceci est représenté par la relation d’association étiquetée par
verify liant un « TestCase », ici un observateur, à une exigence [SysML 06] temporelle formelle.
Comme l’indique la définition 5, un observateur est composé :
• D’une action de violation d’exigence (classe Violated_Action) qui caractérise sur le graphe
d’accessibilité la violation d’exigence par la présence de l’étiquette VA_ID (attribut VA_ID).
• D’une référence d’un package de conception (classe Package_Ref) qui se réfère à un package
TURTLE (classe ::metamod_T_native ::TPackage).
71
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
simple et qui s’intègre dans la phase de traitement des exigences de la méthodologie présentée dans le
chapitre III.
Nous avons donc choisi de spécifier ces exigences non-fonctionnelles temporelles par des
Timing Diagrams UML 2.1 [UML 07]. Il s’agit à l’origine de « chronogrammes » qui peuvent être
utilisés en substitut de machines à états pour décrire le comportement interne d’objets. Ici, les Timing
Diagrams [UML 07] sont étendu en TRDD (Timing Requirement Description Diagram) utilisés non
pas pour décrire le comportement d’objets mais pour exprimer graphiquement des exigences
temporelles présentant une occurrence de début et de fin afin de mesurer leur distance temporelle.
2.2.1. Exemple
Pour l’exigence formelle de la Fig.33 « le processus (décrit par les points d’observations pour
la vérification de l’exigence Start_P et End_P) doit s’exécuter avant 10 unités de temps », le TRDD
de la Fig.35 est construit en incluant les points d’observations (première occurrence Start_P marquant
le début de l’exigence et seconde occurrence End_P marquant la fin de l’exigence) qui sont définis
comme des points d’observations (Observation_Points sur la Fig.35) d’une part et les frontières
temporelles de satisfaction et violation d’exigences (respectivement OK et KO) (ligne de vie de
l’exigence) d’autre part. La ligne de vie de l’exigence est elle-même composée d’un élément de début,
d’éléments de description d’exigences et d’un élément de fin.
Start_P End_P
Points d’observations
10
Début Eléments du TRDD Fin
Les TRDD mesurent l’écart temporel entre deux occurrences d’événements qui sont appelés
points d’observations. Ces derniers sont définis dans le TRDD d’une part par l’action présentant le
l’occurrence marquant le début de description d’exigence (Start_Action) et, d’autre part par la
seconde occurrence déclenchant le diagnostic de l’observateur (Capture_Action).
72
Chapitre IV. Langage de description d’exigences non-fonctionnelles temporelles
Définition 6: TRDD
TRDD = (Requirement_Lifeline, Observation_Points)
où
Requirement_Lifeline= <Begin, TRRD_Element, End>
où
TRDD_Elements est un ensemble de TRDD_Element
où TRDD_Element Є {Temporal_Frontier, Requirement_State}
et Requirement_State Є {OK_Part,KO_Part}
Observations_points = <Start_Action, Capture_Action>
Le Tab.8 présente les différents éléments du langage graphique exprimables dans un TRDD.
‘OK_Part’
<Body> ::= ‘T_F’ <Body>
‘KO_Part’
‘OK_Part’
<End> ::= ‘End’
‘KO_Part’
73
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
74
Chapitre IV. Langage de description d’exigences non-fonctionnelles temporelles
<<i con>>
<<metacl ass,browserNode>>
Begin
::TTDMetamodel::LifeLine
Label ="<" 1 <<metacl ass,browserNode>>
::TTDMetamodel::State
Requirement_Lifeline
1
<<i con>>
End 1..N
0..N-1
Label= ">" 1 <<i con>>
<<i con>>
T_F Requirement_State
Label={OK,KO}
Label=">|<"
N:Integer
Date_of_TF:Integer
<<metacl ass>>
::TTDMetamodel::Diagram
1 1
<<icon>> Observation_Points <<i con>>
Start_Action Capture_Action
Name_of_Action:String
Label=" | " Name_of_TObject:String Label="_|_"
Les règles de construction d’un TRDD sont identifiées par le méta-modèle de la Fig.38.
<<icon>> <<icon>>
Begin 1 binds 1 Start_Action
1
syntactically_preceeds
binds <<icon>>
1 Capture_Action
1 1..* {} if(Previous_Requirement_State.Label=="OK")
<<icon>>
Next_Requirement_State.Label=KO;
Requirement_State else Next_Requirement_State.Label=OK;
Label = {OK, KO}
N : Integer
1 switches_the_next
1 1 1
syntactically_preceeds
0..1 1
syntactically_preceeds <<icon>>
0..1 T_F
finishes_TRDD
1 Date_of_TF : Integer
<<icon>>
End
75
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
le chapitre II section 1 à partir de [ALU 93]. Ces exemples sont illustrés par la Fig.39, un TRDD
exprime :
• En a) les exigences contenant une frontière temporelle et qui doivent se terminer/commencer à
T unités de temps. Ces exigences correspondent respectivement aux propriétés de délais
maximum/minimum.
• En b) les exigences contenant deux frontières temporelles et qui doivent être
comprises/exclues dans les intervalles respectifs ]T1 ; T2[ et [T1 ; T2]. Ces exigences
correspondent aux propriétés de délais bornés et de ponctualité (par exemple à date T on aura
T1 = T-1 et T2 = T+1).
• En c) une exigence contenant n frontières temporelles et n+1 états d’exigences (OK ou KO),
où Ch1 et Ch2 représentent les deux possibilités de représentation (OK ou KO), la frontière
temporelle étant décrite par la date Tn. Ces exigences ne sont pas référencées dans la
taxonomie énoncée dans le chapitre II. Ceci montre donc l’originalité du formalisme TRDD.
Son pouvoir d’expression permet d’exprimer d’autres exigences que celles recensées dans la
taxonomie du chapitre II (section 1).
OK KO KO OK
T T
Exigence de type Promptness Exigence de type Minimal Delay
Exigences A2 (b
Capture_Action Capture_Action
Start_Action Start_Action
OK KO OK KO OK KO
T1 T2 T1 T2
Exigence de type Interval Delay Exigence de type Interval Delay
Ch1 Ch2
Tn
Exigences non référencées
Toutes les exigences construites dans le formalisme du TRDD sont de nature périodique
(Periodicity Property). Le processus de vérification, en l’occurrence l’observateur généré à partir du
TRDD, présenté dans le chapitre V, permet de reboucler sur le premier point d’observation dès que le
second point a été franchi ou que l’exigence temporelle n’est pas satisfaite.
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
76
Chapitre IV. Langage de description d’exigences non-fonctionnelles temporelles
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.
77
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.
Relation de composition
Relation de satisfaction
« satisfy » « satisfy »
78
Chapitre IV. Langage de description d’exigences non-fonctionnelles temporelles
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.
79
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
80
Chapitre V. Vérification formelle d’exigences
temporelles sur le modèle de conception
Dans le domaine de la vérification basée sur l’analyse d’accessibilité de modèles formels, les
exigences peuvent être décrites à l’aide de formules de logique ou d’observateurs greffés au modèle.
Notre choix s’est porté sur la vérification d’exigences temporelles guidée par observateur. Réduisant
le coût de l’outillage, cette approche fait seulement appel à des outils d’analyse d’accessibilité. A
contrario, la vérification basée sur les techniques de model-checking demande l’utilisation d’outils
supplémentaires (model-checker).
Ce chapitre est organisé de la manière suivante. La section 1 recense les différentes méthodes
de vérification d’exigences temporelles tout en positionnant notre approche face aux différentes
techniques de vérification formelle. La section 2 présente le processus de vérification d’exigences
temporelles guidée par observateurs proposé pour le profil TURTLE. La section 3 énonce les
hypothèses de fonctionnement de ce processus, caractérise le placement des points d’observations,
élément crucial dans la vérification guidée par les observateurs. Cette même section identifie ce qui
reste à implanter dans l’outil TTool [TTOOL]. Enfin, la section 4 conclut ce chapitre.
10
L’approche de « Theorem proving » n’est pas décrite dans ce mémoire car elle n’appartient pas à cette catégorie.
81
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
On distingue deux grandes familles de techniques de model-checking basées sur deux types
d’algorithmes :
• Les algorithmes locaux qui n’explorent que les parties du système contribuant à la solution,
mais en évaluant toutes les sous-formules de la propriété. Ces techniques reposent sur la
formulation des propriétés en logique temporelle linéaire. L’exemple le plus répandu de cette
logique est LTL (Linear Temporal Logic) [VAR 86] qui est utilisé dans le model-checker SPIN
[HOL 03] supporté par le profil UML PROMELA [MAG 02] (cf. chapitre VI) mais aussi dans
le model-checker de l’outil UPPAAL [UPPA] sur lequel repose les travaux de [JUR 02] (cf.
chapitre VI). Il existe aussi des extensions à LTL. Par exemple, se-LTL [CHA 04] est adapté à
la représentation état/événement (réseaux de Petri temporels par exemple) et est utilisé dans
l’outil TINA [BER 05] correspondant au volet vérification du profil UML MARTE [OMG 07]
(cf. chapitre II).
• Les algorithmes globaux qui évaluent toutes les sous formules sur tous les états du système et
opèrent par récurrence sur la structure syntaxique de la propriété. Ces techniques reposent sur
la formulation des propriétés en logique temporelle arborescente, dont la plus connue est CTL
(Computational Tree Logic) [CLA 86]. Les logiques modales comme le µ-calcul
propositionnel [STI 96] [BRA 06] reposent aussi sur les algorithmes locaux. Des extensions
temporisées de CTL issues des logiques modales prennent en compte l’ordre entre évènements
et leur distance temporelle [CLA 99] comme TCTL (Timed CTL) [ALU 89]. TCTL est utilisé
dans les travaux de [BRA 05] sur la description visuelle de scénarii en formules de logique (cf.
chapitre IV). Ce type de logique ne nécessite pas de construire des observateurs permettant
d’augmenter le pouvoir d’expression des exigences temporelles (nous reviendrons sur ce
problème dans le paragraphe suivant). Cependant la formulation des exigences en logique
modale nécessite une très bonne connaissance dans le domaine et est particulièrement difficile
pour un « non-initié » [ROG 06].
82
Chapitre V. Vérification formelle d’exigences temporelles sur le modèle de conception
« distances temporelles » entre événements [TOU 97] (mis à part les logiques modales [STI 96]
[BRA 06] et extensions temporisés de CTL [ALU 89]). Pour palier ce problème, on en vient à
construire généralement des observateurs temporels dans le système et à vérifier l’ordre entre les
événements à observer et ceux déclenchés par l’observateur. Par exemple, les travaux de [MAL 06]
concernent la vérification d’exigences non-fonctionnelles temporelles dans le profil MARTE [OMG
07] en surchargeant le réseau de Petri de TINA [BER 05] par des places fantômes, qui n’interfèrent
pas sur le comportement du système, pour pouvoir vérifier des exigences temporelles à l’aide de
formules se-LTL [CHA 04].
Enfin, ces méthodes ne permettent pas généralement de réutiliser des spécifications des
exigences (formules de logique) dans les autres phases de validation (simulation, tests). Au contraire,
l’approche guidée par les observateurs réside aussi dans le caractère réutilisable de la spécification
des exigences dans les autres phases de validation. Les objets observateurs, exprimés dans le même
langage que le modèle (définis par exemple en UML), peuvent être prototypés ensuite dans le langage
correspondant à la phase de déploiement/mise en œuvre (notion de portabilité). Ce dernier aspect sera
développé dans les perspectives.
1.2. Vérification guidée par les observateurs
Le concept d’observateur est très largement utilisé dans le processus de validation qu’il
s’agisse de vérification [DHA 07] [GRA 05], simulation [JAR 88] [DOL 03] ou de test (cet aspect
n’est pas traité dans ce mémoire).
Les observateurs sont de bons candidats pour la mesure de performances temporelles mais
aussi pour collecter des informations et produire une analyse statistique. Il est aussi possible d’utiliser
plusieurs observateurs en parallèle.
83
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
La proposition dans [JAR 88] est, à notre connaissance, pionnière dans ce domaine et couvre
les aspects conceptuels jusqu’à l’implémentation. Le principe de stopper le programme par
l’observateur nous a fortement inspiré pour la conception d’observateurs dont l’analyse est intrusive
en interrompant l’exécution du système lorsqu’une exigence temporelle de niveau de criticité haute
est violée. Cependant, aucune méthodologie automatisable n’est proposée en [JAR 88], les
observateurs étant construits à la « main ». Au contraire, l’approche proposée en section 2 présente la
construction d’observateurs telle qu’on peut l’automatiser à partir de la spécification des exigences
exprimées au moyen de diagrammes d’exigences et de TRDD (cf. chapitre IV).
Les programmes doivent être décrits par une algèbre de processus synchrone. La
communication interprocessus est basée sur le concept de diffusion (un émetteur et plusieurs
récepteurs). Elle est non-bloquante pour l’envoi et synchrone sur la réception. Cette communication
asymétrique est nécessaire à l’utilisation d’observateurs qui, connectés au système, sont synchronisés
sur la réception sans changer la description de ce dernier.
[HAL 93] propose un cadre théorique complet pour les observateurs de machines synchrones.
Une exigence est vue comme un ensemble de traces qu’il est difficile d’exprimer à partir de la
formulation des exigences. De surcroît, le temps y est exprimé de manière qualitative. A contrario, les
travaux présentés dans ce mémoire introduisent un langage « simple » pour formuler ces exigences en
représentant le temps de manière quantitative. Notons que dans [HAL 93], les observateurs ne se
limitent pas qu’à l’expression des exigences. Ils prennent aussi en compte la réduction de l’explosion
combinatoire par réduction des comportements de l’environnement à un sous ensemble complet et
cohérent. Au contraire, notre approche consiste plutôt à distinguer les aspects « observations » et
« limitation de l’explosion combinatoire » (cf. chapitre III section 3.1.2).
L’observateur est un sous-système formel décrit pour vérifier des comportements distribués.
Sa conception est indépendante de celle de l’implémentation. Un système est auto-validé si et
seulement si ce dernier est composé d’une spécification formelle du système et d’un modèle formel
de l’observateur. Le langage utilisé pour construire un tel système doit être capable de supporter des
procédures de vérification et d’inclure des mécanismes d’espionnage. Dans [DIA 94], les
84
Chapitre V. Vérification formelle d’exigences temporelles sur le modèle de conception
spécifications du système et de l’observateur sont formulées par des réseaux de Petri [MUR 89],
formalisme qui permet d’exprimer les caractéristiques précédemment citées.
Cette technique permet de surveiller les défaillances de systèmes pendant leur exécution. Cette
approche est orientée test d’implantation. Cependant elle ne garantit pas l’absence d’erreur par le fait
que l’observateur est une duplication du système observé (duplication des erreurs dans les deux
modèles). [DIA 94] établit un ensemble de concepts sur les observateurs en termes d’espionnage et de
contrôle, qui ont inspiré nos travaux au niveau de l’intrusivité des observateurs dans le projet
SAFECAST (cf. chapitre VI).
Les observateurs GOAL fonctionnent sur le principe suivant. Pour une action exécutée dans le
système, l’observateur peut en exécuter plusieurs. Ce principe permet d’assurer à l’observateur une
surveillance sur le système. Les observateurs sont composés au système lors des simulations
aléatoires ou exhaustives.
Les observateurs GOAL sont des automates SDL spécifiques. Ils possèdent une construction
supplémentaire : notion de matching [DOL 03] pour pouvoir être associés aux objets observés. Des
états de succès et/ou de rejet peuvent être déclarés. Suivant la simulation choisie et la présence des
états spéciaux, le verdict peut être interprété de différentes façons :
• Pour une simulation aléatoire, l’observateur peut donner un résultat du type "ok", "nok" ou
« inconclusive » (dans ce dernier cas, l’observateur n’a pas pu diagnostiquer la satisfaction
ou non de l’exigence).
• Pour une simulation exhaustive, la propriété peut être vérifiée ou non. Des outils de
diagnostic, de traces, de surveillance de l’état du système accompagnent ce processus de
vérification.
Les observateurs GOAL sont un exemple réussi de l’intégration d’un processus de vérification
dans un outil industriel [DOL 03]. Le concept de matching nous a inspiré pour définir la notion de
points d’observations (cf. section 2). Cependant [DOL 03] ne propose aucune solution pour la
« rédaction des observateurs ». Au contraire, notre approche repose sur la génération automatique
d’observateurs à partir d’une spécification des exigences temporelles en TRDD (cf. chapitre IV
section 2.2).
85
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Les observateurs sont des classes stéréotypées par « observer » que l’on ajoute au système.
Chacune de ces classes possède une machine à états. Certains de ces états sont stéréotypés par success
ou reject. On distingue deux types d’observations :
• de sûreté, avec des observateurs classiques (analyse d’accessibilité d’états de rejet) ;
• de vivacité, avec des automates de Büchi [VAR 86] (analyse des composantes connexes).
Les travaux de [GRA 05] permettent d’envisager une méthodologie d’exploitation des observateurs
dans un formalisme de haut niveau (tout comme [DHA 07] voir section 1.2.7). Néanmoins ces
travaux, à notre connaissance, ne sont pas encore associés à un dispositif de génération automatisée
d’observateurs.
Les exigences vérifiées dans cette approche concernent les dates d’occurrence des événements
de l’application qui s’expriment sur le modèle par des dates de tirs d’occurrences dans le réseau de
Petri. Dans cette approche on distingue quatre types d’exigences exprimés ensuite sous forme de
patterns de réseaux de Petri temporels :
• Date d’occurrence d’événements.
• Intervalle de temps entre les occurrences successives d’un événement.
• Intervalle de temps entre deux événements causaux.
• Simultanéité d’un ensemble d’événements.
L’approche présentée en [TOU 97] permet d’exprimer des exigences temporelles non-
fonctionnelles quantitatives qui se rapprochent de nos travaux. Ces travaux nous ont fortement inspiré
pour exprimer les notions d’intervalles quantitatifs temporels d’événements. Notre approche ne traite
pas des exigences liées à la simultanéité, mais est exprimée dans un langage graphique de haut niveau
permettant de générer automatiquement des observateurs alors que [TOU 97] les exprime sous forme
d’un motif surchargeant le réseau de Petri représentant le système.
Les modèles des unités manipulées dans le processus de développement, peuvent être
construits, sous la forme d’automates, à partir des données fournies par les phases d’analyse et de
conception du système. Ces modèles intègrent des contextes de preuve abstraites. Ceux-ci modélisent
formellement une exigence (ou une composition d’exigences) de sûreté ou vivacité bornée qui doit
86
Chapitre V. Vérification formelle d’exigences temporelles sur le modèle de conception
être vérifiée pour un modèle de système donné dans un contexte comportemental spécifique. Les
contextes de preuve sont ensuite traduits par transformation en modèles concrets puis en langage IF
par des outils d’analyse formelle. Cette approche est expérimentée sur une implantation des unités de
preuve intégrant une description des contextes de preuve dans un langage nommé CxUCC (cf.
chapitre IV) et exploités par un outil OBP (Observer-Based Prover) mettant en œuvre le langage IF et
une technique de vérification par observateur.
Contrairement aux approches citées dans les paragraphes précédents, cette approche a le
mérite de contenir des éléments méthodologique pour construire correctement les observateurs [ROG
06]. Ces derniers servent également à décrire la notion de contexte simulant l’environnement du
modèle. Tout comme dans notre approche, un lien est fait entre un langage graphique de description
des exigences (CxUCC pour [DHA 07] et TRDD pour notre approche) et génération d’observateurs.
Cependant, deux aspects diffèrent : d’une part, dans notre approche, la notion de contexte est dégagée
des observateurs (cf. chapitre III section 3.1.2) ; d’autre part, la spécification des exigences non-
fonctionnelles temporelles se fait après la définition des fonctionnalités dans [DHA 07] (approche
orientée scénarii). Alors que dans notre approche nous spécifions les exigences avant la construction
d’un diagramme de cas d’utilisation en charge de définir les fonctionnalités. Notons que l’approche
présentée en [DHA 07] et principalement les travaux antérieurs [ROG 06] nous ont servi de référence
pour la définition de la taxonomie des exigences temporelles et des dispositifs d’intégration des
observateurs dans le modèle.
87
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Il est composé, en plus des éléments présentés dans le chapitre IV (cf. définition 5 et Fig.34 section
2.1 du chapitre VI) :
• D’un ensemble d’attributs (classe Attributes_Obs) qui correspondent aux valeurs des
frontières temporelles du TRDD (classe Date_of_FT).
• D’au-moins trois portes de communication (classe stéréotypée « interface » Gate_Obs)
composée de trois types de portes, qui sont :
o Deux portes d’observation (classe Observation_Gates) qui se synchronisent avec les
portes correspondantes aux points d’observations du TRDD.
o Un ensemble de portes de contrôle d’exécution pour arrêter l’exécution du système
(classe Execution_Control) dépendant du niveau de criticité de l’exigence temporelle
formelle, comme le montrent l’association generated_if_risk_is_high et la formule
OCL qui décrit cette association.
88
Chapitre V. Vérification formelle d’exigences temporelles sur le modèle de conception
<<stereotype>> 1
TObserver Violated_Action
TObserver_ID:String 1
::metamod_Tnative::TAttributes
<<interface>>
1 2
<<interface>>
0||Nc
<<browserNode,instancePresentation>> Observation_Gates
<<interface>>
::metamod_Tnative::TActivity_Diagram Execution_Control
signal Capture ()
Nc
signal Start ()
<<stereotype>> generated_if_risk_is_high
TFormal_Requirement 1
{} if(TFormal_Requirement.Risk=="High")
//Number of Tclasses of Observed Model { for (i=0,i>Nc,i++)
Integer Nc; TClass_Diagram = Create_Obs_Relation(TClass_Diagram)}
89
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
•L’interruption de l’exécution des objets observés si une exigence haute est violée ; ceci
concerne donc la modification d’une part du diagramme d’activités de l’observateur (voir
algorithme 4) et d’autre part des comportements des objets observés (voir algorithme 5).
_________________________________________________________________________________
Algorithme 1 Construction du diagramme d’activités d’un observateur
Glossaire: TRDD = tableau d’entiers représentant les éléments de la ligne de vie du TRDD
T_in = tableau d’entiers contenant les valeurs des dates temporelles du TRDD
crit = niveau de criticité de l’exigence (0 = bas et 1 = haut)
nb_TC = nombre de Tclasses du modèle observé
VA = étiquette de violation d’exigence définie dans le diagramme d’exigences représenté par
une chaîne de caractères
label = tableau contenant les éléments de description des exigences temporelles (OK ou KO
sous forme de tableau d’entiers
T_out= tableau contenant les informations temporelles converties en temps absolu
Obs_label = Diagramme d’activités de l’observateur représenté par une chaîne de caractères
La syntaxe et la sémantique du TRDD sont définies par des règles de grammaire et des méta-
modèles (cf. chapitre IV section 2.). Les algorithmes de vérification de la syntaxe et de la sémantique
(respectivement verif_syntax_TRDD et verif_semantic_TRDD) sont présentés en annexe A.
2.3. Traduction d’un TRDD vers le diagramme d’activités de l’observateur
2.3.1. Tables de traductions
Le Tab.9 illustre pour toutes les constructions des descriptions d’exigences, la sémantique
associée par transposition en diagramme d’activités TURTLE [APV 04] (cf. chapitre II section 4.1.2).
90
Chapitre V. Vérification formelle d’exigences temporelles sur le modèle de conception
Soit TRDD la dénomination pour une description d’exigence, T(TRDD) la traduction en diagramme
d’activités correspondant à la traduction de TRDD et τ(TRDD) la traduction textuelle en fonction des
labels définis dans le chapitre II (cf. Tab.2).
Traduction en
diagramme
Label du TRDD Symbole Graphique Traduction textuelle
d’activités de
l’observateur
Begin ;
Begin < TRDD
T(TRDD) τ(TRDD) ;
out
TRDD1 >|< TRDD2 TLO (Tout, Capture,
T_F (Tin) τ(TRDD1), τ(TRDD2)) ;
Tin
T(TRDD2)
T(TRDD1)
OK_Part
TRDD OK T(TRDD) τ(TRDD) ;
T(TRDD) τ(TRDD) ;
KO_Part TRDD KO
Violated_Action ;
T(TRDD) τ(TRDD) ;
End TRDD >
Capture ;
Tab.9. Table de traduction des descriptions d’exigences temporelles TURTLE en diagramme d’activités TURTLE
91
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
<<browserNode,diagramRestrictions>> 1 1
TRDD is_built_upon TAD_Obs
<<icon>> <<icon>>
T_F Begin
1
corresponds_to
corresponds_to
1 0..N-1
1
<<icon>>
<<icon>>
::metamod_Tnative::Time_Limited_Offer
::metamod_Tnative::Start_AD
1
contains_in_a_path
corresponds_to_synchro_action
1 <<interface>>
1 .. *
<<icon>> Violated_Gate
<<icon>>
Capture_Action 1
::metamod_Tnative::Stop_AD
1 1
is_synchronized_with *
corresponds_to
1 * <<icon>>
1
::metamod_Tnative::Connector
is_synchronized_with
::metamod_Tnative::Synchronisation_Action
*
is_synchronized_with
<<interface>>
2 Execution_Control
<<interface>>
Observation_Gates <<icon>> <<icon>>
is_associated_with_Capture is_associated_with_Start
::metamod_Tnative::Junction ::metamod_Tnative::Loop
1
1
signal Start ()
signal Capture () 1
<<icon>> <<icon>>
Start_Action ::metamod_Tnative::Choice
92
Chapitre V. Vérification formelle d’exigences temporelles sur le modèle de conception
Class diagram7
TAD_Obs_Rules // TURTLE Observer Activity Diagram Building Rules package metamod_obs {7/7}
(the Junction symbol connects all Classes stereotyped by <<icon>>)
<<icon>>
::metamod_Tnative::Start_AD
1
start_the_observers_AD
preceeds_the_second <<icon>>
1 ::metamod_Tnative::Choice 1 is_connected_with
1
1 1
is_connected_with <<icon>>
is_connected_with
::metamod_Tnative::Loop 1
1
1
// concerns the first
// concerns the <<icon>> loops
choice only
second choice Capture_Action 1
1 {} if(TFormal_Requirement.Risk=="Low"
1
is_connected_with
<<icon>> preceeds
Start_Action
1 corresponds_to_synchro_action
1 {} if(TFormal_Requirement.Risk=="High")
Next 1 1
<<icon>>
Previous ::metamod_Tnative::Time_Limited_Offer
<<i nterface>>
contains_in_a_path Violated_Gate preceeds
<<icon>> <<interface>>
::metamod_Tnative::Stop_AD finishes_the_observers_AD Execution_Control
loops
La première étape est une étape de lecture du TRDD. On regarde chaque frontière temporelle.
L’étiquette précédant la frontière temporelle est stockée dans le tableau Label qui est indicé par
chaque frontière temporelle. Il faut aussi convertir les dates des frontières temporelles (Cf algorithme
3) qui sont exprimées en temps absolu en dates relatives ; on construit donc le tableau T_out en
respectant cette règle.
93
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
_________________________________________________________________________________
Algorithme 2 Construction des tableaux dérivés des TRDD
Glossaire: TRDD_i = tableau d’entiers représentant les éléments de la ligne de vie du TRDD
T_in = tableau d’entiers contenant les valeurs des dates temporelles du TRDD
ind = nombre de frontières temporelles dans la description de l’exigence compteur pour la
génération du tableau label
label = tableau contenant les éléments de description des exigences temporelles (OK ou KO
sous forme de tableau d’entier)
_________________________________________________________________________________
Algorithme 3 Conversion temps absolu/relatif pour la génération des observateurs
Glossaire: T_in = tableau d’entiers contenant les valeurs des dates temporelles du TRDD exprimées en
date absolues
T_out= tableau contenant les informations temporelles converties en temps absolu pour la
génération du diagramme d’activités de l’observateur
94
Chapitre V. Vérification formelle d’exigences temporelles sur le modèle de conception
_________________________________________________________________________________
Algorithme 4 Génération de l’observateur sous sa forme de base
Glossaire: label = tableau contenant les éléments de description des exigences temporelles (OK ou KO
sous forme de tableau d’entier)
T_out= tableau contenant les informations temporelles converties en temps absolu pour la
génération du diagramme d’activités de l’observateur
Obs_Label = Diagramme d’activités de l’observateur représenté par une chaîne de caractères
2.3.4. Exemples
Dans cette partie, nous proposons différents exemples pour montrer ce qui peut être exprimé
dans un TRDD et comment l’embryon du comportement de l’observateur est généré. Ces exemples
sont illustrés par la Fig.44. Ils sont déduits de la Fig.7 du chapitre IV, soit :
• En a) les exigences contenant une frontière temporelle, qui doivent se terminer/commencer à
T unités de temps. Ces exigences correspondent respectivement aux propriétés de délais
maximum/minimum.
• En b) les exigences contenant deux frontières temporelles, qui doivent être comprises/exclues
dans/de l’intervalle [T1 ; T2].
95
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Capture_Action (a
Capture_Action
Start_Action Start_Action
OK KO KO OK
T T
Nom tableau i=0 i=1 Nom tableau i=0 i=1
Label [i] 1 0 Label [i] 0 1
Tout T - Tout T -
Obs_Label
Capture_Action Capture_Action (b
Start_Action Start_Action
OK KO OK KO OK KO
T1 T2 T1 T2
Nom tableau i=0 i=1 i=2 Nom tableau i=0 i=1 i=2
Label [i] 1 0 1 Label [i] 0 1 0
Tout T1 T2-T1 - Tout T1 T2-T1 -
Obs_Label
T2-T1
T2-T1
Fig.44. Application des algorithmes 2, 3 et 4 aux exemples de la Fig.39 (chapitre IV page 68)
Tout comme dans les algorithmes 2,3 et 4, l’observateur est construit à l’envers en débutant
par l’opérateur de fin.
96
Chapitre V. Vérification formelle d’exigences temporelles sur le modèle de conception
_________________________________________________________________________________
Algorithme 5 Début et terminaison d’un observateur
Glossaire: label = tableau contenant les éléments de description des exigences temporelles (OK ou KO
sous forme de tableau d’entier)
T_out= tableau contenant les informations temporelles converties en temps absolu pour la
génération du diagramme d’activités de l’observateur
crit = niveau de criticité de l’exigence (0 = bas et 1 = haut)
nb_TC = nombre de Tclasses du modèle observé
Violated_Action = étiquette de violation d’exigence définie dans le diagramme d’exigences
représenté par une chaîne de caractères
end_interrupt = étiquette pour le processus d’interruption (ou le rebouclage) qui dépend du
niveau de criticité de l’exigence représenté par une chaîne de caractères
Obs_label = Diagramme d’activités de l’observateur représenté par une chaîne de caractères.
97
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Tab.10. Table de traduction des descriptions d’exigences temporelles TURTLE en relation dans le diagramme de Classes
TURTLE
NB: R représente la(les) relation(s) entre les Tclasses, T_obs la TClass de l’observateur et T_obj la(les)
Tclass(es) observé(s). On a assoc=<T, type, formule OCL, T’> [APV 04] où T et T’ désignent des Tclasses
dont le type correspond à l’opérateur de composition (synchro, séquence, préemption, invocation) attaché à
l’association entre les TClasses et où la formule OCL désigne l’opération de synchronisation entre les portes
des Tclasses.
Le modèle TIF est donc directement traduit des diagrammes de conception11 (CD et ADs). A
partir des diagrammes d’exigences (RD et TRDDs) des observateurs peuvent être générés pour guider
et interpréter la vérification des exigences temporelles décrites par le diagramme de description
d’exigences temporelles (TRDD). Les observateurs sont construits dans le format TIF du système
spécifié en TURTLE. Le format TIF ainsi obtenu est traduit en spécification RT-LOTOS pour
engendrer ensuite le graphe d’accessibilité.
Vérification Formelle
Exigences
RTL
Génération
automatique
d’observateurs
Traduction
Génération TURTLE
Modèle du système Intermediate Spécification
Conception Format RT-LOTOS
(TIF)
11
Ce modèle peut aussi être traduit à partir des diagrammes d’analyses (IOD et SDs) [APV 06] ; cet aspect sera
uniquement traité dans les perspectives.
98
Chapitre V. Vérification formelle d’exigences temporelles sur le modèle de conception
Les Tclasses observées contiennent des portes observées (Classe Observed_Gate qui
correspondent une à une aux points d’observations du TRDD (Classe Observation_Point) comme le
montre l’association étiquetée par corresponds_to. Les portes observées sont ensuite synchronisées
avec les portes de l’observateur (Classe Gates_Obs composée par la classe Observation_Gates). La
synchronisation est montrée par l’association étiquetée par is_synchronized_with.
<<stereotype>>
::metamod_Tnative::TDesign_Package
1
<<browserNode,i nstancePresentation>>
<<stereotype>>
TURTLE_Intermediate_Format ::metamod_Tnative::TClass_Diagram
<<stereotype>>
1
Observed_Design_Package
*
// if Violated_Action
<<stereotype>>
occurs during
TObserver interrupts the execution
1
<<interface>>
*
Execution_Control Observed_TClass_Diagram
interrupts
3 .. * *
*
<<interface>>
Gates_Obs Non_Observed_TClass
Observed_TClass
interrupts
1..*
<<interface>> corresponds_to
is_synchronized_with
2
Observation_Gates Observed_Gate 1 1 Observation_Points
1 1
99
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Dans cette partie on connecte l’observateur aux objets observés. Ceci est fait à partir des
points d’observations définis dans le TRDD qui correspondent à des synchronisations entrantes avec
l’observateur qui les effectue de manière atomique.
________________________________________________________________________________________
Algorithme 7 Construction du nouveau modèle
Pour respecter l’interruption de l’exécution des objets observés si une exigence haute est
violée il faut modifier d’une part le diagramme d’activités de l’observateur (voir algorithme 5) et
d’autre part les comportements des objets observés (voir algorithme 8). Il faut construire dans les
100
Chapitre V. Vérification formelle d’exigences temporelles sur le modèle de conception
objets du système (objets observés ou non) les mécanismes pour stopper l’exécution du système. Il
faut donc construire des dispositifs de préemption basés sur synchronisations entre les différents
objets du système et l’observateur pour déclencher l’arrêt de l’exécution. De même les diagrammes
d’activités des objets du système doivent être modifiés pour prendre en compte ce processus de
préemption. Ceci est exprimé par l’algorithme 8.
_________________________________________________________________________________
Algorithme 8 Interruption de l’exécution des objets observés
101
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
• Le modèle contenant l’observateur est exprimé en langage TURTLE natif [APV 04]. Ce
modèle est composé d’un diagramme de classes et de diagrammes d’activités. Ceci introduit
deux ensembles d’hypothèses :
o Les opérateurs de composition pris en compte dans le système sont les opérateurs de
synchronisation, parallélisme et séquence. Le parallélisme correspond à deux Tclasses
indépendantes sans relation de synchronisation et la séquence correspond à une
synchronisation. L’utilisation de l’opérateur de préemption est interdite dans le
modèle. Ce dernier peut bloquer un objet observé et amener au blocage non désiré du
système par l’observateur. Ce dispositif pose aussi des problèmes pour l’interruption
des objets observés.
o Les opérateurs du diagramme d’activités à prendre en compte sont les opérateurs natifs
du diagramme d’activités [APV 06] (synchronisation, choix, opérateur parallèle,
séquence pour les opérateurs non temporels et délai, latence, offre limitée dans le
temps pour les opérateurs temporels).
• Les points d’observation entre l’observateur et les objets observés doivent être associés par un
opérateur de synchronisation (ceci est montré par le méta-modèle de la Fig.46)
• Les points d’observation « Start » et « Capture » ne sont pas pris en compte si ces derniers se
chevauchent. Seules les occurrences immédiates Start-Capture sont mesurées par les
observateurs ; les autres occurrences (par exemple Start-Start ou Capture-Capture) ne sont pas
mesurées mais peuvent se produire durant l’exécution du système sans bloquer l’observateur
(cf. section 2.3.5).
• Les points d’observation « Start » et « Capture » sont uniques et ne sont jamais dupliqués
dans des processus observés en parallèle (problème de synchronisation entre objets observés et
observateur ne prenant pas en compte les points d’observation en parallèle). Dans le cas de
plusieurs processus en parallèle dupliquant les points d’observation, il faut construire un
observateur pour chaque processus.
• Les points d’observation ne peuvent pas être inclus dans des dispositifs d’offres limitées dans
le temps. Si le point d’observation considéré n’est pas dans les deux chemins de l’offre limitée
dans le temps, cela peut contribuer au blocage de l’observateur et donc du système.
• Enfin il existe une limitation inhérente à la sémantique de RT-LOTOS associée à l’opérateur
d’offre limitée dans le temps [COU 00]. Ce problème se rencontre si l’action de fin de capture
d’exigence est effectuée à la date limite de satisfaction d’exigence (à la date T). A la date T,
l’offre est possible mais devient périmée. Par conséquent le graphe d’accessibilité contient
dans ce cas deux chemins. Le premier contient l’étiquette de violation de l’exigence et le
second la satisfaction d’exigence. Il est donc nécessaire de formuler les dates de
violation/satisfaction d’exigences dans les bornes supérieures/inférieures selon la construction
du TRDD.
3.2. Placement des points d’observations
L’intérêt de construire un observateur dans le langage de spécification du système est que le
coût de la preuve est réduit [JAR 88] [HAL 93] [ROG 06]. En effet, la structure de l’observateur est
déjà formalisée et donc prouvée. Cependant la composition avec le système à observer peut conduire
à un échec de diagnostic voire un blocage du système et nécessite d’être définie. Dans cette section,
102
Chapitre V. Vérification formelle d’exigences temporelles sur le modèle de conception
Comme mentionné dans la section 2 (cf. Fig.42 et Fig.43) de ce chapitre, un observateur peut
être vu comme une succession d’offres limitées dans le temps qui se synchronisent avec le modèle
observé de manière instantanée (atomique). Nous avons choisi d’abstraire le système (cf. partie
« objets du système » de la Fig.47) par des latences qui représentent l’occurrence des événements
caractérisant le début et la fin l’exigence (respectivement notés « Action Start » et « Action_Capture »
sur la Fig.47). Les points d’observation (« Start » et « Capture ») se synchronisent de manière
instantanée avec l’observateur (synchronisation atomique). Nous avons étudié le placement des points
d’observation en séquence de deux manières différentes :
• Le point d’observation est placé avant l’action caractérisant l’exigence (équivaut aux portes
Start_1 et Capture_1).
• Le point d’observation est placé après l’action caractérisant l’exigence (équivaut aux portes
Start_2 et Capture_2).
Si les points d’observations sont placés avant les événements caractérisant l’exigence alors
ceux-ci déclencheront l’observateur avant l’occurrence de l’événement dans l’objet observé. Ceci
entraine donc une erreur de diagnostic de l’observateur. Dans le cas contraire, l’observateur se
déclenche instantanément (par synchronisation atomique entre l’objet observé et l’observateur) après
l’occurrence de l’événement : le diagnostic de l’observateur est, dans cette dernière configuration,
exact.
Si on utilise un opérateur de parallélisme entre l’événement à observer (« Action Start » ou
« Action_Capture ») et le point d’observation (« Start » ou « Capture »), on obtient les deux
configurations à la fois. Ceci est expliqué par la sémantique du parallélisme en TURTLE. La
synchronisation entre l’observateur et l’objet observé étant atomique, la synchronisation entre
l’observateur et l’objet observé se produira avant l’occurrence des événements « Action_Start » et
« Action_Capture » (cf. occurrence de Start_1 et Capture_1 sur la Fig.47). Ceci entrainera aussi un
mauvais diagnostic de l’observateur.
Synchronisation atomique
Synchronisation atomique
Tc Capture_1
Action_Capture
Synchronisation
Capture_2
Synchronisation atomique Temps
103
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Pour conclure, il existe un seul branchement « correct » des points d’observations : ces
derniers doivent être placés en séquence, immédiatement après les événements à observer.
Le concept de « committed location » utilisé dans l’outil UPPAAL [UPPA] se prête bien pour
définir la manière de placer les points d’observations. En UPPAAL, un état est dans une « committed
location », si et seulement si on ne peut pas attendre cette action (non-bloquante). La prochaine action
permet de sortir de la commited location. Cette dernière est vue comme une zone temporelle où les
actions sont tirées instantanément, sans entrelacement avec les actions hors de la committed location,
qui seront exécutées après. Une perspective serait donc une extension dans la sémantique de
TURTLE pour définir tout comme UPPAAL la notion de « committed location » pour placer les
points d’observations dans le modèle observé.
3.3. Vers une implantation complète de l’approche
Le prolongement immédiat de nos travaux concerne l’implantation complète du processus de
vérification guidée par les observateurs à partir d’une spécification des exigences dans un diagramme
d’exigence et TRDD. La Fig.48 présente ce qui a été implanté dans TTool [TTOOL] et ce qui reste à
faire concernant le processus de génération automatique des observateurs. Les éléments déjà
construits sont représentés par des lignes pleines, qui sont :
• Les algorithmes présentés dans le chapitre V (cf. Gene_Obs sur la Fig.48) prennent en entrées
suivantes :
o les informations du diagramme d’exigences soit le niveau de criticité, l’étiquette de
violation d’exigences et le nombre de classes actives dans le système.
o Les informations du TRDD soit un tableau d’entier représentant les valeurs de la ligne
de vie de l’exigence soit O pour « KO » et 1 pour « OK » (int[] TRDD), les valeurs
des frontières temporelles (int[] T_in) et les étiquettes correspondantes aux deux
points d’observations (String[2] P_O) et aux objet observés (String[2] T_Obj)
définis dans le TRDD.
Ces algorithmes produisent en sortie deux chaînes de caractères représentant le comportement
de l’observateur (String obs_behavior) et le modèle incluant l’observateur (String
observable_model).
• Le diagramme d’exigences (TRequirement_Diagram) présenté par les méta-modèles du
chapitre IV section 2.1.3), comme le montre les travaux présentés en [FON 06b].
• L’API (notée API_RD sur la Fig.48), entre les diagrammes d’exigences
(TRequirement_Diagram présenté par les méta-modèles du chapitre IV section 2.1.3) et les
algorithmes de génération des observateurs.
Enfin, les éléments restant à construire sont présentés dans la Fig.48 par des éléments en
pointillé. Il reste donc à implanter :
• Le diagramme TRDD (noté TRDD sur la Fig.48) présenté par les méta-modèles du chapitre
III section 2.2.3.
• Une API (notée API_TRDD sur la Fig.48), entre le TRDD et Gene_Obs, pour produire à
partir du TRDD les tableaux TRRD, T_in, P_O et T_obj.
• Une API (notée API_TIF sur la Fig.48), entre Gene_Obs et le modèle de conception incluant
l’observateur, pour produire un nouveau modèle de conception à partir des descriptions sous
104
Chapitre V. Vérification formelle d’exigences temporelles sur le modèle de conception
Requirement_State.Label[N]
T_F.Date_of_TF[N-1]
Observation_Point.Name_of_Action[2]
Observation_Point.Name_of_TClass[2]
int[] TRDD
int[] T_in
API_TRDD String[2] P_O
String[2] T_obj String obs_behavior
String observable_model API_TIF
Gene_Obs
API_RD
TAD.Obs
TURTLE_Intermediate_Format
4. Conclusion
Ce chapitre a traité le volet « vérification formelle des exigences non-fonctionnelles
temporelles » de la méthodologie présentée dans le chapitre III instanciée au profil UML TURTLE.
Notre choix s’est porté sur la construction d’observateurs pour guider la vérification des exigences
non-fonctionnelles temporelles. En effet, cette technique est plus rapide à mettre en œuvre et nécessite
moins de contrainte d’outillage que les approches de type de model-checking. L’ approche retenue ici
nécessite simplement de spécifier l’observateur dans le langage de spécification du système (en
l’occurrence en diagrammes TURTLE). Enfin, cette méthode nous parait plus appropriée pour vérifier
des exigences incluant des « distances temporelles ». En effet, de nombreuses logiques ne permettent
pas d’exprimer directement ce type d’exigences (généralement on construit des observateurs
représentant ces distances temporelles en procédant comme [MAL 06]).
105
Chapitre VI. Application : le projet SAFECAST
1. Le projet SAFECAST
L’entreprise EADS [EADS], porteur de ce projet, propose des équipements et services dans le
domaine de la sécurité civile. Ses prestations et produits ciblent divers organismes tels que la police
ou les pompiers. Grâce au protocole TETRAPOL [TETRA] de la PMR [PMR] (Professional Mobile
Radio), EADS garantit des communications sécurisées à ses clients.
Cependant, TETRAPOL est sensible à la perte de communication avec le centre qui gère la
sécurité. Cette lacune s’est faite faiblement sentir jusqu’à des évènements récents où l’infrastructure
PMR s’est révélée défaillante. Ainsi, les communications n’étaient plus relayées entre les différents
groupes d’intervention. Leurs actions ne pouvaient plus être synchronisées et la sécurité du système
se trouvait alors dégradée.
106
Chapitre VI. Application : le projet SAFECAST
Le projet SAFECAST [SFC] a été lancé avec l’ambition de combler cette lacune. SAFECAST
porte sur le développement d’une architecture globale de sécurité pour des communications de
groupes en prenant en compte l’incidence des pertes de communication par le protocole utilisant le
médium PMR (en l’occurrence le protocole SAFECAST).
1.1. Réseau sans fil : le médium PMR
La PMR est constituée d’un ensemble de moyens de communications mobiles sans fil à
l’usage de professionnels. Les premiers équipements mobiles sans fil sont apparus dans les années
1930, avec des équipements mobiles pour les voitures, puis des équipements portables de type talkie-
walkie.
Pour se faire une idée de l’utilisation du médium PMR, il est utile de rappeler les différences
de finalité entre un réseau public cellulaire (GSM) et un réseau PMR :
• Un réseau public cellulaire offre des communications de type téléphonique entre deux
utilisateurs mobiles quelconques situés sous la couverture du réseau.
• Un réseau de type PMR permet de piloter à partir de postes fixes, des opérations menées sur le
terrain par des groupes d’utilisateurs mobiles (éteindre un feu, surveiller un événement,
optimiser le ramassage de paquets par une flotte de véhicules, distribuer des courses à des
taxis, etc…). PMR offre également des services de communication directe entre terminaux
mobiles (talkie-walkie ou shelter12).
Au niveau de la transmission, les débits offerts par le PMR sont de deux types. La classe « bas
débit » garantit un débit de 6 kb/s avec une portée de 3 km. La classe « moyen débit » supporte 100
kb/s avec une portée de 100 km. Le PMR offre un service en partie fiable (pas de duplication, ni de
déséquencement). Le projet SAFECAST a traité les pertes de messages inhérentes au fait qu’un
utilisateur de talkie-walkie puisse être hors de porté durant l’émission ou la réception d’un message.
La caractéristique principale d'une application utilisant le réseau PMR est donc de permettre à
des groupes d'utilisateurs mobiles équipés de terminaux sans fil de communiquer entre eux de façon
sécurisée pour des communications de voix, de données ou multimédia. Les caractéristiques
importantes pour ces utilisateurs sont (les caractéristiques en italiques correspondent aux exigences
vérifiés en TURTLE) :
⇒ la qualité de la voix,
⇒ le délai d'établissement d'une communication,
⇒ le délai d'entrée tardive dans une communication établie,
⇒ le délai de réunion de deux communications établies en une seule,
⇒ le débit en transmission de données,
⇒ le nombre de groupes pouvant établir des communications,
⇒ la taille maximale des groupes.
12
Sac à dos utilisé pour la transmission, ayant une portée plus grande que les talkies-walkies de l’ordre de 100 km contre
3 km pour ces derniers.
107
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Tab.11. Outils de vérification de protocoles de sécurité basés sur les systèmes de transitions
L’état de l’art publié en [FON 06a] a mis en évidence que les travaux sur la modélisation et
vérification formelle des protocoles de sécurité ignorent majoritairement les aspects temporels. Tel
n’est pas le cas du profil UML TURTLE présenté dans le chapitre II (section 4) et utilisé dans le
cadre du projet SAFECAST.
1.3. Pourquoi utiliser TURTLE dans le projet SAFECAST ?
A l’origine, le profil UML temps réel TURTLE n’a pas été développé dans le but de modéliser
et vérifier des protocoles de sécurité. Son applicabilité en ce domaine a été testée avec succès sur le
protocole NSPK (Needham Schroeder Public Key protocol) [FON 06a]. Au-delà de cet exemple
canonique, l’usage de TURTLE dans le projet SAFECAST se justifie par les points suivants :
• En TURTLE, la vérification formelle n’est pas une activité isolée. Elle s’intègre dans un
processus qui démarre avec la spécification formelle des exigences temporelles (relations
entre exigences, description formelle), une analyse (cas d’utilisation, scénarios) et embraye sur
la conception (architecture, comportements).
108
Chapitre VI. Application : le projet SAFECAST
• Une des forces du langage TURTLE réside dans le traitement des aspects temporels. Outre les
retards de durées fixes et les temporisateurs que l’on retrouve dans les outils UML 2.0,
TURTLE permet de travailler avec des intervalles temporels. De plus l’analyse d’accessibilité
prend en compte le temps et gère ces intervalles temporels.
• Tant le langage de modélisation que les outils de vérification sont bien adaptés à traiter la
partie « contrôle » (échanges de messages et respect des contraintes temporelles) d’une
machine de protocole. Les traitements qui s’expriment dans un paradigme états/transitions se
modélisent bien en TURTLE. Par contre, les algorithmes –par exemple des fonctions de
cryptage/décryptage– qui manipulent des données complexes ne peuvent pas être détaillés. Le
plus souvent le modèle TURTLE représentera l’algorithme par sa durée de traitement estimée
et une abstraction des résultats qu’il produit (par exemple, succès ou échec du cryptage d’une
donnée).
Par ailleurs, l’expérience montre que plus l’on cherche à analyser de matière pointue et
exhaustive une des « facettes » d’un système –par exemple pour apprécier le niveau de sécurité offert
par ce système ou encore pour vérifier qu’il respecte un certain nombre d’exigences temporelles– plus
il faut avoir recours à un langage de modélisation spécialisé. Le pouvoir d’expression de ce langage
est en général très grand dans la facette qu’il permet d’aborder mais s’avère plus limité dans les autres
facettes du système. On peut dire sans caricaturer que les langages formels dotés de techniques
d’analyse puissantes sont souvent « trés spécialisés ». Ainsi, il est rare qu’un même outil traite à un
même niveau la partie « contrôle » d’un protocole (échanges de messages et respect des contraintes
temporelles) et la partie « données » (format des messages et sémantique des données véhiculées).
Ceci nous amène à dire que l’étude d’un système complexe tire bénéfice de « modélisations
croisées » impliquant plusieurs langages de modélisation et outils de vérification. C’est l’approche
retenue dans la cadre du projet SAFECAST qui « croise » une modélisation orientée « données » et
« sécurité » à l’aide de l’outil AVISPA [AVI 05] avec une modélisation orientée « contrôle » et
« contraintes temporelles » mise en œuvre par l’outil TURTLE [APV 04].
109
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Il est communément admis dans les protocoles de sécurité que les données doivent être
échangées dans un délai borné sur le réseau pour pouvoir garantir les propriétés d’intégrité et de
confidentialité. Selon la théorie des graphes de cryptographie [DOD 05], toute clé de cryptographie
est « cassable » à partir d’une période donnée (appelée temps de cyclage). Il découle de cette
affirmation trois classes d’exigences non-fonctionnelles temporelles types :
E 6. Un protocole de sécurité doit avoir un délai borné pour le transfert de données ; ceci
correspond à la propriété de promptness définie dans le chapitre II section 1.
110
Chapitre VI. Application : le projet SAFECAST
Management services
Security Operators SO
Medium
La deuxième couche, Security Operators (SO), offre les actions élémentaires de sécurité qui
garantissent l’intégrité, la confidentialité et le non rejeu. On trouve des opérations de : hashing pour
garantir l’intégrité des données ; chiffrement qui sert à la confidentialité ; empêchement de rejeu avec
l’indexation des numéros de séquence des messages reçus.
111
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
La structuration de cette section respecte ainsi la méthodologie présentée dans le chapitre III.
La section 3.1 présente la phase de traitement d’exigences, particularisée à l’exigence non-
fonctionnelle temporelle de délai d’établissement d’une communication chiffrée. La section 3.2 décrit
la phase de conception et traite du protocole de gestions de clé (en particulier le service décrit par la
fonctionnalité Key_Renewal), et du mécanisme d’abstraction du PMR : le Routage Hiérarchique
Virtuel (noté par la suite RHV). Enfin, la section 3.3 présente la phase de vérification –guidée par un
observateur– de l’exigence de délai d’établissement d’une communication chiffrée.
3.1. Traitement des exigences
L’exigence temporelle considérée dans cette section concerne la confidentialité des échanges.
Il est dit dans [L. 1.3] section 3.1.1 que :
« Le mécanisme de chiffrement doit posséder les propriétés suivantes compte tenu du contexte PMR:
• Etablissement de connexion (EC) : le délai d'établissement d'une communication chiffrée doit
être inférieur à 350 ms. »
Tab.12. Base de données des exigences liées à l’établissement de connexion et au renouvellement de clés
112
Chapitre VI. Application : le projet SAFECAST
sont tous les utilisateurs de ce service, tous les participants devant posséder une clé pour pouvoir
participer à la communication. Cette exigence temporelle de délai maximum (promptness) doit être
inférieure à 350 ms. Elle est directement liée à la fonctionnalité de renouvellement de clés ; ce service
est fourni par la couche Group Communication Key Management (GCKM) qui est l’exigence
fonctionnelle Key_Renewal.
Concernant la définition des hypothèses appelées à être levées et les aléas correspondants (cf.
chapitre III section 4.1.2), nous avons considéré les pertes dans le modèle en application de la règle
HL 4.1 (cf. chapitre III section 4.1.2). Le réseau PMR est un réseau sans fil déployé à grande échelle
(de 3km à 100 km), pouvant entrainer la perte de connexion de certains utilisateurs.
113
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
TRDD= TRDD_ECD
« satisfy »
TRDD_ECD
KR_Finished
Begin_KR
OK KO Violated_Action= «KO_EC»
350
Pour tous les appels de fonctionnalités incluant le renouvellement de clés, la demande est
effectuée par la couche GMM qui utilise le service de renouvellement de clés. Ces deux couches sont
ensuite connectées aux couches SO et PMR représentant le service de diffusion sécurisée.
La vérification d’un modèle de médium à diffusion est un problème récurrent des techniques
de modélisation basées sur une sémantique d’entrelacement. Le risque d’explosion combinatoire
s’accroit avec un modèle temporel. C’est par une modélisation « astucieuse » que nous limitons ce
risque en l’absence de rendez-vous multiple dans TURTLE. Ainsi, la structuration du modèle
TURTLE du médium à diffusion PMR reproduit la hiérarchie (compagnie, domaine, utilisateur) du
système SAFECAST. Appelée RHV [L 4.1] (Routage Hiérarchique Virtuel), cette technique
explicitée en [L 4.1], permet – dans le cas d’une diffusion d’un message crypté concernant un sous-
groupe d’utilisateurs suivie d’une diffusion d’un message concernant tous les utilisateurs – de voir le
graphe d’accessibilité se construire en moins d’une minute alors qu’une heure ne suffisait pas à
114
Chapitre VI. Application : le projet SAFECAST
construire le graphe en l’absence de RHV. Notons au passage que le RHV n’élimine pas du graphe
d’accessibilité des chemins qui seraient importants pour les propriétés de sécurité à vérifier. La
couche supérieure Security Operators (SO), offre les actions élémentaires de sécurité qui garantissent
l’intégrité, la confidentialité et le non rejeu. Toutes ces opérations sont abstraites par des opérations
temporelles, notre but étant de vérifier les exigences temporelles (cf. définition HI.1 dans la section
2.1) et non pas les exigences liées à la sécurité et aux « données » (vérifiées dans le cadre du projet
par l’outil AVISPA [AVI 05]).
Abstraction du chef de
compagnie
Send(PMR_PKT) Receive(PMR_PKT)
SO_PMR
Temps de
Temps de
codage du
décodage du
message
message
115
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Synchronisation commandée
Synchronisation pour
par l’observateur en début de
démarrer les dispositifs de
distribution de clés
capture de temps dans les
entités de protocoles
Dispositif de
capture de durée
Synchronisation en fin de
session pour diagnostiquer la
validation/violation de
l’exigence
Synchronisation commandée
par l’observateur à la fin de la
session
116
Chapitre VI. Application : le projet SAFECAST
L’observateur a un double emploi. Il synchronise, dans un premier temps, toutes les entités de
protocoles de manière atomique et séquentielle (ce qui n’influe pas sur le comportement temporel du
modèle) en début de renouvellement de clés. Puis, en fin de session, il échange des données par
synchronisation avec toutes les entités de protocoles pour établir un diagnostic. Le dispositif de
synchronisation en fin de session est indiqué dans la Fig.52 par la double flèche. Lorsque la session
de renouvellement de clé s’achève, l’observateur va commander la synchronisation et demander la
réception de timeout par l’action de synchronisation End_KR_Mn !?timeout. Cette expression est
héritée de la sémantique LOTOS de passage de valeurs bidirectionnelles pendant une synchronisation.
Le point d’exclamation correspond à une demande de synchronisation de l’observateur à l’entité de
protocole et le point d’interrogation correspond à un passage de la valeur timeout de l’entité de
protocole vers l’observateur. L’observateur va donc en fin de session interroger toutes les entités de
protocoles individuellement et de manière séquentielle pour supprimer tout entrelacement des
messages liés au diagnostic de l’observateur. Si l’exigence est violée, l’observateur stoppe les
synchronisations avec les autres entités de protocoles. Ceci provoque l’arrêt de l’exécution du
protocole car l’exigence temporelle du renouvellement de niveau de criticité « haut » a été violée.
4. Contributions et résultats
L’instanciation de la méthodologie présentée dans ce mémoire a permis différentes
contribution sur les livrables :
• [L 2.5] concerne la spécification globale du système en phase d’analyse (représenté par des
diagrammes de cas d’utilisations, des diagrammes globaux d’interaction et par des
diagrammes de séquences).
• [L 4.1] concerne la spécification de l’architecture (cf. section 2.2) du modèle TURTLE et
la vérification qualitative des exigences temporelles.
• [L 3.4] concerne la vérification quantitative des exigences temporelles.
Notons qu’une contribution supplémentaire aurait pu être apportée au livrable [L 1.3] qui
traite des exigences temporelles et de sécurité du protocole SAFECAST, concernant le recueil et la
spécification des exigences respectivement par une base de données et des diagrammes d’exigences
SysML. Cette contribution aurait permis de construire directement une matrice de traçabilité des
exigences temporelles et de sécurité pour que ces dernières puissent être vérifiées de manière
systématique.
Par ailleurs, le retour d’expérience de notre participation au projet SAFECAST nous a permis
de participer sur les livrables :
• [L 4.3] qui concerne l’étude des outils de vérification des protocoles de sécurité, à partir de
l’état de l’art de [FON 06a].
• [L 4.2] et [L 4.4] qui concernent la définition de points dur inhérents à la conception de
protocoles de communication de groupes sécurisés.
117
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Au niveau de la vérification des exigences temporelles, la conclusion que nous pouvons tirer
(cf. [L4.2]) est que les mécanismes de sécurité proposés dans le projet SAFECAST sont trop
exigeants vis-à-vis des contraintes du réseau à bas débit. Cette violation de contraintes est détectée par
modélisation avant toute mise en œuvre, évitant ainsi de procéder à la réalisation d’un système dont
on s’apercevrait lors de son utilisation, c’est à dire top tard, que les contraintes sont irréalisables.
Dans le cas du bas débit, le concepteur devra choisir deux pistes : soit garder des mécanismes
sécurisés mais avec des contraintes temporelles plus lâches, soit ne pas utiliser les mécanismes de
sécurité s’il ne peut pas relâcher les contraintes. Dans le cas du moyen débit, toutes les exigences
temporelles sont satisfaites, excepté le temps d’accès à un groupe multimédia.
Les résultats obtenus en [L 4.1], [L 4.3] et [FON 07] mettent en exergue la nécessité de
compromis entre l’utilisation de fonctionnalités sûres mais coûteuses en temps par rapport au respect
des performances. Ces résultats guident ainsi l’identification des compromis à réaliser et sur les choix
à effectuer avant toute réalisation d’un protocole de communication de groupes sécurisés utilisant un
médium sans fil [L 4.1].
5. Conclusion
Le projet SAFECAST [SFC] dédié à la communication de groupes sécurisés a fourni une
étude de cas pour appliquer la méthodologique présentée dans ce mémoire. Ce projet a permis de
définir des techniques générales pour la conception de protocoles de sécurité modélisés dans le profil
UML temps réel TURTLE.
Nos contributions dans ce projet reposent d’une part sur l’application de la méthodologie
présentée dans le chapitre III (pour les livrables [L 2.5], [L 4.1] et [L 3.4]) et de nos retours
d’expériences de notre participation au projet (pour les livrables [L 4.3] et [L 4.2]). Enfin les résultats
de la vérification des aspects temporels a permis de mettre en évidence la non-satisfaction de la
majorité des exigences temporelles en configuration « bas débit » et la satisfaction (sauf une) de ces
dernières dans une configuration moyen débit.
118
Chapitre VII. Conclusions et perspectives
En dépit de ses treize diagrammes, le langage UML 2.1 normalisé par l’OMG n’offre aucune
facilité particulière pour traiter convenablement la phase de traitement des exigences qui démarre le
cycle de développement d’un système temps réel. Ce constat s’appliquait aussi aux profils UML,
avant que ne soit normalisé le langage SysML qui amène avec lui l’idée de diagrammes d’exigences.
Cependant ces deux langages manquent encore de support méthodologique. Ce constat est encore plus
criant pour les profils UML/SysML adossés à des méthodes formelles qui impliquent une démarche
rigoureuse sur la modélisation du système et la spécification des exigences pour fournir des résultats
de vérification « exploitables ».
Dans cette optique, l’objectif premier de cette thèse a été de développer le volet
« méthodologie » du profil UML temps réel TURTLE (Timed UML and RT-LOTOS Environment)
[APV 04] orienté « vérification formelle d’exigences non-fonctionnelles temporelles ». La définition
de cette méthodologie a permis de proposer une étape supplémentaire dans le processus
méthodologique TURTLE : le traitement des exigences. L’insertion de cette nouvelle étape est le
point de départ de la génération automatique d’observateurs dédiés à la vérification des exigences
temporelles. Cette technique est en effet moins couteuse en termes d’outillage que l’approche de
vérification des exigences basée sur le model-checking. De plus, un observateur, de par le fait qu’il est
exprimé en UML, est réutilisable dans les phases de déploiement et codage. Enfin, la faisabilité de ces
travaux a été évaluée, avec succès, dans le cadre d’un projet industriel (SAFECAST [SFC]).
119
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
profil TURTLE en identifiant nos apports par rapport à l’existant avant les travaux présentés
dans ce mémoire. Cette figure permet de se faire une idée rapide d’une partie des contributions
présentées dans ce mémoire.
Requirement ID
1 0 0
,,,
,,,
Risk Level Concerned Actors Kind of Temporal Requirement
Promptness
Use Case Méthodologie présentée dans le chapitre III
2
2
0
1
0
0
,,,
,,,
High or
Low
List of
Concerned Actors
Minimal Delay
Punctuality
List of
corresponding
Base de données
2 1 1 ,,, Periodicity use cases
2 1 2 ,,, Interval Delay
Exigences non-
fonctionnelles Diagramme Traitement des
temporelles : d’exigences
TRDD exigences
Contributions présentées
dans le chapitre IV
Exigences
Génération
Insertion points fonctionnelles : Analyse
automatique Uses Cases et
d’observations
d’observateur Scenarii
TURTLE
Observateur Insertion Intermediate Architecture et Conception
Génération comportement
Format
(TIF)
Matrice de Traduction
traçabilité
Spécification
RTL RT-LOTOS Vérification
Analyse
d’accessibilité Graphe
guidée par les d’accessibilité
observateurs
Contributions présentées
dans le chapitre V Méthodologie présentée dans [APV 06]
• Tracer les exigences non fonctionnelles temporelles par vérification guidée par
observateurs. L’ambition de ces travaux est de fournir un processus de traçabilité des exigences
120
Chapitre VII. Conclusions et perspectives
temporelles reposant sur la vérification formelle des exigences, définies par les diagrammes
d’exigences et TRDD, guidée par observateurs. Cette approche de vérification permet de
pouvoir vérifier des exigences temporelles incluant des « distances temporelles ». Se souciant
également d’avoir des travaux réutilisables, le processus de vérification est présenté sous forme
de méta-modèles et d’algorithmes. Ces derniers ont été validés expérimentalement ; ils sont en
cours d’implantation dans l’outil TTool (cf. chapitre V section 3.3). Cette contribution fait
l’objet du chapitre V.
• Appliquer ces travaux dans un projet industriel. Notre participation dans le projet
SAFECAST [SFC] sur la conception d’un protocole de communication de groupes sécurisée,
nous a donné l’opportunité d’instancier nos travaux dans un modèle complexe. Ceci à permis de
contribuer sur la production de biens livrables ([L 2.5] [L 4.1] [L4.2] [L 4.3] [L 3.4] [L 4.4]).
Outre l’aspect validation temporelle du processus, l’originalité de l’approche de vérification
proposée dans le projet SAFECAST, est de « croiser » les résultats d’une modélisation orientée
« données » et « sécurité » à l’aide de l’outil de AVISPA [AVI 05] avec une modélisation
orientée « contrôle » et « contraintes temporelles » mise en œuvre par l’outil TURTLE. Cette
contribution est exposée dans le chapitre VI.
2. Perspectives
Nous ne saurions clôturer ce mémoire sans aborder les prolongements souhaitables à nos
travaux.
2.1. Enrichir les descriptions d’exigences non-fonctionnelles temporelles
Cette perspective se décline sous deux aspects :
• Intégrer des relations de compositions temporelles entre exigences basées sur l’algèbre des
intervalles d’Allen [ALL 83]. Les travaux de [ALL 83] définissent une algèbre des intervalles,
décrivant les interactions possibles entre deux processus. [ALL 83] a identifié 13 schémas
caractéristiques du positionnement respectif de deux intervalles temporels. Par le jeu de
symétrie il ne reste que 7 schémas fondamentaux. Nous souhaiterions nous en inspirer pour
définir des relations d’interaction non pas entre deux processus mais entre deux exigences dans
le diagramme d’exigence en introduisant des relations de dépendance supplémentaires. Notons
qu’une étude sur l’observation des relations basée sur l’algèbre des intervalles d’Allen entre
processus a déjà été effectuée en [FON 06b].
121
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
Diagramme de
déploiement
Sondes
pour la QoS Nœuds de déploiement
Sondes
pour les
machines
de
protocoles
Réseau Réel
Socket (TCP, UDP, RMI)
ou
émulateur de réseaux
L’aspect validation des exigences temporelles peut encore être étendu en ajoutant une facette
supplémentaire dans la validation par vérification et simulation : l’utilisation d’outils d’émulation. Un
couplage avec l’outil d’émulation W-NINE [DAI 07] semble possible, ce dernier proposant des API
par socket pouvant être directement connectées au modèle TURTLE généré en java. L’émulation
122
Chapitre VII. Conclusions et perspectives
active [GIN 05] permettrait des mesures beaucoup plus fines que la simulation, l’environnement
pouvant être entièrement contrôlé dans un émulateur.
Enfin la construction de TRDD, peut permettre de générer automatiquement des jeux de test
pour valider les exigences non-fonctionnelles temporelles dans la phase de mise en œuvre du système
à développer. Cette perspective peut se placer dans le cadre des travaux de [ADJ 07] qui propose une
approche de génération de séquences de test pour les réseaux de Petri temporels à chronomètres
(RdPTC) [BER 04] complémentaire aux travaux de [SAD 07] qui présentent la génération de RdPTC
à partir de modèles TURTLE.
123
Références
[ABR 96] J.R. Abrial, “The B Book, assigning programs to meanings” Cambridge UP, 1996.
[ACCOR] Page Web ACCORD UML, http://www-list.cea.fr/labos/fr/LLSP/accord_uml/AccordUML_presentation.htm.
[ADJ 07] N. Adjir, P. de Saqui-Sannes, M.K. Rahmouni, « Génération des séquences de test temporisées à partir des
réseaux de Petri temporels à chronomètres », Conférence Internationale sur les NOuvelles TEchnologies de la
REpartition (NOTERE 2007), pp.313-327, Marrakech, Maroc, Jun 2007.
[AGAT] Page Web AGATHA, http://www.iop.org/EJ/abstract/0954-3899/31/10/076
[AGIL] Page Web Manifeste AGILE http://agilemanifesto.org/
[ALB 07] A. Albinet, J.L. Boulanger, H. Dubois, M.A. Peraldi-Frati, Y. Sorel, Q-D. Van, “Model-based methodology
for requirements traceability in embedded systems,” 3rd ECMDA workshop on traceability, Haifa, Israel,
June 2007.
[ALL 83] J.F. Allen “Maintaining knowledge about temporal intervals”, Communication of the ACM 26(11) pp.832-
843, Nov 1983.
[ALU 89] R. Alur, T.A. Henzinger, “A Really Temporal Logic,” Proceedings of the 13th Symposium on the
Foundations of Computer Science, pp. 164-169, 1989.
[ALU 93] R. Alur, T. Henzinger, “Real-time logics: Complexity and expressiveness,” Information and Computation,
(104), pp. 35-77, 1993.
[ALU 94] R. Alur, D. Dill, “A theory of Timed Automata,” Theoretical Computer Science, 126, pp. 183-235, 1994.
[AMI 05] Y. Amir, C. Nita-Rotaru, J. Stanton, G. Tsudik, “Secure Spread : An integrated Architecture for Secure
Group Communication,” IEEE Transactions on Dependable and Secure Computing , September 2005.
[AML 99] N. Amla, E.A. Emerson, K.S. Namjoshi. “Efficient Decompositional Model Checking for Regular Timing
Diagrams”, In Conference on Correct Hardware Design and Verification Methods (CHARME 1999).
Springer-Verlag, pp. 67-81, Sep 1999.
[AND 06] C. André, A. Cuccuru, R. de Simone, T. Gautier, F. Mallet, J. Talpin. “Modeling with logical time in UML
for real-time embedded system design,” in: MARTES, satellite workshop of Models'2006, Genova, Oct 2006.
[APV 04] L. Apvrille, J.-P. Courtiat, C. Lohr, P. de Saqui-Sannes , “TURTLE: A Real-Time UML Profile Supported by
a Formal Validation Toolkit”, IEEE Transactions on Software Engineering, 30(7), pp. 473-487, July 2004.
[APV 06] L. Apvrille, P. de Saqui-Sannes, R. Pacalet, A. Apvrille, « Un environnement de conception de systèmes
distribués basé sur UML », Annales des Télécommunications, Vol. 61, n 11/12, pp. 1347-1368, Nov 2006.
[AVI 05] Page web AVISPA. http://www.avispa-project.org
[BAB 89] J.P. Babau, J.L. Sourouille, “Expressiong Real Time Constraints in a Refective Object Model,” Control
Engineering Practice, Vol 6, pp. 421-430, 1989.
[BAB 01] J.P. Babau, A. Alkhodre, “A development method for PROtotyping embedded SystEms by using UML and
SDL (PROSEUS),” In workshop SIVOEES 2001 - ECOOP, Budapest, Hungary, 2001.
[BEH 99] P. Behm, P. Benoit, A. Faivre, J.M. Meynadier, “Météor: A Successful Application of B in a Large Project,”
Lecture notes in computer science, ISSN 0302-9743, pp.712-724, 1999.
124
Références
[BER 91] B. Berthomieu, M. Diaz, “Modeling and Verification of Time Dependant Systems Using Time Petri Nets,”
IEEE Transaction on Software Engineering, 17(3), pp.259-273, 1991.
[BER 04] B Berthomieu, P.O. Ribet, F. Vernadat, “The TINA Tool: Construction Abstarct State Space for Petri Nets
and Time Petri Nets,” International Journal of Production Research, Vol. 42, No. 14, pp.2741-2756, 2004.
[BLA 01] B. Blanchet, “An efficient cryptographic protocol verifier based on prolog rules,” In Proc 14th Computer
Security Foundations Workshop (CSFW’01), pp. 82–96, Cape Breton, Canada, 2001.
[BOC 90] G. Bochmann, “Protocol specification for OSI,” Computer Networks and ISDN Systems, v.18 n.3, pp.167-
184, April 1990.
[BOD 06] J.P. Bodeveix, P. Dissaux, M. Filali, P. Gaufilet, F. Vernadat, “Behavioural descriptions in architecture
description languages, Application to AADL,” 3rd European Congress on Embedded Real Time Software
(ERTS'06), Toulouse, France, Jan 2006.
[BOL 89] T. Bolognesi, E. Brinksma,“Introduction to the ISO specification language LOTOS,” in the Formal
description Technique LOTOS, van Eijket al., Eds. Amsterdam, The Netherlands: North-Holland, pp. 23–73,
1989.
[BOO 00] G. Booch, J. Rumbaugh, I. Jacobson, « Le guide de l'utilisateur UML (version française) », c/o Eyrolles,
ISBN 2-212-09103-6, 2000.
[BRA 05] V. Braberman, N. Kicillof and A. Alfonso. “A Scenario-Matching Approach to the Description and Model-
Checking of Real-Time Properties“, IEEE Transactions on Software Engineering, special issue on interaction
and state based modelling, 31(12), pp. 1028-1041, December 2005.
[BRA 06] J Bradfield, C. Stirling. “Handbook of Modal Logic,” chapter Modal Mu Calculi. Elsevier, 2006.
[BUC 04] M. Buchholtz, C. Montangero, L. Perrone, S. Semprini. “For-LySa: UML for authentication analysis”. In C.
Priami and P. Quaglia, editors, Proceedings of the second workshop on Global Computing, LNCS 3267, pp.
92–105, 2004.
[BUC 05] A. Bucchiarone, S. Gnesi, P. Pierini, “Quality analysis of NL requirements: an industrial case study,” 13th
IEEE International Conference on Requirements Engineering, pp. 390- 394, Paris, France, August 2005.
[CADP] Page web CADP, www.inrialpes.fr/vasy/cadp/
[CHA 04] S. Chaki, E.M. Clarke, J. Ouaknine, N. Sharygina, N. Sinha, “State/event-based software model checking,”
Proceedings of the 4th International Conference on Integrated Formal Methods (IFM '04), LNCS 2999, pp.
128-15=47, 2004.
[CHO 05] H. Chockel and K. Fisler, “Temporal Modalities for Concisely Capturing Timing Diagrams”, Correct
hardware design and verification methods, 13th IFIP WG 10.5 advanced research working conference,
CHARME 2005, Saarbrücken, Germany, October 2005.
[CLA 86] E.M. Clarke, E.A. Emerson, A.P. Sistla, “Automatic verification of finite state concurrent systems using
temporal logic,” ACM Trans. on Programming Languages and Systems, 8(2), pp. 244–263, 1986.
[CLA 99] E.M.Clarke, O Grumberg, D. Peled, “Model Checking,” MIT Press, Cambridge, 1999.
[CLA 00] R. Clarck, A. Moreira, “Use of E-LOTOS in Adding Formality to UML,” Journal of Universal Computer
Science, Vol. 6, No. 11, pp.1071-1087, 2000.
[COR 05] V. Cortier, S. Delaune and P. Lafourcade,” A Survey of Algebraic Properties used in Cryptographic
Protocols,” Journal of Computer Security, IOS Press, 2005.
[COU 91] J.P Courtiat, M. Diaz, V.B Mazzola, P. de Saqui-Sannes, « Description formelle de protocole et de services
OSI en Estelle et Estelle* - Expérience et Méthodologie. » CFIP’91 Ingénierie des protocoles ; Pau, France,
Sep 1991.
[COU 92] J.P. Courtiat and D.E Saidouni, “A Case Study in Protocol Design.” In E Brinksma , T Bolognesi and C.A
Vissers, editors, Third LotoSphere Workshop & Seminar, Pise, Italy, Sep 1992.
125
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
[COU 00] J.P. Courtiat, C.A.S. Santos, C. Lohr, B. Outtaj, “Experience with RT-LOTOS, a Temporal Extension of the
LOTOS Formal Description Technique”, Computer Communications, Vol. 23, No. 12, pp. 1104-1123, 2000.
[DAI 07] L. Dairaine, G. Jourjon, E. Lochin, S. Ardon, “IREEL: Remote Experimentation with Real Protocols and
Applications over Emulated Network,” ACM SIGCSE inroads (ACM Special Interest Group on Computer
Science Education), Vol 39, N°2, June 2007.
[DAM 01] W. Damm and D.Harel. “LSCs: Breathing Life into Message Sequence Charts”, Formal Methods in Systems
Design, 19, 45-80, 2001.
[DHA 07] P. Dhaussy, J.C. Roger, F. Boniol, « Mise en œuvre d'unités de preuve pour la vérification formelle de
modèles», Ingénierie Dirigée par les Modèles (IDM’07), Toulouse, France, mars 2007.
[DIA 94] M. Diaz, G. Juanole, J.P. Courtiat. “Observer: a concept for formal on-line validation of distributed systems,”
IEEE Transaction Software Engineering, 20(12) :900–913, 1994.
[DIL 92] D. L. Dill, A. J. Drexler, A J. Hu, C. H. Yang, “Protocol Verification as a Hardware Design Aid,” IEEE
International Conference on Computer Design: VLSI in Computers and Processors, IEEE Computer Society,
pp. 522-525, 1992.
[DOD 05] Y. Dodis, A. Smith, “Entropic Security and the encryption of High Entropic Message,” Theory of
Cryptographic Conférence (TTC), February 2005.
[DOL 03] L. Doldi. “Validation of Communications Systems with SDL,” Wiley, 2003.
[DOU 02] B. Douglas, “Real-Time UML Tutorial,” OMG Real-Time and Embedded Systems Distributed Object
Computing Workshop, Arlington, VA, USA, July 2002.
[DOU 04] B. Douglass, “Doing Hard Time: Developping Real-Time Systems with UML, Objects, Frameworks, and
Patterns,” Addison Wesley, ISBN 0-201-49837-5, 2004.
[DUB 04] H. Dubois, N. Torrecillas, “Performance Evaluation of Real-Time Embedded Systems with the Accord/UML
methodology”, 20th Annual UK Performance Engineering Workshop, University of Bradford, UK, 2004.
[EADS] Page web EADS http://www.eads.com/
[EAST] Page Web Projet EAST-EEA www.east-eea.net/
[EME 90] E. A. Emerson, “Temporal and modal logic.” In Jan van Leeuwen, editor, Handbook of Theoretical Computer
Science, volume B, chapter 16, pp. 997-1072. MIT Press, 1990.
[EXP 03] E. Exposito, M. Gineste, R. Peyrichou, P. Senac, M. Diaz, “XQOS: XML-based QoS specification language,”
MMM’03 The 9th International Conference on Multi-Media Modeling, Taiwan, January 2003.
[EXP 04] E.Exposito, « Spécification et mise en œuvre d'un protocole de transport orienté Qualité de Service pour les
applications multimédias », Doctorat de l’Institut National Polytechnique, Toulouse, France, décembre 2003.
[FDR 05] Page Web FDR2. http://www.verified.de/fdr.html
[FRA 01] M. Fränzle and K. Lüth, “Visual Temporal Logic as Rapid Prototyping Tool”, Computer Languages, Vol. 27,
pp. 93-113, 2001.
[FON 04] B. Fontan, « Application d’UML 2.0 et du profil TURTLE à la modélisation et validation du protocole
DCCP », Rapport DEA Système informatique, ENSICA, Toulouse, France, juin 2004.
[FON 06a] B.Fontan, S. Mota, T. Villemur, P. de Saqui-Sannes, J.P. Courtiat. “UML-based modeling and formal
verification of authentication protocols,” Int. Symposium on Secure Software Engineering, Washington DC,
USA, March 2006.
[FON 06b] B. Fontan, L. Apvrille, P. de Saqui-Sannes, J.-P. Courtiat, “Real-Time and Embedded System Verification
Based on Formal Requirement”, IEEE Symposium on Industrial Embedded Systems (IES'06), Antibes,
France, October 2006.
126
Références
[FON 07] B. Fontan, S. Mota, P. de Saqui-Sannes, T. Villemur, “Temporal Verification in Secure Group
Communication System Design,” International Conference on Emerging Security Information, Systems and
Technologies (SECURWARE 2007), Valencia, Spain, October 2007.
[GER 02] S. Gérard, F. Terrier, Y. Tanguy, "Using the Model Paradigm for Real-Time Systems Development:
ACCORD/UML" in OOIS'02-MDSD, Montpellier, France, Springer, LNCS 2426, 2002.
[GER 04] S. Gérard, C. Mraidha, F. Terrier, B. Baudry, “A UML-based concept for high concurrency: the Real-Time
Object,” The 7th IEEE International Symposium on Object-Oriented Real-Time distributed Computing
(ISORC), Vienna, Austria, 2004.
[GIN 05] M. Gineste, H. Thalmensy, L. Dairaine, P. Senac, M. Diaz, “Active Emulation of a DVB-RCS Satellite Link
in an End-to-end QoS-oriented Heterogeneous Network,” 23rd AIAA International Communications Satellite
Systems Conference , Rome, Italy, September 2005.
[GOT 02] R. Gotzhein, F. Khendek, « Conception avec Micro-Protocoles », Colloque Francophone sur l’Ingenierie des
Protocoles CFIP’02, Hermes Science, Montréal, Canada, 2002.
[GRA 05] S. Graff, I. Ober, I. Ober, “Validating Timed UML Models by Simulation and Verification”, Int. Journal On
Software Tools for Technology Transfer, 2005.
[HAL 93] N. Halbwachs, F. Lagnier, P. Raymond, “Synchronous Observers and the Verification of Reactive Systems”,
AMAST’93 (3rd Int. Conference on Algebraic Methodology and Software Technology), June 1993.
[HAT 87] DJ. Hatley, J. Derek, I.A. Pirbhai, “Strategies for real-time system specification,” Dorset House Pub, New
York, 1987.
[HAS 06] J. Hassine, J. Rilling, R. Dssouli. “Timed Use Case Maps”, In System Analysis and Modeling: Language
Profiles, 5th International Workshop, SAM 2006, Kaiserslautern, Germany, pp. 99-114, June 2006.
[HOL 03] G. Holzmann. “The SPIN model checker SPIN,” Addison-Wesley, 2003.
[HUL 04] E.Hull, K. Jackson, J. Dick, “Requirement Engineering – Second Edition,” Springer, ISBN 1-85233-879-2,
2004.
[HUT 04] M. Huth, M. Ryan, “Logic in Computer Science modelling and reasoning about systems (2nd edition),”
Cambridge University Press, ISBN 0 521 54310X, 2004.
[ITU 96] ITU-TS “Recommendation Z.120: Message Sequence Chart (MSC),” ITU-TS, Geneva, Switzerland, 1996.
[IS 8807] ISO, “IS 8807: LOTOS: A Formal Description Technique,” 1989.
[IS 9074] ISO, “IS 9074: Estelle: A Formal Description Technique Based on an Extended State Transition Model,”
1989.
[JAH 86] F. Jahanian, A.K. Mok "Safety Ananysis of Timing properties in Real-Time Systems", IEEE Transactions on
software engineering, Vol SE-12, N° 9, pp. 890-904, September 1986.
[JAN 99] W. Janssen, R. Mateescu, S. Mauw, P. Fennema, P. Stappen, “Model Checking for Managers”, Spin’99,
pp.92-107, 1999.
[JAR 88] C. Jard, J.-F. Monin, R. Groz, “Development of Veda, a Prototyping Tool for Distributed Algorithms”, IEEE
Transactions on Software Engineering, Vol.14, No. 3, pp339-352, March 1988.
[JUR 02] J. Jürjens. “UMLsec: Extending UML for secure systems development.” In UML 2002- The Unified
Modeling language, LNCS 2460, pp. 412-425, 2002.
[JUS 94] M. Just, “Methods of Multi-party Cryptographic Key Establishment,” Master thesis, School of Computer
Science, Carleton University, Ontario, Canada, 1994.
[KEN 00] B. Kent, “Extreme Programming Explained, Embrace Change,” Addison-Wesley, ISBN 201-61641-6, 2000.
[L 1.3] EADS, ENST Paris, LAAS-CNRS, LORIA, UTC Compiègne. Projet RNRT SAFECAST. « L3.3. Définition
d’un protocole de gestion de clés. » juin 2006.
127
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
[L 2.5] EADS, ENST Paris, LAAS-CNRS, LORIA, UTC Compiègne. Projet RNRT SAFECAST. « L 2.5 :
Spécification du système global, intégration des services de sécurité au protocole de gestion de clés, »,
novembre 2005.
[L 3.4] EADS, ENST Paris, LAAS-CNRS, LORIA, UTC Compiègne. Projet RNRT SAFECAST. « L3.4: Evaluation
des performances pour la validation du facteur d'échelle », janvier 2007.
[L 4.1] EADS, ENST Paris, LAAS-CNRS, LORIA, UTC Compiègne. Projet RNRT SAFECAST. « L 4.1 :
Validation de l"architecture », septembre 2006.
[L 4.2] EADS, ENST Paris, LAAS-CNRS, LORIA, UTC Compiègne. Projet RNRT SAFECAST. « L4.2: rapport sur
l'identification des points durs », novembre 2006.
[L 4.3] EADS, ENST Paris, LAAS-CNRS, LORIA, UTC Compiègne. Projet RNRT SAFECAST. « L 4.3 :
identification et mise en œuvre des outils de simulation et vérification », octobre 2006.
[L 4.4] EADS, ENST Paris, LAAS-CNRS, LORIA, UTC Compiègne. Projet RNRT SAFECAST. « L4.4 : Bilan des
contributions originales du projet SAFECAST et perspectives de recherche ouvertes », juin 2007.
[LAM 06] A. Van Lamsweerde, “Goal-Oriented Requirements Engineering”, System Objectives to UML Models to
Software Specifications, Wiley, 2006.
[LEP 00] S. Leppänen, M. Luukkainen, “Compositional Verification of a Third Generation Mobile Communication
Protocol,” ICDCS Workshop on Distributed System Validation and Verification, 2000: E118-E125, 2000.
[LOH 02] C. Lohr, P. de Saqui-Sannes, L. Apvrille, P. Sénac, J.-P. Courtiat, “UML and RT-LOTOS. An integration for
real-time system validation,” Journal Européen des Systèmes Automatisés (APII-JESA), Vol.36, N°36,
pp.1029-1042, 2002.
[MAG 02] P. Maggi, R. Sisto, “Using SPIN to Verify Security Properties of Cryptographic Protocols,” In Model
Checking of Software: Proceedings of the 9th International SPIN Workshop, LNCS 2318, Grenoble, France,
Apr 2002.
[MAL 06] F. Mallet , M. Peraldi-Frati , C. André, “From UML to Petri Nets for non functional Property Verification,”
in: First IEEE Symposium on Industrial Embedded Systems (IES'06), Antibes, France, Oct 2006.
[MeMV] Page web MeMVaTEx, www.memvatex.org/
[MIL 89] R. Milner, “Communication and Concurrency,” Prentice Hall, 1989.
[MUR 89] T Murata. “Petri nets: Properties, analysis and applications,” Proceedings of the IEEE,77(4), pp. 541–580,
April 1989.
[MUS 07] G. Mussbacher, D. Amyot, M. Weiss, “Formalizing Patterns with the User Requirements Notation,” Design
Pattern Formalization Techniques, T. Taibi (Ed.) IGI Global, pp. 304-325, March 2007.
[OBE 99] I. Ober, “Using goal observers to extends the geode simulator,” Technical report, VERILOG, 1999.
[OBJ] Page web Outil Objectiver, http://www.objectiver.com/
[OMEG] Page Web OMEGA www-omega.imag.fr/profile.php
[OMG] Page Web OMG www.omg.org/
[OMG 05] OMG, SPT Profile, “UML Profile for Schedulability, Performance, and Time, v1.1.” January 2005.
www.omg.org/docs/formal/05-01-02.pdf
[OMG 07] OMG, MARTE profile, “UML Profile for Modeling and Analysis of Real-Time and Embedded Systems
(MARTE),” July 2007. http://www.omg.org/docs/ptc/07-08-04.pdf
[OWE 07] P. Owerzarski, N. Larrieu, « Techniques et outils de métrologie pour l'internet et son trafic », Techniques de
l'ingénieur, pp. R 1090-1-R 1090-22, juin 2007.
128
Références
[PEH 90] B. Pehrson, “Protocol verification for OSI,” Computer Networks and ISDN Systems, 18(3), pp.185-201,
April 1990.
[PHA 04] T. H Phan, S. Gerard, S., F. Terrier, “Real-time system modeling with ACCORD/UML methodology:
illustration through an automobile case study.” In Languages For System Specification: Selected
Contributions on Uml, Systemc, System Verilog, Mixed-Signal Systems, and Property Specification From
Fdl'03, C. Grimm, Ed. Kluwer Academic Publishers, pp. 51-70, Norwell, MA, 2004.
[PMR] Page web PMR http://www.eads.com/1024/fr/businet/defence/dcs/solutions/pmr/pmr.html
[POP 06] M. Popović, “Communication Protocol Engineering,” Computer network protocols, CRC Press, ISBN
0849398142, 2006.
[RATIO] Page Web RATIONAL www-306.ibm.com/software/rational/uml/
[RAS 03] A. Rashid, A. Moreira, J. Araújo, “Modularisation and composition of aspectual requirements,” Proceedings
of the 2nd int. conference on Aspect-oriented software development, pp.11-20, Boston, USA, March 2003.
[ROQ 04] P. Roques, F. Vallée, « UML en action, 2e édition : De l'analyse des besoins à la conception en Java »,
éditions Eyrolles, 2004.
[ROG 06] J.C. Roger, « Exploitation de contextes et d’observateurs pour la validation formelle de modèles. », Mémoire
de doctorat, Ecole Nationale Supérieure des Télécommunications, Brest, décembre 2006.
[RUM 91] J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, W. Lorensen, “Object-Oriented Modeling and Design,”
Prentice Hall, 1991.
[RTL] Page Web Real-Time Lotos Laboratory (RTL), http://www.laas.fr/ RT-LOTOS
[RUS 04] M. Rusinowitch, “A Decidable Analysis of Security Protocols,” 18th IFIP World Computer Congress on
Theoretical Computer Science - TCS'2004, 2004.
[SAD 07] T. Sadani, « Vers l'utilisation des réseaux de Petri temporels étendus pour la vérification de systèmes temps-
réel décrits en RT-LOTOS », Mémoire de doctorat, Institut National Polytechnique, Toulouse, mai 2007.
[SCO 06] W.A Scott. “Introduction to the Diagrams of UML 2.0.”, www.agilemodeling.com/essays/umlDiagrams.htm.
[SDL 96] ITU-T, “Recommendation Z.100, Specification and Design Language (SDL)”, 1996.
[SEL 01] B. Selic, “A UML Profile for Modeling Complex Real-Time Architecture,”
www.omg.org/news/meetings/workshops/presentations/realtime2001/6-3_Selic.presentation.pdf
[SFC] Page web Projet SAFECAST http://rnrt-safecast.org/
[STE 93] B. Stefani, “Computational Aspects of QoS in an object-based, distributed systems architecture,” 3rd
Workshop on Responsive Computer systems, Lincoln, NH, USA, September 1993.
[STE 02] M. Steiner, “Secure Group Key Agreement”, Ph.D. thesis, Saarland University, March 2002.
[STI 96] C. Stirling. “Modal and temporal logics for processes,” proc. VIII Banf. Higher order workshop conference
on Logics for concurrency: structure versus automata, pp. 149–237, Secaucus, New York, USA, 1996.
[SysML] Object Management Group, Norme SysML, Version 1.0, http://www.SysML.org/docs/specs/SysML-v1-
Draft-06-03-01.pdf
[TAR 83] H. Tardieu, A. Rochfeld, R. Colletti, « La méthode Merise - Tome 1 Principes et outils », Editions
d'organisation, ISBN 2-7081-1106-X., 1983.
[TAU] Page web Telelogic Tau G 3.0 http://www.telelogic.fr/products/tau/g2/index.cfm
[TCAD] Projet TopCAseD, http://www.topcased.org/
[TETRA] Page web TETRAPOL http://www.eads.net/1024/fr/eads/world_of_eads/products/pmr/pmr.html
[TFRC] Draft TFRC www.ietf.org/internet-drafts/draft-ietf-dccp-tfrc-faster-restart-03.txt
129
Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML
[TOU 97] J. Toussaint, F. Simonot-Lion, « Vérification formelle de propriétés temporelles d'une application distribuée
temps réel, » In Real-Time Systems - RTS'97, Teknea, pp. 53-66, 1997.
[TOU 05] J.C. Tournier, V. Olive, J.P. Babau. “A Qinna Evaluation, a Component-Based QoS Architecture for
Handheld Systems.” In ACM Symposium on Applied Computing, SAC 05, Santa Fe, USA, March 2005.
[TTOOL] Page web TURTLE Toolkit (TTool) http://labsoc.comelec.enst.fr/turtle/
[UPPA] Page web UPPAAL, http://www.uppaal.com/
[UML] Object Management Group, Norme UML, Version 2.1.1, “Unified Modeling Language Specification”,
Version 2.1.1, http://www.omg.org/docs/formal/07-02-03.pdf.
[VAR 86] M.Y. Vardi, P. Wolper, “An automata–theoretic approach to automatic program verification,” Proc. IEEE
Symp. on Logic in Computer Science, pp. 332–344, Boston, USA, June 1986.
[WAH 94] T. Wahl, K. Rotherme, “Representing Time in Multimedia Systems.” International Conference on
Multimedia Computing and Systems (ICMCS’94), pp.538-543, Boston, USA, 1994.
[WOL 91] P. Wolper, ‘Introduction à la calculabilité,” InterEditions, Paris, France,1991.
[WUA 05] B. Wua, J. Wua, E.B. Fernandeza, M. Ilyasa, S. Magliveras, “Secure and efficient key management in mobile
ad hoc networks”, Journal of Network and Computer Applications, Elsevier, 2005.
[ZIM 80] H. Zimmerman, “OSI Reference Model: The ISO Model of Architecture for Open Systems Interconnection.”
IEEE Transactions on Communications, 28(4), pp. 425-732, Apr 1980.
130
Annexes
131
Annexes
132
AUTHOR: Benjamin FONTAN
TITLE: UML/SysML BASED DESIGN METHODOLOGY OF REAL-TIME AND DISTRIBUTED SYSTEMS
SUPERVISOR: Pierre de SAQUI-SANNES
ABSTRACT:
The Unified Modeling Language (UML) standardized by the Object Management group (OMG) offers
thirteen diagrams, but no facility to handle the requirement management phase which usually starts
the development cycle of real-time systems. The SysML standard, including the concept of
requirement diagram, has opened new avenues. Nevertheless both UML and SysML lack
methodological support.
This dissertation aims therefore to develop a methodology for real-time UML profiles as soon as the
latter cover the upper phases (requirement capture – analysis – design) in the development cycle of
real-time and distributed systems, and gives prime importance to formal verification of temporal
requirements. The proposed methodology is instantiated on the TURTLE (Timed UML and RT-LOTOS
Environment) profile. SysML requirement diagrams are extended with a chronogram-based visual
language (TRDD = Timing Requirement Description Diagram). They are used to described non
functional and temporal requirements. The latter are the starting point for automatic generation of
observers whose role is to verify the requirements in question. The contributions presented
throughout the dissertation are formalized and defined by meta-models. The results are not restricted
to TURTLE. The proposed approach has been applied to secure group communication protocols
(SAFECAST RNRT project).
KEYWORDS:
Methodology, Real-Time UML, SysML, Temporal Requirements, Formal Verification, Observers,
Protocols, Secure Group Communication.