Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Damien Cassou is active.

Publication


Featured researches published by Damien Cassou.


ieee international conference on software analysis evolution and reengineering | 2015

Untangling fine-grained code changes

Martín Dias; Alberto Bacchelli; Georgios Gousios; Damien Cassou; Stéphane Ducasse

After working for some time, developers commit their code changes to a version control system. When doing so, they often bundle unrelated changes (e.g., bug fix and refactoring) in a single commit, thus creating a so-called tangled commit. Sharing tangled commits is problematic because it makes review, reversion, and integration of these commits harder and historical analyses of the project less reliable. Researchers have worked at untangling existing commits, i.e., finding which part of a commit relates to which task. In this paper, we contribute to this line of work in two ways: (1) A publicly available dataset of untangled code changes, created with the help of two developers who accurately split their code changes into self contained tasks over a period of four months; (2) a novel approach, EpiceaUntangler, to help developers share untangled commits (aka. atomic commits) by using fine-grained code change information. EpiceaUntangler is based and tested on the publicly available dataset, and further evaluated by deploying it to 7 developers, who used it for 2 weeks. We recorded a median success rate of 91% and average one of 75%, in automatically creating clusters of untangled fine-grained code changes.


Proceedings of the 2007 international conference on Dynamic languages | 2007

Redesigning with traits: the Nile stream trait-based library

Damien Cassou; Stéphane Ducasse; Roel Wuyts

Recently, traits have been proposed as a single inheritance backward compatible solution in which the composing entity has the control over the trait composition. Traits are fine-grained units used to compose classes, while avoiding many of the problems of multiple inheritance and mixin-based approaches. To evaluate the expressiveness of traits, some hierarchies were refactored, showing code reuse. However, such large refactorings, while valuable, may not be facing all the problems, since the hierarchies were previously expressed within single inheritance and following certain patterns. We wanted to evaluate how traits enable reuse, and what problems could be encountered when building a library using traits from scratch, taking into account that traits are units of reuse. This paper presents our work on designing a new stream library named Nile. We present the reuse that we attained using traits, and the problems we encountered.


Proceedings of the 11th edition of the International Workshop on Smalltalk Technologies | 2016

Pillar: A Versatile and Extensible Lightweight Markup Language

Thibault Arloing; Yann Dubois; Stéphane Ducasse; Damien Cassou

There is a plethora of languages to write documentation and documents. From extremely powerful and complex such as LATEX to extremely simple such as Markdown. In this technical article we present Pillar a versatile and extensible lightweight markup language. Pillars document model and open architecture support exporting from Pillar to various formats such as ASCIIDoc, HTML, LATEX and Markdown. Pillar is currently used to write books, documentation, websites and slide decks (through Beamer and DeckJS). Pillar specially shines when advanced features are needed such as multiple exports (e.g., a printed book and web pages), internal references (e.g., links to figures with captions) and content generation (e.g., to give an up-to-date code size of a documented software).


Journal of the Brazilian Computer Society | 2016

Redocumenting APIs with crowd knowledge: a coverage analysis based on question types

Fernanda Madeiral Delfim; Klérisson Vinícius Ribeiro Paixão; Damien Cassou; Marcelo de Almeida Maia

BackgroundSoftware libraries and frameworks play an important role in software system development. The appropriate usage of their functionalities/components through their APIs, however, is a challenge for developers. Usually, API documentation, when it exists, is insufficient to assist them in their programming tasks. There are few API documentation writers for the many potential readers, resulting in the lack of explanations and examples concerning different scenarios and perspectives. The interaction of developers on the Web, on the other hand, generates content concerning APIs from different perspectives, which can be used to document APIs, also known as crowd documentation.MethodsIn this paper, we present a study regarding the knowledge generated by the crowd on the Stack Overflow question-and-answer website. Our main goal is to understand how the crowd can contribute for API documentation on two programming tasks: how to implement a scenario using an API (how-to-do-it), and how to fix domain-independent bugs in an existing code where there was a misunderstanding regarding the usage of an API (debug-corrective). We classified questions available on Stack Overflow by the main concerns of askers, and we used those classified as how-to-do-it and debug-corrective to analyze the coverage of API elements on the discussions related to such questions. Our cases included the well-known and popular Swing and Android APIs.ResultsOur main findings showed that the crowd provides more content for debug-corrective tasks than for how-to-do-it tasks, regardless of the API. Android API elements are more discussed by the crowd compared to Swing. Moreover, we observed that some API elements are frequently mentioned together in discussions, and that there is a strong association between API coverage on Stack Overflow and its usage in real software systems.ConclusionsCrowd documentation may not be a complete substitute for official documentation because of its partial coverage, especially for how-to-do-it tasks. However, it can still significantly enhance the existent documentation, especially for the most commonly used API elements, providing code samples and explanations on a large variety of usage nuances. Finally, taking advantage of the high coverage for debug-corrective tasks, a new kind of debugging assistant may be conceived.


arXiv: Software Engineering | 2015

DeltaImpactFinder: Assessing Semantic Merge Conflicts with Dependency Analysis

Martín Dias; Guillermo Polito; Damien Cassou; Stéphane Ducasse

In software development, version control systems (VCS) provide branching and merging support tools. Such tools are popular among developers to concurrently change a code-base in separate lines and reconcile their changes automatically afterwards. However, two changes that are correct independently can introduce bugs when merged together. We call semantic merge conflicts this kind of bugs. Change impact analysis (CIA) aims at estimating the effects of a change in a codebase. In this paper, we propose to detect semantic merge conflicts using CIA. On a merge, DeltaImpactFinder analyzes and compares the impact of a change in its origin and destination branches. We call the difference between these two impacts the delta-impact. If the delta-impact is empty, then there is no indicator of a semantic merge conflict and the merge can continue automatically. Otherwise, the delta-impact contains what are the sources of possible conflicts.


dynamic languages symposium | 2015

Access control to reflection with object ownership

Camille Teruel; Stéphane Ducasse; Damien Cassou; Marcus Denker

Reflection is a powerful programming language feature that enables language extensions, generic code, dynamic analyses, development tools, etc. However, uncontrolled reflection breaks object encapsulation and considerably increases the attack surface of programs e.g., malicious libraries can use reflection to attack their client applications. To bring reflection and object encapsulation back together, we use dynamic object ownership to design an access control policy to reflective operations. This policy grants objects full reflective power over the objects they own but limited reflective power over other objects. Code is still able to use advanced reflective operations but reflection cannot be used as an attack vector anymore.


Archive | 2014

Software Integration Questions: A Quantitative Survey

Martín Dias; Verónica Uquillas-Gomez; Damien Cassou; Stéphane Ducasse


Archive | 2016

Project-Team RMoD 2015 Activity Report

Marcus Denker; Nicolas Anquetil; Damien Cassou; Stéphane Ducasse; Anne Etien; Damien Pollet


Archive | 2015

Inheritance & Lookup: DoesNotUnderstand:

Damien Cassou; Stéphane Ducasse; Luc Fabresse


Archive | 2015

Pharo : An Immersive Object-Oriented System

Damien Cassou; Stéphane Ducasse; Luc Fabresse

Collaboration


Dive into the Damien Cassou's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Fernanda Madeiral Delfim

Federal University of Uberlandia

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Marcelo de Almeida Maia

Federal University of Uberlandia

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Roel Wuyts

Katholieke Universiteit Leuven

View shared research outputs
Researchain Logo
Decentralizing Knowledge