Proceedings. Conference on Software Maintenance - 1989
Abstract The methodology used to define a reverse engineering process that has been employed in a... more Abstract The methodology used to define a reverse engineering process that has been employed in an enhancement maintenance operation on a Pascal software system is described. Attention is focused on the methodology used to produce, from code, a ...
Proceedings. Conference on Software Maintenance, 1988.
;*CRIAI,P.le E. Fermi, 80055 Portici ITALY, te1.(81)482477 DIS, Via Claudio 21, 80125 Naples ITAL... more ;*CRIAI,P.le E. Fermi, 80055 Portici ITALY, te1.(81)482477 DIS, Via Claudio 21, 80125 Naples ITALY, te1.(81)7683183 Abstract In the software maintenance process, post-maintenance testing is one of the phases that is least supported by systematic methodologies and automated ...
Abstract In the present paper the authors aim to make a contribution towards solving the problems... more Abstract In the present paper the authors aim to make a contribution towards solving the problems regarding the definition of module testing effort prediction metrics. To this end they firstly define a set of metrics for the evaluation of the complexity of program paths, and then propose a linear combination of these matrics as a guide for the definition of path testing adequacy criteria. Finally, with reference to a specific path testing strategy, they show these metrics make it possible to define and measure module testability.
Reverse engineering processes, design document production, and structure charts. P Benedusi, A Ci... more Reverse engineering processes, design document production, and structure charts. P Benedusi, A Cimitile, U De Carlini Journal of Systems and Software 19:33, 225-245, 1992. This article describes a high-level organizational ...
International Journal of Software Engineering and Knowledge Engineering, 1994
Some features of software create considerable problems as regards the management of its construct... more Some features of software create considerable problems as regards the management of its construction processes, which therefore requires suitable models. In the studies published up to now on this subject, various problems have remained unsolved, particularly the readability of the numerous independent components for each activity in the process, the help required by the manager for handling projects and the need to adapt models to risks and the software development environment. The model proposed in this paper offers a solution to these problems. The innovative aspects of the approach described are the location of all pertinent information in the products of the model in order to improve management, and a formal definition which makes it possible to control the internal coherence of the plan automatically using a flexible notation which is compatible with the knowledge of all participants in the production process.
Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.
Abstract Pair programming is increasingly attracting researchers' an... more Abstract Pair programming is increasingly attracting researchers' and practitioners' attention. One of the claimed benefits of pair programming consists of easing socialization among programmers, with the effect of transferring tacit knowledge. Designing software systems requires a strong employment of tacit knowledge, such as individual experience and skills. In this paper, the authors, explore the hypothesis that working in pairs can speed up and enforce the knowledge building process among designers. We name" pair designing" the ...
Abstract The results of a case study in identifying and extracting reusable abstract data types f... more Abstract The results of a case study in identifying and extracting reusable abstract data types from C programs are presented. Reuse re-engineering processes already established in the RE 2 project are applied. The method for identifying abstract data types uses an interconnection graph called a variable-reference graph, and coincidental and spurious connections within the graph are resolved using a statistical technique. A prototype tool is described which demonstrates the feasibility of the method. The tool is used to analyze a ...
Proceedings of International Conference on Software Maintenance, 1995
Abstract One of the greatest difficulties of setting up a software maintenance workbench is the d... more Abstract One of the greatest difficulties of setting up a software maintenance workbench is the definition of an internal representation of programs from which different external representations can be automatically constructed. This is because many techniques and tools exist that support and automate individual maintenance activities, and each of these techniques and tools operates on its own specific representation of the program. This paper presents our program representation, called F (p), and shows how it can be used as an ...
With the growing interest for Extreme Programming, test driven development (TDD) has been increas... more With the growing interest for Extreme Programming, test driven development (TDD) has been increasingly investigated, and several experiments have been executed with the aim of understanding if and when it is preferable to the traditional practice of testing the code after having written it (named TAC in the paper). However, the research concerning TDD is at its beginning and the body of knowledge is largely immature. This paper discusses an experiment carried out within a Spanish software company with the aim of comparing ...
Journal of Software Maintenance: Research and Practice, 1994
Abstract Initial research in reuse was in the designing and implementation of reusable software. ... more Abstract Initial research in reuse was in the designing and implementation of reusable software. This research, although fruitful, did not address the area of extracting reusable components from existing software. In this paper the term reuse is used to mean the 'reuse of existing source code'. A process called 'reuse re-engineering'is defined and this, together with techniques from reverse-engineering, form a new method for achieving reuse. A reference paradigm is established to implement the reuse re-engineering process. This ...
ABSTRACT One of the most promising ways to make the population of a repository of reusable assets... more ABSTRACT One of the most promising ways to make the population of a repository of reusable assets cost effective and to obtain useful results in the short time is by extracting and reengineering them from existing software. A reuse reengineering process consists of the set of activities for identifying software components implementing abstractions, reengineering them according to a predefined template, associating them with their interface and functional specification and populating a repository with the reusable assets so obtained. Code scavenging consists in searching existing software systems for source code components that implement software abstractions. We present an overview of code scavenging techniques with reference to the first phase of the RE 2 project reference paradigm for setting up reuse reengineering processes. Several program representations proposed in the literature for software maintenance and in particular useful for reverse engineering and reengineering are also describ...
NORTHHOULAND Software Salvaging and the Call Dominance Tree A. Cimitile Department of Engineering... more NORTHHOULAND Software Salvaging and the Call Dominance Tree A. Cimitile Department of Engineering, University of Salerno, Beneuento, Italy G. Visaggio Department of "Informatica, " University of Bari, Bari, Italy The main goal of reuse reengineering ...
Proceedings. Conference on Software Maintenance - 1989
Abstract The methodology used to define a reverse engineering process that has been employed in a... more Abstract The methodology used to define a reverse engineering process that has been employed in an enhancement maintenance operation on a Pascal software system is described. Attention is focused on the methodology used to produce, from code, a ...
Proceedings. Conference on Software Maintenance, 1988.
;*CRIAI,P.le E. Fermi, 80055 Portici ITALY, te1.(81)482477 DIS, Via Claudio 21, 80125 Naples ITAL... more ;*CRIAI,P.le E. Fermi, 80055 Portici ITALY, te1.(81)482477 DIS, Via Claudio 21, 80125 Naples ITALY, te1.(81)7683183 Abstract In the software maintenance process, post-maintenance testing is one of the phases that is least supported by systematic methodologies and automated ...
Abstract In the present paper the authors aim to make a contribution towards solving the problems... more Abstract In the present paper the authors aim to make a contribution towards solving the problems regarding the definition of module testing effort prediction metrics. To this end they firstly define a set of metrics for the evaluation of the complexity of program paths, and then propose a linear combination of these matrics as a guide for the definition of path testing adequacy criteria. Finally, with reference to a specific path testing strategy, they show these metrics make it possible to define and measure module testability.
Reverse engineering processes, design document production, and structure charts. P Benedusi, A Ci... more Reverse engineering processes, design document production, and structure charts. P Benedusi, A Cimitile, U De Carlini Journal of Systems and Software 19:33, 225-245, 1992. This article describes a high-level organizational ...
International Journal of Software Engineering and Knowledge Engineering, 1994
Some features of software create considerable problems as regards the management of its construct... more Some features of software create considerable problems as regards the management of its construction processes, which therefore requires suitable models. In the studies published up to now on this subject, various problems have remained unsolved, particularly the readability of the numerous independent components for each activity in the process, the help required by the manager for handling projects and the need to adapt models to risks and the software development environment. The model proposed in this paper offers a solution to these problems. The innovative aspects of the approach described are the location of all pertinent information in the products of the model in order to improve management, and a formal definition which makes it possible to control the internal coherence of the plan automatically using a flexible notation which is compatible with the knowledge of all participants in the production process.
Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004.
Abstract Pair programming is increasingly attracting researchers' an... more Abstract Pair programming is increasingly attracting researchers' and practitioners' attention. One of the claimed benefits of pair programming consists of easing socialization among programmers, with the effect of transferring tacit knowledge. Designing software systems requires a strong employment of tacit knowledge, such as individual experience and skills. In this paper, the authors, explore the hypothesis that working in pairs can speed up and enforce the knowledge building process among designers. We name" pair designing" the ...
Abstract The results of a case study in identifying and extracting reusable abstract data types f... more Abstract The results of a case study in identifying and extracting reusable abstract data types from C programs are presented. Reuse re-engineering processes already established in the RE 2 project are applied. The method for identifying abstract data types uses an interconnection graph called a variable-reference graph, and coincidental and spurious connections within the graph are resolved using a statistical technique. A prototype tool is described which demonstrates the feasibility of the method. The tool is used to analyze a ...
Proceedings of International Conference on Software Maintenance, 1995
Abstract One of the greatest difficulties of setting up a software maintenance workbench is the d... more Abstract One of the greatest difficulties of setting up a software maintenance workbench is the definition of an internal representation of programs from which different external representations can be automatically constructed. This is because many techniques and tools exist that support and automate individual maintenance activities, and each of these techniques and tools operates on its own specific representation of the program. This paper presents our program representation, called F (p), and shows how it can be used as an ...
With the growing interest for Extreme Programming, test driven development (TDD) has been increas... more With the growing interest for Extreme Programming, test driven development (TDD) has been increasingly investigated, and several experiments have been executed with the aim of understanding if and when it is preferable to the traditional practice of testing the code after having written it (named TAC in the paper). However, the research concerning TDD is at its beginning and the body of knowledge is largely immature. This paper discusses an experiment carried out within a Spanish software company with the aim of comparing ...
Journal of Software Maintenance: Research and Practice, 1994
Abstract Initial research in reuse was in the designing and implementation of reusable software. ... more Abstract Initial research in reuse was in the designing and implementation of reusable software. This research, although fruitful, did not address the area of extracting reusable components from existing software. In this paper the term reuse is used to mean the 'reuse of existing source code'. A process called 'reuse re-engineering'is defined and this, together with techniques from reverse-engineering, form a new method for achieving reuse. A reference paradigm is established to implement the reuse re-engineering process. This ...
ABSTRACT One of the most promising ways to make the population of a repository of reusable assets... more ABSTRACT One of the most promising ways to make the population of a repository of reusable assets cost effective and to obtain useful results in the short time is by extracting and reengineering them from existing software. A reuse reengineering process consists of the set of activities for identifying software components implementing abstractions, reengineering them according to a predefined template, associating them with their interface and functional specification and populating a repository with the reusable assets so obtained. Code scavenging consists in searching existing software systems for source code components that implement software abstractions. We present an overview of code scavenging techniques with reference to the first phase of the RE 2 project reference paradigm for setting up reuse reengineering processes. Several program representations proposed in the literature for software maintenance and in particular useful for reverse engineering and reengineering are also describ...
NORTHHOULAND Software Salvaging and the Call Dominance Tree A. Cimitile Department of Engineering... more NORTHHOULAND Software Salvaging and the Call Dominance Tree A. Cimitile Department of Engineering, University of Salerno, Beneuento, Italy G. Visaggio Department of "Informatica, " University of Bari, Bari, Italy The main goal of reuse reengineering ...
Uploads
Papers by A. Cimitile