The potential of the Extract Method refactoring for maintaining high-quality software is well-recognized. It can be useful by itself, or as a building block in larger refactoring tasks. Because it requires a deep analysis of data and control dependences, it is difficult to perform correctly without tools in complicated cases. Unfortunately, refactoring tools do not perform the required analysis, and will fail in or reject such cases. Some very useful cases, such as those involving non-contiguous code, cannot even be expressed using these tools’ interfaces. We present a new refactoring to untangle desired computations from their surrounding code, in preparation for Extract Method. It is based on the concept of fine slicing, which is a method for computing program slices that can be tailored by the removal of some data and controld ependences. Fine slices are executable and extractable from their surrounding code. Fine slices can also be used to compute co-slices, the part of the program that should be left behind when extracting a fine slice. This is crucial for the ability to reuse the extracted slice from the original code.
Aharon Abadi (PhD) Chief Scientist at WhiteSource since November 2017.
Aharon studied computer science at the Tel-Aviv University, receiving BSc, MSc, and PhD degrees, respectively. Aharon research interests lie a wide range of topics including application security, open source security, cloud and cloud security, static code analysis, refactoring, program transformations, fuzzing, formal methods and more. His work has been included in WhiteSource and IBM products and was awarded the IBM Research Division award (RDA) and the IBM Outstanding Innovation Award (OIA). He is the main author of dozen papers in top conferences and more than 60 patents. His recent work on fine slicing received the European Association of Software Science and Technology (EASST) Award as Best Software Science paper. He is the main organizer and the PC chair of international events such as: DeMobile, MobileDeLi and MobileSoft.