Balancing Competing Needs of Machine and Human in Software Refactoring
Mkaouer, Mohamed Wiem
2016-08
Abstract
Successful software must evolve to remain relevant, but this process of evolution can cause the software design to decay and lead to significantly reduced productivity and even canceled projects. Several studies show that developers are postponing software maintenance activities that improve software quality, even while seeking high-quality source code for themselves when updating existing projects. One reason is that time and money pressures force developers to neglect improving the quality of their source code. However, a more fundamental reason is that there is little scientific understanding of how developers restructure/refactor source code for the purpose of improving program quality, which limits the support that researchers can offer developers. In fact, developers often need to make trade-offs between code quality, available resources and delivering a product on time, and such management support is beyond the scope and capability of existing refactoring engines. In addition, existing fully-automated techniques are under-utilized because of the lack of flexibility and worries about introducing bugs. While automation is important, it is essential to understand the points at which human intervention and decision-making should affect the automation process. To address the above challenges, the main goal of this thesis is to develop a better understanding of how to integrate the preferences of software engineers in the maintenance process. The majority of existing work treats software engineering problems from a single-objective point of view, where the main goal is to maximize or minimize one objective, e.g., correctness, quality, etc. However, most software engineering problems are naturally complex in which many conflicting objectives need to be optimized such as model transformation to transform a model from a source to a target language, software refactoring to improve the quality systems while preserving the behavior, and software remodularization to improve the modularity of systems. The number of objectives to consider for most of software engineering problems is, in general, high (more than three objectives); such problems are termed many-objective. In this context, the use of traditional multi-objective techniques widely used in software engineering is clearly not sufficient. The main contributions of this thesis can be summarized as follows: Designing, implementing and validating novel scalable many-objective search algorithms for model transformation, software refactoring and software re-modularization. Optimization under uncertainty: This contribution extends the formulation of software refactoring as a multi-objective problem to take into account the uncertainties related to the dynamic environment of software development. It enables the generation of robust refactoring solutions without a high loss of quality. Designing, implementing and validating a novel interactive dynamic multi-objective search-based software refactoring algorithm: The main goal of this contribution is to integrate the developer in the loop when performing software engineering activities such as software refactoring. The developers’ feedback is used during the optimization process to converge towards the user’s region of interest. The validation of these contributions on both industrial and open source software systems, in the context of model transformation, software refactoring and software re-modularization, has shown promising results in helping software engineers in the improvement of their software quality while performing their regular maintenance tasks.Subjects
Search-based Software Engineering Software Refactoring Software Remodularization Model-Driven Engineering Many-Objective Optimization Dynamic Interactive Optimization
Types
Thesis
Metadata
Show full item recordCollections
Remediation of Harmful Language
The University of Michigan Library aims to describe its collections in a way that respects the people and communities who create, use, and are represented in them. We encourage you to Contact Us anonymously if you encounter harmful or problematic language in catalog records or finding aids. More information about our policies and practices is available at Remediation of Harmful Language.
Accessibility
If you are unable to use this file in its current format, please select the Contact Us link and we can modify it to make it more accessible to you.