MULTIVIE W 1 Improving Refactoring with Alternative Program Views Emerson Murphy-Hill.

Slides:



Advertisements
Similar presentations
Outsourcing functional web usability: A practical approach to effective web enhancements improving user experience. Mark Paul University of Louisville.
Advertisements

By Veronika Movagharianpour and Adam Brakel. Software Developers face challenges:  Producing high-quality software  with low-defect levels  while doing.
A Brief Introduction to Test- Driven Development Shawn M. Jones.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp Presented by: Gleyner Garden EEL6883 Software Engineering II.
CHAPTER 1: AN OVERVIEW OF COMPUTERS AND LOGIC. Objectives 2  Understand computer components and operations  Describe the steps involved in the programming.
Peer Interaction Effectively, yet Infrequently, Enables Programmers to Discover New Tools Emerson Murphy-Hill North Carolina State University Gail Murphy.
Refactoring By: Brian Smith. What is Refactoring? Definition: a change to the internal structure of software to make it easier to understand and cheaper.
MULTIVIE W Slide 1 (of 21) Removing Duplication from java.io: a Case Study using Traits Emerson R. Murphy-Hill, Philip J. Quitslund, Andrew P. Black Maseeh.
Programmer-Friendly Refactoring Tools Emerson Murphy-Hill Advisor: Andrew Black Thanks to: Barry Anderson, Sergio Antoy, Robert Bauer, Paul Berry, Dan.
1 How We Refactor, and How We Know It Emerson Murphy-Hill Portland State (now UBC) Chris Parnin Georgia Tech Andrew Black Portland State Thanks to Ki-Yung.
UI Standards & Tools Khushroo Shaikh.
Multiview research High Velocity Refactorings In Eclipse Emerson Murphy-Hill and Andrew P. Black Eclipse Technology Exchange October 21, 2007.
1 A Web-Based Integral Evaluator: A Demonstration of the Successful Integration of WebEQ, Maple, and Java Wanda M. Kunkle Department of Mathematics & Computer.
© Wolfgang Pelz Introduction Object-Oriented Methods: Analysis, Design & Programming Dr. Wolfgang Pelz Dr. Yingcai Xiao The University of Akron.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Eclipse as a Teaching Platform for Kenya Student: Thomas Timbul (MEng 4) Supervised by: Robert Chatley.
Knowledge Science & Engineering Institute, Beijing Normal University, Analyzing Transcripts of Online Asynchronous.
MASTERS THESIS DEFENSE QBANK A Web-Based Dynamic Problem Authoring Tool BY ANN PAUL ADVISOR: PROFESSOR CLIFF SHAFFER JUNE 2013 Computer Science Department.
1 Chapter One A First Program Using C#. 2 Objectives Learn about programming tasks Learn object-oriented programming concepts Learn about the C# programming.
A First Program Using C#
A Survey of Software Refactoring Tom Mens, Tom Tourwé
HagIT: The future is in your hands Designed and presented by: Hamza Khurshid Ahmad Ghunaim Ghassan Knayzeh.
Eclipse – making OOP Easy
Advanced Programing practices
Algorithms and Programming
Department of Computer Science A Static Program Analyzer to increase software reuse Ramakrishnan Venkitaraman and Gopal Gupta.
Sadegh Aliakbary Sharif University of Technology Spring 2012.
T-unit: Tcl Unit Test Package Automated Unit Test Package For Tcl Procedures Final Presentation Joseph Boyle Loyola Marymount University.
Refactoring Improving the structure of existing code Refactoring1.
17-Oct-15 Refactoring. 2 Refactoring is: restructuring (rearranging) code......in a series of small, semantics-preserving transformations (i.e. the code.
Assessing the Frequency of Empirical Evaluation in Software Modeling Research Workshop on Experiences and Empirical Studies in Software Modelling (EESSMod)
Department of Computer Science, Graduate School of Information Science & Technology, Osaka University Inoue Laboratory Eunjong Choi 1 Investigating Clone.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Methodologies of the SDLC Traditional Approach to SDLC Object-Oriented Approach to SDLC CASE Tools.
1 Modeling interactions and behavior Lecturer Dr. Mai Fadel.
Refactoring1 Refactoring DEPARTMENT OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING CONCORDIA UNIVERSITY February 6, 2009.
Composition of UML Described Refactoring Rules Presented by Chin-Yi Tsai.
Advanced Programming in Java
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 10 Slide 1 Chapter 13 Finalizing Design Specifications.
SilkTest 2008 R2 SP1: Silk4J Introduction. ConfidentialCopyright © 2008 Borland Software Corporation. 2 What is Silk4J? Silk4J enables you to create functional.
Application of Design Heuristics in the Designing and Implementation of Object Oriented Informational Systems.
Sadegh Aliakbary Sharif University of Technology Spring 2011.
Com S 362: Object-Oriented Analysis and Design Refactoring.
Industrial Project (236504) Advanced programming tools for refactoring Java code in Eclipse Student: Alexander Libov Supervisor: Dr. Ran Ettinger, IBM.
Generating Software Documentation in Use Case Maps from Filtered Execution Traces Edna Braun, Daniel Amyot, Timothy Lethbridge University of Ottawa, Canada.
Refactoring Mehdi Einali Advanced Programming in Java 1.
SEG 4110 – Advanced Software Design and Reengineering Topic T Introduction to Refactoring.
Writing to Teach - Tutorials Chapter 2. Writing to Teach - Tutorials The purpose of a tutorial is to accommodate information to the needs of the user.
Object Oriented Programming Criteria: P2 Date: 07/10/15 Name: Thomas Jazwinski.
Pertemuan 12 Refactoring Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010.
Chapter 13 Finalizing Design Specifications
Integrated Development Environments (IDEs) CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila.
Do Metrics Help to Identify Refactoring? Jean-Guy Schneider Rajesh Vasa
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
4 - Conditional Control Structures CHAPTER 4. Introduction A Program is usually not limited to a linear sequence of instructions. In real life, a programme.
Software Design and Development Development Methodoligies Computing Science.
Refactoring Tools – Proparse, Prorefactor, Prolint etc. Steven Lichtenberg Sr. Technologist Jenark Business Systems, Inc.
Defects of UML Yang Yichuan. For the Presentation Something you know Instead of lots of new stuff. Cases Instead of Concepts. Methodology instead of the.
Your Best Friend Cooking Assistant and Educational Resource Learner: Tim Bair Advisor: Dr. Hazem Said a time-saving tool for meal planning, grocery shopping,
Auburn University COMP 2710 Software Construction Use Case Analysis – Examples and Exercises Dr. Xiao Qin Auburn University.
Principles and examples
Lesson 9 Sharing Documents
Advanced Programming in Java
Flip Animated Road Sign
: Clone Refactoring Davood Mazinanian Nikolaos Tsantalis Raphael Stein
Mock Object Creation for Test Factoring
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Advanced Programming Behnam Hatami Fall 2017.
Advanced Programing practices
Presentation transcript:

MULTIVIE W 1 Improving Refactoring with Alternative Program Views Emerson Murphy-Hill

MULTIVIE W 2 The Problem with Software Development Tools Software development tools could be a great boon to productivity and program correctness. But current tools can be difficult to use, so much so that developers may be discouraged from using them. How can we improve tools so that programmers are more likely to understand and adopt them?

MULTIVIE W 3 Outline Introduction to Refactoring Usability Problems with Current Refactoring Tools New, More Usable Refactoring Tools An Experiment to Compare Current to New Refactoring Tools Conclusions

MULTIVIE W 4 Introduction to Refactoring Refactoring is restructuring programs while preserving behavior Examples: renaming variables and methods, encapsulating instance variables, inline method… Refactoring is good for: –Making programs more understandable –Allowing features to be added more easily –Keeping program development agile Automated Tools  Behavior-Preservation

MULTIVIE W 5 Extract Method: Crossing Refactoring’s Rubicon Take a list of statements, move them to a new method, then replace the original statements with a call to the new method (demo)

MULTIVIE W 6 Refactoring Process with Tools Pick a Code Segment Select the Code Segment Choose a Name for the New Method (Tool executes code change) Optional: Inspect the New Method “method of same name already exists…” Change name of other method

MULTIVIE W 7 Outline Introduction to Refactoring Usability Problems with Current Refactoring Tools New, More Usable Refactoring Tools An Experiment to Compare Current to New Refactoring Tools Conclusions

MULTIVIE W 8 What problems do programmers have during Extract Method? Performed an exercise with programmers, mostly from this department –9 of 11 programmers encountered an error during Extract Method –One programmer succeeded in only 11 of 34 attempts to extract a method –Programmers frequently had problems selecting whole statements –Programmers had problems understanding error messages –Errors discouraged the programmer from refactoring

MULTIVIE W 9 Outline Introduction to Refactoring Usability Problems with Current Refactoring Tools New, More Usable Refactoring Tools An Experiment to Compare Current to New Refactoring Tools Conclusions

MULTIVIE W 10 Some Tool Improvements Based on the formative exercise, I created three views to improve the process Two for Selection –“Selection Assist” –“Box View” One for Interpreting Errors –“Refactoring Annotations” Tools are available at

MULTIVIE W 11 Selection Assist Important Qualities of this View: –It’s lightweight – doesn’t slow down the common case –Programmer selection time is proportional to statement length –Programmer can use keyboard or mouse

MULTIVIE W 12 Tools Similar to Selection Assist

MULTIVIE W 13 Box View Important Qualities of this View: –Abstracts away code formatting –Selection time is constant for any statement –Programmer can use keyboard or mouse

MULTIVIE W 14 A Tool Similar to Box View Adobe GoLive

MULTIVIE W 15 Refactoring Annotations Important Qualities of this View: –Indicates the location of errors –Indicates errors relationally (colors, arrows) –Indicates every error (overlaid) –Errors cues are distinguishable –Indicates the amount of work required to recover from error –Distinguishes showstoppers ( X s) from advisories

MULTIVIE W 16 Tools Similar to Refactoring Annotations Dr. Scheme Eclipse Control Structure Diagrams

MULTIVIE W 17 Outline Introduction to Refactoring Usability Problems with Current Refactoring Tools New, More Usable Refactoring Tools An Experiment to Compare Current to New Refactoring Tools Conclusions

MULTIVIE W 18 Experiments: Compare Tools Old Tools Keyboard/Mouse Eclipse Extract Method Wizard New Tools Selection Assist Box View Refactoring Annotations Subjects were 16 students from Professor Black’s Object-Oriented programming class.

MULTIVIE W 19 Selection Experiment Question –Which selection tools help programmers select statements most accurately and quickly? Methodology –Subjects select all if statements in real code, assisted by Keyboard/Mouse, Selection Assist, and Box View Measurements –Whether each if statement was selected correctly –The time between consecutive selections

MULTIVIE W 20 Selection Results Mis-Selected If Statements Correctly Selected If Statements Mean selection time (seconds) Normalized Selection Time Mouse/Keyboard % Selection Assist % Box View % *All Users Combined*

MULTIVIE W 21 Subjects’ Opinions –31% said the mouse/keyboard was helpful –94% said Selection Assist was helpful –81% said Box View was helpful –94% said they were likely to use Selection Assist again –63% said they were likely to use Box View again

MULTIVIE W 22 Extraction Experiment Question –Which Extract Method tools help programmers understand errors most accurately and quickly? Methodology –Subjects are given an un-extractable method and told to identify the location of each error using the Eclipse Extract Method Wizard and Refactoring Annotations Measurements –Whether each error was identified correctly –How long it takes to identify all errors correctly

MULTIVIE W 23 Extraction Results Failed to Identify Error Identified Non- error Mean Elapsed Time (seconds) Eclipse Wizard Refactoring Annotations 1646 *All Users Combined*

MULTIVIE W 24 Subjects’ Opinions –56% said Eclipse Wizard was helpful –100% said Refactoring Annotations were Helpful –62% were likely to use Eclipse Wizard again –100% were likely to use Refactoring Annotations again

MULTIVIE W 25 Interpretation of Results (1 of 2) Programmers are less error prone and faster using Box View and Selection Assist Programmers like using Box View and Selection Assist Box View is good when likelihood of mis- selection is high Selection Assist is good for short code blocks

MULTIVIE W 26 Interpretation of Results (2/2) Programmers are more likely to understand errors and understand them faster using Refactoring Annotations Programmers REALLY like using Refactoring Annotations

MULTIVIE W 27 My Contributions I have shown that the traditional view used by programmer tools can impede refactoring I have introduced alternative views to address specific problems I have demonstrated that these views measurably improve the refactoring process Future Work More user-friendly software development tools may help increase tool adoption, and then yield more productive programmers and less buggy software

MULTIVIE W 28 Thanks… Advice on Experimental Design: Suresh Singh and Jim Larson General Advice and Paper Reviews: Robert Bauer, Paul Berry, Andrew Black, Iavor Diatchki, Tom Harke, Brian Huffman, Mark Jones, Chuan- kai Lin, Ralph London, Philip Quitslund, Tim Sheard, and Aravind Subhash Special thanks to colleagues and students who participated in testing. Practice talk reviewers

MULTIVIE W 29 References Fowler, M., Beck, K., Brant, J., Opdyke, W. and Roberts, D.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional (1999) Fowler, M. Crossing Refactoring's Rubicon. (2001) The Eclipse Foundation: Eclipse, accessed November 2005 Findler, R., Clements, J., Matthew, Krishnamurthi, S., Steckler, P. and Felleisen, M.: DrScheme: A Progamming Environment for Scheme. Journal of Functional Programming, 12(2): , (2002) Adobe Systems Incorporated: Adobe GoLive. accessed November 2005 Hendrix, D., Cross, J., Maghsoodloo, S. and McKinney, M.: Do Visualizations Improve Program Comprehensibility? Experiments with Control Structure Diagrams for Java. Haller, S. (ed.): In Proc. Thirty-First SIGCSE Technical Symposium on Computer Science Education, Vol. 32. pp ACM, Austin, Texas (2000)

MULTIVIE W 30 Questions?

MULTIVIE W 31 Per-Subject Selection Results

MULTIVIE W 32 Per Subject Extraction Results

MULTIVIE W 33 Helpfulness of Selection Tools

MULTIVIE W 34 Helpfulness of Extraction Tools

MULTIVIE W 35 Likely-to-use-again: Selection Tools

MULTIVIE W 36 Likely-to-use-again: Extraction Tools