11 research outputs found
Recommended from our members
A systematic review of software development cost estimation studies
This paper aims to provide a basis for the improvement of software estimation research through a systematic review of previous work. The review identifies 304 software cost estimation papers in 76 journals and classifies the papers according to research topic, estimation approach, research approach, study context and data set. A web-based library of these cost estimation papers is provided to ease the identification of relevant estimation research results. The review results combined with other knowledge provide support for recommendations for future software cost estimation research, including: 1) Increase the breadth of the search for relevant studies, 2) Search manually for relevant papers within a carefully selected set of journals when completeness is essential, 3) Conduct more studies on estimation methods commonly used by the software industry, and, 4) Increase the awareness of how properties of the data sets impact the results when evaluating estimation methods
Error propagation metrics from XMI
This work describes the production of an application Error Propagation Metrics from XMI which can extract process and display software design metrics from XMI files. The tool archives these design metrics in a standard XML format defined by a metric document type definition.;XMI is a flavour of XML allowing the description of UML models. As such, the XMI representation of a software design will include information from which a variety of software design metrics can be extracted. These metrics are potentially useful in improving the software design process, either throughout the early stages of design if a suitable XMI-enabled modelling tool is deployed, or to enable the comparison of completed software projects, by extracting design metrics from UML models reverse engineered from the implemented source code.;The tool is able to derive the error propagation of metrics from test XMI files created from UML sequence and state diagrams and from reverse engineered Java source code. However, variation was observed between the XMI representations generated by different software design tools, limiting the ability of the tool to process XMI from all sources. Furthermore, it was noted that subtle differences between UML design representations might have a marked effect on the quality of metrics derived.;In conclusion in order to validate the usefulness of these metrics that can be extracted from XMI files it would be useful to follow well-documented design projects throughout the total design and implementation process. Alternatively, the tool might be used to compare metrics from well-matched design implementations. In either case design metrics will only be of true value to software engineers if they can be associated empirically with a validated measure of system quality
An Effort Prediction Framework for Software Defect Correction
Developers apply changes and updates to software systems to adapt to emerging
environments and address new requirements. In turn, these changes introduce
additional software defects, usually caused by our inability to comprehend the full
scope of the modi ed code. As a result, software practitioners have developed tools
to aid in the detection and prediction of imminent software defects, in addition to
the eort required to correct them. Although software development eort prediction
has been in use for many years, research into defect-correction eort prediction is
relatively new. The increasing complexity, integration and ubiquitous nature of
current software systems has sparked renewed interest in this eld. Eort prediction
now plays a critical role in the planning activities of managers. Accurate predictions
help corporations budget, plan and distribute available resources eectively and
e ciently. In particular, early defect-correction eort predictions could be used by
testers to set schedules, and by managers to plan costs and provide earlier feedback
to customers about future releases.
In this work, we address the problem of predicting the eort needed to resolve a
software defect. More speci cally, our study is concerned with defects or issues that
are reported on an Issue Tracking System or any other defect repository. Current
approaches use one prediction method or technique to produce eort predictions.
This approach usually suers from the weaknesses of the chosen prediction method,
and consequently the accuracy of the predictions are aected. To address this problem,
we present a composite prediction framework. Rather than using one prediction
approach for all defects, we propose the use of multiple integrated methods
which complement the weaknesses of one another. Our framework is divided into
two sub-categories, Similarity-Score Dependent and Similarity-Score Independent.
The Similarity-Score Dependent method utilizes the power of Case-Based Reasoning,
also known as Instance-Based Reasoning, to compute predictions. It relies on
matching target issues to similar historical cases, then combines their known eort
for an informed estimate. On the other hand, the Similarity-Score Independent
method makes use of other defect-related information with some statistical manipulation
to produce the required estimate. To measure similarity between defects,
some method of distance calculation must be used. In some cases, this method
might produce misleading results due to observed inconsistencies in history, and
the fact that current similarity-scoring techniques cannot account for all the variability
in the data. In this case, the Similarity-Score Independent method can be
used to estimate the eort, where the eect of such inconsistencies can be reduced.
We have performed a number of experimental studies on the proposed framework
to assess the eectiveness of the presented techniques. We extracted the data sets
from an operational Issue Tracking System in order to test the validity of the model
on real project data. These studies involved the development of multiple tools in
both the Java programming language and PHP, each for a certain stage of data
analysis and manipulation. The results show that our proposed approach produces
signi cant improvements when compared to current methods
Métricas 00 aplicadas a código objeto java
Orientador : Márcio Eduardo DelamaroDissertaçao (mestrado) - Universidade Federal do ParanáResumo: Na busca de melhorias no processo de desenvolvimento de software para a obtenção de um produto de qualidade, várias métricas têm sido propostas, com as quais pode-se gerenciar este processo e detectar falhas de projeto. As métricas de software auxiliam na coleta de informação, fornecendo dados qualitativos e quantitativos sobre o processo e o produto de software. Elas identificam onde os recursos são necessários, constituindo assim importante fonte de informação para a. tomada, de decisão. Métricas podem ser aplicadas em diversas fases do desenvolvimento e em diversos produtos intermediários como especificação de requisitos, projeto ou código fonte. Este trabalho mostra a falibilidade de coletar-se algumas métricas de software a partir do código objeto (bytecode) .Java. Tal abordagem pode ser útil em atividades como: teste de programas que utilizam componentes de terceiros, re-engeiiharia e outras nas quais não se tenha acesso ao código fonte. As métricas coletadas a partir do bytecode Java foram aplicadas em um estudo de caso com dois sistemas onde procurou-se relacionar as métricas com a propensão a falhas.Abstract: Searching for improvements in the software development process and aiming at a product with high quality, several metrics, that help to manage the software process and to detect project flaws, have been proposed. Software metrics provide qualitative and quantitative about the software process and the software product. The identify where resources should be allocated, being an important source for decision making. They can be applied in any phase of the development and on different intermediary products as requirement specification, design or source code. This work shows the feasibility of collecting some software metrics directly from Java object programs (Java bytecode). Such an approach can be useful in activities like: testing of third party components, reengineering and others activities where the source code is not available. This approach has been applied in a case study to two Java systems, trying to relate the metrics to the existence of faults
Object-oriented software development effort prediction using design patterns from object interaction analysis
Software project management is arguably the most important activity in modern
software development projects. In the absence of realistic and objective management, the
software development process cannot be managed in an effective way. Software
development effort estimation is one of the most challenging and researched problems in
project management. With the advent of object-oriented development, there have been
studies to transpose some of the existing effort estimation methodologies to the new
development paradigm. However, there is not in existence a holistic approach to
estimation that allows for the refinement of an initial estimate produced in the
requirements gathering phase through to the design phase. A SysML point methodology
is proposed that is based on a common, structured and comprehensive modeling
language (OMG SysML) that factors in the models that correspond to the primary phases
of object-oriented development into producing an effort estimate. This dissertation
presents a Function Point-like approach, named Pattern Point, which was conceived to
estimate the size of object-oriented products using the design patterns found in object
interaction modeling from the late OO analysis phase. In particular, two measures are proposed (PP1 and PP2) that are theoretically validated showing that they satisfy wellknown
properties necessary for size measures.
An initial empirical validation is performed that is meant to assess the usefulness
and effectiveness of the proposed measures in predicting the development effort of
object-oriented systems. Moreover, a comparative analysis is carried out; taking into
account several other size measures. The experimental results show that the Pattern Point
measure can be effectively used during the OOA phase to predict the effort values with a
high degree of confidence. The PP2 metric yielded the best results with an aggregate
PRED (0.25) = 0.874
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
Methoden- und Werkzeugunterstützung für evolutionäre, objektorientierte Software-Projekte
Die Software-Entwicklung verläuft in der Regel
evolutionär, d.h. als eine Folge von Erweiterungs- und
Anpassungszyklen, beruhend auf Erfahrung, Nutzung und Revision.
Viele der bekannten Vorgehensmodelle, wie z.B. "Rational
Unified Process" (RUP), berücksichtigen diesen evolutionären
Aspekt der Software-Entwicklung ungenügend. Mit dem EOS-Modell,
ein Vorgehensmodell für die evolutionäre, objektorientierte
Software-Entwicklung (EOS), wird versucht, dieses Defizit zu
überbrücken. In der ursprünglichen Fassung ist das EOS-Modell
methodenunabhängig. Ein Ziel der Dissertation war es, konkrete
Methoden für die EOS-Subprozesse Projektmanagement,
Software-Entwicklung, Qualitätssicherung,
Konfigurationsmanagement und Nutzung und Bewertung
vorzuschlagen. Ausgehend von der Methoden-Definition wurde
prototypisch ein Werkzeug implementiert, das eine systematische
Unterstützung der definierten Methoden
ermöglicht