Successful software systems cope with complexity by organizing classes into packages. However, a particular organization may be neither straightforward nor obvious for a given developer. As a consequence, classes can be misplaced, leading to duplicated code and ripple effects with minor changes effecting multiple packages. We claim that contextual information is the key to rearchitecture a system. Exploiting contextual information, we propose a technique to detect misplaced classes by analyzing how client packages access the classes of a given provider package. We define locality as a measure of the degree to which classes reused by common clients appear in the same package. We then use locality to guide a simulated annealing algorithm to o...
International audienceFrom time to time, developers perform sequences of code transformations in a s...
Abstract—Statistical fault localization techniques analyze the dynamic program information provided ...
Abstract—The software entities of an object-oriented system should be organized in such a way that “...
Over the last thirty years designers have tried to cope with software complexity by organizing syste...
Due to the huge speed gaps in the memory hierarchy of modern computer architectures, it is important...
Contextual information plays a vital role for software developers when understanding and fixing a bu...
Modularity is one of the four key principles of software design and architecture. According to this ...
Oftentimes, during software maintenance the original program modularization decays, thus reducing it...
During software evolution, the software structure, which mainly consists of modular abstractions (su...
Rework occurs commonly in software development. This paper describes a simple rework example, namely...
Pervasive computing environments are often noisy and subject to change. Although software should be ...
SéminaireIn this extended abstract, we report an ongoing experience conducted during a Master projec...
Abstract—Clone detectors find similar code fragments and report large numbers of them for large syst...
The original design of a software system is rarely prepared for every new requirement. Software syst...
The lack of structured methodologies and software engineering efforts on designing the support of co...
International audienceFrom time to time, developers perform sequences of code transformations in a s...
Abstract—Statistical fault localization techniques analyze the dynamic program information provided ...
Abstract—The software entities of an object-oriented system should be organized in such a way that “...
Over the last thirty years designers have tried to cope with software complexity by organizing syste...
Due to the huge speed gaps in the memory hierarchy of modern computer architectures, it is important...
Contextual information plays a vital role for software developers when understanding and fixing a bu...
Modularity is one of the four key principles of software design and architecture. According to this ...
Oftentimes, during software maintenance the original program modularization decays, thus reducing it...
During software evolution, the software structure, which mainly consists of modular abstractions (su...
Rework occurs commonly in software development. This paper describes a simple rework example, namely...
Pervasive computing environments are often noisy and subject to change. Although software should be ...
SéminaireIn this extended abstract, we report an ongoing experience conducted during a Master projec...
Abstract—Clone detectors find similar code fragments and report large numbers of them for large syst...
The original design of a software system is rarely prepared for every new requirement. Software syst...
The lack of structured methodologies and software engineering efforts on designing the support of co...
International audienceFrom time to time, developers perform sequences of code transformations in a s...
Abstract—Statistical fault localization techniques analyze the dynamic program information provided ...
Abstract—The software entities of an object-oriented system should be organized in such a way that “...