26 research outputs found

    Organisation des développeurs open-source et fiabilité logicielle

    Get PDF
    Reliability of a software, i.e. its capacity to produce the expected behaviour, is essential to the success of software projects. To ensure such reliability, developers need to reduce the amount of bugs in the source code of the software. One of the techniques available to help developers in this task is the use of software metrics, and especially metrics related to the development process.The general objective of this thesis is to contribute to the validation of process metrics, by studying their relationship with software reliability. These metrics, once validated, can be used in bug predictionmodels with the goal to guide maintenance efforts or can be used to create development guidelines. Given the extent of this domain, we chose to focus on one particular aspect of the development process, which is developers organisation, and we studied this organisation in open-source software projects.In parallel to the validation of process metrics, we contributed to the improvement of the methodology used to extract and analyse metrics, thanks to information available in software repositories.La fiabilité du logiciel, c’est-à-dire sa capacité à produire les fonctionnalités attendues, est essentielle au succès des projets de développement logiciel. Afin de garantir cette fiabilité, les développeurs ont pour objectif de réduire le nombre de bogues présents dans le code source du logiciel.Une des techniques ayant pour but d’aider les développeurs dans cette tâche est l’utilisation de métriques logicielles, et notamment de métriques liées au procédé de développement.L’objectif général de cette thèse est de contribuer à la validation de métriques de procédé en étudiant leur relation avec la fiabilité. Ces métriques, une fois validées, pourront être utilisées dans des modèles de prédiction de bogues ayant pour but de mieux orienter les efforts de maintenance des développeurs ou pourront permettre de mettre en place des lignes de conduite relatives au procédé de développement. Devant l’étendue de ce domaine, nous avons centré nos contributions sur un aspect du procédé de développement qui est l’organisation des développeurs et avons observé cette organisation dans des projets open-source.En parallèle de la validation de ces métriques, nous avons contribué à l’amélioration de la méthodologie permettant l’extraction et l’analyse de métriques, grâce aux informations contenues dans les dépôts logiciels

    Analyse, évaluation et amélioration de la performance du processus de développement libre : une approche par la norme ISO/IEC 29110

    Get PDF
    Les F/OSS font face à de nombreux problèmes de qualité [67, 108, 115] et cette problématique de qualité est d'actualité. Malgré un nombre important de publications sur les F/OSS, nous déplorons la rareté des recherches qui se sont penchées sur l'application des normes de base de développement du génie logiciel au processus de développement libre. Cependant, certains projets libres ont pu développer du logiciel de qualité et ont maintenu ce niveau de qualité dans les logiciels développés ou maintenus au sein de leurs communautés. Cette recherche a donc pour but d'analyser si une norme de développement du génie logiciel telle que la jeune norme ISO/IEC 29110 peut soutenir ou améliorer le processus de développement libre compte tenu de la culture du libre. La méthodologie de recherche utilisée est divisée en deux phases. La première phase est une étude exploratoire des F/OSS au travers de l'étude des projets : Linux, Apache, Mozilla et GNOME. Elle a permis de se familiariser aux F/OSS, d'identifier les problèmes de qualité rencontrés, d'extraire et d'évaluer le processus de développement actuel des F/OSS par rapport à la norme ISO/IEC 29110. Les résultats de cette évaluation rejoignent à littérature en ce sens que le développement libre souffre d'un manque de documentation. La deuxième phase consiste en une analyse de compatibilité des activités du processus d'implémentation de la norme ISO/IEC 29110 avec les F/OSS, afin d'identifier les activités de la norme qui sont compatibles aux F/OSS. Cette évaluation a permis l'identification de 4 activités de la norme ISO/IEC 29110 qui sont compatibles aux F/OSS, et qui ont été la base d'une stratégie d'amélioration de la performance du processus de développement libre.\ud ______________________________________________________________________________ \ud MOTS-CLÉS DE L’AUTEUR : Assurance qualité, qualité, processus de développement, valeurs, logiciels libres, valeurs, culture, principes, activités, artefacts, norme de développement du génie logiciel, logiciels open source, génie logiciel

    Caractérisation de projets de développement logiciel dans une perspective de flux de connaissances

    Get PDF
    RÉSUMÉ Face aux ratés auxquelles fait face l'industrie du développement logiciel et l'incapacité des différentes approches de processus logiciels à régler ces problèmes, il s‘avère intéressant de se baser, d‘une part, sur les acquis du domaine des processus logiciels et, d‘autre part, de s‘inspirer des innovations de domaines connexes. En particulier, la gestion des connaissances appliquée au génie logiciel est un sujet présentement en émergence. Une meilleure compréhension des mécanismes de création et de conversion de connaissances au sein d'un projet de développement logiciel est une avenue de recherche prometteuse. L'objectif principal de cette thèse de doctorat est donc de caractériser les projets de développement logiciel dans une perspective de flux de connaissances. Cette thèse par articles propose d'atteindre l'objectif de recherche par la présentation de trois articles en plus d'un chapitre détaillant des résultats complémentaires. Le premier article présente et justifie la méthodologie utilisée dans le cadre des travaux de recherche de cette thèse. Plus précisément, l'article détaille la méthodologie ATS (activity time slip), une approche à partir de laquelle des développeurs logiciels doivent enregistrer leurs activités dans une perspective de connaissances. Les données recueillies sont ensuite codifiées selon le modèle de flux de connaissances, qui est inspiré du modèle de création de connaissances de Nonaka & Takeuchi (1995) et qui définit six facteurs cognitifs dans le cadre d'un projet de développement logiciel: l'acquisition, la cristallisation, la validation, la réalisation, la vérification et l'organisation du travail. Une étude de cas multiples est présentée, afin de démontrer l'originalité et la pertinence de la méthodologie proposée. Le second article présente l'utilisation du modèle de flux de connaissances, dans le cadre d'une étude de cas, afin d'analyser les conséquences de la qualité de la documentation lors de la réutilisation de composants FLOSS (free/libre open source software). L'analyse de l'étude de cas permet de déterminer les conséquences négatives d'une documentation inadéquate sur le flux de connaissances au sein d'un projet de développement logiciel. Le troisième article vise à comprendre les mécanismes menant aux divergences observées entre la conception et l'implémentation d'un projet de développement logiciel. L'utilisation de la méthodologie ATS et du modèle de flux de connaissances facilite l'analyse de l'étude de cas. Ainsi, les discordances entre les artefacts de conception et l'implémentation s'expliquent par le fait que la conception n'est qu'une image de possibilités. Les résultats de recherche complémentaires permettent de caractériser trois projets intégrateurs de développement logiciel, à la manière d'une étude de cas multiples de type exploratoire reposant sur la méthodologie ATS et la modélisation par flux de connaissances. Ainsi, l'analyse des jetons d'activité (ATS) permet de porter un jugement sur la rigueur des développeurs et donc sur la fiabilité des jetons, selon les trois profils identifiés. De plus, les facteurs cognitifs sont caractérisés selon leur caractère individuel et participatif. Par ailleurs, le séquencement cognitif permet l'identification de quatre profils de développeurs: le cristallisateur, le codeur, le polyvalent et l'agent libre. Finalement, une forte corrélation a été observée entre un effort d'acquisition élevé et une productivité du code source faible, ce qui constitue une contribution majeure, de par son originalité et ses conséquences théoriques et pratiques.----------ABSTRACT Given the failures faced by the software development industry and the inability of different software process approaches to solve these problems, it is interesting to rely, on the one hand, on achievements in the software process field and, on the other hand, learn from innovations in related fields. In particular, knowledge management applied to software engineering is a subject currently emerging. A better understanding of knowledge creation and conversion's mechanisms in software development projects is promising. The main objective of this thesis is to characterize software development projects from a knowledge flow perspective. This doctoral thesis intends to achieve the research goal by presenting three papers and additional complementary results. The first paper presents and justifies the methodology used in this thesis. The paper details the ATS (activity time slip) methodology, where software developers must log their activities from a knowledge perspective. Data are then codified based on the knowledge flow model, which is related to Nonaka and Takeuchi‘s (1995) knowledge creation model and which defines six cognitive factors: acquisition, crystallization, validation, implementation, verification and work organization. A multiple case study is presented to demonstrate the originality and relevance of the proposed methodology. The second paper presents a case study using the knowledge flow model to analyze the consequences of documentation quality in FLOSS components reuse. The case study's analysis allows the identification of negative consequences on a software development project's knowledge flow resulting from inadequate documentation. The third paper focuses on understanding the mechanisms leading to discrepancies between design and implementation in a software development project. The use of the ATS methodology and the knowledge flow model facilitates the case study's analysis. The discrepancies between design artifacts and implementation can be explained by the fact that design is an image of possibilities. Complementary research results allow the characterization of three software development capstone projects by means of an exploratory multiple case study based on the ATS methodology and the knowledge flow model. The analysis of the activity time slips (ATS) allows to judge the developers' rigor and therefore the reliability of their activity time slips, according to three identified patterns. Also, cognitive factors are characterized from a individual and participative viewpoint. Furthermore, cognitive sequencing allows the identification of four developers profiles: the crystallizer, the coder, the "versatile", and the free agent. Moreover, a strong correlation was observed between high acquisition effort and low source code productivity, which is a major contribution, because of its theoretical and practical implications

    Catalogue de patrons de sécurité, de fiabilité et de sûreté dans le contexte des habitats intelligents pour personnes ayant des troubles cognitifs

    Get PDF
    D’après les derniers rapports de recensement, les pays occidentaux font face à une augmentation de la population vieillissante. Le vieillissement normal de la population entraîne une augmentation de maladies ou d’accidents. Ceci conduit à la perte d’autonomie et réduit la qualité de vie des personnes âgées notamment les personnes atteintes de la maladie d’Alzheimer. Cette dernière provoque principalement des pertes cognitives. Pour pallier à ce problème, un habitat rendu intelligent grâce à l’informatique diffuse permet d’interagir avec son occupant. Un tel habitat intelligent améliorera ou lui redonnera son autonomie et l’aidera à réaliser ses activités, voire interviendra pour éviter des situations à risque. Le développement d’habitat intelligent amène de nouveaux défis en matière de sécurité, de fiabilité et de sûreté du patient. Il nécessite que les questions de sécurité, de fiabilité et de sûreté soient prises en compte dès le départ par les développeurs d’applications du domaine des habitats intelligents. Malheureusement, ces développeurs ne sont pas experts en sécurité, en fiabilité ou et en sûreté. Ces aspects sont souvent remis à plus tard, ce qui aboutit généralement à des applications fonctionnelles, mais peu sécuritaires. Les déficits cognitifs imposent aussi des contraintes supplémentaires ou nouvelles en ce qui a trait à la sécurité, la fiabilité et la sûreté. Dans ce contexte, cette thèse propose de répondre aux problèmes de sécurité, de fiabilité et de sûreté des patients souffrant de troubles cognitifs lors de leur séjour dans un habitat intelligent. Pour cela, un catalogue de patrons de sécurité, de fiabilité et de sûreté est créé pour fournir un outil aux développeurs d’application de ce domaine. Dans un premier temps, une liste de besoins de sécurité, de fiabilité et de sûreté est identifiée à partir de scénarios illustrant la vie du patient et ses interactions avec les intervenants du service de santé, sa famille et son nouvel environnement. Ensuite les solutions identifiées sont encapsulées sous forme de patrons et regroupées dans un catalogue mis à la disposition des développeurs. Les patrons de ce catalogue sont alors utilisés pour répondre aux besoins initialement formulés soient isolément, soient en combinaison avec d’autres patrons. La discussion finale permettra d’éclairer les avantages et limites de cette approche, et présentera des pistes à suivre pour étendre le catalogue de patrons

    Vers un système d'aide à la décision pour la conception en génie logiciel : une approche basée sur les connaissances

    Get PDF
    Les métriques logicielles jouent un rôle très important dans la prédiction de la qualité. Elles aident les gestionnaires dans la prise de décisions afin de budgétiser, contrôler, estimer le coût et analyser les risques d'un produit au cours de son développement. Dans ce travail, nous proposons une approche basée sur les connaissances pour analyser et estimer des facteurs de qualité dans des systèmes à objets. Pour concrétiser notre approche, nous avons construit un prototype regroupant les fonctionnalités de deux logiciels. Nous avons utilisé le logiciel Weka pour faire l'apprentissage automatique de connaissances et ainsi construire des modèles prédictifs. Ensuite, nous avons traduit ces modèles en un système à base de règle JRules, pour la prédiction et la prise de décision. Ces deux fonctions principales sont offertes pour deux types d'utilisateur : un débutant et un expert dans le domaine de la conception en génie logiciel. Le rôle principal de l'expert est de valider un tel modèle prédictif. Nous avons expérimenté notre prototype sur des bases de données qui représentent des mesures de métriques récoltées sur des logiciels fonctionnels. Les résultats obtenus dans le cadre de différentes expériences permettent de prédire et d'estimer certains facteurs de qualité tels que la maintenabilité, la réutilisabilité et la prédisposition aux fautes.\ud ______________________________________________________________________________ \ud MOTS-CLÉS DE L’AUTEUR : Qualité du logiciel, apprentissage automatique, base de connaissances, modèles prédictifs, système à base de règles, prise de décision

    Contributions des patrons de conception et d'architecture aux nouvelles capacités de la plateforme TI, en particulier de la composante Smart Grid, d'une entreprise nord-américaine d'énergie, en soutien à une stratégie digitale

    Get PDF
    La constante évolution des processus d'affaires d'aujourd'hui, en combinaison avec les technologies de l'information et de la communication de plus en plus performantes, poussent les gestionnaires à se tourner en faveur d'une automatisation globale des systèmes impliqués dans l'industrie, plus particulièrement, dans le secteur de l'énergie. Dans ce sens, les technologies de l'information et de la communication supportent les réseaux avec une grande intégration des données qui contrôlent les opérations qui leur sont assignées. Plus particulièrement, les systèmes informatiques concernant les compteurs électriques sont basés sur des architectures inspirées du modèle de bus de services d'entreprise (ESB en anglais) placées dans des plateformes TI contenant également une stratégie digitale servant de médiateur entre les fournisseurs des services et les clients. Ces systèmes d'architecture fonctionnelle sont composés de deux séries de patrons de conception et d'architecture travaillant ensemble. Ces séries fonctionnelles donnent une performance accrue aux processus dans les plateformes TI soutenant une stratégie digitale tout en générant de grandes contributions aux entreprises qui l'utilisent. Explorer et identifier ces contributions va nous faire découvrir leur force dans le domaine de l'énergie avec tous les aboutissements, les gains techniques et d'affaires. Le Smart Grid désigne un type de réseau de distribution électrique, dit « intelligent », car il est supporté par les technologies de l'information et de la communication permettant la production, la collecte, la distribution et la consommation d'énergie. Le Smart Grid en étant une instance de la SD, l'élément essentiel de base des Smart Grid consiste tout simplement à mesurer en permanence le besoin réel des consommateurs pour produire la quantité d'énergie dont ils ont besoin. En Amérique du Nord, les besoins spécifiques d'énergie relevant des pics de consommation tant hivernaux qu'estivaux, font en sorte que de grosses et complexes infrastructures technologiques ont vu le jour et ont été mises en place afin d'améliorer la qualité et la performance du service aux consommateurs. Dans ce mémoire, nous nous sommes intéressés à investiguer la description des contributions des patrons de conception et d'architecture supportant les systèmes contenus dans les plateformes TI d'une entreprise d'énergie impliquant la stratégie digitale et profitant amplement de ces contributions sur les plans techniques, financier et organisationnel.\ud ______________________________________________________________________________ \ud MOTS-CLÉS DE L’AUTEUR : Patrons de conception et d'architecture, stratégie digitale, plateforme TI, Smart Grid

    Analyse comparative du guide swebok et des principes fondamentaux du génie logiciel

    Get PDF
    Le génie logiciel est une discipline récente et il y a maintenant un besoin d'améliorer ses bases pour encadrer son évolution et atteindre un certain niveau de maturité. Cette analyse comparative est motivée par l'amélioration de ces bases. Elle utilise la liste des principes fondamentaux suggérés dans l'article «Fundamental Principles of Software Engineering - A journey» et présente une méthodologie aidant à analyser le niveau et l'étendue de la correspondance d'un principe fondamental par rapport aux connaissances généralement reconnues du «Guide to the Software Engineering Body of Knowledge» (Guide SWEBOK). Les résultats de l'analyse facilitent l'identification de notions permettant de produire une description d'accompagnement des principes fondamentaux de l'étude, de présenter les citations justifiant la présence de ces notions et de produire les descriptions d'accompagnement. Les résultats de l'analyse permettent aussi d'identifier des pistes pour améliorer le contenu du Guide SWEBOK ou les connaissances de la discipline

    Intégration de la sûreté de fonctionnement dans les processus d'ingénierie système

    Get PDF
    L'intégration de diverses technologies, notamment celles de l'informatique et l'électronique, fait que les systèmes conçus de nos jours sont de plus en plus complexes. Ils ont des comportements plus élaborés et plus difficiles à prévoir, ont un nombre de constituants en interaction plus important et/ou réalisent des fonctions de plus haut niveau. Parallèlement à cette complexification des systèmes, la compétitivité du marché mondial impose aux développeurs de systèmes des contraintes de coût et de délais de plus en plus strictes. La même course s'opère concernant la qualité des systèmes, notamment lorsque ceux-ci mettent en jeu un risque en vies humaines ou un risque financier important. Ainsi, les développeurs sont contraints d'adopter une approche de conception rigoureuse pour répondre aux exigences du système souhaité et satisfaire les diverses contraintes (coût, délais, qualité, sûreté de fonctionnement,...). Plusieurs démarches méthodologiques visant à guider la conception de système sont définies par l'intermédiaire de normes d'Ingénierie Système. Notre travail s'appuie sur la norme EIA-632, qui est largement employée, en particulier dans les domaines aéronautique et militaire. Il consiste à améliorer les processus d'ingénierie système décrits par l'EIA-632, afin d'intégrer une prise en compte globale et explicite de la sûreté de fonctionnement. En effet, jusqu'à présent la sûreté de fonctionnement était obtenue par la réutilisation de modèles génériques après avoir étudié et développé chaque fonction indépendamment. Il n'y avait donc pas de prise en compte spécifique des risques liés à l'intégration de plusieurs technologies. Pour cette raison, nous proposons de nous intéresser aux exigences de Sûreté de Fonctionnement au niveau global et le plus tôt possible dans la phase de développement, pour ensuite les décliner aux niveaux inférieurs, ceci en s'appuyant sur les processus de la norme EIA-632 que nous étoffons. Nous proposons également une méthode originale de déclinaison d'exigences de sûreté de fonctionnement à base d'arbres de défaillances et d'AMDEC, ainsi qu'un modèle d'information basé sur SysML pour appuyer notre approche. Un exemple issu du monde aéronautique permet d'illustrer nos propositions.The integration of various technologies, including computer and electronics, makes the nowadays designed systems increasingly complex. They have behaviors which are more elaborate and difficult to predict, they have a greater number of components in interaction and/or perform highest level functions. Parallel to this increasing complexity of these systems, the competitive of the global market imposes strong constraints of cost and time to the system developers. Other strong constraints deal with the quality of these systems, especially when they involve human risks or significant financial risks. Thus, developers are forced to adopt a rigorous design approach to meet the desired system requirements and satisfy the various constraints (cost, time, quality, dependability...). Several methodological approaches to guide the system design are defined through system engineering standards. Our work is based on the EIA-632 standard, which is widely used, especially in the aeronautical and military fields. It is to improve the systems engineering process described by the EIA-632, in order to incorporate a global and explicit consideration of dependability. Indeed, till now the dependability was achieved by reusing generic models after having studied and developed independently each function. So there was no specific consideration of the risks associated with the integration of several technologies. For this reason, we propose to concern ourselves with the dependability requirements at the global level and as early as possible in the development phase. Then, these requirements will be decline to lower levels. We based our approach on the processes of the EIA-632 standard that we expand. We also propose an original method for the declination of the dependability requirements based on fault trees and FMEAC, and an information model based on SysML in order to support our approach. An example from the aeronautical field illustrates our proposals
    corecore