VLDB 2026 Research / reviewers in the wild / expert
Manishankar Mondal
dblp:37/10031
· DBLP profile ↗
37ranked-venue papers
24as first author
7since 2021 · last 2025
0000-0003-1797-607XORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 35 · 24 first-author · 7 since 2021Databases, data management, data science and information retrieval · 3 · 1 first-author · 1 since 2021Artificial intelligence and machine learning · 2Graphics, computer vision, multimedia, augmented reality and games · 1Applied, interdisciplinary, general and emerging computing · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Dependency Dilemmas: A Comparative Study of Independent and Dependent Artifacts in Maven Central EcosystemabstractMaven Central ecosystem forms the backbone of Java dependency management, hosting artifacts that vary significantly in their adoption, security, and ecosystem roles. Artifact reuse is fundamental in software development, and ecosystems like Maven facilitate this process. However, prior studies predominantly analyzed popular artifacts with numerous dependencies, leaving those without incoming dependencies (i.e., independent artifacts) unexplored. In this study, we analyzed 658,078 artifacts, of which 635,003 had at least one release. Among these, 93,101 artifacts (15.4%) were identified as independent (in-degree = 0), while the rest were classified as dependent. We looked at the impact of individual artifacts using PageRank and outdegree centrality and discovered that independent artifacts were very important to the ecosystem. Further analysis using 18 different metrics revealed several advantages and comparability of independent artifacts with dependent artifacts: comparable popularity ($\mathbf{2 5. 5 8}$ vs. 7.30), fewer vulnerabilities ($\mathbf{6 0}$ CVEs vs. 179 CVEs), and zero propagated vulnerabilities. These findings suggest that independent artifacts might be a beneficial choice for dependencies but have some maintenance issues. Therefore, developers should carefully incorporate independent artifacts into their projects, and artifact maintainers should prioritize this group of artifacts to mitigate the risk of transitive vulnerability propagation and improve software sustainability. Mehedi Hasan Shanto, Muhammad Asaduzzaman, Manishankar Mondal, Shaiful Alam Chowdhury |
MSR | 3 |
| 2025 | Ranking co-change candidates suggested by FLeCCS using programmer sensitivity
Abid Afsan Hamid, Md. Fizul Haque, Manishankar Mondal |
Sci. Comput. Program. | 3 |
| 2023 | Context-Adaptation Bugs in Micro-ClonesabstractWhenever we copy a code fragment from one place of a code-base and paste it to another place, the pasted fragment might appear to be a buggy fragment if it is not properly adapted to its surrounding code. In such a situation, the bug that is contained in the pasted fragment because of not adapting it to its context is known as a context-adaptation bug (simply, context bug). In this research, we investigate the context adaptation bugs in micro-clones (code clones of at most 4LOC) through analyzing their evolutionary history from thousands of revisions of our subject systems. An existing study has investigated such bugs in regular code clones (code clones of at least 5LOC). However, context bugs in micro-clones have never been studied. If microclones also contain context bugs, automatic support for repairing such bugs in micro-clones is important as well. We automatically identify patterns that indicate fixes of context bugs in microclones, and then analyze and compare the intensity of such bugs in regular and micro-clones. We also identify the vulnerable coding patterns that introduce context-bugs in micro-clones. According to our study on thousands of revisions of five subject systems written in three different programming languages, micro-clones generally have a higher possibility of containing context bugs during evolution compared to regular clones. Making microclones through copy/pasting across different files has a significantly higher tendency of introducing context bugs compared to cloning within the same file. We also realize that Type 1 and Type 3 micro-clones are generally more vulnerable than Type 2 micro-clones. Our findings are important for devising automatic mechanisms for fixing context bugs. We have also identified risky cloning patterns so that programmers can avoid those patterns during coding to minimize context-bugs in micro-clones. Sayeedi Mottakin, Maliha Bintay Zaman, Manishankar Mondal, Atanu Shome |
APSEC | 3 |
| 2022 | Evaluating the performance of clone detection tools in detecting cloned co-change candidates
Md. Nadim, Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
J. Syst. Softw. | 2 |
| 2021 | FLeCCS: A Technique for Suggesting Fragment-Level Similar Co-change CandidatesabstractWhen a programmer changes a particular code fragment, the other similar code fragments in the code-base may also need to be changed together (i.e., co-changed) consistently to ensure that the software system remains consistent. Existing studies and tools apply clone detectors to identify these similar co-change candidates for a target code fragment. However, clone detectors suffer from a confounding configuration choice problem and it affects their accuracy in retrieving co-change candidates.In our research, we propose and empirically evaluate a lightweight co-change suggestion technique that can automatically suggest fragment level similar co-change candidates for a target code fragment using WA-DiSC (Weighted Average Dice-Sørensen Co-efficient) through a context-sensitive mining of the entire code-base. We apply our technique, FLeCCS (Fragment Level Co-change Candidate Suggester), on six subject systems written in three different programming languages (Java, C, and C#) and compare its performance with the existing state-of-the-art techniques. According to our experiment, our technique outperforms not only the existing code clone based techniques but also the association rule mining based techniques in detecting co-change candidates with a significantly higher accuracy (precision and recall). We also find that File Proximity Ranking performs significantly better than Similarity Extent Ranking when ranking the co-change candidates suggested by our proposed technique. Manishankar Mondal, Chanchal Kumar Roy, Banani Roy, Kevin A. Schneider |
ICPC | 1 |
| 2021 | A Testing Approach While Re-engineering Legacy Systems: An Industrial Case StudyabstractMany organizations use legacy systems as these systems contain their valuable business rules. However, these legacy systems answer the past requirements but are difficult to maintain and evolve due to old technology use. In this situation, stockholders decide to renovate the system with a minimum amount of cost and risk. Although the renovation process is a more affordable choice over redevelopment, it comes with its risks such as performance loss and failure to obtain quality goals. A proper test process can minimize risks incorporated with the renovation process. This work introduces a testing model tailored for the migration and re-engineering process and employs test automation, which results in early bug detection. Moreover, the automated tests ensure functional sameness between the old and the new system. This process enhances reliability, accuracy, and speed of testing. Hamid Khodabandehloo, Banani Roy, Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
SANER | 3 |
| 2021 | ID-correspondence: a measure for detecting evolutionary coupling
Manishankar Mondal, Banani Roy, Chanchal Kumar Roy, Kevin A. Schneider |
Empir. Softw. Eng. | 1 |
| 2020 | A Fine-Grained Analysis on the Inconsistent Changes in Code ClonesabstractExisting studies report that inconsistent changes in code clones can introduce bugs or inconsistencies in a software system's code-base. However, inconsistent changes can often be intentional and these might not lead to bugs. Thus, it would be beneficial if we could have an automatic mechanism for proactively determining which inconsistent changes are likely to introduce bugs in a code-base. With this focus, in our research we investigate the underlying factors affecting the possibility that an inconsistent change made to code clones will lead to bugs. We extract the evolutionary history of the clone fragments in open-source software systems and analyze whether clone-types, former clone evolutionary patterns, and clone proximity have impacts on the bug-proneness of the inconsistent changes to clones. We perform our investigation on six subject systems written in three different programming languages (Java, C, and C#) and find that inconsistent changes in Type 3 clones have the highest possibility of introducing bugs among all three clone-types (Type 1, 2, and 3). Moreover, similarity preserving inconsistent changes are significantly more likely to introduce bugs compared to diverging inconsistent changes. Proximity as well as granularity of code clones have significant impacts on their possibilities of experiencing bug-fixes after having inconsistent changes. Findings from our research can be important for minimizing bugs and inconsistencies in software systems during their evolution. Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
ICSME | 1 |
| 2020 | Investigating Near-Miss Micro-Clones in Evolving SoftwareabstractCode clones are the same or nearly similar code fragments in a software system's code-base. While the existing studies have extensively studied regular code clones in software systems, micro-clones have been mostly ignored. Although an existing study investigated consistent changes in exact micro-clones, near-miss micro-clones have never been investigated. In our study, we investigate the importance of near-miss micro-clones in software evolution and maintenance by automatically detecting and analyzing the consistent updates that they experienced during the whole period of evolution of our subject systems. We compare the consistent co-change tendency of near-miss micro-clones with that of exact micro-clones and regular code clones. According to our investigation on thousands of revisions of six open-source subject systems written in two different programming languages, near-miss micro-clones have a significantly higher tendency of experiencing consistent updates compared to exact micro-clones and regular (both exact and near-miss) code clones. Consistent updates in near-miss micro-clones have a high tendency of being related with bug-fixes. Moreover, the percentage of commit operations where near-miss micro-clones experience consistent updates is considerably higher than that of regular clones and exact micro-clones. We finally observe that near-miss micro-clones staying in close proximity to each other have a high tendency of experiencing consistent updates. Our research implies that near-miss micro-clones should be considered equally important as of regular clones and exact micro-clones when making clone management decisions. Manishankar Mondal, Banani Roy, Chanchal Kumar Roy, Kevin A. Schneider |
ICPC | 1 |
| 2020 | Associating Code Clones with Association Rules for Change Impact AnalysisabstractWhen a programmer makes changes to a target program entity (files, classes, methods), it is important to identify which other entities might also get impacted. These entities constitute the impact set for the target entity. Association rules have been widely used for discovering the impact sets. However, such rules only depend on the previous co-change history of the program entities ignoring the fact that similar entities might often need to be updated together consistently even if they did not co-change before. Considering this fact, we investigate whether cloning relationships among program entities can be associated with association rules to help us better identify the impact sets. In our research, we particularly investigate whether the impact set detection capability of a clone detector can be utilized to enhance the capability of the state-of-the-art association rule mining technique, Tarmaq, in discovering impact sets. We use the well known clone detector called NiCad in our investigation and consider both regular and micro-clones. Our evolutionary analysis on thousands of commit operations of eight diverse subject systems reveals that consideration of code clones can enhance the impact set detection accuracy of Tarmaq with a significantly higher precision and recall. Micro-clones of 3LOC and 4LOC and regular code clones of 5LOC to 20LOC contribute the most towards enhancing the detection accuracy. Manishankar Mondal, Banani Roy, Chanchal Kumar Roy, Kevin A. Schneider |
SANER | 1 |
| 2020 | HistoRank: History-Based Ranking of Co-change CandidatesabstractEvolutionary coupling is a well investigated phenomenon during software evolution and maintenance. If two or more program entities co-change (i.e., change together) frequently during evolution, it is expected that the entities are coupled. This type of coupling is called evolutionary coupling or change coupling in the literature. Evolutionary coupling is realized using association rules and two measures: support and confidence. Association rules have been extensively used for predicting co-change candidates for a target program entity (i.e., an entity that a programmer attempts to change). However, association rules often predict a large number of co-change candidates with many false positives. Thus, it is important to rank the predicted co-change candidates so that the true positives get higher priorities. The predicted co-change candidates have always been ranked using the support and confidence measures of the association rules. In our research, we investigate five different ranking mechanisms on thousands of commits of ten diverse subject systems. On the basis of our findings, we propose a history-based ranking approach, HistoRank (History-based Ranking), that analyzes the previous ranking history to dynamically select the most appropriate one from those five ranking mechanisms for ranking co-change candidates of a target program entity. According to our experiment result, HistoRank outperforms each individual ranking mechanism with a significantly better MAP (mean average precision). We investigate different variants of HistoRank and realize that the variant that emphasizes the ranking in the most recent occurrence of co-change in the history performs the best. Manishankar Mondal, Banani Roy, Chanchal Kumar Roy, Kevin A. Schneider |
SANER | 1 |
| 2020 | A survey on clone refactoring and tracking
Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
J. Syst. Softw. | 1 |
| 2019 | Investigating Context Adaptation Bugs in Code ClonesabstractThe identical or nearly similar code fragments in a code-base are called code clones. There is a common belief that code cloning (copy/pasting code fragments) can introduce bugs in a software system if the copied code fragments are not properly adapted to their contexts (i.e., surrounding code). However, none of the existing studies have investigated whether such bugs are really present in code clones. We denote these bugs as Context Adaptation Bugs, or simply Context-Bugs, in our paper and investigate the extent to which they can be present in code clones. We define and automatically analyze two clone evolutionary patterns that indicate fixing of Context-Bugs. According to our analysis on thousands of revisions of six open-source subject systems written in Java, C, and C#, code cloning often introduces Context-Bugs in software systems. Around 50% of the clone related bug-fixes can occur for fixing Context-Bugs. Cloning (copy/pasting) a newly created code fragment (i.e., a code fragment that was not added in a former revision) is more likely to introduce Context-Bugs compared to cloning a preexisting fragment (i.e., a code fragment that was added in a former revision). Moreover, cloning across different files appears to have a significantly higher tendency of introducing Context-Bugs compared to cloning within the same file. Finally, Type 3 clones (gapped clones) have the highest tendency of containing Context-Bugs among the three major clone-types. Our findings can be important for early detection as well as removal of Context-Bugs in code clones. Manishankar Mondal, Banani Roy, Chanchal Kumar Roy, Kevin A. Schneider |
ICSME | 1 |
| 2019 | Comparing bug replication in regular and micro code clonesabstractCopying and pasting source code during software development is known as code cloning. Clone fragments with a minimum size of 5 LOC were usually considered in previous studies. In recent studies, clone fragments which are less than 5 LOC are referred as micro-clones. It has been established by the literature that code clones are closely related with software bugs as well as bug replication. None of the previous studies have been conducted on bug-replication of micro-clones. In this paper we investigate and compare bug-replication in between regular and micro-clones. For the purpose of our investigation, we analyze the evolutionary history of our subject systems and identify occurrences of similarity preserving co-changes (SPCOs) in both regular and micro-clones where they experienced bug-fixes. From our experiment on thousands of revisions of six diverse subject systems written in three different programming languages, C, C# and Java we find that the percentage of clone fragments that take part in bug-replication is often higher in micro-clones than in regular code clones. The percentage of bugs that get replicated in micro-clones is almost the same as the percentage in regular clones. Finally, both regular and micro-clones have similar tendencies of replicating severe bugs according to our experiment. Thus, micro-clones in a code-base should not be ignored. We should rather consider these equally important as of the regular clones when making clone management decisions. Judith F. Islam, Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
ICPC | 2 |
| 2019 | A Comparative Study of Software Bugs in Micro-clones and Regular Code ClonesabstractReusing a code fragment through copy/pasting, also known as code cloning, is a common practice during software development and maintenance. Most of the existing studies on code clones ignore micro-clones where the size of a micro-clone fragment can be 1 to 4 LOC. In this paper we compare the bug-proneness of micro-clones with that of regular code clones. From thousands of revisions of six diverse open-source subject systems written in three languages (C, C#, and Java), we identify and investigate both regular and micro-clones that are associated with reported bugs.Our experiment reveals that percentage of changed code fragments due to bug-fix commits is significantly higher in micro-clones than regular clones. The number of consistent changes due to bug-fix commits is significantly higher in micro-clones than regular clones. We also observe that significantly higher percentage of files get affected by bug-fix commits in micro-clones than regular clones. Finally, we found that percentage of severe bugs is significantly higher in micro-clones than regular clones. We perform Mann-Whitney-Wilcoxon (MWW) test to evaluate the statistical significance level of our experimental results. Our findings imply that micro-clones should be emphasized during clone management and software maintenance. Judith F. Islam, Manishankar Mondal, Chanchal Kumar Roy |
SANER | 2 |
| 2019 | An empirical study on bug propagation through code cloning
Manishankar Mondal, Banani Roy, Chanchal Kumar Roy, Kevin A. Schneider |
J. Syst. Softw. | 1 |
| 2019 | Clone-World: A visual analytic system for large scale software clonesabstractWith the era of big data approaching, the number of software systems, their dependencies, as well as the complexity of the individual system is becoming larger and more intricate. Understanding these evolving software systems is thus a primary challenge for cost-effective software management and maintenance. In this paper we perform a case study with evolving code clones. The programmers often need to manually analyze the co-evolution of clone fragments to decide about refactoring, tracking, and bug removal. However, manual analysis is time consuming, and nearly infeasible for a large number of clones, e.g., with millions of similarity pairs, where clones are evolving over hundreds of software revisions. We propose an interactive visual analytics system, Clone-World , which leverages big data visualization approach to manage code clones in large software systems. Clone-World , gives an intuitive yet powerful solution to the clone analytic problems. Clone-World combines multiple information-linked zoomable views, where users can explore and analyze clones through interactive exploration in real time. User studies and experts’ reviews suggest that Clone-World may assist developers in many real-life software development and maintenance scenarios. We believe that Clone-World will ease the management and maintenance of clones, and inspire future innovation to adapt visual analytics to manage big software systems. Debajyoti Mondal, Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider, Shisong Wang |
Vis. Informatics | 2 |
| 2018 | Optimized Storing of Workflow Outputs through Mining Association RulesabstractWorkflows are frequently built and used to systematically process large datasets using workflow management systems (WMS). A workflow (i.e., a pipeline) is a finite set of processing modules organized as a series of steps that is applied to an input dataset to produce a desired output. In a workflow management system, users generally create workflows manually for their own investigations. However, workflows can sometimes be lengthy and the constituent processing modules might often be computationally expensive. In this situation, it would be beneficial if users could reuse intermediate stage results generated by previously executed workflows for executing their current workflow.In this paper, we propose a novel technique based on association rule mining for suggesting which intermediate stage results from a workflow that a user is going to execute should be stored for reusing in the future. We call our proposed technique, RISP (Recommending Intermediate States from Pipelines). According to our investigation on hundreds of workflows from two scientific workflow management systems, our proposed technique can efficiently suggest intermediate state results to store for future reuse. The results that are suggested to be stored have a high reuse frequency. Moreover, for creating around 51% of the entire pipelines, we can reuse results suggested by our technique. Finally, we can achieve a considerable gain (74% gain) in execution time by reusing intermediate results stored by the suggestions provided by our proposed technique. We believe that our technique (RISP) has the potential to have a significant positive impact on Big-Data systems, because it can considerably reduce execution time of the workflows through appropriate reuse of intermediate state results, and hence, can improve the performance of the systems. Debasish Chakroborti, Manishankar Mondal, Banani Roy, Chanchal Kumar Roy, Kevin A. Schneider |
IEEE BigData | 2 |
| 2018 | [Research Paper] Detecting Evolutionary Coupling Using Transitive Association RulesabstractIf two or more program entities (such as files, classes, methods) co-change (i.e., change together) frequently during software evolution, then it is likely that these two entities are coupled (i.e., the entities are related). Such a coupling is termed as evolutionary coupling in the literature. The concept of traditional evolutionary coupling restricts us to assume coupling among only those entities that changed together in the past. The entities that did not co-change in the past might also have coupling. However, such couplings can not be retrieved using the current concept of detecting evolutionary coupling in the literature. In this paper, we investigate whether we can detect such couplings by applying transitive rules on the evolutionary couplings detected using the traditional mechanism. We call these couplings that we detect using our proposed mechanism as transitive evolutionary couplings. According to our research on thousands of revisions of four subject systems, transitive evolutionary couplings combined with the traditional ones provide us with 13.96% higher recall and 5.56% higher precision in detecting future co-change candidates when compared with a state-of-the-art technique. Md. Anaytul Islam, Md. Moksedul Islam, Manishankar Mondal, Banani Roy, Chanchal Kumar Roy, Kevin A. Schneider |
SCAM | 3 |
| 2018 | Micro-clones in evolving softwareabstractDetection, tracking, and refactoring of code clones (i.e., identical or nearly similar code fragments in the code-base of a software system) have been extensively investigated by a great many studies. Code clones have often been considered bad smells. While clone refactoring is important for removing code clones from the code-base, clone tracking is important for consistently updating code clones that are not suitable for refactoring. In this research we investigate the importance of micro-clones (i.e., code clones of less than five lines of code) in consistent updating of the code-base. While the existing clone detectors and trackers have ignored micro clones, our investigation on thousands of commits from six subject systems imply that around 80% of all consistent updates during system evolution occur in micro clones. The percentage of consistent updates occurring in micro clones is significantly higher than that in regular clones according to our statistical significance tests. Also, the consistent updates occurring in micro-clones can be up to 23% of all updates during the whole period of evolution. According to our manual analysis, around 83% of the consistent updates in micro-clones are non-trivial. As micro-clones also require consistent updates like the regular clones, tracking or refactoring micro-clones can help us considerably minimize effort for consistently updating such clones. Thus, micro-clones should also be taken into proper consideration when making clone management decisions. Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
SANER | 1 |
| 2018 | Is cloned code really stable?
Manishankar Mondal, Md. Saidur Rahman 0002, Chanchal Kumar Roy, Kevin A. Schneider |
Empir. Softw. Eng. | 1 |
| 2018 | Bug-proneness and late propagation tendency of code clones: A Comparative study on different clone types
Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
J. Syst. Softw. | 1 |
| 2017 | Bug Propagation through Code Cloning: An Empirical StudyabstractCode clones are defined to be the identical or nearly similar code fragments in a code-base. According to a number of existing studies, code clones are directly related to bugs and inconsistencies in software systems. Code cloning (i.e., creating code clones) is suspected to propagate temporarily hidden bugs from one code fragment to another. However, there is no study on the intensity of bug-propagation through code cloning.In this paper we present our empirical study on bug-propagation through code cloning. We define two clone evolution patterns that reasonably indicate bug propagation through code cloning. We first identify code clones that experienced bug-fix changes by analyzing software evolution history, and then determine which of these code clones evolved following the bug propagation patterns. According to our study on thousands of commits of four open-source subject systems written in Java, up to 33% of the clone fragments that experience bug-fix changes can contain propagated bugs. Around 28.57% of the bug-fixes experienced by the code clones can occur for fixing propagated bugs. We also find that near-miss clones are primarily involved with bug-propagation rather than identical clones. The clone fragments involved with bug propagation are mostly method clones. Bug propagation is more likely to occur in the clone fragments that are created in the same commit operation rather than in different commits. Our findings are important for prioritizing code clones for refactoring and tracking from the perspective of bug propagation. Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
ICSME | 1 |
| 2017 | Identifying code clones having high possibilities of containing bugsabstractCode cloning has emerged as a controversial term in software engineering research and practice because of its positive and negative impacts on software evolution and maintenance. Researchers suggest managing code clones through refactoring and tracking. Given the huge number of code clones in a software system's code-base, it is essential to identify the most important ones to manage. In our research, we investigate which clone fragments have high possibilities of containing bugs so that such clones can be prioritized for refactoring and tracking to help minimize future bug-fixing tasks. Existing studies on clone bug-proneness cannot pinpoint code clones that are likely to experience bug-fixes in the future. According to our analysis on thousands of revisions of four diverse subject systems written in Java, change frequency of code clones does not indicate their bug-proneness (i.e., does not indicate their tendencies of experiencing bug-fixes in future). Bug-proneness is mainly related with change recency of code clones. In other words, more recently changed code clones have a higher possibility of containing bugs. Moreover, for the code clones that were not changed previously we observed that clones that were created more recently have higher possibilities of experiencing bug-fixes. Thus, our research reveals the fact that bug-proneness of code clones mainly depends on how recently they were changed or created (for the ones that were not changed before). It invalidates the common intuition regarding the relatedness between high change frequency and bug-proneness. We believe that code clones should be prioritized for management considering their change recency or recency of creation (for the unchanged ones). Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
ICPC | 1 |
| 2017 | A Comparative Study of Software Bugs in Clone and Non-Clone CodeabstractCode cloning is a recurrent operation in everyday software development.Whether it is a good or bad practice is an ongoing debate among researchers and developers for the last few decades.In this paper, we conduct a comparative study on bugproneness in clone code and non-clone code by analyzing commit logs.According to our inspection on thousands of revisions of seven diverse subject systems, the percentage of changed files due to bug-fix commits is significantly higher in clone code compared with non-clone code.We perform a Mann-Whitney-Wilcoxon (MWW) test to show the statistical significance of our findings.Finally, the possibility of severe bugs occurring is higher in clone code than in non-clone code.Bug-fixing changes affecting clone code should be considered more carefully.According to our findings, clone code appears to be more bug-prone than non-clone code. Judith F. Islam, Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
SEKE | 2 |
| 2017 | Comparing Software Bugs in Clone and Non-clone Code: An Empirical StudyabstractCode cloning is a recurrent operation in everyday software development. Whether it is a good or bad practice is an ongoing debate among researchers and developers for the last few decades. In this paper, we conduct a comparative study on bug-proneness in clone code and non-clone code by analyzing commit logs. According to our inspection of thousands of revisions of seven diverse subject systems, the percentage of changed files due to bug-fix commits is significantly higher in clone code compared with non-clone code. We perform a Mann–Whitney–Wilcoxon (MWW) test to show the statistical significance of our findings. In addition, the possibility of occurrence of severe bugs is higher in clone code than in non-clone code. Bug-fixing changes affecting clone code should be considered more carefully. Finally, our manual investigation shows that clone code containing if-condition and if–else blocks has a high risk of having severing bugs. Changes to such types of clone fragments should be done carefully during software maintenance. According to our findings, clone code appears to be more bug-prone than non-clone code. Judith F. Islam, Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
Int. J. Softw. Eng. Knowl. Eng. | 2 |
| 2016 | Bug Replication in Code Clones: An Empirical StudyabstractCode clones are exactly or nearly similar code fragments in the code-base of a software system. Existing studies show that clones are directly related to bugs and inconsistencies in the code-base. Code cloning (making code clones) is suspected to be responsible for replicating bugs in the code fragments. However, there is no study on the possibilities of bug-replication through cloning process. Such a study can help us discover ways of minimizing bug-replication. Focusing on this we conduct an empirical study on the intensities of bug-replication in the code clones of the major clone-types: Type 1, Type 2, and Type 3. According to our investigation on thousands of revisions of six diverse subject systems written in two different programming languages, C and Java, a considerable proportion (i.e., up to 10%) of the code clones can contain replicated bugs. Both Type 2 and Type 3 clones have higher tendencies of having replicated bugs compared to Type 1 clones. Thus, Type 2 and Type 3 clones are more important from clone management perspectives. The extent of bug-replication in the buggy clone classes is generally very high (i.e., 100% in most of the cases). We also find that overall 55% of all the bugs experienced by the code clones can be replicated bugs. Our study shows that replication of bugs through cloning is a common phenomenon. Clone fragments having method-calls and if-conditions should be considered for refactoring with high priorities, because such clone fragments have high possibilities of containing replicated bugs. We believe that our findings are important for better maintenance of software systems, in particular, systems with code clones. Judith F. Islam, Manishankar Mondal, Chanchal Kumar Roy |
SANER | 2 |
| 2016 | A comparative study on the intensity and harmfulness of late propagation in near-miss code clones
Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
Softw. Qual. J. | 1 |
| 2015 | A comparative study on the bug-proneness of different types of code clonesabstractCode clones are defined to be the exactly or nearly similar code fragments in a software system's code-base. The existing clone related studies reveal that code clones are likely to introduce bugs and inconsistencies in the code-base. However, although there are different types of clones, it is still unknown which types of clones have a higher likeliness of introducing bugs to the software systems and so, should be considered more important for managing with techniques such as refactoring or tracking. With this focus, we performed a study that compared the bug-proneness of the major clone-types: Type 1, Type 2, and Type 3. According to our experimental results on thousands of revisions of seven diverse subject systems, Type 3 clones exhibit the highest bug-proneness among the three clone-types. The bug-proneness of Type 1 clones is the lowest. Also, Type 3 clones have the highest likeliness of being co-changed consistently while experiencing bug-fixing changes. Moreover, the Type 3 clones that experience bug-fixes have a higher possibility of evolving following a Similarity Preserving Change Pattern (SPCP) compared to the bug-fix clones of the other two clone-types. From the experimental results it is clear that Type 3 clones should be given a higher priority than the other two clone-types when making clone management decisions. We believe that our study provides useful implications for ranking clones for refactoring and tracking. Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
ICSME | 1 |
| 2015 | SPCP-Miner: A tool for mining code clones that are important for refactoring or trackingabstractCode cloning has both positive and negative impacts on software maintenance and evolution. Focusing on the issues related to code cloning, researchers suggest to manage code clones through refactoring and tracking. However, it is impractical to refactor or track all clones in a software system. Thus, it is essential to identify which clones are important for refactoring and also, which clones are important for tracking. In this paper, we present a tool called SPCP-Miner which is the pioneer one to automatically identify and rank the important refactoring as well as important tracking candidates from the whole set of clones in a software system. SPCP-Miner implements the existing techniques that we used to conduct a large scale empirical study on SPCP clones (i.e., the clones that evolved following a Similarity Preserving Change Pattern called SPCP). We believe that SPCP-Miner can help us in better management of code clones by suggesting important clones for refactoring or tracking. Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
SANER | 1 |
| 2014 | A Fine-Grained Analysis on the Evolutionary Coupling of Cloned CodeabstractCode clones are identical or similar code fragments in a code base. A group of code fragments that are similar to one another forms a clone class. Clone fragments from the same clone class often need to be changed together consistently and thus, they exhibit evolutionary coupling. Evolutionary coupling among clone fragments within a clone class has already been investigated and reported. However, a change to a clone fragment of a clone class may also trigger changes to non-cloned code as well as to clone fragments of other clone classes. Such coupling information is equally important for the proper management of clones during software maintenance. Unfortunately, there are no such studies reported in the literature. In this paper, we describe a large scale empirical study that we conduct to examine whether a clone fragment from a particular clone class exhibits evolutionary coupling with non-clone fragments and/or with clone fragments of other clone classes. Our experimental results on thousands of revisions of six diverse subject systems written in two programming languages indicate the presence of such couplings. We consider both exact and near-miss clones in our study. By analyzing the evolutionary couplings of a particular clone fragment from a particular clone class, we are able to predict its three types of co-change candidates with considerable accuracy in terms of precision and recall. These co-change candidates are: (1) non-clone fragments, (2) clone fragments from clone classes other than its own class, and (3) other clone fragments from its own clone class. Thus, we can improve existing clone tracking techniques so that they can also infer and suggest which non-clone fragments as well as which clone fragments from other clone classes might need to be co-changed correspondingly when modifying a clone fragment from a particular clone class. Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
ICSME | 1 |
| 2014 | Prediction and ranking of co-change candidates for clonesabstractCode clones are identical or similar code fragments scattered in a code-base. A group of code fragments that are similar to one another form a clone group. Clones in a particular group often need to be changed together (i.e., co-changed) consistently. However, all clones in a group might not require consistent changes, because some clone fragments might evolve independently. Thus, while changing a particular clone fragment, it is important for a programmer to know which other clone fragments in the same group should be consistently co-changed with that particular clone fragment. Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
MSR | 1 |
| 2014 | Automatic Identification of Important Clones for Refactoring and TrackingabstractCode cloning is a controversial software engineering practice due to contradictory claims regarding its impacts on software evolution and maintenance. While a number of studies identify some positive aspects of code clones, there is strong empirical evidence of some negative impacts of clones too. Focusing on the issues related to clones researchers suggest to manage code clones through detection, refactoring, and tracking. However, all clones in a software system are not suitable for refactoring or tracking. Thus, it is important to identify which clones we should consider for refactoring and which clones should be considered for tracking. In this research work we apply the concept of evolutionary coupling to identify clones that are important for refactoring or tracking. By mining software evolution history, we determine and analyze constrained association rules of clone fragments that evolved following a particular change pattern called Similarity Preserving Change Pattern and are important from the perspective of refactoring and tracking. According to our investigation with rigorous manual analysis on thousands of revisions of six diverse subject systems covering two programming languages, overall 13.20% of all clones in a software system are important candidates for refactoring, and overall 10.27% of all clones are important candidates for tracking. Our implemented system can automatically identify these important candidates and thus, can help us in better maintenance of code clones in terms of refactoring and tracking. Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
SCAM | 1 |
| 2014 | An insight into the dispersion of changes in cloned and non-cloned code: A genealogy based empirical study
Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
Sci. Comput. Program. | 1 |
| 2013 | Insight into a method co-change pattern to identify highly coupled methods: An empirical studyabstractIn this paper, we describe an empirical study of a unique method co-change pattern that has the potential to pinpoint design deficiency in a software system. We automatically identify this pattern by inspecting the method co-change history using reasonable constraints on method association rules. We also investigate the effect of code clones on the method co-changes identified according to the pattern, because there is a common intuition that clone fragments from the same clone class often require corresponding changes to ensure they remain consistent with each other. According to our in-depth investigation on hundreds of revisions of seven open-source software systems considering three types of clones (Type 1, Type 2, Type 3), our identified pattern helps us detect methods that are logically coupled with multiple other methods and that exhibit a significantly higher modification frequency than other methods. We call the methods detected by the pattern MMCGs (Methods appearing in Multiple Commit Groups) considering the pattern semantic. MMCGs can be considered as the candidates for restructuring in order to minimize coupling as well as to reduce the change-proneness of a software system. According to our observation, code clones have a significant effect on method co-changes as well as on MMCGs. We believe that clone refactoring can help us minimize evolutionary coupling among methods. Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
ICPC | 1 |
| 2013 | Improving the detection accuracy of evolutionary couplingabstractIf two or more program entities (e.g., files, classes, methods) co-change frequently during software evolution, these entities are said to have evolutionary coupling. The entities that frequently co-change (i.e., exhibit evolutionary coupling) are likely to have logical coupling (or dependencies) among them. Association rules and two related measurements, Support and Confidence, have been used to predict whether two or more co-changing entities are logically coupled. In this paper, we propose and investigate a new measurement, Significance, that has the potential to improve the detection accuracy of association rule mining techniques. Our preliminary investigation on four open-source subject systems implies that our proposed measurement is capable of extracting coupling relationships even from infrequently co-changed entity sets that might seem insignificant while considering only Support and Confidence. Our proposed measurement, Significance (in association with Support and Confidence), has the potential to predict logical coupling with higher precision and recall. Manishankar Mondal, Chanchal Kumar Roy, Kevin A. Schneider |
ICPC | 1 |
| 2011 | An Empirical Study of the Impacts of Clones in Software MaintenanceabstractThe impacts of clones on software maintenance is a long-lived debate on whether clones are beneficial or not. Some researchers argue that clones lead to additional changes during the maintenance phase and thus increase the overall maintenance effort. Moreover, they note that inconsistent changes to clones may introduce faults during evolution. On the other hand, other researchers argue that cloned code exhibits more stability than non-cloned code. Studies resulting in such contradictory outcomes may be a consequence of using different methodologies, using different clone detection tools, defining different impact assessment metrics, and evaluating different subject systems. In order to understand the conflicting results from the studies, we plan to conduct a comprehensive empirical study using a common framework incorporating nine existing methods that yielded mostly contradictory findings. Our research strategy involves implementing each of these methods using four clone detection tools and evaluating the methods on more than fifteen subject systems of different languages and of a diverse nature. We believe that our study will help eliminate tool and study biases to resolve conflicts regarding the impacts of clones on software maintenance. Manishankar Mondal, Md. Saidur Rahman 0002, Ripon K. Saha, Chanchal Kumar Roy, Jens Krinke, Kevin A. Schneider |
ICPC | 1 |