Présenté par : K.BERRAMLA. Encadreur : M.SENOUCI. EA.DEBA.
Le Développement Classique. Ingénierie Dirigée par les Modèles. Produit Correcte Bon Produit Vérification Validation 2/31
1. IDM: Aspects Principaux & Concepts de base. 2. Vérification & Validation dans l’IDM. 3. Solutions proposées (Méthode Formelle). 4.Notre Approche proposée. 5.Conclusion. 3/31
4/31
- Modèles : Un modèle est une description abstraite d’un système construite dans un but donné. - Métamodèles : Un métamodèle est un modèle qui permet d’exprimer un modèle. 5/31
- Conformité : Elle est définie par un ensemble de contraintes entre un modèle et son métamodèle et qui expriment les relation entre eux. Modèle Système Métamodèle Conforme à Représente 6/31
Règles de Transformation Règle de transformation : Une règle de transformation est une description de la manière dont une ou plusieurs constructions dans un langage source peuvent être transformées en une ou plusieurs constructions dans un langage cible. 7/31
- Génération automatique du code. - Evolution de modèle. - Migration de modèles. - Ingénierie inverse. 8/31
Vérification & Validation dans IDM (1) « Construisons nous correctement le modèle ? ». Elle traite soit la conformité des modèles à leurs métamodèles, ou le contrôle des règles de transformation. «Construisons nous le bon modèle ? ». Elle traite l’equivalence entre le modèle attendu avec le modèle obtenu. 9/31
1. Techniques semi-formelles. 2. Techniques Formelles. 2.1 Méthodes de Spécification Formelle. 2.2 Méthodes de Vérification Formelle Model checking Théorème de preuve. Une méthodes formelle permet à o ff rir un cadre mathématique permettant de décrire d’une manière précise et stricte les programmes que nous voulons construire. Vérification & Validation dans IDM (1) 10/31
Le travail de (Calegari et al., 2011). ATL Rules Vérification & Validation dans IDM (1) 11/31
Le travail de (Javier Troya et Antonio Vallecillo., 2011). ATL Rules Maude Assistant de preuve Vérification & Validation dans IDM (1) 12/31
1. Techniques semi-formelles. 2. Techniques Formelles. 2.1 Méthodes de Spécification Formelle. 2.2 Méthodes de Vérification Formelle Model checking Théorème de preuve. Vérification & Validation dans IDM (2) 13/31
Le Travail de (Idani et al.,2009). Vérification & Validation dans IDM (2) 14/31
Assistant preuve Coq pour Valider La transformation de modèles. Règles de Transformation Vérification : Contraintes avec OCL Vérification : Contraintes avec OCL Vérification : Contraintes avec OCL Vérification : Contraintes avec OCL 15/31
Règles de Transformation 16/31
17/31
18/31
{if (self.source.oclAsType(Pseudostate).kind= (PseudostateKind::join)) then {name:=self.name+’join’; From+=self.source.incoming.source.oclAsType (Sms::Vertex)-> map Vertex2Place(); To:=self.target.oclAsType (Sms::Vertex)-> map Vertex2Place(); expressions:=self.expression;} 19/31
20/31
21/31
Règles de Transformation Vérification : Contraintes avec OCL Vérification : Contraintes avec OCL Vérification : Contraintes avec OCL Vérification : Contraintes avec OCL 22/31
23/31
24/31
Assistant preuve Coq pour Valider La transformation de modèles. Inductive Statemachine : Set:= |build_Statemachine (name:string) ……………………………………….. Inductive Petrinet : Set := |build_Petrinet (name: string) ……………………………………………….. 25/31
Inductive Statemachine : Set:= |build_Statemachine (name:string) (isHorthogonal:bool) (region: list Region) (submachines:list Submachinestate) with Region : Set:= |build_Region (name:string) with Connectionpointreference: Set:= |build_Connectionpointreference (Connectionpointreferences: option Submachinestate) (entryc: list Pseudostate)(exitc: list Pseudostate). Inductive Petrinet : Set := |build_Petrinet (name: string) (PNTransition:list Transitionq)(Places: listPlace) with Place:Set:= |build_Place (name:string)(tokenNb:Nat) with Transitionq : Set:=|build_Transitionq(name:st ring) (Condition:string)(Fron: list Place)(To:listPlace). 26/31
Definition TransitionToTransitionqjoinTS (a:Transition) : Transitionq := build_Transitionq (Transition_name (a)) (Transition_condition (a)) ( match (Transition_source(a)) with |None=>nil |Some v=> match Vertex_SubPseudostate(v) with |None=> nil |Some q=> match Pseudostate_kind(q) with |entryPoint => nil |exitPoint=> nil |terminate=> nil |join=>TransformationListVertex (optiontoVer(Transition_sources(Vertex_incomi ng(v)))) |fork=> nil |…………………………………………………… 27/31
Definition Event1 : Event:= build_Event "amount". Definition Event2 : Event:= build_Event "otheramount". Definition Event3 : Event:= build_Event "abort". ……………………………………………………… build_Petrinet "Machine01" (build_Transitionq "01" " " (build_Place "4" 0 :: nil) (build_Place "selectamount" 0 :: nil) :: build_Transitionq "02" " " (build_Place "selectamount" 0 ::……………………….. Assistant de preuve Coq pour valider la transformation de modèles. Theorem preuve:forall a:Statemachine, EqTransformation (a)(TransformationStoP(a)). Assistant de preuve Coq pour valider la transformation de modèles. Theorem preuve:forall a:Statemachine, EqTransformation (a)(TransformationStoP(a)). 28/31
29/31
Karima Berramla, El Abbassia Deba, and Mohamed Senouci. Experiment on verification and validation of model transformation with coq proof assistant. In International Symposium on Informatics and its Applications (ISIA), M’sila- Algeria, February /31
31/31