Disponibilité de production Dassault AltaRica (2000) LaBRI / IRCCYN Méthodes formelles Model cheking, Lustre Ext. Temps Réel ARBoost Disponibilité de production Markov, Sim. Sto. AdD, Gén.de Seq. Dassault Analyse de fiabilité Arbre de Déf. Génération de Seq. Full AltaRica Lustre AltaRica RealTime AltaRica AltaRica Ocas AltaRica OTools AltaRica DataFlow Norme modulaire (2004)
Vers une norme Modulaire Points concernant le langage clause init clause extern opérateurs attributs (visibilité, orientation, …) synchronisations priorités Extensions XML Graphique
Clause init clause init init-cls ::= init (init-def ;)+ init-def ::= hierarchy-path := expression Redéfinition dans la hiérarchie
Clause extern extern-decl ::= IDENTIFIER extern-term = extern-term ::= IDENTIFIER extern-term extern-term ::= constante ::= STRING ::= IDENTIFIER ( extern-term (, extern-term)* ) ::= { extern-term (, extern-term)* } ::= < flow hierarchy-path > ::= < state hierarchy-path > ::= < event hierarchy-path > ::= < sub hierarchy-path > ::= < local hierarchy-path > ::= < term ( expression ) >
Clause extern node component extern law <event a> = exponential(<local lbd>) ; unobservable {<event a>, <event b>} ; property good = <term (output >= 12)> ; edon node main sub c:component; law <event C.a> = exponential(<local C.lbd>) ; unobservable <event C.a> = true ; unobservable <event C.b> = true ; property good = <term (C.output >= 12)> ;
Clause extern Loi de probabilité Paramètres nommés law {<event a>, <event b>} = exponential(0.001); constant(probability) exponential(lambda) GLM(gamma, lambda, mu) Weibull(alpha, beta, t0) periodic-test(lambda, period, t0) Dirac(delay) Paramètres nommés parameter lambda = 0.001; parameter <local A.B.lambda> = uniform(0.1,0.2); constante uniform(min-value, max-value) normal(mean, standard-deviation) lognormal(mean, error-factor)
Clause extern Prédicats, propriétés, observateurs Verrous predicate production52 = <term (production=52)>; property prod = <term (A.production+B.production)>; observer mean_prod = weighted_value(<term production>); Verrous locker <term (C.failed)>
Attributs Syntaxe Utilisation : IDENTIFIER (, IDENTIFIER)* Visibilité des flux, state, event public, parent, private affecte la mise à plat Orientation des flux (in, out)
Opérateurs Identificateurs Opérateurs arithmétiques min, max Switch ajouter le ^ (mise à plat) Opérateurs arithmétiques min, max Switch Appels à des routines externes %nom-de-fonction
Synchronisations Synchronisations “à la Mec” Diffusion Synchronisations relationnelles <Start: M.start and (S1.start or S2.start)>; GM |- M.start -> sM := expM; GS1 |- S1.start -> sS1 := expS1; GS2 |- S2.start -> sS2 := expS2; GM and (G1 or G2) |- Start -> SM := expM, sS1 := if (GS1) then expS1 else sS1, sS2 := if (GS2) then expS2 else sS2; DCC
Priorités Ordres partiels Entiers