Andrea De Lucia - Academia.edu (original) (raw)
Uploads
Papers by Andrea De Lucia
Journal of Systems and Software, 2000
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, ...
Journal of Systems and Software, 2002
... 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 ...
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
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. ...
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
Journal of Systems and Software, 1998
Journal of Systems and Software, 1999
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
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 ...
IEEE Transactions on Software Engineering, 1998
ACM Transactions on Software Engineering and Methodology, 2007
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
Journal of Visual Languages and Computing, 2002
Journal of Systems and Software, 2000
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, ...
Journal of Systems and Software, 2002
... 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 ...
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
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. ...
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
Journal of Systems and Software, 1998
Journal of Systems and Software, 1999
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
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 ...
IEEE Transactions on Software Engineering, 1998
ACM Transactions on Software Engineering and Methodology, 2007
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
Journal of Visual Languages and Computing, 2002