{"title":"Analyzing Java software by combining metrics and program visualization","authors":"Tarja Systä, P. Yu, H. Müller","doi":"10.1109/CSMR.2000.827328","DOIUrl":"https://doi.org/10.1109/CSMR.2000.827328","url":null,"abstract":"Shimba, a prototype reverse engineering environment, has been built to support the understanding of Java software. Shimba uses Rigi and SCED to analyze, visualize, and explore the static and dynamic aspects, respectively, of the subject system. The static software artifacts and their dependencies are extracted from Java byte code and viewed as directed graphs using the Rigi reverse engineering environment. The static dependency graphs of a subject system can be annotated with attributes, such as software quality measures, and then be analyzed and visualised using scripts through the end user programmable interface. Shimba has recently been extended with the Chidamber and Kemerer suite of object oriented metrics. The metrics measure properties of the classes, the inheritance hierarchy, and the interaction among classes of a subject system. Since Shimba is primarily intended for the analysis and exploration of Java software, the metrics have been tailored to measure properties of software systems using a reverse engineering environment. The static dependency graphs of the system under investigation are decorated with measures obtained by applying the object oriented metrics to selected software components. Shimba provides tools to examine these measures, to find software artifacts that have values that are in a given range, and to detect correlations among different measures. The object oriented analysis of the subject Java system can be investigated further by exporting the measures to a spreadsheet.","PeriodicalId":169352,"journal":{"name":"Proceedings of the Fourth European Conference on Software Maintenance and Reengineering","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-02-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125242386","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":"Procedure abstraction recovery from binary code","authors":"C. Cifuentes, Doug Simon","doi":"10.1109/CSMR.2000.827306","DOIUrl":"https://doi.org/10.1109/CSMR.2000.827306","url":null,"abstract":"Binary translation (the automatic translation of executable programs from one machine to another) requires analyses and transformations that could be used in a wide variety of tools intended to reverse engineer binary codes. Our approach to binary translation, which is designed to allow both source and target machines to be changed at low cost, is based on a combination of machine descriptions, binary interface descriptions and machine-independent analyses. This paper deals with the recovery of high-level procedure calls from binary code (i.e. the recovery of parameters and return locations) in a machine-independent way. The use of a specification language called PAL (Procedure Abstraction Language) is described, as well as the machine-independent recovery analysis based on PAL. The work described in this paper has been integrated into UQBT (University of Queensland Binary Translator), which is a resourceable binary translation framework. Translations across binaries for SPARC/sup TM/, Pentium and Java/sup TM/ virtual machine architectures have been achieved.","PeriodicalId":169352,"journal":{"name":"Proceedings of the Fourth European Conference on Software Maintenance and Reengineering","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-02-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117334760","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":"What assembly language programmers get up to: control flow challenges in reverse compilation","authors":"A. Johnstone, E. Scott, Tim Womack","doi":"10.1109/CSMR.2000.827315","DOIUrl":"https://doi.org/10.1109/CSMR.2000.827315","url":null,"abstract":"The analysis of assembly code to provide a high-level control flow view in terms of the usual high-level looping and selection constructs is of great assistance to high-level language programmers who are attempting to understand and port low-level code as part of a system re-engineering project. This paper describes the control flow analyser component of our asm21toc reverse compiler from assembly language programs for the ADSP-21xx family of digital signal processors to ANSI C. We give a brief overview of the class of processors and programs that we have studied so as to motivate the design of our reverse compiler. We describe the merged call-graph/dataflow representation that supports our analyses and the way in which hierarchical structural control flow information is extracted and stored. We give summary statistics showing the usage of various classes of control flow structure, along with occurrences of non-disjoint functions, self-modifying code and non-reducible control flow constructs.","PeriodicalId":169352,"journal":{"name":"Proceedings of the Fourth European Conference on Software Maintenance and Reengineering","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-02-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116915928","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 use-case driven method of architecture recovery for program understanding and reuse reengineering","authors":"D. Bojic, D. Velasevic","doi":"10.1109/CSMR.2000.827302","DOIUrl":"https://doi.org/10.1109/CSMR.2000.827302","url":null,"abstract":"This work focuses on architectural recovery for program understanding and reuse reengineering of legacy object-oriented systems. The proposed method is based on dynamic analysis of the system for the selected test cases that cover relevant use cases. The theory of formal concept analysis is applied to decompose the logical hierarchy of subsystems, so that parts of the system which implement similar functionality are grouped together.","PeriodicalId":169352,"journal":{"name":"Proceedings of the Fourth European Conference on Software Maintenance and Reengineering","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-02-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131056390","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":"Identifying the starting impact set of a maintenance request: a case study","authors":"G. Antoniol, G. Canfora, G. Casazza, A. D. Lucia","doi":"10.1109/CSMR.2000.827331","DOIUrl":"https://doi.org/10.1109/CSMR.2000.827331","url":null,"abstract":"This paper deals with impact analysis and proposes a method based on information retrieval techniques to trace the text of a maintenance request onto the set of system components initially affected by the maintenance request. The correct identification of such components is crucial for the future design and implementation of the change. The paper also discusses results from a preliminary case study where two different information retrieval approaches have been used to retrieve the software documents relevant for a maintenance request.","PeriodicalId":169352,"journal":{"name":"Proceedings of the Fourth European Conference on Software Maintenance and Reengineering","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-02-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117012893","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":"Development, assessment, and reengineering of language descriptions","authors":"A. Sellink, C. Verhoef","doi":"10.1109/CSMR.2000.827323","DOIUrl":"https://doi.org/10.1109/CSMR.2000.827323","url":null,"abstract":"We discuss tools that aid in the development, the assessment and the reengineering of language descriptions. The assessment tools give an indication as to what is wrong with an existing language description, and give hints towards correction. From a correct and complete language description, it is possible to generate a parser, a manual, and online documentation. The parser is geared towards reengineering purposes but is also used to parse the examples that are contained in the documentation. The reengineered language description is a basic ingredient for a reengineering factory that can manipulate this language for real time embedded software systems that is used in telecommunications industry. The described tool support can also be used to develop a language standard without syntax error in the language description and its code examples.","PeriodicalId":169352,"journal":{"name":"Proceedings of the Fourth European Conference on Software Maintenance and Reengineering","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2000-02-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121158089","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}