Network


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

Hotspot


Dive into the research topics where Nicolas Anquetil is active.

Publication


Featured researches published by Nicolas Anquetil.


Software and Systems Modeling | 2010

A model-driven traceability framework for software product lines

Nicolas Anquetil; Uirá Kulesza; Ralf Mitschke; Ana Moreira; Jean-Claude Royer; Andreas Rummler; André Sousa

Software product line (SPL) engineering is a recent approach to software development where a set of software products are derived for a well defined target application domain, from a common set of core assets using analogous means of production (for instance, through Model Driven Engineering). Therefore, such family of products are built from reuse, instead of developed individually from scratch. SPL promise to lower the costs of development, increase the quality of software, give clients more flexibility and reduce time to market. These benefits come with a set of new problems and turn some older problems possibly more complex. One of these problems is traceability management. In the European AMPLE project we are creating a common traceability framework across the various activities of the SPL development. We identified four orthogonal traceability dimensions in SPL development, one of which is an extension of what is often considered as “traceability of variability”. This constitutes one of the two contributions of this paper. The second contribution is the specification of a metamodel for a repository of traceability links in the context of SPL and the implementation of a respective traceability framework. This framework enables fundamental traceability management operations, such as trace import and export, modification, query and visualization. The power of our framework is highlighted with an example scenario.


Journal of Software: Evolution and Process | 2013

Software quality metrics aggregation in industry

Karine Mordal; Nicolas Anquetil; Jannik Laval; Alexander Serebrenik; Bogdan Vasilescu; Stéphane Ducasse

With the growing need for quality assessment of entire software systems in the industry, new issues are emerging. First, because most software quality metrics are defined at the level of individual software components, there is a need for aggregation methods to summarize the results at the system level. Second, because a software evaluation requires the use of different metrics, with possibly widely varying output ranges, there is a need to combine these results into a unified quality assessment. In this paper we derive, from our experience on real industrial cases and from the scientific literature, requirements for an aggregation method. We then present a solution through the Squale model for metric aggregation, a model specifically designed to address the needs of practitioners. We empirically validate the adequacy of Squale through experiments on Eclipse. Additionally, we compare the Squale model to both traditional aggregation techniques (e.g., the arithmetic mean), and to econometric inequality indices (e.g., the Gini or the Theil indices), recently applied to aggregation of software metrics. Copyright


Information & Software Technology | 2007

Software maintenance seen as a knowledge management issue

Nicolas Anquetil; Káthia Marçal de Oliveira; Kleiber D. de Sousa; Márcio Greyck Batista Dias

Creating and maintaining software systems is a knowledge intensive task. One needs to have a good understanding of the application domain, the problem to solve and all its requirements, the software process used, technical details of the programming language(s), the systems architecture and how the different parts fit together, how the system interacts with its environment, etc. All this knowledge is difficult and costly to gather. It is also difficult to store and usually lives only in the mind of the software engineers who worked on a particular project. If this is a problem for development of new software, it is even more for maintenance, when one must rediscover lost information of an abstract nature from legacy source code among a swarm of unrelated details. In this paper, we submit that this lack of knowledge is one of the prominent problems in software maintenance. To try to solve this problem, we adapted a knowledge extraction technique to the knowledge needs specific to software maintenance. We explain how we explicit the knowledge discovered on a legacy software during maintenance so that it may be recorded for future use. Some applications on industry maintenance projects are reported.


conference on software maintenance and reengineering | 2011

Legacy Software Restructuring: Analyzing a Concrete Case

Nicolas Anquetil; Jannik Laval

Software re-modularization is an old preoccupation of reverse engineering research. The advantages of a well structured or modularized system are well known. Yet after so much time and efforts, the field seems unable to come up with solutions that make a clear difference in practice. Recently, some researchers started to question whether some basic assumptions of the field were not overrated. The main one consists in evaluating the high-cohesion/low-coupling dogma with metrics of unknown relevance. In this paper, we study a real structuring case (on the Eclipse platform) to try to better understand if (some) existing metrics would have helped the software engineers in the task. Results show that the cohesion and coupling metrics used in the experiment did not behave as expected and would probably not have helped the maintainers reach there goal. We also measured another possible restructuring which is to decrease the number of cyclic dependencies between modules. Again, the results did not meet expectations.


working conference on reverse engineering | 2013

Towards automatically improving package structure while respecting original design decisions

Hani Abdeen; Houari A. Sahraoui; Osama Shata; Nicolas Anquetil; Stéphane Ducasse

Recently, there has been an important progress in applying search-based optimization techniques to the problem of software re-modularization. Yet, a major part of the existing body of work addresses the problem of modularizing software systems from scratch, regardless of the existing packages structure. This paper presents a novel multi-objective optimization approach for improving existing packages structure. The optimization approach aims at increasing the cohesion and reducing the coupling and cyclic connectivity of packages, by modifying as less as possible the existing packages organization. Moreover, maintainers can specify several constraints to guide the optimization process with regard to extra design factors. To this contribution, we use the Non-Dominated Sorting Genetic Algorithm (NSGA-II). We evaluate the optimization approach through an experiment covering four real-world software systems. The results promise the effectiveness of our optimization approach for improving existing packages structure by doing very small modifications.


Journal of Systems and Software | 2014

Predicting software defects with causality tests

Cesar Couto; Pedro Pires; Marco Tulio Valente; Roberto da Silva Bigonha; Nicolas Anquetil

Abstract In this paper, we propose a defect prediction approach centered on more robust evidences towards causality between source code metrics (as predictors) and the occurrence of defects. More specifically, we rely on the Granger causality test to evaluate whether past variations in source code metrics values can be used to forecast changes in time series of defects. Our approach triggers alarms when changes made to the source code of a target system have a high chance of producing defects. We evaluated our approach in several life stages of four Java-based systems. We reached an average precision greater than 50% in three out of the four systems we evaluated. Moreover, by comparing our approach with baselines that are not based on causality tests, it achieved a better precision.


conference on software maintenance and reengineering | 2012

Bug Maps: A Tool for the Visual Exploration and Analysis of Bugs

André C. Hora; Nicolas Anquetil; Stéphane Ducasse; Muhammad Usman Bhatti; Cesar Couto; Marco Tulio Valente; Julio Martins

To harness the complexity of big legacy software, software engineering tools need more and more information on these systems. This information may come from analysis of the source code, study of execution traces, computing of metrics, etc. One source of information received less attention than source code: the bugs on the system. Little is known about the evolutionary behavior, lifetime, distribution, and stability of bugs. In this paper, we propose to consider bugs as first class entities and a useful source of information that can answer such topics. Such analysis is inherently complex, because bugs are intangible, invisible, and difficult to be traced. Therefore, our tool extracts information about bugs from bug tracking systems, link this information to other software artifacts, and explore interactive visualizations of bugs that we call bug maps.


conference on software maintenance and reengineering | 2012

Uncovering Causal Relationships between Software Metrics and Bugs

Cesar Couto; Christofer Silva; Marco Tulio Valente; Roberto da Silva Bigonha; Nicolas Anquetil

Bug prediction is an important challenge for software engineering research. It consist in looking for possible early indicators of the presence of bugs in a software. However, despite the relevance of the issue, most experiments designed to evaluate bug prediction only investigate whether there is a linear relation between the predictor and the presence of bugs. However, it is well known that standard regression models cannot filter out spurious relations. Therefore, in this paper we describe an experiment to discover more robust evidences towards causality between software metrics (as predictors) and the occurrence of bugs. For this purpose, we have relied on Granger Causality Test to evaluate whether past changes in a given time series are useful to forecast changes in another series. As its name suggests, Granger Test is a better indication of causality between two variables. We present and discuss the results of experiments on four real world systems evaluated over a time frame of almost four years. Particularly, we have been able to discover in the history of metrics the causes - in the terms of the Granger Test - for 64% to 93% of the defects reported for the systems considered in our experiment.


international conference on software maintenance | 2012

Domain specific warnings: Are they any better?

André C. Hora; Nicolas Anquetil; Stéphane Ducasse; Simon Allier

Tools to detect coding standard violations in source code are commonly used to improve code quality. One of their original goals is to prevent bugs, yet, a high number of false positives is generated by the rules of these tools, i.e., most warnings do not indicate real bugs. There are empirical evidences supporting the intuition that the rules enforced by such tools do not prevent the introduction of bugs in software. This may occur because the rules are too generic and do not focus on domain specific problems of the software under analysis. We underwent an investigation of rules created for a specific domain based on expert opinion to understand if such rules are worthwhile enforcing in the context of defect prevention. In this paper, we performed a systematic study to investigate the relation between generic and domain specific warnings and observed defects. From our experiment on a real case, long term evolution, software, we have found that domain specific rules provide better defect prevention than generic ones.


Journal of the Brazilian Computer Society | 2006

Which documentation for software maintenance

Sergio Cozzetti B. de Souza; Nicolas Anquetil; Káthia Marçal de Oliveira

Software engineering has been striving for years to improve the practice of software development and maintenance. Documentation has long been prominent on the list of recommended practices to improve development and help maintenance. Recently however, agile methods started to shake this view, arguing that the goal of the game is to produce software and that documentation is only useful as long as it helps to reach this goal.On the other hand, in the re-engineering field, people wish they could re-document useful legacy software so that they may continue maintain them or migrate them to new platform.In these two case, a crucial question arises: “How much documentation is enough?” In this article, we present the results of a survey of software maintainers to try to establish what documentation artifacts are the most important to them.

Collaboration


Dive into the Nicolas Anquetil's collaboration.

Top Co-Authors

Avatar

Marco Tulio Valente

Universidade Federal de Minas Gerais

View shared research outputs
Top Co-Authors

Avatar

André C. Hora

Universidade Federal de Minas Gerais

View shared research outputs
Top Co-Authors

Avatar

Káthia Marçal de Oliveira

University of Valenciennes and Hainaut-Cambresis

View shared research outputs
Top Co-Authors

Avatar

Cesar Couto

Centro Federal de Educação Tecnológica de Minas Gerais

View shared research outputs
Top Co-Authors

Avatar

Márcio Greyck Batista Dias

Universidade Católica de Brasília

View shared research outputs
Top Co-Authors

Avatar

Roberto da Silva Bigonha

Universidade Federal de Minas Gerais

View shared research outputs
Top Co-Authors

Avatar

Jean-Claude Royer

École des mines de Nantes

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Cristiano Amaral Maffort

Centro Federal de Educação Tecnológica de Minas Gerais

View shared research outputs
Top Co-Authors

Avatar

Leonardo Humberto Silva

Universidade Federal de Minas Gerais

View shared research outputs
Researchain Logo
Decentralizing Knowledge