Results 1 - 10
of
43
Assert and negate revisited: Modal semantics for UML sequence diagrams
- SOFTW SYST MODEL
, 2007
"... ... from necessary behavior. They thus enable the specification of rich multi-modal scenario-based properties, such as mandatory, possible and forbidden scenarios. The sequence diagrams of UML 2.0 enrich those of previous versions of UML by two new operators, assert and negate, for specifying requir ..."
Abstract
-
Cited by 68 (26 self)
- Add to MetaCart
... from necessary behavior. They thus enable the specification of rich multi-modal scenario-based properties, such as mandatory, possible and forbidden scenarios. The sequence diagrams of UML 2.0 enrich those of previous versions of UML by two new operators, assert and negate, for specifying required and forbidden behaviors, which appear to have been inspired by LSC. The UML 2.0 semantics of sequence diagrams, however, being based on pairs of valid and invalid sets of traces, is inadequate, and prevents the new operators from being used effectively. We propose an extension of, and a different semantics for this UML language—Modal Sequence Diagrams (MSD)— based on the universal/existential modal semantics of LSC. In particular, in MSD assert and negate are really modalities, not operators. We define MSD as a UML 2.0 profile, thus paving the way to apply formal verification, synthesis, and scenario-based execution techniques from LSC to the mainstream UML standard.
Parametric Trace Slicing and Monitoring
, 2008
"... Abstract. Analysis of execution traces plays a fundamental role in many program analysis approaches. Execution traces are frequently para-metric, i.e., they contain events with parameter bindings. Each paramet-ric trace usually consists of many trace slices merged together, each slice corresponding ..."
Abstract
-
Cited by 29 (7 self)
- Add to MetaCart
(Show Context)
Abstract. Analysis of execution traces plays a fundamental role in many program analysis approaches. Execution traces are frequently para-metric, i.e., they contain events with parameter bindings. Each paramet-ric trace usually consists of many trace slices merged together, each slice corresponding to a parameter binding. Several techniques have been pro-posed to analyze parametric traces, but they have limitations: some in the specification formalism, others in the type of traces they support; moreover, they share common notions, intuitions, even techniques and algorithms, suggesting that a fundamental understanding of parametric trace analysis is needed. This foundational paper gives the first solution to parametric trace analysis that is unrestricted by the type of paramet-ric properties or traces that can be analyzed. First, a general purpose parametric trace slicing technique is discussed, which takes each event in the parametric trace and distributes it to its corresponding trace slices. This parametric trace slicing technique can be used in combination with any conventional, non-parametric trace analysis, by applying the latter on each trace slice. An online monitoring technique is then presented based on the slicing technique, providing a logic-independent solution to runtime verification of parametric properties. The presented monitoring technique has been implemented and extensively evaluated. The results confirm that the generality of the discussed techniques does not come at a performance expense when compared with existing monitoring systems. 1
Dependent advice: A general approach to optimizing history-based aspects (Extended version).
, 2008
"... ABSTRACT Many aspects for runtime monitoring are history-based : they contain pieces of advice that execute conditionally, based on the observed execution history. History-based aspects are notorious for causing high runtime overhead. Compilers can apply powerful optimizations to history-based aspe ..."
Abstract
-
Cited by 23 (16 self)
- Add to MetaCart
(Show Context)
ABSTRACT Many aspects for runtime monitoring are history-based : they contain pieces of advice that execute conditionally, based on the observed execution history. History-based aspects are notorious for causing high runtime overhead. Compilers can apply powerful optimizations to history-based aspects using domain knowledge. Unfortunately, current aspect languages like AspectJ impede optimizations, as they provide no means to express this domain knowledge. In this paper we present dependent advice, a novel AspectJ language extension. A dependent advice contains dependency annotations that preserve crucial domain knowledge: a dependent advice needs to execute only when its dependencies are fulfilled. Optimizations can exploit this knowledge: we present a whole-program analysis that removes advicedispatch code from program locations at which an advice's dependencies cannot be fulfilled. Programmers often opt to have history-based aspects generated automatically, from formal specifications from modeldriven development or runtime monitoring. As we show using code-generation tools for two runtime-monitoring approaches, tracematches and JavaMOP, such tools can use knowledge contained in the specification to automatically generate dependency annotations as well. Our extensive evaluation using the DaCapo benchmark suite shows that the use of dependent advice can significantly lower, sometimes even completely eliminate, the runtime overhead caused by history-based aspects, independently of the specification formalism.
Mining modal scenario-based specifications from execution traces of reactive systems
- In ASE
, 2007
"... Specification mining is a dynamic analysis process aimed at automatically inferring suggested specifications of a program from its execution traces. We describe a novel method, framework, and tool, for mining inter-object scenario-based specifications in the form of a UML2-compliant variant of Damm ..."
Abstract
-
Cited by 22 (17 self)
- Add to MetaCart
(Show Context)
Specification mining is a dynamic analysis process aimed at automatically inferring suggested specifications of a program from its execution traces. We describe a novel method, framework, and tool, for mining inter-object scenario-based specifications in the form of a UML2-compliant variant of Damm and Harel’s Live Sequence Charts (LSC). LSC extends the classical partial order semantics of sequence diagrams with temporal liveness and symbolic class level lifelines, in order to generate compact and expressive specifications. The output of our algorithm is a sound and complete set of statistically significant LSCs (i.e., satisfying given thresholds of support and confidence), mined from an input execution trace. We locate statistically significant LSCs by exploring the search space of possible LSCs and checking for their statistical significance. In addition, we use an effective search space pruning strategy, specifically adapted to LSCs, which enables efficient mining of scenarios of arbitrary size. We demonstrate and evaluate the utility of our work in mining informative specifications using a case study on Jeti, a popular, full featured messaging application.
Scenario-based and value-based specification mining: better together
- Autom. Softw. Eng
"... Specification mining takes execution traces as input and ex-tracts likely program invariants, which can be used for com-prehension, verification, and evolution related tasks. In this work we integrate scenario-based specification mining, which uses data-mining algorithms to suggest ordering constrai ..."
Abstract
-
Cited by 22 (10 self)
- Add to MetaCart
Specification mining takes execution traces as input and ex-tracts likely program invariants, which can be used for com-prehension, verification, and evolution related tasks. In this work we integrate scenario-based specification mining, which uses data-mining algorithms to suggest ordering constraints in the form of live sequence charts, an inter-object, visual, modal, scenario-based specification language, with mining of value-based invariants, which detects likely invariants hold-ing at specific program points. The key to the integration is a technique we call scenario-based slicing, running on top of the mining algorithms to distinguish the scenario-specific invariants from the general ones. The resulting suggested specifications are rich, consisting of modal scenarios anno-tated with scenario-specific value-based invariants, referring to event parameters and participating object properties. An evaluation of our work over a number of case studies shows promising results in extracting expressive specifica-tions from real programs, which could not be extracted pre-viously. The more expressive the mined specifications, the higher their potential to support program comprehension and testing.
Planned and Traversable Play-Out: A Flexible Method for Executing Scenario-Based Programs
- Programs”, 13th Intl. Conf. on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’07
, 2007
"... Abstract. We introduce a novel approach to the smart execution of scenario-based models of reactive systems, such as those resulting from the multi-modal inter-object language of live sequence charts (LSCs). Our approach finds multiple execution paths from a given state of the system, and allows the ..."
Abstract
-
Cited by 21 (16 self)
- Add to MetaCart
(Show Context)
Abstract. We introduce a novel approach to the smart execution of scenario-based models of reactive systems, such as those resulting from the multi-modal inter-object language of live sequence charts (LSCs). Our approach finds multiple execution paths from a given state of the system, and allows the user to interactively traverse them. The method is based on translating the problem of finding a superstep of execution into a problem in the AI planning domain, and issuing a known planning algorithm, which we have had to modify and strengthen for our purposes. 1
S2A: A compiler for multi-modal UML sequence diagrams
- In Proc. Fundamental Approaches to Software Engineering (FASE’07), volume 4422 of LNCS
, 2007
"... Abstract. We report on S2A, a compiler that translates Modal UML ..."
Abstract
-
Cited by 21 (16 self)
- Add to MetaCart
(Show Context)
Abstract. We report on S2A, a compiler that translates Modal UML
Behavioral Programming
- Communications of the ACM
"... review articles doi:10.1145/2209249.2209270 A novel paradigm for programming reactive systems centered on naturally specified modular behavior. ..."
Abstract
-
Cited by 19 (8 self)
- Add to MetaCart
(Show Context)
review articles doi:10.1145/2209249.2209270 A novel paradigm for programming reactive systems centered on naturally specified modular behavior.
Mining Scenario-Based Triggers and Effects
- in ASE. IEEE
"... We present and investigate the problem of mining scenario-based triggers and effects from execution traces, in the framework of Damm and Harel’s live sequence charts (LSC); a visual, modal, scenario-based, inter-object language. Given a ‘trigger scenario’, we extract LSCs whose pre-chart is equivale ..."
Abstract
-
Cited by 19 (10 self)
- Add to MetaCart
(Show Context)
We present and investigate the problem of mining scenario-based triggers and effects from execution traces, in the framework of Damm and Harel’s live sequence charts (LSC); a visual, modal, scenario-based, inter-object language. Given a ‘trigger scenario’, we extract LSCs whose pre-chart is equivalent to the given trigger; dually, given an ‘effect scenario’, we extract LSCs whose main-chart is equivalent to the given effect. Our algorithms use data mining methods to provide significant sound and complete results modulo user-defined thresholds. Both the input trigger and effect scenarios, and the resulting candidate modal scenarios, are represented and visualized using a UML2compliant variant of LSC. Thus, existing modeling tools can be used both to specify the input for the miner and to exploit its output. Experiments performed with several applications show promising results. 1.
Clara: a Framework for Partially Evaluating Finite-state Runtime Monitors Ahead of Time
, 2010
"... Researchers have developed a number of runtime verification tools that generate runtime monitors in the form of AspectJ aspects. In this work, we present Clara, a novel framework to statically optimize such monitoring aspects with respect to a given program under test. Clara uses a sequence of incre ..."
Abstract
-
Cited by 13 (0 self)
- Add to MetaCart
Researchers have developed a number of runtime verification tools that generate runtime monitors in the form of AspectJ aspects. In this work, we present Clara, a novel framework to statically optimize such monitoring aspects with respect to a given program under test. Clara uses a sequence of increasingly precise static analyses to automatically convert a monitoring aspect into a residual runtime monitor. The residual monitor only watches events triggered by program locations that the analyses failed to prove safe at compile time. In two-thirds of the cases in our experiments, the static analysis succeeds on all locations, proving that the program fulfills the stated properties, and completely obviating the need for runtime monitoring. In the remaining cases, the residual runtime monitor is usually much more efficient than a full monitor, yet still captures all property violations at runtime.