{"title":"Object data models to support source code queries: implementing SCA within REFINE","authors":"S. Paul, A. Prakash","doi":"10.1109/WPC.1994.341263","DOIUrl":"https://doi.org/10.1109/WPC.1994.341263","url":null,"abstract":"The REFINE object base is being used widely for code analysis and reverse engineering. From the perspective of program querying and interactive program analysis however, REFINE-like object bases offer only general-purpose programming languages in which users must code their program queries. In contrast, Source Code Algebra (SCA) is an object algebra designed to serve as an applicative source code query language. We are currently implementing an SCA-based query processor within the REFINE environment. This paper provides insights into some object data model features which are currently absent in the REFINE framework, and argues that their incorporation will enable certain source code queries to be handled more efficiently. We also argue that the inclusion of these features will greatly simplify the implementation of the SCA query processor.<<ETX>>","PeriodicalId":308971,"journal":{"name":"Proceedings 1994 IEEE 3rd Workshop on Program Comprehension- WPC '94","volume":"83 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-11-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126017241","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}
{"title":"A documentation-related approach to object-oriented program understanding","authors":"L. Etzkorn, C. Davis","doi":"10.1109/WPC.1994.341247","DOIUrl":"https://doi.org/10.1109/WPC.1994.341247","url":null,"abstract":"Object-oriented code is considered to be inherently more reusable than functional decomposition code; however, object-oriented code can suffer from a program understanding standpoint since good object-oriented style seems to require a large number of small methods. Hence code for a particular task may be scattered widely. Thus good semantics based tools are necessary. This paper describes an approach to object-oriented code understanding that focuses largely on informal linguistic aspects of code, such as comments and identifiers.<<ETX>>","PeriodicalId":308971,"journal":{"name":"Proceedings 1994 IEEE 3rd Workshop on Program Comprehension- WPC '94","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-11-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114780396","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}
{"title":"Using procedural patterns in abstracting relational schemata","authors":"O. Signore, M. Loffredo, M. Gregori, M. Cima","doi":"10.1109/WPC.1994.341261","DOIUrl":"https://doi.org/10.1109/WPC.1994.341261","url":null,"abstract":"The rebuilding of the database conceptual schema from the physical database structure is a fundamental issue in the re-engineering and design recovery processes. In this paper we present an approach to the reverse engineering based on the identification of schema, primary key, SQL and procedural indicators that lead to the assertion of Prolog facts and, by some heuristic rules, to the rebuilding of the conceptual schema.<<ETX>>","PeriodicalId":308971,"journal":{"name":"Proceedings 1994 IEEE 3rd Workshop on Program Comprehension- WPC '94","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-11-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126912134","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}
G. Canfora, A. D. Lucia, G. D. Lucca, A. R. Fasolino
{"title":"Recovering the architectural design for software comprehension","authors":"G. Canfora, A. D. Lucia, G. D. Lucca, A. R. Fasolino","doi":"10.1109/WPC.1994.341246","DOIUrl":"https://doi.org/10.1109/WPC.1994.341246","url":null,"abstract":"The work described in this paper addresses the problem of understanding a software system and focuses in particular on the comprehension of the system architectural design. A method is proposed to reconstruct the architecture of a system and represent it in the form of a structure chart. The method assumes the system was originally designed with a functional decomposition approach, and aggregates program units into modules whenever these implement a functionality of the system. A directed graph that describes the activations of program units is used to model the system and the concept of node dominance on a directed graph is exploited to aggregate program units into modules and to derive intermodular relationships from the unit activations. Finally, the system data set is partitioned into sets of data items which are local to a given module and sets of data items which are global to the nodules belonging to a subtree of the structure chart, and the interfaces of modules are identified.<<ETX>>","PeriodicalId":308971,"journal":{"name":"Proceedings 1994 IEEE 3rd Workshop on Program Comprehension- WPC '94","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-11-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133465307","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}
{"title":"Experiences using reverse engineering techniques to analyse documentation","authors":"G. Ewart, M. Tomic","doi":"10.1109/WPC.1994.341250","DOIUrl":"https://doi.org/10.1109/WPC.1994.341250","url":null,"abstract":"This paper discusses an approach taken to analyse IBM product documentation using reverse engineering technologies, which are normally applied to the analysis of system source codes.<<ETX>>","PeriodicalId":308971,"journal":{"name":"Proceedings 1994 IEEE 3rd Workshop on Program Comprehension- WPC '94","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-11-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130939423","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}
{"title":"Layered explanations of software: a methodology for program comprehension","authors":"V. Rajlich, J. Doran, Reddi T. S. Gudla","doi":"10.1109/WPC.1994.341248","DOIUrl":"https://doi.org/10.1109/WPC.1994.341248","url":null,"abstract":"In dealing with the legacy systems, one often encounters poorly documented and heavily maintained software. Lack of understandability of these systems complicates the task of software maintenance, making it time consuming and limiting the possibilities of the evolution of the system. We present a methodology that helps the programmers to understand programs. Our approach is compatible with the \"top-down theory\" of software understanding, where the programmer creates a chain of hypotheses and subsidiary hypotheses, concerning the properties of the code. Then he/she looks for evidence (beacons) in the code. Our approach shortens the process of hypotheses creation and verification, and allows recording of successful hypotheses for the future maintenance. All information needed for understanding is recorded in layers of annotations. An experiment was conducted to investigate how the proposed methodology helps in program understanding. A tool supporting the methodology, is presented.<<ETX>>","PeriodicalId":308971,"journal":{"name":"Proceedings 1994 IEEE 3rd Workshop on Program Comprehension- WPC '94","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-11-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133488383","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}
{"title":"SFAC, a tool for program comprehension by specialization","authors":"Sandrine Blazy, P. Facon","doi":"10.1109/WPC.1994.341266","DOIUrl":"https://doi.org/10.1109/WPC.1994.341266","url":null,"abstract":"This paper describes a tool for facilitating the comprehension of general programs using automatic specialization. The goal of this approach was to assist in the maintenance of old programs, which have become very complex due to numerous extensions. This paper explains why this approach was chosen, how the tool's architecture was set up, and how the correctness of the specialization has been proved. Then, it discusses the results obtained by using this tool, and the future evolutions.<<ETX>>","PeriodicalId":308971,"journal":{"name":"Proceedings 1994 IEEE 3rd Workshop on Program Comprehension- WPC '94","volume":"20 78 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-11-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121427882","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}
{"title":"Theory and practice of middle-out programming to support program understanding","authors":"K. Bennett, Martin P. Ward","doi":"10.1109/WPC.1994.341267","DOIUrl":"https://doi.org/10.1109/WPC.1994.341267","url":null,"abstract":"Theories of top-down and bottom-up program comprehension have existed for several years, but it has been recognised that understanding rarely happens in practice in such a well-ordered way. The paper describes recent work and results at Durham on what is termed middle-out programming. The objective is to avoid the problems of top-down and bottom-up approaches, by designing a very high level language specific to the application domain. Domain knowledge is captured in the design of this language, which retains a strong formal basis. This paper takes the view that software engineering will become strongly application domain based, and that knowledge representation of the domain will be a crucial factor in supporting program comprehension. An example of using this approach in the design of a large software system is presented.<<ETX>>","PeriodicalId":308971,"journal":{"name":"Proceedings 1994 IEEE 3rd Workshop on Program Comprehension- WPC '94","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-11-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124985658","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}
{"title":"Abstraction mechanisms for pictorial slicing","authors":"D. Jackson, Eugene J. Rollins","doi":"10.1109/WPC.1994.341254","DOIUrl":"https://doi.org/10.1109/WPC.1994.341254","url":null,"abstract":"Big programs tend to have big slices, so reverse engineering tools based on slicing must apply additional abstractions to make slices intelligible. We have built a tool that displays slices as diagrams. By confining the slice to the statements of a single procedure, by eluding all primitive statements, and by merging different calls of the same procedure, we eliminate local information that is easily seen in the code without the help of tools. And by labelling edges with the variables responsible for flows between procedure calls, global information about called procedures is represented locally. The resulting diagram gives a compact but rich summary of the role of called procedures in the slice.<<ETX>>","PeriodicalId":308971,"journal":{"name":"Proceedings 1994 IEEE 3rd Workshop on Program Comprehension- WPC '94","volume":"116 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-11-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131802740","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}
{"title":"Towards automated code parallelization through program comprehension","authors":"B. D. Martino, G. Iannello","doi":"10.1109/WPC.1994.341258","DOIUrl":"https://doi.org/10.1109/WPC.1994.341258","url":null,"abstract":"Currently available parallelizing tools are biased in favor of a particular parallel execution model for generating the output parallel program. This obviously limits the generality of these tools, since programs may be parallelized according to different programming paradigms. In this paper we propose a novel approach to automated code parallelization that tries to overcome these limitations. This approach consists in recognizing first the paradigm that as best suited to a given program to be parallelized, and then applying paradigm-specific transformation to generate the final parallel code. We argue that the recognition phase can be fully automated using techniques developed in the framework of automated program understanding. With the help of a case study, we discuss how this new approach could be implemented and propose the basic structure of a paradigm-oriented parallelizer.<<ETX>>","PeriodicalId":308971,"journal":{"name":"Proceedings 1994 IEEE 3rd Workshop on Program Comprehension- WPC '94","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1994-11-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125293082","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}