712 research outputs found
Investigating Effective Inspection of Object-Oriented Code
Since the development of software inspection over twenty-five years ago it has become established as an effective means of detecting defects. Inspections were originally developed at a time when the procedural paradigm was dominant but, with the Object- Oriented (OO) paradigm growing in influence and use, there now exists a lack of guidance on how to apply inspections to OO systems. Object-oriented and procedural languages differ not only in their syntax but also in a number of more profound ways - the encapsulation of data and associated functionality, the common use of inheritance, and the concepts of polymorphism and dynamic binding. These factors influence the way that modules (classes) are created in OO systems, which in turn influences the way that OO systems are structured and execute. Failure to take this into account may hinder the application of inspections to OO code. This thesis shows that the way in which the objectoriented paradigm distributes related functionality can have a serious impact on code inspection and, to address this problem, it develops and empirically evaluates three code reading techniques
Analysis of inspection technique performance
Inspection techniques are strategies for analysing software artefacts. These techniques provide guidelines for examining the software documentation and identifying defects. These guidelines consist of a series of heuristics to help reviewers to read and understand the artefact that they are analysing. A number of researchers have now developed experimental studies to compare the performance of the different techniques in an attempt to find out what is the best strategy to adopt in which cases. In this work, we conduct a systematic review of the effectiveness and efficiency of inspection techniques following Kitchenham’s recommendations.VI Workshop IngenierÃa de Software (WIS)Red de Universidades con Carreras en Informática (RedUNCI
Towards a self-evolving software defect detection process
Software defect detection research typically focuses on individual inspection and testing techniques. However, to be effective in applying defect detection techniques, it is important to recognize when to use inspection techniques and when to use testing techniques. In addition, it is important to know when to deliver a product and use maintenance activities, such as trouble shooting and bug fixing, to address the remaining defects in the software.To be more effective detecting software defects, not only should defect detection techniques be studied and compared, but the entire software defect detection process should be studied to give us a better idea of how it can be conducted, controlled, evaluated and improved.This thesis presents a self-evolving software defect detection process (SEDD) that provides a systematic approach to software defect detection and guides us as to when inspection, testing or maintenance activities are best performed. The approach is self-evolving in that it is continuously improved by assessing the outcome of the defect detection techniques in comparison with historical data.A software architecture and prototype implementation of the approach is also presented along with a case study that was conducted to validate the approach. Initial results of using the self-evolving defect detection approach are promising
The Impact of Background and Experience on Software Inspections
This dissertation is an initial study into the relationship between an
inspector's characteristics and his or her effectiveness in an inspection.
Research has shown that improving the individual effectiveness of the inspectors
improves the overall effectiveness of an inspection team. But, the performance
of inspectors varies widely, even when using the same inspection technique.
This variation is often due to the inherent differences among the inspectors who
used the technique. In order to better understand this variation and provide
guidance to inspection planners, this dissertation has focused on the background
and experience of the inspector as the source of variation.
To study this issue I used a novel approach for software engineering, grounded
theory. This methodology allowed hypotheses to be built both top-down, from the
literature, as well as bottom-up, using data. The literature portion came from software engineering as well as education and psychology. The data portion came
from both existing studies and newly designed studies. The data from existing
studies allowed the initial hypotheses to become more concrete. Once some of
the hypotheses had support from data, the final step was to design studies to
test a subset of the hypotheses.
I designed and ran two studies to test the selected hypotheses. The goal of the
first study was to understand the type and level of experience with the software
inspection process that was necessary. The earlier data had shown that process
experience was important, but the effect of the type and level of experience was
still unclear. The goal of the second study was to understand the interaction
between an inspector's software development experience and the level of detail
required in an inspection process. The earlier data had shown some indications
that for experienced inspectors too much detail reduced the number of defects
found, while less experienced inspectors needed more detail to overcome their
lack of experience and find more defects. This dissertation presents complete
list of hypotheses and the results of these studies along with some specific
suggestions for both researchers and practitioners
Investigation of individual factors impacting the effectiveness of requirements inspections: a replicated experiment
Cataloged from PDF version of article.This paper presents a replication of an empirical study regarding the impact of
individual factors on the effectiveness of requirements inspections. Experimental replications
are important for verifying results and investigating the generality of empirical studies.
We utilized the lab package and procedures from the original study, with some changes and
additions, to conduct the replication with 69 professional developers in three different
companies in Turkey. In general the results of the replication were consistent with those of
the original study. The main result from the original study, which is supported in the
replication, was that inspectors whose degree is in a field related to software engineering
are less effective during a requirements inspection than inspectors whose degrees are in other
fields. In addition, we found that Company, Experience, and English Proficiency impacted
inspection effectiveness
Experimental Evaluation of a Checklist-Based Inspection Technique to Verify the Compliance of Software Systems with the Brazilian General Data Protection Law
Recent laws to ensure the security and protection of personal data establish
new software requirements. Consequently, new technologies are needed to
guarantee software quality under the perception of privacy and protection of
personal data. Therefore, we created a checklist-based inspection technique
(LGPDCheck) to support the identification of defects in software artifacts
based on the principles established by the Brazilian General Data Protection
Law (LGPD). Objective/Aim: To evaluate the effectiveness and efficiency of
LGPDCheck for verifying privacy and data protection (PDP) in software artifacts
compared to ad-hoc techniques. Method: To assess LGPDCheck and ad-hoc
techniques experimentally through a quasi-experiment (two factors, five
treatments). The data will be collected from IoT-based health software systems
built by software engineering students from the Federal University of Rio de
Janeiro. The data analyses will compare results from ad-hoc and LGPDCheck
inspections, the participant's effectiveness and efficiency in each trial,
defects' variance and standard deviation, and time spent with the reviews. The
data will be screened for outliers, and normality and homoscedasticity will be
verified using the Shapiro-Wilk and Levene tests. Nonparametric or parametric
tests, such as the Wilcoxon or Student's t-tests, will be applied as
appropriate.Comment: Registered Report accepted for presentation at 17th ACM/IEEE
International Symposium on Empirical Software Engineering and Measurement.
New Orleans, Louisiana, United State
Fully Employing Software Inspections Data
Software inspections provide a proven approach to quality assurance for software products of all kinds, including requirements, design, code, test plans, among others. Common to all inspections is the aim of finding and fixing defects as early as possible, and thereby providing cost savings by minimizing the amount of rework necessary later in the lifecycle. Measurement data, such as the number and type of found defects and the effort spent by the inspection team, provide not only direct feedback about the software product to the project team but are also valuable for process improvement activities. In this paper, we discuss NASA's use of software inspections and the rich set of data that has resulted. In particular, we present results from analysis of inspection data that illustrate the benefits of fully utilizing that data for process improvement at several levels. Examining such data across multiple inspections or projects allows team members to monitor and trigger cross project improvements. Such improvements may focus on the software development processes of the whole organization as well as improvements to the applied inspection process itself
- …