2,182 research outputs found

    A survey on software coupling relations and tools

    Full text link
    Context Coupling relations reflect the dependencies between software entities and can be used to assess the quality of a program. For this reason, a vast amount of them has been developed, together with tools to compute their related metrics. However, this makes the coupling measures suitable for a given application challenging to find. Goals The first objective of this work is to provide a classification of the different kinds of coupling relations, together with the metrics to measure them. The second consists in presenting an overview of the tools proposed until now by the software engineering academic community to extract these metrics. Method This work constitutes a systematic literature review in software engineering. To retrieve the referenced publications, publicly available scientific research databases were used. These sources were queried using keywords inherent to software coupling. We included publications from the period 2002 to 2017 and highly cited earlier publications. A snowballing technique was used to retrieve further related material. Results Four groups of coupling relations were found: structural, dynamic, semantic and logical. A fifth set of coupling relations includes approaches too recent to be considered an independent group and measures developed for specific environments. The investigation also retrieved tools that extract the metrics belonging to each coupling group. Conclusion This study shows the directions followed by the research on software coupling: e.g., developing metrics for specific environments. Concerning the metric tools, three trends have emerged in recent years: use of visualization techniques, extensibility and scalability. Finally, some coupling metrics applications were presented (e.g., code smell detection), indicating possible future research directions. Public preprint [https://doi.org/10.5281/zenodo.2002001]

    Analyzing Clone Evolution for Identifying the Important Clones for Management

    Get PDF
    Code clones (identical or similar code fragments in a code-base) have dual but contradictory impacts (i.e., both positive and negative impacts) on the evolution and maintenance of a software system. Because of the negative impacts (such as high change-proneness, bug-proneness, and unintentional inconsistencies), software researchers consider code clones to be the number one bad-smell in a code-base. Existing studies on clone management suggest managing code clones through refactoring and tracking. However, a software system's code-base may contain a huge number of code clones, and it is impractical to consider all these clones for refactoring or tracking. In these circumstances, it is essential to identify code clones that can be considered particularly important for refactoring and tracking. However, no existing study has investigated this matter. We conduct our research emphasizing this matter, and perform five studies on identifying important clones by analyzing clone evolution history. In our first study we detect evolutionary coupling of code clones by automatically investigating clone evolution history from thousands of commits of software systems downloaded from on-line SVN repositories. By analyzing evolutionary coupling of code clones we identify a particular clone change pattern, Similarity Preserving Change Pattern (SPCP), such that code clones that evolve following this pattern should be considered important for refactoring. We call these important clones the SPCP clones. We rank SPCP clones considering their strength of evolutionary coupling. In our second study we further analyze evolutionary coupling of code clones with an aim to assist clone tracking. The purpose of clone tracking is to identify the co-change (i.e. changing together) candidates of code clones to ensure consistency of changes in the code-base. Our research in the second study identifies and ranks the important co-change candidates by analyzing their evolutionary coupling. In our third study we perform a deeper analysis on the SPCP clones and identify their cross-boundary evolutionary couplings. On the basis of such couplings we separate the SPCP clones into two disjoint subsets. While one subset contains the non-cross-boundary SPCP clones which can be considered important for refactoring, the other subset contains the cross-boundary SPCP clones which should be considered important for tracking. In our fourth study we analyze the bug-proneness of different types of SPCP clones in order to identify which type(s) of code clones have high tendencies of experiencing bug-fixes. Such clone-types can be given high priorities for management (refactoring or tracking). In our last study we analyze and compare the late propagation tendencies of different types of code clones. Late propagation is commonly regarded as a harmful clone evolution pattern. Findings from our last study can help us prioritize clone-types for management on the basis of their tendencies of experiencing late propagations. We also find that late propagation can be considerably minimized by managing the SPCP clones. On the basis of our studies we develop an automatic system called AMIC (Automatic Mining of Important Clones) that identifies the important clones for management (refactoring and tracking) and ranks these clones considering their evolutionary coupling, bug-proneness, and late propagation tendencies. We believe that our research findings have the potential to assist clone management by pin-pointing the important clones to be managed, and thus, considerably minimizing clone management effort

    The evolutionary emergence of neural organisation in computational models of primitive organisms

    Get PDF
    Over the decades, the question why did neural organisation emerge in the way that it did? has proved to be massively elusive. Whilst much of the literature paints a picture of common ancestry the idea that a species at the root of the tree of nervous system evolution spawned numerous descendants the actual evolutionary forces responsible for such changes, major transitions or otherwise, have been less clear. The view presented in this thesis is that via interactions with the environment, neural organisation has emerged in concert with the constraints enforced by body plan morphology and a need to process information eciently and robustly. Whilst these factors are two smaller parts of a much greater whole, their impact during the evolutionary process cannot be ignored, for they are fundamentally signicant. Thus computer simulations have been developed to provide insight into how neural organisation of an articial agent should emerge given the constraints of its body morphology, its symmetry, feedback from the environment, and a loss of energy. The first major finding is that much of the computational process of the nervous system can be ooaded to the body morphology, which has a commensurate bearing on neural architecture, neural dynamics and motor symmetry. The second major finding is that sensory feedback strengthens the dynamic coupling between the neural system and the body plan morphology, resulting in minimal neural circuitry yet more ecient agent behaviour. The third major finding is that under the constraint of energy loss, neural circuitry again emerges to be minimalistic. Throughout, an emphasis is placed on the coupling between the nervous system and body plan morphology which are known in the literature to be tightly integrated; accordingly, both are considered on equal footings

    Prosody and synchronization in cognitive neuroscience

    Get PDF
    We introduce our methodological study with a short review of the main literature on embodied language, including some recent studies in neuroscience. We investigated this component of natural language using Recurrence Quantification Analysis (RQA). RQA is a relatively new statistical methodology, particularly effective in complex systems. RQA provided a reliable quantitative description of recurrences in text sequences at the orthographic level. In order to provide examples of the potential impact of this methodology, we used RQA to measure structural coupling and synchronization in natural and clinical verbal interactions. Results show the efficacy of this methodology and possible implications

    Protein Structure

    Get PDF
    Since the dawn of recorded history, and probably even before, men and women have been grasping at the mechanisms by which they themselves exist. Only relatively recently, did this grasp yield anything of substance, and only within the last several decades did the proteins play a pivotal role in this existence. In this expose on the topic of protein structure some of the current issues in this scientific field are discussed. The aim is that a non-expert can gain some appreciation for the intricacies involved, and in the current state of affairs. The expert meanwhile, we hope, can gain a deeper understanding of the topic

    Matters of Gravity, the newsletter of the APS Topical Group on Gravitation

    Full text link
    News: TGG session in the April meeting, by Cliff Will NRC report, by Beverly Berger MG9 Travel Grant for US researchers, by Jim Isenberg Research Briefs: How many coalescing binaries are there?, by Vicky Kalogera Recent developments in black critical phenomena, by Pat Brady Optical black holes?, by Matt Visser ``Branification:'' an alternative to compactification, by Steve Giddings Searches for non-Newtonian Gravity at Sub-mm Distances, by Riley Newman Quiescent cosmological singularities by Bernd Schmidt The debut of LIGO II, by David Shoemaker Is the universe still accelerating?, by Sean Carroll Conference reports: Journ\' ees Relativistes Weimar 1999, by Volker Perlick The 9th Midwest Relativity Meeting, by Thomas BaumgarteComment: 35 pages, LaTeX with psfig and html.sty, ISSN 1527-3431, Jorge Pullin (editor), html, ps and pdf versions at http://gravity.phys.psu.edu/mog.htm

    Visual querying and analysis of large software repositories

    Get PDF
    We present a software framework for mining software repositories. Our extensible framework enables the integration of data extraction from repositories with data analysis and interactive visualization. We demonstrate the applicability of the framework by presenting several case studies performed on industry-size software repositories. In each study we use the framework to give answers to one or several software engineering questions addressing a specific project. Next, we validate the answers by comparing them with existing project documentation, by interviewing domain experts and by detailed analyses of the source code. The results show that our framework can be used both for supporting case studies on mining software repository techniques and for building end-user tools for software maintenanc

    Aerospace medicine and biology: A continuing bibliography with indexes, supplement 164

    Get PDF
    This bibliography lists 275 reports, articles, and other documents introduced into the NASA scientific and technical information system in January 1977

    Essentials on Dark Matter

    Get PDF
    The modern roots on the dark matter problem were basically launched in the 30s, with Zwicky's observations on a notorious discrepancy of mass in coma cluster that presented 500 times the mass than expected using the Newtonian theory (Virial theorem). Curiously, almost 90 years have passed, and the dark matter problem persists and is one of the most common challenges in both observational and theoretical physics. The Dark Matter is a rapid communication on the status-quo of the dark matter phenomenology as well as a presentation of new discussions on the theme

    Understanding Programmers' Working Context by Mining Interaction Histories

    Get PDF
    Understanding how software developers do their work is an important first step to improving their productivity. Previous research has generally focused either on laboratory experiments or coarsely-grained industrial case studies; however, studies that seek a finegrained understanding of industrial programmers working within a realistic context remain limited. In this work, we propose to use interaction histories — that is, finely detailed records of developers’ interactions with their IDE — as our main source of information for understanding programmer’s work habits. We develop techniques to capture, mine, and analyze interaction histories, and we present two industrial case studies to show how this approach can help to better understand industrial programmers’ work at a detailed level: we explore how the basic characteristics of software maintenance task structures can be better understood, how latent dependence between program artifacts can be detected at interaction time, and show how patterns of interaction coupling can be identified. We also examine the link between programmer interactions and some of the contextual factors of software development, such as the nature of the task being performed, the design of the software system, and the expertise of the developers. In particular, we explore how task boundaries can be automatically detected from interaction histories, how system design and developer expertise may affect interaction coupling, and whether newcomer and expert developers differ in their interaction history patterns. These findings can help us to better reason about the multidimensional nature of software development, to detect potential problems concerning task, design, expertise, and other contextual factors, and to build smarter tools that exploit the inherent patterns within programmer interactions and provide improved support for task-aware and expertise-aware software development
    • …
    corecore