{"title":"Towards a Benchmark and Automatic Calibration for IR-Based Concept Location","authors":"Scott David Ohlemacher, Andrian Marcus","doi":"10.1109/ICPC.2011.56","DOIUrl":"https://doi.org/10.1109/ICPC.2011.56","url":null,"abstract":"There has been a great deal of research into the use of Information Retrieval (IR)-based techniques to support concept location in source code. Much of this research has been focused on determining how to use various IR techniques to support concept location. Very little attention has been given to the effect of different configurations of corpus building and indexing on query results. In this paper, we propose a tool designed to support large-scale studies of IR techniques in varying configurations of parameters with the intention of automatically calibrating these parameters. We also discuss preliminary efforts to create the benchmark data such studies require.","PeriodicalId":345601,"journal":{"name":"2011 IEEE 19th International Conference on Program Comprehension","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-06-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123786352","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}
Lile Hattori, Marco D'Ambros, Michele Lanza, M. Lungu
{"title":"Software Evolution Comprehension: Replay to the Rescue","authors":"Lile Hattori, Marco D'Ambros, Michele Lanza, M. Lungu","doi":"10.1109/ICPC.2011.39","DOIUrl":"https://doi.org/10.1109/ICPC.2011.39","url":null,"abstract":"Developers often need to find answers to questions regarding the evolution of a system when working on its code base. While their information needs require data analysis spanning over different repository types, the source code repository has a pivotal role for program comprehension tasks. However, the coarse-grained nature of the data stored by commit-based software configuration management systems often makes it challenging for a developer to search for an answer. We present Replay, an Eclipse plug-in that allows one to explore the change history of a system by capturing the changes at a finer granularity level than commits, and by replaying the past changes chronologically inside the integrated development environment with the source code at hand. We conducted a controlled experiment to empirically assess whether Replay outperforms a baseline (SVN client in Eclipse) on helping developers to answer common questions related to software evolution. The experiment shows that Replay leads to a decrease in completion time with respect to a set of software evolution comprehension tasks.","PeriodicalId":345601,"journal":{"name":"2011 IEEE 19th International Conference on Program Comprehension","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-06-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125144603","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":"Comparison of a Visual and a Textual Notation to Express Data Constraints in Aspect-Oriented Join Point Selections: A Controlled Experiment","authors":"Dominik Stein, Stefan Hanenberg","doi":"10.1109/ICPC.2011.9","DOIUrl":"https://doi.org/10.1109/ICPC.2011.9","url":null,"abstract":"Many language constructs have been brought forth by research in aspect-oriented software development which permit a succinct and abstract specification of join point selections (aka pointcuts). These language constructs are believed to improve the comprehensibility of the point cuts in comparison to their manually implemented counterparts. The case of comprehensibility gets undecided, though, if two notations permit to specify join point selection constraints in a likewise succinct and abstract manner. This paper reports on a controlled experiment which compares two notations to specify point cuts, i.e. Trace matches and Join Point Designation Diagrams, with respect to their ability to facilitate the comprehension of data constraints in join point selections. Two comprehension tasks are investigated on a basis of 28 point cuts in a three-factorial within-subject design with 35 participants. The experiment results show that JPDDs improve over Trace matches in most cases.","PeriodicalId":345601,"journal":{"name":"2011 IEEE 19th International Conference on Program Comprehension","volume":"59 9","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-06-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114035970","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":"Scalable Automatic Concept Mining from Execution Traces","authors":"Soumaya Medini","doi":"10.1109/ICPC.2011.44","DOIUrl":"https://doi.org/10.1109/ICPC.2011.44","url":null,"abstract":"Concept identification is the task of locating and identifying concepts (e.g., domain concepts) into code region or, more generally, into artifact chunks. Concept identification is fundamental to program comprehension, software maintenance, and evolution. Different static, dynamic, and hybrid approaches for concept identification exist in the literature. Both static and dynamic techniques have advantages and limitations. In fact, they can be considered to complement each other. Indeed, recent works focused on hybrid techniques to improve the performance in time as well as accuracy (i.e., precision and recall) of the concept location process. Furthermore, sometimes only a single execution trace is available, however, to the best of our knowledge, only few works attempt to automatically identify concepts in a single execution trace. We propose an approach built upon a dynamic-programming algorithm to split an execution trace into segments likely representing concepts. The approach improves performance and scalability with respect to currently available techniques. We also plan to use techniques derived from Latent Dirichlet Allocation (LDA)to automatically assign meanings to segments.","PeriodicalId":345601,"journal":{"name":"2011 IEEE 19th International Conference on Program Comprehension","volume":"76 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-06-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132457360","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}
Gabriella Tóth, Á. Végh, Árpád Beszédes, T. Gyimóthy
{"title":"Adding Process Metrics to Enhance Modification Complexity Prediction","authors":"Gabriella Tóth, Á. Végh, Árpád Beszédes, T. Gyimóthy","doi":"10.1109/ICPC.2011.41","DOIUrl":"https://doi.org/10.1109/ICPC.2011.41","url":null,"abstract":"Software estimation is used in various contexts including cost, maintainability or defect prediction. To make the estimate, different models are usually applied based on attributes of the development process and the product itself. However, often only one type of attributes is used, like historical process data or product metrics, and rarely their combination is employed. In this report, we present a project in which we started to develop a framework for such complex measurement of software projects, which can be used to build combined models for different estimations related to software maintenance and comprehension. First, we performed an experiment to predict modification complexity (cost of a unity change) based on a combination of process and product metrics. We observed promising results that confirm the hypothesis that a combined model performs significantly better than any of the individual measurements.","PeriodicalId":345601,"journal":{"name":"2011 IEEE 19th International Conference on Program Comprehension","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-06-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132809800","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":"Is Aspect-Oriented Programming a Rewarding Investment into Future Code Changes? A Socio-technical Study on Development and Maintenance Time","authors":"Stefan Endrikat, Stefan Hanenberg","doi":"10.1109/ICPC.2011.46","DOIUrl":"https://doi.org/10.1109/ICPC.2011.46","url":null,"abstract":"Aspect-oriented programming (AOP) is commonly assumed to be a technique which improves the resulting software with respect to modularity. However, previous empirical experiments suggest that AOP is with respect to development or maintenance time either a technique without a measurable benefit or a technique with a measurable negative effect. A possible reason why previous experiments were not able to show such a benefit is, that those experiments did not consider situations where AOP has its strength: situations where modules need to be frequently changed. In those situations AOP might be able to compensate a possible higher initial development effort. This paper describes an empirical, socio-technical study with Java and AspectJ where developers needed to perform changes on their code base multiple times. It shows that frequent changes in the crosscutting code which do not change the concern's underlying structure compensate an initial higher development time for those concerns. But it also shows that changes, which do alter the concern's structure again result in higher development times when using AOP.","PeriodicalId":345601,"journal":{"name":"2011 IEEE 19th International Conference on Program Comprehension","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-06-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130724321","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":"Anomaly Detection by Monitoring Filesystem Activities","authors":"Liang Huang, Kenny Wong","doi":"10.1109/ICPC.2011.23","DOIUrl":"https://doi.org/10.1109/ICPC.2011.23","url":null,"abstract":"Software diagnosis in enterprise systems is an expensive, largely manual process. It significantly contributes to the increasing costs in IT management, because it takes time and expertise for system administrators to notice an anomalous state due to the information overload generated by the many components in such systems. In this paper, we propose an unsupervised approach for anomaly detection using the monitored application's run-time behaviors. These behaviors, represented by the state of the file system and how files are accessed when the system is running normally, serve as a baseline. An alert is generated when behaviors that significantly deviate from the baseline appear, and a starting point of investigation is provided to assist the human operators in understanding the context of the problem.","PeriodicalId":345601,"journal":{"name":"2011 IEEE 19th International Conference on Program Comprehension","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-06-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132409498","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}
Anja Guzzi, Lile Hattori, Michele Lanza, M. Pinzger, A. Deursen
{"title":"Collective Code Bookmarks for Program Comprehension","authors":"Anja Guzzi, Lile Hattori, Michele Lanza, M. Pinzger, A. Deursen","doi":"10.1109/ICPC.2011.19","DOIUrl":"https://doi.org/10.1109/ICPC.2011.19","url":null,"abstract":"The program comprehension research community has been developing useful tools and techniques to support developers in the time-consuming activity of understanding software artifacts. However, the majority of the tools do not bring collective benefit to the team: After gaining the necessary understanding of an artifact (e.g., using a technique based on visualization, feature localization, architecture reconstruction, etc.), developers seldom document what they have learned, thus not sharing their knowledge. We argue that code bookmarking can be effectively used to document a developer's findings, to retrieve this valuable knowledge later on, and to share the findings with other team members. We present a tool, called Pollicino, for collective code bookmarking. To gather requirements for our bookmarking tool, we conducted an online survey and interviewed professional software engineers about their current usage and needs of code bookmarks. We describe our approach and the tool we implemented. To assess the tool's effectiveness, adequacy, and usability, we present an exploratory pre-experimental user study we have performed with 11 participants.","PeriodicalId":345601,"journal":{"name":"2011 IEEE 19th International Conference on Program Comprehension","volume":"94 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-06-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130099954","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 Systematic Analysis of Software Architecture Visualization Techniques","authors":"Zohreh Sharafi","doi":"10.1109/ICPC.2011.40","DOIUrl":"https://doi.org/10.1109/ICPC.2011.40","url":null,"abstract":"The visualization of software systems allows a software developer to build a mental model of the program supporting her to better understand its design and functionality. This research aims at studying current visualization techniques and practices to propose a set of principles for designing effective software architecture visualization techniques, focusing on their support for program comprehension. The research will be carried out in three main phases. First, we will complement current works by proposing a taxonomy of visualization techniques. The second contribution will be to identify different requirements and characteristics of architecture visualization techniques. Finally, to evaluate software visualization's usability and effectiveness in practice, we will measure the performance of developers in terms of their percentage of the correct answers and effort developers spend to answer given questions. To compute the developer's effort, we will use eye-tracker's data.","PeriodicalId":345601,"journal":{"name":"2011 IEEE 19th International Conference on Program Comprehension","volume":"98 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-06-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123078751","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}
Salima Hassaine, F. Boughanmi, Yann-Gaël Guéhéneuc, Sylvie Hamel, G. Antoniol
{"title":"Change Impact Analysis: An Earthquake Metaphor","authors":"Salima Hassaine, F. Boughanmi, Yann-Gaël Guéhéneuc, Sylvie Hamel, G. Antoniol","doi":"10.1109/ICPC.2011.54","DOIUrl":"https://doi.org/10.1109/ICPC.2011.54","url":null,"abstract":"Impact analysis is crucial to make decisions among different alternative implementations and to anticipate future maintenance tasks. Several approaches were proposed to identify software artefacts being affected by a change. However, to the best of our knowledge, none of these approaches have been used to study the scope of changes in a program. Yet, this information would help developers assess their change efforts and perform more adequate changes. Thus, we present a metaphor inspired by seismology and propose a mapping between the concepts of seismology and software evolution. We show the applicability and usefulness of our metaphor using Rhino and Xerces-J.","PeriodicalId":345601,"journal":{"name":"2011 IEEE 19th International Conference on Program Comprehension","volume":"319 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-06-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120943899","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}