{"title":"A case for concept programs","authors":"R. Schauer, R. Keller","doi":"10.1109/ICPC.2009.5090053","DOIUrl":"https://doi.org/10.1109/ICPC.2009.5090053","url":null,"abstract":"The verifiability principle of meaning holds that information is meaningful only if there is a procedure that can verify whether it is true or false. In this paper, we explore this principle of philosophy in the realm of program comprehension. We introduce the notion of concept programs, which are independent, executable, and thus verifiable units of program knowledge. Concept programs are well-suited for the comprehension and explanation of the central mechanisms that underlie a complex program. We use an industrial case study to motivate the importance of concept programs for the comprehension of the innermost complexity of industrial programs.","PeriodicalId":381580,"journal":{"name":"2009 IEEE 17th International Conference on Program Comprehension","volume":"160 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-06-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114429903","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 exploratory study on assessing feature location techniques","authors":"Meghan Revelle, D. Poshyvanyk","doi":"10.1109/ICPC.2009.5090045","DOIUrl":"https://doi.org/10.1109/ICPC.2009.5090045","url":null,"abstract":"This paper presents an exploratory study of ten feature location techniques that use various combinations of textual, dynamic, and static analyses. Unlike previous studies, the approaches are evaluated in terms of finding multiple relevant methods, not just a single starting point of a feature's implementation. Additionally, a new way of applying textual analysis is introduced by which queries are automatically composed of the identifiers of a method known to be relevant to a feature. Our results show that this new type of query is just as effective as a query formulated by a human. We also provide insights into situations when certain feature location approaches work well and fall short. Our results and observations can be used to guide future research on feature location.","PeriodicalId":381580,"journal":{"name":"2009 IEEE 17th International Conference on Program Comprehension","volume":"148 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114375795","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":"TDD = too dumb developers? Implications of Test-Driven Development on maintainability and comprehension of software","authors":"Marco Torchiano, A. Sillitti","doi":"10.1109/ICPC.2009.5090058","DOIUrl":"https://doi.org/10.1109/ICPC.2009.5090058","url":null,"abstract":"Test-Driven Development (TDD) is a development discipline prescribing writing tests beforehand writing the implementation code, which then shall pass the tests. Several criticisms addressed TDD's capability of delivering well-structured code, mainly because of the short focus on the features needed right now without much looking forward. So the main threat possibly introduced by TDD lies in the lack of maintainability and evolvability of the resulting system. The goal of the working session is to gather opinions, studies, and mostly experiences related to the maintenance implications of TDD adoption. The working session will be organized around position papers presented and discussed by the participants.","PeriodicalId":381580,"journal":{"name":"2009 IEEE 17th International Conference on Program Comprehension","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131214034","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":"Profile-based type reconstruction for decompilation","authors":"K. Troshina, A. Chernov, A. Fokin","doi":"10.1109/ICPC.2009.5090054","DOIUrl":"https://doi.org/10.1109/ICPC.2009.5090054","url":null,"abstract":"Decompilation is reconstruction of a program in a high-level language from a program in a low-level language. In most cases static decompilation is unable to completely reconstruct high-level data types due to loss of typing information during compilation. We present several profile-based techniques that help to recover high-level types. The techniques include pointer/integer determination by value profiling and composite type identification by heap profiling.","PeriodicalId":381580,"journal":{"name":"2009 IEEE 17th International Conference on Program Comprehension","volume":"132 ","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133818184","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":"Intensions are a key to program comprehension","authors":"V. Rajlich","doi":"10.1109/ICPC.2009.5090022","DOIUrl":"https://doi.org/10.1109/ICPC.2009.5090022","url":null,"abstract":"The classical comprehension theories study relations between extensions, intensions, and names. Originally developed in linguistics and mathematics, these theories are applicable to program comprehension as well. While extensions are present in the program, the intensions are usually missing, and evolution and maintenance programmers have to recover them as the program cannot be successfully comprehended and changed without them.","PeriodicalId":381580,"journal":{"name":"2009 IEEE 17th International Conference on Program Comprehension","volume":"317 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115444556","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":"OGAN: Visualizing object interaction scenarios based on dynamic interaction context","authors":"M. Satoshi, T. Ishio, Katsuro Inoue","doi":"10.1109/ICPC.2009.5090059","DOIUrl":"https://doi.org/10.1109/ICPC.2009.5090059","url":null,"abstract":"Visualizing an execution trace of an object-oriented system as sequence diagrams is effective to understand the behavior of the system. To support developers to understand concrete interaction among classes, our tool named OGAN extracts sequence diagrams representing interaction scenarios for a pair of classes specified by a user. OGAN classifies objects into groups based on their neighbor classes that directly interact with the objects, and visualizes interaction scenarios for each pair of object groups.","PeriodicalId":381580,"journal":{"name":"2009 IEEE 17th International Conference on Program Comprehension","volume":"77 6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126135121","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 spoken text to aid debugging: An empirical study","authors":"A. Stefik, Ed Gellenbeck","doi":"10.1109/ICPC.2009.5090034","DOIUrl":"https://doi.org/10.1109/ICPC.2009.5090034","url":null,"abstract":"Comprehending and debugging computer programs are inherently difficult tasks. The current approach to building program execution and debugging environments is to use exclusively visual stimuli. We present an alternative: the Sonified Omniscient Debugger (SOD), a program execution and debugging environment designed to output carefully chosen spoken auditory cues to supplement visual stimuli. Originally designed for the blind, earlier work suggested that SOD may benefit sighted programmers as well. We evaluate the SOD environment in a formal debugging experiment comparing 1) a visual debugger, 2) an auditory debugger, and 3) a multimedia debugger, which includes both the visual and auditory stimuli. Our results indicate that while auditory debuggers on their own are significantly less effective for sighted users when compared with visual and multimedia debuggers, multimedia debuggers might benefit sighted programmers under certain circumstances. Specifically, we found that while multimedia debuggers do not provide instant usability, once programmers have some practice, their performance improves under certain metrics.","PeriodicalId":381580,"journal":{"name":"2009 IEEE 17th International Conference on Program Comprehension","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128436554","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":"Proposing a visual approach to support the characterization of software comprehension activities","authors":"G. Carneiro, Manoel G. Mendonça, R. Magnavita","doi":"10.1109/ICPC.2009.5090063","DOIUrl":"https://doi.org/10.1109/ICPC.2009.5090063","url":null,"abstract":"Modern IDE provides several resources to visually represent and explore the software. Nonetheless, there is limited empirical evidence of how those resources are utilized in specific software engineering activities. This has led to several studies to characterize the usage of IDE resources. The majority of these studies rely on methods that are costly and time consuming. This paper proposes a visual approach to help the characterization of IDE usage during software maintenance activities. It works by gathering data for all primitive operations performed by the programmers on the IDE, registering it in a log file and presenting the information abstracted from this log in an interactive visual interface. The interface transforms the fine-grained log data into meaningful information to represent how programmers use the IDE resources.","PeriodicalId":381580,"journal":{"name":"2009 IEEE 17th International Conference on Program Comprehension","volume":"270 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121355685","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. Murphy, Petcharat Viriyakattiyaporn, D. Shepherd
{"title":"Using activity traces to characterize programming behaviour beyond the lab","authors":"G. Murphy, Petcharat Viriyakattiyaporn, D. Shepherd","doi":"10.1109/ICPC.2009.5090031","DOIUrl":"https://doi.org/10.1109/ICPC.2009.5090031","url":null,"abstract":"Systematically improving the efficiency of programmers requires understanding what activities occur during programming, which activities are inefficient and then assessing languages, tools and processes proposed to improve the situation. Conducting the experiments required to support a systematic approach is difficult for many reasons, including the lack of availability of experienced programmers and the common belief that individual programmer effectiveness varies greatly. In this paper, we investigate whether generic activity traces of how a programmer interacts with a development environment can help bridge between results gathered in the lab with how programming occurs in the field. We describe the kinds of information that can be gleaned from activity traces, consider whether positive indication of a behaviour seen in the lab translates to data collected from the field, and discuss challenges with gathering appropriate data and with using gathered data appropriately.","PeriodicalId":381580,"journal":{"name":"2009 IEEE 17th International Conference on Program Comprehension","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133624652","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":"Design pattern directed clustering for understanding open source code","authors":"Zhixiong Han, Linzhang Wang, Liqian Yu, Xin Chen, Jianhua Zhao, Xuandong Li","doi":"10.1109/ICPC.2009.5090065","DOIUrl":"https://doi.org/10.1109/ICPC.2009.5090065","url":null,"abstract":"Program understanding plays an important role in the maintenance and reuse of open source code. Rapid evolving and bad documentation makes the understanding and reusing difficult. Design patterns are widely employed in the open source code. In this paper, we propose a design pattern directed clustering approach to help understand the structure of open source code. According to the approach, we have implemented a prototype tool. We also conducted an experiment on an open source system to evaluate it.","PeriodicalId":381580,"journal":{"name":"2009 IEEE 17th International Conference on Program Comprehension","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2009-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126453744","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}