SLIDE 1 Debugging Auto-Generated Code with Source Specification in Exploratory Modeling
Tomohiro Oda Keijiro Araki Peter Gorm Larsen
Overture Workshop 15 : New Capabilities and Applications for Model-based Systems Engineering
SLIDE 2 Agenda
- Exploratory Modeling and ViennaTalk
- Automated Code Generator as Animation Engine
- Challenges in Debugging VDM Specification on
Auto-Generated Code
- Design : Traceability
- Demo
- Summary
2
SLIDE 3 Exploratory Modeling
Exploratory modeling is to produce a specification, which is
- valid,
- feasible and
- full-featured,
followed by rigorous specification, which is
- totally defined,
- sound,
- verifiable and
- maintainable.
3
SLIDE 4
Workflow of Exploratory Modeling
4 knowledge Specification Domain Experts
Feedback Feedback Feedback
The specifier writes the spec The specifier understands the feedback The specifier analyzes the spec The specifier explains the spec to domain experts
The specifier
SLIDE 5
The Cycle of Specifying : Indivisual's task
5 knowledge Specification Domain Experts
Feedback Feedback Feedback
The specifier writes the spec The specifier understands the feedback The specifier analyzes the spec The specifier explains the spec to domain experts
The specifier
SLIDE 6
The Cycle of Learning : Collaborative task
6 knowledge Specification Domain Experts
Feedback Feedback Feedback
The specifier writes the spec The specifier understands the feedback The specifier analyzes the spec The specifier explains the spec to domain experts
The specifier
SLIDE 7 Requirement of Code Generator as Animation Engine for Exploratory Modeling
7
○ Tweak free : No need for "tuning" the spec ○ Feasibility : Closer to the production code
○ Liveness : Fixing spec in action ○ UI : non-formalist friendy ○ Connectivity : networking, legacy libraries
○ Finding : To be aware of unexpected behaviour ○ Locating : To spot the cause of the behaviour ○ Modifying : To fix the spec if necessary ○ Testing : To ensure the spec means as intended
SLIDE 8 Challenges of Code Generator as Animation Engine for Exploratory Modeling
8
○ Tweak free : No need for "tuning" the spec ○ Feasibility : Closer to the production code
○ Liveness : Fixing spec in action ○ UI : non-formalist friendy ○ Connectivity : networking, existing components
○ Finding : To be aware of unexpected behaviour ○ Locating : To spot the cause of the behaviour ○ Modifying : To fix the spec if necessary ○ Testing : To ensure the spec means as intended
SLIDE 9
1. Finding an issue 2. Locating the cause 4. Testing the new code
challenges of debugging auto-generated code
9
VDM spec generated code Substrate (GUI, networking, DB, existing components) glue code
Artifacts to fix Artifacts to observe
2. Locating the cause 3. Modifying the spec
SLIDE 10
VDMDebugger
10 call stack Smalltalk code VDM spec variables Smalltalk steps VDM steps
SLIDE 11
demo
11
SLIDE 12
traceability
from each bytecode to substring of the spec 12
SLIDE 13 Summary
Done:
- Bytecode to VDM source traceability
- Step execution in granularity of VDM and Smalltalk
Todo:
- Live modification to VDM source on VDMDebugger
- VDMPad-like diagram presentation of VDM values
13