Anquetil, Nicolas
Works: | 15 works in 20 publications in 2 languages and 25 library holdings |
---|---|
Roles: | Thesis advisor, Author, Contributor, Other, Opponent |
Classifications: | QA76.758, 005.16 |
5 editions published between 1996 and 1998 in French and held by 6 WorldCat member libraries worldwide
1 edition published in 2009 in English and held by 2 WorldCat member libraries worldwide
1 edition published in 2016 in English and held by 2 WorldCat member libraries worldwide
1 edition published in 2016 in English and held by 2 WorldCat member libraries worldwide
1 edition published in 2015 in English and held by 2 WorldCat member libraries worldwide
1 edition published in 2014 in English and held by 2 WorldCat member libraries worldwide
2 editions published in 2011 in English and held by 2 WorldCat member libraries worldwide
Software evolves over time with the modification, addition and removal of new classes, methods, functions, dependencies. A consequence is that behavior may not be placed in the right packages and the software modularization is broken. A good organization of classes into identifiable and collaborating packages eases the understanding, maintenance, test and evolution of software systems. We argue that maintainers lack tool support for understanding the concrete organization and for structuring packages within their context. Our claim is that the maintenance of large software modularizations needs approaches that help (i) understanding the structure at package level and assessing its quality; (ii) identifying modularity problems; and (iii) take decisions and verify the impact of these decisions.In this thesis, we propose ECOO, an approach to help reengineers identify and understand structural problems in software architectures and to support the remodularization activity. It concerns the three following research fields:- Understanding package dependency problems. We propose visualizations to highlight cyclic dependencies problems at package level.- Proposing dependencies to be changed for remodularization. The approach proposes dependencies to break to make the system more modular.- Analyzing impact of change. The approach proposes a change impact analysis to try modifications before applying them on the real system.The approaches presented in this thesis have been qualitatively and quantitatively validated and results have been taken into account in the reengineering of analyzed systems. The results we obtained demonstrate the usefulness of our approach
1 edition published in 2018 in French and held by 1 WorldCat member library worldwide
Les entreprises accordent énormément d'importance à identifier des démarches automatisées et réplicables pour résoudre leurs problèmes. Ce constat s'applique aussi au démarche de rénovation d'architecture logicielle. Au sein d'une grande entreprise, nous avons intégré l'équipe chargée de réaliser la rénovation de l'architecture d'un logiciel. Nous avons étudié la démarche informelle suivie par cette équipe afin d'en proposer une généralisation et des outils facilitant son automatisation et sa réplication à d'autres projets. La plupart des solutions proposées dans la littérature ne peuvent s'appliquer à ce projet, du fait de leur caractère manuel, de leurs contraintes particulières ou de leur manque d'application sur des cas réels. Toutefois, nous avons identifié que le Reflexion Model, la recherche d'information et le regroupement statistique peuvent s'y appliquer. Nous avons alors proposé une nouvelle démarche structurée qui se base sur une adaptation du Reflexion Model et sur la démarche réalisée par l'entreprise. Notre démarche utilise cinq critères permettant l'allocation du code source existant à l'architecture du logiciel rénové. Nous avons montré que l'application de nos critères d'allocation donne des résultats satisfaisants au contraire de la recherche d'information et du regroupement. Enfin, pour répondre au besoin d'automatisation, nous avons défini ce que nous appelons des opérateurs. Ils se basent sur les activités que nous avons identifiées dans le travail des ingénieurs de l'entreprise. Nous avons montré que ces opérateurs permettraient de répliquer entièrement notre démarche structurée autorisant ainsi son application efficace sur d'autres projets
1 edition published in 2017 in English and held by 1 WorldCat member library worldwide
In software development, change is the only constant. Software systems sometimes evolve in a substantial way and, during this process, sequences of code transformations (e.g., create a class, then override a method) are systematically performed in the system (e.g., to some classes in the same hierarchy). Due to the repetitive nature of these transformations, some automated support is needed to ensure that these sequences of transformations are consistently applied to the entire system.In this thesis we propose to improve source code transformations to better sup- port developers performing more complex and systematic code transformations. We cover two aspects: • The automated support to compose and apply sequences of code transformations. We undergo an investigation on the existence of these sequences in real-world software systems. We propose a tool to automatically apply these sequences in the systems we analyzed. • The detection of design violations during a transformation effort. We undergo an investigation on cases of systematic application of refactoring transformations. We proposed a tool that recommends additional transformations to fix design violations that are detected after performing refactoring transformations.We evaluated the proposed approaches quantitatively and qualitatively in real-world case studies and, in some cases, with the help of experts on the systems under analysis. The results we obtained demonstrate the usefulness of our approaches
1 edition published in 2014 in English and held by 1 WorldCat member library worldwide
Software systems evolve by adding new features, fixing bugs or refactoring existing source code. During this process, some problems may occur causing evolving systems and their clients to be inconsistent or to fail, decreasing code quality. One solution to deal with such maintainability problems is the usage of rules to ensure consistency. These rules may be created by experts or extracted from source code repositories, which are commonly evaluated in small-scale case studies. We argue that existing approaches lack of: (i) a deep understanding of the benefits provided by expert-based rules, (ii) a better use of source code repositories to extract history-based rules, and (iii) a large-scale analysis of the impact of source code evolution on the actual clients.In this thesis we propose to analyze and improve rules to better support developers keeping track of source code evolution. We cover three aspects: - The benefits provided by expert-based rules: we report on an investigation of rules created based on expert opinion to understand whether they are worthwhile to be adopted given the cost to produce them.- The improvement of history-based rules: we propose two solutions to extract better rules from source code history.- The impact of source code evolution on a software ecosystem: we undergo an investigation, in a large-scale ecosystem, on the awareness of the client systems about source code evolution. We evaluated the proposed approaches qualitatively and quantitatively. The results we obtained demonstrate the usefulness of our approaches
1 edition published in 2017 in English and held by 1 WorldCat member library worldwide
Worldline, une importante société d'informatique, doit améliorer la qualité de ses projets. Nous avons réalisé un audit sur plusieurs projets de l'entreprise afin d'identifier comment éviter l'échec des projets: aucune conclusion définitive n'en a été tirée. Cependant, il a mis en lumière le besoin d'améliorer l'utilisation des tests. Effectivement, tester chaque partie du code est requis pour éviter l'échec du projet. Dans l'industrie, notamment à Worldline, l'automatisation des tests a commencé dans le but de maîtriser le comportement des applications. Mais, exécuter tous les tests après un changement peut être une coûter plusieurs heures. Le retour sur le code changé est retardé et le développeur perd du temps pour découvrir les potentiels bogues. La solution généralement proposée dans la littérature consiste à réduire le nombre de tests à lancer en sélectionnant seulement ceux relatifs aux derniers changements effectués. L'approche sélectionne un jeu de tests réduit et approprié qui détectera de potentielles régressions dans l'application. Chaque approche de sélection de tests a besoin d'être étudiée dans le contexte de Worldline et adaptée en conséquence pour convenir aux habitudes des développeurs. Avant d'intégrer une telle approche, une étude a été faite pour connaître les habitudes actuelles des développeurs vis-à-vis de la sélection de tests. Grâce à cette étude, nous avons développé un outil pour les développeurs visant à effectuer la sélection des tests. Le but est aussi d'étudier l'impact de cet outil sur leur comportement. Nous espérons que cette approche de sélection de tests apportera des changements dans leur processus de développement
1 edition published in 2011 in French and held by 1 WorldCat member library worldwide
Our work is performed in the context of a financial company that develops and maintains legacy software. This software has been existing for more than twenty years, it was written in a proprietary, procedural and 4GL language called ADL (or Application Development Language). This software was initially developed for VMS system and deals with old generation of DBMS. For commercial reasons, the software has been ported to UNIX systems and to new RDBMS; Oracle and Sybase. It has also been extended to offer web interfaces. This legacy software has to face some new challenges as databases grow. During these last 20 years, some phenomenons like the merging of two companies, make data grow up to more than 1Terabyte and will reach 1Petabyte in a few years. In these new contexts, the ADL language shows limits to handle such a mass of data. Some patterns of code with database access have been suspected to be responsible for important decrease in performance. Our work consists in detecting all the instances of a suspected pattern of code in the source code or procedures, and identifying the instances of code, the most often called and the most time consuming. We developed a first tool called Adlmap, which is based on static analysis. It detects all DB accesses and flags those that are suspected patterns of code. The second tool we developed, named Pmonitor, is based on hybrid analysis; a combination of static and dynamic analysis. We use it to highlight inefficient code patterns instances
1 edition published in 2021 in English and held by 1 WorldCat member library worldwide
Les développeurs utilisent des frameworks d'interface graphique (GUI frameworks) pour concevoir l'interface utilisateur graphique de leurs applications. Cela leur permet de réutiliser des composants graphiques existants et de construire des applications rapidement. Cependant, avec la généralisation des appareils mobiles et des applications Web, les GUI frameworks évoluent à un rythme rapide : JavaFX a remplacé Java Swing, Angular~8 a remplacé Angular~1.4 qui avait remplacé GWT (Google Web Toolkit). De plus, les anciens GUI frameworks ne sont plus supportés. Cette situation oblige les organisations à migrer régulièrement leurs applications vers des frameworks modernes afin qu'elles ne deviennent pas obsolètes.Pour faciliter la migration des applications, des recherches antérieures ont conçu des approches automatiques dédiées à certains projets de migration. Bien qu'elles fournissent de bons résultats, elles sont difficiles à adapter à plusieurs contextes. Par exemple, chez Berger-Levrault, notre partenaire industriel, les applications sont écrites dans des langages de programmation génériques (Java/GWT), des langages propriétaires de ``4ème génération'' (VisualBasic 6, PowerBuilder), ou des langages de balisage (Silverlight). Il est donc nécessaire d'adopter une approche de migration indépendante du langage, qui permette de faire migrer diverses interfaces graphiques héritées vers les technologies les plus récentes. En outre, lors de la migration automatique, une partie de l'application migrée doit encore être corrigée manuellement. Ce problème est encore plus important pour les grandes applications où cette dernière étape peut durer des mois. Ainsi, les entreprises doivent migrer leur application de manière incrémentielle afin de garantir la livraison à l'utilisateur final tout au long du processus.Dans cette thèse, nous proposons une nouvelle approche de migration incrémentale. Elle vise à permettre la migration de grandes applications afin d'assurer la livraison à l'utilisateur final. Elle consiste à migrer des pages à l'aide de notre outil de migration automatique de GUI, à les corriger et à les intégrer dans une application hybride. Pour créer notre outil de migration de GUI, nous avons conçu un méta-modèle pivot de GUI composé de plusieurs paquetages représentant les aspects visuels et comportementaux de toute GUI. Nous avons détaillé plusieurs implémentations de notre outil de migration de GUI qui extraient et génèrent des GUI utilisant différents frameworks.Nous avons appliqué avec succès notre approche de migration incrémentale sur une application industrielle de Berger-Levrault. L'application migrée est maintenant en production. Nous avons également validé notre outil de migration automatique d'interface graphique sur plusieurs projets de migration incluant des applications développées avec des langages de programmation et de balisage. L'entreprise utilise actuellement notre approche pour d'autres projets de migration
1 edition published in 2020 in English and held by 1 WorldCat member library worldwide
Relational databases have been at the core of many information systems for decades and continue to be used in new software development.Many of these databases reflect human or societal activities, for example, processes related to human resources, insurances, banks, etc.Reflecting such activities induce frequent evolutions of both the software system and the relational database.Relational databases do not only store and ensure data consistency, they can also define behavior taking the form of views, stored procedures, triggers, etc.Implementing behavior directly inside a database has the advantage to prevent code duplication when multiple programs using it perform similar tasks. However, the evolution of such database becomes complex and few approaches in the literature address this problem.Most of the literature addressing relational database evolution focus either on the evolution of the database schema or on its co-evolution with software interacting with it.Approaches to reverse-engineer and evolve both structural and behavioral entities of relational databases are missing.In this thesis, we address this gap in the literature with four main contributions:(i) we report our observation of a relational database evolution made by an architect and identify problems from our observations;(ii) we propose a meta-model representing both structural and behavioral parts of a database and simplifying dependencies analysis;(iii) we propose a tool to find quality issues in a database schema; and(iv) we propose a semi-automatic approach to evolve a relational database (its structural and its behavioral parts) based on recommendations that can be compiled into a SQL script.The results of the research reported in this thesis provide building bricks for the development of behavior-aware integrated development environment for relational databases
1 edition published in 1998 in French and held by 0 WorldCat member libraries worldwide


0 |
![]() |
1 | ||
General | Special |

- SpringerLink (Online service) Other
- Etien, Anne (1979-....). Other Thesis advisor Contributor
- Ducasse, Stéphane Other Thesis advisor Contributor
- École doctorale Sciences pour l'Ingénieur (Lille) Other Degree grantor
- Hora, Andre Author Contributor
- Valente, Marco Tulio Other Contributor
- Université Lille 1 - Sciences et technologies (Villeneuve-d'Ascq / 1970-2017) Degree grantor
- Centre de recherche en informatique, signal et automatique de Lille Other
- Université de Lille (2018-2021) Degree grantor
- Bigonha, Mariza Contributor