Roberto Fiutem

dblp:19/667 · DBLP profile ↗
← Back
15ranked-venue papers
4as first author
0since 2021 · last 2003
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 14 · 4 first-authorArtificial intelligence and machine learning · 1Databases, data management, data science and information retrieval · 1Graphics, computer vision, multimedia, augmented reality and games · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
1 paper
Program analysis · 87% Programming languages and type systems · 13%

Topics — the 6 heaviest of 6, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis › static analysis › pointer analysis
flow-insensitive points-to analysis
0.011997
Flow Insensitive C++ Pointers and Polymorphism Analysis and its Application to Slicing · ICSE 1997
Program analysis › static analysis
pointer analysis
0.011997
Flow Insensitive C++ Pointers and Polymorphism Analysis and its Application to Slicing · ICSE 1997
Program analysis › static analysis
program slicing
0.011997
Flow Insensitive C++ Pointers and Polymorphism Analysis and its Application to Slicing · ICSE 1997
Program analysis
static analysis
0.011997
Flow Insensitive C++ Pointers and Polymorphism Analysis and its Application to Slicing · ICSE 1997
Programming languages and type systems
object-oriented programming
0.011997
Flow Insensitive C++ Pointers and Polymorphism Analysis and its Application to Slicing · ICSE 1997
Programming languages and type systems › type systems
polymorphism
0.011997
Flow Insensitive C++ Pointers and Polymorphism Analysis and its Application to Slicing · ICSE 1997

Methods — techniques the papers use, named apart from their topics

reaching definitions · 0.0context-insensitive analysis · 0.0
YearPublicationVenuePosition
2003 Object-Oriented Function Points: An Empirical Validation
Giuliano Antoniol, Roberto Fiutem, Christopher J. Lokan
Empir. Softw. Eng.2
2001 Object-oriented design patterns recovery
Giuliano Antoniol, Gerardo Casazza, Massimiliano Di Penta, Roberto Fiutem
J. Syst. Softw.4
2000 Reverse engineering 4.7 million lines of code
abstract
The ITC-Irst Reverse Engineering group was charged with analyzing a software application of approximately 4.7 million lines of C code. It was an old legacy system, maintained for a long time, on which several successive adaptive and corrective maintenance interventions had led to the degradation of the original structure. The company decided to re-engineer the software instead of replacing it, because the complexity and costs of re-implementing the application from scratch could not be afforded, and the associated risk could not be run. Several problems were encountered during re-engineering, including identifying dependencies and detecting redundant functions that were not used anymore. To accomplish these goals, we adopted a conservative approach. Before performing any kind of analysis on the whole code, we carefully evaluated the expected costs. To this aim, a small but representative sample of modules was preliminarily analyzed, and the costs and outcomes were extrapolated so as to obtain some indications on the analysis of the whole system. When the results of the sample modules were found to be useful as well as affordable for the entire system, the resources involved were carefully distributed among the different reverse engineering tasks to meet the customer's deadline. This paper summarizes that experience, discussing how we approached the problem, the way we managed the limited resources available to complete the task within the assigned deadlines, and the lessons we learned. Copyright © 2000 John Wiley & Sons, Ltd.
Paolo Tonella, Giuliano Antoniol, Roberto Fiutem, F. Calzolari
Softw. Pract. Exp.3
1999 Automatic Unit Test Data Generation Using Mixed-Integer Linear Programming and Execution Trees
abstract
This paper presents an approach to automatic unit test data generation for branch coverage using mixed-integer linear programming, execution trees, and symbolic execution. This approach can be useful to both general testing and regression testing after software maintenance and reengineering activities. Several strategies, including original algorithms, to move towards practical test data generation have been investigated in this paper. Methods include: the analysis of minimum path-length partial execution trees for unconstrained arcs, thus increasing the generation performance and reducing the difficulties originated by infeasible paths the reduction of the difficulties originated by nonlinear path conditions by considering alternative linear paths the reduction of the number of test cases, which are needed to achieve the desired coverage, based on the concept of unconstrained arcs in a control flow graph the extension of symbolic execution to deal with dynamic memory allocation and deallocation, pointers and pointers to functions system. Preliminary results are encouraging and show that a high percentage of the program branches can be covered by the test data automatically produced. The approach is flexible to branch selection criteria coming from general testing as well as regression testing.
Sébastien Lapierre, Ettore Merlo, Gilles Savard, Giuliano Antoniol, Roberto Fiutem, Paolo Tonella
ICSM5
1999 A Function Point-Like Measure for Object-Oriented Software
Giuliano Antoniol, Christopher J. Lokan, Gianluigi Caldiera, Roberto Fiutem
Empir. Softw. Eng.4
1999 Points-to analysis for program understanding
Roberto Fiutem, Paolo Tonella, Giuliano Antoniol, Ettore Merlo
J. Syst. Softw.1
1999 ART: an architectural reverse engineering environment
abstract
When programmers perform maintenance tasks, program understanding is often required. One of the first activities in understanding a software system is identifying its subsystems and their relations, i.e., its software architecture. Since a large part of the effort is spent in creating a mental model of the system under study, tools can help maintainers in managing the evolution of legacy systems by showing them architectural information. This paper describes an environment for the architectural recovery of software systems called the architectural recovery tool (ART). The environment is based on a hierarchical architectural model that drives the application of a set of recognizers, each producing a different architectural view of a system or of some of its parts. Recognizers embody knowledge about architectural clichés and use flow analysis techniques to make their output more accurate. To test the accuracy and effectiveness of the ART, a suite of public domain applications containing interesting architectural organizations was selected as a benchmark. Results are presented by showing ART performance in terms of precision and recall of the architectural concept retrieval process. The results obtained show that cliché-based architectural recovery is feasible and the recovered information can be valuable support in reengineering and maintenance activities. Copyright © 1999 John Wiley & Sons, Ltd.
Roberto Fiutem, Giuliano Antoniol, Paolo Tonella, Ettore Merlo
J. Softw. Maintenance Res. Pract.1
1999 Variable-precision reaching definitions analysis
abstract
Ascertaining the reaching definitions from the source code can give views of the linkages in that source code. These views can aid source code analyses, such as impact analysis and program slicing, and can assist in the reverse engineering and re-engineering of large legacy systems. Maintainers like to do such activities interactively and value fast responses from program analysis tools. Therefore the control of the trade-off between accuracy and efficiency should be given to the maintainer. Since some real world programs, especially in languages like C, make much use of pointers, and efficient points-to analysis should be integrated within the computation of the data dependencies during the process of ascertaining the reaching definitions. This paper proposes three different approaches to the analysis of the reaching definitions based on different levels of precision, reflecting differences in their sensitivity to the calling context and the control flow. The least precise approach produces an overestimate by an average of 41% of data dependencies compared to the approach with the highest degree of precision. The result for the least precise approach is conservative because all detectable data dependencies are included, and is far faster than the more precise approaches. Runs on a test suite show an almost 2000 to 1 reduction in execution time by the least precise approach compared with the most precise approach. The intermediate approach is more than 30 times faster than the most precise approach, and much more precise than the least precise one (an average of 2% extra dependencies compared to the most precise approach). Therefore, while on medium size systems the intermediate approach could be a good compromise, on large systems the least precise approach becomes extremely valuable, being the only one feasible. Copyright © 1999 John Wiley & Sons, Ltd.
Paolo Tonella, Giuliano Antoniol, Roberto Fiutem, Ettore Merlo
J. Softw. Maintenance Res. Pract.3
1998 Adapting Function Points to Object-Oriented Information Systems
Giuliano Antoniol, F. Calzolari, Luca Cristoforetti, Roberto Fiutem, Gianluigi Caldiera
CAiSE4
1998 Identifying Design-Code Inconsistencies in Object-Oriented Software: A Case Study
abstract
Traceability is a key issue to ensure consistency among software artifacts of subsequent phases of the development cycle. However few works have addressed the theme of tracing object oriented design into its software. This paper presents an approach to check the compliance of OO design with respect to source code. The process works on design artefacts expressed in OMT notation and accepts C++ source code. It recovers an "as is" design from the code, compares recovered design with the actual design and helps the user to deal with inconsistency by pointing out regions of code which do not match with design. The recovery process exploits regular expression and edit distance to bridge the gap between code and design. Results as well as consideration related to presentation issues are reported in the paper.
Roberto Fiutem, Giuliano Antoniol
ICSM1
1997 Flow Insensitive C++ Pointers and Polymorphism Analysis and its Application to Slicing
abstract
Large software systems are difficult to understand and maintain.Code analysis tools can provide programmers with different views of the software which may help their understanding activity.To be applicable to real programs written in modern programming languages, these tools need to efficiently handle pointers.In the case of C++ analysis, object oriented peculiarities (like, e.g., polymorphism) have to be accounted for as well.We propose a flow insensitive, context insensitive points-to analysis capable of dealing with the features of the object oriented code.It is extremely promising because of the positive trade-off between complexity and accuracy.The integration of the points-to results with other analyses, such as reaching definitions and slicing, is also discussed in the context of our program understanding environment.
Paolo Tonella, Giuliano Antoniol, Roberto Fiutem, Ettore Merlo
ICSE3
1997 Program Understanding and Maintenance with the CANTO Environment
abstract
During maintenance activities, the availability of integrated conceptual views that present software at different levels of abstraction, from software architecture to control and data flow relations at code level, is fundamental to understand and modify legacy systems. This paper presents CANTO (Code and Architecture Analysis Tool), a comprehensive program understanding and maintenance environment which integrates fine grained information with architectural views extracted from source code, giving the user control of what is being computed by analyses. The capabilities and usefulness of CANTO are illustrated with reference to a real understanding and maintenance task
Giuliano Antoniol, Roberto Fiutem, G. Lutteri, Paolo Tonella, S. Zanfei, Ettore Merlo
ICSM2
1996 A Cliche'-Based Environment to Support Architectural Reverse Engineering
abstract
When programmers perform maintenance tasks, program understanding is required. One of the first activities in understanding a software system is identifying its subsystems and their relations, i.e. its software architecture. Since a large part of the effort is spent in creating a mental model of the system under study, tools can help maintainers in managing the evolution of legacy systems, by showing them architectural information. An environment for the architectural analysis of software systems is described. The environment is based on a hierarchical architectural model that drives the application of a set of recognizers, each producing a different architectural view of the system or of some of its parts. Recognizers embody knowledge about architectural cliches and use flow analysis techniques to make their output more accurate.
Roberto Fiutem, Paolo Tonella, Giuliano Antoniol, Ettore Merlo
ICSM1
1995 Application and user interface migration from BASIC to Visual C++
abstract
An approach to reengineer BASIC PC legacy code into modern graphical systems is proposed. BASIC has historically been one of the first languages available on PCs. Based on it, small or medium size companies have developed systems that represent valuable company assets to be preserved. Our goal is the automatic migration from the BASIC character oriented user interface to a graphical environment which includes a GUI builder, and compiles event driven C/C++ code. For this purpose a conceptual representation in terms of abstract graphical objects and call-backs has been inferred from the original code, and a translator from BASIC to C has been developed. Moreover the GUI builder internal representation has been generated, so that the user interface can be interactively fine-tuned by the programmer. We present and discuss BASIC peculiarities, with preliminary results on code translation. For the explanation of our approach to user interface migration an example is used throughout the text.
Giuliano Antoniol, Roberto Fiutem, Ettore Merlo, Paolo Tonella
ICSM2
1994 Radiological reporting by speech recognition: the a.re.s. system
abstract
Radiological reporting has already been identified as a field in which voice technologies can prove to be very useful. Recent progress in automatic speech recognition and in hardware and software technology makes it possible to build large-vocabulary, continuous speech, speaker-independent, real-time systems. In this paper a dictation system for radiology reporting, the A.Re.S. system, is presented. A.Re.S. is a "software only" system which runs in real-time on an HP 715 workstation. It relies on an asynchronous and multi-process architecture in which speech decoding is performed by processes in pipeline. System requirements and architecture will be described, together with the results of a preliminary evaluation based on three months of on-site testing. I. INTRODUCTION Recent progress in Automatic Speech Recognition (ASR) and in hardware and software technology makes it possible to build large-vocabulary, real-time, speaker-independent systems. Medical document generation presents f...
Bianca Angelini, Giuliano Antoniol, Fabio Brugnara, Mauro Cettolo, Marcello Federico, Roberto Fiutem, Gianni Lazzari
ICSLP6