• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 422
  • 171
  • 72
  • 2
  • 1
  • 1
  • Tagged with
  • 721
  • 336
  • 296
  • 278
  • 254
  • 246
  • 243
  • 144
  • 133
  • 92
  • 90
  • 82
  • 79
  • 69
  • 68
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
421

L'Efficience Énergétique des Services dans les Systèmes Répartis Hétérogènes et Dynamiques : Application à la Maison Numérique

Druilhe, Rémi 05 December 2013 (has links) (PDF)
La maison est un environnement dans lequel de plus en plus d'équipements sont interconnectés. Cette multiplication des équipements informatiques et des services associés augmente la consommation d'énergie de la maison numérique. Pour limiter cette tendance, les équipements de l'électronique grand public contrôlent leur consommation d'énergie individuellement, indépendamment les uns des autres. Les environnements répartis offrent de nouvelles opportunités de gestion de la consommation d'énergie des équipements. Ce travail propose de mettre en place une coordination intelligente entre les équipements de façon à limiter la consommation énergétique de l'ensemble de ces équipements tout en délivrant les mêmes services. Notre approche consiste à déplacer des composants logiciels d'un équipement à l'autre afin de maximiser l'efficience énergétique de la maison numérique. Cependant, ces déplacements sont contraints à la fois par l'environnement, e.g., ressources matérielles disponibles, et par les besoins des composants logiciels, e.g., ressources matérielles requises, présence de l'utilisateur. Pour concevoir un tel système, il est nécessaire de considérer les propriétés intrinsèques à la maison numérique dont l'hétérogénéité, la dynamicité et la qualité de service. L'hétérogénéité nécessite une modélisation de chaque équipement et de chaque service suivant des critères différenciant, e.g., ressources matérielles, présence de l'utilisateur. La dynamicité requiert de modifier la répartition des composants logiciels lorsqu'un événement significatif survient, e.g., apparition d'un équipement, afin de conserver l'efficience énergétique. Enfin, la mise en place de solutions moins énergivores ne doit pas impacter la qualité de service, e.g., satisfaire les besoins en ressources matérielles des composants logiciels. Nous proposons une modélisation de ces propriétés. Ce modèle est ensuite considéré par un système décisionnel autonome. Sur l'observation d'événements significatifs, le système prend la décision de modifier la répartition des composants sur les équipements afin d'atteindre l'objectif d'efficience énergétique tout en satisfaisant à la qualité de service. L'implantation du système décisionnel est réalisée par une architecture elle-même conçue pour être efficiente énergétiquement. Le système décisionnel est considéré comme un service à part entière. Il est construit comme les autres services présents dans l'environnement, et est donc capable de se déplacer d'un équipement à un autre pour s'exécuter sur celui qui est le plus approprié en fonction du contexte. L'approche est validée au travers de son implémentation appelée HomeNap et le déroulé de scénarios de la vie courante. Les résultats obtenus montrent des gains énergétiques. Ces résultats montrent également que les gains sont fonctions des usages de la maison numérique. Enfin, ces gains s'accroissent lorsque le nombre d'équipements et de services augmente, ce qui correspond à la tendance actuellement observée.
422

A Mono- and Multi-objective Approach for Recommending Software Refactoring

Ouni, Ali 11 1900 (has links)
Les systèmes logiciels sont devenus de plus en plus répondus et importants dans notre société. Ainsi, il y a un besoin constant de logiciels de haute qualité. Pour améliorer la qualité de logiciels, l’une des techniques les plus utilisées est le refactoring qui sert à améliorer la structure d'un programme tout en préservant son comportement externe. Le refactoring promet, s'il est appliqué convenablement, à améliorer la compréhensibilité, la maintenabilité et l'extensibilité du logiciel tout en améliorant la productivité des programmeurs. En général, le refactoring pourra s’appliquer au niveau de spécification, conception ou code. Cette thèse porte sur l'automatisation de processus de recommandation de refactoring, au niveau code, s’appliquant en deux étapes principales: 1) la détection des fragments de code qui devraient être améliorés (e.g., les défauts de conception), et 2) l'identification des solutions de refactoring à appliquer. Pour la première étape, nous traduisons des régularités qui peuvent être trouvés dans des exemples de défauts de conception. Nous utilisons un algorithme génétique pour générer automatiquement des règles de détection à partir des exemples de défauts. Pour la deuxième étape, nous introduisons une approche se basant sur une recherche heuristique. Le processus consiste à trouver la séquence optimale d'opérations de refactoring permettant d'améliorer la qualité du logiciel en minimisant le nombre de défauts tout en priorisant les instances les plus critiques. De plus, nous explorons d'autres objectifs à optimiser: le nombre de changements requis pour appliquer la solution de refactoring, la préservation de la sémantique, et la consistance avec l’historique de changements. Ainsi, réduire le nombre de changements permets de garder autant que possible avec la conception initiale. La préservation de la sémantique assure que le programme restructuré est sémantiquement cohérent. De plus, nous utilisons l'historique de changement pour suggérer de nouveaux refactorings dans des contextes similaires. En outre, nous introduisons une approche multi-objective pour améliorer les attributs de qualité du logiciel (la flexibilité, la maintenabilité, etc.), fixer les « mauvaises » pratiques de conception (défauts de conception), tout en introduisant les « bonnes » pratiques de conception (patrons de conception). / Software systems have become prevalent and important in our society. There is a constant need for high-quality software. Hence, to improve software quality, one of the most-used techniques is the refactoring which improves design structure while preserving the external behavior. Refactoring has promised, if applied well, to improve software readability, maintainability and extendibility while increasing the speed at which programmers can write and maintain their code. In general, refactoring can be performed in various levels such as the requirement, design, or code level. In this thesis, we mainly focus on the source code level where automated refactoring recommendation can be performed through two main steps: 1) detection of code fragments that need to be improved/fixed (e.g., code-smells), and 2) identification of refactoring solutions to achieve this goal. For the code-smells identification step, we translate regularities that can be found in such code-smell examples into detection rules. To this end, we use genetic programming to automatically generate detection rules from examples of code-smells. For the refactoring identification step, a search-based approach is used. The process aims at finding the optimal sequence of refactoring operations that improve software quality by minimizing the number of detected code-smells while prioritizing the most critical ones. In addition, we explore other objectives to optimize using a multi-objective approach: the code changes needed to apply refactorings, semantics preservation, and the consistency with development change history. Hence, reducing code changes allows us to keep as much as possible the initial design. On the other hand, semantics preservation insures that the refactored program is semantically coherent, and that it models correctly the domain-semantics. Indeed, we use knowledge from historical code change to suggest new refactorings in similar contexts. Furthermore, we introduce a novel multi-objective approach to improve software quality attributes (i.e., flexibility, maintainability, etc.), fix “bad” design practices (i.e., code-smells) while promoting “good” design practices (i.e., design patterns).
423

La brevetabilité des logiciels

Laouari, Jérémy January 2005 (has links)
Mémoire présenté à la Faculté des études supérieures en vue de l'obtention du grade de Maîtrise en droit (L.LM.) / Ce texte a pour ambition d'expliquer les tenants et aboutissants de la brevetabilité des logiciels. Dans cette optique, notre première partie consistera à poser les bases du débat. Cela sera notamment fait en analysant les raisons pour lesquelles la brevetabilité des logiciels a été consacrée. Le texte mettra ainsi l'emphase sur l'inefficacité du droit d'auteur à protéger les logiciels. En outre, l'étude du mécanisme du brevet nous montrera que ce dernier constituait une solution plus adaptée que le droit d'auteur à la protection des logiciels. Ensuite, dans le cadre d'une seconde partie, il s'agira d'analyser le phénomène de la brevetabilité en tant que telle, au travers de notre champ d'étude, en l'occurrence le Canada, les États-Unis et les États européens. Cela consistera tout d'abord à apprécier l'ampleur du phénomène, à savoir s'il s'est plus ou moins développé en fonction de tel(s) ou tel(s) État(s). Les États-Unis ayant pleinement consacré la brevetabilité des logiciels, quand d'autres l'ont plus ou moins rejeté, le texte, se focalisant principalement sur la société américaine, analysera les conséquences engendrées par cette adoption, notamment en terme de concurrence et d'innovation. En outre, afin de pouvoir apprécier l'opportunité de la brevetabilité des logiciels, une comparaison de l'état du système de brevet américain avec les systèmes canadien et français sera nécessaire. Un constat assez pessimiste à l'égard de l'actuelle brevetabilité des logiciels étant alors établi, le texte proposera des aménagements au système des brevets afin que l'innovation et la concurrence dans le secteur du logiciel soit préservée ou rétablie. / The purpose of this text is to explain the issues of software patentability. From this perspective our first part will set up the background of the debate. It will be done in particular by analysing the reasons why software patentability was adopted. The text will thus emphasize the ineffectiveness of copyright in protecting software. Moreover a study of the patent mechanism will reveal that this system is better suited to protect software than copyright is. Next, within the second part we will analyse the patentability phenomenom as it relates to our field of study, namely, Canada, the United States of America and European countries. First of aIl, this will consist in assessing the scope of the phenomenom, that is to say if it is more or less developed in a given country. Insofar as the United States of America has totally accepted the patentability software, while sorne other countries have more or less rejected it, the text, focusing mainly on the American society, will analyse the consequences generated by the adoption of this notion (i.e., the patentability of software), in particular considering competition and innovation. Moreover, in order to evaluate software patentability is a more opportune choice, a comparison between the American patent system with the Canadian and French ones will be necessary. A rather pessimistic conclusion regarding the current acceptance of software patentability being drawn, the text will suggest sorne adjustments to the patent system in order to preserve or restore innovation and competition into the software market.
424

Logiciels de traduction automatique: protection, responsabilité

Côté, André J. 07 1900 (has links)
La présente recherche a pour but de faire le point sur l'état du droit canadien et sur ses perspectives futures en relation avec les œuvres créées par ordinateurs. L'outil terminologique choisi pour notre objectif est le logiciel de traduction automatique multilingue qui, à cause de sa complexité, s'éloigne le plus du programmeur « créateur» et se rapproche le plus d'œuvres qui ne peuvent être directement attribuées aux linguistes et programmeurs. Ces outils et leurs créations seront d'après nous les prochains outils technologiques à confronter le droit. En effet, dans un avenir prévisible, considérant l'évolution technologique, ces logiciels produiront des textes qui bénéficieront d'une valeur commerciale ajoutée et c'est alors que certains feront valoir leurs « droits », non seulement sur les textes mais aussi sur la technologie. Pour atteindre cet objectif, nous débuterons par un retour historique sur la technologie et ses origines. Par la suite, nous ferons une analyse de la protection actuelle accordée aux logiciels, aux banques de données et aux traductions qu'ils produisent. Nous déterminerons ensuite qui sera responsable des textes produits en relation avec le texte d'origine et avec sa résultante au niveau du droit d'auteur et de celui de la responsabilité civile. Cette recherche nous amènera à conclure que le droit actuel est « mésadapté » tant à l'égard de la protection qu'au niveau de la responsabilité. Ces conclusions devront d'après nous imposer un retour aux principes fondamentaux du droit. Ce fondamentalisme légal sera pour nous le prix à payer pour la légitimité. En effet, plus particulièrement concernant le droit d'auteur, nous conclurons qu'il devra cesser d'être le « fourre-tout» du droit de la propriété intellectuelle et redevenir ce qu'il doit être: un droit qui protège la créativité. Cette démarche prospective tirera ses racines du fait que nous serons obligés de conclure que les juristes canadiens ont refusé, à tort à notre point de vue, de renvoyer au monde des brevets les méthodes et procédés nouveaux et inventifs, ce qui donc a introduit des problématiques inutiles qui exacerbent l'incertitude. Finalement, notre cheminement nous dirigera vers le droit de la responsabilité où nous soutiendrons que le fournisseur ne peut actuellement être responsable du texte produit puisqu'il ne participe pas directement aux choix et ne porte pas atteinte au contenu. Voici donc en quelques mots le cœur de notre recherche qui entrouvre une boîte de Pandore. / The aim of this research is to take stock of the state of the Canadian law and its perspectives for the future in relationship with computer-generated work. The terminology tool chosen is the multilingual automatic translation software that, because of its complexity, drifts out of the most from "creative" programs. In fact, it is closer to creations that cannot be directly c1aimed for by linguists and programmers. These tools and their work will be, according to us, the next technological tool to confront the law. Indeed in a foreseeable future, considering technological evolution, these software will produce texts with an added market value and then some people will realize their "interests" not only on texts but also on technology. To achieve this, we will start by a historical return on the technology and its origins. After we will analyse the present protection accorded to software, data banks and translations they create. We will then determine who is responsible for the texts produced in relation with the original text and its resultant at the level of the copyright and that of the third party liability. This study will conclude that the present law is "unsuited" with respect to protection and responsibility. According to us, these conclusions will have to command a return to the fundamental principles of law. This legal fundamentalism will be the price we have to pay for legal sufficiency. Indeed, particularly regarding copyright, we will conclude that it needs to cease being a "rag-bag" for intellectual property law and it needs to become again what it should be : a right that protects creativity. This forward-Iooking approach will take its roots from the fact that we will be obligated to conclude that Canadian jurists have, from our perspective, incorrectly refused to send back to the patent world the methods and processes, new and inventive. As an effect, this has introduced useless problems that exacerbate uncertainty. Finally, our line of thought will direct us to the responsibility law where we will submit that the provider cannot actually be responsible for the text created because he does not participate directly to the choices and he does not go to the content. This is in summary the heart of our study that half-opens a Pandora's box.
425

AURA : a hybrid approach to identify framework evolution

Wu, Wei 02 1900 (has links)
Les cadriciels et les bibliothèques sont indispensables aux systèmes logiciels d'aujourd'hui. Quand ils évoluent, il est souvent fastidieux et coûteux pour les développeurs de faire la mise à jour de leur code. Par conséquent, des approches ont été proposées pour aider les développeurs à migrer leur code. Généralement, ces approches ne peuvent identifier automatiquement les règles de modification une-remplacée-par-plusieurs méthodes et plusieurs-remplacées-par-une méthode. De plus, elles font souvent un compromis entre rappel et précision dans leur résultats en utilisant un ou plusieurs seuils expérimentaux. Nous présentons AURA (AUtomatic change Rule Assistant), une nouvelle approche hybride qui combine call dependency analysis et text similarity analysis pour surmonter ces limitations. Nous avons implanté AURA en Java et comparé ses résultats sur cinq cadriciels avec trois approches précédentes par Dagenais et Robillard, M. Kim et al., et Schäfer et al. Les résultats de cette comparaison montrent que, en moyenne, le rappel de AURA est 53,07% plus que celui des autre approches avec une précision similaire (0,10% en moins). / Software frameworks and libraries are indispensable to today's software systems. As they evolve, it is often time-consuming for developers to keep their code up-to-date. Approaches have been proposed to facilitate this. Usually, these approaches cannot automatically identify change rules for one-replaced-by-many and many-replaced-by-one methods, and they trade off recall for higher precision using one or more experimentally-evaluated thresholds. We introduce AURA (AUtomatic change Rule Assistant), a novel hybrid approach that combines call dependency and text similarity analyses to overcome these limitations. We implement it in a Java system and compare it on five frameworks with three previous approaches by Dagenais and Robillard, M. Kim et al., and Schäfer et al. The comparison shows that, on average, the recall of AURA is 53.07% higher while its precision is similar (0.10% lower).
426

Contributions for improving debugging of kernel-level services in a monolithic operating system / Contributions à l'amélioration du débogage des services noyau dans un système d'exploitation monolithique

Bissyande, Tegawende 12 March 2013 (has links)
Alors que la recherche sur la qualité du code des systèmes a connu un formidable engouement, les systèmes d’exploitation sont encore aux prises avec des problèmes de fiabilité notamment dus aux bogues de programmation au niveau des services noyaux tels que les pilotes de périphériques et l’implémentation des systèmes de fichiers. Des études ont en effet montré que chaque version du noyau Linux contient entre 600 et 700 fautes, et que la propension des pilotes de périphériques à contenir des erreurs est jusqu’à sept fois plus élevée que toute autre partie du noyau. Ces chiffres suggèrent que le code des services noyau n’est pas suffisamment testé et que de nombreux défauts passent inaperçus ou sont difficiles à réparer par des programmeurs non-experts, ces derniers formant pourtant la majorité des développeurs de services. Cette thèse propose une nouvelle approche pour le débogage et le test des services noyau. Notre approche est focalisée sur l’interaction entre les services noyau et le noyau central en abordant la question des “trous de sûreté” dans le code de définition des fonctions de l’API du noyau. Dans le contexte du noyau Linux, nous avons mis en place une approche automatique, dénommée Diagnosys, qui repose sur l’analyse statique du code du noyau afin d’identifier, classer et exposer les différents trous de sûreté de l’API qui pourraient donner lieu à des fautes d’exécution lorsque les fonctions sont utilisées dans du code de service écrit par des développeurs ayant une connaissance limitée des subtilités du noyau. Pour illustrer notre approche, nous avons implémenté Diagnosys pour la version 2.6.32 du noyau Linux. Nous avons montré ses avantages à soutenir les développeurs dans leurs activités de tests et de débogage. / Despite the existence of an overwhelming amount of research on the quality of system software, Operating Systems are still plagued with reliability issues mainly caused by defects in kernel-level services such as device drivers and file systems. Studies have indeed shown that each release of the Linux kernel contains between 600 and 700 faults, and that the propensity of device drivers to contain errors is up to seven times higher than any other part of the kernel. These numbers suggest that kernel-level service code is not sufficiently tested and that many faults remain unnoticed or are hard to fix bynon-expert programmers who account for the majority of service developers. This thesis proposes a new approach to the debugging and testing of kernel-level services focused on the interaction between the services and the core kernel. The approach tackles the issue of safety holes in the implementation of kernel API functions. For Linux, we have instantiated the Diagnosys automated approach which relies on static analysis of kernel code to identify, categorize and expose the different safety holes of API functions which can turn into runtime faults when the functions are used in service code by developers with limited knowledge on the intricacies of kernel code. To illustrate our approach, we have implemented Diagnosys for Linux 2.6.32 and shown its benefits in supporting developers in their testing and debugging tasks.
427

Analyse de changements multiples : une approche probabiliste utilisant les réseaux bayésiens

Bali, Khaled 12 1900 (has links)
No description available.
428

Identification of Function Points in Software Specifications Using Natural Language Processing / Identification des points de fonction dans les spécifications logicielles à l'aide du traitement automatique des langues

Asadullah, Munshi 28 September 2015 (has links)
La nécessité d'estimer la taille d’un logiciel pour pouvoir en estimer le coût et l’effort nécessaire à son développement est une conséquence de l'utilisation croissante des logiciels dans presque toutes les activités humaines. De plus, la nature compétitive de l’industrie du développement logiciel rend courante l’utilisation d’estimations précises de leur taille, au plus tôt dans le processus de développement. Traditionnellement, l’estimation de la taille des logiciels était accomplie a posteriori à partir de diverses mesures appliquées au code source. Cependant, avec la prise de conscience, par la communauté de l’ingénierie logicielle, que l’estimation de la taille du code est une donnée cruciale pour la maîtrise du développement et des coûts, l’estimation anticipée de la taille des logiciels est devenue une préoccupation répandue. Une fois le code écrit, l’estimation de sa taille et de son coût permettent d'effectuer des études contrastives et éventuellement de contrôler la productivité. D’autre part, les bénéfices apportés par l'estimation de la taille sont d'autant plus grands que cette estimation est effectuée tôt pendant le développement. En outre, si l’estimation de la taille peut être effectuée périodiquement au fur et à mesure de la progression de la conception et du développement, elle peut fournir des informations précieuses aux gestionnaires du projet pour suivre au mieux la progression du développement et affiner en conséquence l'allocation des ressources. Notre recherche se positionne autour des mesures d’estimation de la taille fonctionnelle, couramment appelées Analyse des Points de Fonctions, qui permettent d’estimer la taille d’un logiciel à partir des fonctionnalités qu’il doit fournir à l’utilisateur final, exprimées uniquement selon son point de vue, en excluant en particulier toute considération propre au développement. Un problème significatif de l'utilisation des points de fonction est le besoin d'avoir recours à des experts humains pour effectuer la quotation selon un ensemble de règles de comptage. Le processus d'estimation représente donc une charge de travail conséquente et un coût important. D'autre part, le fait que les règles de comptage des points de fonction impliquent nécessairement une part d'interprétation humaine introduit un facteur d'imprécision dans les estimations et rend plus difficile la reproductibilité des mesures. Actuellement, le processus d'estimation est entièrement manuel et contraint les experts humains à lire en détails l'intégralité des spécifications, une tâche longue et fastidieuse. Nous proposons de fournir aux experts humains une aide automatique dans le processus d'estimation, en identifiant dans le texte des spécifications, les endroits les plus à même de contenir des points de fonction. Cette aide automatique devrait permettre une réduction significative du temps de lecture et de réduire le coût de l'estimation, sans perte de précision. Enfin, l’identification non ambiguë des points de fonction permettra de faciliter et d'améliorer la reproductibilité des mesures. À notre connaissance, les travaux présentés dans cette thèse sont les premiers à se baser uniquement sur l’analyse du contenu textuel des spécifications, applicable dès la mise à disposition des spécifications préliminaires et en se basant sur une approche générique reposant sur des pratiques établies d'analyse automatique du langage naturel. / The inevitable emergence of the necessity to estimate the size of a software thus estimating the probable cost and effort is a direct outcome of increasing need of complex and large software in almost every conceivable situation. Furthermore, due to the competitive nature of the software development industry, the increasing reliance on accurate size estimation at early stages of software development becoming a commonplace practice. Traditionally, estimation of software was performed a posteriori from the resultant source code and several metrics were in practice for the task. However, along with the understanding of the importance of code size estimation in the software engineering community, the realization of early stage software size estimation, became a mainstream concern. Once the code has been written, size and cost estimation primarily provides contrastive study and possibly productivity monitoring. On the other hand, if size estimation can be performed at an early development stage (the earlier the better), the benefits are virtually endless. The most important goals of the financial and management aspect of software development namely development cost and effort estimation can be performed even before the first line of code is being conceived. Furthermore, if size estimation can be performed periodically as the design and development progresses, it can provide valuable information to project managers in terms of progress, resource allocation and expectation management. This research focuses on functional size estimation metrics commonly known as Function Point Analysis (FPA) that estimates the size of a software in terms of the functionalities it is expected to deliver from a user’s point of view. One significant problem with FPA is the requirement of human counters, who need to follow a set of standard counting rules, making the process labour and cost intensive (the process is called Function Point Counting and the professional, either analysts or counters). Moreover, these rules, in many occasion, are open to interpretation, thus they often produce inconsistent counts. Furthermore, the process is entirely manual and requires Function Point (FP) counters to read large specification documents, making it a rather slow process. Some level of automation in the process can make a significant difference in the current counting practice. Automation of the process of identifying the FPs in a document accurately, will at least reduce the reading requirement of the counters, making the process faster and thus shall significantly reduce the cost. Moreover, consistent identification of FPs will allow the production of consistent raw function point counts. To the best of our knowledge, the works presented in this thesis is an unique attempt to analyse specification documents from early stages of the software development, using a generic approach adapted from well established Natural Language Processing (NLP) practices.
429

Automatic Analysis of Blend Words / Analyse automatique de mots mélangés

Warintarawej, Pattaraporn 04 April 2013 (has links)
Mélanger des parties de mots est une façon qui peut sembler étonnante pour produire de nouvelles formes linguistiques. Cela est devenu une manière très utilisée pour inventer des noms pour le quotidien, les noms de marque, les noms utilisés dans les codes informatiques des logiciels, par exemple avec alicament (aliment and médicament), aspivenin (aspirer and venin). Il existe plusieurs façon de mélanger des mots pour en former d'autres, ce qui rend difficile l'analyse des mots produits. Dans cette thèse, nous nous proposons une approche d'analyse automatique des évocations de mots produits à l'aide de mélanges, en considérant des méthodes de classification de type top-k. Nous comparons trois méthodes d'analyse des parties d'un mot : n-grammes, syllabes et cellules morpho-phonologiques. Nous proposons deux algorithmes d'extraction des syllables ainsi que des méthodes d'évaluation.L'algorithme Enqualitum est proposé pour identifier les mots étant évoqués par le mot analysé. Notre proposition a été utilisée en particulier dans le domaine de l'analyse automatique en génie logiciel pour lequel nous avons proposé l'algorithme Sword pour produire un découpage pertinent des noms apparaissant dans les programmes. Les expérimentations ont démontré l'intérêt de nos propositions. / Lexical blending is amazing in the sense of morphological productivity, involving the coinage of a new lexeme by fusing parts of at least two source words. Since new things need new words, blending has become a frequent productive word creation such as smog (smoke and fog), or alicament (aliment and médicament) (a French blend word), etc. The challenge is to design methods to discover how the first source word and the second source word are combined. The thesis aims at automatic analysis blend words in order to find the source words they evoke. The contributions of the thesis can divided into two main parts. First, the contribution to automatic blend word analysis, we develop top-k classification and its evaluation framework to predict concepts of blend words. We investigate three different features of words: character N-grams, syllables and morpho-phonological stems. Moreover, we propose a novel approach to automatically identify blend source words, named Enqualitum. The experiments are conducted on both synthetic French blend words and words from a French thesaurus. Second, the contribution to software engineering application, we apply the idea of learning character patterns of identifiers to predict concepts of source codes and also introduce a method to automate semantic context in source codes. The experiments are conducted on real identifier names from open source software packages. The results show the usefulness and the effectiveness of our proposed approaches.
430

Construction de lignes de produits logiciels par rétro-ingénierie de modèles de caractéristiques à partir de variantes de logiciels : l'approche REVPLINE / Reverse Engineering Feature Models From Software Variants to Build Software Product Lines : RIVEPLINE Approach

Al-Msie' Deen, Ra'Fat 24 June 2014 (has links)
Les lignes de produits logicielles constituent une approche permettant de construire et de maintenir une famille de produits logiciels similaires mettant en œuvre des principes de réutilisation. Ces principes favorisent la réduction de l'effort de développement et de maintenance, raccourcissent le temps de mise sur le marché et améliorent la qualité globale du logiciel. La migration de produits logiciels similaires vers une ligne de produits demande de comprendre leurs similitudes et leurs différences qui s'expriment sous forme de caractéristiques (features) offertes. Dans cette thèse, nous nous intéressons au problème de la construction d'une ligne de produits à partir du code source de ses produits et de certains artefacts complémentaires comme les diagrammes de cas d'utilisation, quand ils existent. Nous proposons des contributions sur l'une des étapes principales dans cette construction, qui consiste à extraire et à organiser un modèle de caractéristiques (feature model) dans un mode automatisé. La première contribution consiste à extraire des caractéristiques dans le code source de variantes de logiciels écrits dans le paradigme objet. Trois techniques sont mises en œuvre pour parvenir à cet objectif : l'Analyse Formelle de Concepts, l'Indexation Sémantique Latente et l'analyse des dépendances structurelles dans le code. Elles exploitent les parties communes et variables au niveau du code source. La seconde contribution s'attache à documenter une caractéristique extraite par un nom et une description. Elle exploite le code source mais également les diagrammes de cas d'utilisation, qui contiennent, en plus de l'organisation logique des fonctionnalités externes, des descriptions textuelles de ces mêmes fonctionnalités. En plus des techniques précédentes, elle s'appuie sur l'Analyse Relationnelle de Concepts afin de former des groupes d'entités d'après leurs relations. Dans la troisième contribution, nous proposons une approche visant à organiser les caractéristiques, une fois documentées, dans un modèle de caractéristiques. Ce modèle de caractéristiques est un arbre étiqueté par des opérations et muni d'expressions logiques qui met en valeur les caractéristiques obligatoires, les caractéristiques optionnelles, des groupes de caractéristiques (groupes ET, OU, OU exclusif), et des contraintes complémentaires textuelles sous forme d'implication ou d'exclusion mutuelle. Ce modèle est obtenu par analyse d'une structure obtenue par Analyse Formelle de Concepts appliquée à la description des variantes par les caractéristiques. L'approche est validée sur trois cas d'étude principaux : ArgoUML-SPL, Health complaint-SPL et Mobile media. Ces cas d'études sont déjà des lignes de produits constituées. Nous considérons plusieurs produits issus de ces lignes comme s'ils étaient des variantes de logiciels, nous appliquons notre approche, puis nous évaluons son efficacité par comparaison entre les modèles de caractéristiques extraits automatiquement et les modèles de caractéristiques initiaux (conçus par les développeurs des lignes de produits analysées). / The idea of Software Product Line (SPL) approach is to manage a family of similar software products in a reuse-based way. Reuse avoids repetitions, which helps reduce development/maintenance effort, shorten time-to-market and improve overall quality of software. To migrate from existing software product variants into SPL, one has to understand how they are similar and how they differ one from another. Companies often develop a set of software variants that share some features and differ in other ones to meet specific requirements. To exploit existing software variants and build a software product line, a feature model must be built as a first step. To do so, it is necessary to extract mandatory and optional features in addition to associate each feature with its name. Then, it is important to organize the mined and documented features into a feature model. In this context, our thesis proposes three contributions.Thus, we propose, in this dissertation as a first contribution a new approach to mine features from the object-oriented source code of a set of software variants based on Formal Concept Analysis, code dependency and Latent Semantic Indexing. The novelty of our approach is that it exploits commonality and variability across software variants, at source code level, to run Information Retrieval methods in an efficient way. The second contribution consists in documenting the mined feature implementations based on Formal Concept Analysis, Latent Semantic Indexing and Relational Concept Analysis. We propose a complementary approach, which aims to document the mined feature implementations by giving names and descriptions, based on the feature implementations and use-case diagrams of software variants. The novelty of our approach is that it exploits commonality and variability across software variants, at feature implementations and use-cases levels, to run Information Retrieval methods in an efficient way. In the third contribution, we propose an automatic approach to organize the mined documented features into a feature model. Features are organized in a tree which highlights mandatory features, optional features and feature groups (and, or, xor groups). The feature model is completed with requirement and mutual exclusion constraints. We rely on Formal Concept Analysis and software configurations to mine a unique and consistent feature model. To validate our approach, we applied it on three case studies: ArgoUML-SPL, Health complaint-SPL, Mobile media software product variants. The results of this evaluation validate the relevance and the performance of our proposal as most of the features and its constraints were correctly identified.

Page generated in 0.0526 seconds