Rethinking Soot for Summary-Based Whole- Program Analysis PRESTO: Program Analyses and Software Tools Research Group, Ohio State University Dacong Yan.

Slides:



Advertisements
Similar presentations
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Advertisements

A Technique for Parallel Reachability Analysis of Java Programs Raghuraman R. Sridhar Iyer G. Sajith.
Uncovering Performance Problems in Java Applications with Reference Propagation Profiling PRESTO: Program Analyses and Software Tools Research Group, Ohio.
ASSUMPTION HIERARCHY FOR A CHA CALL GRAPH CONSTRUCTION ALGORITHM JASON SAWIN & ATANAS ROUNTEV.
Generating Run-Time Progress Reports for a Points-to Analysis in Eclipse Jason Sawin, Mariana Sharp, Atanas Rountev Ohio State University.
A Regression Test Selection Technique for Aspect- Oriented Programs Guoqing Xu The Ohio State University
PRESTO: Program Analyses and Software Tools Research Group, Ohio State University Precise Memory Leak Detection for Java Software Using Container Profiling.
Dynamic Shape and Data Structure Analysis in Java Presented by Sokhom Pheng (Supervised by Clark Verbrugge) McGill University October 17 th 2005.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Software Reuse Building software from reusable components Objectives
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
1 Reusability and Portability Xiaojun Qi. 2 Reuse Concepts Reuse is the use of components of one product to facilitate the development of a different.
Scaling CFL-Reachability-Based Points- To Analysis Using Context-Sensitive Must-Not-Alias Analysis Guoqing Xu, Atanas Rountev, Manu Sridharan Ohio State.
1 Refinement-Based Context-Sensitive Points-To Analysis for Java Manu Sridharan, Rastislav Bodík UC Berkeley PLDI 2006.
PRESTO: Program Analyses and Software Tools Research Group, Ohio State University Regression Test Selection for AspectJ Software Guoqing Xu and Atanas.
Reusability and Portability Chapter 8 CSCI Reusability and Portability  The length of the development process is critical.  No matter how high.
Detecting Inefficiently-Used Containers to Avoid Bloat Guoqing Xu and Atanas Rountev Department of Computer Science and Engineering Ohio State University.
PRESTO: Program Analyses and Software Tools Research Group, Ohio State University A Framework for Source-Code- Level Interprocedural Dataflow Analysis.
Impact Analysis of Database Schema Changes Andy Maule, Wolfgang Emmerich and David S. Rosenblum London Software Systems Dept. of Computer Science, University.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
Static Control-Flow Analysis for Reverse Engineering of UML Sequence Diagrams Atanas (Nasko) Rountev Ohio State University with Olga Volgin and Miriam.
PRESTO: Program Analyses and Software Tools Research Group, Ohio State University STATIC ANALYSES FOR JAVA IN THE PRESENCE OF DISTRIBUTED COMPONENTS AND.
Thank You ©2012, Cognizant. Rapido has been created by the Research and Development team from QE&A Technology CoE Rapido is continuously enhanced and.
PRESTO Research Group, Ohio State University Interprocedural Dataflow Analysis in the Presence of Large Libraries Atanas (Nasko) Rountev Scott Kagan Ohio.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
Understanding Parallelism-Inhibiting Dependences in Sequential Java Programs Atanas (Nasko) Rountev Kevin Van Valkenburgh Dacong Yan P. Sadayappan Ohio.
JavaBeans Components. To understand JavaBeans…  Proficient experience with the Java language required  Knowledge of classes and interfaces  Object-Oriented.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
PRESTO: Program Analyses and Software Tools Research Group, Ohio State University Merging Equivalent Contexts for Scalable Heap-cloning-based Points-to.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Control in ATLAS TDAQ Dietrich Liko on behalf of the ATLAS TDAQ Group.
Object Oriented Reverse Engineering JATAN PATEL. What is Reverse Engineering? It is the process of analyzing a subject system to identify the system’s.
Frameworks CompSci 230 S Software Construction.
Static Detection of Loop-Invariant Data Structures Harry Xu, Tony Yan, and Nasko Rountev University of California, Irvine Ohio State University 1.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
CBSE'051 Component-Level Dataflow Analysis Atanas (Nasko) Rountev Ohio State University.
Bandera: Extracting Finite-state Models from Java Source Code. Paper By: James C. Corbett, Mathew Dwyer, John Hatcliff, Shawn Laubach, Corina Pasareanu,
PRESTO: Program Analyses and Software Tools Research Group, Ohio State University Efficient Checkpointing of Java Software using Context-Sensitive Capture.
ESEC/FSE-99 1 Data-Flow Analysis of Program Fragments Atanas Rountev 1 Barbara G. Ryder 1 William Landi 2 1 Department of Computer Science, Rutgers University.
Estimating the Run-Time Progress of a Call Graph Construction Algorithm Jason Sawin, Atanas Rountev Ohio State University.
Scalable Keyword Search on Large RDF Data. Abstract Keyword search is a useful tool for exploring large RDF datasets. Existing techniques either rely.
PRESTO: Program Analyses and Software Tools Research Group, Ohio State University Merging Equivalent Contexts for Scalable Heap-cloning-based Points-to.
Project Summary My project is a training tool designed to help new programming students learn to code. The project will measure the student's programming.
Detecting Inefficiently-Used Containers to Avoid Bloat Guoqing Xu and Atanas Rountev Department of Computer Science and Engineering Ohio State University.
Reachability Analysis for Callbacks 北京大学 唐浩
5/7/03ICSE Fragment Class Analysis for Testing of Polymorphism in Java Software Atanas (Nasko) Rountev Ohio State University Ana Milanova Barbara.
Sept 12ICSM'041 Precise Identification of Side-Effect-Free Methods in Java Atanas (Nasko) Rountev Ohio State University.
Object Naming Analysis for Reverse- Engineered Sequence Diagrams Atanas (Nasko) Rountev Beth Harkness Connell Ohio State University.
A Framework for Automated and Composable Testing of Component-based Services Miguel A. Jiménez, Ángela Villota, Norha M. Villegas, Gabriel Tamura, Laurence.
Chef – On Windows? And Azure? Steven Murawski
George Edwards Computer Science Department Center for Systems and Software Engineering University of Southern California
Introduction to UML and Rational Rose UML - Unified Modeling Language Rational Rose 98 - a GUI tool to systematically develop software through the following.
1 Visual Computing Institute | Prof. Dr. Torsten W. Kuhlen Virtual Reality & Immersive Visualization Till Petersen-Krauß | GUI Testing | GUI.
Precisely Selecting Regression Test for Aspect-Oriented Programs Guoqing Xu The Ohio State University
Optimizing The Optimizer: Improving Data Flow Analysis in Soot Michael Batchelder 4 / 6 / 2005 A COMP-621 Class Project.
Static Analysis of Object References in RMI-based Java Software
Modern Systems Analysis and Design Third Edition
Atanas (Nasko) Rountev Ohio State University
Rapid Application Development Model
Atanas (Nasko) Rountev Barbara G. Ryder Rutgers University
Building a Whole-Program Type Analysis in Eclipse
Modern Systems Analysis and Design Third Edition
Demand-Driven Context-Sensitive Alias Analysis for Java
Modern Systems Analysis and Design Third Edition
Automated Analysis and Code Generation for Domain-Specific Models
Interactive Exploration of Reverse-Engineered UML Sequence Diagrams
Jason Sawin, Atanas Rountev Ohio State University
FRAMEWORKS AND REUSE What is “Framework”?
Presentation transcript:

Rethinking Soot for Summary-Based Whole- Program Analysis PRESTO: Program Analyses and Software Tools Research Group, Ohio State University Dacong Yan 1, Guoqing Xu 2, Atanas Rountev 1 1 Ohio State University 2 University of California, Irvine

Overview Programs are built with reusable components – Standard libraries in Java, C++, C# – Domain-specific libraries and frameworks Whole-program analysis – Analysis of both application and library code – Methods are analyzed under different contexts Summary-based analysis – Pre-analysis of library code (summary generation) – Reuse result of pre-analysis (summary application) Challenges – Carefully designed abstractions and algorithms – Infrastructure for summary generation and application 2

Case Study: An Alias Analysis [ISSTA’11] 3 m(a) { c = new …; // o 1 a.f = c; return c.g; } d = new …; // o 2 b = m(d); // call m

Case Study: An Alias Analysis [ISSTA’11] 4 m(a) { c = new …; // o 1 a.f = c; return c.g; } d = new …; // o 2 b = m(d); // call m o1o1 sasa f sfsf ret c g d o2o2 b smsm entry m exit m a

Case Study: An Alias Analysis [ISSTA’11] 5 m(a) { c = new …; // o 1 a.f = c; return c.g; } d = new …; // o 2 b = m(d); // call m o1o1 sasa f sfsf ret c g d o2o2 b smsm entry m exit m a b alias? d

Case Study: An Alias Analysis [ISSTA’11] 6 m(a) { c = new …; // o 1 a.f = c; return c.g; } d = new …; // o 2 b = m(d); // call m o1o1 sasa f sfsf ret c g d o2o2 b smsm entry m exit m a b alias? d

Case Study: An Alias Analysis [ISSTA’11] 7 m(a) { c = new …; // o 1 a.f = c; return c.g; } d = new …; // o 2 b = m(d); // call m o1o1 sasa f sfsf ret c g d o2o2 b smsm entry m exit m a

Case Study: An Alias Analysis [ISSTA’11] 8 m(a) { c = new …; // o 1 a.f = c; return c.g; } d = new …; // o 2 b = m(d); // call m o1o1 sasa f sfsf ret c g d o2o2 b smsm entry m exit m a summary(m): sasa f, g sgsg

Experimental Evaluation 19 Java programs – For all programs, more than 50% of nodes in the call graph are methods in the Java standard library – For most programs, the percentage exceeds 80% Two experiments – Summary-based construction of program representation – Summary-based computation of graph reachability Results – Significant potential savings in analysis running time – Additional savings limited by infrastructure 9

Discussion Goal: support summary-based analysis in Soot Problems with ad-hoc extensions – Difficulty in code maintenance – Difficulty in comparing analyses – Limited benefits in summarization Issues to consider – Configuration mechanisms – Management of summary information – Verification of summary information 10

Discussion Configuration mechanisms – Customization to allow summary-based analysis – Dependence between analyses Management of summary information – Unified summary APIs – Techniques of data structure persistence – Mapping back to program entities Verification of summary information – Consistency between summary and Jimple – Code changes 11

Conclusion Case study on an alias analysis Potential savings in analysis running time with summarization Discussion on supporting summary-based analysis – Configuration mechanisms – Management of summary information – Verification of summary information 12

Thank you 13