3,237 research outputs found
Understanding Program Slices
Program slicing is a useful analysis for aiding different
software engineering activities. In the past decades, various
notions of program slices have been evolved as well as a number
of methods to compute them. By now program slicing has numerous
applications in software maintenance, program comprehension,
reverse engineering, program integration, and software testing.
Usability of program slicing for real world programs depends on
many factors such as precision, speed, and scalability, which
have already been addressed in the literature. However, only a
little attention has been brought to the practical demand: when
the slices are large or difficult to understand, which often
occur in the case of larger programs, how to give an explanation
for the user why a particular element has been included in the
resulting slice. This paper describes a reasoning method about
elements of static program slices
A Story of Parametric Trace Slicing, Garbage and Static Analysis
This paper presents a proposal (story) of how statically detecting
unreachable objects (in Java) could be used to improve a particular runtime
verification approach (for Java), namely parametric trace slicing. Monitoring
algorithms for parametric trace slicing depend on garbage collection to (i)
cleanup data-structures storing monitored objects, ensuring they do not become
unmanageably large, and (ii) anticipate the violation of (non-safety)
properties that cannot be satisfied as a monitored object can no longer appear
later in the trace. The proposal is that both usages can be improved by making
the unreachability of monitored objects explicit in the parametric property and
statically introducing additional instrumentation points generating related
events. The ideas presented in this paper are still exploratory and the
intention is to integrate the described techniques into the MarQ monitoring
tool for quantified event automata.Comment: In Proceedings PrePost 2017, arXiv:1708.0688
- …