590 research outputs found
Structured Review of Code Clone Literature
This report presents the results of a structured review of code clone literature. The aim of the review is to assemble a conceptual model of clone-related concepts which helps us to reason about clones. This conceptual model unifies clone concepts from a wide range of literature, so that findings about clones can be compared with each other
Reducing thread divergence in a GPU-accelerated branch-and-bound algorithm
International audienceIn this paper, we address the design and implementation of GPU-accelerated Branch-and-Bound algorithms (B&B) for solving Flow-shop scheduling optimization problems (FSP). Such applications are CPU-time consuming and highly irregular. On the other hand, GPUs are massively multi-threaded accelerators using the SIMD model at execution. A major issue which arises when executing on GPU a B&B applied to FSP is thread or branch divergence. Such divergence is caused by the lower bound function of FSP which contains many irregular loops and conditional instructions. Our challenge is therefore to revisit the design and implementation of B&B applied to FSP dealing with thread divergence. Extensive experiments of the proposed approach have been carried out on well-known FSP benchmarks using an Nvidia Tesla C2050 GPU card. Compared to a CPU-based execution, accelerations up to ×77.46 are achieved for large problem instances
On Preserving the Behavior in Software Refactoring: A Systematic Mapping Study
Context: Refactoring is the art of modifying the design of a system without
altering its behavior. The idea is to reorganize variables, classes and methods
to facilitate their future adaptations and comprehension. As the concept of
behavior preservation is fundamental for refactoring, several studies, using
formal verification, language transformation and dynamic analysis, have been
proposed to monitor the execution of refactoring operations and their impact on
the program semantics. However, there is no existing study that examines the
available behavior preservation strategies for each refactoring operation.
Objective: This paper identifies behavior preservation approaches in the
research literature.
Method: We conduct, in this paper, a systematic mapping study, to capture all
existing behavior preservation approaches that we classify based on several
criteria including their methodology, applicability, and their degree of
automation.
Results: The results indicate that several behavior preservation approaches
have been proposed in the literature. The approaches vary between using
formalisms and techniques, developing automatic refactoring safety tools, and
performing a manual analysis of the source code.
Conclusion: Our taxonomy reveals that there exist some types of refactoring
operations whose behavior preservation is under-researched. Our classification
also indicates that several possible strategies can be combined to better
detect any violation of the program semantics
A Multi-Level Framework for the Detection, Prioritization and Testing of Software Design Defects
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 to
follow some traditional design principles such as data abstraction, encapsulation, and modularity.
However, some of these non-functional requirements can be violated by developers for many
reasons such as inexperience with object-oriented design principles, deadline stress. This high
cost of maintenance activities could potentially be greatly reduced by providing automatic or
semi-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 called
antipatterns, which have been recognized as the design situations that may cause software
failures indirectly. The correction of one bad smell may influence other bad smells. Thus, the
order 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 to
prioritize 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 of
refactoring 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 our
proposal 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.Ph.D.Information Systems Engineering, College of Engineering and Computer ScienceUniversity of Michigan-Dearbornhttp://deepblue.lib.umich.edu/bitstream/2027.42/136075/1/Dilan_Sahin_Final Dissertation.pdfDescription of Dilan_Sahin_Final Dissertation.pdf : Dissertatio
- …