8,787 research outputs found

    Change Impact Analysis of Code Clones

    Get PDF
    Copying a code fragment and reusing it with or without modifications is known to be a frequent activity in software development. This results in exact or closely similar copies of code fragments, known as code clones, to exist in the software systems. Developers leverage the code reuse opportunity by code cloning for increased productivity. However, different studies on code clones report important concerns regarding the impacts of clones on software maintenance. One of the key concerns is to maintain consistent evolution of the clone fragments as inconsistent changes to clones may introduce bugs. Challenges to the consistent evolution of clones involve the identification of all related clone fragments for change propagation when a cloned fragment is changed. The task of identifying the ripple effects (i.e., all the related components to change) is known as Change Impact Analysis (CIA). In this thesis, we evaluate the impacts of clones on software systems from new perspectives and then we propose an evolutionary coupling based technique for change impact analysis of clones. First, we empirically evaluate the comparative stability of cloned and non-cloned code using fine-grained syntactic change types. Second, we assess the impacts of clones from the perspective of coupling at the domain level. Third, we carry out a comprehensive analysis of the comparative stability of cloned and non-cloned code within a uniform framework. We compare stability metrics with the results from the original experimental settings with respect to the clone detection tools and the subject systems. Fourth, we investigate the relationships between stability and bug-proneness of clones to assess whether and how stability contribute to the bug-proneness of different types of clones. Next, in the fifth study, we analyzed the impacts of co-change coupling on the bug-proneness of different types of clones. After a comprehensive evaluation of the impacts of clones on software systems, we propose an evolutionary coupling based CIA approach to support the consistent evolution of clones. In the sixth study, we propose a solution to minimize the effects of atypical commits (extra large commits) on the accuracy of the detection of evolutionary coupling. We propose a clustering-based technique to split atypical commits into pseudo-commits of related entities. This considerably reduces the number of incorrect couplings introduced by the atypical commits. Finally, in the seventh study, we propose an evolutionary coupling based change impact analysis approach for clones. In addition to handling the atypical commits, we use the history of fine-grained syntactic changes extracted from the software repositories to detect typed evolutionary coupling of clones. Conventional approaches consider only the frequency of co-change of the entities to detect evolutionary coupling. We consider both change frequencies and the fine-grained change types in the detection of evolutionary coupling. Findings from our studies give important insights regarding the impacts of clones and our proposed typed evolutionary coupling based CIA approach has the potential to support the consistent evolution of clones for better clone management

    Identifying and improving reusability based on coupling patterns

    Get PDF
    Open Source Software (OSS) communities have not yet taken full advantage of reuse mechanisms. Typically many OSS projects which share the same application domain and topic, duplicate effort and code, without fully leveraging the vast amounts of available code. This study proposes the empirical evaluation of source code folders of OSS projects in order to determine their actual internal reuse and their potential as shareable, fine-grained and externally reusable software components by future projects. This paper empirically analyzes four OSS systems, identifies which components (in the form of folders) are currently being reused internally and studies their coupling characteristics. Stable components (i.e., those which act as service providers rather than service consumers) are shown to be more likely to be reusable. As a means of supporting replication of these successful instances of OSS reuse, source folders with similar patterns are extracted from the studied systems, and identified as externally reusable components

    Organizational paths of commercializing patented inventions: The effects of transaction costs, firm capabilities, and collaborative ties

    Get PDF
    This study examines the factors affecting modes of commercializing patented inventions using a novel dataset based on a survey of U.S. inventors. We find that technological uncertainty and possessing complementary assets raise the propensity for internal commercialization. We find that R&D collaboration with firms in a horizontal relationship is likely to increase the propensity to license the invention. In addition, the paper shows that macro-level environment conditions that affect exchange conditions, such as technology familiarity, influence the effects of capabilities on governance choice.transaction cost economics; knowledge-based view; collaboration ties; commercialization; innovation; patent

    Assessing architectural evolution: A case study

    Get PDF
    This is the post-print version of the Article. The official published can be accessed from the link below - Copyright @ 2011 SpringerThis paper proposes to use a historical perspective on generic laws, principles, and guidelines, like Lehman’s software evolution laws and Martin’s design principles, in order to achieve a multi-faceted process and structural assessment of a system’s architectural evolution. We present a simple structural model with associated historical metrics and visualizations that could form part of an architect’s dashboard. We perform such an assessment for the Eclipse SDK, as a case study of a large, complex, and long-lived system for which sustained effective architectural evolution is paramount. The twofold aim of checking generic principles on a well-know system is, on the one hand, to see whether there are certain lessons that could be learned for best practice of architectural evolution, and on the other hand to get more insights about the applicability of such principles. We find that while the Eclipse SDK does follow several of the laws and principles, there are some deviations, and we discuss areas of architectural improvement and limitations of the assessment approach

    Allo-network drugs: Extension of the allosteric drug concept to protein-protein interaction and signaling networks

    Get PDF
    Allosteric drugs are usually more specific and have fewer side effects than orthosteric drugs targeting the same protein. Here, we overview the current knowledge on allosteric signal transmission from the network point of view, and show that most intra-protein conformational changes may be dynamically transmitted across protein-protein interaction and signaling networks of the cell. Allo-network drugs influence the pharmacological target protein indirectly using specific inter-protein network pathways. We show that allo-network drugs may have a higher efficiency to change the networks of human cells than those of other organisms, and can be designed to have specific effects on cells in a diseased state. Finally, we summarize possible methods to identify allo-network drug targets and sites, which may develop to a promising new area of systems-based drug design

    Fine-grained classification of journal articles by relying on multiple layers of information through similarity network fusion: the case of the Cambridge Journal of Economics

    Get PDF
    This paper explores the possibility of classifying journal articles by exploiting multiple information sources, instead of relying on only one information source at a time. In particular, the Similarity Network Fusion (SNF) technique is used to merge the different layers of information about articles when they are organized as a multiplex network. The method proposed is tested on a case study consisting of the articles published in the Cambridge Journal of Economics. The information about articles is organized in a two-layer multiplex where the first layer contains similarities among articles based on the full-text of articles, and the second layer contains similarities based on the cited references. The unsupervised similarity network fusion process combines the two layers by building a new single-layer network. Distance correlation and partial distance correlation indexes are then used for estimating the contribution of each layer of information to the determination of the structure of the fused network. A clustering algorithm is lastly applied to the fused network for obtaining a classification of articles. The classification obtained through SNF has been evaluated from an expert point of view, by inspecting whether it can be interpreted and labelled with reference to research programs and methodologies adopted in economics. Moreover, the classification obtained in the fused network is compared with the two classifications obtained when cited references and contents are considered separately. Overall, the classification obtained on the fused network appears to be fine-grained enough to represent the extreme heterogeneity characterizing the contributions published in the Cambridge Journal of Economics
    corecore