6,337 research outputs found
Software metrics: Software quality metrics for distributed systems
Software quality metrics was extended to cover distributed computer systems. Emphasis is placed on studying embedded computer systems and on viewing them within a system life cycle. The hierarchy of quality factors, criteria, and metrics was maintained. New software quality factors were added, including survivability, expandability, and evolvability
Evolvability as a Quality Attribute of Software Architectures
We review the definition of evolvability as it appears on the literature. In particular, the concept of software evolvability is compared with other system quality attributes, such as adaptability, maintainability and modifiability
Software evolvability - empirically discovered evolvability issues and human evaluations
Evolution of a software system can take decades and can cost up to several billion Euros. Software evolvability refers to how easily software is understood, modified, adapted, corrected, and developed. It has been estimated that software evolvability can explain 25% to 38% of the costs of software evolution. Prior research has presented software evolvability criteria and quantified the criteria utilizing source code metrics. However, the empirical observations of software evolvability issues and human evaluations of them have largely been ignored.
This dissertation empirically studies human evaluations and observations of software evolvability issues. This work utilizes both qualitative and quantitative research methods. Empirical data was collected from controlled experiments with student subjects, and by observing issues that were discovered in real industrial settings.
This dissertation presents a new classification for software evolvability issues. The information provided by the classification is extended by the detailed analysis of evolvability issues that have been discovered in code reviews and their distributions to different issue types. Furthermore, this work studies human evaluations of software evolvability; more specifically, it focuses on the interrater agreement of the evaluations, the affect of demographics, the evolvability issues that humans find to be most significant, as well as the relationship between human evaluation and source code metrics based evaluations.
The results show that code review that is performed after light functional testing reveals three times as many evolvability issues as functional defects. We also discovered a new evolvability issue called "solution approach", which indicates a need to rethink the current solution rather than reorganize it. For solution approach issues, we are not aware of any research that presents or discusses such issues in the software engineering domain. We found weak evidence that software evolvability evaluations are more affected by a person's role in the organization and the relationship (authorship) to the code than by education and work experience. Comparison of code metrics and human evaluations revealed that metrics cannot detect all human found evolvability issues
Structural Complexity and Decay in FLOSS Systems: An Inter-Repository Study
Past software engineering literature has firmly established that software architectures and the associated code decay over time. Architectural decay is, potentially, a major issue in Free/Libre/Open Source Software (FLOSS) projects, since developers sporadically joining FLOSS projects do not always have a clear understanding of the underlying architecture, and may break the overall conceptual structure by several small changes to the code base.
This paper investigates whether the structure of a FLOSS system and its decay can also be influenced by the repository in which it is retained: specifically,
two FLOSS repositories are studied to understand whether the complexity of the software structure in the sampled projects is comparable, or one repository hosts more complex systems than the other. It is also studied
whether the effort to counteract this complexity is dependent on the repository, and the governance it gives to the hosted projects.
The results of the paper are two-fold: on one side, it is shown that the repository hosting larger and more active projects presents more complex structures. On the other side, these larger and more complex systems benefit
from more anti-regressive work to reduce this complexity
Does self-replication imply evolvability?
The most prominent property of life on Earth is its ability to evolve. It is
often taken for granted that self-replication--the characteristic that makes
life possible--implies evolvability, but many examples such as the lack of
evolvability in computer viruses seem to challenge this view. Is evolvability
itself a property that needs to evolve, or is it automatically present within
any chemistry that supports sequences that can evolve in principle? Here, we
study evolvability in the digital life system Avida, where self-replicating
sequences written by hand are used to seed evolutionary experiments. We use 170
self-replicators that we found in a search through 3 billion randomly generated
sequences (at three different sequence lengths) to study the evolvability of
generic rather than hand-designed self-replicators. We find that most can
evolve but some are evolutionarily sterile. From this limited data set we are
led to conclude that evolvability is a likely--but not a guaranteed-- property
of random replicators in a digital chemistry.Comment: 8 pages, 5 figures. To appear in "Advances in Artificial Life":
Proceedings of the 13th European Conference on Artificial Life (ECAL 2015
Origin of life in a digital microcosm
While all organisms on Earth descend from a common ancestor, there is no
consensus on whether the origin of this ancestral self-replicator was a one-off
event or whether it was only the final survivor of multiple origins. Here we
use the digital evolution system Avida to study the origin of self-replicating
computer programs. By using a computational system, we avoid many of the
uncertainties inherent in any biochemical system of self-replicators (while
running the risk of ignoring a fundamental aspect of biochemistry). We
generated the exhaustive set of minimal-genome self-replicators and analyzed
the network structure of this fitness landscape. We further examined the
evolvability of these self-replicators and found that the evolvability of a
self-replicator is dependent on its genomic architecture. We studied the
differential ability of replicators to take over the population when competed
against each other (akin to a primordial-soup model of biogenesis) and found
that the probability of a self-replicator out-competing the others is not
uniform. Instead, progenitor (most-recent common ancestor) genotypes are
clustered in a small region of the replicator space. Our results demonstrate
how computational systems can be used as test systems for hypotheses concerning
the origin of life.Comment: 20 pages, 7 figures. To appear in special issue of Philosophical
Transactions of the Royal Society A: Re-Conceptualizing the Origins of Life
from a Physical Sciences Perspectiv
The meaning of life in a developing universe
The evolution of life on Earth has produced an organism that is beginning to model and understand its own evolution and the possible future evolution of life in the universe. These models and associated evidence show that evolution on Earth has a trajectory. The scale over which living processes are organized cooperatively has increased progressively, as has its evolvability. Recent theoretical advances raise the possibility that this trajectory is itself part of a wider developmental process. According to these theories, the developmental process has been shaped by a larger evolutionary process that involves the reproduction of universes. This evolutionary process has tuned the key parameters of the universe to increase the likelihood that life will emerge and develop to produce outcomes that are successful in the larger process (e.g. a key outcome may be to produce life and intelligence that intentionally reproduces the universe and tunes the parameters of ‘offspring’ universes). Theory suggests that when life emerges on a planet, it moves along this trajectory of its own accord. However, at a particular point evolution will continue to advance only if organisms emerge that decide to advance the evolutionary process intentionally. The organisms must be prepared to make this commitment even though the ultimate nature and destination of the process is uncertain, and may forever remain unknown. Organisms that complete this transition to intentional evolution will drive the further development of life and intelligence in the universe. Humanity’s increasing understanding of the evolution of life in the universe is rapidly bringing it to the threshold of this major evolutionary transition
Evolvability of Chaperonin Substrate Proteins
Molecular chaperones ensure that their substrate proteins reach the functional native state, and prevent their aggregation. Recently, an additional function was proposed for molecular chaperones: they serve as buffers (_capacitors_) for evolution by permitting their substrate proteins to mutate and at the same time still allowing them to fold productively.

Using pairwise alignments of _E. coli_ genes with genes from other gamma-proteobacteria, we showed that the described buffering effect cannot be observed among substrate proteins of GroEL, an essential chaperone in _E. coli_. Instead, we find that GroEL substrate proteins evolve less than other soluble _E. coli_ proteins. We analyzed several specific structural and biophysical properties of proteins to assess their influence on protein evolution and to find out why specifically GroEL substrates do not show the expected higher divergence from their orthologs.

Our results culminate in four main findings: *1.* We find little evidence that GroEL in _E. coli_ acts as a capacitor for evolution _in vivo_. *2.* GroEL substrates evolved less than other _E. coli_ proteins. *3.* Predominantly structural features appear to be a strong determinant of evolutionary rate. *4.* Besides size, hydrophobicity is a criterion for exclusion for a protein as a chaperonin substrate
Increasing Evolvability Considered as a Large-Scale Trend in Evolution
Evolvability is the capacity to evolve. This paper introduces a simple computational model of evolvability and demonstrates that, under certain conditions, evolvability can increase indefinitely, even when there is no direct selection for evolvability. The model shows that increasing evolvability implies an accelerating evolutionary pace. It is suggested that the conditions for indefinitely increasing evolvability are satisfied in biological and cultural evolution. We claim that increasing evolvability is a large-scale trend in evolution. This hypothesis leads to testable predictions about biological and cultural evolution
- …