Software Evolution

14,000,000 Leading Edge Experts on the ideXlab platform

Scan Science and Technology

Contact Leading Edge Experts & Companies

Scan Science and Technology

Contact Leading Edge Experts & Companies

The Experts below are selected from a list of 105051 Experts worldwide ranked by ideXlab platform

Serge Demeyer - One of the best experts on this subject based on the ideXlab platform.

  • changes as first class citizens a research perspective on modern Software tooling
    ACM Computing Surveys, 2017
    Co-Authors: Quinten David Soetens, Romain Robbes, Serge Demeyer
    Abstract:

    Software must evolve to keep up with an ever-changing context, the real world. We discuss an emergent trend in Software Evolution research revolving around the central notion that drives Evolution: Change. By reifying change, and by modelling it as a first-class entity, researchers can now analyse the complex phenomenon known as Software Evolution with an unprecedented degree of accuracy. We present a Systematic Mapping Study of 86 articles to give an overview on the state of the art in this area of research and present a roadmap with open issues and future directions.

  • studying Software Evolution information by visualizing the change history
    International Conference on Software Maintenance, 2004
    Co-Authors: F Van Rysselberghe, Serge Demeyer
    Abstract:

    Before re-engineering a large and complex Software system, it is wise to study its change history in order to identify the most valuable and problematic parts. Unfortunately, typical change histories contain thousands of entries, therefore the challenge is to discover those changes which are relevant for both the current and future situations of our product and process. We demonstrate how a simple visualization allows us to recognize relevant changes. Applying the technique on the change history of Tomcat, we have been able to identify (a) unstable components, (b) coherent entities, (c) design and architectural Evolution, and (d) fluctuations in team productivity.

Kechagia M. - One of the best experts on this subject based on the ideXlab platform.

  • Software Evolution: the lifetime of fine-grained elements
    'PeerJ', 2021
    Co-Authors: Spinellis D., Louridas Panos, Kechagia M.
    Abstract:

    A model regarding the lifetime of individual source code lines or tokens can estimate maintenance effort, guide preventive maintenance, and, more broadly, identify factors that can improve the efficiency of Software development. We present methods and tools that allow tracking of each line’s or token’s birth and death. Through them, we analyze 3.3 billion source code element lifetime events in 89 revision control repositories. Statistical analysis shows that code lines are durable, with a median lifespan of about 2.4 years, and that young lines are more likely to be modified or deleted, following a Weibull distribution with the associated hazard rate decreasing over time. This behavior appears to be independent from specific characteristics of lines or tokens, as we could not determine factors that influence significantly their longevity across projects. The programing language, and developer tenure and experience were not found to be significantly correlated with line or token longevity, while project size and project age showed only a slight correlation.Software Engineerin

  • Software Evolution: the lifetime of fine-grained elements
    'PeerJ', 2021
    Co-Authors: Spinellis D., Louridas Panos, Kechagia M.
    Abstract:

    A model regarding the lifetime of individual source code lines or tokens can estimate maintenance effort, guide preventive maintenance, and, more broadly, identify factors that can improve the efficiency of Software development. We present methods and tools that allow tracking of each line’s or token’s birth and death. Through them, we analyze 3.3 billion source code element lifetime events in 89 revision control repositories. Statistical analysis shows that code lines are durable, with a median lifespan of about 2.4 years, and that young lines are more likely to be modified or deleted, following a Weibull distribution with the associated hazard rate decreasing over time. This behavior appears to be independent from specific characteristics of lines or tokens, as we could not determine factors that influence significantly their longevity across projects. The programing language, and developer tenure and experience were not found to be significantly correlated with line or token longevity, while project size and project age showed only a slight correlation.

Michele Lanza - One of the best experts on this subject based on the ideXlab platform.

  • A flexible framework to support collaborative Software Evolution analysis
    IEEE CS Press, 2008
    Co-Authors: Michele Lanza
    Abstract:

    To understand the Evolution of Software researchers have developed a plethora of tools to parse, model, and analyze the history of systems. Despite their usefulness, a common downside of such tools is that their use comes with many strings attached, such as installation, data formats, usability, etc. The result is that many tools are only used by their cre-ators, which is detrimental to cross-fertilization of research ideas and collaborative analysis. In this paper we present the Churrasco framework, which supports Software Evolution modeling, visualization and analysis through a web interface. The user provides only the URL of the SubVersion repository to be analyzed and, if available, of the corresponding bug tracking system. Chur-rasco processes the given data and automatically creates and stores an Evolutionary model in a centralized database. This database, called Meta-base is connected to Churrasco through object-relational persistence. The persistency mech-anism is meta-described in terms of the EMOF meta-meta-model and automatically generated based on any given evo-lutionary meta-model. In case the meta-model changes, the persistency mechanism is automatically updated. After providing a detailed description of Churrasco, we provide evidence, by means of an example scenario, that it allows for collaborative Software Evolution analysis, based on visualizations available on our analysis web portal.

  • an approach to Software Evolution based on semantic change
    Fundamental Approaches to Software Engineering, 2007
    Co-Authors: Romain Robbes, Michele Lanza, Mircea Lungu
    Abstract:

    The analysis of the Evolution of Software systems is a useful source of information for a variety of activities, such as reverse engineering, maintenance, and predicting the future Evolution of these systems. Current Software Evolution research is mainly based on the information contained in versioning systems such as CVS and SubVersion. But the Evolutionary information contained therein is incomplete and of low quality, hence limiting the scope of Evolution research. It is incomplete because the historical information is only recorded at the explicit request of the developers (a commit in the classical checkin/checkout model). It is of low quality because the file-based nature of versioning systems leads to a view of Software as being a set of files. In this paper we present a novel approach to Software Evolution analysis which is based on the recording of all semantic changes performed on a system, such as refactorings. We describe our approach in detail, and demonstrate how it can be used to perform fine-grained Software Evolution analysis.

  • a change based approach to Software Evolution
    Electronic Notes in Theoretical Computer Science, 2007
    Co-Authors: Romain Robbes, Michele Lanza
    Abstract:

    Software Evolution research is limited by the amount of information available to researchers: Current version control tools do not store all the information generated by developers. They do not record every intermediate version of the system issued, but only snapshots taken when a developer commits source code into the repository. Additionally, most Software Evolution analysis tools are not a part of the day-to-day programming activities, because analysis tools are resource intensive and not integrated in development environments. We propose to model development information as change operations that we retrieve directly from the programming environment the developers are using, while they are effecting changes to the system. This accurate and incremental information opens new ways for both developers and researchers to explore and evolve complex systems.

  • the Evolution matrix recovering Software Evolution using Software visualization techniques
    International Workshop on Principles of Software Evolution, 2001
    Co-Authors: Michele Lanza
    Abstract:

    One of the major problems in Software Evolution is coping with the complexity which stems from the huge amount of data that must be considered. The current approaches to deal with that problem all aim at a reduction of complexity and a filtering of the relevant information. In this paper we propose an approach based on a combination of Software visualization and Software metrics which we have already successfully applied in the field of Software reverse engineering. Using this approach we discuss a simple and effective way to visualize the Evolution of Software systems which helps to recover the Evolution of object oriented Software systems.

Václav Rajlich - One of the best experts on this subject based on the ideXlab platform.

  • Software Evolution and maintenance
    2014
    Co-Authors: Václav Rajlich
    Abstract:

    Successful Software requires constant change that is triggered by evolving requirements, technologies, and stakeholder knowledge. This constant change constitutes Software Evolution. Software Evolution has gained steadily in importance and recently moved into the center of attention of Software developers. There is the new prominence of Evolutionary Software development that includes agile, iterative, open source, inner source, and other processes. As a consequence, the bulk of Software development now happens in the stage of Software Evolution and this changed the face of Software engineering. This paper discusses Evolutionary Software development and also discusses the Software change, which is the fundamental Software Evolution task. It further discusses research methodologies, teaching Software Evolution in undergraduate curriculum, and difference between Software Evolution and Software maintenance. For all these themes, this travelogue paper presents the current state of the art and the perspective of the future advance.

  • partial domain comprehension in Software Evolution and maintenance
    International Conference on Program Comprehension, 2008
    Co-Authors: Maksym Petrenko, Václav Rajlich, Radu Vanciu
    Abstract:

    Partial comprehension is a necessity in the Evolution and maintenance of very large Software systems. The programmers form not only partial comprehension of the code, but also partial comprehension of the application domain. To describe the comprehension process, we introduce ontology fragments and investigate how programmers form, use and extend them before and during concept location; concept location is a prerequisite of code changes. We conducted case studies of concept location in two large systems, Eclipse and Mozilla, that both have more than 50,000 methods. Using grep search and ontology fragments, the programmers were able to locate the concepts after inspecting on average less than 10 methods and operating with ontology fragments of around 14 concepts, a very small fraction of the total.

  • changing the paradigm of Software engineering
    Communications of The ACM, 2006
    Co-Authors: Václav Rajlich
    Abstract:

    Software Evolution, iterative, and agile development represent a fundamental departure from the previous waterfall-based paradigm of Software engineering.

  • modeling Software Evolution by evolving interoperation graphs
    Annals of Software Engineering, 2000
    Co-Authors: Václav Rajlich
    Abstract:

    Software Evolution is the process of Software change, most often change in Software requirements. This paper presents a theoretical model for the Evolution of componentdbased Software, based on evolving interoperation graphs. The model assumes that each change consists of smaller granularity steps of change propagation, each of them being a visit to one specific component. If the component is modified, it may no longer fit with the other components because it may no longer properly interact with them. In that case secondary changes must be made in neighboring components, which may trigger additional changes, etc. The paper contains an example of Evolution of a calendar program, represented in UML.

Romain Robbes - One of the best experts on this subject based on the ideXlab platform.

  • changes as first class citizens a research perspective on modern Software tooling
    ACM Computing Surveys, 2017
    Co-Authors: Quinten David Soetens, Romain Robbes, Serge Demeyer
    Abstract:

    Software must evolve to keep up with an ever-changing context, the real world. We discuss an emergent trend in Software Evolution research revolving around the central notion that drives Evolution: Change. By reifying change, and by modelling it as a first-class entity, researchers can now analyse the complex phenomenon known as Software Evolution with an unprecedented degree of accuracy. We present a Systematic Mapping Study of 86 articles to give an overview on the state of the art in this area of research and present a roadmap with open issues and future directions.

  • an approach to Software Evolution based on semantic change
    Fundamental Approaches to Software Engineering, 2007
    Co-Authors: Romain Robbes, Michele Lanza, Mircea Lungu
    Abstract:

    The analysis of the Evolution of Software systems is a useful source of information for a variety of activities, such as reverse engineering, maintenance, and predicting the future Evolution of these systems. Current Software Evolution research is mainly based on the information contained in versioning systems such as CVS and SubVersion. But the Evolutionary information contained therein is incomplete and of low quality, hence limiting the scope of Evolution research. It is incomplete because the historical information is only recorded at the explicit request of the developers (a commit in the classical checkin/checkout model). It is of low quality because the file-based nature of versioning systems leads to a view of Software as being a set of files. In this paper we present a novel approach to Software Evolution analysis which is based on the recording of all semantic changes performed on a system, such as refactorings. We describe our approach in detail, and demonstrate how it can be used to perform fine-grained Software Evolution analysis.

  • a change based approach to Software Evolution
    Electronic Notes in Theoretical Computer Science, 2007
    Co-Authors: Romain Robbes, Michele Lanza
    Abstract:

    Software Evolution research is limited by the amount of information available to researchers: Current version control tools do not store all the information generated by developers. They do not record every intermediate version of the system issued, but only snapshots taken when a developer commits source code into the repository. Additionally, most Software Evolution analysis tools are not a part of the day-to-day programming activities, because analysis tools are resource intensive and not integrated in development environments. We propose to model development information as change operations that we retrieve directly from the programming environment the developers are using, while they are effecting changes to the system. This accurate and incremental information opens new ways for both developers and researchers to explore and evolve complex systems.