Publications
You will find here my publications organized by topic (sometimes overlapping). In my publications page, they are presented by type and in chronological order.
My work covers various topics of software maintenance:
- Software Architecture and re-structuring, or how to help re-organizing a legacy software into coherent modules;
- Software Quality / Metrics to measure the maintenance activity and legacy software;
- Knowledge Management to recover all the knowledge that is embedded in legacy software;
- Tools (including Moose) needed to help managing software evolution;
- Other aspects of software maintenance management (software quality, risk management, ...).
Software Architecture
Systems are initially conceived with a given goal and scope in mind. As they evolve and new functionalities are added, this goal and scope will typically drift in unforeseen directions. After some time, it becomes necessary to straighten things by redefining a new architecture, taking into account the new scope of the system. I worked on methods to help in this task.
- An Exploratory Approach for Game Engine Architecture Recovery, 2023 IEEE/ACM 7th International Workshop on Games and Software Engineering (GAS), 8-15, 2023, PDF, DOI. ,
- Decomposing God Classes at Siemens, IEEE International Conference on Software Maintenance and Evolution (ICSME'19), 169–180, IEEE, 2019, PDF, URL, DOI. ,
- The Case for Non-Cohesive Packages, SQAMIA 2017 - 6th workshop on Software Quality Analysis, Monitoring, Improvement, and Applications, 2017, PDF, URL. ,
- How Can We Help Software Rearchitecting Efforts ? Study of an Industrial Case, Proceedings of the International Conference on Software Maintenance and Evolution, (Industrial Track), 2016, URL. ,
- Mining Architectural Violations from Version History, Empirical Software Engineering, 21, 854–895, 2016, PDF, DOI. ,
- Developers' Perception of Co-Change Patterns: An Empirical Study, Proceedings of the 31st IEEE International Conference on Software Maintenance, 2015, PDF. ,
- OrionPlanning: Improving Modularization and Checking Consistency on Software Architecture, 3rd IEEE Working Conference on Software Visualization (VISSOFT 2015) – Tool track, 190–194, 2015, PDF. ,
- A mapping study on architecture-driven modernization, Information Reuse and Integration (IRI), 2014 IEEE 15th International Conference on, 577-584, IEEE, 2014, DOI. ,
- Remodularization Analysis Using Semantic Clustering, Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE), 2014 Software Evolution Week-IEEE Conference on, 224–33, 2014, PDF. ,
- Assessing the Quality of Architectural Design Quality Metrics, 2013, URL. ,
- Towards Automatically Improving Package Structure While Respecting Original Design Decisions, International Working Conference on Reverse Engineering (WCRE'13), IEEE Computer Society Press, 2013, PDF. ,
- oZone: Layer identification in the presence of cyclic dependencies, Science of Computer Programming, 78, 1055–1072, 2013, PDF, DOI. ,
- Heuristics for Discovering Architectural Violations, Proceedings of the 20th Working Conference on Reverse Engineering (WCRE'13), 2013, PDF. ,
- Towards Automatically Improving Package Structure While Respecting Original Design Decisions, International Working Conference on Reverse Engineering (WCRE'13), IEEE Computer Society Press, 2013, PDF. ,
- Mining Architectural Patterns Using Association Rules, Proceedings of the 25th International Conference on Software Engineering and Knowledge Engineering (SEKE'13), 2013, PDF. ,
- A Catalog of Patterns for Concept Lattice Interpretation in Software Reengineering, Proceedings of the 24th International Conference on Software Engineering & Knowledge Engineering (SEKE 2012), 118–24, 2012, PDF. ,
- Legacy Software Restructuring: Analyzing a Concrete Case, Proceedings of the 15th European Conference on Software Maintenance and Reengineering (CSMR'11), 279–286, 2011, PDF. ,
- OZONE: Package Layered Structure Identification in presence of Cycles, Proceedings of the 9th edition of the Workshop BElgian-NEtherlands software eVOLution seminar (BENEVOL'10), 2010, PDF. ,
- Javacompext: Extracting architectural elements from java source code, Reverse Engineering, 2009. WCRE'09. 16th Working Conference on, 317–318, 2009. ,
- Ten years later, experiments with clustering as a software remodularization method, Reverse Engineering, 2009. WCRE'09. 16th Working Conference on, 7–7, 2009. ,
- Comparative study of clustering algorithms and abstract representations for software remodularization, IEE Proceedings – Software, 150, 185-201, 2003, PDF, DOI. ,
- Approaches to clustering for program comprehension and remodularization, Advances in software engineering: Comprehension, Evaluation, and Evolution, 137–157, Springer-Verlag New York, Inc., 2002, URL. ,
- A Comparison of Graphs of Concept for Reverse Engineering, Proceedings of the 8th International Workshop on Program Comprehension, 231–, IEEE Computer Society, 2000, PDF. ,
- Recovering Software Architecture from the Names of Source Files, Journal of Software Maintenance: Research and Practice, 11, 201–21, 1999, DOI. ,
- Experiments with Clustering as a Software Remodularization Method, Proceedings of Working Conference on Reverse Engineering (WCRE'99), 235–255, 1999, DOI. ,
- Extracting Concepts from File Names: a New File Clustering Criterion, Proceedings of the 20th international conference on Software engineering, 84–93, IEEE Computer Society, 1998, URL. ,
- File clustering using naming conventions for legacy systems, Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research, 184–195, IBM Press, 1997, URL. ,
Software Quality / Metrics
In software maintenance, the quality of the system (e.g., its source code, its architecture) can greatly impact the time it takes to understand it, or to introduce a new feature. In this sense, a good part of my research has been dedicated to software quality metrics and models.
- Automatic Recommendations for Evolving Relational Databases Schema, 2024, PDF, DOI. ,
- A manual categorization of new quality issues on automatically-generated tests, 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME), 2023. ,
- A manual categorization of new quality issues on automatically-generated tests, Proceedings of the 39st IEEE International Conference on Software Maintenance and Evolution (ICSME'23), 2023. ,
- Alce: Predicting Software Migration, Proceedings ICSE-SEIP '23 (the 45th International Conference on Software Engineering: Software Engineering in Practice Track), IEEE Press, 2023. ,
- Empirical Study of Programming to an Interface, Proceedings of 34th Conference on Automated Software Engineering (ASE'19), 2019, PDF, DOI. ,
- The Case for Non-Cohesive Packages, SQAMIA 2017 - 6th workshop on Software Quality Analysis, Monitoring, Improvement, and Applications, 2017, PDF, URL. ,
- Identifying class name inconsistency in hierarchy: a first simple heuristic, International Workshop on Smalltalk Technologies (IWST'17), 2017, PDF, DOI. ,
- CodeCritics Applied to Database Schema: Challenges and First Results, 24th IEEE International Conference on Software Analysis, Evolution, and Reengineering, 2017, PDF. ,
- Measuring the progress of an Industrial Reverse Engineering Process, BENEVOL'15: 14th BElgian-NEtherlands software eVOLution seminar, 2015, URL. ,
- Predicting the Health of a Project? An Assessment in a Major IT Company, 8th Seminar on Advanced Techniques & Tools for Software Evolution (SATToSE'15), 2015, PDF. ,
- Software metrics to predict the health of a project?, International Workshop on Smalltalk Technologies IWST'15, 2015, PDF, DOI. ,
- Predicting software defects with causality tests, Journal of Systems and Software (JSS), 93, 24–41, 2014, URL, DOI. ,
- BugMaps-Granger: a tool for visualizing and predicting bugs using Granger causality tests, Journal of Software Engineering Research and Development, 2, 1, Springer, 2014, PDF. ,
- BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs, Proceedings of the 4th Brazilian Conference on Software: Theory and Practice (CBSoft'13), 2013, URL. ,
- Assessing the Quality of Architectural Design Quality Metrics, 2013, URL. ,
- Software quality metrics aggregation in industry, Journal of Software: Evolution and Process, 25, 1117–1135, 2013, PDF, DOI. ,
- A Framework to Compare Alert Ranking Algorithms, International Working Conference on Reverse Engineering (WCRE'12), 2012, PDF. ,
- Uncovering Causal Relationships between Bugs and Software Metrics, Proceedings of the 16th European Conference on Software Maintenance and Reengineering (CSMR'12), 2012. ,
- Domain Specific Warnings: Are They Any Better?, International Conference on Software Maintenance (ICSM'12), 441-450, 2012, PDF, DOI. ,
- An empirical model for continuous and weighted metric aggregation, Proceedings of the 15th European Conference on Software Maintenance and Reengineering (CSMR'11), 141–150, 2011, PDF. ,
- Legacy Software Restructuring: Analyzing a Concrete Case, Proceedings of the 15th European Conference on Software Maintenance and Reengineering (CSMR'11), 279–286, 2011, PDF. ,
- Software Metrics for Package Remodularisation, 2011, PDF. ,
- Counselor, a Data Mining Based Time Estimation for Software Maintenance, Knowledge-Based and Intelligent Information and Engineering Systems, 364–371, Springer Berlin Heidelberg, 2009. ,
- Legacy Software Evaluation Model for Outsourced Maintainer, 8th European Conference on Software Maintenance and Reengineering (CSMR 2004), 48-57, IEEE Computer Society, 2004, DOI. ,
Knowledge Management
One of the conclusions of my research was that some tasks, like evaluating the quality of an architectural design, depend also on information of a different nature. For example, one may want to decompose a system according to the various market segments it targets (e.g., hotels, hospitals, or schools), or according to internal divisions in the organization using it (e.g., sales department, logistics department, etc.). This led me to work with more abstract concepts or consider the knowledge required from software maintainers to do their work.
- Software maintenance seen as a knowledge management issue, Information Software Technology, 49, 515–529, Butterworth-Heinemann, 2007, PDF, DOI. ,
- Which documentation for software maintenance?, Journal of the Brazilian Computer Society, 31–44, 2006, PDF, DOI. ,
- Pro-active dissemination of knowledge with learning histories, Proceedings of the Eighth International Workshop on Learning Software Organizations, 19–27, 2006, PDF. ,
- Software Maintenance Ontology, 5, Ontologies for Software Engineering and Software Technology, 153–173, Springer-Verlag New York, Inc., 2006, DOI. ,
- Merging Software Maintenance Ontologies: Our Experience, First Workshop on Ontology, Conceptualizations and Epistemology for Soft, IEEE Computer Society, 2005. ,
- A study of the documentation essential to software maintenance, Proceedings of the 23rd annual international conference on Design of communication: documenting & designing for pervasive information, 68–75, ACM, 2005, DOI. ,
- Learning Software Maintenance Organizations, Advances in Learning Software Organizations, 6th International Workshop, LSO 2004, 3096, 67-77, Springer, 2004. ,
- Organizing the Knowledge Used in Software Maintenance, Journal of Universal Computer Science, 9, 641–658, 2003, PDF, DOI. ,
- Organizing the Knowledge Used in Software Maintance, WM 2003: Professionelles Wissesmanagement - Erfahrungen und Visionen, Beiträge der 2. Konferenz Professionelles Wissensmanagement, 28, 65-72, 2003. ,
- Knowledge for Software Maintenance, Proceedings of the Fifteenth International Conference on Software Engineering & Knowledge Engineering (SEKE'2003), 61–68, 2003. ,
- A Disturbing Result on the Knowledge Used during Software Maintenance, 9th Working Conference on Reverse Engineering (WCRE 2002), 277-, IEEE Computer Society, 2002, DOI. ,
- Characterizing the Informal Knowledge Contained in Systems, WCRE '01: Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01), 166–175, IEEE Computer Society, 2001, PDF, DOI. ,
- Concepts + Relations = 'Abstract Constructs', WCRE'00: Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00), IEEE Computer Society, 2000, PDF. ,
- Assessing the relevance of identifier names in a legacy software system, Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research, 213–222, IBM Press, 1998, URL. ,
Tools
Because software evolution is difficult, tools are needed to help software engineers. We developped various tools in this sense, a prominent one being Moose, our platform for software analysis. It allows to represent software system in a model, to query, manipulate, transform, visualize this model. Many of our research results were only possible thanks to the tools provided by the platform.
- A Visualization for Client/Server Architecture Viewpoints and Architectural Violations, IEEE Working Conference on Software Visualization (VISSOFT), 2023. ,
- Visualising Game Engine Subsystem Coupling, IFIP International Conference on Entertainment Computing, 2023, URL, DOI. ,
- Pattern matching in Pharo, International Workshop on Smalltalk Technology (IWST'23), 2023. ,
- Analysing Microsoft Access Projects: Building a model in a Partially Observable Domain, International Conference on Software and Systems Reuse (ICSR'20), 2020, PDF. ,
- Modular Moose: A new generation of software reengineering platform, International Conference on Software and Systems Reuse (ICSR'20), 119–134, 2020, PDF, DOI. ,
- Decomposing God Classes at Siemens, IEEE International Conference on Software Maintenance and Evolution (ICSME'19), 169–180, IEEE, 2019, PDF, URL, DOI. ,
- Managing an Industrial Software Rearchitecting Project With Source Code Labelling, Complex Systems Design & Management conference (CSD&M), 2017, URL. ,
- CodeCritics Applied to Database Schema: Challenges and First Results, 24th IEEE International Conference on Software Analysis, Evolution, and Reengineering, 2017, PDF. ,
- Telescope: A High-Level Model to Build Dynamic Visualizations, International Workshop on Smalltalk Technologies (IWST'15), 2015, PDF. ,
- JSClassFinder: A Tool to Detect Class-like Structures in JavaScript, CBSOFT'15 - Brazilian Conference on Software: Theory and Practice, 2015, PDF. ,
- OrionPlanning: Improving Modularization and Checking Consistency on Software Architecture, 3rd IEEE Working Conference on Software Visualization (VISSOFT 2015) – Tool track, 190–194, 2015, PDF. ,
- Reverse Engineering Tool Requirements for Real Time Embedded Systems, Seminar on Advanced Techniques & Tools for Software Evolution (SATToSE'15), 2015, URL. ,
- BugMaps-Granger: a tool for visualizing and predicting bugs using Granger causality tests, Journal of Software Engineering Research and Development, 2, 1, Springer, 2014, PDF. ,
- Dedicated Software Analysis Tools, ERCIM News, 99, 22–23, 2014, PDF. ,
- APIEvolutionMiner: Keeping API Evolution under Control, Proceedings of the Software Evolution Week (CSMR-WCRE'14), 2014, PDF. ,
- A Generic Platform for Name Resolution in Source Code Analysis, 2014, URL. ,
- BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs, Proceedings of the 4th Brazilian Conference on Software: Theory and Practice (CBSoft'13), 2013, URL. ,
- oZone: Layer identification in the presence of cyclic dependencies, Science of Computer Programming, 78, 1055–1072, 2013, PDF, DOI. ,
- BugMaps: A Tool for the Visual Exploration and Analysis of Bugs, Proceedings of the 16th European Conference on Software Maintenance and Reengineering (CSMR'12) - Tool Demonstration Track, 2012, PDF. ,
- An Environment for dedicated Software Analysis tools, ERCIM News, 88, 12–13, 2012, PDF. ,
- MSE and FAMIX 3.0: an Interexchange Format and Source Code Model Family, 2011, PDF. ,
- OZONE: Package Layered Structure Identification in presence of Cycles, Proceedings of the 9th edition of the Workshop BElgian-NEtherlands software eVOLution seminar (BENEVOL'10), 2010, PDF. ,
- Architecture of a Source Code Exploration Tool: A Software Engineering Case Study, 1997. ,
Other
Beyond the main topics I studied (software rearchitecturing, software quality, knowledge involved in software maintenance) I also considered other aspects of the software maintenance ecosystem. For example, the organization within which the people work or the working processes this organization enforces.
- External Dependencies in Software Development, International Conference on the Quality of Information and Communications Technology, 215–232, 2023. ,
- Parsing Fortran-77 with proprietary extensions, 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME), Industry Track, 2023, PDF. ,
- What do developers consider magic literals? A smalltalk perspective, Information and Software Technology, 2022, PDF, DOI. ,
- Report From The Trenches A Case Study In Modernizing Software Development Practices, International Conference on Software Maintenance and Evolution (ICSME'21), IEEE, 2021, PDF. ,
- Recommendations for Evolving Relational Databases, International Conference on Advanced Information Systems Engineering (CAiSE'20), 12127, 498–514, Springer, 2020, URL, DOI. ,
- Characterizing Pharo Code: A Technical Report, 2020, PDF. ,
- Improving practices in a medium french company: First step, 2019, PDF. ,
- Relational Database Schema Evolution: An Industrial Case Study, 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME), 2018, PDF, DOI. ,
- Définition et identification des tables de nomenclatures, 36 ème édition d'INFormatique des ORganisations et Systèmes d'Information et de Décision (Inforsid 2018), 2018, PDF. ,
- Identifying Classes in Legacy JavaScript Code, Journal of Software: Evolution and Process, 2017, PDF, URL, DOI. ,
- Recommending Source Code Locations for System Specific Transformations, 24th IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER), 1–10, 2017, PDF. ,
- Identifying the Exact Bug Fixing Actions, 2016 7th International Workshop on Empirical Software Engineering in Practice (IWESEP), 51-56, 2016, DOI. ,
- A Lightweight Remodularization Process Based on Structural Similarity, 2016 X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS), 111-120, 2016, DOI. ,
- Clustering Techniques for Conceptual Cluster, International Workshop on Smalltalk Technologies IWST'16, 2016, URL, DOI. ,
- When should internal interfaces be promoted to public?, International Symposium on Foundations of Software Engineering (FSE'16), 2016, URL, DOI. ,
- Automatic Detection of System-Specific Conventions Unknown to Developers, Journal of Systems and Software, 109, 192-204, 2015, PDF, DOI. ,
- Does Javascript Software Embrace Classes?, Proceedings of the 22nd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER'15), 2015, PDF. ,
- Identifying the Exact Fixing Actions of Static Rule Violation, Proceedings of the 22nd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER'15), 2015, PDF. ,
- HDR - Supporting Software Evolution in the Organizations, 2014. ,
- A systematic review on mining techniques for crosscutting concerns, Proceedings of the 28th Annual ACM Symposium on Applied Computing, 1080–1087, 2013. ,
- Empirical research in software product line engineering, 14, Aspect-Oriented, Model-Driven Software Product Lines – The AMPLE way, 411–443, Cambridge University Press, 2011, DOI. ,
- Managing information flow in the SPL development processes, 8, Aspect-Oriented, Model-Driven Software Product Lines – The AMPLE way, 222–262, Cambridge University Press, 2011, DOI. ,
- A model-driven traceability framework for software product lines, Journal of Software and Systems Modeling (SOSYM), 9, 427–451, Springer-Verlag New York, Inc., 2010, PDF, DOI. ,
- An Examination of Software Engineering Work Practices, CASCON First Decade High Impact Papers, 174–188, IBM Corp., 2010, URL, DOI. ,
- Lignes de produits logiciels et usines logicielles, L'Objet, 14, 15–31, Lavoisier, 2008. ,
- Traceability for Model Driven, Software Product Line Engineering, ECMDA Traceability Workshop Proceedings, 77–86, SINTEF ICT, 2008, URL. ,
- Perception on software maintenance: a case study with information technology managers, International Conference on Information Systems and Technology Management, 5, 2008. ,
- A Model-Driven Traceability Framework to Software Product Line Development, ECMDA Traceability Workshop Proceedings, SINTEF ICT, 2008. ,
- La traçabilité dans les lignes de produits logiciels, L'Objet, 14, 47–57, Lavoisier, 2008. ,
- A Risk Taxonomy Proposal for Software Maintenance, Proceedings of the 21st IEEE International Conference on Software Maintenance, 453–461, IEEE Computer Society, 2005, DOI. ,
- Expressing opposition in the object model, first step towards negation, SIGPLAN Notices, 33, 48–55, ACM, 1998, DOI. ,
- An examination of software engineering work practices, Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research, 21–, IBM Press, 1997, PDF. ,