. Personne, allInstances()->collectNested(name)->oclIsTypeOf(Bag)

. Qui-génère-une-erreur, Parsing Exception : 10:59:10:61 "Bag" unexpected token(s) La solution est de soumettre l'invariant suivant inv r32: Personne.allInstances()->collect(name)=Bag{'Ada

. La-règle-permettant-de-vérifier-propriété-est-la-suivante, Context Person Inv: Person.allInstances-> collectNested(Sequence{name,civstat,gender,alive})= Bag{Sequence{'Ada', Civstatus::widowed, Gender::female,true }, Sequence{'Bob', Civstatus::divorced, Gender::male, true }, Sequence{'Cyd', Civstatus::married, Gender::male, false}, Sequence{'Dan, Civstatus::single, Gender::male, true }} Inv : Person.allInstances->collectNested(Sequence{name,civstat,gender,alive})-> oclIsTypeOf(Bag(Sequence(OclAny)))

F. Plantagecompil_topcased, TXT let ada:Personne=Personne.allInstances()->any(p:Personne|p.name='Ada') in let emptySeq=Sequence{ada}->excluding(ada) in

. Personne, allInstances()->iterate(w,h:Person

. Bag{sequence{-'ada-',-'bob, }} Parsing Exception : 316:75:316:77 "let" unexpected token(s) ______________________________________________________________ context gens::Personne inv possiblePairs_P0_VT: let ada:Personne=Personne.allInstances()->any(p:Personne|p.name='Ada') in let emptySeq:Personne=Sequence{ada}:Personne->excluding(ada) in

. Personne, allInstances()->iterate(w,h:Person

. Bag{sequence{-'ada-',-'bob, }} Parsing Exception : 315:110:315:110 _______________ context gens::Personne inv abcAttrs_P0_VT: let ada:Personne=Personne.allInstances()->any(p:Personne|p.name='Ada') in let bob:Personne=Personne.allInstances()->any(p:Personne|p.name='Bob') in let cyd:Personne=Personne.allInstances()->any(p:Personne|p.name='Cyd') in Set{ada

. Bag{sequence{-'ada-', Civstatus::widowed ,Gender::female,true }

C. Sequence{-'bob-', Gender::male ,true }, Sequence{'Cyd',Civstatus::married ,Gender::male ,false}} Parsing Exception : Cannot find operation (=(Bag(Sequence(OclAny)))) for the type (Bag(OclAny)) --error location not published by the parser FICHIER RESULTAT DE NEPTUNE Fig

O. Etude-de-la-conformité-À-la-norme, des logiciels critiques Neptune et Topcased qui utilisent des méta-modèles. RESUMER L'étude de la conformité à la norme Ocl des outils Neptune et Topcased a permis de soulever deux problèmes principaux dans la norme OCL : d'une part le traitement des valeurs « null », est-ce que OCL doit fonctionner en logique binaire, ) comme actuellement ou doit-il évoluer vers la logique ternaire comme le langage SQL voire même quaternaire ou plus avec la logique floue

. Mots-clés:-méta-modèle, . Ocl, . Neptune, . Topcased, and T. Salome, Ingénierie dirigée vers les modèles,XMI,JAVA SUMMARY The study of the conformity with the standard Ocl of tools Neptune and Topcased allowed to raise two main problems in the standard OCL: on one hand the processingof the values " null ", OCL has to work in binary logic (Boolean algebra) as at present or does he have to evolve towards the ternary logic as the language SQL even quaternary or more with the vague logic? On the other hand the problem of the indéterminism of OCL through the requests using relations of order which are not specified as in the asSequence command order () This study allowed to test tools Neptune and Topcased through campaigns of test by being inspired by the research of M.Gogolla [ GKB08a] and to correct Neptune. Some problems seemed concerning Topcased, in particular on the syntax of " iterate " and the typage of the values. The tests were realized thanks to the tool of test Salome TMF who was processed for that purpose, pp.Méta-model