Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

Andrea De Lucia

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... 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, ...
... 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... 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 conditioned slice consists of a subset of program statements which preserves the behavior of the original program with respect to a set of program... 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
... 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... 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 functions to be isolated are specified in terms of either pre-conditions or binding conditions, and these are mapped onto predicates on... 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
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... 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
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... 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 ...
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... 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
... Andrea De Lucia, Fausto Fasano, Rocco Oliveto, Genoveffa Tortora adelucia@unisa.it, ffasano@unisa.it, r.oliveto@tiscali.it, tortora@unisa.it ... The result is a reduced model: DSTX X ' which is the rank-k model with the best... more
... Andrea De Lucia, Fausto Fasano, Rocco Oliveto, Genoveffa Tortora adelucia@unisa.it, ffasano@unisa.it, r.oliveto@tiscali.it, tortora@unisa.it ... The result is a reduced model: DSTX X ' which is the rank-k model with the best possible least square fit to X. The choice of k is critical ...
We have developed the visual language compiler-compiler (VLCC) system to automatically generate visual programming environments. VLCC is a grammar based system that can support implementation of any visual language by assisting the... more
We have developed the visual language compiler-compiler (VLCC) system to automatically generate visual programming environments. VLCC is a grammar based system that can support implementation of any visual language by assisting the language designer in defining the language's graphical objects, syntax, and semantics. The final result of the generation process includes an integrated environment with a visual editor and a compiler for the defined visual language. In VLCC, graphical tools define visual languages to create both graphical objects and composition rules. Visual editors enable language designers to directly and visually manipulate the syntax of these languages. To capture the widest range of visual languages, the VLCC system can be configured for a specific language class. Different language classes can be characterized depending on their graphical objects' structure and on the way they can be composed. Also, box and arrow diagrams are defined for primitive objects with attaching points and for composition rules to join boxes and arrows at those attaching points. After choosing the visual language type to create, the designer can concentrate on language definition details. VLCC uses the positional grammar model as its underlying grammar formalism
Abstract Many models have been presented to specify visual languages and big efforts are being made to characterize a class of visual languages which is expressive enough and, at the same time, efficient to parse. Along this direction,... more
Abstract Many models have been presented to specify visual languages and big efforts are being made to characterize a class of visual languages which is expressive enough and, at the same time, efficient to parse. Along this direction, the positional grammar model has been defined to extend the LR parsing techniques and parse efficiently not only the string languages but also iconic languages. In this paper, we present an extension of the positional grammar model in order to describe a wide variety of diagrammatic languages. ...
We propose an Object Oriented (OO) design pattern recovery approach which makes use of a design pattern library, expressed in terms of visual grammars, and based on a visual language parsing technique. We also present a visual environment... more
We propose an Object Oriented (OO) design pattern recovery approach which makes use of a design pattern library, expressed in terms of visual grammars, and based on a visual language parsing technique. We also present a visual environment which supports the pattern recognition process by automatically retrieving design patterns from imported UML class diagrams. The visual environment has been automatically generated through the VLDesk system, starting from a description of the design pattern grammar.