CoreASM REFSQ 2006 1
Design Exploration and Experimental Validation of Abstract Requirements
Roozbeh Farahbod1 Vincenzo Gervasi2 Uwe Glaesser1 Mashaal Memon1
1 Simon Fraser University, Vancouver, BC 2 University of Pisa, Italy
Design Exploration and Design Exploration and Experimental - - PowerPoint PPT Presentation
Design Exploration and Design Exploration and Experimental Validation of Experimental Validation of Abstract Requirements Abstract Requirements Roozbeh Farahbod 1 Vincenzo Gervasi 2 Uwe Glaesser 1 Mashaal Memon 1 1 Simon Fraser University,
CoreASM REFSQ 2006 1
Roozbeh Farahbod1 Vincenzo Gervasi2 Uwe Glaesser1 Mashaal Memon1
1 Simon Fraser University, Vancouver, BC 2 University of Pisa, Italy
CoreASM REFSQ 2006 2
... but with controllable costs!
CoreASM REFSQ 2006 3
– Features of the language relevant for RE – Features of the architecture relevant for RE
CoreASM REFSQ 2006 4
– Languages, protocols, reactive/embedded systems,
– Several books and hundreds of papers published
– All of them targeted at detailed specification
CoreASM REFSQ 2006 5
– Design, specify and implement a language and
– Make rapid prototyping of abstract specifications
– Provide all the advantages of executable
CoreASM REFSQ 2006 6
– Each function name has an arity – Nullary functions are called constants – The constants true, false, undef are always defined
– If f is an n-ary function name of Σ, then fA: Xn→X – If c is a constant of Σ, then cA∈X
– The value of a dynamic function can change from state to
CoreASM REFSQ 2006 7
– The contents of l in A are fA(a1,...,an)
– Update u=(l,v) – Update set U is a set of updates – An update set is consistent if there are no clashing updates
CoreASM REFSQ 2006 8
– Updates: f(a1,...,an):=v – Conditional: if b then P else Q – Sequence and Parallel: P seq Q, P par Q – Parallelism and nondeterminism: forall and choose
CoreASM REFSQ 2006 9
CoreASM REFSQ 2006 10
Ground model Detailed ground model
Code
Design Construction Coding
…
CoreASM AsmL, XASM, … Implementation
Refinement
Abstract Model
CoreASM REFSQ 2006 11
– High-level design – Experimental validation – Formal verification
CoreASM REFSQ 2006 12
– Animation, tracing, validation, model checking, etc.
– Features of the language – Features of the architecture
CoreASM REFSQ 2006 13
– Types can be declared and if they are, the spec will
– But they are not compulsory – Even better, partial typing is possible – Spontaneous casts (e.g., from “12” to 12) as
– Same spirit as scripting languages
– Encourages experimentation, – avoids early commitment
CoreASM REFSQ 2006 14
– Oracle functions (e.g., value input by user) – Abstract macros (e.g., executed symbolically)
– No confusion between abstraction and ambiguity
– Scheduling policy can be left arbitrary or specified
CoreASM REFSQ 2006 15
CoreASM REFSQ 2006 16
– New backgrounds
– New rule forms
– New scheduling and choosing policies
– Extensions to the execution cycle
CoreASM REFSQ 2006 17
Standard Numbers Sets Time
CoreASM Engine CoreASM Engine
CoreASM REFSQ 2006 18
Applications
Testing Environment Graphical UI Verification Environment Control API
Abstract Storage Interpreter Scheduler Parser
CoreASM Engine
CoreASM REFSQ 2006 19
Applications
Testing Environment Graphical UI Verification Environment Control API
Abstract Storage Interpreter Scheduler Parser
CoreASM Engine
CoreASM REFSQ 2006 20
– Kernel provides the bare minimum structure
– Other language elements are provided by plug-ins
– Standard ASM features are provided by plug-ins in
– Custom extensions can be implemented by custom
CoreASM REFSQ 2006 21
Example: Loading Specifications
CoreASM REFSQ 2006 22
– register itself to be called before the parsing mode – read the indentation and convert it to par-endpar
CoreASM REFSQ 2006 23
CoreASM REFSQ 2006 24
– Instantiation of objects (create o as JavaClass) – Calling methods, accessing fields (invoke o->m(...)) – Marshalling and unmarshalling (as spontaneous
– Marshalling and unmarshalling of Collection and
CoreASM REFSQ 2006 25
– Running self-checking, side-to-side parallel runs to
– Accessing special OS interfaces from CoreASM
– Adding GUIs or GUI mock-ups to specifications
– CoreASM engine can be called from Java – Two-way interaction possible
CoreASM REFSQ 2006 26
– The kernel – Basic ASM and Turbo ASM rule forms – Numbers and Sets
– The kernel (minus a few low-priority functions) – Most rule forms – Numbers, Sets, Strings, etc. – GUI (still rough edges, though)
CoreASM REFSQ 2006 27
CoreASM REFSQ 2006 28
– These do not exist in traditional ASMs
– Integration with modeling and development
CoreASM REFSQ 2006 29
– Preservation of pure ASM semantics – Ensuring freedom through extensibility
CoreASM REFSQ 2006 30
–
Validation and verification through executable specifications
–
A formal specification method which is designed to be low-cost and executable, yet scalable to full-fledged formality
–
Support adoption of ASMs in industry
–
Make formal methods practical in RE context
paper?
–
Work in progress, effectiveness unproven
–
Risk of loosing advantages of hard FMs if too much “hardness” is removed
–
ASMs are known to scale well (they have been used for large real-life problems)
–
Scalability of investment and extensibility unproven, but apparently possible