Journal Papers
Orla Greevy, Stephane Ducasse and Tudor Girba Analyzing Software Evolution through Feature Views 2005 International Journal of Software Maintenance and Evolution: Research and Practice
Abstract: Features encapsulate the domain knowledge of a software system and thus are valuable sources of information for a reverse engineer. When analyzing the evolution of a system, we need to know how and which features were modified to recover both the change intention and its extent, namely which source artifacts are affected. Typically, the implementation of a feature crosscuts a number of source artifacts. To obtain a mapping between features to the source artifacts, we exercise the features and capture their execution traces. However this results in large traces that are difficult to interpret. To tackle this issue we compact the traces into simple sets of source artifacts that participate in a feature's runtime behavior. We refer to these compacted traces as feature views. Within a feature view, we partition the source artifacts into disjoint sets of characterized software entities. The characterization defines the level of participation of a source entity in the features. We then analyze the features over several versions of a system and we plot their evolution to reveal how and hich features were affected by changes in the code. We show the usefulness of our approach by applying it to a case study where we address the problem of merging parallel development tracks of the same system.
Bib entry: @inproceedings{Gree06b, author = {Orla Greevy and St\'ephane Ducasse and Tudor G\^irba}, title = {Analyzing Software Evolution through Feature Views}, booktitle = {International Journal on Software Maintenance and Evolution: Research and Practice}, year = {2006} }
Conference Papers
David Roethlisberger, Orla Greevy and Oscar Nierstrasz Exploiting Runtime Information in the IDE 2008 ICPC '08 (16th International Conference on Program Comprehension), IEEE Computer Society Press
Adrian Lienhard, Tudor Girba, Orla Greevy and Oscar Nierstrasz Test Blueprints - Exposing Side Effects in Execution Traces to Support Writing Unit Tests 2008 CSMR '08 (12th European Conference on Software Maintenance and Re-Engineering), IEEE Computer Society Press
David Roethlisberger, Orla Greevy and Oscar Nierstrasz Feature Driven Browsing, in Proceedings of ESUG, August 2007. 2007 ESUG 2007
Adrian Lienhard, Orla Greevy and Oscar Nierstrasz Tracking Objects to detect Feature Dependencies, in Proceedings of ICPC, June 2007. 2007 ICPC 2007
Orla Greevy, Tudor Girba and Stephane Ducasse How Developers develop Features, in Proceedings of CSMR, March 2007. 2007 CSMR 2007
Orla Greevy, Michele Lanza and Christoph Wysseier Visualizing Live Software in 3D, in Proceedings of ACM Symposium on Software Visualization (SoftVis 2006), ACM, September 2006. 2006 SoftVis 2006
Adrian Kuhn and Orla Greevy Exploiting the Analogy Between Traces and Signal Processing,in Proceedings of International Conference on Software Maintenance (ICSM 2006), IEEE Computer Society Press, September 2006. 2006 ICSM 2006
Orla Greevy, Stephane Ducasse and Tudor Girba Analyzing Feature Traces to Incorporate the Semantics of Change in Software Evolution Analysis 2005 ICSM 2005 pdf
Abstract: Many of the approaches that analyze software evolution consider a static perspective of a system. Static analysis approaches focus on the evolution of static software entities such as packages, classes and methods. Without knowledge of the roles software entities play in system features, it is difficult to interpret the motivation behind changes and extensions in the code. To tackle this problem, we propose an approach to software evolution analysis that exploits the relationships between features and software entities. Our definition of a feature is a unit of observable behavior of a software system. We define history measurements that summarize the evolution of software entities from a feature perspective. We show how we use our feature perspective of software evolution to interpret modifications and extensions to the code. We apply our approach on two case studies and discuss our findings.
Bib entry: @inproceedings{Gree05c, author = {Orla Greevy and St\'ephane Ducasse and Tudor G\^irba}, title = {Analyzing Feature Traces to Incorporate the Semantics of Change in Software Evolution Analysis}, booktitle = {Proceedings of ICSM 2005 (21th International Conference on Software Maintenance)}, year = {2005}, month = sep, pages = {347--356}, keywords = {scg-pub greevy jb05 stefPub Feature Feature-Traces Dynamic Analysis Evolution history greevy}, }
Orla Greevy and Stephane Ducasse Correlating Features and Code - a Two-Sided Approach 2005.03.24 CSMR 2005 pdf
Abstract: Software developers are constantly required to modify and adapt features of an application in response to changing requirements. The problem is that just by reading the source code, it is difficult to determine how classes and methods contribute to the runtime behavior of features. Moreover, dependencies between system features are not obvious, consequently software maintenance operations often result in unintended side effects. To tackle these problems, we propose a compact feature-driven approach (\ie summarized trace information) based on dynamic analysis to characterize features and computational units of an application. We extract execution traces to achieve an explicit mapping between features and classes using two complementary perspectives. We apply our approach to two case studies and we report our findings.
Bib entry: @inproceedings{Gree05a, author = {Orla Greevy and St\'ephane Ducasse}, title = {Correlating Features and Code Using A Compact Two-Sided Trace Analysis Approach}, booktitle = {Proceedings of CSMR 2005 (9th European Conference on Software Maintenance and Reengineering}, publisher = {IEEE Computer Society Press}, year = {2005}, pages = {314--323}, url = {http://www.iam.unibe.ch/~scg/Archive/Papers/Gree05aCSMR2005Features.pdf} }
Workshop Papers
Orla Greevy Dynamix - a Meta-model to Support Feature-Centric Analysis 07.2007 FAMOOSR 2007 (1st International Workshop on FAMIX)
Adrian Lienhard, Adrian Kuhn and Orla Greevy Rapid Prototyping of Visualizations using Mondrian 06.2007 Vissoft International Workshop
Marcus Denker, Orla Greevy and Michele Lanza Higher Abstractions for Dynamic Analysis 10.2006 PCODA 2006 (2nd International Workshop on Program Comprehension through dynamic analysis)
Adrian Kuhn and Orla Greevy Summarizing Traces as Signals in Time 10.2006 PCODA 2006 (2nd International Workshop on Program Comprehension through dynamic analysis)
Bib entry:
Adrian Kuhn, Orla Greevy and Tudor Girba Applying Semantic Analysis to Feature Execution Traces 11.2005 PCODA 2005 (Ist International Workshop on Program Comprehension through dynamic analysis)
Abstract: Recently there has been a revival of interest in feature analysis of software systems. Approaches to feature location have used a wide range of techniques such as dynamic analysis, static analysis, information retrieval and formal concept analysis. In this paper we introduce a novel approach to analyze the execution traces of features using Latent Semantic Indexing (LSI). Our goal is twofold. On the one hand we detect similarities between features based on the content of their traces, and on the other hand we categorize classes based on the frequency of the outgoing invocations involved in the traces. We apply our approach on two case studies and we discuss its benefits and drawbacks.
Bib entry:
Markus Gaelli, Orla Greevy and Oscar Nierstrasz Composing Unit Tests 09.2005 SPLiT 2005 (2nd International Workshop on Software Productline Testing) pdf
Abstract: If we were to apply the testing techniques of ob ject-oriented systems prescribed by the XUnit framework to a car factory, the result would be an inefficient process: A tire would be created, quality assured and then thrown away, only to be recreated later to test the functionality of the whole car. XUnit makes it difficult to reuse intermediate results of low level unit tests. As a consequence a higher level unit test is forced to recreate test scenarios which were already created by lower level unit tests. This duplicated testing effort is time-consuming both for setting up new sce- narios and for running the tests. To address this problem we suggest a semi-automatic approach to compose tests. First we describe how we can detect candidates of composable test cases by partially ordering their sets of covered method signatures, then we present techniques to refactor unit tests accordingly.
Bib entry:
Orla Greevy, Michele Lanza and Christoph Wysseier Visualizing Feature Interaction in 3-D 09.2005 Vissoft 2005 pdf
Abstract: Without a clear understanding of how features of a software system are implemented, a maintenance change in one part of the code may risk adversely affecting other features. Feature implementation and relationships between features are not explicit in the code. To address this problem, we propose an interactive 3D visualization technique based on a combination of static and dynamic analysis which enables the software developer to step through visual representations of execution traces. We visualize dynamic behaviors of execution traces in terms of object creations and interactions and represent this in the context of a static class-hierarchy view of a system. We describe how we apply our approach to a case study to visualize and identify common parts of the code that are active during feature execution.
Bib entry:
Orla Greevy and Stephane Ducasse Characterizing the Functional Roles of Classes and Methods by Analyzing Feature Traces 07.2005 WOOR 2005 pdf
Abstract: Software developers are often faced with the task of maintaining or extending large and complex applications, with which they are unfamiliar. Typically change requests and bug reports are expressed in terms of system features. Much of the maintenance effort is spent trying to identify which classes and methods provide functionality to individual features. To tackle this problem, we propose an approach based on dynamic analysis that exploits the relationships between features and software entities. Our definition of a feature is a unit of observable behavior of a software system. We apply our approach to large open source application and identify the key classes and methods which provide functionality for individual features.
Bib entry: @inproceedings{Gree05b, author = {Orla Greevy and St\'ephane Ducasse}, title = {Characterizing the Functional Roles of Classes and Methods by Analyzing Feature Traces}, booktitle = {Proceedings of WOOR 2005 (6th International Workshop on Object-Oriented Reengineering)}, year = {2005}, month = jul, keywords = {scg-pub greevy jb05 stefPub Feature Feature-Traces Dynamic Analysis Evolution greevy} }
Workshops
Andy Zaidman and Abdelwahab Hamou-Lhadj and Orla Greevy PCODA - Program Comprehension through Dynamic Analysis 2005 WCRE 2005
Andy Zaidman and Abdelwahab Hamou-Lhadj and Orla Greevy PCODA - Program Comprehension through Dynamic Analysis 2006 WCRE 2006
Abstract: Workshop proposal submitted to WCRE 2006. Without consistent or adequately complete documentation, maintainers are faced with the inevitable problem of understanding how the system is implemented prior to undertaking any maintenance task. Research into the discipline of program comprehension aims to reduce the impact of this problem. Studies have shown that software engineers tend to spend up to 50% of their time trying to comprehend the structure of a software system. PCODA focuses on program comprehension techniques that rely specifically on dynamic analysis.
Andy Zaidman and Abdelwahab Hamou-Lhadj and Orla Greevy PCODA - Program Comprehension through Dynamic Analysis 2007 WCRE 2007
Abstract: Workshop proposal submitted to WCRE 2007. Without consistent or adequately complete documentation, maintainers are faced with the inevitable problem of understanding how the system is implemented prior to undertaking any maintenance task. Research into the discipline of program comprehension aims to reduce the impact of this problem. Studies have shown that software engineers tend to spend up to 50% of their time trying to comprehend the structure of a software system. PCODA focuses on program comprehension techniques that rely specifically on dynamic analysis.
Theses
Orla Greevy Enriching Reverse Engineering with Feature Analysis 2007 PhD thesis submitted to Berne University,Switzerland
Orla Greevy An Object-Oriented Approach to the Design of an EDI User Agent 1996 Masters thesis submitted to Dublin University, Trinity College (Ireland), Department of Computer Science
Orla Greevy Implementing Ada-Style Message Passing in Modula-2 My final year project, under the supervision of investigated how the Ada language constructs for Message Passing were implemented. I implemented these constructs then in Modula-2