Search For:

Displaying 1-21 out of 21 total
Efficient hybrid typestate analysis by determining continuation-equivalent states
Found in: Software Engineering, International Conference on
By Eric Bodden
Issue Date:May 2010
pp. 5-14
Typestate analysis determines whether a program violates a set of finite-state properties. Because the typestate-analysis problem is statically undecidable, researchers have proposed a hybrid approach that uses residual monitors to signal property violatio...
 
Automated API Property Inference Techniques
Found in: IEEE Transactions on Software Engineering
By Martin P. Robillard,Eric Bodden,David Kawrykow,Mira Mezini,Tristan Ratchford
Issue Date:May 2013
pp. 613-637
Frameworks and libraries offer reusable and customizable functionality through Application Programming Interfaces (APIs). Correctly using large and sophisticated APIs can represent a challenge due to hidden assumptions and requirements. Numerous approaches...
 
Aspect-Oriented Race Detection in Java
Found in: IEEE Transactions on Software Engineering
By Eric Bodden, Klaus Havelund
Issue Date:July 2010
pp. 509-527
In the past, researchers have developed specialized programs to aid programmers in detecting concurrent programming errors such as deadlocks, livelocks, starvation, and data races. In this work, we propose a language extension to the aspect-oriented progra...
 
Join point interfaces for safe and flexible decoupling of aspects
Found in: ACM Transactions on Software Engineering and Methodology (TOSEM)
By Éric Tanter, Eric Bodden, Milton Inostroza
Issue Date:February 2014
pp. 1-41
In current aspect-oriented systems, aspects usually carry, through their pointcuts, explicit references to the base code. Those references are fragile and hinder important software engineering properties such as modular reasoning and independent evolution ...
     
Easily instrumenting android applications for security purposes
Found in: Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security (CCS '13)
By Eric Bodden
Issue Date:November 2013
pp. 1499-1502
Novel types of malware on mobile devices have raised researchers interest in implementing static and dynamic techniques for detecting and mitigating malicious behavior of mobile applications. In this hands-on tutorial we will demonstrate and explain differ...
     
SPLLIFT: statically analyzing software product lines in minutes instead of years
Found in: Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation (PLDI '13)
By Claus Brabrand, Eric Bodden, Márcio Ribeiro, Mira Mezini, Paulo Borba, Társis Tolêdo
Issue Date:June 2013
pp. 355-364
A software product line (SPL) encodes a potentially large variety of software products as variants of some common code base. Up until now, re-using traditional static analyses for SPLs was virtually intractable, as it required programmers to generate and a...
     
RefaFlex: safer refactorings for reflective Java programs
Found in: Proceedings of the 2012 International Symposium on Software Testing and Analysis (ISSTA 2012)
By Andreas Thies, Eric Bodden
Issue Date:July 2012
pp. 1-11
If programs access types and members through reflection, refactoring tools cannot guarantee that refactorings on those programs are behavior preserving. Refactoring approaches for highly reflective languages like Smalltalk therefore check behavior preserva...
     
Partially Evaluating Finite-State Runtime Monitors Ahead of Time
Found in: ACM Transactions on Programming Languages and Systems (TOPLAS)
By Eric Bodden, Laurie Hendren, Patrick Lam
Issue Date:June 2012
pp. 1-52
Finite-state properties account for an important class of program properties, typically related to the order of operations invoked on objects. Many library implementations therefore include manually written finite-state monitors to detect violations of fin...
     
Static flow-sensitive & context-sensitive information-flow analysis for software product lines: position paper
Found in: Proceedings of the 7th Workshop on Programming Languages and Analysis for Security (PLAS '12)
By Eric Bodden
Issue Date:June 2012
pp. 1-6
A software product line encodes a potentially large variety of software products as variants of some common code base, e.g., through the use of #ifdef statements or other forms of conditional compilation. Traditional information-flow analyses cannot cope w...
     
Towards typesafe weaving for modular reasoning in aspect-oriented programs
Found in: Proceedings of the eleventh workshop on Foundations of Aspect-Oriented Languages (FOAL '12)
By Eric Bodden
Issue Date:March 2012
pp. 1-2
In previous work, we and others have studied how aspects can implement important cross-cutting concerns, such as runtime monitors, security monitors, and other security primitives. It is hard to design aspects that implement such concerns correctly. Theref...
     
Continuation equivalence: a correctness criterion for static optimizations of dynamic analyses
Found in: Proceedings of the Ninth International Workshop on Dynamic Analysis (WODA '11)
By Eric Bodden
Issue Date:July 2011
pp. 24-28
Dynamic analyses reason about a program's concrete heap and control flow and hence can report on actual program behavior with high or even perfect accuracy. But many dynamic analyses require extensive program instrumentation, often slowing down the analyze...
     
Taming reflection: Aiding static analysis in the presence of reflection and custom class loaders
Found in: Proceeding of the 33rd international conference on Software engineering (ICSE '11)
By Andreas Sewe, Eric Bodden, Hela Oueslati, Jan Sinschek, Mira Mezin
Issue Date:May 2011
pp. 241-250
Static program analyses and transformations for Java face many problems when analyzing programs that use reflection or custom class loaders: How can a static analysis know which reflective calls the program will execute? How can it get hold of classes that...
     
Closure joinpoints: block joinpoints without surprises
Found in: Proceedings of the tenth international conference on Aspect-oriented software development (AOSD '11)
By Eric Bodden
Issue Date:March 2011
pp. 117-128
Block joinpoints allow programmers to explicitly mark regions of base code as "to be advised", thus avoiding the need to extract the block into a method just for the sake of creating a joinpoint. Block joinpoints appear simple to define and implement. Afte...
     
IDE 2.0: collective intelligence in software development
Found in: Proceedings of the FSE/SDP workshop on Future of software engineering research (FoSER '10)
By Eric Bodden, Marcel Bruch, Martin Monperrus, Mira Mezini
Issue Date:November 2010
pp. 53-58
Today's Integrated Development Environments (IDEs) only integrate the tools and knowledge of a single user and workstation. This neglects the fact that the way in which we develop and maintain a piece of software and interact with our IDE provides a rich s...
     
Dependent advice: a general approach to optimizing history-based aspects
Found in: Proceedings of the 8th ACM international conference on Aspect-oriented software development (AOSD '09)
By Eric Bodden, Feng Chen, Grigore Rosu
Issue Date:March 2009
pp. 94-104
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 op...
     
Finding programming errors earlier by evaluating runtime monitors ahead-of-time
Found in: Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering (SIGSOFT '08/FSE-16)
By Eric Bodden, Laurie Hendren, Patrick Lam
Issue Date:November 2008
pp. 1-2
Runtime monitoring allows programmers to validate, for instance, the proper use of application interfaces. Given a property specification, a runtime monitor tracks appropriate runtime events to detect violations and possibly execute recovery code. Although...
     
Racer: effective race detection using aspectj
Found in: Proceedings of the 2008 international symposium on Software testing and analysis (ISSTA '08)
By Eric Bodden, Klaus Havelund
Issue Date:July 2008
pp. 119-120
Programming errors occur frequently in large software systems, and even more so if these systems are concurrent. In the past researchers have developed specialized programs to aid programmers detecting concurrent programming errors such as deadlocks, livel...
     
Relational aspects as tracematches
Found in: Proceedings of the 7th international conference on Aspect-oriented software development (AOSD '08)
By Eric Bodden, Laurie Hendren, Reehan Shaikh
Issue Date:March 2008
pp. 1-3
The relationships between objects in an object-oriented program are an essential property of the program's design and implementation. Two previous approaches to implement relationships with aspects were association aspects, an AspectJ-based language extens...
     
The design and implementation of formal monitoring techniques
Found in: Companion to the 22nd ACM SIGPLAN conference on Object oriented programming systems and applications companion (OOPSLA '07)
By Eric Bodden
Issue Date:October 2007
pp. 939-940
In runtime monitoring, a programmer specifies a piece of code to execute when a trace of events occurs during program execution. Previous and related work has shown that runtime monitoring techniques can beuseful in order to validate or guarantee the safet...
     
Efficient trace monitoring
Found in: Companion to the 21st ACM SIGPLAN conference on Object-oriented programming languages, systems, and applications (OOPSLA '06)
By Eric Bodden, Ganesh Sittampalam, Julian Tibble, Laurie Hendren, Neil Ongkingco, Oege de Moor, Ondrej Lhotak, Pavel Avgustinov
Issue Date:October 2006
pp. 685-686
A wealth of recent research involves generating program monitors from declarative specifications. Doing this efficiently has proved challenging, and available implementations often produce infeasibly slow monitors. We demonstrate how to dramatically improv...
     
A lightweight LTL runtime verification tool for java
Found in: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications (OOPSLA '04)
By Eric Bodden
Issue Date:October 2004
pp. 306-307
Runtime verification is a special form of runtime testing, employing formal methods and languages. In this work, we utilize next-time free linear-time temporal logic (LTL\textbackslash X) as formal framework. The discipline serves the purpose of asserting ...
     
 1