7 research outputs found
Recommended from our members
Insights on improving the maintenance process through software measurement
This paper develops a new model of software maintenance based upon an objective decision rule which determines whether a given software module can be effectively modified, or if it should instead be rewritten. Completely rewriting a module can be expensive, but it can be even more expensive if the module's structure has been severely degraded over successive maintenance activities. A module that is likely to experience significant maintenance activity is called change prone. The paper suggests early identification of change prone modules through the use of change measures across release cycles can be an effective technique in efficient allocation of maintenance resources.KEYWORDS: Maintenance, Metrics, Software Measurement, Software Engineering, Software Managemen
Improving Open Source Software Maintenance
Maintenance is inevitable for almost any software. Software
maintenance is required to fix bugs, to add new features, to
improve performance, and/or to adapt to a changed environment.
In this article, we examine change in cognitive complexity and its
impacts on maintenance in the context of open source software
(OSS). Relationships of the change in cognitive complexity with
the change in the number of reported bugs, time taken to fix the
bugs, and contributions from new developers are examined and
are all found to be statistically significant. In addition, several
control variables, such as software size, age, development status,
and programmer skills are included in the analyses. The results
have strong implications for OSS project administrators; they
must continually measure software complexity and be actively
involved in managing it in order to have successful and sustainable
OSS products
Animating the evolution of software
The use and development of open source software has increased significantly in the last decade. The high frequency of changes and releases across a distributed environment requires good project management tools in order to control the process adequately. However, even with these tools in place, the nature of the development and the fact that developers will often work on many other projects simultaneously, means that the developers are unlikely to have a clear picture of the current state of the project at any time. Furthermore, the poor documentation associated with many projects has a detrimental effect when encouraging new developers to contribute to the software. A typical version control repository contains a mine of information that is not always obvious and not easy to comprehend in its raw form. However, presenting this historical data in a suitable format by using software visualisation techniques allows the evolution of the software over a number of releases to be shown. This allows the changes that have been made to the software to be identified clearly, thus ensuring that the effect of those changes will also be emphasised. This then enables both managers and developers to gain a more detailed view of the current state of the project. The visualisation of evolving software introduces a number of new issues. This thesis investigates some of these issues in detail, and recommends a number of solutions in order to alleviate the problems that may otherwise arise. The solutions are then demonstrated in the definition of two new visualisations. These use historical data contained within version control repositories to show the evolution of the software at a number of levels of granularity. Additionally, animation is used as an integral part of both visualisations - not only to show the evolution by representing the progression of time, but also to highlight the changes that have occurred. Previously, the use of animation within software visualisation has been primarily restricted to small-scale, hand generated visualisations. However, this thesis shows the viability of using animation within software visualisation with automated visualisations on a large scale. In addition, evaluation of the visualisations has shown that they are suitable for showing the changes that have occurred in the software over a period of time, and subsequently how the software has evolved. These visualisations are therefore suitable for use by developers and managers involved with open source software. In addition, they also provide a basis for future research in evolutionary visualisations, software evolution and open source development
Recommended from our members
Real-time software metrics
This study describes the software metrics analysis of IO releases of an embedded real-time telephone switching system developed by a German telecommunications firm. The micro-controlled application was written in a C-like macro assembly language. We developed a metrics program that computes the standard complexity metrics plus a number of information flow metrics.
The releases of the real-time software satisfies published laws of software evolution, e.g. continuing change, increasing entropy, and total change is not uniform over the changed modules. The data also supports Harrison and Cook's program maintenance decision model [7]. We propose the change standard deviation as a threshold for their model.
A multi variate analysis of the metrics computed with our metric analyzer program identified four underlying complexity domains: size, information flow into functions, information flow out of functions and control flow. We also found that the information flow metrics characterize real-time complexity better than the standard software complexity metrics, e.g. Halstead's Software Science, LOC, McCabe's Cyclomatic Complexity. We also investigated the relations between programming hours for the various releases and the program changes and changes in metric values
Software Engineering Laboratory Series: Collected Software Engineering Papers
The Software Engineering Laboratory (SEL) is an organization sponsored by NASA/GSFC and created to investigate the effectiveness of software engineering technologies when applied to the development of application software. The activities, findings, and recommendations of the SEL are recorded in the Software Engineering Laboratory Series, a continuing series of reports that includes this document
Einfluss von Softwarearchitektur auf den Wert eines Softwaresystems
Softwaresysteme sind ein wichtiger Bestandteil in der heutigen digitalen Welt und müssen oft als fundamentales Investitionsgut von Unternehmen betrachtet werden. Deswegen benötigen solche Systeme eine betriebswirtschaftliche Sichtweise: der Wert als operatives System sowie als langfristige finanzielle Investition bezüglich zukünftiger Anforderungen. Die Grundlage jeden guten Softwaresystems liegt in dessen Architektur, dem Zusammenhang von allen Teilen und deren Beziehungen untereinander, dem inneren Aufbau und der Organisation der Teile. Der Zusammenhang zwischen guter Architektur und resultierender guter Evolutionsfähigkeit und Zukunftsfähigkeit eines Systems ist generell in den Meinungen vertreten. Jedoch liegen dazu nur wenige Literaturstellen vor, welche die Thematik tatsächlich mehr als nur empirisch aufzeigen. Diese Arbeit soll einen möglichen Weg aufzeigen, wie mithilfe eines modellbasierten Ansatzes ein kausaler und quantitiver Zusammenhang zwischen Architektur eines Softwaresystems und dem resultierenden betriebswirtschaftlichen Wert (im Sinne der Evolutionsfähigkeit) hergestellt werden kann
Modelo de calidad para el software orientado a objetos
El software ha obtenido en la actualidad una gran importancia en todos los ámbitos
de la vida cotidiana. Es indudable que la calidad del software juega un papel
fundamental en todo desarrollo informático, aunque en ocasiones no se le presta la
suficiente atención, quizás debido a los relativamente escasos trabajos relacionados
con este tema desarrollados hasta la fecha.
En el presente trabajo, se plantea la necesidad de un modelo de calidad completo.
Para cubrir esta necesidad se presenta un nuevo modelo de calidad, obtenido tras
un estudio pormenorizado de los modelos de calidad existentes, centrado en el
paradigma orientado a objetos. Este modelo de calidad muestra cómo la calidad del
software se descompone en una serie de factores y éstos, a su vez, se descomponen en
un conjunto de criterios medibles utilizando medidas. El modelo incluye un amplio
conjunto de medidas, diseñadas especialmente para su aplicación dentro del
paradigma orientado a objetos. Para completar el modelo, se ha diseñado un sencillo
método de aplicación de este modelo de calidad para que pueda ser utilizado de
una forma simple por los desarrolladores de sistemas informáticos orientados a
objetos.
El modelo de calidad definido se ha validado realizando un juego de experimentos.
Estos experimentos han consistido en la aplicación del modelo sobre una serie de
desarrollos orientados a objetos. Los resultados obtenidos han demostrado su
utilidad práctica para determinar tanto la calidad global de los sistemas, como para
identificar aquellas partes del sistema susceptibles de ser mejoradas.
Con este trabajo, se llena un importante hueco existente en esta área, pues, en primer
lugar, no existen modelos de calidad completos para la orientación a objetos. En
segundo lugar, aunque hay medidas para la orientación a objetos, no se han asociado
a los atributos que determinan la calidad del software, por lo que su utilidad, tal cual
fueron definidas, resulta bastante cuestionable. Para finalizar, nunca se ha asociado
un modelo de calidad con una método de aplicación, por lo que su utilidad quedaba
considerablemente mermada, quedando a expensas de la habilidad y experiencia del
Ingeniero del Software que lo utilizara