Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

David Röthlisberger

dblp:43/1028 · DBLP profile ↗
← Back
17ranked-venue papers
7as first author
0since 2021 · last 2015
0000-0003-0639-6379ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 17 · 7 first-authorDatabases, data management, data science and information retrieval · 2

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Software maintenance and evolution · 80% Program analysis · 15% Empirical software engineering · 4%

Topics — the 8 heaviest of 8, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software maintenance and evolution › software evolution › API evolution
API deprecation
0.112012
How do developers react to API deprecation?: the case of a smalltalk ecosystem · SIGSOFT FSE 2012
Software maintenance and evolution › software evolution
API evolution
0.112012
How do developers react to API deprecation?: the case of a smalltalk ecosystem · SIGSOFT FSE 2012
Software maintenance and evolution › change impact analysis
change propagation
0.112012
How do developers react to API deprecation?: the case of a smalltalk ecosystem · SIGSOFT FSE 2012
Program analysis
dynamic analysis
0.112012
Exploiting Dynamic Information in IDEs Improves Speed and Correctness of Software Maintenance Tasks · IEEE Trans. Software Eng. 2012
Software maintenance and evolution › change impact analysis
ripple effect
0.112012
How do developers react to API deprecation?: the case of a smalltalk ecosystem · SIGSOFT FSE 2012
Software maintenance and evolution
software maintenance
0.112012
Exploiting Dynamic Information in IDEs Improves Speed and Correctness of Software Maintenance Tasks · IEEE Trans. Software Eng. 2012
Empirical software engineering
mining software repositories
0.012012
How do developers react to API deprecation?: the case of a smalltalk ecosystem · SIGSOFT FSE 2012
Software maintenance and evolution › software ecosystems › software ecosystem analysis
package ecosystem analysis
0.012012
How do developers react to API deprecation?: the case of a smalltalk ecosystem · SIGSOFT FSE 2012

Methods — techniques the papers use, named apart from their topics

dynamic information integration · 0.1controlled experiment · 0.1
YearPublicationVenuePosition
2015 Framework instantiation using cookbooks constructed with static and dynamic analysis
abstract
Software reuse is one of the major goals in software engineering. Frameworks promote the reuse of not only individual building blocks, but also of system design. However, framework instantiation requires a substantial understanding effort. High quality documentation is essential to minimize this effort. However, in most cases, appropriate documentation does not exist or is not updated. Our hypothesis is that the framework code itself and existing instantiations can serve as a guide for new instantiations. The challenge is that users still have to read large portions of code, which hinders the understanding process, thus our goal is to provide relevant information for framework instantiation with static and dynamic analysis of the framework and pre-existing instantiations. The final documentation is presented in a cookbook style, where recipes are composed of programming tasks and information about hotspots related to a feature instantiation. We conducted two preliminary experiments, the first to evaluate the recall of the approach and the second to study the practical usefulness of the recipe information for developers. Results reveal that our approach discloses accurate and relevant information about classes and methods used for framework instantiation.
Raquel Fialho de Queiroz Lafetá, Marcelo de Almeida Maia, David Röthlisberger
ICPC3
2015 Polymorphism in the spotlight: studying its prevalence in Java and Smalltalk
abstract
Subtype polymorphism is a cornerstone of object-oriented programming. By hiding variability in behavior behind a uniform interface, polymorphism decouples clients from providers and thus enables genericity, modularity and extensibility. At the same time, however, it scatters the implementation of the behavior over multiple classes thus potentially hampering program comprehension. The extent to which polymorphism is used in real programs and the impact of polymorphism on program comprehension are not very well understood. We report on a preliminary study of the prevalence of polymorphism in several hundred open source software systems written in Smalltalk, one of the oldest object-oriented programming languages, and in Java, one of the most widespread ones. Although a large portion of the call sites in these systems are polymorphic, a majority have a small number of potential candidates. Smalltalk uses polymorphism to a much greater extent than Java. We discuss how these findings can be used as input for more detailed studies in program comprehension and for better developer support in the IDE.
Nevena Milojkovic, Andrea Caracciolo, Mircea Lungu, Oscar Nierstrasz, David Röthlisberger, Romain Robbes
ICPC5
2015 Object-oriented software extensions in practice
Romain Robbes, David Röthlisberger, Éric Tanter
Empir. Softw. Eng.2
2014 On the use of type predicates in object-oriented software: the case of Smalltalk
abstract
Object-orientation relies on polymorphism to express behavioral variants. As opposed to traditional procedural design, explicit type-based conditionals should be avoided. This message is conveyed in introductory material on object orientation, as well as in object-oriented reengineering patterns. Is this principle followed in practice? In other words, are type predicates actually used in object-oriented software, and if so, to which extent?
Oscar Callaú, Romain Robbes, Éric Tanter, David Röthlisberger, Alexandre Bergel
DLS4
2013 Using developer interaction data to compare expertise metrics
abstract
The expertise of a software developer is said to be a crucial factor for the development time required to complete a task. Even if this hypothesis is intuitive, research has not yet quantified the effect of developer expertise on development time. A related problem is that the design space for expertise metrics is large; out of the various automated expertise metrics proposed, we do not know which metric most reliably captures expertise. What prevents a proper evaluation of expertise metrics and their relation with development time is the lack of data on development tasks, such as their precise duration. Fortunately, this data is starting to become available in the form of growing developer interaction repositories. We show that applying MSR techniques to these developer interaction repositories gives us the necessary tools to perform such an evaluation.
Romain Robbes, David Röthlisberger
MSR2
2013 How (and why) developers use the dynamic features of programming languages: the case of smalltalk
Oscar Callaú, Romain Robbes, Éric Tanter, David Röthlisberger
Empir. Softw. Eng.4
2012 Extensions during Software Evolution: Do Objects Meet Their Promise?
Romain Robbes, David Röthlisberger, Éric Tanter
ECOOP2
2012 How do developers react to API deprecation?: the case of a smalltalk ecosystem
abstract
When the Application Programming Interface (API) of a framework or library changes, its clients must be adapted. This change propagation---known as a ripple effect---is a problem that has garnered interest: several approaches have been proposed in the literature to react to these changes.
Romain Robbes, Mircea Lungu, David Röthlisberger
SIGSOFT FSE3
2012 Spy: A flexible code profiling framework
Alexandre Bergel, Felipe Bañados, Romain Robbes, David Röthlisberger
Comput. Lang. Syst. Struct.4
2012 Exploiting Dynamic Information in IDEs Improves Speed and Correctness of Software Maintenance Tasks
abstract
Modern IDEs such as Eclipse offer static views of the source code, but such views ignore information about the runtime behavior of software systems. Since typical object-oriented systems make heavy use of polymorphism and dynamic binding, static views will miss key information about the runtime architecture. In this paper, we present an approach to gather and integrate dynamic information in the Eclipse IDE with the goal of better supporting typical software maintenance activities. By means of a controlled experiment with 30 professional developers, we show that for typical software maintenance tasks, integrating dynamic information into the Eclipse IDE yields a significant 17.5 percent decrease of time spent while significantly increasing the correctness of the solutions by 33.5 percent. We also provide a comprehensive performance evaluation of our approach.
David Röthlisberger, Marcel Harry, Walter Binder, Philippe Moret, Danilo Ansaloni, Alex Villazón, Oscar Nierstrasz
IEEE Trans. Software Eng.1
2011 SmartGroups: Focusing on Task-Relevant Source Artifacts in IDEs
abstract
Navigating large software systems, even when using a modern IDE, is difficult, since conceptually related software artifacts are distributed in a huge software space. For most software maintenance tasks, only a small fraction of the entire software space is actually relevant. The IDE, however, does not reveal the task relevancy of source artifacts, thus developers cannot easily focus on the artifacts required to accomplish their tasks. SmartGroups help developers to perform software maintenance tasks by representing groups of source artifacts that are relevant for the current task. Relevancy is determined by analyzing historical navigation and modification activities, evolutionary information, and runtime information. The prediction quality of SmartGroups is validated with a benchmark evaluation using recorded development activities and evolutionary information from versioning systems.
David Röthlisberger, Oscar Nierstrasz, Stéphane Ducasse
ICPC1
2011 How developers use the dynamic features of programming languages: the case of smalltalk
abstract
The dynamic and reflective features of programming languages are powerful constructs that programmers often mention as extremely useful. However, the ability to modify a program at runtime can be both a boon-in terms of flexibility-, and a curse-in terms of tool support. For instance, usage of these features hampers the design of type systems, the accuracy of static analysis techniques, or the introduction of optimizations by compilers. In this paper, we perform an empirical study of a large Smalltalk codebase- often regarded as the poster-child in terms of availability of these features-, in order to assess how much these features are actually used in practice, whether some are used more than others, and in which kinds of projects. These results are useful to make informed decisions about which features to consider when designing language extensions or tool support.
Oscar Callaú, Romain Robbes, Éric Tanter, David Röthlisberger
MSR4
2009 Augmenting static source views in IDEs with dynamic metrics
abstract
Mainstream IDEs such as Eclipse support developers in managing software projects mainly by offering static views of the source code. Such a static perspective neglects any information about runtime behavior. However, object-oriented programs heavily rely on polymorphism and late-binding, which makes them difficult to understand just based on their static structure. Developers thus resort to debuggers or profilers to study the system's dynamics. However, the information provided by these tools is volatile and hence cannot be exploited to ease the navigation of the source space. In this paper we present an approach to augment the static source perspective with dynamic metrics such as precise runtime type information, or memory and object allocation statistics. Dynamic metrics can leverage the understanding for the behavior and structure of a system. We rely on dynamic data gathering based on aspects to analyze running Java systems. By solving concrete use cases we illustrate how dynamic metrics directly available in the IDE are useful. We also comprehensively report on the efficiency of our approach to gather dynamic metrics.
David Röthlisberger, Marcel Harry, Alex Villazón, Danilo Ansaloni, Walter Binder, Oscar Nierstrasz, Philippe Moret
ICSM1
2009 Senseo: Enriching Eclipse's static source views with dynamic metrics
abstract
Maintaining object-oriented systems that use inheritance and polymorphism is difficult, since runtime information, such as which methods are actually invoked at a call site, is not visible in the static source code. We have implemented Senseo, an Eclipse plugin enhancing Eclipse's static source views with various dynamic metrics, such as runtime types, the number of objects created, or the amount of memory allocated in particular methods.
David Röthlisberger, Marcel Harry, Alex Villazón, Danilo Ansaloni, Walter Binder, Oscar Nierstrasz, Philippe Moret
ICSM1
2009 Supporting task-oriented navigation in IDEs with configurable HeatMaps
abstract
Mainstream IDEs generally rely on the static structure of a software project to support browsing and navigation. We propose HeatMaps, a simple but highly configurable technique to enrich the way an IDE displays the static structure of a software system with additional kinds of information. A HeatMap highlights software artifacts according to various metric values, such as bright red or pale blue, to indicate their potential degree of interest. We present a prototype system that implements HeatMaps, and we describe an initial study that assesses the degree to which different HeatMaps effectively guide developers in navigating software.
David Röthlisberger, Oscar Nierstrasz, Stéphane Ducasse, Damien Pollet, Romain Robbes
ICPC1
2008 Exploiting Runtime Information in the IDE
abstract
Developers rely on the mechanisms provided by their IDE to browse and navigate a large software system. These mechanisms are usually based purely on a system's static source code. The static perspective, however, is not enough to understand an object-oriented program's behavior, in particular if implemented in a dynamic language. We propose to enhance IDEs with a program's runtime information (e.g. message sends and type information) to support program comprehension through precise navigation and informative browsing. To precisely specify the type and amount of runtime data to gather about a system under development, dynamically and on demand, we adopt a technique known as partial behavioral reflection. We implemented navigation and browsing enhancements to an IDE that exploit this runtime information in a prototype called Hermion. We present preliminary validation of our experimental enhanced IDE by asking developers to assess its usefulness to understand an unfamiliar software system.
David Röthlisberger, Orla Greevy, Oscar Nierstrasz
ICPC1
2008 Unanticipated partial behavioral reflection: Adapting applications at runtime
David Röthlisberger, Marcus Denker, Éric Tanter
Comput. Lang. Syst. Struct.1