Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Giuseppe Visaggio is active.

Publication


Featured researches published by Giuseppe Visaggio.


Journal of Systems and Software | 1995

Software salvaging and the call dominance tree

Aniello Cimitile; Giuseppe Visaggio

Abstract The main goal of reuse reengineering processes for existing software is to obtain reusable software modules by clustering old software components that implement functional or data abstractions. The first problem to solve in the functional abstraction is how to search old software for components that may constitute a module. This article proposes candidature criteria founded on the dominance relation between the nodes of a call-directed graph. The proposed criteria have been adopted in a real-life reuse reengineering process on PASCAL software.


IEEE Transactions on Software Engineering | 1997

Extracting reusable functions by flow graph based program slicing

Filippo Lanubile; Giuseppe Visaggio

An alternative approach to developing reusable components from scratch is to recover them from existing systems. We apply program slicing, a program decomposition method, to the problem of extracting reusable functions from ill structured programs. As with conventional slicing first described by M. Weiser (1984), a slice is obtained by iteratively solving data flow equations based on a program flow graph. We extend the definition of program slice to a transform slice, one that includes statements which contribute directly or indirectly to transform a set of input variables into a set of output variables. Unlike conventional program slicing, these statements do not include either the statements necessary to get input data or the statements which test the binding conditions of the function. Transform slicing presupposes the knowledge that a function is performed in the code and its partial specification, only in terms of input and output data. Using domain knowledge we discuss how to formulate expectations of the functions implemented in the code. In addition to the input/output parameters of the function, the slicing criterion depends on an initial statement, which is difficult to obtain for large programs. Using the notions of decomposition slice and concept validation we show how to produce a set of candidate functions, which are independent of line numbers but must be evaluated with respect to the expected behavior. Although human interaction is required, the limited size of candidate functions makes this task easier than looking for the last function instruction in the original source code.


Empirical Software Engineering | 1997

A Replicated Experiment to Assess Requirements InspectionTechniques

Pierfrancesco Fusaro; Filippo Lanubile; Giuseppe Visaggio

This paper presents the independent 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 results of our replication were partially different from those of the original experiment. Unlike the original experiment, we did not find any empirical evidence of better performance when using scenarios. To explain these negative findings we provide a list of hypotheses. On the other hand, the replication confirmed one result of the original experiment: the defect detection rate is not improved by collection meetings.The independent replication was made possible by the existence of an experimental kit provided by the original investigators. We discuss what difficulties we encountered in applying the package to our environment, as a result of different cultures and skills. Using our results, experience and suggestions, other researchers will be able to improve the original experimental design before attempting further replications.


IEEE Transactions on Software Engineering | 2003

Iterative reengineering of legacy systems

Alessandro Bianchi; Danilo Caivano; Vittorio Marengo; Giuseppe Visaggio

During its life, a legacy system is subjected to many maintenance activities, which cause degradation of the quality of the system: When this degradation exceeds a critical threshold, the legacy system needs to be reengineered. In order to preserve the asset represented by the legacy system, the familiarity with it gained by the systems maintainers and users, and the continuity of execution of current operations during the reengineering process, the system needs to be reengineered gradually. Moreover, each program needs to be reengineered within a short period of time. The paper proposes a reengineering process model, which is applied to an in-use legacy system to confirm that the process satisfies previous requirements and to measure its effectiveness. The reengineered system replaced the legacy one to the satisfaction of all the stakeholders; the reengineering process also had a satisfactory impact on the quality of the system. Finally, this paper contributes to validate the cause-effect relationship between the reengineering process and overcoming the aging symptoms of a software system.


Journal of Systems and Software | 1996

Evaluating predictive quality models derived from software measures: lessons learned

Filippo Lanubile; Giuseppe Visaggio

This paper describes an empirical comparison of several modeling techniques for predicting the quality of software components early in the software life cycle. Using software product measures, we built models that classify components as high-risk, i.e., likely to contain faults, or low-risk, i.e., likely to be free of faults. The modeling techniques evaluated in this study include principal component analysis, discriminant analysis, logistic regression, logical classification models, layered neural networks, and holographic networks. These techniques provide a good coverage of the main problem-solving paradigms: statistical analysis, machine learning, and neural networks. Using the results of independent testing, we determined the absolute worth of the predictive models and compare their performance in terms of misclassification errors, achieved quality, and verification cost. Data came from 27 software systems, developed and tested during three years of project-intensive academic courses. A surprising result is that no model was able to effectively discriminate between components with faults and components without faults.


Journal of Software Maintenance and Evolution: Research and Practice | 2001

Ageing of a data-intensive legacy system: symptoms and remedies

Giuseppe Visaggio

This study generalizes some of the symptoms of ageing of a legacy system. Each symptom is specified by metrics and the results of the measurements made suggest what operations should be undertaken to renew the software. The study is based on retrospective analysis of data collected during the execution of a large renewal process of a very old legacy system. It therefore provides evidence of the expected efficacy of such renewal processes and can be used to decide how best to plan them and manage them in order to increase their efficacy. It can also be used to define the reengineering requirements to ensure long life to the system despite successive evolutions of the application and the operation domain. The metrics can provide a basis for monitoring a software system to ensure that its quality does not degrade to such an extent that the most costly and risky renewal processes then have to be performed to improve it. Finally, the paper points out the problems with renewal processes that still remain open. Copyright


ieee international software metrics symposium | 2001

Evaluating software degradation through entropy

Alessandro Bianchi; Danilo Caivano; Filippo Lanubile; Giuseppe Visaggio

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.


international conference on software maintenance | 1993

Function recovery based on program slicing

Filippo Lanubile; Giuseppe Visaggio

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 Weisers 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.<<ETX>>


congress on evolutionary computation | 2009

Prediction Models for BPMN Usability and Maintainability

Elvira Rolón; Laura Sanchez; Félix García; Francisco Ruiz; Mario Piattini; Danilo Caivano; Giuseppe Visaggio

The measurement of a business process in the earlystages of the lifecycle, such as the design andmodelling stages, could reduce costs and effort infuture maintenance tasks. In this paper we present aset of measures for assessing the structural complexityof business processes models at a conceptual level. Theaim is to obtain useful information about processmaintenance and to estimate the quality of the processmodel in the early stages. Empirical validation of themeasures was carried out along with a linearregression analysis aimed at estimating process modelquality in terms of modifiability and understandability.


workshop on program comprehension | 2000

An exploratory case study of the maintenance effectiveness of traceability models

Alessandro Bianchi; Anna Rita Fasolino; Giuseppe Visaggio

Analysing the role of traceability models in software maintenance and comprehension is an important research issue. An exploratory case study evaluating the relationship between the granularity of the traceability model adopted and the effectiveness of the maintenance process is presented in this paper. Two maintenance effectiveness aspects were taken into account: efficiency and accuracy. The analysis was carried out in an object-oriented environment, with the support of an integrated platform of software tools. The preliminary results show that some aspects of the effectiveness of the maintenance process can be improved by modifying the degree of granularity of the model. These results encourage further research into this topic, while some additional side-effects that emerged from the study are also investigated.

Collaboration


Dive into the Giuseppe Visaggio's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Marta Cimitile

Sapienza University of Rome

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge