Andrea De Lucia - Profile on Academia.edu (original) (raw)

Papers by Andrea De Lucia

Research paper thumbnail of Decomposing legacy programs: a first step towards migrating to client-server platforms

Journal of Systems and Software, 2000

A solution to the problem of salvaging the past investments in centralised, mainframe-oriented so... more A solution to the problem of salvaging the past investments in centralised, mainframe-oriented software development, while keeping competitive in the dynamic business world, consists of migrating legacy systems towards more modern environments, in particular client±server platforms. However, a migration process entails costs and risks that depend on the characteristics of both the architecture of the source system and the target client±server platform.

Research paper thumbnail of Identifying reusable functions using specification driven program slicing: a case study

Identifying reusable functions using specification driven program slicing: a case study

Aniello Cimitile Dep. of “Ingegneria dell'hformazione ed Ingegneria Elettrica” University of... more Aniello Cimitile Dep. of “Ingegneria dell'hformazione ed Ingegneria Elettrica” University of Salerno, Faculty of Engineering at Benevento, 82100 Benevento, Italy ... Malcolm Munro Dep. of “Informatica e Sistemistica”, University of Naples ”Federieo 11”, Via Claudio 21, ...

Research paper thumbnail of Business process reengineering and workflow automation: a technology transfer experience

Journal of Systems and Software, 2002

In the last few years many public and private organizations have been changing the way of thinkin... more In the last few years many public and private organizations have been changing the way of thinking their business processes to improve the quality of delivered services while achieving better efficiency and efficacy. This paper presents results and lessons learned from an on-going technology-transfer research project aimed at introducing service and technology innovation within a peripheral public administration while transferring enabling workflow methodologies and technologies to local Small and Medium Enterprises (SMEs). We discuss a process reverse engineering approach and its application in the technology transfer project. We also discuss an approach for evaluation and assessment of workflow technology and present a prototype implementation for a selected process of the subject organization.

Research paper thumbnail of Qualifying Reusable Functions Using Symbolic Execution

Qualifying Reusable Functions Using Symbolic Execution

... reverse engineering source code modules to abstract their interface and functional specificat... more ... reverse engineering source code modules to abstract their interface and functional specifications. A fine-grained program rep-resentation for C programs, the Combined C Graph FCG, t is used to perform dynamic analysis of a modu e by means of symbolic execution techniques ...

Research paper thumbnail of Understanding Function Behaviors through Program Slicing

Understanding Function Behaviors through Program Slicing

We present conditioned slicing as a general slicing framework for program comprehension. A condit... more We present conditioned slicing as a general slicing framework for program comprehension. A conditioned slice consists of a subset of program statements which preserves the behavior of the original program with respect to a set of program executions. The set of initial states of the program that characterize these executions is specified in terms of a first order logic formula on the input variables of the program. Conditioned slicing allows a better decomposition of the program giving the maintainer the possibility to analyze code fragments with respect to different perspectives. We also show how slices produced with traditional slicing methods can be reduced to conditioned slices. Conditioned slices can be identified by using symbolic execution techniques and dependence graphs

Research paper thumbnail of A Case Study of Applying an Eclectic Approach to Identify Objects in Code

The identification of objects in procedural programs has long been recognised as a key to success... more The identification of objects in procedural programs has long been recognised as a key to successful comprehension. As a consequence, several authors have proposed methods and tools that achieve, in general, some level of success, but do not always precisely identify a coherent set of objects. We show that using an eclectic approach, where a domain expert software engineer is encouraged to tailor and combine existing approaches, may overcome the limitation of the single approaches and helps to better address the particular goals of the project at hand and the unique aspects of the subject system. The eclectic approach is illustrated by reporting experiences from a case study of identifying coarse-grained, persistent objects to be used in the migration of a COBOL system to a distributed component system.

Research paper thumbnail of Decomposing Legacy Programs: A First Step Towards Migrating to Client-Server Platforms

A solution to the problem of salvaging the past investments in centralised, mainframe-oriented so... more A solution to the problem of salvaging the past investments in centralised, mainframe-oriented software development, while keeping competitive in the dynamic business world, consists of migrating legacy systems towards more modern environments, in particular client±server platforms. However, a migration process entails costs and risks that depend on the characteristics of both the architecture of the source system and the target client±server platform.

Research paper thumbnail of A Specification Driven Slicing Process for Identifying Reusable Functions

A Specification Driven Slicing Process for Identifying Reusable Functions

Journal of Software Maintenance and Evolution: Research and Practice, 1996

... The process is driven by the specification of the function to be isolated, given in terms of ... more ... The process is driven by the specification of the function to be isolated, given in terms of a precondition and a postcondition. ... The recovered conditions are then compared with the precondition and the postcondition of the functional abstraction. ...

Research paper thumbnail of Software Salvaging Based on Conditions

Software Salvaging Based on Conditions

This paper presents algorithms for isolating reusable functions in large monolithic programs. The... more This paper presents algorithms for isolating reusable functions in large monolithic programs. The functions to be isolated are specified in terms of either pre-conditions or binding conditions, and these are mapped onto predicates on program's variables. Code components whose execution is triggered and/or bound by these predicates are then isolated. Each component is a candidate to implement a reusable function. The algorithms exploit a representation of the subject program in the form of a program dependence graph. This work forms part of RE 2, a research project that addresses the wider issue of software reuse. RE2 project aims to promote the reuse of software through the exploration of reverse engineering and re-engineering techniques to identify and extract reusable software components from existing systems

Research paper thumbnail of An integrated environment for reuse reengineering C code

Journal of Systems and Software, 1998

The paper presents an integrated environment implemented in Prolog for reuse reengineering existi... more The paper presents an integrated environment implemented in Prolog for reuse reengineering existing C systems. Dierent tools developed in the i 2 project are integrated in the environment through sharing a ®ne-grained representation for C programs, the Combined C Graph (CCG). Dierent views of a system can be abstracted and visualised from the data-base of Prolog facts implementing its CCG representation. Software metric tools evaluate the reengineering costs, while reengineering operations are expressed as transformation rules and a symbolic executor allows the production of the reusable module's speci®cation. Ó

Research paper thumbnail of Identifying objects in legacy systems

would make the reengineered system more dificult to maintain.

Research paper thumbnail of Identifying objects in legacy systems using design metrics

Journal of Systems and Software, 1999

Many organisations are migrating towards object-oriented technology. However, owing to the busine... more Many organisations are migrating towards object-oriented technology. However, owing to the business value of legacy software, new object-oriented development has to be weighed against salvaging strategies. The incremental migration of procedurally oriented systems to object-oriented platforms seems to be a feasible approach, although it must be considered as risky as redevelopment. This approach uses reverse engineering activities to abstract an object-oriented model from legacy code. The paper presents a method for decomposing legacy systems into objects. The identi®cation of objects is centred around persistent data stores, such as ®les or tables in the database, while programs and routines are candidates for implementing the object methods. Associating the methods to the objects is achieved by optimising selected object-oriented design metrics. The rationale behind this choice is that the object-oriented decomposition of a legacy system should not result in a poor design, as this would make the re-engineered system more dicult to maintain. Ó

Research paper thumbnail of Incremental Migration Strategies: Data Flow Analysis For Wrapping

Incremental Migration Strategies: Data Flow Analysis For Wrapping

Incremental migration strategies entail the decomposition of large legacy systems in components t... more Incremental migration strategies entail the decomposition of large legacy systems in components that can be independently and selectively replaced; this reduces the costs and risks of a migration program. The legacy components are encapsulated into object wrappers and used (through the wrapper interface) in their original form until new components take up their functions with an acceptable level of reliability. The decomposition of legacy programs in components to be encapsulated in different wrappers involves reengineering activities for creating a new program for each component. Data flow analysis methods are needed for identifying the formal parameters in the interfaces of such programs. We present the approach defined within the project ERCOLE, a research project aiming at migrating legacy systems towards object-oriented platforms

Research paper thumbnail of Integrating Document and Workflow Management Tools using XML and Web Technologies: A Case Study

A critical point for developing successful information systems for distributed organisations is t... more A critical point for developing successful information systems for distributed organisations is the need for integrating heterogeneous technologies and tools. This paper reports a case study of integrating two key enabling technologies, namely workflow and document management. Integration is achieved by combining several approaches, including software engineering and hypertexts. In this way, we raise the integration problem from the level of a purely technical issue to a level of conceptual modelling: integration is not focused solely on the information/software systems but involves, and is driven by, the related business processes and the documents they deal with.

Research paper thumbnail of Conditioned program slicing

Conditioned program slicing

Information & Software Technology, 1998

Slicing is a technique to decompose programs based on the analysis of the control and data flow. ... more Slicing is a technique to decompose programs based on the analysis of the control and data flow. In the original Weiser's definition, a slice consists of any subset of program statements preserving the behaviour of the original program with respect to a program point and a subset of the program variables (slicing criterion), for any execution path. We present conditioned slicing, a general slicing model based on statement deletion. A conditioned slice consists of a subset of program statements which preserves the behaviour of the ...

Research paper thumbnail of An Extensible System for Source Code Analysis

IEEE Transactions on Software Engineering, 1998

Constructing code analyzers may be costly and error prone if inadequate technologies and tools ar... more Constructing code analyzers may be costly and error prone if inadequate technologies and tools are used. If they are written in a conventional programming language, for instance, several thousand lines of code may be required even for relatively simple analyses. One way of facilitating the development of code analyzers is to define a very high-level domain-oriented language and implement an application generator that creates the analyzers from the specification of the analyses they are intended to perform. This paper presents a system for developing code analyzers that uses a database to store both a no-loss fine-grained intermediate representation and the results of the analyses. The system uses an algebraic representation, called F p ( ) , as the user-visible intermediate representation. Analyzers are specified in a declarative language, called F p ( ) − l, which enables an analysis to be specified in the form of a traversal of an algebraic expression, with access to, and storage of, the database information the algebraic expression indices. A foreign language interface allows the analyzers to be embedded in C programs. This is useful for implementing the user interface of an analyzer, for example, or to facilitate interoperation of the generated analyzers with pre-existing tools. The paper evaluates the strengths and limitations of the proposed system, and compares it to other related approaches.

Research paper thumbnail of Recovering traceability links in software artifact management systems using information retrieval methods

ACM Transactions on Software Engineering and Methodology, 2007

The main drawback of existing software artifact management systems is the lack of automatic or se... more The main drawback of existing software artifact management systems is the lack of automatic or semi-automatic traceability link generation and maintenance. We have improved an artifact management system with a traceability recovery tool based on Latent Semantic Indexing (LSI), an information retrieval technique. We have assessed LSI to identify strengths and limitations of using information retrieval techniques for traceability recovery and devised the need for an incremental approach. The method and the tool have been evaluated during the development of seventeen software projects involving about 150 students. We observed that although tools based on information retrieval provide a useful support for the identification of traceability links during software development, they are still far to support a complete semi-automatic recovery of all links. The results of our experience have also shown that such tools can help to identify quality problems in the textual description of traced artifacts.

Research paper thumbnail of A Framework of Syntactic Models for the Implementation of Visual Languages

We present a framework of syntactic models for the definition and implementation of visual langua... more We present a framework of syntactic models for the definition and implementation of visual languages. We analyze a wide range of existing visual languages and, for each of them, we propose a characterization according to a syntactic model. The framework has been implemented in the Visual Language Compiler-Compiler (VLCC) system. VLCC is a practical, flexible and extensible tool for the automatic generation of visual programming environments which allows to implement visual languages once they are modeled according to a syntactic model

Research paper thumbnail of A Classification Framework to Support the Design of Visual Languages

Journal of Visual Languages and Computing, 2002

An important step in the design of visual languages is the speci¢cation of the graphical objects ... more An important step in the design of visual languages is the speci¢cation of the graphical objects and the composition rules for constructing feasible visual sentences. The presence of di¡erent typologies of visual languages, each with speci¢c graphical and structural characteristics, yields the need to have models and tools that unify the design steps for di¡erent types of visual languages. To this aim, in this paper we present a formal framework of visual language classes. Each class characterizes a family of visual languages based upon the nature of their graphical objects and composition rules. The framework has been embedded in the Visual Language Compiler^Compiler (VLCC), a graphical system for the automatic generation of visual programming environments. r

Research paper thumbnail of ADAMS: an Artefact-based Process Support System

ADAMS: an Artefact-based Process Support System

Research paper thumbnail of Decomposing legacy programs: a first step towards migrating to client-server platforms

Journal of Systems and Software, 2000

A solution to the problem of salvaging the past investments in centralised, mainframe-oriented so... more A solution to the problem of salvaging the past investments in centralised, mainframe-oriented software development, while keeping competitive in the dynamic business world, consists of migrating legacy systems towards more modern environments, in particular client±server platforms. However, a migration process entails costs and risks that depend on the characteristics of both the architecture of the source system and the target client±server platform.

Research paper thumbnail of Identifying reusable functions using specification driven program slicing: a case study

Identifying reusable functions using specification driven program slicing: a case study

Aniello Cimitile Dep. of “Ingegneria dell'hformazione ed Ingegneria Elettrica” University of... more Aniello Cimitile Dep. of “Ingegneria dell'hformazione ed Ingegneria Elettrica” University of Salerno, Faculty of Engineering at Benevento, 82100 Benevento, Italy ... Malcolm Munro Dep. of “Informatica e Sistemistica”, University of Naples ”Federieo 11”, Via Claudio 21, ...

Research paper thumbnail of Business process reengineering and workflow automation: a technology transfer experience

Journal of Systems and Software, 2002

In the last few years many public and private organizations have been changing the way of thinkin... more In the last few years many public and private organizations have been changing the way of thinking their business processes to improve the quality of delivered services while achieving better efficiency and efficacy. This paper presents results and lessons learned from an on-going technology-transfer research project aimed at introducing service and technology innovation within a peripheral public administration while transferring enabling workflow methodologies and technologies to local Small and Medium Enterprises (SMEs). We discuss a process reverse engineering approach and its application in the technology transfer project. We also discuss an approach for evaluation and assessment of workflow technology and present a prototype implementation for a selected process of the subject organization.

Research paper thumbnail of Qualifying Reusable Functions Using Symbolic Execution

Qualifying Reusable Functions Using Symbolic Execution

... reverse engineering source code modules to abstract their interface and functional specificat... more ... reverse engineering source code modules to abstract their interface and functional specifications. A fine-grained program rep-resentation for C programs, the Combined C Graph FCG, t is used to perform dynamic analysis of a modu e by means of symbolic execution techniques ...

Research paper thumbnail of Understanding Function Behaviors through Program Slicing

Understanding Function Behaviors through Program Slicing

We present conditioned slicing as a general slicing framework for program comprehension. A condit... more We present conditioned slicing as a general slicing framework for program comprehension. A conditioned slice consists of a subset of program statements which preserves the behavior of the original program with respect to a set of program executions. The set of initial states of the program that characterize these executions is specified in terms of a first order logic formula on the input variables of the program. Conditioned slicing allows a better decomposition of the program giving the maintainer the possibility to analyze code fragments with respect to different perspectives. We also show how slices produced with traditional slicing methods can be reduced to conditioned slices. Conditioned slices can be identified by using symbolic execution techniques and dependence graphs

Research paper thumbnail of A Case Study of Applying an Eclectic Approach to Identify Objects in Code

The identification of objects in procedural programs has long been recognised as a key to success... more The identification of objects in procedural programs has long been recognised as a key to successful comprehension. As a consequence, several authors have proposed methods and tools that achieve, in general, some level of success, but do not always precisely identify a coherent set of objects. We show that using an eclectic approach, where a domain expert software engineer is encouraged to tailor and combine existing approaches, may overcome the limitation of the single approaches and helps to better address the particular goals of the project at hand and the unique aspects of the subject system. The eclectic approach is illustrated by reporting experiences from a case study of identifying coarse-grained, persistent objects to be used in the migration of a COBOL system to a distributed component system.

Research paper thumbnail of Decomposing Legacy Programs: A First Step Towards Migrating to Client-Server Platforms

A solution to the problem of salvaging the past investments in centralised, mainframe-oriented so... more A solution to the problem of salvaging the past investments in centralised, mainframe-oriented software development, while keeping competitive in the dynamic business world, consists of migrating legacy systems towards more modern environments, in particular client±server platforms. However, a migration process entails costs and risks that depend on the characteristics of both the architecture of the source system and the target client±server platform.

Research paper thumbnail of A Specification Driven Slicing Process for Identifying Reusable Functions

A Specification Driven Slicing Process for Identifying Reusable Functions

Journal of Software Maintenance and Evolution: Research and Practice, 1996

... The process is driven by the specification of the function to be isolated, given in terms of ... more ... The process is driven by the specification of the function to be isolated, given in terms of a precondition and a postcondition. ... The recovered conditions are then compared with the precondition and the postcondition of the functional abstraction. ...

Research paper thumbnail of Software Salvaging Based on Conditions

Software Salvaging Based on Conditions

This paper presents algorithms for isolating reusable functions in large monolithic programs. The... more This paper presents algorithms for isolating reusable functions in large monolithic programs. The functions to be isolated are specified in terms of either pre-conditions or binding conditions, and these are mapped onto predicates on program's variables. Code components whose execution is triggered and/or bound by these predicates are then isolated. Each component is a candidate to implement a reusable function. The algorithms exploit a representation of the subject program in the form of a program dependence graph. This work forms part of RE 2, a research project that addresses the wider issue of software reuse. RE2 project aims to promote the reuse of software through the exploration of reverse engineering and re-engineering techniques to identify and extract reusable software components from existing systems

Research paper thumbnail of An integrated environment for reuse reengineering C code

Journal of Systems and Software, 1998

The paper presents an integrated environment implemented in Prolog for reuse reengineering existi... more The paper presents an integrated environment implemented in Prolog for reuse reengineering existing C systems. Dierent tools developed in the i 2 project are integrated in the environment through sharing a ®ne-grained representation for C programs, the Combined C Graph (CCG). Dierent views of a system can be abstracted and visualised from the data-base of Prolog facts implementing its CCG representation. Software metric tools evaluate the reengineering costs, while reengineering operations are expressed as transformation rules and a symbolic executor allows the production of the reusable module's speci®cation. Ó

Research paper thumbnail of Identifying objects in legacy systems

would make the reengineered system more dificult to maintain.

Research paper thumbnail of Identifying objects in legacy systems using design metrics

Journal of Systems and Software, 1999

Many organisations are migrating towards object-oriented technology. However, owing to the busine... more Many organisations are migrating towards object-oriented technology. However, owing to the business value of legacy software, new object-oriented development has to be weighed against salvaging strategies. The incremental migration of procedurally oriented systems to object-oriented platforms seems to be a feasible approach, although it must be considered as risky as redevelopment. This approach uses reverse engineering activities to abstract an object-oriented model from legacy code. The paper presents a method for decomposing legacy systems into objects. The identi®cation of objects is centred around persistent data stores, such as ®les or tables in the database, while programs and routines are candidates for implementing the object methods. Associating the methods to the objects is achieved by optimising selected object-oriented design metrics. The rationale behind this choice is that the object-oriented decomposition of a legacy system should not result in a poor design, as this would make the re-engineered system more dicult to maintain. Ó

Research paper thumbnail of Incremental Migration Strategies: Data Flow Analysis For Wrapping

Incremental Migration Strategies: Data Flow Analysis For Wrapping

Incremental migration strategies entail the decomposition of large legacy systems in components t... more Incremental migration strategies entail the decomposition of large legacy systems in components that can be independently and selectively replaced; this reduces the costs and risks of a migration program. The legacy components are encapsulated into object wrappers and used (through the wrapper interface) in their original form until new components take up their functions with an acceptable level of reliability. The decomposition of legacy programs in components to be encapsulated in different wrappers involves reengineering activities for creating a new program for each component. Data flow analysis methods are needed for identifying the formal parameters in the interfaces of such programs. We present the approach defined within the project ERCOLE, a research project aiming at migrating legacy systems towards object-oriented platforms

Research paper thumbnail of Integrating Document and Workflow Management Tools using XML and Web Technologies: A Case Study

A critical point for developing successful information systems for distributed organisations is t... more A critical point for developing successful information systems for distributed organisations is the need for integrating heterogeneous technologies and tools. This paper reports a case study of integrating two key enabling technologies, namely workflow and document management. Integration is achieved by combining several approaches, including software engineering and hypertexts. In this way, we raise the integration problem from the level of a purely technical issue to a level of conceptual modelling: integration is not focused solely on the information/software systems but involves, and is driven by, the related business processes and the documents they deal with.

Research paper thumbnail of Conditioned program slicing

Conditioned program slicing

Information & Software Technology, 1998

Slicing is a technique to decompose programs based on the analysis of the control and data flow. ... more Slicing is a technique to decompose programs based on the analysis of the control and data flow. In the original Weiser's definition, a slice consists of any subset of program statements preserving the behaviour of the original program with respect to a program point and a subset of the program variables (slicing criterion), for any execution path. We present conditioned slicing, a general slicing model based on statement deletion. A conditioned slice consists of a subset of program statements which preserves the behaviour of the ...

Research paper thumbnail of An Extensible System for Source Code Analysis

IEEE Transactions on Software Engineering, 1998

Constructing code analyzers may be costly and error prone if inadequate technologies and tools ar... more Constructing code analyzers may be costly and error prone if inadequate technologies and tools are used. If they are written in a conventional programming language, for instance, several thousand lines of code may be required even for relatively simple analyses. One way of facilitating the development of code analyzers is to define a very high-level domain-oriented language and implement an application generator that creates the analyzers from the specification of the analyses they are intended to perform. This paper presents a system for developing code analyzers that uses a database to store both a no-loss fine-grained intermediate representation and the results of the analyses. The system uses an algebraic representation, called F p ( ) , as the user-visible intermediate representation. Analyzers are specified in a declarative language, called F p ( ) − l, which enables an analysis to be specified in the form of a traversal of an algebraic expression, with access to, and storage of, the database information the algebraic expression indices. A foreign language interface allows the analyzers to be embedded in C programs. This is useful for implementing the user interface of an analyzer, for example, or to facilitate interoperation of the generated analyzers with pre-existing tools. The paper evaluates the strengths and limitations of the proposed system, and compares it to other related approaches.

Research paper thumbnail of Recovering traceability links in software artifact management systems using information retrieval methods

ACM Transactions on Software Engineering and Methodology, 2007

The main drawback of existing software artifact management systems is the lack of automatic or se... more The main drawback of existing software artifact management systems is the lack of automatic or semi-automatic traceability link generation and maintenance. We have improved an artifact management system with a traceability recovery tool based on Latent Semantic Indexing (LSI), an information retrieval technique. We have assessed LSI to identify strengths and limitations of using information retrieval techniques for traceability recovery and devised the need for an incremental approach. The method and the tool have been evaluated during the development of seventeen software projects involving about 150 students. We observed that although tools based on information retrieval provide a useful support for the identification of traceability links during software development, they are still far to support a complete semi-automatic recovery of all links. The results of our experience have also shown that such tools can help to identify quality problems in the textual description of traced artifacts.

Research paper thumbnail of A Framework of Syntactic Models for the Implementation of Visual Languages

We present a framework of syntactic models for the definition and implementation of visual langua... more We present a framework of syntactic models for the definition and implementation of visual languages. We analyze a wide range of existing visual languages and, for each of them, we propose a characterization according to a syntactic model. The framework has been implemented in the Visual Language Compiler-Compiler (VLCC) system. VLCC is a practical, flexible and extensible tool for the automatic generation of visual programming environments which allows to implement visual languages once they are modeled according to a syntactic model

Research paper thumbnail of A Classification Framework to Support the Design of Visual Languages

Journal of Visual Languages and Computing, 2002

An important step in the design of visual languages is the speci¢cation of the graphical objects ... more An important step in the design of visual languages is the speci¢cation of the graphical objects and the composition rules for constructing feasible visual sentences. The presence of di¡erent typologies of visual languages, each with speci¢c graphical and structural characteristics, yields the need to have models and tools that unify the design steps for di¡erent types of visual languages. To this aim, in this paper we present a formal framework of visual language classes. Each class characterizes a family of visual languages based upon the nature of their graphical objects and composition rules. The framework has been embedded in the Visual Language Compiler^Compiler (VLCC), a graphical system for the automatic generation of visual programming environments. r

Research paper thumbnail of ADAMS: an Artefact-based Process Support System

ADAMS: an Artefact-based Process Support System