MARTE : le futur standard OMG pour le développement dirigé par les modèles des systèmes embarqués temps réel

La page est créée Myriam Guillou
 
CONTINUER À LIRE
MARTE : le futur standard OMG pour le
  développement dirigé par les modèles des
       systèmes embarqués temps réel
       Frédéric Thomas, Huascar Espinoza, Safouan Taha, Sébastien Gérard
                     CEA LIST – Boîte 94 – Gif sur Yvette 91191
                                 {prenom.nom}@cea.fr

                                         Résumé
Depuis l’adoption du standard UML, notamment sous sa deuxième version, ce langage de
modélisation a été très largement testé industriellement pour le développement de systèmes
embarqués temps-réel (SETR). Fort de cette expérience, UML apparait aujourd’hui comme
un langage de modélisation très utile, couvrant de multiples besoins mais ne permettant pas
de répondre à toutes les spécificités métiers liées au développement de tel système. Le
manque d’artéfacts pour la quantification du temps, pour la modélisation des ressources
d’exécution (tâches, sémaphores …) et enfin pour la description rigoureuse d’une sémantique
d’exécution empêchaient jusqu’à maintenant sa plus large utilisation dans ces domaines.
Ceux-çi nécessitent des langages couvrant aussi bien les besoins liés à la conception que les
besoins liés à l’analyse des systèmes. Pour répondre à ces besoins, le consortium OMG a
d’ors et déjà normalisé des extensions à son langage de modélisation universel UML :
l’extension SPT (Schedulability, Performance and Time) et l’extension QoS&FlT (Modeling
Quality of Service and Fault Tolerance Characteristics & Mechanisms). Ces extensions ne
couvrant pas tous les besoins d’un développement dirigé par les modèles, l’OMG a
récemment émis un nouvel appel à soumission pour une extension nommée MARTE (UML
PROFILE FOR MODELING AND ANALYSIS OF REAL-TIME AND EMBEDDED SYSTEMS). Le consortium
ProMarte a répondu à cet appel. Bien que cette proposition soit en cours de construction, il
est d’ors et déjà possible de décrire les principaux concepts qu’elle fournit. Il est aussi
possible de faire une première comparaison avec d’autres langages utilisés dans l’embarqué
temps-réel tel que le langage de description d’architecture : AADL (Architecture Analysis
and Design Language).
1. Introduction                            ProMarte3.    Cette     proposition sera
                                               comparée à celles du langage AADL.
De part la complexité et l’hétérogénéité
des systèmes embarqués temps réel
(TR/E), leur modélisation reste aujourd’hui          2. Les extensions UML
un exercice difficile qui nécessite des                 pour le temps réel
langages de modélisation appropriés. Il est    Un profile UML est un mécanisme
ainsi courant de vouloir modéliser à des       d’extension qui spécialise le langage qu’il
niveaux d’abstraction différents : la          étend pour un domaine particulier tout en
concurrence     (ou    parallélisme),    les   préservant l’intégrité des concepts de
contraintes temporelles (i.e. échéance,        modélisation originels. Concrètement, un
périodicité,   etc.),    les     contraintes   profil UML est donc un paquetage
d’embarquabilité (i.e. taille mémoire,         contenant des extensions aux métaclasses
consommation électrique, etc.), les            UML. Ces extensions sont appelées des
supports d’exécution qu’ils soient logiciels   stéréotypes. Un stéréotype possède des
(i.e. système d’exploitation, intergiciel)     propriétés (attributs, relations, etc.),
et/ou matériels. Récemment, plusieurs          nommées définitions d’étiquette (tag
consortiums ont normalisés des langages        definition). Dès lors que le stéréotype est
ou des extensions de langages dédiés au        appliqué sur une classe du modèle, les
domaine de TR/E. Ainsi, le consortium          valeurs de ces propriétés sont renseignées.
SAE1 a normalisé un langage de                 Enfin, un profile définit un ensemble de
description d’architecture (ADL) temps         contraintes qui, associées à un stéréotype,
réel : AADL (Architecture Analysis and         clarifient la sémantique d’un concept ou
Design Language) [1]. De même l’OMG2 a         précisent des règles d’utilisation d’une
d’ors et déjà normalisé deux extensions à      construction du métamodèle. Les cas
son langage de modélisation unifié (UML        d’utilisation d’un profil sont divers :
[2]): l’extension SPT (Schedulability,         nouvelle      terminologie,     clarification
Performance and Time) [3] et l’extension       sémantique, nouvelle syntaxe, règles
QoS&FlT (Modeling Quality of Service           méthodologiques, annotation des éléments
and Fault Tolerance Characteristics &          par des propriétés non-fonctionnelles.
Mechanisms) [4]. Ces premières extensions      Pour répondre aux problèmes très
ne couvrant pas tous les besoins, l’OMG a      spécifiques de domaine TR/E, deux profils
récemment émis un nouvel appel à               UML ont alors été normalisés : SPT et
proposition (Request For Proposal (RFP))       QoS&FlT. SPT vise à définir un ensemble
intitulé MARTE (UML PROFILE FOR                minimal de concepts nécessaires à
MODELING AND ANALYSIS OF REAL-TIME AND         l’analyse des aspects temps-réel d’un
EMBEDDED SYSTEMS) [5].                         système. Ces concepts doivent aboutir à la
Cet article vise donc dans un premier          description de modèles à partir desquels
temps à décrire succinctement les              l’ingénieur doit être capable, soit de
extensions à UML dédiées au temps réel.        produire une implantation, soit d’analyser
Dans une deuxième partie il s’attachera à      le comportement temps-réel d’une
présenter la RFP MARTE et une réponse          application en termes d’ordonnançabilité et
en cours de construction du consortium         de performance. Pour ce faire, le profil
                                               SPT est constitué de deux sous-profils
                                               principaux. Le premier sous-profil
1
                                               concerne la modélisation des ressources
  SAE : Society of Automotive Engineers,
                                               générales fournissant une base pour la
http://www.sae.org
2
  OMG : Object Management Group :
                                               3
http://www.omg.org                                 ProMarte : www.promarte.org
définition de contraintes temps-réel            des espaces mémoires séparés, une
qualitatives (par exemple: échéance, débit,     consommation énergétique ou une
temps d’exécution maximale, etc). Le            occupation mémoire d’un système.
second         concerne     les     analyses    Pour combler ces lacunes, l’OMG a donc
d’ordonnançabilité classiques (RMA, EDF,        émis l’appel à proposition MARTE. Celle-
etc. [6]), l’analyse de performance et          ci vise à adresser les deux branches du
l’analyse d’ordonnançabilité dans le            cycle en V, c.-à-d. celle de la conception
contexte de RTCorba.                            ainsi que celle de la vérification &
Le second profil, « QoS et Tolérance aux        validation. Elle a donc pour objectif de
fautes », fournit un ensemble de concepts       faciliter les échanges entre les intervenants
pour la prise en compte de la modélisation      d’un projet et entre les outils de
des aspects de qualité de service et de         développement. Pour cela, les moyens de
tolérance aux fautes, en particulier dans le    modélisation proposés doivent aussi bien
contexte des systèmes temps-réel. En ce         couvrir les étapes de spécification, de
qui concerne la qualité de service, ce          conception, d’implémentation, que celles
nouveau profil définit un ensemble de           liées à l’analyse. Ils doivent assurer la
concepts concrets, décrivant un canevas         modélisation conjointe des artéfacts
général pout définir la qualité de service      matériels et logiciels.
dans le profil SPT.                             Le consortium ProMarte a proposé, en
Les extensions proposées par ces profils ne     novembre 2005, une réponse initiale. La
sont pas entièrement satisfaisantes             version définitive est prévue pour mars
principalement       pour    deux    raisons.   2007. Le contenu de cette proposition n’est
Premièrement, le niveau d’abstraction           donc pas encore figé aujourd’hui. Des
proposé est insuffisant et inadéquate pour      disparités pourront donc exister entre ce
envisager la conception d’une application       qui va être présenté par la suite et le
TR/E. En effet, les concepts proposés sont      standard final.
principalement issus des problématiques
liées à l’analyse. Quelque soit la technique            3. UML-MARTE : la
d’analyse visée, elle requière généralement
des informations quantitative et qualitative
                                                        proposition ProMarte
supplémentaires à celles disponibles dans       La structure de l’extension proposée par le
un modèle de spécifcaton/conception             consortium ProMarte est illustrée en Figure
classique. Ces informations sont donc           -1. Un premier paquetage, nommé TCRM,
annotées sur les éléments du modèle pour        définit de manière générique des artéfacts
faciliter la transformation du modèle d’une     de modélisation pour la représentation du
application vers le formalisme d’entrée des     temps, pour la représentation des
techniques d’analyse. Par exemple, une          propriétés non-fonctionnelles, pour la
analyse d’ordonnançabilité requiert un          représentation de la concurrence et pour la
modèle de tâche dans lequel l’échéance ou       représentation des ressources d’exécution.
le temps d’exécution au pire cas est            Un second paquetage (RTEA) complète le
nécessaire. Ces artéfacts de modélisation       profile SPT pour la description des
ne sont pourtant pas toujours adéquates         concepts      nécessaires   aux    analyses
pour des modélisations visant à                 d’ordonnancement et de performance.
automatiser le développement des SETR           Enfin le troisième paquetage (RTEM)
(i.e déploiement de l’application sur des       définit les concepts utiles à la conception
supports d’exécutions logiciels et matériels    des SETR : modélisation de l’application
hétérogènes, génération de code). La            et modélisation des supports d’exécution
seconde raison est l’absence de concept lié     logiciels et matériels.
au domaine embarqué. Par exemple, il
n’est pas possible de modéliser facilement
TCRM (Time, Concurrency and Resources)
                                                                                                                 est-ce fait ou comment ce doit être fait).
                                NFP           « import »             Time                                        Les premières sont dites fonctionnelles
                                 « import »                 « import »
                                                                                                                 (FP), les secondes non-fonctionnelles
              Causality        « import »     Resources            « import »         Allocation
                                                                                                                 (NFP). Les NFPs fournissent des
                          « import »                                     « import »                              informations           sur         différentes
 RTEA (Real-Time and Embedded Analysis)               RTEM (Real-Time and Embedded Design)                       caractéristiques telles que les délais
           Generic Quantitative Analysis                                    RT/E Features                        d’exécution, l’utilisation de la mémoire, les
             « import »         « import »                         « import »
                                                                                « import »
                                                                                             « import »          surcharges d’exécution, etc. La Figure -2
      Schedulability         Performance
                                                              HW
                                                           Resources
                                                                                   SW
                                                                                Resources
                                                                                                   Application   illustre la modélisation de ces propriétés
Figure -1 Structure de la proposition ProMarte                                                                   avec le paquetage NFP de la proposition
                                                                                                                 ProMarte. Celui-ci s’intéresse à formaliser
Il serait illusoire de vouloir décrire tous les                                                                  un ensemble d’artéfacts de modélisation
concepts de cette extension dans cet article.                                                                    permettant la description précise et
Nous nous concentrons donc par la suite                                                                          complète       des     informations      non-
sur la modélisation du temps, la                                                                                 fonctionnelles. Ce paquetage vise donc à
modélisation        des    propriétés     non-                                                                   qualifier et à typer de manière standard les
fonctionnelles, et la description des                                                                            propriétés non-fonctionnelles. Pour cela il
supports       d’exécution.     Nous      nous                                                                   étend les types de données d’UML par les
efforcerons pour chacune de ces                                                                                  principaux types manipulés dans le TR/E
descriptions de faire le lien avec le langage                                                                    (par exemple : la fréquence, le débit, la
AADL.                                                                                                            consommation). Ces types standards sont
                                                                                                                 fournis sous une forme de librairie que
La modélisation du temps                                                                                         l’utilisateur peut importer (i.e le paquetage
La proposition du consortium ProMarte                                                                            Basic_NFP_Types de la Figure -2). Par
permet l’expression de modèles de temps                                                                          ailleurs, il permet au travers du langage
causaux (i.e. s’intéressant à la précédence                                                                      VSL de définir une syntaxe concrète
et aux dépendances entre les instants), de                                                                       associée à chacun de ces types. VSL
modèles de temps synchrones (i.e. divisant                                                                       permet de décrire des constantes, des
l’échelle de temps en une suite discrète                                                                         variables, des expressions complexes, et
d’événement où la notion de simultanéité                                                                         des expressions de temps. La notation
est possible) et des modèles de temps                                                                            « contextSwitch = (value=8, unit=ms) est
physique (i.e. permettant de définir de                                                                          un exemple d’utilisation de VSL. Elle
manière précise des durées de temps).                                                                            exprime que pour l’instance « uC », le
Ainsi il permet d’exprimer des valeurs de                                                                        temps de changement de contexte est de 8
temps, des événements dans le temps, des                                                                         us. L’utilisateur pourra donc définir ses
stimuli liés au temps et enfin des                                                                               propres types tout en utilisant une notation
mécanismes liés au temps (i.e. des                                                                               standard, ce qui n’existait pas auparavant
horloges, des réveils…). Il n’y a pas à                                                                          dans UML.
notre connaissance d’équivalent dans le                                                                                          « modelLibrary »
                                                                                                                                 Basic_NFP_Types

langage AADL puisque ce langage vise à                                                                                           « enumeration »
                                                                                                                                 DurationUnitKind
                                                                                                                                                                     « NFP_Type »
                                                                                                                                                                        Duration
décrire l’architecture du système TR/E.                                                                               «unit» s
                                                                                                                      «unit» ms { baseUnit=s, convFactor=1 E-3}
                                                                                                                                                                  value: Real
                                                                                                                                                                  unit: DurationUnitKind
                                                                                                                      «unit» us {baseUnit=s, convFactor=1E-6}

La modélisation des propriétés non-                                                                                         « import »
                                                                                                                                                                  « apply »
fonctionnelles                                                                                                             « profile »
                                                                                                                   SchedulabilityAnalysisModel
                                                                                                                                                                          UserModel
Les propriétés d’une application sont                                                                                           « metaclass »                                    « executionEngine »
                                                                                                                                                                          tickerPeriod= (value= 1.0)
                                                                                                                          UML::InstanceSpecification
regroupées traditionnellement en deux                                                                                                                                     contextSwitch= (value =8, unit =us)

catégories    :     celles     propres     aux                                                                                    « stereotype »
                                                                                                                                 ExecutionEngine                              « executionEngine»
                                                                                                                                                                                  uC: Controller
fonctionnalités      que      doit     remplir                                                                     «nfp» tickerPeriod: Duration
                                                                                                                   «nfp» contextSwitch: Duration = (unit= us)

l’application (i.e ce qui est fait à                                                                               Figure -2 Un exemple d'utilisation du sous-
l’exécution) et celles liées à la qualification                                                                         profile NFP et du langage VSL
des fonctionnalités attendues (i.e. comment
Les chapitre concernant l’analyse, utilise        actif d’UML ou des objets dits temps réel,
ces types pour décrire les propriétés non-        par exemple ceux de la méthodologie
fonctionnelles les plus utilisés dans le          ACCORD|UML [7] (i.e. une tâche par
TR/E et ainsi faciliter le lien avec les outils   opération de l’objet, une boite aux lettres
d’analyse.                                        comme mécanisme de communication
Par l’intermédiaire des concepts de               avec cet objet).
« properties », AADL permet lui aussi de          Des artéfacts de modélisation sont aussi
renseigner des caractéristiques valuées.          proposés pour modéliser concrètement les
Tout comme UML, certains types sont déjà          supports logiciels et matériels d’exécution.
définis par le noyau du langage                   Ainsi, la partie logicielle permet de
(aadlBoolean, aadlInteger, aadlString …).         représenter les ressources d’exécution
De nouveaux types de données peuvent              offerte à l’utilisateur par les systèmes
également être définis par l’utilisateur          d’exploitation temps-réel embarqué. Ces
selon ses besoins. Une syntaxe concrète           principales     ressources      sont     celles
ainsi que les principales propriétés non-         d’exécution concurrentes (i.e. tâches,
fonctionnelles sont aussi décrites dans la        interruption …), celles d’interaction entre
norme.                                            les ressources d’exécution (i.e. exclusion
                                                  mutuelle, communication par message,
La description de l’application                   synchronisation) et enfin celles permettant
La proposition ProMArte propose des               de gérer les ressources matérielles et
artéfacts de modélisation aussi bien pour         logicielles (i.e. ordonnanceur, driver …).
permettre la modélisation de l’application        La Figure -3 représente un exemple d’un
que pour la modélisation des ressources et        régulateur de vitesse. L’application est
services offerts à l’application par les          décrite puis allouée sur des « Partitions » et
supports d’exécution. Ainsi, il propose des       des « Process » de la plate-forme
concepts pour         la description de           d’exécution logicielle ARINC-653. Les
l’application     à    un     haut     niveau     concepts proposés pour la modélisation de
d’abstraction. Tout comme AADL, il                ces ressources logicielles ne sont pas liés à
propose un modèle générique de                    des technologies spécifiques (exemple :
composant (i.e. composant, instance de            semaphore posix, buffer Arinc) mais
composant, port de donnée, port                   permettent de décrire ces technologies de
d’événement, connecteur) permettant de            manière standard. Même si SAE et
modéliser aussi bien les architectures            ProMarte propose des notions identiques
logicielles et matérielles ce qui n’est pas le    en ce qui concerne le logiciel (des files
cas dans UML2 (i.e le concept de                  d’exécution (« thread »), des espaces
composant est lié exclusivement au                mémoire séparés (« process ») …), ils ne
logiciel). Plus particulièrement il propose       peuvent pas être utilisés facilement de la
des éléments pour modéliser le modèle             même manière. Pour exemple le concept
d’exécution de l’application et ceci              de fil d’exécution dans le contexte de
indépendamment            des        concepts     modélisation de la plate-forme permet de
implémentés sur les supports d’exécution.         décrire que le support d’exécution logiciel
Contrairement à AADL, ces modèles                 fournit des entités qui implémente cette
d’application peuvent être décrits à              sémantique d’exécution. Il ne permet pas,
différents niveaux d’abstraction. Ainsi           comme le fait un « thread » AADL, de
AADL contraints l’utilisation des concepts        décrire que l’application est conçu en
de tâche (thread) et d’espace mémoire             différente tâches (i.e. fil d’exécution). Pour
séparé (Process) pour la description de           cela il faut utiliser les concepts proposés
l’application. La proposition de ProMarte         dans le sous-profile « Application » décrit
laisse beaucoup plus de liberté à                 précédemment. De cette manière, une
l’utilisateur qui peut utiliser des niveaux       application peut être décrite à un niveau
d’abstraction comparable à ceux des objets
d’abstraction plus haut avant d’être allouée                                                                                                                                              l’OMG (SPT, QoS&FlT), nous avons
en tâche par exemple sur la plate-forme                                                                                                                                                   détaillé la modélisation du temps, la
d’exécution logicielle. Un stéréotype                                                                                                                                                     modélisation      des    propriétés   non-
spécifique permet de décrire cette                                                                                                                                                        fonctionnelle et la conception de
allocation. Ce mécanisme est semblable au                                                                                                                                                 l’application en prenant compte les
« binding » d’AADL.                                                                                                                                                                       supports d’exécution logiciels et matériels.
La partie matérielle est, quant à elle,                                                                                                                                                   Cette proposition est toujours en
séparée en deux vues : une logique qui                                                                                                                                                    construction et sera soumise au vote en
classifie les ressources matérielles suivant                                                                                                                                              mars 2007. Nous avons proposé un premier
leur     propriétés   fonctionnelles     (i.e.                                                                                                                                            rapprochement avec le langage AADL.
ressource mémoire (RAM, ROM),                                                                                                                                                             Etant donné que la proposition ProMarte
ressource de calcul (CPU, FPGA),                                                                                                                                                          est en construction, cette comparaison ne
ressource de communication (DMA,                                                                                                                                                          se veut ni formelle, ni complète. Elle
BUS)) et une physique qui se concentre sur                                                                                                                                                permet une première approximation de la
les propriétés physiques du composant                                                                                                                                                     complémentarité des deux langages et de
(i.e. : nombre de pattes, boitier …). Tout                                                                                                                                                l’effort nécessaire pour exprimer une ou
comme la proposition ProMarte, AADL                                                                                                                                                       des passerelles de l’une à l’autre. Cette
propose des concepts pour représenter le                                                                                                                                                  passerelle n’était peut être pas évidente
support matériel. Notons cependant qu’ils                                                                                                                                                 vers UML. Elle devrait être plus aisée à
sont beaucoup moins détaillés du côté                                                                                                                                                     décrire vers UML-MARTE.
d’AADL. Par exemple, il n’existe pas de
représentation physique du support                                                                                                                                                                      5. Références
d’exécution.
CarWithSpeedRegulator
                                                                                                   « import »                                                                          [1] SAE – Society of Automotive Engineer,
                                           CarSpeedRegulator                                                                                  CarWithSpeedRegulator_Instance               AS5506 – Architecture Analysis and
                                                                                                                                                                                           Design Language (AADL), 2004
        isAtomic = true                                                                    isAtomic = true
        direction = out                                                                    direction = in
                                       «flowPort »              « flowPort »                                                                mySpeedRegulator : CarSpeedRegulator
    spm:Speedometer               outSpeed : Integer [1]    inSpeed : Integer [1]
          [1]                                                  « msgPort »                                                                  spm=mySpm
                                                                                       rgm:Regulator [1]
                                                           rp: RegInterface [1]                                                             rgm=myRgm

                                                                                                                                                                                       [2] OMG,          "UML2.0     Superstructure
            « msgPort »
          regOn: Start [1]
                                                                                           «msgPort »                                   myRgm : Regulator        mySpm : Speedometer
     isAtomic = true                                                                engineCmd: ECInterface [1]
     direction = out

                                              ARINC_Platform
                                                                                                                                    « allocate »            « allocate »
                                                                                                                                                                                           Specification", 2004.
                             Concurrency
                                                                                                             Concurrency_Instance
                                                                                                                                                                                       [3] OMG, UML Profile for Schedulability,
                               partition
                                  1
                                                 processes
                                                     0..*
                                                                                      « import »
                                                                                                             P1 : Partition
                                                                                                                                          t1 : Process
                                                                                                                                                                                           Performance, and Time, v1.1, formal/05-
                                                                                                                                                                                           01-02, 2005.
              « MemoryPartition »                                                                                 t2 : Process
                  Partition                                    Process

                                              HW_Platform
                                                                                     « allocate »                         « allocate »
                                                                                                                                                                                       [4] OMG, UML Profile for Modeling Quality
                 « HW_Processor »
                     cpu1 : CPU
                                                               « HW_Processor »
                                                                   cpu2 : CPU
                                                                                                                      « HW_Chip »
                                                                                                                      « HW_RAM»
                                                                                                                    sdram : SDRAM
                                                                                                                                                                                           of    Service    and  Fault   Tolerance
                                                                                                                                                                                           characteristics & Mechanisms, ptc/04-09-
                 frequency = 200Mhz                            frequency = 200Mhz
                                                                                                                                 frequency = 66Mhz
                      « HW_Unit »                                   « HW_Unit »                                                memorySize = 64MB
                     « HW_Cache »                                  « HW_Cache »                                                   adressSize = 22bit
                              level = 2                                     level = 2                            organization = (4096 ; 256; 4; 16bit)
                         type = unified                                type = unified

                                                                                                                                                                                           01, 2004.
                                                                                                                                     area = 224mm²
                   memorySize = 512kB                            memorySize = 512 kB                                                     nbPins = 54

                                                                                                                                                                                       [5] OMG, "UML Profile for Modeling and
                                                             « HW_Bus »       isSynchronous = true
                                                               fsb : FSB        wordWidth = 64bit

Figure -3 Un exemple d'allocation d'une                                                                                                                                                    Analysis of Real-Time and Embedded
application sur une plate-forme logicielle puis                                                                                                                                            systems RFP", realtime/05-02-06, 2005.
sur une plate-forme matérielle.                                                                                                                                                        [6] A. BURNS, « Scheduling hard real-time
                                                                                                                                                                                           systems: a review, » Software Engineering
                                                  4. Conclusion                                                                                                                            Journal, mai 1991.
Dans cet article, notre intention a été                                                                                                                                                [7] S. Gérard, C. Mraidha, F. Terrier, and B.
d’introduire simplement et sans ambition                                                                                                                                                   Baudry, "A UML-based concept for high
d’exhaustivité, certaines parties de la                                                                                                                                                    concurrency: the Real-Time Object",
proposition du consortium ProMarte                                                                                                                                                         presented at The 7th IEEE International
répondant à l’appel à soumission MARTE                                                                                                                                                     Symposium on Object-oriented Real-time
de l’OMG. MARTE est une nouvelle                                                                                                                                                           distributed Computing (ISORC'2004), T.
extension à UML dédiée au domaine du                                                                                                                                                       A. a. I. L. J. Gustafsson, IEEE Computer
TR/E. Ainsi après avoir discuté des lacunes                                                                                                                                                Society, ISBN 0-7695-2124-X, pp 64-67,
des extensions d’ors et déjà normalisée par                                                                                                                                                Vienna, Austria, 12-14 May 2004 2004.
Vous pouvez aussi lire