CSMR 2012
Technical Track
Code Clones and Short Papers
Thursday, March 3, 2011, from 11:00 to 12:30, A14 HS2- Nils Göde and Jan Harder - Clone Stability
- Yoshiki Higo and Shinji Kusumoto - Code Clone Detection on Specialized PDGs with Heuristics
- Faiza Siddique and Onaiza Maqbool - Analyzing Term Weighting Schemes for Labeling Software Clusters
- Mehdi Amoui, Mahdi Derakhshanmanesh, Jürgen Ebert and Ladan Tahvildari - Software Evolution Towards Model-Centric Runtime Adaptivity
Clone Stability
Nils Göde and Jan Harder
Code clones are an inevitable property of every software system and are said to threaten the maintainability---especially when source code is changed. Consequently, the stability of cloned code is relevant for rating clones, choosing appropriate countermeasures, and analyzing whether cloning is a reasonable strategy in general. A previous study has analyzed the stability of cloned code and non-cloned code yielding results which are not intuitive at first sight. In this paper, we describe our partial replication and extension of this study using a more detailed measurement and considering different parameters for clone detection. Our aim is to validate the findings of the previous study and explore possible reasons to gain a better understanding of the unintuitive results.
Code Clone Detection on Specialized PDGs with Heuristics
Yoshiki Higo and Shinji Kusumoto
PDG-based code clone detection is suitable for detecting non-contiguous code clones while other detection techniques, line-, token-, or AST-based techniques are not. However, PDG-based detection has lower performance for detecting contiguous code clones than the other techniques. Moreover, PDG-based detection is time consuming, so that application to actual software systems is not feasible. The present paper proposes PDG optimizations and detection heuristics for enhancing PDG-based code clone detection. The experiment in this paper shows that the proposed methods are effective for PDG-based code clone detection by applying them to 4 open source systems.
Analyzing Term Weighting Schemes for Labeling Software Clusters
Faiza Siddique and Onaiza Maqbool
Clustering techniques have been widely employed for software modularization. The clusters formed as a result of the clustering process may be difficult to understand unless they are appropriately labeled. One method to assign labels is to use term weighting schemes from Information Retrieval and Text Categorization which use weights to assign importance to terms in a document. Some of these term weighting schemes have been used by researchers for labeling clusters, but there is a need to compare various schemes and analyze their strengths and weaknesses. In this paper, we analyze four different schemes in the context of software and identify cases where one may be better than the other. We also conduct experiments to verify the behavior of the weighting schemes according to software characteristics.
Software Evolution Towards Model-Centric Runtime Adaptivity
Mehdi Amoui, Mahdi Derakhshanmanesh, Jürgen Ebert and Ladan Tahvildari
Runtime adaptivity is a promising direction towards achieving adaptive behavior for software systems that operate within highly dynamic and non-deterministic environments. Model-centric approaches have proven to be able to successfully address various aspects of runtime adaptivity. In this paper, we propose a target architecture for self-adaptive software systems and show how it facilitates adaptation by interpreting models at runtime. Our approach supports adaptivity using behavioral and structural models, which are causally connected to the software application. These models can be queried and transformed dynamically in reaction to changes in the software system's operating environment. We demonstrate how to implement an infrastructure to support the target architecture, and how to prepare and integrate non-adaptive software to comply with this architecture. Finally, as a proof of concept, we present how to evolve an open-source VoIP telephony server to perform runtime adaptation following our approach.