Object Naming Analysis for Reverse- Engineered Sequence Diagrams Atanas (Nasko) Rountev Beth Harkness Connell Ohio State University.

Slides:



Advertisements
Similar presentations
Dataflow Analysis for Datarace-Free Programs (ESOP 11) Arnab De Joint work with Deepak DSouza and Rupesh Nasre Indian Institute of Science, Bangalore.
Advertisements

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.
Saumya Debray The University of Arizona Tucson, AZ
Object-oriented Software Change Dynamic Impact Analysis Lulu Huang and Yeong-Tae Song Dept. of Computer and Information Sciences Towson University Towson,
Go with the Flow: Profiling Copies to Find Run-time Bloat Guoqing Xu, Matthew Arnold, Nick Mitchell, Atanas Rountev, Gary Sevitsky Ohio State University.
Generating Run-Time Progress Reports for a Points-to Analysis in Eclipse Jason Sawin, Mariana Sharp, Atanas Rountev Ohio State University.
1 Practical Object-sensitive Points-to Analysis for Java Ana Milanova Atanas Rountev Barbara Ryder Rutgers University.
Unified Modeling Language
Object-Oriented Analysis and Design
Parameterized Object Sensitivity for Points-to Analysis for Java Presented By: - Anand Bahety Dan Bucatanschi.
Investigating JAVA Classes with Formal Concept Analysis Uri Dekel Based on M.Sc. work at the Israeli Institute of Technology. To appear:
Recap from last time We were trying to do Common Subexpression Elimination Compute expressions that are available at each program point.
Design of Web-based Systems IS Development: lecture 10.
Next Section: Pointer Analysis Outline: –What is pointer analysis –Intraprocedural pointer analysis –Interprocedural pointer analysis (Wilson & Lam) –Unification.
Previous finals up on the web page use them as practice problems look at them early.
Range Analysis. Intraprocedural Points-to Analysis Want to compute may-points-to information Lattice:
Automatically Extracting and Verifying Design Patterns in Java Code James Norris Ruchika Agrawal Computer Science Department Stanford University {jcn,
Intraprocedural Points-to Analysis Flow functions:
PRESTO: Program Analyses and Software Tools Research Group, Ohio State University Regression Test Selection for AspectJ Software Guoqing Xu and Atanas.
Overview of program analysis Mooly Sagiv html://
Reps Horwitz and Sagiv 95 (RHS) Another approach to context-sensitive interprocedural analysis Express the problem as a graph reachability query Works.
PRESTO: Program Analyses and Software Tools Research Group, Ohio State University A Framework for Source-Code- Level Interprocedural Dataflow Analysis.
Pointer analysis. Pointer Analysis Outline: –What is pointer analysis –Intraprocedural pointer analysis –Interprocedural pointer analysis Andersen and.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Impact Analysis of Database Schema Changes Andy Maule, Wolfgang Emmerich and David S. Rosenblum London Software Systems Dept. of Computer Science, University.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 2: Modelling.
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.
PRESTO Research Group, Ohio State University Interprocedural Dataflow Analysis in the Presence of Large Libraries Atanas (Nasko) Rountev Scott Kagan Ohio.
Control Flow Resolution in Dynamic Language Author: Štěpán Šindelář Supervisor: Filip Zavoral, Ph.D.
Understanding Parallelism-Inhibiting Dependences in Sequential Java Programs Atanas (Nasko) Rountev Kevin Van Valkenburgh Dacong Yan P. Sadayappan Ohio.
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 13 Java on Various Computer Platforms.
PRESTO: Program Analyses and Software Tools Research Group, Ohio State University Merging Equivalent Contexts for Scalable Heap-cloning-based Points-to.
Computer Science 340 Software Design & Testing UML Sequence Diagrams.
Coverage Criteria for Testing of Object Interactions in Sequence Diagrams Atanas (Nasko) Rountev Scott Kagan Jason Sawin Ohio State University.
Rethinking Soot for Summary-Based Whole- Program Analysis PRESTO: Program Analyses and Software Tools Research Group, Ohio State University Dacong Yan.
Starting Object Design
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Mark Marron 1, Deepak Kapur 2, Manuel Hermenegildo 1 1 Imdea-Software (Spain) 2 University of New Mexico 1.
Software Engineering 1 Object-oriented Analysis and Design Chap 22 UML Tools and UML as Blueprint.
Mark Marron IMDEA-Software (Madrid, Spain) 1.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Static Detection of Loop-Invariant Data Structures Harry Xu, Tony Yan, and Nasko Rountev University of California, Irvine Ohio State University 1.
CBSE'051 Component-Level Dataflow Analysis Atanas (Nasko) Rountev Ohio State University.
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.
PRESTO: Program Analyses and Software Tools Research Group, Ohio State University Merging Equivalent Contexts for Scalable Heap-cloning-based Points-to.
Generating Software Documentation in Use Case Maps from Filtered Execution Traces Edna Braun, Daniel Amyot, Timothy Lethbridge University of Ottawa, Canada.
Detecting Inefficiently-Used Containers to Avoid Bloat Guoqing Xu and Atanas Rountev Department of Computer Science and Engineering Ohio State University.
The Omondo EclipseUML plug-in David Gallardo. What is UML A graphical language Not a development method It was designed for RUP—the Rational Unified Process,
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 Oriented Programming and Data Abstraction Earl Huff Rowan University.
1PLDI 2000 Off-line Variable Substitution for Scaling Points-to Analysis Atanas (Nasko) Rountev PROLANGS Group Rutgers University Satish Chandra Bell Labs.
SOOT By Joe Palmer Information taken from
Object Oriented Analysis & Design By Rashid Mahmood.
Phoenix Based Dynamic Slicing Debugging Tool Eric Cheng Lin Xu Matt Gruskin Ravi Ramaseshan Microsoft Phoenix Intern Team (Summer '06)
Static Analysis of Object References in RMI-based Java Software
Atanas (Nasko) Rountev Ohio State University
Atanas (Nasko) Rountev Barbara G. Ryder Rutgers University
Building a Whole-Program Type Analysis in Eclipse
Points-to Analysis for Java Using Annotated Constraints
Online Shopping APP.
Demand-Driven Context-Sensitive Alias Analysis for Java
Software Design Lecture : 15.
Pointer analysis.
Interactive Exploration of Reverse-Engineered UML Sequence Diagrams
Jason Sawin, Atanas Rountev Ohio State University
Presentation transcript:

Object Naming Analysis for Reverse- Engineered Sequence Diagrams Atanas (Nasko) Rountev Beth Harkness Connell Ohio State University

Nasko Rountev - ICSE'05 2 Example of a UML Sequence Diagram start:X m1() p:A m2() n:A m3() create() m4()

Nasko Rountev - ICSE'05 3 UML Sequence Diagrams  Popular UML artifacts for modeling of object interactions  Design-time sequence diagrams  Reverse-engineered sequence diagrams  Based on existing code  Iterative development; design recovery for software maintenance; software testing  Implemented in some commercial UML tools  Together ControlCenter (Borland)  EclipseUML (Omondo)

Nasko Rountev - ICSE'05 4 Reverse-Engineering Analyses  Dynamic analysis: tracks a set of representative run-time executions  Several research tools  Static analysis: examines only the code  Commercial tools (deficiencies)  Some research work (not comprehensive)  REDPRESTO  RED tool for Java: PRESTO group at OSU  URL: presto.cse.ohio-state.edu/red  Call chain analysis; control-flow analysis; object naming analysis; visualization and navigation; test coverage measurements

Nasko Rountev - ICSE'05 5 Object Naming class X { void m1(A p) { p.m2(this) A a = p.m2(this) ; a.m4() ; } void m3() { … } } class A { A m2(X q) { q.m3() q.m3() ; A() return new A() ; } void m4() { … } } start:X m1 p:A m2 q:X m3 a:A m4 n:A create

Nasko Rountev - ICSE'05 6 Object Naming Schemes  Based on variable names  Same run-time object could be represented by several diagram objects  Different run-time objects could be represented by the same diagram object  Handling of instance fields  Based on points-to analysis  Does not work either  Based on a new object naming analysis  “Inspired” by constant propagation analysis

Nasko Rountev - ICSE'05 7 Flow of Seed Values class X { void m1(A p) { A a = p.m2(this) ; a.m4() ; } void m3() { … } } class A { A m2(X q) { q.m3() ; return new A() ; } void m4() { … } } p:A m2 start:X m1 m3 m4 n:A create

Nasko Rountev - ICSE'05 8 Singleton Call Sites  Singleton call site  Only one possible run-time receiver object  Receiver comes from a specific seed value:  Formal of the start method (incl. this)  A new X() expression that is provably executed at most once  How about non-singleton call sites? A a = p.m2(this) ; if (…) a = new A() ; a.m4() ;

Nasko Rountev - ICSE'05 9 Naming Analysis for Singleton Call Sites  Goal: static analysis that identifies singleton call sites and their seed values  Version 1 of the analysis  Interprocedural dataflow analysis, similar to interprocedural copy constant propagation  CFGs, dataflow lattice, dataflow functions  Three-phase algorithm; flow- and context- sensitive; an IDE analysis; MVP-precise  Version 2 of the analysis  Various enhancements

Nasko Rountev - ICSE'05 10 start_m1 p.m2(this) a=m2_ret_val a.m4() m4_ret end_m1 if(…)a=new A() 1 start_m2 q.m3() m3_ret m2_ret_val=new A() 2 end_m2 Lattice elements: L this, L p, L n1, L n2,  m2rv  L n2 a  L n1 a  L n2 aaaa this  L this q  L this

Nasko Rountev - ICSE'05 11 Handling of Fields  Version 1: conservative treatment  a=b.fa=C.sf  a  a=b.f or a=C.sf results in value  for a  Version 2: more precise C.sf  Static field C.sf that is not modified by any method reachable from the start method  Treated as a seed value f  Instance field f: not modified by any method reachable from the start method  a=b.f x bx.f  a=b.f, and the algorithm computes seed value x for b: introduce new seed value x.f x.f1.f2.f3.f4  Iterative: e.g. could have x.f1.f2.f3.f4

Nasko Rountev - ICSE'05 12Experiments  21 subjects components from Java libraries and applications  For each component, the analysis was executed multiple times, once for each (non-trivial) potential start method  Implementation  Uses Soot (Sable group, McGill)  Uses several optimization techniques  Experiments: Sun Fire 280-R, 900 MHz

Nasko Rountev - ICSE'05 13 Number of Start Methods

Nasko Rountev - ICSE'05 14 Analysis Running Time [sec]

Nasko Rountev - ICSE'05 15 % Singleton Call Sites

Nasko Rountev - ICSE'05 16 Singleton Call Sites  Considered call chain depth up to 5  For 18 of the 21 components: > 75% of the call sites were singleton sites  For 7 of the 21 components: > 90%  Examined component bigdecimal (55%)  143 call sites that could not be resolved  125 of the 143 were legitimately non- singleton: multiple possible run-time objects  Conclusion: typically, the majority of call sites can be represented precisely in the reverse-engineered sequence diagrams

Nasko Rountev - ICSE'05 17 Conclusions and Future Work  Low-cost, high-precision analysis  Relatively simple to implement  There is some room for improvement  For non-singleton call sites: need careful investigation of trade-offs between different approaches  Some preliminary work under way RED  Re-implement in Eclipse and make public, together with the other analyses in RED

Nasko Rountev - ICSE'05 18 Questions?