<?xml version="1.0" encoding="UTF-8"?><mets:mets xmlns:mets="http://www.loc.gov/METS/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:mads="http://www.loc.gov/mads/" xmlns:metsRights="http://cosimo.stanford.edu/sdr/metsrights/" xmlns:suj="http://www.theses.fr/namespace/sujets" xmlns:tef="http://www.abes.fr/abes/documents/tef" xmlns:tefextension="http://www.abes.fr/abes/documents/tefextension" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/METS/ http://www.abes.fr/abes/documents/tef/recommandation/tef_schemas.xsd">
<mets:metsHdr CREATEDATE="2023-12-01T16:40:57" ID="ABES.STAR.THESE_208885.METS_HEADER" LASTMODDATE="2026-04-27T16:19:56" RECORDSTATUS="valide">
<mets:agent ROLE="CREATOR">
<mets:name/>
<mets:note>Note</mets:note>
</mets:agent>
<mets:agent ROLE="DISSEMINATOR">
<mets:name>ABES</mets:name>
</mets:agent>
<mets:altRecordID ID="ABES.STAR.THESE_208885.METS_HEADER.ALTERNATE" TYPE=""/>
</mets:metsHdr>
<mets:dmdSec ID="ABES.STAR.THESE_208885.DESCRIPTION_BIBLIOGRAPHIQUE">
<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_desc_these">
<mets:xmlData>
<tef:thesisRecord>
<dc:title xml:lang="en">Bird-Eye Views of Object-Oriented Software</dc:title>
<dcterms:alternative xml:lang="fr">Vues à vol d’oiseau sur les systèmes orientés objet</dcterms:alternative>
<dc:subject xml:lang="fr">Visualisation de programme</dc:subject>
<dc:subject xml:lang="fr">Qualité logicielle</dc:subject>
<dc:subject xml:lang="fr">Violation de programme</dc:subject>
<dc:subject xml:lang="en">Program Visualization</dc:subject>
<dc:subject xml:lang="en">Program Comprehension</dc:subject>
<dc:subject xml:lang="en">Reverse Ingineering</dc:subject>
<dc:subject xml:lang="en">Modelization</dc:subject>
<dc:subject xml:lang="en">Software Quality</dc:subject>
<dc:subject xml:lang="en">Software Violation</dc:subject>
<dc:subject xsi:type="dcterms:DDC"/>
<tef:sujetRameau xml:lang="fr">
<tef:vedetteRameauNomCommun>
<tef:elementdEntree autoriteExterne="029643740" autoriteSource="Sudoc">Logiciels -- Maintenance</tef:elementdEntree>
</tef:vedetteRameauNomCommun>
<tef:vedetteRameauNomCommun>
<tef:elementdEntree autoriteExterne="033440506" autoriteSource="Sudoc">Rétro-ingénierie (informatique)</tef:elementdEntree>
</tef:vedetteRameauNomCommun>
<tef:vedetteRameauNomCommun>
<tef:elementdEntree autoriteExterne="12859683X" autoriteSource="Sudoc">Code source (informatique)</tef:elementdEntree>
</tef:vedetteRameauNomCommun>
<tef:vedetteRameauNomCommun>
<tef:elementdEntree autoriteExterne="033273510" autoriteSource="Sudoc">Architecture client-serveur (informatique)</tef:elementdEntree>
</tef:vedetteRameauNomCommun>
</tef:sujetRameau>
<dcterms:abstract xml:lang="fr">La maintenance logicielle est une tâche complexe. Elle requiert la lecture et la compréhension du programme ainsi que des investigations et des analyses du code source. Les mainteneurs se reposent généralement sur des outils tels que les environnements de développement intégrés (IDEs), les tests et les débogueurs pour naviguer à travers le code source, comprendre sa logique, détecter différentes anomalies et les corriger, etc. Cependant, ces techniques sont chronophages pour les mainteneurs et les entreprises. En effet, selon la littérature existante, plus de la moitié du temps consacré à la maintenance logicielle est attribué à la lecture et à la compréhension du code source avant de prendre des décisions ou d'apporter des modifications au logiciel.Cette thèse aborde la tâche de maintenance logicielle de manière nouvelle en proposant des visualisations novatrices qui répondent aux besoins des mainteneurs. Chaque visualisation est dédiée à une tâche spécifique inspirée des besoins des mainteneurs de logiciels de nos partenaires industriels. La recherche menée dans cette thèse se concentre sur un objectif principal qui est la détection de violations logicielles. Notre définition des violations, cependant, concerne trois principaux défis : la détection de violations architecturales, de violations de conventions de nommage et de (anti-)patterns de nommage, ainsi que de violations des principes du code propre à l'intérieur des classes. Pour relever ces défis, des visualisations ciblées sont proposées : Cliservo pour la détection des violations architecturales des programmes client-serveur. La ClassName Distribution (CnD) pour la détection de violations de nommage, et une amélioration de la ClassBlueprint originale (CBv2) pour la détection du code des classes de mauvaise qualité. Ces visualisations aident les mainteneurs à comprendre et à améliorer les systèmes logiciels, conduisant finalement à des processus de maintenance plus efficaces et durables.Chacune des visualisations est validée indépendamment auprès des mainteneurs de logiciels et sur une diversité de projets, y compris ceux de nos partenaires industriels.</dcterms:abstract>
<dcterms:abstract xml:lang="en">Software maintenance is a challenging task. It requires reading and understanding the software besides source code investigations and analysis. Maintainers usually rely on tools such as IDEs, tests and debuggers to navigate through the source code, understand its logic, detect different anomalies and correct them, etc. However, such techniques can be time-consuming for maintainers and companies. In fact, according to the existing literature, more than half of the time dedicated to software maintenance is spent reading and understanding the source code before making any changes or decisions on the software.This thesis takes a distinct approach to software maintenance by offering novel visualizations that answer to maintainers' needs. Each visualization is dedicated to a specific task inspired by the needs of the software maintainers of our industrial partners. The research done in this thesis focuses on one main objective which is detecting software violations. Our definition of violations, however, concerns three main challenges: detecting architectural violations, naming conventions violations and (anti-) naming patterns and finally, violations of clean code principles inside classes. To address these challenges, targeted visualizations are proposed: Cliservo for the detection of architectural violations in client-server software, ClassName Distribution (CnD) for the detection of naming violations, and innovation of the patrimonial ClassBlueprint Visualization (CBv2) for detecting bad quality classes' source code. These visualizations assist maintainers in understanding and improving software systems, ultimately leading to more efficient and sustainable maintenance processes.Each of the visualizations is validated independently with software maintainers and a diversity of projects including the ones of our industrial partners.</dcterms:abstract>
<dc:type>Electronic Thesis or Dissertation</dc:type>
<dc:type xsi:type="dcterms:DCMIType">Text</dc:type>
<dc:language xsi:type="dcterms:RFC3066">en</dc:language>
</tef:thesisRecord>
</mets:xmlData>
</mets:mdWrap>
</mets:dmdSec>
<mets:dmdSec ID="ABES.STAR.THESE_208885.VERSION_COMPLETE.DESCRIPTION.EDITION_ARCHIVAGE">
<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_desc_edition">
<mets:xmlData>
<tef:edition>
<dcterms:medium xsi:type="dcterms:IMT">PDF</dcterms:medium>
<dcterms:extent>6633538</dcterms:extent>
<dc:identifier xsi:type="dcterms:URI">https://pepite-depot.univ-lille.fr/LIBRE/EDMADIS/2023/2023ULILB033.pdf</dc:identifier>
<dc:identifier xsi:type="dcterms:URI">https://theses.fr/2023ULILB033/abes</dc:identifier>
<dc:identifier xsi:type="dcterms:URI">https://theses.hal.science/tel-04516484</dc:identifier>
<dc:identifier xsi:type="dcterms:URI">https://theses.hal.science/tel-04516484</dc:identifier>
<dc:identifier xsi:type="dcterms:URI">https://theses.hal.science/tel-04516484</dc:identifier>
</tef:edition>
</mets:xmlData>
</mets:mdWrap>
</mets:dmdSec>
<mets:amdSec>
<mets:techMD ID="ABES.STAR.THESE_208885.ADMINISTRATION">
<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_admin_these">
<mets:xmlData>
<tef:thesisAdmin>
<tef:auteur>
<tef:nom>Agouf</tef:nom>
<tef:prenom>Nour Jihene</tef:prenom>
<tef:nomDeNaissance>Agouf</tef:nomDeNaissance>
<tef:dateNaissance>1996-03-06</tef:dateNaissance>
<tef:nationalite scheme="ISO-3166-1">DZ</tef:nationalite>
<tef:autoriteExterne autoriteSource="Sudoc">27656832X</tef:autoriteExterne>
</tef:auteur>
<dc:identifier xsi:type="tef:nationalThesisPID">https://theses.fr/2023ULILB033</dc:identifier>
<dc:identifier xsi:type="tef:NNT">2023ULILB033</dc:identifier>
<dc:identifier xsi:type="tef:DOI">https://doi.org/10.70675/002c8550z8ac1z46a2zbea2zd71f54cf18c7</dc:identifier>
<dcterms:dateAccepted xsi:type="dcterms:W3CDTF">2023-12-12</dcterms:dateAccepted>
<tef:thesis.degree>
<tef:thesis.degree.discipline xml:lang="fr">Informatique et applications</tef:thesis.degree.discipline>
<tef:thesis.degree.grantor>
<tef:nom>Université de Lille (2022-....)</tef:nom>
<tef:autoriteExterne autoriteSource="Sudoc">259265152</tef:autoriteExterne>
</tef:thesis.degree.grantor>
<tef:thesis.degree.level>Doctorat</tef:thesis.degree.level>
<tef:thesis.degree.name xml:lang="fr">Docteur es</tef:thesis.degree.name>
</tef:thesis.degree>
<tef:theseSurTravaux>non</tef:theseSurTravaux>
<tef:avisJury>oui</tef:avisJury>
<tef:directeurThese>
<tef:nom>Etien</tef:nom>
<tef:prenom>Anne</tef:prenom>
<tef:autoriteInterne>MADS_DIRECTEUR_DE_THESE_1</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="Sudoc">102053332</tef:autoriteExterne>
</tef:directeurThese>
<tef:directeurThese>
<tef:nom>Ducasse</tef:nom>
<tef:prenom>Stéphane</tef:prenom>
<tef:autoriteInterne>MADS_DIRECTEUR_DE_THESE_2</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="Sudoc">034814884</tef:autoriteExterne>
</tef:directeurThese>
<tef:presidentJury>
<tef:nom>Bruel</tef:nom>
<tef:prenom>Jean-Michel</tef:prenom>
<tef:autoriteInterne>MADS_PRESIDENT_DU_JURY</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="Sudoc">175721068</tef:autoriteExterne>
</tef:presidentJury>
<tef:membreJury>
<tef:nom>Thiefaine</tef:nom>
<tef:prenom>Arnaud</tef:prenom>
<tef:autoriteInterne>MADS_MEMBRE_DU_JURY_1</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="Sudoc">094202362</tef:autoriteExterne>
</tef:membreJury>
<tef:rapporteur>
<tef:nom>Falleri</tef:nom>
<tef:prenom>Jean-Rémy</tef:prenom>
<tef:autoriteInterne>MADS_RAPPORTEUR_1</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="Sudoc">139291512</tef:autoriteExterne>
</tef:rapporteur>
<tef:rapporteur>
<tef:nom>Urtado</tef:nom>
<tef:prenom>Christelle</tef:prenom>
<tef:autoriteInterne>MADS_RAPPORTEUR_2</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="Sudoc">103581537</tef:autoriteExterne>
</tef:rapporteur>
<tef:ecoleDoctorale>
<tef:nom>École graduée Mathématiques, sciences du numérique et de leurs interactions (Lille ; 2021-....)</tef:nom>
<tef:autoriteInterne>MADS_ECOLE_DOCTORALE_1</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="Sudoc">258621362</tef:autoriteExterne>
</tef:ecoleDoctorale>
<tef:partenaireRecherche type="laboratoire">
<tef:nom>Centre de Recherche en Informatique, Signal et Automatique de Lille</tef:nom>
<tef:autoriteInterne>MADS_PARTENAIRE_DE_RECHERCHE_1</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="labTEL">410272</tef:autoriteExterne>
<tef:autoriteExterne autoriteSource="Sudoc">18388695X</tef:autoriteExterne>
</tef:partenaireRecherche>
<tef:partenaireRecherche type="laboratoire">
<tef:nom>Centre Inria de l'Université de Lille</tef:nom>
<tef:autoriteInterne>MADS_PARTENAIRE_DE_RECHERCHE_2</tef:autoriteInterne>
<tef:autoriteExterne autoriteSource="labTEL">104752</tef:autoriteExterne>
<tef:autoriteExterne autoriteSource="Sudoc">185432247</tef:autoriteExterne>
</tef:partenaireRecherche>
<tef:oaiSetSpec>ddc:004</tef:oaiSetSpec>
<tef:MADSAuthority authorityID="MADS_DIRECTEUR_DE_THESE_1" type="personal">
<tef:personMADS>
<mads:namePart type="family">Etien</mads:namePart>
<mads:namePart type="given">Anne</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_DIRECTEUR_DE_THESE_2" type="personal">
<tef:personMADS>
<mads:namePart type="family">Ducasse</mads:namePart>
<mads:namePart type="given">Stéphane</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_PRESIDENT_DU_JURY" type="personal">
<tef:personMADS>
<mads:namePart type="family">Bruel</mads:namePart>
<mads:namePart type="given">Jean-Michel</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_MEMBRE_DU_JURY_1" type="personal">
<tef:personMADS>
<mads:namePart type="family">Thiefaine</mads:namePart>
<mads:namePart type="given">Arnaud</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_RAPPORTEUR_1" type="personal">
<tef:personMADS>
<mads:namePart type="family">Falleri</mads:namePart>
<mads:namePart type="given">Jean-Rémy</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_RAPPORTEUR_2" type="personal">
<tef:personMADS>
<mads:namePart type="family">Urtado</mads:namePart>
<mads:namePart type="given">Christelle</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_ECOLE_DOCTORALE_1" type="corporate">
<tef:personMADS>
<mads:namePart type="family">École graduée Mathématiques, sciences du numérique et de leurs interactions (Lille ; 2021-....)</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_PARTENAIRE_DE_RECHERCHE_1" type="corporate">
<tef:personMADS>
<mads:namePart type="family">Centre de Recherche en Informatique, Signal et Automatique de Lille</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
<tef:MADSAuthority authorityID="MADS_PARTENAIRE_DE_RECHERCHE_2" type="corporate">
<tef:personMADS>
<mads:namePart type="family">Centre Inria de l'Université de Lille</mads:namePart>
</tef:personMADS>
</tef:MADSAuthority>
</tef:thesisAdmin>
</mets:xmlData>
</mets:mdWrap>
</mets:techMD>
<mets:techMD ID="ABES.STAR.THESE_208885.VERSION_COMPLETE.EDITION_ARCHIVAGE.TECH_FICHIER.DOSSIER_1.DOSSIER_1.FICHIER_1">
<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_tech_fichier">
<mets:xmlData>
<tef:meta_fichier>
<tef:formatFichier>PDF</tef:formatFichier>
<tef:taille>6633538</tef:taille>
</tef:meta_fichier>
</mets:xmlData>
</mets:mdWrap>
</mets:techMD>
<mets:rightsMD ID="ABES.STAR.THESE_208885.DROITS_UNIVERSITE">
<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_droits_etablissement_these">
<mets:xmlData>
<metsRights:RightsDeclarationMD RIGHTSCATEGORY="CONTRACTUAL">
<metsRights:Context CONTEXTCLASS="GENERAL PUBLIC">
<metsRights:Permissions COPY="false" DELETE="false" DISPLAY="true" DUPLICATE="true" MODIFY="false" PRINT="true"/>
</metsRights:Context>
<metsRights:Context CONTEXTCLASS="INSTITUTIONAL AFFILIATE">
<metsRights:Permissions COPY="false" DELETE="false" DISPLAY="true" DUPLICATE="true" MODIFY="false" PRINT="true"/>
</metsRights:Context>
</metsRights:RightsDeclarationMD>
</mets:xmlData>
</mets:mdWrap>
</mets:rightsMD>
<mets:rightsMD ID="ABES.STAR.THESE_208885.DROITS_DOCTORANT">
<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_droits_auteur_these">
<mets:xmlData>
<metsRights:RightsDeclarationMD RIGHTSCATEGORY="CONTRACTUAL">
<metsRights:Context CONTEXTCLASS="GENERAL PUBLIC">
<metsRights:Permissions COPY="false" DELETE="false" DISPLAY="true" DUPLICATE="true" MODIFY="false" PRINT="true"/>
</metsRights:Context>
<metsRights:Context CONTEXTCLASS="INSTITUTIONAL AFFILIATE">
<metsRights:Permissions COPY="false" DELETE="false" DISPLAY="true" DUPLICATE="true" MODIFY="false" PRINT="true"/>
</metsRights:Context>
</metsRights:RightsDeclarationMD>
</mets:xmlData>
</mets:mdWrap>
</mets:rightsMD>
<mets:rightsMD ID="ABES.STAR.THESE_208885.VERSION_COMPLETE.DROITS">
<mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_droits_version">
<mets:xmlData>
<metsRights:RightsDeclarationMD RIGHTSCATEGORY="CONTRACTUAL">
<metsRights:Context CONTEXTCLASS="GENERAL PUBLIC">
<metsRights:Permissions COPY="false" DELETE="false" DISPLAY="true" DUPLICATE="true" MODIFY="false" PRINT="true"/>
</metsRights:Context>
<metsRights:Context CONTEXTCLASS="INSTITUTIONAL AFFILIATE">
<metsRights:Permissions COPY="false" DELETE="false" DISPLAY="true" DUPLICATE="true" MODIFY="false" PRINT="true"/>
</metsRights:Context>
</metsRights:RightsDeclarationMD>
</mets:xmlData>
</mets:mdWrap>
</mets:rightsMD>
</mets:amdSec>
<mets:fileSec>
<mets:fileGrp ID="ABES.STAR.THESE_208885.VERSION_COMPLETE.EDITION_ARCHIVAGE.FILEGRP" USE="archive_et_diffusion">
<mets:file ADMID="ABES.STAR.THESE_208885.VERSION_COMPLETE.EDITION_ARCHIVAGE.TECH_FICHIER.DOSSIER_1.DOSSIER_1.FICHIER_1" ID="ABES.STAR.THESE_208885.VERSION_COMPLETE.EDITION_ARCHIVAGE.DOSSIER_1.DOSSIER_1.FICHIER_1" SEQ="1">
<mets:FLocat LOCTYPE="URL" xlink:href="ULIL/THESE_208885/document/0/0/These_AGOUF_Nour_Jihene.pdf"/>
</mets:file>
</mets:fileGrp>
</mets:fileSec>
<mets:structMap TYPE="logical">
<mets:div ADMID="ABES.STAR.THESE_208885.ADMINISTRATION ABES.STAR.THESE_208885.DROITS_UNIVERSITE ABES.STAR.THESE_208885.DROITS_DOCTORANT" CONTENTIDS="CONTENTIDS.ABES.STAR.THESE_208885" DMDID="ABES.STAR.THESE_208885.DESCRIPTION_BIBLIOGRAPHIQUE" TYPE="THESE">
<mets:div ADMID="ABES.STAR.THESE_208885.VERSION_COMPLETE.DROITS" CONTENTIDS="CONTENTIDS.ABES.STAR.THESE_208885.ABES.STAR.THESE_208885.VERSION_COMPLETE" TYPE="VERSION_COMPLETE">
<mets:div CONTENTIDS="CONTENTIDS.ABES.STAR.THESE_208885.VERSION_COMPLETE.EDITION_ARCHIVAGE" DMDID="ABES.STAR.THESE_208885.VERSION_COMPLETE.DESCRIPTION.EDITION_ARCHIVAGE" TYPE="EDITION">
<mets:fptr FILEID="ABES.STAR.THESE_208885.VERSION_COMPLETE.EDITION_ARCHIVAGE.FILEGRP"/>
</mets:div>
</mets:div>
</mets:div>
</mets:structMap>
</mets:mets>