Atanas (Nasko) Rountev Ohio State University

Slides:



Advertisements
Similar presentations
Data-Flow Analysis II CS 671 March 13, CS 671 – Spring Data-Flow Analysis Gather conservative, approximate information about what a program.
Advertisements

Data-Flow Analysis Framework Domain – What kind of solution is the analysis looking for? Ex. Variables have not yet been defined – Algorithm assigns a.
Program Representations. Representing programs Goals.
Software Design Process A Process is a set of related and (sequenced) tasks that transforms a set of input to a set of output. Inputs Outputs Design Process.
UML Class and Sequence Diagrams Violet Slides adapted from Marty Stepp, CSE 403, Winter 2012 CSE 403 Spring 2012 Anton Osobov.
Common Sub-expression Elim Want to compute when an expression is available in a var Domain:
Representing programs Goals. Representing programs Primary goals –analysis is easy and effective just a few cases to handle directly link related things.
Cpeg421-08S/final-review1 Course Review Tom St. John.
A High Performance Application Representation for Reconfigurable Systems Wenrui GongGang WangRyan Kastner Department of Electrical and Computer Engineering.
PRESTO: Program Analyses and Software Tools Research Group, Ohio State University Regression Test Selection for AspectJ Software Guoqing Xu and Atanas.
Direction of analysis Although constraints are not directional, flow functions are All flow functions we have seen so far are in the forward direction.
Projects. Dataflow analysis Dataflow analysis: what is it? A common framework for expressing algorithms that compute information about a program Why.
Recap from last time: live variables x := 5 y := x + 2 x := x + 1 y := x y...
Direction of analysis Although constraints are not directional, flow functions are All flow functions we have seen so far are in the forward direction.
PRESTO: Program Analyses and Software Tools Research Group, Ohio State University A Framework for Source-Code- Level Interprocedural Dataflow Analysis.
Software Design Processes and Management
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Precision Going back to constant prop, in what cases would we lose precision?
A Generic And Extensible Framework For Model Driven Reverse Engineering.
Static Control-Flow Analysis for Reverse Engineering of UML Sequence Diagrams Atanas (Nasko) Rountev Ohio State University with Olga Volgin and Miriam.
PRESTO Research Group, Ohio State University Interprocedural Dataflow Analysis in the Presence of Large Libraries Atanas (Nasko) Rountev Scott Kagan Ohio.
Software (Program) Analysis. Automated Static Analysis Static analyzers are software tools for source text processing They parse the program text and.
Path Testing + Coverage Chapter 9 Assigned reading from Binder.
1 A Static Analysis Approach for Automatically Generating Test Cases for Web Applications Presented by: Beverly Leung Fahim Rahman.
PRESTO: Program Analyses and Software Tools Research Group, Ohio State University Merging Equivalent Contexts for Scalable Heap-cloning-based Points-to.
Spring 2008 Mark Fontenot CSE 1341 Principles of Computer Science I Note Set 3.
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.
Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.
Static Detection of Loop-Invariant Data Structures Harry Xu, Tony Yan, and Nasko Rountev University of California, Irvine Ohio State University 1.
CASE/Re-factoring and program slicing
CBSE'051 Component-Level Dataflow Analysis Atanas (Nasko) Rountev Ohio State University.
J.E. Rivera, D. Ruiz-González, F. López-Romero, J. Bautista, and A. Vallecillo MtATL 09 Nantes, July 09.
PRESTO: Program Analyses and Software Tools Research Group, Ohio State University Merging Equivalent Contexts for Scalable Heap-cloning-based Points-to.
Karolina Muszyńska Based on: S. Wrycza, B. Marcinkowski, K. Wyrzykowski „Język UML 2.0 w modelowaniu SI”
Automatically detecting and describing high level actions within methods Presented by: Gayani Samaraweera.
1 Control Flow Analysis Topic today Representation and Analysis Paper (Sections 1, 2) For next class: Read Representation and Analysis Paper (Section 3)
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
SAD2 - UML Lecturer: Dr. Dimitrios Makris 1st Lecture
CS412/413 Introduction to Compilers Radu Rugina Lecture 18: Control Flow Graphs 29 Feb 02.
1 Control Flow Graphs. 2 Optimizations Code transformations to improve program –Mainly: improve execution time –Also: reduce program size Can be done.
Lossless Decomposition and Huffman Codes Sophia Soohoo CS 157B.
Sept 12ICSM'041 Precise Identification of Side-Effect-Free Methods in Java Atanas (Nasko) Rountev Ohio State University.
Executive Overview. Software modeling is essential, because it is the map that guides your developers. Additionally: Modeling Software  Visual information.
Object Naming Analysis for Reverse- Engineered Sequence Diagrams Atanas (Nasko) Rountev Beth Harkness Connell Ohio State University.
Interaction Models (2): Activity Diagrams Extracted from textbook: Object Oriented Modeling and Design with UML M. Blaha, J. Rumbaugh.
UML. Model An abstract representation of a system. Types of model 1.Use case model 2.Domain model 3.Analysis object model 4.Implementation model 5.Test.
Simone Campanoni CFA Simone Campanoni
UML Chapter 17.
Static Analysis of Object References in RMI-based Java Software
Basic Program Analysis
UML(Unified Modeling Language)
Object-Oriented Analysis and Design
Paul Ammann & Jeff Offutt
Dataflow analysis.
Unified Modeling Language
Introduction to Unified Modeling Language (UML)
Program Representations
University of Central Florida COP 3330 Object Oriented Programming
Building a Whole-Program Type Analysis in Eclipse
Online Shopping APP.
Factored Use-Def Chains and Static Single Assignment Forms
Control Flow Analysis CS 4501 Baishakhi Ray.
System Sequence Diagrams
Dataflow analysis.
Demand-Driven Context-Sensitive Alias Analysis for Java
Software Design Lecture : 15.
Control Flow Analysis (Chapter 7)
Interactive Exploration of Reverse-Engineered UML Sequence Diagrams
Presentation transcript:

Atanas (Nasko) Rountev Ohio State University Static Control-Flow Analysis for Reverse Engineering of UML Sequence Diagrams Atanas (Nasko) Rountev Ohio State University with Olga Volgin and Miriam Reddoch

Example of a UML Sequence Diagram start:X p:A m1() m2() m3() create() n:A opt m4() PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

Popular UML artifacts for modeling of object interactions 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) PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

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) 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 PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

Representation of Intraprocedural Flow of Control Given: the methods whose bodies will be used to construct the diagram How should we represent the intraprocedural flow of control inside these bodies? Solution: general algorithm for mapping a method’s CFG to UML 2.0 interaction fragments Any reducible exception-free CFG Precise mapping: preserves all call sequences Subsequent diagram transformations Lossless vs. lossy Visualization and exploration PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

UML 2.0 Interaction Fragments Opt, alt, loop, break; added generalized break PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

Phase I: Preprocessing Analysis Stages CFG Phase I: Preprocessing Phase II: Fragment Construction Phase III: Transformations Data Structure for Fragments PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

Phase I: Preprocessing Post-dominance tree Node n2 post-dominates n1 if all paths from n1 to exit go through n2 Immediate post-dominator; parent in the tree Analyze branch nodes What is the merge point for all branches? Analyze loops Nesting relationships What is the merge point for all loop exits? PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

Post-dominance Tree PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

Branch Nodes and Branch Successors Branch successor: node where the outgoing paths for a branch node merge the branch successor of 3 is 6 PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

Loops and Loop Successors Reducible CFG: contains only natural loops Loop successor: merge point of all paths exiting the loop the loop successor of L is 12 PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

Branch/Loop Successors Inside Loop L Consider only edges inside L Create a post-dominance tree for L and use it for: branch successors for nodes in L loop successors for loops nested in L the branch successor of 7 is 10 PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

Phase I: Preprocessing Analysis Stages CFG Phase I: Preprocessing Phase II: Fragment Construction Phase III: Transformations Data Structure for Fragments PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

Phase II: Fragment Construction TOP 1 : i = -1 PatternEntry:getChars() 2 : s = e.getChars() ALT cond: s != null 1 String:charAt(0) 3 T : s != null F Vector:indexOf(e) 4 : e = s.charAt(0) 5 : i = patterns.indexOf(e) LOOP cond: i>= 0 1 F 6 : i>=0 BREAK cond: i<0 1 breaks_from: LOOP T 1 F 7 : statusArray[i] !=0 OPT 1 cond: statusArray[i] !=0 T Vector:elementAt(i) 8 : e1 = patterns.elementAt(i) BREAK cond: e1 != null 2 breaks_from: LOOP 9: 1 e1 != null T MergeCollation:fixEntry(e1) F 10 11 : patterns.removeElementAt(i) : fixEntry(e1) Vector:removeElementAt(i) 12: exit PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

Multi-level break fragments Multiple method exits Various Issues UML additions Multi-level break fragments Multiple method exits Opt-like fragments: return fragments Algorithm uses info about control dependencies Exceptions (Java) “throw e”: similar to method exit - throw fragment Ignore catches and implicit exceptions Node replication: the same CFG node may have to produce multiple identical diagram elements e.g. due to short-circuit evaluation PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

Average Running Time per Method [milliseconds] PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

Methods Requiring Return/Throw Fragments PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

Methods Requiring Multi-level Break Fragments PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

Methods Requiring Node Replication PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05

Summary and Future Work General and fast algorithm Creates detailed and precise representation Subsequent simplifications Lossless: e.g. merge a fragment with the surrounding fragment [OSU-CISRC-3/04-TR12] Lossy: e.g. give up on multi-level breaks Interactive visualization [VISSOFT’05] Collapse and un-collapse fragments; slice the diagram w.r.t. a fragment of interest Re-implement in Eclipse and make public, together with the other analyses in RED PRESTO Research Group - Ohio State University Nasko Rountev - PASTE'05