{"title":"Evaluating Aspect Mining Techniques: A Case Study","authors":"C. Roy, M. G. Uddin, B. Roy, T. Dean","doi":"10.1109/ICPC.2007.21","DOIUrl":"https://doi.org/10.1109/ICPC.2007.21","url":null,"abstract":"Aspect mining aims at identifying cross-cutting concerns in existing systems and therefore advocates the adaption to an aspect-oriented design. This paper presents a case study examining three existing aspect mining techniques from the literature by applying them to four different open source Java applications. We compare and evaluate the individual technique and confirm the findings of a previous study of combining different aspect mining techniques in order to get better results with less manual intervention.","PeriodicalId":135871,"journal":{"name":"15th IEEE International Conference on Program Comprehension (ICPC '07)","volume":"101 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-06-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122350651","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":"Making the Code Look Like the Design - Aspects and Other Recent Work","authors":"G. Kiczales","doi":"10.1109/ICPC.2007.25","DOIUrl":"https://doi.org/10.1109/ICPC.2007.25","url":null,"abstract":"Summary form only given. The idea that programs should clearly reflect the design decisions they embody has a long history. Higher-level languages, syntactic macros, domain-specific languages, and intentional programming are different approaches to this common goal. Recent work from several areas, including aspect-oriented programming, has significantly advanced our ability to make code expressive. At the same time, it forces us to reconsider a number of basic assumptions, including what is a program, what is a module, what is a language, and what is an editor.","PeriodicalId":135871,"journal":{"name":"15th IEEE International Conference on Program Comprehension (ICPC '07)","volume":"102 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-06-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129060724","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}
Shehnaaz Yusuf, Huzefa H. Kagdi, Jonathan I. Maletic
{"title":"Assessing the Comprehension of UML Class Diagrams via Eye Tracking","authors":"Shehnaaz Yusuf, Huzefa H. Kagdi, Jonathan I. Maletic","doi":"10.1109/ICPC.2007.10","DOIUrl":"https://doi.org/10.1109/ICPC.2007.10","url":null,"abstract":"Eye-tracking equipment is used to assess how well a subject comprehends UML class diagrams. The results of a study are presented in which eye movements are captured in a non-obtrusive manner as users performed various comprehension tasks on UML class diagrams. The goal of the study is to identify specific characteristics of UML class diagrams, such as layout, color, and stereotype usage that are most effective for supporting a given task. Results indicate subjects have a variation in the eye movements (i.e., how the subjects navigate the diagram) depending on their UML expertise and software-design ability to solve the given task. Layouts with additional semantic information about the design were found to be most effective and the use of class stereotypes seems to play a substantial role in comprehension of these diagrams.","PeriodicalId":135871,"journal":{"name":"15th IEEE International Conference on Program Comprehension (ICPC '07)","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-06-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127322612","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":"Characterizing and Understanding Development Sessions","authors":"R. Robbes, Michele Lanza","doi":"10.1109/ICPC.2007.12","DOIUrl":"https://doi.org/10.1109/ICPC.2007.12","url":null,"abstract":"The understanding of development sessions, the phases during which a developer actively modifies a software system, is a valuable asset for program comprehension, since the sessions directly impact the current state and future evolution of a software system. Such information is usually lost by state-of-the-art versioning systems, because of the checkin/checkout model they rely on: a developer must explicitly commit his changes to the repository. Since this happens in arbitrary and sometimes long intervals, recovering the changes between two commits is difficult and inaccurate, and recovering the order of the changes is impossible. We have implemented an evolution monitoring prototype which records every semantic change performed on a system, and is able to completely reconstruct development sessions. In this paper we use this fine-grained information to understand and characterize the development sessions as they were carried out on two object-oriented systems.","PeriodicalId":135871,"journal":{"name":"15th IEEE International Conference on Program Comprehension (ICPC '07)","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-06-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122455280","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":"Tracking Objects to Detect Feature Dependencies","authors":"Adrian Lienhard, O. Greevy, Oscar Nierstrasz","doi":"10.1109/ICPC.2007.38","DOIUrl":"https://doi.org/10.1109/ICPC.2007.38","url":null,"abstract":"The domain-specific ontology of a software system includes a set of features and their relationships. While the problem of locating features in object-oriented programs has been widely studied, runtime dependencies between features are less well understood. Features cannot be understood in isolation, since their behavior often depends on objects created and referenced in previously exercised features. It is difficult to spot runtime dependencies between features just by browsing source code. Hence, code modifications intended for one feature, often inadvertently affect other features. In this paper, we propose an approach to precisely identify dependencies between features based on a fine-grained dynamic analysis which captures details about how objects are referenced at runtime. The results of two case studies indicate that our approach helps software maintainers in understanding critical feature dependencies.","PeriodicalId":135871,"journal":{"name":"15th IEEE International Conference on Program Comprehension (ICPC '07)","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-06-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125832205","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":"Interactive Views to Improve the Comprehension of UML Models - An Experimental Validation","authors":"Christian Lange, M. Chaudron","doi":"10.1109/ICPC.2007.23","DOIUrl":"https://doi.org/10.1109/ICPC.2007.23","url":null,"abstract":"Software development is becoming more and more model-centric. As a result models are used for a large variety of purposes, such as quality analysis, understanding, and maintenance. We argue that the UML and related existing tooling does not offer sufficient support to the developer to understand the models and evaluate their quality. We have proposed and implemented a collection of views to increase model understanding: MetaView, ContextView, MetricView, and UML-City-View. The purpose of this experiment is to validate whether there is a difference between the proposed views and the existing views with respect to comprehension correctness and comprehension effort. The comprehension task performed by the subjects was to answer a questionnaire about a model. 100 MSc students with relevant background knowledge have participated in the experiment. The results are statistically significant and show that the correctness is improved by 4.5% and that the time needed is reduced by 20%.","PeriodicalId":135871,"journal":{"name":"15th IEEE International Conference on Program Comprehension (ICPC '07)","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-06-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122237384","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}
Jay Kothari, T. Denton, A. Shokoufandeh, S. Mancoridis
{"title":"Reducing Program Comprehension Effort in Evolving Software by Recognizing Feature Implementation Convergence","authors":"Jay Kothari, T. Denton, A. Shokoufandeh, S. Mancoridis","doi":"10.1109/ICPC.2007.33","DOIUrl":"https://doi.org/10.1109/ICPC.2007.33","url":null,"abstract":"The implementations of software features evolve as an application matures. We define a measure of feature implementation overlap that determines how similar features are in their execution by examining their call graphs. We consider how this measure changes over time, and evaluate the hypothesis that over time and subsequent versions of a software application, the implementations of semantically similar features converge. As the features of an application converge in their implementation, we are able to more effectively determine groups of semantically similar features and to reduce the cost of program comprehension by selecting few key features that give an overview of the system. We present a case study analyzing the features of the Jext, Firefox, and Gaim software systems to support our hypothesis.","PeriodicalId":135871,"journal":{"name":"15th IEEE International Conference on Program Comprehension (ICPC '07)","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-06-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134011935","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 Bayesian Belief Networks to Predict Change Propagation in Software Systems","authors":"S. Mirarab, Alaa Hassouna, L. Tahvildari","doi":"10.1109/ICPC.2007.41","DOIUrl":"https://doi.org/10.1109/ICPC.2007.41","url":null,"abstract":"During software evolution, developers modify various modules to handle new requirements or to fix existing bugs. Such changes usually propagate to related modules throughout the system. Program comprehension techniques are able to predict this change propagation phenomenon. In this paper, we introduce a novel approach that predicts the possible affected system modules, given a change in the system. We use Bayesian Belief Networks as a probabilistic tool to make such predictions in a systematic way. This novel technique mainly relies on two sources of information: dependency metrics (calculated using static analysis) and change history extracted from a version control repository. We evaluate our approach by examining all significant revisions of Azureusl, an open-source Java system. The results show that the predicted change probabilities reflect actual module changes even in the early stages of the software development.","PeriodicalId":135871,"journal":{"name":"15th IEEE International Conference on Program Comprehension (ICPC '07)","volume":"56 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-06-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131342672","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}
Tommi Reinikainen, I. Hammouda, Juha Laiho, K. Koskimies, Tarja Systä
{"title":"Software Comprehension through Concern-based Queries","authors":"Tommi Reinikainen, I. Hammouda, Juha Laiho, K. Koskimies, Tarja Systä","doi":"10.1109/ICPC.2007.36","DOIUrl":"https://doi.org/10.1109/ICPC.2007.36","url":null,"abstract":"A concern-based approach to support software comprehension and analysis is proposed. Concerns represent various aspects of a system, like features, architectural solutions, units of work, etc., which are interesting for some stakeholders. Using concern-based queries on the software artefacts, new derived information on the system can be exposed. The results of the queries are also represented as concerns and added to the concern repository. The approach thus supports the analyzer in gradually building up an understanding on the subject system to be analyzed.","PeriodicalId":135871,"journal":{"name":"15th IEEE International Conference on Program Comprehension (ICPC '07)","volume":"52 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-06-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125282544","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 Hybrid Program Model for Object-Oriented Reverse Engineering","authors":"Michael W. Godfrey","doi":"10.1109/ICPC.2007.7","DOIUrl":"https://doi.org/10.1109/ICPC.2007.7","url":null,"abstract":"A commonly used strategy to address the scalability challenge in object-oriented reverse engineering is to synthesize coarse-grained representations, such as package diagrams. However, the traditional coarse-grained representations are poorly suited to object-oriented program comprehension as they can be difficult to map to the domain object models, contain little real detail, and provide few clues to the design decisions made during development. In this paper, we propose a hybrid model of object-oriented software that blends the use of classes and entities at different levels of granularity. Each coarse-grained entity represents a set of software objects, and contains the complete static description of the objects it represents. This hybrid model allows maintainers to understand objects as independent units, and focus on the their external properties and their interrelationships at different levels of granularity. We show the usefulness of the hybrid model to program comprehension by means of an exploratory case study.","PeriodicalId":135871,"journal":{"name":"15th IEEE International Conference on Program Comprehension (ICPC '07)","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2007-06-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125165034","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}