Pub Date : 1998-10-12DOI: 10.1109/WCRE.1998.723185
R. Kazman, Steven S. Woods, Steven Jeromy Carriere
This paper discusses the requirements and a generic framework for the integration of architectural and code-based reengineering tools. This framework is needed because there is a large number of stand-alone reengineering tools that operate at different levels of abstraction ranging from "code-level" to software architecture. For the purposes of reengineering a complete system however, these tools need to be able to share information so that not only can the code be updated or corrected, but also the system's software architecture can be simultaneously rationalized or modernized. To this end, we have built upon the CORUM model of reengineering tool interoperation to include software architecture concepts and tools. This extended framework-called CORUM II-is organized around the metaphor of a "horseshoe", where the left-hand side of the horseshoe consists of fact extraction from an existing system, the right hand side consists of development activities, and the bridge between the sides consists of a set of transformations from the old to the new.
{"title":"Requirements for integrating software architecture and reengineering models: CORUM II","authors":"R. Kazman, Steven S. Woods, Steven Jeromy Carriere","doi":"10.1109/WCRE.1998.723185","DOIUrl":"https://doi.org/10.1109/WCRE.1998.723185","url":null,"abstract":"This paper discusses the requirements and a generic framework for the integration of architectural and code-based reengineering tools. This framework is needed because there is a large number of stand-alone reengineering tools that operate at different levels of abstraction ranging from \"code-level\" to software architecture. For the purposes of reengineering a complete system however, these tools need to be able to share information so that not only can the code be updated or corrected, but also the system's software architecture can be simultaneously rationalized or modernized. To this end, we have built upon the CORUM model of reengineering tool interoperation to include software architecture concepts and tools. This extended framework-called CORUM II-is organized around the metaphor of a \"horseshoe\", where the left-hand side of the horseshoe consists of fact extraction from an existing system, the right hand side consists of development activities, and the bridge between the sides consists of a set of transformations from the old to the new.","PeriodicalId":345730,"journal":{"name":"Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261)","volume":"261 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116568520","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1998-10-12DOI: 10.1109/WCRE.1998.723183
Bernt Kullbach, A. Winter, Peter Dahm, J. Ebert
This paper presents an approach to program comprehension in multi-language systems. Such systems are characterized by a high amount of source codes in various languages for programming, database definition and job control. Coping with those systems requires the references crossing the language boundaries to be analyzed. Using the EER/GRAL approach to graph-based conceptual modeling, models representing relevant aspects of single language are built and integrated into a common conceptual model. Since conceptual modeling focusses on specific problems, the integrated model presented here is especially tailored to multi-language aspects. Software systems are parsed and represented according to this conceptual model and queried by using a powerful graph query mechanism. This allows multi-language cross references to be easily retrieved. The multi-language conceptual model and the query facilities have been developed in cooperation with the maintenance programmers at an insurance company within the GUPRO project.
{"title":"Program comprehension in multi-language systems","authors":"Bernt Kullbach, A. Winter, Peter Dahm, J. Ebert","doi":"10.1109/WCRE.1998.723183","DOIUrl":"https://doi.org/10.1109/WCRE.1998.723183","url":null,"abstract":"This paper presents an approach to program comprehension in multi-language systems. Such systems are characterized by a high amount of source codes in various languages for programming, database definition and job control. Coping with those systems requires the references crossing the language boundaries to be analyzed. Using the EER/GRAL approach to graph-based conceptual modeling, models representing relevant aspects of single language are built and integrated into a common conceptual model. Since conceptual modeling focusses on specific problems, the integrated model presented here is especially tailored to multi-language aspects. Software systems are parsed and represented according to this conceptual model and queried by using a powerful graph query mechanism. This allows multi-language cross references to be easily retrieved. The multi-language conceptual model and the query facilities have been developed in cooperation with the maintenance programmers at an insurance company within the GUPRO project.","PeriodicalId":345730,"journal":{"name":"Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261)","volume":"127 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130769433","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1998-10-12DOI: 10.1109/WCRE.1998.723193
C. M. D. Oca, D. Carver
Decomposing a software system into subsystems is an important activity in the reverse engineering and maintenance domains. One approach to subsystem decomposition is based on data mining techniques. The ISA (Identification of Subsystems based on Associations) methodology decomposes a software system into subsystems by mining association rules from a database representation of the target system. This paper defines a visual representation model (RM) to graphically present the information produced by ISA. RM provides a graphical view of the recovered subsystem decomposition, the subsystems components, and the relationships among the subsystems. RM includes notation to represent hierarchies of file implications and hierarchies of subsystems. Results of applying RM to represent the subsystem decomposition of a COBOL system are discussed.
{"title":"A visual representation model for software subsystem decomposition","authors":"C. M. D. Oca, D. Carver","doi":"10.1109/WCRE.1998.723193","DOIUrl":"https://doi.org/10.1109/WCRE.1998.723193","url":null,"abstract":"Decomposing a software system into subsystems is an important activity in the reverse engineering and maintenance domains. One approach to subsystem decomposition is based on data mining techniques. The ISA (Identification of Subsystems based on Associations) methodology decomposes a software system into subsystems by mining association rules from a database representation of the target system. This paper defines a visual representation model (RM) to graphically present the information produced by ISA. RM provides a graphical view of the recovered subsystem decomposition, the subsystems components, and the relationships among the subsystems. RM includes notation to represent hierarchies of file implications and hierarchies of subsystems. Results of applying RM to represent the subsystem decomposition of a COBOL system are discussed.","PeriodicalId":345730,"journal":{"name":"Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261)","volume":"57 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132998268","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1998-10-12DOI: 10.1109/WCRE.1998.723175
Ramachenga R. Valasareddi, D. Carver
We describe a reengineering process for transforming procedural systems into object-oriented systems. The method is based on the program representation model, which is restructured by merging together cohesive components of the system. We present the model restructuring technique and discuss how the restructured model can be used for object identification.
{"title":"A graph-based object identification process for procedural programs","authors":"Ramachenga R. Valasareddi, D. Carver","doi":"10.1109/WCRE.1998.723175","DOIUrl":"https://doi.org/10.1109/WCRE.1998.723175","url":null,"abstract":"We describe a reengineering process for transforming procedural systems into object-oriented systems. The method is based on the program representation model, which is restructured by merging together cohesive components of the system. We present the model restructuring technique and discuss how the restructured model can be used for object identification.","PeriodicalId":345730,"journal":{"name":"Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130701239","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1998-10-12DOI: 10.1109/WCRE.1998.723176
A. Cimitile, U. D. Carlini, A. D. Lucia
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.
{"title":"Incremental migration strategies: data flow analysis for wrapping","authors":"A. Cimitile, U. D. Carlini, A. D. Lucia","doi":"10.1109/WCRE.1998.723176","DOIUrl":"https://doi.org/10.1109/WCRE.1998.723176","url":null,"abstract":"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.","PeriodicalId":345730,"journal":{"name":"Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261)","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129793048","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1998-10-12DOI: 10.1109/WCRE.1998.723188
M. Blaha
We articulate the notion of reverse engineering of vendor databases and argue that this is a compelling technology that organizations should be routinely practicing. We take the perspective of a large organization that is a consumer of software (and not the perspective of a software vendor). We frequently reverse engineer vendor databases in our consulting practice and the technology has been enthusiastically received by industry.
{"title":"On reverse engineering of vendor databases","authors":"M. Blaha","doi":"10.1109/WCRE.1998.723188","DOIUrl":"https://doi.org/10.1109/WCRE.1998.723188","url":null,"abstract":"We articulate the notion of reverse engineering of vendor databases and argue that this is a compelling technology that organizations should be routinely practicing. We take the perspective of a large organization that is a consumer of software (and not the perspective of a software vendor). We frequently reverse engineer vendor databases in our consulting practice and the technology has been enthusiastically received by industry.","PeriodicalId":345730,"journal":{"name":"Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261)","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124356827","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1998-10-12DOI: 10.1109/WCRE.1998.723182
G. Gannod, Gora Sudindranath, Mark Fagnani, B. Cheng
Reengineering is the process of examination, understanding, and alteration of a system with the intent of implementing the system in a new form. Many approaches for design recovery or reverse engineering have been suggested, most with some type of support tool. Since a project's time constraints may prohibit use of sophisticated techniques and/or tools due to the learning curves associated with the techniques and tools, methods that can be applied in lieu of complex support tools may be required. This paper describes a case study project involving the reengineering of a network application used by Texas Instruments to monitor network traffic in a local area network.
{"title":"PACKRAT: a software reengineering case study","authors":"G. Gannod, Gora Sudindranath, Mark Fagnani, B. Cheng","doi":"10.1109/WCRE.1998.723182","DOIUrl":"https://doi.org/10.1109/WCRE.1998.723182","url":null,"abstract":"Reengineering is the process of examination, understanding, and alteration of a system with the intent of implementing the system in a new form. Many approaches for design recovery or reverse engineering have been suggested, most with some type of support tool. Since a project's time constraints may prohibit use of sophisticated techniques and/or tools due to the learning curves associated with the techniques and tools, methods that can be applied in lieu of complex support tools may be required. This paper describes a case study project involving the reengineering of a network application used by Texas Instruments to monitor network traffic in a local area network.","PeriodicalId":345730,"journal":{"name":"Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128709260","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1998-10-12DOI: 10.1109/WCRE.1998.723174
T. Lin, L. O'Brien
This paper describes the architecture of an ongoing developed Flexible and Extensible Program comprehension Support System (FEPSS). Program comprehension is a process for supporting users to understand a software system and is required for forward, reverse engineering, and re-engineering. In a program comprehension process some artifacts such as control-flow graphs and data-flow graphs need to be generated to help users in understanding and some artifacts such as design rationale and testing cases also need to be recorded for further re-engineering. It is impossible to predict all the types of artifacts to be supported in a program comprehension process as at least no one makes a re-engineering plan when designing a new software system. Therefore a program comprehension system should support a great flexibility and extensibility in artifact modelling. The approach which FEPSS takes is to provide a support system where the users can add new artifacts even at run time. FEPSS uses a relational object model to link the artifacts in order to integrate various activities in a program comprehension process as a whole. To help users to understand the artifacts and their relationships FEPSS uses 3D visualization to display artifacts. As the number of the artifacts for a software system can be very large FEPSS provides a navigation tool for users to control what artifacts to display. Based on these mechanisms, FEPSS can support users to analyze, model, and explore the artifacts through pictures.
{"title":"FEPSS: a flexible and extensible program comprehension support system","authors":"T. Lin, L. O'Brien","doi":"10.1109/WCRE.1998.723174","DOIUrl":"https://doi.org/10.1109/WCRE.1998.723174","url":null,"abstract":"This paper describes the architecture of an ongoing developed Flexible and Extensible Program comprehension Support System (FEPSS). Program comprehension is a process for supporting users to understand a software system and is required for forward, reverse engineering, and re-engineering. In a program comprehension process some artifacts such as control-flow graphs and data-flow graphs need to be generated to help users in understanding and some artifacts such as design rationale and testing cases also need to be recorded for further re-engineering. It is impossible to predict all the types of artifacts to be supported in a program comprehension process as at least no one makes a re-engineering plan when designing a new software system. Therefore a program comprehension system should support a great flexibility and extensibility in artifact modelling. The approach which FEPSS takes is to provide a support system where the users can add new artifacts even at run time. FEPSS uses a relational object model to link the artifacts in order to integrate various activities in a program comprehension process as a whole. To help users to understand the artifacts and their relationships FEPSS uses 3D visualization to display artifacts. As the number of the artifacts for a software system can be very large FEPSS provides a navigation tool for users to control what artifacts to display. Based on these mechanisms, FEPSS can support users to analyze, model, and explore the artifacts through pictures.","PeriodicalId":345730,"journal":{"name":"Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261)","volume":"8 2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132629647","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1998-10-12DOI: 10.1109/WCRE.1998.723190
J. Cross, T. D. Hendrix, L. Barowski, K. S. Mathias
Visualizations of software can be utilized in varying degrees throughout the software development cycle as aids to comprehension, analysis, and measurement. This research focuses on the experimental evaluation and refinement of a set of scalable visualizations that show promise for improving the overall software process. The roles which visualizations may play during reverse engineering and maintenance are of particular interest. This research also investigates the manner in which software visualizations are used in practice by software professionals. Partners from government and industry have agreed to participate by providing access to appropriate production software. This paper will describe a framework for evaluating visual techniques and investigating their practical use and application.
{"title":"Scalable visualizations to support reverse engineering: a framework for evaluation","authors":"J. Cross, T. D. Hendrix, L. Barowski, K. S. Mathias","doi":"10.1109/WCRE.1998.723190","DOIUrl":"https://doi.org/10.1109/WCRE.1998.723190","url":null,"abstract":"Visualizations of software can be utilized in varying degrees throughout the software development cycle as aids to comprehension, analysis, and measurement. This research focuses on the experimental evaluation and refinement of a set of scalable visualizations that show promise for improving the overall software process. The roles which visualizations may play during reverse engineering and maintenance are of particular interest. This research also investigates the manner in which software visualizations are used in practice by software professionals. Partners from government and industry have agreed to participate by providing access to appropriate production software. This paper will describe a framework for evaluating visual techniques and investigating their practical use and application.","PeriodicalId":345730,"journal":{"name":"Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261)","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121880913","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1998-10-12DOI: 10.1109/WCRE.1998.723191
R. Holt
A software architecture is typically drawn as a nested set of box and arrow diagrams. The boxes represent components of the software system and the edges represent interactions These diagrams correspond to typed graphs, in which there are a number of "types" or "colors" of edges, and in which there is a distinguished "contain" relation that represents the system hierarchy (the nesting of boxes). During reverse engineering, one often transforms such diagrams in various ways to make them easier to understand. These transformations include edge aggregation, box abstraction (closing a box to hide its contents), and box separation (separating a box from its surrounding system). Such transformations are essential in helping make software architecture diagrams useful in practice. Paper shows how structural manipulations such as these can be specified and automatically carried out in a notation based on Tarski's relational algebra. The operators in this algebra include relational composition, union, subtraction, etc. These operators are supported in a language called Grok. Grok scripts have been used in manipulating the graphs for large scale software systems, such as Linux, to help in program visualization and understanding.
{"title":"Structural manipulations of software architecture using Tarski relational algebra","authors":"R. Holt","doi":"10.1109/WCRE.1998.723191","DOIUrl":"https://doi.org/10.1109/WCRE.1998.723191","url":null,"abstract":"A software architecture is typically drawn as a nested set of box and arrow diagrams. The boxes represent components of the software system and the edges represent interactions These diagrams correspond to typed graphs, in which there are a number of \"types\" or \"colors\" of edges, and in which there is a distinguished \"contain\" relation that represents the system hierarchy (the nesting of boxes). During reverse engineering, one often transforms such diagrams in various ways to make them easier to understand. These transformations include edge aggregation, box abstraction (closing a box to hide its contents), and box separation (separating a box from its surrounding system). Such transformations are essential in helping make software architecture diagrams useful in practice. Paper shows how structural manipulations such as these can be specified and automatically carried out in a notation based on Tarski's relational algebra. The operators in this algebra include relational composition, union, subtraction, etc. These operators are supported in a language called Grok. Grok scripts have been used in manipulating the graphs for large scale software systems, such as Linux, to help in program visualization and understanding.","PeriodicalId":345730,"journal":{"name":"Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261)","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-10-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130410992","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}