• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 4
  • 2
  • Tagged with
  • 6
  • 5
  • 5
  • 4
  • 3
  • 3
  • 3
  • 3
  • 3
  • 3
  • 3
  • 3
  • 3
  • 2
  • 2
  • 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.
1

Étude de la traçabilité entre refactorisations du modèle de classes et refactorisations du code

Bouden, Saliha January 2006 (has links)
Mémoire numérisé par la Direction des bibliothèques de l'Université de Montréal.
2

Contributions to code optimization and high performance library generation

Barthou, Denis 18 February 2008 (has links) (PDF)
Le nombre de transistors des processeurs, ainsi que leur frequence, ont suivi la loi de Moore pendant plusieurs decennies, au prix d'une complexite croissante des architectures. La recente de l'accroissement en frequence a notamment deux consequences: le parallelisme est desormais un des seuls vecteurs de gain de performances, et la chaine de compilation ainsi que le systeme d'exploitation sont indispensables pour l'obtention automatique de ces performances. Du a la complexite des mecanismes architecturaux difficiles a modeliser de facon realiste, les compilateurs restent cependant loin de pouvoir generer automatiquement des applications hautes performances, meme pour un seul core. Le travail que nous presentons se focalise sur d'une part l'optimisation et la generation de bibliotheques hautes performances et leur reutilisation automatique dans un contexte applicatif, d'autre part, sur l'evaluation et la modelisation des performances an de guider l'optimisation. Les resultats de ces travaux sont suivis de perspectives de recherche.
3

Scorpio : une Approche d'Adaptation Structurelle de Composants Logiciels - Application aux Environnements Ubiquitaires

Bastide, Gautier 12 December 2007 (has links) (PDF)
La réutilisation à grande échelle de composants logiciels se révèle être un challenge pour la conception de nouvelles applications. Dans la grande majorité des cas, pour être intégrés à une application, les composants disponibles ont besoin d'être adaptés afin de faire face à la multiplicité des environnements de déploiement dotés de caractéristiques variables. Ainsi, pour éviter le redéveloppement de nouveaux composants et favoriser la réutilisation, de nombreuses approches ont proposé des techniques permettant d'adapter le comportement de composants existants. Cependant, adapter le comportement de composants n'est pas suffisant pour permettre leur réutilisation : il faut également adapter leur structure. Or, aucune approche existante ne permet de répondre pleinement à ces besoins en adaptation structurelle. Ainsi, notre objectif est de proposer une approche, appelée Scorpio, permettant d'adapter la structure de composants. Nous nous focalisons plus particulièrement sur des composants existants. Dans un premier temps, nous nous sommes intéressés à l'adaptation structurelle de composants existants en proposant un processus permettant leur ré-ingénierie vers de nouvelles structures. Puis, pour répondre aux besoins liés à une adaptation sans interruption de l'exécution, nous avons proposé des mécanismes permettant de prendre en charge l'adaptation dynamique de ces composants. Partant du constat qu'un certain nombre d'environnements, tels que les environnements ubiquitaires, nécessite une automatisation du processus d'adaptation, nous avons proposé alors de prendre en charge ces besoins à travers une approche permettant l'auto-adaptation structurelle de composants logiciels. Enfin, nos propositions ont été mises en œuvre d'une part par la réalisation du prototype Scorpio-Tool implémenté en Fractal et d'autre part, par la définition et le développement d'un scénario ubiquitaire permettant l'expérimentation de ces propositions.
4

Identification et localisation des préoccupations fonctionnelles dans un code légataire Java

El Kharraz, Amal 06 1900 (has links)
Traditionnellement, les applications orientées objets légataires intègrent différents aspects fonctionnels. Ces aspects peuvent être dispersés partout dans le code. Il existe différents types d’aspects : • des aspects qui représentent des fonctionnalités métiers ; • des aspects qui répondent à des exigences non fonctionnelles ou à d’autres considérations de conception comme la robustesse, la distribution, la sécurité, etc. Généralement, le code qui représente ces aspects chevauche plusieurs hiérarchies de classes. Plusieurs chercheurs se sont intéressés à la problématique de la modularisation de ces aspects dans le code : programmation orientée sujets, programmation orientée aspects et programmation orientée vues. Toutes ces méthodes proposent des techniques et des outils pour concevoir des applications orientées objets sous forme de composition de fragments de code qui répondent à différents aspects. La séparation des aspects dans le code a des avantages au niveau de la réutilisation et de la maintenance. Ainsi, il est important d’identifier et de localiser ces aspects dans du code légataire orienté objets. Nous nous intéressons particulièrement aux aspects fonctionnels. En supposant que le code qui répond à un aspect fonctionnel ou fonctionnalité exhibe une certaine cohésion fonctionnelle (dépendances entre les éléments), nous proposons d’identifier de telles fonctionnalités à partir du code. L’idée est d’identifier, en l’absence des paradigmes de la programmation par aspects, les techniques qui permettent l’implémentation des différents aspects fonctionnels dans un code objet. Notre approche consiste à : • identifier les techniques utilisées par les développeurs pour intégrer une fonctionnalité en l’absence des techniques orientées aspects • caractériser l’empreinte de ces techniques sur le code • et développer des outils pour identifier ces empreintes. Ainsi, nous présentons deux approches pour l’identification des fonctionnalités existantes dans du code orienté objets. La première identifie différents patrons de conception qui permettent l’intégration de ces fonctionnalités dans le code. La deuxième utilise l’analyse formelle de concepts pour identifier les fonctionnalités récurrentes dans le code. Nous expérimentons nos deux approches sur des systèmes libres orientés objets pour identifier les différentes fonctionnalités dans le code. Les résultats obtenus montrent l’efficacité de nos approches pour identifier les différentes fonctionnalités dans du code légataire orienté objets et permettent de suggérer des cas de refactorisation. / Object oriented applications integrate various functional aspects. These aspects can be scattered everywhere in the code. There are various types of aspects : • aspects which represent business functionalities ; • aspects related to non functional requirements or to design concerns such as robustness, distribution, and security. The code representing such aspects can be located in different class hierarchies. Researchers have been interested in the problem of the modularisation of these aspects and many approaches were proposed : oriented programming subjects, oriented programming Aspects and oriented programming view. These approaches offer techniques and tools for designing object oriented applications based on the composition of slices of various aspects. The main benefit of the separation of aspects is supporting reuse and maintenance. Consequently, it is well worth identifying and extracting aspects of legacy object oriented applications. Our work mainly focuses on functional aspects. Assuming that the code of a functional aspect or a feature has a functional cohesion (dependencies between elements), we suggest methods for identifying such features from the code. The idea is to identify, in the absence of any aspect oriented paradigm, the techniques used for implementing a feature in the code. Our approach consists of : • identifying techniques used by developers to integrate a feature in the absence of aspect oriented techniques • characterizing the patterns of these techniques • and developing tools to identify these patterns. We present two approaches for the identification of the existing features in the object oriented code. The first one identifies various design patterns which integrates these features in the code. The second approach uses the formal concept analysis to identify the recurring features in the code. We experiment our approaches to identify functional features in different open source object oriented applications. The results show the efficiency of our approaches in identifying various functional features in the legacy object oriented, and can some times suggest refactoring.
5

Identification et localisation des préoccupations fonctionnelles dans un code légataire Java

El Kharraz, Amal 06 1900 (has links)
Traditionnellement, les applications orientées objets légataires intègrent différents aspects fonctionnels. Ces aspects peuvent être dispersés partout dans le code. Il existe différents types d’aspects : • des aspects qui représentent des fonctionnalités métiers ; • des aspects qui répondent à des exigences non fonctionnelles ou à d’autres considérations de conception comme la robustesse, la distribution, la sécurité, etc. Généralement, le code qui représente ces aspects chevauche plusieurs hiérarchies de classes. Plusieurs chercheurs se sont intéressés à la problématique de la modularisation de ces aspects dans le code : programmation orientée sujets, programmation orientée aspects et programmation orientée vues. Toutes ces méthodes proposent des techniques et des outils pour concevoir des applications orientées objets sous forme de composition de fragments de code qui répondent à différents aspects. La séparation des aspects dans le code a des avantages au niveau de la réutilisation et de la maintenance. Ainsi, il est important d’identifier et de localiser ces aspects dans du code légataire orienté objets. Nous nous intéressons particulièrement aux aspects fonctionnels. En supposant que le code qui répond à un aspect fonctionnel ou fonctionnalité exhibe une certaine cohésion fonctionnelle (dépendances entre les éléments), nous proposons d’identifier de telles fonctionnalités à partir du code. L’idée est d’identifier, en l’absence des paradigmes de la programmation par aspects, les techniques qui permettent l’implémentation des différents aspects fonctionnels dans un code objet. Notre approche consiste à : • identifier les techniques utilisées par les développeurs pour intégrer une fonctionnalité en l’absence des techniques orientées aspects • caractériser l’empreinte de ces techniques sur le code • et développer des outils pour identifier ces empreintes. Ainsi, nous présentons deux approches pour l’identification des fonctionnalités existantes dans du code orienté objets. La première identifie différents patrons de conception qui permettent l’intégration de ces fonctionnalités dans le code. La deuxième utilise l’analyse formelle de concepts pour identifier les fonctionnalités récurrentes dans le code. Nous expérimentons nos deux approches sur des systèmes libres orientés objets pour identifier les différentes fonctionnalités dans le code. Les résultats obtenus montrent l’efficacité de nos approches pour identifier les différentes fonctionnalités dans du code légataire orienté objets et permettent de suggérer des cas de refactorisation. / Object oriented applications integrate various functional aspects. These aspects can be scattered everywhere in the code. There are various types of aspects : • aspects which represent business functionalities ; • aspects related to non functional requirements or to design concerns such as robustness, distribution, and security. The code representing such aspects can be located in different class hierarchies. Researchers have been interested in the problem of the modularisation of these aspects and many approaches were proposed : oriented programming subjects, oriented programming Aspects and oriented programming view. These approaches offer techniques and tools for designing object oriented applications based on the composition of slices of various aspects. The main benefit of the separation of aspects is supporting reuse and maintenance. Consequently, it is well worth identifying and extracting aspects of legacy object oriented applications. Our work mainly focuses on functional aspects. Assuming that the code of a functional aspect or a feature has a functional cohesion (dependencies between elements), we suggest methods for identifying such features from the code. The idea is to identify, in the absence of any aspect oriented paradigm, the techniques used for implementing a feature in the code. Our approach consists of : • identifying techniques used by developers to integrate a feature in the absence of aspect oriented techniques • characterizing the patterns of these techniques • and developing tools to identify these patterns. We present two approaches for the identification of the existing features in the object oriented code. The first one identifies various design patterns which integrates these features in the code. The second approach uses the formal concept analysis to identify the recurring features in the code. We experiment our approaches to identify functional features in different open source object oriented applications. The results show the efficiency of our approaches in identifying various functional features in the legacy object oriented, and can some times suggest refactoring.
6

Pattern-based refactoring in model-driven engineering

Mokaddem, Chihab eddine Mohamed Omar 05 1900 (has links)
L’ingénierie dirigée par les modèles (IDM) est un paradigme du génie logiciel qui utilise les modèles comme concepts de premier ordre à partir desquels la validation, le code, les tests et la documentation sont dérivés. Ce paradigme met en jeu divers artefacts tels que les modèles, les méta-modèles ou les programmes de transformation des modèles. Dans un contexte industriel, ces artefacts sont de plus en plus complexes. En particulier, leur maintenance demande beaucoup de temps et de ressources. Afin de réduire la complexité des artefacts et le coût de leur maintenance, de nombreux chercheurs se sont intéressés au refactoring de ces artefacts pour améliorer leur qualité. Dans cette thèse, nous proposons d’étudier le refactoring dans l’IDM dans sa globalité, par son application à ces différents artefacts. Dans un premier temps, nous utilisons des patrons de conception spécifiques, comme une connaissance a priori, appliqués aux transformations de modèles comme un véhicule pour le refactoring. Nous procédons d’abord par une phase de détection des patrons de conception avec différentes formes et différents niveaux de complétude. Les occurrences détectées forment ainsi des opportunités de refactoring qui seront exploitées pour aboutir à des formes plus souhaitables et/ou plus complètes de ces patrons de conceptions. Dans le cas d’absence de connaissance a priori, comme les patrons de conception, nous proposons une approche basée sur la programmation génétique, pour apprendre des règles de transformations, capables de détecter des opportunités de refactoring et de les corriger. Comme alternative à la connaissance disponible a priori, l’approche utilise des exemples de paires d’artefacts d’avant et d’après le refactoring, pour ainsi apprendre les règles de refactoring. Nous illustrons cette approche sur le refactoring de modèles. / Model-Driven Engineering (MDE) is a software engineering paradigm that uses models as first-class concepts from which validation, code, testing, and documentation are derived. This paradigm involves various artifacts such as models, meta-models, or model transformation programs. In an industrial context, these artifacts are increasingly complex. In particular, their maintenance is time and resources consuming. In order to reduce the complexity of artifacts and the cost of their maintenance, many researchers have been interested in refactoring these artifacts to improve their quality. In this thesis, we propose to study refactoring in MDE holistically, by its application to these different artifacts. First, we use specific design patterns, as an example of prior knowledge, applied to model transformations to enable refactoring. We first proceed with a detecting phase of design patterns, with different forms and levels of completeness. The detected occurrences thus form refactoring opportunities that will be exploited to implement more desirable and/or more complete forms of these design patterns. In the absence of prior knowledge, such as design patterns, we propose an approach based on genetic programming, to learn transformation rules, capable of detecting refactoring opportunities and correcting them. As an alternative to prior knowledge, our approach uses examples of pairs of artifacts before and after refactoring, in order to learn refactoring rules. We illustrate this approach on model refactoring.

Page generated in 0.0756 seconds