Reading Group Fall 2007

From PROLANGS Wiki

Jump to: navigation, search


198:500:05 Light Seminar in Program Analyses for Software Tools
Index number 28633

Prolangs Reading Group -- Fall 2007
Thursdays, 2:45pm-4:30pm, CoRE B

Contents

Information

Participants in this reading group are expected to present at least one research paper during the term. We will meet once every week for approximately 90 minutes on Thursday afternoons, 2:45-4:30pm in the CoRE B conference room.

If you have any questions regarding this light seminar, please contact Prof. Ryder (ryder@cs) by email; our organizational meeting will be on Thursday, September 6th, 2007 at 2:45pm.

Schedule

  • Sept 6
Organizational meeting
  • Sept 13

No meeting, Jewish New Year holiday

  • Sept 20
Presenter: Jan Wloka
Title: Tool-supported Refactoring of Aspect-oriented Programs
Abstract:
Most software systems will have to be changed again and again, and that as long as they are alive. Ever changing requirements make it necessary to keep a software system as evolvable as possible. A technique for improving the evolvability of software systems is called 'software refactoring'. It is an essential part of modern development processes and directly tool-supported by many integrated development environments.
Today's software systems exhibit functionalities that are not modularized within a single module, i.e., they are implemented by multiple parts of the system. So-called 'crosscutting concerns' are harder to comprehend, maintain and evolve. Aspect-oriented programming (AOP) provides additional modularization concepts, in order to enable localized implementations of crosscutting concerns. Present realizations of AOP, however, impede the determinability of effects of source code changes, which essentially prevents a developer from using refactoring tools.
In this talk a brief introduction to AOP and tool-supported refactoring is given, and an approach for tool-supporting the refactoring of aspect-oriented programs is presented. The approach was developed as part of a Ph.D. thesis, in which the effects of aspect-oriented language extensions on software refactoring where investigated. The talk presents an AOP specific change impact analysis for detecting behavioral alterations in AO programs, introduces an aspect-aware refactoring process, and outlines issues with present AOP approaches, which impedes tool-supported refactoring entirely or causes undesired changes in the program's source.
Slides: pdf
  • Sept 27
Presenter: Qian Yang
Paper: C. Pacheco, S. Lahiri, M. Ernst, T. Ball, "Feedback-directed Random Test Generation", ICSE 2007
Slides: pdf
  • Oct 4
Presenter: Bruno Dufour
Paper: M. B. Dwyer, A. Kinneer, S. Elbaum, "Adaptive Online Program Analysis", ICSE 2007
Slides: pdf
  • Oct 11
Presenter: Weilei Zhang
Paper: Manu Sridharan, Stephen Fink and Rastislav Bodik, "Thin Slicing", PLDI 2007
Slides: pdf
  • Oct 18
Presenter: Tom Marlowe
Paper: Tatiana Shpeisman, "Enforcing Isolation and Ordering in STM ", PLDI 2007
  • Oct 25

No meeting, OOPSLA

  • Nov 1
  • Nov 8
Presenter: Einar W. Høst
Paper: Einar W. Høst, Bjarte M. Østvold, "The Programmer's Lexicon, Volume I: The Verbs ", SCAM 2007
  • Nov 15

No meeting, Thanksgiving

  • Nov 29
Invited speaker: Frank Tip, IBM T.J. Watson
Paper: Mandana Vaziri, Frank Tip, Stephen Fink, and Julian Dolby, "Declarative Object Identity using Relation Types", ECOOP 2007.
Abtract:
Object-oriented languages define the identity of an object to be an address-based object identifier. The programmer may customize the notion of object identity by overriding the equals() and hashCode() methods following a specified contract. This customization often introduces latent errors, since the contract is unenforced and at times impossible to satisfy, and its implementation requires tedious and error-prone boilerplate code. Relation types are a programming model in which object identity is defined declaratively, obviating the need for equals() and hashCode() methods. This entails a stricter contract: identity never changes during an execution. We formalize the model as an adaptation of Featherweight Java, and implement it by extending Java with relation types. Experiments on a set of Java programs show that the majority of classes that override equals() can be refactored into relation types, and that most of the remainder are buggy or fragile.
  • Dec 6

No meeting

  • Dec 13

List of Papers

FSE05

  • Martin P. Robillard, "Automatic Generation of Suggestions for Program Investigation", (disting paper)
  • Yichen Xie, Alex Aiken, "Context- and Path-sensitive Memory Leak Detection", (disting paper)
  • Xiangyu Zhang, Rajiv Gupta, "Matching Execution Histories of Program Versions"
  • J. Sliwerski, Thomas Zimmermann, Andreas Zeller, "HATARI: Raising Risk Awareness"

ICSE 2006

  • * Briand et al, "Automated contract-based user testing of COTS components"
  • Heine and Lam, "Static Detection of Leaks in Polymophic Containers"

PLDI 2006

  • M. Hicks et al, "Practical Dynamic SW Updating for C"
  • * S. Midkiff et al, "Artemis: Practical Runtime Monitoring of Applications for Errors"
  • Acer, "An Experimental Analysis of Self-adjusting Computation"
  • * Gupta et al, "Pruning Slices with Confidence"
  • * Arnold et al, "Onine Performance Auditing: using hot optimizations without getting burned"
  • * Sridharan, Bodik, "Refinement-based context-sensitive points-to analysis for Java"
  • * Guyer et al, "FreeMe: A static analysis for automatic individual object reclamation"
  • * Naik et al, "Effective Static Race Detection for Java"
  • Harris et al, "Optimizing memory transactions"
  • Dhurati et al, "SAFECode: Enforcing alias analysis for weakly-typed languages"
  • Berger, Zorn, "Probabilistic memory safety for unsafe languages"
  • Bridges et al, "Automatic instruction scheduler retargeting by reverse-engineering"

ISSTA 2006

  • * W. Visser et al, "Test Input Generation for Java Containers Using State Matching"
  • * Rothermel et al, "Experimental program analysis: a new analysis paradigm"
  • * Weyuker and Ostrand, "Looking for bugs in all the right places"
  • * Pistoia et al, "Role-based Access Control Consistency Validation"
  • Fink et al, "Effective Type-state Verification in the Presence of Aliasing"
  • Ball, Sagiv, Yorsh, "Testing, Abstraction, Theorem Proving: Better Together"
  • M. Boshernitsan, R. Doong and A. Alberto Savoia, "From Daikon to Agitator: Lessons and Challenges in Building a Commercial Tool For Developer Testing"

LCTES 2006

  • Regehr, Duongsaa, Cooprider, "Deriving abstract transfer functions for analyzing embedded software" and "Pluggable abstract domains for analyzing embedded software"
  • Kulkarni, Whalley, Tyson, "In search of near-optimal optimization phase orderings"

FSE06

  • * C. Liu & J. Han (U Ill) "Failure proximity: a fault-localization based approach" (related to SOBER paper at FSE05)
  • Matthew Dwyer, Suzette Person, and Sebastian Elbaum, "Controlling Factors in Evaluating Path-Sensitive Error Detection Techniques", (best paper)
  • Bhargav Gulavani, IIT Bombay, Thomas Henzinger, E P F L, Yamini Kannan, Aditya Nori, and Sriram Rajamani, Microsoft Research India,"SYNERGY: A New Algorithm for Property Checking", (best paper)

Recent Journal Papers(best paper)

  • J. Whitehead et al, "Memories of Bug Fixes"

OOPSLA 2006

  • Jonas Maebe, Dries Buytaert, Lieven Eeckhout, Koen De Bosschere, Ghent University, "JAVANA: A System for Building Customized Java Program Analysis Tools"
  • * Stephen M Blackburn et al, "The DaCapo Benchmarks: Java Benchmarking Development and Analysis"
  • Gareth Baxter et al, "Understanding the Shape of Java Software"
  • Douglas Gregor, Jaakko Jarvi, Jeremy Siek, Bjarne Stroustrup, Gabriel Dos Reis, Andrew Lumsdaine, "Concepts: First-Class Language Support for Generic Programming in C++"

ICSE 2007

  • * C. Pacheco, S. Lahiri, M. Ernst, T. Ball, "Feedback-directed Random Test Generation"
  • E. Duala-Ekoko, M. Robillard, "Tracking Code Clones in Evolving Software",(best paper)
  • * M. Dwyer, A. Kineer, S. Elbaum, "Adaptive Online Program Analysis" (cf O'Callahan et al OOPSLA05)
  • Z. Wang, S. Elbaum, D. Rosenblum, "Automated Generation of Context-Aware Tests"
  • R. Majumdar, K. Sen, "Hybrid Concolic Testing"
  • M. Pistoia, S. Fink, R. Flynn, E. Yahav, "When Role Models Have Flaws: Static Validation of Enterprise Security Policies"

PLDI 2007

  • Satish Narayanasamy, Zhenghao Wang, Jordan Tigani, Andrew Edwards and Brad Calder, "Automatically Classifying Benign and Harmful Data Races Using Replay Analysis"
  • Gary Wassermann and Zhendong Su, "Sound and Precise Analysis of Web Applications for Injection Vulnerabilities"
  • * Manu Sridharan, Stephen Fink and Rastislav Bodik, "Thin Slicing"
  • Chris Lattner, Andrew Lenharth and Vikram Adve, "Making Context-sensitive Points-to Analysis with Heap Cloning Practical For The Real World"
  • * Ben Hardekopf and Calvin Lin, "The Ant and the Grasshopper: Fast and Accurate Pointer Analysis for Millions of Lines of Code" (best paper)

PASTE 2007

  • Ana Milanova, "Light Context-Sensitive Points-to Analysis for Java"
  • Ondrej Lhotak, "Comparing Call Graphs"
  • * Ruben Brown, Roger Khazan and Micheal Zhivich , " AWE: Improving Software Analysis through Modular Integration of Static and Dynamic Analyses"

ISSTA 2007

  • Arumuga Nainar, Chen, Rosin, and Liblit, "Statistical Debugging Using Compound Boolean Predicates"
  • Jones, Bowring, and Harrold, "Debugging in Parallel" (related work to JUnit/CIA)
  • Harman and McMinn "A Theoretical and Empirical Analysis of Evolutionary Testing and Hill Climbing for Structural Test Data Generation" (search based testing)
  • Ciupa, Leitner, Oriol, and Meyer, "Experimental Assessment of Random Testing for Object-Oriented Software"
  • * Chang, Podgurski, and Yang, "Finding What's Not There: A New Approach to Revealing Neglected Conditions in Software" (distinguished paper)
  • Shoham, Yahav, Fink, and Pistoia, "Static Specification Mining Using Automata-Based Abstractions" (distinguished paper)
  • Wang and Roychoudhury, "Hierarchical Dynamic Slicing"

OOPSLA 2007

  • Bond, McKinley et al, "Tracking Bad Apples: Reporting the Origin of Null and Undefined Value Errors"
  • Foster and Ma, "Inferring Aliasing and Encapsulation Properties for Java"
  • Pothier et al, "Scalable Omniscient Debugging"
  • Andy Georges, et al "Statistically Rigorous Java Performance Evaluation"
Personal tools