学位论文详细信息
Balancing Competing Needs of Machine and Human in Software Refactoring
Search-based Software Engineering;Software Refactoring;Software Remodularization;Model-Driven Engineering;Many-Objective Optimization;Dynamic Interactive Optimization;Automotive Systems Engineering;CECS Automotive Systems Engineering
Mkaouer, Mohamed WiemMedjahed, Brahim ;
University of Michigan
关键词: Search-based Software Engineering;    Software Refactoring;    Software Remodularization;    Model-Driven Engineering;    Many-Objective Optimization;    Dynamic Interactive Optimization;    Automotive Systems Engineering;    CECS Automotive Systems Engineering;   
Others  :  https://deepblue.lib.umich.edu/bitstream/handle/2027.42/134043/Mkaouer%20Dissertation%20Final.pdf?sequence=1&isAllowed=y
瑞士|英语
来源: The Illinois Digital Environment for Access to Learning and Scholarship
PDF
【 摘 要 】

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 convergetowards 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.

【 预 览 】
附件列表
Files Size Format View
Balancing Competing Needs of Machine and Human in Software Refactoring 3733KB PDF download
  文献评价指标  
  下载次数:10次 浏览次数:12次