690,956 research outputs found

    Measuring Software Volatility: A Multi-Dimensional Approach

    Get PDF
    The only thing constant is change. This is certainly more true of software systems than almost any phenomenon. Not all software systems change in the same way or at the same rate. Some constantly undergo major modifications and others remain untouched for years at a time. Identification and understanding of these differences in dynamic software system behavior (i.e., software evolution) can improve software engineering and systems management. Measurement is key to understanding any phenomenon. Software volatility, a characteristic of software behavior, describes the changeable nature of software. By rigorously defining, evaluating, and validating a measure of software volatility, we can expand our understanding of the evolutionary processes constantly transforming software systems

    Documentation of Machine Learning Software

    Full text link
    Machine Learning software documentation is different from most of the documentations that were studied in software engineering research. Often, the users of these documentations are not software experts. The increasing interest in using data science and in particular, machine learning in different fields attracted scientists and engineers with various levels of knowledge about programming and software engineering. Our ultimate goal is automated generation and adaptation of machine learning software documents for users with different levels of expertise. We are interested in understanding the nature and triggers of the problems and the impact of the users' levels of expertise in the process of documentation evolution. We will investigate the Stack Overflow Q/As and classify the documentation related Q/As within the machine learning domain to understand the types and triggers of the problems as well as the potential change requests to the documentation. We intend to use the results for building on top of the state of the art techniques for automatic documentation generation and extending on the adoption, summarization, and explanation of software functionalities.Comment: The paper is accepted for publication in 27th IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER 2020

    An investigation into evolving support for component reuse

    Get PDF
    It is common in engineering disciplines for new product development to be based on a concept of reuse, i.e. based on a foundation of knowledge and pre-existing components familiar to the discipline's community. In Software Engineering, this concept is known as software reuse. Software reuse is considered essential if higher quality software and reduced development effort are to be achieved. A crucial part of any engineering development is access to tools that aid development. In software engineering this means having software support tools with which to construct software including tools to support effective software reuse. The evolutionary nature of software means that the foundation of knowledge and components on which new products can be developed must reflect the changes occurring in both the software engineering discipline and the domain in which the software is to function. Therefore, effective support tools, including those used in software reuse, must evolve to reflect changes in both software engineering and the varying domains that use software. This thesis contains a survey of the current understanding of software reuse. Software reuse is defined as the use of knowledge and work components of software that already exist in the development of new software. The survey reflects the belief that domain analysis and software tool support are essential in successful software reuse. The focus of the research is an investigation into the effects of a changing domain on the evolution of support for component-based reuse and domain analysis, and on the application of software reuse support methods and tools to another engineering discipline, namely roll design. To broaden understanding of a changing domain on the evolution of support for software reuse and domain analysis, a prototype for a reuse support environment has been developed for roll designers in the steel industry

    An Inductive Approach to Documenting the Core and Evolution of the IS Field

    Get PDF
    This article inductively examines the question of the IS field\u27s core. We argue that as a socially constructed field, the core aspects of IS can be identified from the work conducted and published by members of IS community. The abstracts (including titles) of 1,197 IS studies in three premier IS journals for the past 26 years were examined to identify the core of the field and explore its evolving nature with help of a neural network software as the analysis tool. The field, contextual, transitory, and evolving core of IS are identified through the analysis of 267,034 words in the knowledge base constructed. The results show both stability and evolution of the core of IS field. The three journals examined show sufficient commonality on core of the field, with slightly different preferences for research topics and methods. Given the diverse nature of the IS field, we believe that such a retrospective and descriptive study can document evidence of the core and facilitate a better understanding of the evolution of the field

    Mining unstructured software data

    Get PDF
    Our thesis is that the analysis of unstructured data supports software understanding and evolution analysis, and complements the data mined from structured sources. To this aim, we implemented the necessary toolset and investigated methods for exploring, exposing, and exploiting unstructured data.To validate our thesis, we focused on development email data. We found two main challenges in using it to support program comprehension and software development: The disconnection between emails and code artifacts and the noisy and mixed-language nature of email content. We tackle these challenges proposing novel approaches. First, we devise lightweight techniques for linking email data to code artifacts. We use these techniques for creating a tool to support program comprehension with email data, and to create a new set of email based metrics to improve existing defect prediction approaches. Subsequently, we devise techniques for giving a structure to the content of email and we use this structure to conduct novel software analyses to support program comprehension. In this dissertation we show that unstructured data, in the form of development emails, is a valuable addition to structured data and, if correctly mined, can be used successfully to support software engineering activities

    Reconstruction of avian ancestral karyotypes reveals differences in the evolutionary history of macro- and microchromosomes

    Get PDF
    Background Reconstruction of ancestral karyotypes is critical for our understanding of genome evolution, allowing for the identification of the gross changes that shaped extant genomes. The identification of such changes and their time of occurrence can shed light on the biology of each species, clade and their evolutionary history. However, this is impeded by both the fragmented nature of the majority of genome assemblies and the limitations of the available software to work with them. These limitations are particularly apparent in birds, with only 10 chromosome-level assemblies reported thus far. Algorithmic approaches applied to fragmented genome assemblies can nonetheless help define patterns of chromosomal change in defined taxonomic groups. Results Here, we make use of the DESCHRAMBLER algorithm to perform the first large-scale study of ancestral chromosome structure and evolution in birds. This algorithm allows us to reconstruct the overall genome structure of 14 key nodes of avian evolution from the Avian ancestor to the ancestor of the Estrildidae, Thraupidae and Fringillidae families. Conclusions Analysis of these reconstructions provides important insights into the variability of rearrangement rates during avian evolution and allows the detection of patterns related to the chromosome distribution of evolutionary breakpoint regions. Moreover, the inclusion of microchromosomes in our reconstructions allows us to provide novel insights into the evolution of these avian chromosomes, specifically

    A Survey of Source Code Search: A 3-Dimensional Perspective

    Full text link
    (Source) code search is widely concerned by software engineering researchers because it can improve the productivity and quality of software development. Given a functionality requirement usually described in a natural language sentence, a code search system can retrieve code snippets that satisfy the requirement from a large-scale code corpus, e.g., GitHub. To realize effective and efficient code search, many techniques have been proposed successively. These techniques improve code search performance mainly by optimizing three core components, including query understanding component, code understanding component, and query-code matching component. In this paper, we provide a 3-dimensional perspective survey for code search. Specifically, we categorize existing code search studies into query-end optimization techniques, code-end optimization techniques, and match-end optimization techniques according to the specific components they optimize. Considering that each end can be optimized independently and contributes to the code search performance, we treat each end as a dimension. Therefore, this survey is 3-dimensional in nature, and it provides a comprehensive summary of each dimension in detail. To understand the research trends of the three dimensions in existing code search studies, we systematically review 68 relevant literatures. Different from existing code search surveys that only focus on the query end or code end or introduce various aspects shallowly (including codebase, evaluation metrics, modeling technique, etc.), our survey provides a more nuanced analysis and review of the evolution and development of the underlying techniques used in the three ends. Based on a systematic review and summary of existing work, we outline several open challenges and opportunities at the three ends that remain to be addressed in future work.Comment: submitted to ACM Transactions on Software Engineering and Methodolog

    Traceability for Model Driven, Software Product Line Engineering

    Get PDF
    Traceability is an important challenge for software organizations. This is true for traditional software development and even more so in new approaches that introduce more variety of artefacts such as Model Driven development or Software Product Lines. In this paper we look at some aspect of the interaction of Traceability, Model Driven development and Software Product Line

    Robot life: simulation and participation in the study of evolution and social behavior.

    Get PDF
    This paper explores the case of using robots to simulate evolution, in particular the case of Hamilton's Law. The uses of robots raises several questions that this paper seeks to address. The first concerns the role of the robots in biological research: do they simulate something (life, evolution, sociality) or do they participate in something? The second question concerns the physicality of the robots: what difference does embodiment make to the role of the robot in these experiments. Thirdly, how do life, embodiment and social behavior relate in contemporary biology and why is it possible for robots to illuminate this relation? These questions are provoked by a strange similarity that has not been noted before: between the problem of simulation in philosophy of science, and Deleuze's reading of Plato on the relationship of ideas, copies and simulacra
    • …
    corecore