Reducing the Risk of Pragmatic Reuse Tasks

13
Опубликовано 6 сентября 2016, 17:10
Reusing source code in a manner for which it has not been designed (which I term a pragmatic-reuse task) is traditionally regarded as poor practice. The ad hoc nature of these tasks increases the likelihood of a developer pursuing a task that is infeasible or choosing not to pursue a feasible one. Although pragmatic reuse activities have been negatively likened to code cloning activities, there are many valid industrial reasons for reusing code in this fashion including risk aversion, feature porting, and code ownership. In this talk, I will describe the nature of the problems involved in pursuing pragmatic reuse tasks, and the techniques that I have developed to overcome these problems. Specifically, I have developed a model for the practical systematization of pragmatic reuse tasks, involving investigating the task while concurrently constructing a lightweight plan for performing it. Using computationally simple, but analytically approximate transformations, the enactment of the reuse plan is semi-automated. This allows the developer to focus their attention on resolving higher-level semantic and conceptual issues, such as architectural mismatch. Plans can be discarded or altered at any stage, including after their semi-automated enactment, enabling the developer to try out an idea before committing to it. I will describe how this work has been and is being evaluated, and its prospects for significant impact in industrial practice.
автотехномузыкадетское