We think you have liked this presentation. If you wish to download it, please recommend it to your friends in any social system. Share buttons are a little bit lower. Thank you!
Presentation is loading. Please wait.
Published byLillian Carpenter
Modified over 3 years ago
IBM Haifa Research Lab © 2007 IBM Corporation Program Sliding A Novel Approach for the Automation of Slicing-Based Refactoring June 2007 Ran Ettinger In Haifa Universitys MIS Department Seminar
IBM Haifa Research Lab © 2007 IBM Corporation 2 Agenda When Refactoring Met Slicing… Motivating example and some definitions Original Research Question (2001) –How can program slicing and related analyses assist in building automatic tools for refactoring? Initial Results (2003) Untangling: a slice extraction refactoring [AOSD04] The need for more… Final Results (2006) Sliding on top of a formal theory for slicing-based refactoring... Some Further Challenges
IBM Haifa Research Lab © 2007 IBM Corporation 3 int prod=1; for (int i=0; i
IBM Haifa Research Lab © 2007 IBM Corporation 4 int sum=computeSum(a); int prod=1; for (int i=0; i
IBM Haifa Research Lab © 2007 IBM Corporation 5 int prod=1; for (int i=0; i
IBM Haifa Research Lab © 2007 IBM Corporation 6 When Refactoring Met Slicing… Refactoring is a discipline of change –Of the internal structure of a software system –Through small and well-defined source-code transformations –That preserve the (observable) behavior of the original system (program) Slicing is the study of meaningful subprograms –Given a program and a variable (at a point) of interest, a slice of the program on that variable is a subprogram that preserves the original behavior, with respect to that variable Sliding is a mini refactoring of slice extraction –A kind of code-motion transformation, like in compilers –Trading code reusability and readability with runtime efficiency –Given a program and a variable of interest, sliding extracts the variables slice from its complement; but whats in the complement? The union of all remaining slices? or something smaller: reusing the extracted variables final value
IBM Haifa Research Lab © 2007 IBM Corporation 7 Original Research Question (2001) Initial observation: –Programmers use slices when refactoring Paraphrasing Weiser [CACM82] Context –Intercomps Cobol-to-Java –OOPSLA00 –Fowlers refactoring book [Fow] The video-store example: from procedural design to objects The research question: –How can program slicing and related analyses assist in building automatic tools for refactoring?
IBM Haifa Research Lab © 2007 IBM Corporation 8 Initial Results (2003) A definition of an Extract Slice refactoring –Generalizing Extract Method and Replace Temp with Query Nate: an Eclipse plugin –Supporting slice extraction on a small subset of Java –Supported by an Eclipse Innovation Award from IBM –With Mathieu Verbaere: the slicer and MSc thesis An investigation of untangling refactorings to introduce aspects Untangling: a slice extraction refactoring [AOSD04, with Mathieu]
IBM Haifa Research Lab © 2007 IBM Corporation 9 Initial Results (2003) - cont.: The Need for More State-of-the-art slice-extraction solutions –Tucking by Lakhotia and Deprez [IST98] –Procedure extraction by Komondoor and Horwitz [POPL00,IWPC03] –Block-based slicing by Maruyama [SSR01] Identified limitations (Nate and the related work) –Strong preconditions E.g. no duplication of assignments Leading to low applicability –Informal (unconvincing) correctness proof Observation/Realization: –Weakening of preconditions (i.e. improving applicability) will require a careful (preferably formal) investigation
IBM Haifa Research Lab © 2007 IBM Corporation 10 Final Results (2006) A formal theory of slicing-based refactoring –Based on predicate calculus and program semantics [Dijkstra and Scholten] and the refinement calculus [Back,Morgan] –Supporting a simple imperative programming language A designated slice-refinement proof method A novel program decomposition into small entities called slides A highly applicable solution to the slice-extraction refactoring problem, called sliding A concept of smaller slices called co-slicing A provably correct slicing algorithm (why is it important?)
IBM Haifa Research Lab © 2007 IBM Corporation 11 Some Further Challenges Implementing the theoretical framework and algorithms Collecting empirical results Extending to real languages Apply sliding to more refactorings (e.g. Separate Query from Modifier [Fow], arbitrary method extraction) Apply the sliding-related refactorings in bigger reengineering challenges (e.g. Convert Procedural Design to Objects [Fow], componentization, conversion to SOA) Sliding beyond refactoring (e.g. in optimizing compilers, code obfuscation)
IBM Haifa Research Lab © 2007 IBM Corporation 12 Thanks! Acknowledgements –My DPhil [Ett] supervisor Oege de Moor And Mike Spivey, supervising during Oeges sabbatical (2003) –Past and present members of the Programming Tools Group at Oxford, in particular Iván Sanabria, Yorck Hünke, Stephen Drape, Mathieu Verbaere, Damien Sereni –My thesis examiners Mark Harman and Jeremy Gibbons
IBM Haifa Research Lab © 2007 IBM Corporation 13 References [CACM82] Programmers use slices when debugging, M. Weiser, 1982 [Back] A calculus of refinements for program derivations, 1988 [Dijkstra and Scholten] Predicate calculus and program semantics, 1990 [Morgan] Programming from specifications (2nd ed.), 1994 [IST98] Restructuring programs by tucking statements into functions, A. Lakhotia and J.-C. Deprez, 1998 [FOW] Refactoring: Improving the Design of Existing Code, M. Fowler, 2000 [POPL00] Semantics-preserving procedure extraction, R. Komondoor and S. Horwitz, 2000 [SSR01] Automated method-extraction refactoring by using block-based slicing, K. Maruyama, 2001 [IWPC03] Effective automatic procedure extraction, R. Komondoor and S. Horwitz, 2003 [AOSD04] Untangling: a slice extraction refactoring, R. Ettinger and M. Verbaere, 2004 [Ett] Refactoring via Program Slicing and Sliding, DPhil thesis, 2006 –Submitted version thesis esub pdf
IBM Haifa Research Lab © 2007 IBM Corporation 14 Backup
IBM Haifa Research Lab © 2007 IBM Corporation 15 Example: Fowlers video-store
IBM Haifa Research Lab © 2007 IBM Corporation 16
IBM Haifa Research Lab © 2007 IBM Corporation 17
IBM Haifa Research Lab © 2007 IBM Corporation 18
IBM Haifa Research Lab © 2007 IBM Corporation 19
IBM Haifa Research Lab © 2007 IBM Corporation Refactoring via Program Slicing and Sliding June 2007 Ran Ettinger Software Asset Management Group In HRL.
Refactoring via Program Slicing and Sliding Ran Ettinger Programming Tools Group University of Oxford In Panayas Reading Group 2 November, 2006.
IBM Haifa Research Lab © 2008 IBM Corporation Co-Slicing for Program Comprehension and Reuse March 2008 Ran Ettinger Software Asset Management Group In.
Industrial Project (236504) Advanced programming tools for refactoring Java code in Eclipse Student: Alexander Libov Supervisor: Dr. Ran Ettinger, IBM.
1 Minding the Gap Between Slicing and Refactoring (or “Fine Slicing: A new slicing technique to yield slices whose complements are slices too”) Ran Ettinger,
IBM Haifa Research Lab © 2008 IBM Corporation Automating Big Refactorings for Componentization and the Move to SOA IBM Programming Languages and Development.
Title of your presentation goes here Subtitle if needed Your name Social Partnerships in Learning Research Consortium Charles Darwin University.
Program Slicing for Refactoring Advanced SW Tools Seminar Jan 2005Yossi Peery.
Computer Programming Basics Assistant Professor Jeon, Seokhee Assistant Professor Department of Computer Engineering, Kyung Hee University, Korea.
Chapter 14 E-Learning to Build Thinking Skills. Definition of Creative Thinking Skills “The production of original, potentially workable, solutions to.
IBM Haifa Research Lab IBM Haifa Labs An Open Source Simulation Model of Software Testing Shmuel Ur Elad Yom-Tov Paul Wernick
Food Security Policies and State Commitments: Challenges to strengthening national efforts in the context of the Hunger-Free Latin America and the Caribbean.
Troubleshooting the Library Login at Easley Library.
We want to add here all the Eleven schools that are functional. Next slide shows how it would look when we click on School of Studies.
Business Process Performance Prediction on a Tracked Simulation Model Andrei Solomon, Marin Litoiu– York University.
New Techniques and Approaches to Language Learning Information systems development: methodologies, techniques and tools. Halina Ostańkowicz- Bazan April.
IBM Haifa Labs June 23, 2015 © IBM Corporation 2004 Economics of information goods in practice – the Electronic Design Automation market Yossi Lichtenstein.
What’s Up Doc? Transforming Information Literacy Instruction with Documentary Films By Carrie Dunham-LaGree Drake University Librarian for Digital Literacy.
Slide 1 Student Presentation Software Engineering Seminar Your Name Supervisors Name SS 2015 Insert your topic name here.
Joining Talent & Technology Tooling Design for Automated Welding in the Automotive Industry.
Dialogue – Driven Intranet Search Suma Adindla School of Computer Science & Electronic Engineering 8th LANGUAGE & COMPUTATION DAY 2009.
TA “Survival Seminar” Agenda: TA Survival Seminar: Introduction and Goals What Matters to Early Career Teachers? TAs in Action! Video clips Caltech TA.
CSCI 3130: Automata theory and formal languages Andrej Bogdanov The Chinese University of Hong Kong Pushdown.
European Commission eLearning Initiative WP4 Teaching training actions l Learning by doing l Innovations l Need to learn l Learning in collaboration l.
Evaluation of software engineering. Software engineering research : Research in SE aims to achieve two main goals: 1) To increase the knowledge about.
Ontologies: Dynamic Networks of Formally Represented Meaning Dieter Fensel: Ontologies: Dynamic Networks of Formally Represented Meaning, 2001 SW Portal.
Learning From Our Students x What They Can Teach Us About Library Spaces, Services, and Research Practices 8th AMICAL Conference April 27 – 30, 2011 Beirut,
Tension between OSS divergence & user needs for interoperability Tineke M. Egyedi Delft University of Technology Contribution to: Workshop “Advancing the.
Iowa State University Department of Computer Science Artificial Intelligence Research Laboratory Research supported in part by a grant from the National.
© 2017 SlidePlayer.com Inc. All rights reserved.