A Multi-Level Framework for the Detection, Prioritization and Testing of Software Design Defects
Search-based Software Engineering;Model-Driven Engineering;Refactoring;Bi-level Optimization;Information Systems Engineering;Information Systems Engineering, College of Engineering and Computer Science
Large-scale software systems exhibit high complexity and become difficult to maintain. In fact, it has been reported that software cost dedicated to maintenance and evolution activities is more than 80% of the total software costs. In particular, object-oriented software systems need tofollow some traditional design principles such as data abstraction, encapsulation, and modularity.However, some of these non-functional requirements can be violated by developers for manyreasons such as inexperience with object-oriented design principles, deadline stress. This high cost of maintenance activities could potentially be greatly reduced by providing automatic orsemi-automatic solutions to increase system‟s comprehensibility, adaptability and extensibility to avoid bad-practices.The detection of refactoring opportunities focuses on the detection of bad smells, also calledantipatterns, which have been recognized as the design situations that may cause softwarefailures indirectly. The correction of one bad smell may influence other bad smells. Thus, theorder of fixing bad smells is important to reduce the effort and maximize the refactoring benefits.However, very few studies addressed the problem of finding the optimal sequence in which the refactoring opportunities, such as bad smells, should be ordered. Few other studies tried toprioritize refactoring opportunities based on the types of bad smells to determine their severity.However, the correction of severe bad smells may require a high effort which should be optimized and the relationships between the different bad smells are not considered during the prioritization process.The main goal of this research is to help software engineers to refactor large-scale systems with a minimum effort and few interactions including the detection, management and testing ofrefactoring opportunities. We report the results of an empirical study with an implementation of our bi-level approach. The obtained results provide evidence to support the claim that ourproposal is more efficient, on average, than existing techniques based on a benchmark of 9 open source systems and 1 industrial project. We have also evaluated the relevance and usefulness of the proposed bi-level framework for software engineers to improve the quality of their systems and support the detection of transformation errors by generating efficient test cases.
【 预 览 】
附件列表
Files
Size
Format
View
A Multi-Level Framework for the Detection, Prioritization and Testing of Software Design Defects