an assume guarantee method for modular an assume
play

An Assume-Guarantee Method for Modular An Assume-Guarantee Method - PowerPoint PPT Presentation

An Assume-Guarantee Method for Modular An Assume-Guarantee Method for Modular Verification of Evolving Component-Based Software Verification of Evolving Component-Based Software Pham Ngoc Hung, Nguyen Truong Thang, and Takuya Katayama Japan


  1. An Assume-Guarantee Method for Modular An Assume-Guarantee Method for Modular Verification of Evolving Component-Based Software Verification of Evolving Component-Based Software Pham Ngoc Hung, Nguyen Truong Thang, and Takuya Katayama Japan Advanced Institute of Science and Technology – JAIST {hungpn, thang, katayama}@jaist.ac.jp

  2. Contents Contents Introduction Background A Framework for Modular Verification of Evolving CBS Assumption Regeneration Method Related Work & Conclusion 2 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

  3. Component-Based Software (CBS) Component-Based Software (CBS) Structured from a set of well-defined components � Ideally, components are plug-and-play Advantages: low development cost and time, flexible for � changes, etc. One of key issues of CBS is " component consistency " � The currently well-known technologies as CORBA, COM/DCOM or .NET, JavaBeans and EJB (Sun), etc. only support " component plugging " -> plug-and-play mechanism often fails A potential solution: modular verification based on � assume-guarantee reasoning 3 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

  4. Evolving CBS Evolving CBS A set of individual CBS evolution seems to components be an unavoidable task CBS development � Bug fixing, adding or Assume-Guarantee Verification removing some features, etc. <A(p)> F <p> � -> the whole evolved CBS <true> C 1 <A(p)> Verifying consistency must be rechecked <true> <p> F ║ C 1 among components How to recheck the CBS evolution evolved CBS by reusing • Evolving by adding the previous verification some behaviors of the existing components results? • How to recheck the evolved CBS? 4 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

  5. Background (1/3) Background (1/3) Input Labeled Transition Systems (LTSs) send in A LTS M = <Q, α M, δ , q 0 > � 1 0 2 ack Parallel Composition Operator " ║ " Output � Synchronizing the common actions send out a b c � Interleaving the remaining actions ack Safety LTS, Safety Property, Satisfiability Input ║ Output Input ║ Output � A safety LTS: a deterministic LTS that ack ack contain no π state ( π denotes the special out out 0,a 0,a 0,b 0,b 0,c 0,c error state) in in in in in in 1,a 1,a 1,b 1,b 1,c 1,c out out � A safety property is specified as a safety send send out out LTS p 2,a 2,a 2,b 2,b 2,c 2,c A LTS M satisfies p (M ╞ p) iff ∀δ ∈ L(M): � ( δ↑ α p) ∈ L(p) 5 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

  6. Background (2/3) Background (2/3) 〈 A(p) 〉 F 〈 p 〉 1. Assume-guarantee reasoning 2. 〈 true 〉 C 1 〈 A(p) 〉 � “Divide and conquer mechanism” for 〈 true 〉 F || C 1 〈 p 〉 decomposing a verification task into subtasks about the individual components of software in � <A(p)> F <p>, <true> C 1 <A(p)> both hold -> F ║ C 1 ╞ p out � To check <A(p)> F <p>: Creating p err from p: δ perr = δ p ∪ {(q,a, π )| not exist 1. q’ ∈ Q p : (q,a,q’) ∈ δ p } 2. Computing A(p) ║ F ║ p err If π is unreachable -> satisfied 3. Checking <true> C 1 <A(p)> by computing � C 1 ║ A(p) err 6 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

  7. Background (3/3) Background (3/3) Component refinement � Adding some states and transitions into the old component C 1 =<Q 1 , α C 1 , δ 1 , q 0 1 >, C 2 =<Q 2 , α C 2 , δ 2 , q 0 � 2 >: C 2 is the 2 refinement of C 1 iff Q 1 ⊆ Q 2 , δ 1 ⊆ δ 2 , q 0 1 = q 0 => L(C 1 ) ⊆ L(C 2 ) Output’ send Output send out send out refinement ack ack 7 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

  8. Contents Contents Introduction Background A Framework for Modular Verification of Evolving CBS Assumption Regeneration Method Related Work Conclusion 8 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

  9. Framework (1/2) Framework (1/2) Suppose that the system contains a framework F and an C 1 C 2 refinement extension C 1 and F ║ C 1 ╞ p A(p) Generating an assumption A(p) � Strong enough for F to satisfy p but F weak enough to be discharged by C 1 � <A(p)>F<p> and <true>C 1 <A(p)> hold � When C 1 is refined into C 2 � The goal: checking F ║ C 2 ╞ p by reusing the previous assumption A(p) 9 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

  10. Framework (2/2) Framework (2/2) C 1 C 2 Solution refinement � Only check <true>C 2 <A(p)> A(p) If yes -> F ║ C 2 ╞ p � F Otherwise, F ║ C 2 ╞ p or A(p) � is too strong for C 2 to satisfy A new (p) is generated if A(p) is too � A new assumption A new (p) is strong for C 2 to satisfy re-generated by reusing A(p) if A(p) is too strong C 2 How to generate the new A new (p) assumption A new (p)? F 10 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

  11. Assumption regeneration process Assumption regeneration process counterexample – strengthen assumption Setting A 0 =A(p) Model Checking A i false 1. A i ║ F |= p Learning true true p holds 2. C 2 |= A i in F||C 2 false cex ∉ L(A i ) N Y real p violated error? counterexample – weaken assumption in F||C 2 cex ║ F | ≠ p ? 11 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

  12. Effectiveness Effectiveness To obtain the assumption A new (p), instead of starting from λ [Cobleigh’03], we start from the previous assumption A(p) This improvement reduces some steps of the assumption regeneration process 12 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

  13. Correctness and termination Correctness and termination Theorem: Given F, C 2 is a refinement of C 1 , a property p and an assumption A(p): <A(p)>F<p>, <true>C 1 <A(p)>. The process terminates and returns A new (p) if F ║ C 2 ╞ p and false otherwise Correctness � � Guaranteed by the compositional rule � Always achieving A new (p) by starting from A(p) C 2 ╞ A(p) and C 2 ╞ A new (p) -> A new (p) is weaker than A(p) � � Termination � At any iteration, it returns true or false and terminates or continues by providing a counterexample to L* Learning |A 0 | ≤ |A 1 | ≤ … ≤ |A W | � � In the worst case: L* Learning produces A W -> terminates! 13 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

  14. Related Work Related Work Assume-guarantee verification [Cobleigh’03] � The basic case: two components C 1 , C 2 � Assumption generation by using L* algorithm Verification of evolving software [Sharygina’05] � Key idea: component substitutability analysis � Containment check: all local behavior of the old component contained in new one � Compatibility check: safety w.r.t other components in assembly OIMC [Thang&Katayama’04] � Focus on the interaction between two components Base and Extension � Deriving a set of preservation constraints at the interface states of Base 14 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

  15. Conclusion Conclusion A framework for evolving CBS verification in the context of component refinement An assumption regeneration method � Reuse the previous assumption � Reduce several steps of the process Future work � Evaluating the effectiveness formally Applying the method for some larger case studies � 15 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

  16. Thanks for your listening! Thanks for your listening! 16 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

  17. Assume-guarantee verification [Cobleigh’03] Assume-guarantee verification [Cobleigh’03] � The main ideas base on Assume-Guarantee � The system has only two components; M 1 , M 2 � The main goal: checking M 1 ║ M 2 ╞ p without composing M 1 with M 2 ? � Finding an assumption A satisfying the compositional rule by using L* � If these components are changed -> assumption generation process re-runs on the whole system from beginning 17 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

  18. Verification of evolving software [Sharygina’05] Verification of evolving software [Sharygina’05] Key idea: component substitutability analysis � Obtain a finite behavioral model of all components by abstraction � Containment check: all local behavior of the old component contained in new one � Use under- and over- approximations � Compatibility check: safety w.r.t other components in assembly � Use dynamic assume-guarantee reasoning (dynamic L*) 18 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

  19. Verification of evolving software [Sharygina’05] Verification of evolving software [Sharygina’05] Component refinement: adding and removing some behavior of component implementation Using abstraction to obtain a new model of the upgraded component Try to reuse the old assumption to verify the new system by improving L* -> dynamic L* Our opinion: adding is enough We want not only to reuse the previous assumptions but also to reuse the previous models 19 DSN 2007 – WADS, Edinburgh, UK June 27, 2007

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend