Papers by Filippo Lanubile
In this paper, we propose an agile approach, for the migration of legacy software which combines ... more In this paper, we propose an agile approach, for the migration of legacy software which combines a user story-based iterative process with automated acceptance testing. The proposed approach, named Storytest-Driven Migration (STDM), requires that acceptance ...
Proceedings Seventh International Software Metrics Symposium, 2000
Software systems are affected by degradation as an effect of continuous change. Since late interv... more Software systems are affected by degradation as an effect of continuous change. Since late interventions are too much onerous, software degradation should be detected early in the software lifetime. Software degradation is currently detected by using many different complexity metrics, but their use to monitor maintenance activities is costly. These metrics are difficult to interpret, because each emphasizes a particular aspect of degradation and the aspects shown by different metrics are not orthogonal. The purpose of our research is to measure the entropy of a software system to assess its degradation. In this paper, we partially validate the entropy class of metrics by a case study, replicated on successive releases of a set of software systems. The validity is shown through direct measures of software quality such as the number of detected defects, the maintenance effort and the number of slipped defects.
Empirical Software Engineering, 1997
Technology evaluation is part of the decision-making process of any software organization. Unlike... more Technology evaluation is part of the decision-making process of any software organization. Unlike conventional wisdom, empirical evaluation strives to avoid biased conclusions by relying on observation and looking for pitfalls in the evaluation process. In this paper, we provide a summary of the maintenance studies presented in the session ‘Study and assessment of (new) technologies’ of the International Workshop on Empirical Studies of Software Maintenance (WESS '96), and also report on the working group discussion which focused on common problems and open issues in the field of technology evaluation. These empirical studies are then classified according to a multi-dimensional framework to synthesize the state of the research in technology evaluation and ultimately discover interesting patterns.
Software inspection is one of the best practices for detecting and removing defects early in the ... more Software inspection is one of the best practices for detecting and removing defects early in the software development process. We present a tool to support geographically distributed inspection teams. The tool adopts a reengineered inspection process to minimize synchronous activities and coordination problems, and a lightweight architecture to maximize easy of use and deployment.
Many web applications use a mixture of HTML and scripting language code as the front-end to busin... more Many web applications use a mixture of HTML and scripting language code as the front-end to business services. Analogously to traditional applications, redundant code is introduced by copy-and-paste practices. Code duplication is a pathological form of software reuse because of its effects on the maintenance of large software systems. This paper describes how a simple semi-automated approach can be used to identity cloned functions within scripting code of web applications. The results obtained from applying our approach to three web applications show that the approach is useful for a fast selection of script function clones, and can be applied to prevent clone spreading or to remove redundant scripting code.
Software Process: Improvement and Practice, 2003
Software inspection is one of software engineering's best practices for detecting and removing de... more Software inspection is one of software engineering's best practices for detecting and removing defects early in the development process. However, the prevalence of manual activities and face-to-face meetings within software inspections hinder their applicability in the context of global software development, where software engineering activities are spread across multiple sites and even multiple countries.
Empirical Software Engineering, 1997
We consider reading techniques a fundamental means of achieving high quality software. Due to the... more We consider reading techniques a fundamental means of achieving high quality software. Due to the lack of research in this area, we are experimenting with the application and comparison of various reading techniques. This paper deals with our experiences with a family of reading techniques known as Perspective-Based Reading (PBR), and its application to requirements documents. The goal of PBR is to provide operational scenarios where members of a review team read a document from a particular perspective, e.g., tester, developer, user. Our assumption is that the combination of different perspectives provides better coverage of the document, i.e., uncovers a wider range of defects, than the same number of readers using their usual technique.
In previous experiments we showed that the Perspective-Based Reading (PBR) family of defect detec... more In previous experiments we showed that the Perspective-Based Reading (PBR) family of defect detection techniques was effective at detecting faults in requirements documents in some contexts. Experiences from these studies indicate that requirements faults are very difficult to define, classify and quantify. In order to address these difficulties, we present an empirical study whose main purpose is to investigate whether defect detection in requirements documents can be improved by focusing on the errors (i.e., underlying human misconceptions) in a document rather than the individual faults that they cause. In the context of a controlled experiment, we assess both benefits and costs of the process of abstracting errors from faults in requirements documents. 1
IEEE Transactions on Software Engineering, 1999
AbstractÐExperimentation in software engineering is necessary but difficult. One reason is that t... more AbstractÐExperimentation in software engineering is necessary but difficult. One reason is that there are a large number of context variables and, so, creating a cohesive understanding of experimental results requires a mechanism for motivating studies and integrating results. It requires a community of researchers that can replicate studies, vary context variables, and build models that represent the common observations about the discipline. This paper discusses the experience of the authors, based upon a collection of experiments, in terms of a framework for organizing sets of related studies. With such a framework, experiments can be viewed as part of common families of studies, rather than being isolated events. Common families of studies can contribute to important and relevant hypotheses that may not be suggested by individual experiments. A framework also facilitates building knowledge in an incremental manner through the replication of experiments within families of studies. To support the framework, this paper discusses the experiences of the authors in carrying out empirical studies, with specific emphasis on persistent problems encountered in experimental design, threats to validity, criteria for evaluation, and execution of experiments in the domain of software engineering.
IEEE Transactions on Software Engineering, 1998
The empirical study described in this paper addresses software reading for construction: how appl... more The empirical study described in this paper addresses software reading for construction: how application developers obtain an understanding of a software artifact for use in new system development. This study focuses on the processes that developers would engage in when learning and using object-oriented frameworks. We analyzed 15 student software development projects using both qualitative and quantitative methods to gain insight into what processes occurred during framework usage. The contribution of the study is not to test predefined hypotheses but to generate wellsupported hypotheses for further investigation. The main hypotheses we produce are that example-based techniques are well suited to use by beginning learners while hierarchy-based techniques are not because of a larger learning curve. Other more specific hypotheses are proposed and discussed.
Empirical Software Engineering, 1996
We consider reading techniques a fundamental means of achieving high quality software. Due to the... more We consider reading techniques a fundamental means of achieving high quality software. Due to the lack of research in this area, we are experimenting with the application and comparison of various reading techniques. This paper deals with our experiences with a family of reading techniques known as Perspective-Based Reading (PBR), and its application to requirements documents. The goal of PBR is to provide operational scenarios where members of a review team read a document from a particular perspective, e.g., tester, developer, user. Our assumption is that the combination of different perspectives provides better coverage of the document, i.e., uncovers a wider range of defects, than the same number of readers using their usual technique.
IEEE Transactions on Software Engineering, 2000
The empirical study described in this paper addresses software reading for construction: how appl... more The empirical study described in this paper addresses software reading for construction: how application developers obtain an understanding of a software artifact for use in new system development. This study focuses on the processes that developers would engage in when learning and using object-oriented frameworks. We analyzed 15 student software development projects using both qualitative and quantitative methods to gain insight into what processes occurred during framework usage. The contribution of the study is not to test predefined hypotheses but to generate wellsupported hypotheses for further investigation. The main hypotheses we produce are that example-based techniques are well suited to use by beginning learners while hierarchy-based techniques are not because of a larger learning curve. Other more specific hypotheses are proposed and discussed.
Experimentation in software engineering is important but difficult. One reason it is so difficult... more Experimentation in software engineering is important but difficult. One reason it is so difficult is that there are a large number of context variables, and so creating a cohesive understanding of experimental results requires a mechanism for motivating studies and integrating results. This paper argues for the necessity of a framework for organizing sets of related studies. With such a framework, experiments can be viewed as part of common families of studies, rather than being isolated events. Common families of studies can contribute to important and relevant hypotheses that may not be suggested by individual experiments. A framework also facilitates building knowledge in an incremental manner through the replication of experiments within families of studies. Building knowledge in this way requires a community of researchers that can replicate studies, vary context variables, and build abstract models that represent the common observations about the discipline. This paper also presents guidelines for lab packages, meant to encourage and support replications, that encapsulate materials, methods, and experiences concerning software engineering experiments.
The empirical study described in this paper focuses on the effectiveness of maintenance processes... more The empirical study described in this paper focuses on the effectiveness of maintenance processes in an environment in which a repository of potential sources of reuse exists, e.g. a context in which applications are built using an object-oriented framework. Such a repository might contain current and previous releases of the system under maintenance, as well as other applications that are built on a similar structure or contain similar functionality. This paper presents an observational study of 15 student projects in a framework-based environment.
Empirical Software Engineering, 1996
This paper presents the external replication of a controlled experiment which compared three defe... more This paper presents the external replication of a controlled experiment which compared three defect detection techniques (Ad Hoc, Checklist, and Defect-based Scenario) for software requirements inspections, and evaluated the benefits of collection meetings after individual reviews. ...
The identification and extraction of two main kinds of components, environment-dependent operatio... more The identification and extraction of two main kinds of components, environment-dependent operations and domain-dependent functionalities, are proposed. A reference information model drives the process by giving expectations of components and their interface data. Two modified definitions of Weiser's slicing are applied to this function recovery problem: direct slice and transform slice. Direct slice is an executable subset of the original program containing all the statements which directly contribute either to the writing on an external sink or to the reading from an external source. Transform slice is also an executable subset including all the instructions which directly or indirectly contribute to transform an external input into an external output
Software systems are affected by degradation as an effect of continuous change. Since late interv... more Software systems are affected by degradation as an effect of continuous change. Since late interventions are too much onerous, software degradation should be detected early in the software lifetime. Software degradation is currently detected by using many different complexity metrics, but their use to monitor maintenance activities is costly. These metrics are difficult to interpret, because each emphasizes a particular aspect of degradation and the aspects shown by different metrics are not orthogonal. The purpose of our research is to measure the entropy of a software system to assess its degradation. In this paper, we partially validate the entropy class of metrics by a case study, replicated on successive releases of a set of software systems. The validity is shown through direct measures of software quality such as the number of detected defects, the maintenance effort and the number of slipped defects.
This work deals with the problem of locating domain dependent functions into old application syst... more This work deals with the problem of locating domain dependent functions into old application systems and drawing out them for reengineering and reuse. The approach is based on a particular form of program slicing which makes it possible to recover user functionalities although they are spread over the code. Supported by a commercial tool, the approach has been experimented with
Uploads
Papers by Filippo Lanubile