1,628,846 research outputs found
Punctuated Equilibrium in Software Evolution
The approach based on paradigm of self-organized criticality proposed for
experimental investigation and theoretical modelling of software evolution. The
dynamics of modifications studied for three free, open source programs Mozilla,
Free-BSD and Emacs using the data from version control systems. Scaling laws
typical for the self-organization criticality found. The model of software
evolution presenting the natural selection principle is proposed. The results
of numerical and analytical investigation of the model are presented. They are
in a good agreement with the data collected for the real-world software.Comment: 4 pages, LaTeX, 2 Postscript figure
Evaluating Software Architectures: Development Stability and Evolution
We survey seminal work on software architecture evaluationmethods. We then look at an emerging class of methodsthat explicates evaluating software architectures forstability and evolution. We define architectural stabilityand formulate the problem of evaluating software architecturesfor stability and evolution. We draw the attention onthe use of Architectures Description Languages (ADLs) forsupporting the evaluation of software architectures in generaland for architectural stability in specific
Some issues in the 'archaeology' of software evolution
During a software project's lifetime, the software goes through many changes, as components are added, removed and modified to fix bugs and add new features. This paper is intended as a lightweight introduction to some of the issues arising from an `archaeological' investigation of software evolution. We use our own work to look at some of the challenges faced, techniques used, findings obtained, and lessons learnt when measuring and visualising the historical changes that happen during the evolution of software
Using control flow analysis to improve the effectiveness of incremental mutation testing
Incremental Mutation Testing attempts to make mutation testing
less expensive by applying it incrementally to a system as it evolves.
This approach fits current trends of iterative software development
with the main idea being that by carrying out mutation analysis in
frequent bite-sized chunks focused on areas of the code which have
changed, one can build confidence in the adequacy of a test suite
incrementally. Yet this depends on how precisely one can characterise the effects of a change to a program. The original technique
uses a naïve approach whereby changes are characterised only by
syntactic changes. In this paper we propose bolstering incremental
mutation testing by using control flow analysis to identify semantic
repercussions which a syntactic change will have on a system. Our
initial results based on two case studies demonstrate that numerous
relevant mutants which would have otherwise not been considered
using the naïve approach, are now being generated. However, the
cost of identifying these mutants is significant when compared to
the naïve approach, although it remains advantageous when compared to traditional mutation testing so long as the increment is
sufficiently small.peer-reviewe
Recommended from our members
Maleku: an evolutionary visual software analytics tool for providing insights into software evolution
Software maintenance is a complex process that requires the understanding and comprehension of software project details. It involves the understanding of the evolution of the software project, hundreds of software components and the relationships among software items in the form of inheritance, interface implementation, coupling and cohesion. Consequently, the aim of evolutionary visual software analytics is to support software project managers and developers during software maintenance. It takes into account the mining of evolutionary data, the subsequent analysis of the results produced by the mining process for producing evolution facts, the use of visualizations supported by interaction techniques and the active participation of users. Hence, this paper proposes an evolutionary visual software analytics tool for the exploration and comparison of project structural, interface implementation and class hierarchy data, and the correlation of structural data with metrics, as well as socio-technical relationships. Its main contribution is a tool that automatically retrieves evolutionary software facts and represent them using a scalable visualization design
- …
