73 research outputs found
Run-Time Verification of Black-Box Components Using Behavioral Specifications: An Experience Report on Tool Development
We introduce a generic component-based design of a run-time checker,
identify its components and their requirements, and evaluate
existing state of the art tools instantiating each component
JSExplain: a double debugger for JavaScript
We present JSExplain, a reference interpreter for JavaScript that closely follows the specification and that produces execution traces. These traces may be interactively investigated in a browser, with an interface that displays not only the code and the state of the interpreter, but also the code and the state of the interpreted program. Conditional breakpoints may be expressed with respect to both the interpreter and the interpreted program. In that respect, JSExplain is a double-debugger for the specification of JavaScript
Towards Generalizing Visual Process Patterns
Visual Process Patterns (VPP) is a visual language to describe constraints on the behavior of UML Activities. They have been developed for the sake of formulating and verifying requirements on business process models in a visual, intuitive way (with UML Activities being one possible description language). In the VPP approach, a visual process pattern is translated into an LTL formula, which can then be verified against a transition system describing the behavior of the Activity under consideration.
In this paper, we aim at generalizing VPP. We show how to formulate patterns more generally, using an enhanced version of the concrete syntax of the behavioral model under consideration. Additionally, we describe how these more general patterns can be verified against a modelâs behavior
Run-Time Assertion Checking of Data- and Protocol-Oriented Properties of Java Programs: An Industrial Case Study
Run-time assertion checking is one of the useful techniques for detecting faults, and can be applied during any program execution context, including debugging, testing, and production. In general, however, it is limited to checking state-based properties. We introduce SAGA, a general framework that provides a smooth integration of the specification and the run-time checking of both data- and protocol-oriented properties of Java classes and interfaces. We evaluate SAGA, which combines several state-of-the art tools, by conducting an industrial case study from an eCommerce software company Fredhopper
Run-Time Verification of Black-Box Components Using Behavioral Specifications: An Experience Report on Tool Development
htmlabstractWe introduce a generic component-based design of a run-time checker,
identify its components and their requirements, and evaluate
existing state of the art tools instantiating each component
Combining Monitoring with Run-Time Assertion Checking
According to a study in 2002 commissioned by a US Department, software bugs annually costs the US economy an estimated 312 billion globally.
There exists various ways to prevent, isolate and fix software bugs, ranging from lightweight methods that are (semi)-automatic, to heavyweight methods that require significant user interaction. Our own method described in this tutorial is based on automated run-time checking of a combination of protocol- and data-oriented properties of object-oriented programs
Enhancing Formal Modelling Tool Support with Increased Automation
Progress report for the qualification exam report for PhD Student Kenneth Lausdahl. Initial work on enhancing tool support for the formal method VDM and the concept of unifying a abstract syntax tree with the ability for isolated extensions is described. The tool support includes a connection to UML and a test automation principle based on traces written as a kind of regular expressions
Run-Time Assertion Checking of Data- and Protocol-Oriented Properties of Java Programs: An Industrial Case Study
htmlabstractRun-time assertion checking is one of the useful techniques for detecting faults, and can be applied during any program execution context, including debugging, testing, and production. In general, however, it is limited to checking state-based properties. We introduce SAGA, a general framework that provides a smooth integration of the specification and the run-time checking of both data- and protocol-oriented properties of Java classes and interfaces. We evaluate SAGA, which combines several state-of-the art tools, by conducting an industrial case study from an eCommerce software company Fredhopper
Visualization/animation of programs based on abstract representations and formal mappings
In the context of Alma (a system for program visualization and algorithm animation), we use an internal representation-based on the concept of an attributed abstract syntax tree decorated with attribute values, a DAST-to associate (static) figures to grammar rules (productions) and to step over program dynamics executing state changes in order to perform its animation. We do not rely upon any source program annotations (visual/animation statements, or parameters), neither on any special visual data types.
On account of such principle, the approach becomes source language independent. It means that we can apply the same visualizer and animator, that is the Alma's back-end, to different programming languages; all that we need is different front-ends to parse each program into the DAST we use.
In this paper we discuss Alma design goals and architecture, and we present the two mappings that associate to productions figures and rewriting rules to systematically draw a visual representation (exhibiting data and control flow) of a given source program and to animate its execution.FC
- …