slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Présenté par: Jury Président: Rapporteurs: Examinateurs: Directeur de thèse: Encadrants: PowerPoint Presentation
Download Presentation
Présenté par: Jury Président: Rapporteurs: Examinateurs: Directeur de thèse: Encadrants:

Loading in 2 Seconds...

  share
play fullscreen
1 / 65
Download Presentation

Présenté par: Jury Président: Rapporteurs: Examinateurs: Directeur de thèse: Encadrants: - PowerPoint PPT Presentation

ferdinand-curtis
67 Views
Download Presentation

Présenté par: Jury Président: Rapporteurs: Examinateurs: Directeur de thèse: Encadrants:

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. LGI2P Construction Incrémentale de Spécifications de Systèmes Critiques intégrant des Procédures de Vérification Hong-Viet Luong ABC - UPS Yves LE TRAON – IRISA – Telecom Bretagne Guy LEDUC – RUN – Université de Liège Rolan GROZ – LIG - INPG Christian PERCEBOIS – IRIT – UPS Anne-Lise COURBIS – LGI2P – EMA Thomas LAMBOLAIS – LGI2P – EMA Présenté par: Jury Président: Rapporteurs: Examinateurs: Directeur de thèse: Encadrants: Construction incrémentale

  2. Plan • Introduction • État de l’art • Raffinement des machines d’états UML • Relations de raffinement et d’implantation • Contributions • Implantation des relations de conformité • Transformation des machines d’états en LTS • Formalisation d’un cadre de construction incrémentale • Raffinement d’architecture • Conclusion Construction incrémentale

  3. Introduction • Contexte: Aide à la conception de systèmes. Modélisation UML Méthodes Formelles Systèmes critiques,réactifs Construction incrémentale

  4. Introduction • Contexte • Systèmes critiques: si une défaillance peut conduire à des conséquences inacceptables en termes humains, économiques et environnementaux. Patriot: système de missile sol-air Une erreur de logiciel => 28 morts Construction incrémentale

  5. Introduction • Contexte • Systèmes réactifs: un système réactif doit réagir à un environnement qui ne peut pas l'attendre, à la différence d'un système interactif qui communique de façon permanente avec son environnement chacun évoluant à sa propre vitesse Construction incrémentale

  6. Machine d’états UML Introduction • UML • langage de modélisation visuelle unifié • machine d’états UML Rumbaugh OMT Jacobson OOSE Booch Méthode de Booch Harel Machines d’états Construction incrémentale

  7. Introduction • Constat: difficulté de construction des machines d’états • Manque de supports d'analyse, d'exploitation ou de vérification des modèles UML et des machines d’états • Sémantique des machines d'états UML n'est pas suffisamment documentée et reste ambiguë • Faiblesses du langage: manque de modularité, généricité • Pas de méthodologie de construction des machines d’états Construction incrémentale

  8. Sn I0 complète Spécification, Abstraite, partielle Cahier des charges S0 s1 In I1 construction, extension détaillée implantation vérification Introduction • Approche: Aide à la construction de machines d'états UML par une approche incrémentale. • étapes progressives par ajout de détails et de comportements (approches descendantes et ascendantes) • évaluations des modèles • possibilité d’obtenir des versions intermédiaires exploitables Construction incrémentale

  9. Introduction • Notre approche: évaluer les modèles par comparaison. • Cadre mono langage, sans expliciter les propriétés à vérifier • Travail antérieur [Gou07] : la pertinence des relations de conformité dans un cadre incrémental est établie, mais mise en œuvre complexe • Objectifs: • Réalisations de ces relations ? • Définir un cadre de construction incrémentale Construction incrémentale

  10. Plan • Introduction • État de l’art • Raffinement Machines d’états UML • Contributions • Implantation des relations de conformité • Transformation des machines d’états en LTS • Formalisation d’un cadre de construction incrémentale • Raffinement d’architecture • Conclusion Construction incrémentale

  11. État de l’art • Raffinement et vérification des machines d’états UML • Il existe des travaux de vérification de la cohérence intra-modèles, inter-modèles[SMSJ03] • Il existe des travaux de vérification a posteriori (Model checking) [LLM99,KM02] • Mais pas de travaux relatifs à la construction incrémentale ni au raffinement. Construction incrémentale

  12. ( f j g f j g f i i µ r a m m q p r r q r r p ) État de l’art • Raffinement • Notion informelle: • Passage de l’abstrait au concret => ajout de détails + réduction de l’indéterminisme. • Préserver les propriétés de l’abstraction • Notion formelle Construction incrémentale

  13. État de l’art • Raffinement: Toute implantation du modèle raffiné est également une implantation de modèle abstrait (Boiten, Leduc…) • Méthode B • Affaiblir les préconditions, renforce les postconditions • Retirer de l’indéterminise dans les opérations. • Ajouter de nouveaux détails, événements • Préservation de l’invariant abstrait • Algèbres de processus (CSP, CCS…) • Raffinement en sémantique de traces (réduction de traces) • Raffinement en sémantique d’échecs stable(réduction de l’indéterminisme) • Raffinement en sémantique d’échecs divergence Construction incrémentale

  14. État de l’art • Déterminisme • Définition: « si l'on effectue la même expérience deux fois sur un système déterminé, en commençant à chaque fois dans son état initial, alors nous nous attendons à obtenir le même résultat, ou comportement, à chaque fois » [Mil89] • Importance de l’indéterminisme dans l’aide à la conception: • Indéterminisme est un mécanisme d’abstration Construction incrémentale

  15. État de l’art • Relations d’implantation • Spécification est une description de haut niveau du comportement souhaité d'un système • Implantation est considérée valide si elle satisfait un ensemble de propriétés définies telles que la réduction des blocages, la réduction de l'indéterminisme • Relation de conformité Construction incrémentale

  16. h i P A P 2 p p ! ! ; ; ; p a p1 b c p2 p3 État de l’art • LTS quadruplet • P: ensemble non vide d'états (ou processus) • A: ensemble de noms d'actions • relation de transitions • p: état initial P = { p,p1,p2,p3 } A = {a,b,c} Construction incrémentale

  17. ( ( ) ) f f f f g g f f g g f g g g f b b R A ? e c c p p ² ² a c a c a = = 1 ; ; ; ; ; ; ; ; ½ ¾ ( ( ) ) f f f f g g g f g f g f g f g f g f g g f b b b b R A ( ) f j 0 e ( 0 ) g ? ? 9 f A X X O t t e c c p p c c a c c a c a a c = = 2 1 c c p ¾ p p a e r ¾ u p " = = d f ; ; ; ; ; ; ; ; ; ; ; ; ; ; ( ) j f 9 f 6 8 R X P X t 1 e ; : ; 2 2 e p ¾ p a e r ¾ p e = ) d f ( ( ) ) f f f f g g g f g f g g f b R A ? e ; : ; e c c p p a a a c a c = = 1 ; ; ; ; ; ; ( ( ) ) f f f f g g g f g f g f g f g f g f g g f b b b b b b A R ? ? e c c p p a a a c c a c a a c = = 1 ; ; ; ; ; ; ; ; ; ; ; ; ; ; p τ a p1 p2 c b p3 p3 État de l’art • Relations de conformité • Ensemble de refus • Ensemble d’acceptance Construction incrémentale

  18. ( ( ) ) ( ( ) ) ( ( ) ) ( ( ) ) ( ( ) ) 6 d f f d f f f 8 8 f f f f T T T T T T R A R A i i i i ¶ µ µ t t t t 2 2 ½ ½ e r c c c e o x o o c e r c n n n e o o x n n c c o o n n q q q q p p p p s s s s r r ¾ ¾ q q r r p p r r p p e c e e c q q q q ¾ ¾ p p e c p c ¾ p ¾ 1 1 : : ; ; ; ; État de l’art • Relations de conformité • Extension • Réduction p τ r b q a b p1 p2 a r1 r2 c a q1 p3 p4 Construction incrémentale

  19. Plan • Introduction • État de l’art • Raffinement vs construction incrémentale • Machines d’états UML • Contributions • Implantation des relations de conformité • Transformation des machines d’états en LTS • Formalisation d’un cadre de construction incrémentale • Raffinement d’architecture • Conclusion Construction incrémentale

  20. f f f f f f f f g f f f f g g g g g g f g g g g f g g g b d d t t t t t t t t t t t t t t t t t t t t ? ? ? a s s a s a s a s a c a c c c c c a a a a c c c c e e e e e s s s s s a p p p p p c p p = = = = = = = = = = 1 2 1 3 4 4 2 3 4 6 1 3 2 5 ( ) h i : : : : : : : : : : ; ; ; ; ; A T L t p = ! d f T e ; ; ; t a p t1 a a b c p1 p2 d τ c b t4 t2 p4 t3 p5 p3 d p6 Implantation des relations de conformité • Graphes d’acceptance • déterministe obtenu par la déterminisation du LTS p • chaque état du graphe contient deux informations: • l’ensemble d’états correspondants • l’ensemble d’acceptance après la même trace du LTS p Construction incrémentale

  21. ¦ ¦ ( ) h f h i j i ( ) h g i - % d A S ¦ T L A U L i t t t t t t t ½ ½ e r e x q q o p p p u u u u a c c q a c c u = = , , ! = ! T U ; ; ; ; : ; : ; ; ; Implantation des relations de conformité • Théorème: Soient p,q deux LTS et leur graphe d’acceptance: • . • . Construction incrémentale

  22. ( ( ) ) ( ( ( ( h h ( ) ) ) ) ( ) ) i i ( h ) h i i A M M M A M A U T L L A M V L t t t t e e x x e e e e q p r r r r g g g g e e e e p p p q q q p q p q e r g u e q p u = = = ! ! = ! U T V ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Implantation des relations de conformité • Soient p et q deux LTS, et leur graphe d'acceptance le graphe fusionné des graphes d'acceptance • Algorithme de fusion est réalisable et linéaire Construction incrémentale

  23. ¦ ( ( ) ( ( ) ) ) ( ) % f f d M M A A A c c o o n n r e q q p p q e r g e e r g p e p q q q , , ; ; : : Implantation des relations de conformité • Théorème: Soient p et q deux LTS • Corollaire: Soient p et q deux LTS Construction incrémentale

  24. Implantation des relations de conformité • Évaluation de la complexité • La déterminisation est PSPACE-complet • La vérification de simulation est linéaire • La fusion des graphes d’acceptance est linéaire • Amélioration de la performance • La minimisation observationnelle des LTS, nous permet d’avoir un temps de calcul raisonable Construction incrémentale

  25. Comparaison de performance Construction incrémentale

  26. ( ( ) f j ( ) g f j ( g ) 8 f f f T T i L R i µ ¡ 2 2 r c a o n m m q q ¾ p p r p r r r q q o n a r r e p p ¾ ) , ; . Formalisation d’un cadre de construction incrémentale • Relation de raffinement – confrestr • Proposition [Led92] Soient p,q deux LTS, q confrestr p ssi Construction incrémentale

  27. p 6 6 6 d d f f f τ t t c e r c e c r e o o x e o x n n n r b q a b p1 p2 a r1 r2 c a q1 p3 p4 p q r τ d a b d a b p1 p2 q1 p2 r1 r3 r2 a c c r4 p3 q3 Exemple de raffinement Construction incrémentale

  28. ¦ 0 ( ( ) ) 0 ( ( 0 ) ) 0 % 8 f 8 V ª T v t t t ¡ t 2 2 c o n r e s r q v v u p u p v s a e s p s o p , = ¤ 2 d f d ; : ; t \ ( ) h i M V L r e c o n r e s r r e q p q p q p t = d f e r g e u v e = ! V ; ; ; ; . Implantation de la relation confrestr • Théorème: Soient p,q deux LTS, t,u leur graphe d'acceptance et v le graphe d'acceptance fusionné • Soient p et q deux LTS, la relation red* est définie: Construction incrémentale

  29. Plan • Introduction • État de l’art • Raffinement vs construction incrémentale • Machines d’états UML • Contributions • Implantation des relations de conformité • Analyse des machines d’états UML • Formalisation d’un cadre de construction incrémentale • Raffinement d’architecture • Conclusion Construction incrémentale

  30. Analyse des machines d’états UML • Transformation des machines d’états en LTS • Association d’une sémantique LTS aux concepts UML • Méthodes et signaux des interfaces fournies ne sont pas masquées. • Signaux des interfaces requises du modèle de référence et du modèle à analyser ainsi que les méthodes privées sont masqués Construction incrémentale

  31. i 4 i i i i a a e Ø [g] e[g] S’il n’y a pas de « else » i [g]/a when(c) when(c)/a e i after delay/a after delay i a at time/a at time Transformation des machines d’états en LTS event1 event1 0 1 2 i event1 event1/action1 action1 action1 i 5 3 i a 6 7 8 noeud d’entrée ou sortie /action1 S’il n’y a pas de « else » noeud de composition 9 e [g]/a Construction incrémentale

  32. conf,ext, red…. ? SM1 SM2 SM2* ext… ? ) / ) stop Transformation UML -> LTS accept LTS2 LTS2* LTS1 τ τ h S4 τ τ τ τ τ Construction des graphes d’acceptance S6 S6 S3 S7 S7 Analyse & correction c Ag(LTS1) Ag(LTS2) Vérification des relations de conformité Échec & traces OK Exploitation des relations de conformité • Cadre d’analyse Construction incrémentale

  33. hangUp / disconReq Idle disconRec hangUp / disconReq do / listenNetwork pickUp hangUp hangUp hangUp / disconReq Idle hangUp Waiting conRec / call do / listenNetwork hangUp when(disconnected) conRec / conRefOut pickUp dial when(called) / call Connection Request Waiting hangUp / disconReq Ringing Ringing disconRec Checking do / ring do / ring do / checkNumber dial conRec / conRefOut ConnectionRequest pickUp [else] / conReq do / wait commIn / commOut commIn / commOut [conn==ack] disconRec Connected [conn==busy] / busy WaitingConnection conAckIn do / checkNetwork Connected [else] / error do / checkNetwork conRec / conRefOut Busy/Error pickUp / conAckOut when(disconnected) [con==err] / error conRefIn / busy Busy/Error disconRec Étude de cas Machine d’états de Phone Machine d’états de PhoneSpec « conf ? » Construction incrémentale

  34. Phone est-il conforme à PhoneSpec?1ère étape : construction des LTS LTS de PhoneSpec LTS de Phone conf ? Construction incrémentale

  35. x0 p i c k U p h a n g U p h a n g U p h a n g U p x1 x3 c o m m I n c o m m I 0 p i c k U p d i a l c o m m I n 0 h a n g U p 2 p i c k U p 1 p i c k U p p i c k U p 6 h a n g U p x2 p i c k U p 6 p i c k U p 1 p i c k U p 4 4 c o m m I n d i a l h a n g U p p i c k U p h a n g U p c o m m I n h a n g U p 5 d i a l h a n g U p 5 c o m m I n c o m m I n 3 3 c o m m I n 2 c o m m n I Phone est-il conforme à PhoneSpec?2e étape : construction & fusion des graphes d’acceptance Graphe d’acceptance de PhoneSpec Graphe d’acceptance de Phone n Graphe d’acceptance de la fusion La relation de simulation et l’inclusion des ensembles sont vérifiées CONFORMITÉ DÉMONTRÉE Construction incrémentale

  36. y0 w0 p i c k U p h a n g U p y2 y1 y6 p i c k U p p i c k U p p i c k U p h a n g U p p i c k U p w6 w1 w4 p i c k U p p i c k U p y4 c o m m I n d i a l h a n g U p p i c k U p h a n g U p h a n g U p w5 c o m m I n d i a l y5 y3 c o m m I n c o m m I n h a n g U p w3 c o m m I n w2 c o m m n I Phone est-il conforme à PhoneSpec?3e étape : Calcul d’une relation de simulation des graphes d’acceptance Graphe d’acceptance de Phone Graphe d’acceptance de la fusion La relation de simulation et l’inclusion des ensembles sont vérifiées CONFORMITÉ DÉMONTRÉE Construction incrémentale

  37. hangUp hangUp Idle hangUp hangUp do / listenNetwork hangUp hangUp hangUp Idle hangUp pickUp when(disconnected) do / listenNetwork hangUp when(called) / call when(disconnected) Waiting pickUp Ringing when(called) / call do / ring Waiting Ringing dial pickUp do / ring Connection Request Connected [conn==ack] commIn / commOut dial do / wait do / checkNetwork when(disconnected) ConnectionRequest pickUp when(called) / call [conn==busy] / busy do / wait stop commIn / commOut [conn==ack] [else] / error Connected Beeping [conn==busy] / busy do / checkNetwork do / beep when(disconnected) Busy/Error [else] / error stop accept Busy/Error Connected2 when(disconnected) do / checkNetwork commIn / commOut DoubleCall est-il une extension de PhoneSpec ? Machine d’états de DoubleCall Machine d’états de PhoneSpec Raffinement ? Construction incrémentale

  38. z0 h a n g U p h a n g U p p i c k U p h a n g U p 0 h a n g U p c o m m I n p i c k U p z2 z1 c o m m I n h a n g U p c o m m I n h a n g U p h a n g U p c o m m I n z5 d i a l c o m m I n s t o p s t o p h a n g U p 1 c o m m I n 3 c o m m I n a c c e p t s t o p a c c e p t z6 z3 a c c e p t s t o p d i a l c o m m I n s t o p c o m m I n a c c e p t h a n g U p s t o p 2 a c c e p t z4 a c c e p t  DoubleCall est-il une extension de PhoneSpec ? LTS de DoubleCall LTS de PhoneSpec Raffinement ? NON l’inclusion des ensembles d’acceptance n’est pas vérifiée Ensembles d’acceptance après les traces pickUp,commIn ou pickUp,dial,c {{stop, accept}, {stop, accept, commIn, hangUp}, {hangUp}} {{commIn, hangUp},{hangUp}} Construction incrémentale

  39. hangUp hangUp Idle hangUp hangUp do / listenNetwork hangUp pickUp when(disconnected) when(called) / call Waiting Ringing do / ring dial pickUp Connection Request Connected [conn==ack] commIn / commOut do / wait do / checkNetwork when(disconnected) when(called) / call [conn==busy] / busy stop [else] / error Beeping do / beep when(disconnected) Busy/Error stop accept Connected2 do / checkNetwork commIn / commOut Correction de la machine d’états DoubleCall Nouvelle version Ancienne version Construction incrémentale

  40. Plan • Introduction • État de l’art • Raffinement vs construction incrémentale • Machines d’états UML • Contributions • Implantation des relations de conformité • Analyse des machines d’états UML • Formalisation d’un cadre de construction incrémentale • Raffinement d’architecture • Conclusion Construction incrémentale

  41. Formalisation d’un cadre de construction incrémentale • Distinction de deux axes de développémént: • L’axe horizontal est lié à l'ajout de nouvelles fonctionnalités en vue d'enrichir des spécifications successives • L'axe vertical représente les niveaux d'abstraction du plus abstrait au plus concret. • Stratégies de raffinement • Stratégie h-v (horizontal-vertical) • Stratégie v-h (vertical-horizontal) • Stratégie mixte :consiste à développer de façon itérative des raffinements horizontaux et verticaux Construction incrémentale

  42. rhj rh0 rh0 rh1 rhj rh1 rhj rhm-1 imp1 imp0 rv0 rv0 rv1 rv1 S0,0 S0,1 S0,2 S0,m-1 S0,m Stratégie « h-v » S1,0 S1,2 S1,m h-v Si,0 Si,2 Si,j Si,m si,j rhj si,j+1 imp impi,j rvi rvi si+1,j si+1,j+1 Sn,0 Sn,1 Sn,2 Sn,j Sn,m rhj v-h Stratégie « v-h » Formalisation d’un cadre de construction incrémentale Construction incrémentale

  43. h h i r v ± r r ± r v m p = = i j j i i j ; Formalisation d’un cadre de construction incrémentale • Exigences locales pour des relations de raffinement • chaque relation de raffinement local est également une relation d'implantation • chaque relation de raffinement local est une relation de raffinement • Raffinement horizontal est l’extension de traces • Raffinement vertical est réduction de traces Construction incrémentale

  44. h h h h h 8 h 8 h 8 i i i i i i j i j i i i j i j j j 0 0 0 1 0 0 1 0 1 1 · · · · · · t ¡ ¡ ¡ ¡ < < < < < < r r r m v v v p ± ± r r ± r v r ± r ± r m r v v ± p r v m p r m m p p ± r r e n n n m m m = = = = = = = i i j i j i j j 1 1 + + i j i j i j 1 1 + + ; ; ; ; ; ; ; ; ; ; ; ; Exigences globales pour des relations de raffinement • Équivalence de stratégies • Proposition Construction incrémentale

  45. Mise en œuvre des relations de raffinement Construction incrémentale

  46. coins getOpCode Ready do / wait cancel coins Maintenance when(exhausted) Choose do / shutdown when (exhausted) OutOfStock drink cancel MoneyBack DrinkDelivery cancel do / giveChange do / giveDrink coins Machine Indéterministe Machine avec Maintenance Ready coins [enough] do / wait cancel coins coins [!enough] [!money] when(exhausted) Ready [!money] Choose Ready when (exhausted) OutOfStock do / wait cancel coins [m>=t] do / wait cancel coins [enough] drink when(exhausted) cancel when(exhausted) Choose Choose when (exhausted) MoneyBack DrinkDelivery cancel OutOfStock when (exhausted) cookies OutOfStock do / giveChange do / giveDrink drink drink cancel cancel cancel cancel MoneyBack GoodsDelivery MoneyBack DrinkDelivery do / giveChange do / giveGoods do / giveChange do / giveDrink [money] [money] Machine Réaliste Machine Choix Multiple Exemple Construction incrémentale

  47. ext ext MachineIndéterministe MachineAvecMaintenance red* red* red* ext ext MachineChoixMultiple MachineRéaliste ct ct ct ext ext Exemple Construction incrémentale

  48. Plan • Introduction • État de l’art • Raffinement vs construction incrémentale • Machines d’états UML • Contributions • Implantation des relations de conformité • Analyse des machines d’états UML • Formalisation d’un cadre de construction incrémentale • Raffinement d’architecture • Conclusion Construction incrémentale

  49. Raffinement d’architecture • Motivations • Bénéficier de composants réutilisables • Facilité de la maintenance du système • Problématique • calculer le comportement d'un assemblage de composants dont les comportements sont spécifiés par des ME? • garantir qu'un assemblage est conforme à une spécification exprimée par une ME • comparer des assemblages ayant même structure ou de structures différentes Construction incrémentale

  50. JobReceipt JobDeposit :A0 Idle « delegate » <<Interface>> JobDeposit <<Interface>> JobReceipt /outp(job) inp(job)/ :SingleJob :SingleJob inp(job) outp(job) « delegate » Busy do/ perform(job) SingleJob SingleJob SM -perform(job) Étude de cas • JobShop Construction incrémentale