{"title":"The Experimental Paradigm in Reverse Engineering: Role, Challenges, and Limitations","authors":"L. Briand","doi":"10.1109/WCRE.2006.53","DOIUrl":"https://doi.org/10.1109/WCRE.2006.53","url":null,"abstract":"In many areas of software engineering, empirical studies are playing an increasingly important role. This stems from the fact that software technologies are often based on heuristics and are moreover expected to be used in processes where human intervention is paramount. As a result, not only it is important to assess their cost-effectiveness under conditions that are as realistic and representative as possible, but we must also understand the conditions under which they are more suitable and applicable. There exists a wealth of empirical methods aimed at maximizing the validity of results obtained through empirical studies. However, in the case of reverse engineering, as for other domains of investigation, researchers and practitioners are faced with specific constraints and challenges. This is the focus of this keynote address and what the current paper attempts to clarify","PeriodicalId":306640,"journal":{"name":"2006 13th Working Conference on Reverse Engineering","volume":"222 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134450748","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":"Bits of History, Challenges for the Future and Autonomic Computing Technology","authors":"H. Müller","doi":"10.1109/WCRE.2006.16","DOIUrl":"https://doi.org/10.1109/WCRE.2006.16","url":null,"abstract":"Over the past fifteen years, the software reverse engineering community has produced many software engineering methods, tools, and techniques that have had significant impact in the software industry. After a research area has evolved for 10-20 years, it can easily fade away due to narrow focus, overgrazing, or lack of impact. Trying to assess the impact of various approaches and results in a research area is difficult - but worthwhile. Taking a step back and looking at a research area from new perspectives is probably easier and can be invigorating. The lessons learned from such exercises may result in new research challenges, foster cross-fertilization among research areas, and shape the focus of the research communities. Inspired by several recent studies that assess the field of software engineering as a whole to define research agendas and funding policies, the author discuss several new perspectives on the problem of continuous software evolution that will hopefully inspire the reverse engineering community. The author then advocate that we need to push monitoring of evolving systems to unprecedented levels to be able to observe and possibly orchestrate their continuous evolution in a complex and changing environment. The author then suggest to instrument evolving software-intensive systems with autonomic elements, using reverse engineering techniques, to enhance their monitoring and assessment capabilities","PeriodicalId":306640,"journal":{"name":"2006 13th Working Conference on Reverse Engineering","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123085696","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":"Program COmprehension through Dynamic Analysis","authors":"A. Zaidman, O. Greevy, A. Hamou-Lhadj","doi":"10.1109/WCRE.2006.45","DOIUrl":"https://doi.org/10.1109/WCRE.2006.45","url":null,"abstract":"Software maintenance and evolution can be made easier with program comprehension techniques. The aim of this workshop is to gather together researchers working in the area of program comprehension with an emphasis on dynamic analysis. We are interested in investigating how dynamic analysis techniques are or can be used to enable better comprehension of a software system. The objective is to find common case studies, compare existing techniques, and find possible symbioses for existing solutions. Building upon the previous edition of the workshop, PCODA 2005, we aim to set up a forum for exchanging experiences, discussing solutions, and exploring new ideas.","PeriodicalId":306640,"journal":{"name":"2006 13th Working Conference on Reverse Engineering","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128574463","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}
F. Fontana, C. Raibulet, Yann-Gaël Guéhéneuc, G. Antoniol, J. Smith
{"title":"Design Pattern Detection for Reverse Engineering","authors":"F. Fontana, C. Raibulet, Yann-Gaël Guéhéneuc, G. Antoniol, J. Smith","doi":"10.1109/WCRE.2006.23","DOIUrl":"https://doi.org/10.1109/WCRE.2006.23","url":null,"abstract":"The main goal of the workshop is to address the issues related to design patterns identification for design recovery focusing on the role of the reverse engineering in identifying the sub-elements of the design patterns that can improve their detection.","PeriodicalId":306640,"journal":{"name":"2006 13th Working Conference on Reverse Engineering","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122052491","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 Service-Oriented Componentization Framework for Java Software Systems","authors":"Shimin Li, L. Tahvildari","doi":"10.1109/WCRE.2006.7","DOIUrl":"https://doi.org/10.1109/WCRE.2006.7","url":null,"abstract":"In the fast growing global market for services, service-oriented computing has drastically changed the way in which we develop software systems. Providing competitive services to these markets will be critical to the success of businesses and organizations. Some competitive services have already been implemented in existing systems. In this paper, we present a novel service-oriented componentization framework that automatically supports: i) identifying critical business services embedded in an existing Java system by utilizing graph representations of the system models, ii) realizing each identified service as a self-contained component that can be deployed as a single unit, and iii) transforming the object-oriented design into a service-oriented architecture. A toolkit implementing our framework has been developed as an Eclipse rich client platform (RCP). Our initial evaluation has shown that our framework is effective in identifying services from an object-oriented design and migrating it to a service-oriented architecture","PeriodicalId":306640,"journal":{"name":"2006 13th Working Conference on Reverse Engineering","volume":"47 2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122231856","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":"An Analysis of the Correctness and Completeness of Aspect Weaving","authors":"Günter Kniesel, Uwe Bardey","doi":"10.1109/WCRE.2006.10","DOIUrl":"https://doi.org/10.1109/WCRE.2006.10","url":null,"abstract":"Jointly deployed aspects may interact with each other. While some interactions might be intended, unintended interactions (interferences) can break a program. Detecting and resolving interferences is particularly hard if aspects are developed independently, without knowledge of each other. Work on interference detection has focused so far on the correctness of weaved programs. In this paper we focus on the correctness and completeness of aspect weaving. We show that a large class of interferences result from incorrect or incomplete weaving and present a language independent correctness, and completeness. Our technique can check aspect interferences independent of any base program and is applicable to aspects that contain implicit mutual dependencies in their implementation, without needing special purpose program annotations or formal specifications of aspect semantics","PeriodicalId":306640,"journal":{"name":"2006 13th Working Conference on Reverse Engineering","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128030111","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":"CPP2XMI: Reverse Engineering of UML Class, Sequence, and Activity Diagrams from C++ Source Code","authors":"E. Korshunova, M. Petković, M. Brand, M. Mousavi","doi":"10.1109/WCRE.2006.21","DOIUrl":"https://doi.org/10.1109/WCRE.2006.21","url":null,"abstract":"In most cases, reverse engineering is used to retrieve missing design documentation from the source code in the form of an abstract (e.g., UML) model. In the context of this work, reverse engineering is used as a part of the verification and validation chain of software systems, where the static structure and the dynamic behavior of a system are derived from the source code and represented in XML Metadata Interchange (XMI) format. The obtained model is further analyzed for such characteristics as soundness and complexity of the system. XMI is a standard that enables us to express objects using Extensible Markup Language (XML). XMI can be used to represent objects from UML model in XML. In this paper, we describe a reverse engineering tool, CPP2XMI, which allows extracting UML class, sequence, and activity diagrams in XMI format from C++ source code, and its position in the toolset for software system analysis","PeriodicalId":306640,"journal":{"name":"2006 13th Working Conference on Reverse Engineering","volume":"327 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127636231","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":"Animated Visualization of Software History using Evolution Storyboards","authors":"Dirk Beyer, A. Hassan","doi":"10.1109/WCRE.2006.14","DOIUrl":"https://doi.org/10.1109/WCRE.2006.14","url":null,"abstract":"The understanding of the structure of a software system can be improved by analyzing the system's evolution during development. Visualizations of software history that provide only static views do not capture the dynamic nature of software evolution. We present a new visualization technique, the Evolution Storyboard, which provides dynamic views of the evolution of a software's structure. An evolution storyboard consists of a sequence of animated panels, which highlight the structural changes in the system; one panel for each considered time period. Using storyboards, engineers can spot good design, signs of structural decay, or the spread of cross cutting concerns in the code. We implemented our concepts in a tool, which automatically extracts software dependency graphs from version control repositories and computes storyboards based on panels for different time periods. For applying our approach in practice, we provide a step by step guide that others can follow along the storyboard visualizations, in order to study the evolution of large systems. We have applied our method to several large open source software systems. In this paper, we demonstrate that our method provides additional information (compared to static views) on the ArgoUML project, an open source UML modeling tool","PeriodicalId":306640,"journal":{"name":"2006 13th Working Conference on Reverse Engineering","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130517061","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":"Case Studies for Reverse Engineers","authors":"S. Sim","doi":"10.1109/WCRE.2006.17","DOIUrl":"https://doi.org/10.1109/WCRE.2006.17","url":null,"abstract":"Case studies are an empirical method with established design principles for conducting scientific investigations. The topic of this half-day tutorial was to give an introduction to case studies as an empirical research method. Our goal is to bring attention to this method as an option in the pantheon of empirical methods.","PeriodicalId":306640,"journal":{"name":"2006 13th Working Conference on Reverse Engineering","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130235819","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}
D. Ganesan, Dirk Muthig, J. Knodel, Kentaro Yoshimura
{"title":"Discovering Organizational Aspects from the Source Code History Log during the Product Line Planning Phase--A Case Study","authors":"D. Ganesan, Dirk Muthig, J. Knodel, Kentaro Yoshimura","doi":"10.1109/WCRE.2006.24","DOIUrl":"https://doi.org/10.1109/WCRE.2006.24","url":null,"abstract":"How to introduce software product line engineering (PLE) in the presence of existing stand-alone similar systems remains a challenging question for many organizations. This paper reports on a reverse engineering approach to understanding the organizational aspects during the product line planning phase. The organizational aspects include domain expert identification, understanding the organization's development or team structure, and predicting the existing product architecture using the organization's architecture. In addition, this paper highlights how the source code change history log provides valuable data for various product line related activities, such as scoping, architecture evaluation, reengineering towards product line and project management in the product line context. The proposed approach is validated by means of the engine control systems of Hitachi. The results show that change history can be used to identify experts of the system or components, among other things","PeriodicalId":306640,"journal":{"name":"2006 13th Working Conference on Reverse Engineering","volume":"30 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116141878","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}