1 / 10

Behavioral Composition in Symbolic Domains

Behavioral Composition in Symbolic Domains. Wolfgang Grieskamp Nicolas Kicillof Colin Campbell Foundations of Software Engineering Microsoft Research, Redmond 10/2/2005 @ AOM 2005. Model-based testing at Microsoft. Success story approx. 1k users and growing Smart testers like modeling

jaxon
Download Presentation

Behavioral Composition in Symbolic Domains

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Behavioral Composition in Symbolic Domains Wolfgang Grieskamp Nicolas Kicillof Colin Campbell Foundations of Software Engineering Microsoft Research, Redmond 10/2/2005 @ AOM 2005 W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains

  2. Model-based testing at Microsoft • Success story • approx. 1k users and growing • Smart testers like modeling • Backdoor entry • Models given as • Plain state machines • Model programs (abstract state machines) W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains

  3. Model-based testing with Spec Explorer Spec Explorer [ISSTA02, FATES03, QSIC03, ISSTA04, FATES05, FSE05,…] supports analysis and conformance testing of concurrent systems with model programs Modeling (in Spec# or AsmL) Model Program Exploration & Scenario control State Graph Test Generation Test cases Test Execution Coding Implementation Pass/Fail W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains

  4. Users want more! • Notational diversity • Models in state-based and interaction-based paradigms • Models as diagrams and in textual notations • Compositionality • Combining feature models • Merging aspect models (like test purpose) • Analyzability • Property checking • Refinement checking • Doing this independently or in composition W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains

  5. Addressing the requirements: Action Machines • Language-agnostic representation of behavior • Represent various modeling styles (state-based, scenario-based) as well as programs uniformly • Allow for many composition types • Product, alternating simulation, substitution, etc. • Incorporate symbolic state and computation • Allow for partial, aspect-oriented models • Allow to close environment symbolically (e.g. parameters to method calls) W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains

  6. Example of basic action machines: Abstract State Machines • Methods describe state transitions (Spec Explorer methodology) • State can be symbolic • Parameters of method invocations can be symbolic int count; [Action]bool Add(int x){ requires x >= 0; if (x < 10){ count += x;return true; } elsereturn false;} count := v S0 0 >= u & u < 10:Add(u)/true 0 >= u & !(u < 10): Add(u)/false S1 S2 count:=v+u count:=v W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains

  7. Example of basic action machines:Scenario machines • Control-flow oriented description of behavior • Invocations to designated actions “abstracted” • Can use symbolic parameters, choices [Action] Client.Enter();[Action] Client.Send(object msg);[Action] Client.Recv(object msg); [Scenario] void S(){ Client c = Any<Client>; c.Enter(); while (Any<bool>) c.Send(Any<object>); while (Any<bool>) Any<Client>.Recv(Any<object>);} S0 v.Enter() S1 v.Send(_) _.Recv(_) S2 _.Recv(_) W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains

  8. Compound Action Machines:Product • Contains steps both machines can do • Unification of symbolic state part • Can be used for • Scenario control (restrict behavior) • Property checking (one machine is the “anti-machine” and the product is empty if the property holds) B() C() A(v) A(u) A(1) X = v > 0 u <= 1 u = vv > 0u <= 1 W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains

  9. More composition operators • Process algebra • Product, interleaving, renaming (translation) • Temporal logics and regular expressions • Sequencing, repetition, joker, … • Refinement • Alternating simulation (conformance notion of Spec Explorer) • AOM • Substitution W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains

  10. Conclusion • Notation independence achieved • We plan to combine action machines with VS DSL tools/software factories • Model-checking and model-based testing possible • benefiting from strict semantics • No difference between a “main” model and an “aspect” model • the later is just more partial • Symbolic state exploration is key technology • helps us to naturally describe and analyze partial models and model compositions W. Grieskamp et. al: Behavioral Compositions in Symbolic Domains

More Related