• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 50
  • 21
  • 4
  • Tagged with
  • 76
  • 76
  • 47
  • 38
  • 38
  • 34
  • 24
  • 15
  • 13
  • 13
  • 11
  • 11
  • 10
  • 10
  • 9
  • 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.
51

Modèles opérationnels de processus métier et d'exigences variables pour le développement de lignes de produits logiciels / Operational Models of Variable Business Processes and Variable Requirements for Software Product Lines Engineering

Taffo Tiam, Raoul 17 December 2015 (has links)
Toute institution concernée par le développement de logiciels, qu’il s’agisse d’un éditeur ou d’un organisme de services, doit faire face au challenge de compétitivité : “ faire de l’économie, un «objet de première classe» en génie logiciel ”. Cet impératif de penser l’économie du logiciel, s’est traduit par l’objectif d’obtenir une meilleure maîtrise sur la productivité du développeur. La Réutilisation Logicielle (Software Reuse) est un moyen privilégié d’augmenter cette productivité, en particulier quand elle est systématisée. Deux types d’activités doivent être considérés pour améliorer la réutilisation logicielle, le développement pour la réutilisation (development for reuse) et le développement par la réutilisation (development by reuse). Plusieurs solutions ont été proposées pour contribuer au développement pour la réutilisation. L’approche lignes de produits se distingue par sa contribution au développement par la réutilisation, à travers l’assistance et l’automatisation de la sélection, la configuration, et la dérivation de nouveaux produits. Néanmoins, malgré que cette approche a positionné la réutilisation comme activité centrale dans son processus de développement, celle-ci reste difficile à réaliser dans beaucoup de situations. Par exemple, en raison de l’absence de spécification ou gestion de la variabilité qui peut se manifester dans chacun des artefacts de toutes les étapes du cycle de développement. Dans ce cadre, la problématique générale de cette thèse CIFRE consiste en l’industrialisation d’une usine logicielle par la systématisation de la réutilisation dans chacune de ses étapes et la maximisation de l’automatisation des transitions entre étapes. Afin de mieux supporter l’agilité des environnements métier, notre premier objectif est la spécification de la variabilité au sein des modèles de processus métier, de sorte que les modèles conçus soient directement utilisables dans les usines logicielles. Notre second objectif consiste à introduire la spécification de la variabilité lors de l'ingénierie des exigences permettant ainsi de systématiser leur réutilisation, et l’établissement des liens de traçabilité avec les modèles de processus métier variables précédents. Ainsi, un modèle d’architecture logicielle (orientée services) peut être généré au sein de l'usine logicielle, comme implémentation des processus métier modélisés précédemment et dans le respect des exigences spécifiées. / Any organization involved in software engineering has to deal with reduction of production time and cost, in order to face the competitiveness challenge. This imperative of thinking the software economy resulted in the goal of getting better control on developer productivity. Software Reuse is a preferred way to increase the productivity, particularly when it is systematized. Two types of activities should be considered to improve software reuse, development for reuse and development by reuse. Several solutions have been proposed to contribute and improve development for reuse. For its part, product line approach is distinguished by its contribution to development by reuse through support and automation of selection, configuration, and derivation of new products. However, although this approach has positioned reuse as a core activity in its engineering process, it remains difficult to realize it in many situations. For example, due to lack of specification or management of variability which may occur in each artifacts from all steps of the engineering process. In this context, the general issue of this thesis consists in industrialization of software product line, by the contribution to systematization of reuse in each steps and automation of transitions between those steps. To better support the business agility, our first goal is the specification of variability within business process models, in order to make them directly usable into software factory. Our second goal is to introduce variability specification into requirements engineering, enabling systematic reuse of requirements models and establishing traceability links with previous models of variable business processes. Thus, an architecture model (service oriented) can be generated in software factory, as implementation of modeled business processes with compliance to specified requirements.
52

Assistance multimodale pour l'interaction 3D collaborative : étude et analyse des performances pour le travail collaboratif

Ullah, Sehat 26 January 2011 (has links) (PDF)
Les progrès récents dans le domaine de l'infographie et la capacité des ordinateurs personnels de rendre les scènes 3D réalistes ont permis de développer des environnements virtuels dans lesquels plusieurs utilisateurs peuvent co-exister et travailler ensemble pour atteindre un objectif commun. Ces environnements sont appelés Environnements Virtuels Collaboratifs (EVCs). Les applications potentielles des EVCs sont dans les domaines militaire, medical, l'assemblage, la conception assistee par ordinateur, la teleoperation, l'éducation, les jeux et les réseaux sociaux. Un des problemes liés aux EVCs est la faible connaissance des utilisateurs concernant l'état, les actions et les intentions de leur(s) collaborateur(s). Ceci reduit non seulement la performance collective, mais conduit également à des résultats non satisfaisants. En outre, les tâches collaboratives ou coopératives réalisées sans aide ou assistance, sont plus difficiles et plus sujettes aux erreurs. Dans ce travail de thèse, nous étudions l'influence de guides multi-modaux sur la performance des utilisateurs lors de tâches collaboratives en environnement virtuel (EV). Nous proposons un certain nombre de guides basés sur les modalites visuelle, auditive et haptique. Dans ce contexte, nous étudions leur qualité de guidage et examinons leur influence sur l'awareness, la co-presence et la coordination des utilisateurs pendant la réalisation des tâches. A cette effet, nous avons développé une architecture logicielle qui permet la collaboration de deux (peut être étendue à plusieurs utiliateurs) utilisateurs (distribués ou co-localisés). En utilisant cette architecture, nous avons développé des applications qui non seulement permettent un travail collaboratif, mais fournissent aussi des assistances multi-modales aux utilisateurs. Le travail de collaboration soutenu par ces applications comprend des tâches de type "Peg-in-hole", de télé-manipulation coopérative via deux robots, de télé-guidage pour l'écriture ou le dessin. Afin d'évaluer la pertinence et l'influence des guides proposés, une série d'expériences a ete effectuée au LISA (Laboratoire d'Ingénierie et Systemes Automatisés) à l'Université d'Angers et au Laboratoire IBISC (Informatique, Biologie Integrative et Systemes Complexes) à l'Université d'Evry. Dans ces expériences, les utilisateurs ont été invités à effectuer des tâches variées, dans des conditions différentes (avec et sans guides). L'analyse a été effectuée sur la base du temps de réalisation des tâches, des erreurs et de l'apprentissage des utilisateurs. Pour les évaluations subjectives des questionnaires ont été utilisés. Ce travail contribue de manière signicative au développement de systèmes collaboratifs pour la téléoperation, la simulation d'assemblage, l'apprentissage de gestes techniques, la rééducation, la conception assistée par ordinateur et le divertissement.
53

SAIA: Un style architectural pour assurer l'indépendance vis-à-vis d'entrées / sorties soumises à des contraintes temporelles

Deantoni, Julien 12 October 2007 (has links) (PDF)
Du fait de leur complexité croissante, le développement des systèmes embarqués et temps réel nécessitent conjointement l'application de principes de génie logiciel et l'application de techniques formelles. Le travail développé pendant cette thèse propose une approche et des outils basés sur les modèles. Ces modèles, basés sur UML (Unified Modeling Language), permettent de définir un style architectural appelé SAIA (Sensors Actuators Independent Architecture) dont l'objectif est le développement et la mise au point de systèmes temps réel en intégrant l'évolution et la variabilité des plateformes. On entend ici par plateforme les services de communication entre le système et son environnement physique, c'est-à-dire des opérations de lecture et d'écriture via les capteurs et les actionneurs.<br /><br />Pour répondre à cet objectif, l'idée de SAIA est de séparer clairement le modèle de plateforme du modèle de l'application. À cette fin, SAIA propose l'introduction d'une plateforme de communication abstraite avec le processus. Cette plateforme abstraite est composée d'entrées et de sorties utiles pour effectuer le contrôle, mais indépendantes d'une technologie de capteurs/actionneurs particulière. L'application est développée en se basant sur les services fournis par la plateforme abstraite.%Une application temps réel ne peut pas être validée en ne considérant que ses aspects fonctionnels.<br />La stabilité d'une application de contrôle et sa qualité de contrôle sont, entre autres, dépendantes des caractéristiques temporelles de la plateforme abstraite. Cette dernière est donc composée d'un ensemble de services ainsi que d'une description de ses caractéristiques temporelles (notées QoS pour Quality of Service). La description de la QoS de la plateforme abstraite reflète le comportement temporel, sous forme de omega-expression régulière de la plateforme abstraite pour laquelle l'application a le comportement souhaité. Ainsi, nous avons d'un côté un modèle de la plateforme abstraite et de la QoS permettant la correction de l'application et de l'autre un modèle de la plateforme réelle dont la QoS a été analysée. Afin de connecter la plateforme abstraite à la plateforme réelle, SAIA s'appuie sur un connecteur complexe. Ce connecteur complexe est un assemblage de composants, décrit formellement par des automates temporisés réalisant des services de formatage, d'interprétation, de fusion de données et enfin d'adaptation de la QoS.<br />Le connecteur complexe possède un comportement et modifie donc la QoS de la plateforme réelle. Afin d'évaluer l'impact du connecteur complexe sur la QoS de la plateforme réelle, une analyse formelle basée sur la simulation exhaustive du connecteur complexe est réalisée. Il est alors nécessaire de s'assurer que cette QoS nouvellement évaluée satisfait la QoS de la plateforme abstraite et permet ainsi la réalisation d'un système correct. La vérification de cette satisfaction est basée sur l'établissement d'un contrat de QoS. Dans SAIA, l'établissement d'un contrat de QoS est basé sur une relation de satisfaction (équivalence de trace) entre systèmes à transitions étiquetés. Enfin, SAIA a été mis en oeuvre à plusieurs reprises dont, lors de deux concours d'implémentation de robots d'exploration terrestre dans le cadre de workshop satellites de RTSS (Real Time System Symposium).
54

Cube : un framework décentralisé dirigé par l'architecture pour l'auto-gestion des logiciels

Debbabi, Bassem 28 January 2014 (has links) (PDF)
Durant ces dernières années, nous avons assisté à une forte émergence de nouvelles technologies et environnements informatiques tels que le cloud computing, l'informatique ubiquitaire ou les réseaux de capteurs. Ces environnements ont permis d'élaborer de nouveaux types d'applications avec une forte valeur ajoutée pour les usagés. Néanmoins, ils ont aussi soulevés de nombreux défis liés notamment à la conception, au déploiement et à la gestion de cycle de vie des applications. Ceci est dû à la nature même de ces environnements distribués, caractérisés par une grande flexibilité, un dynamisme accru et une forte hétérogénéité des ressources. L'objectif principal de cette thèse est de fournir une solution générique, réutilisable et extensible pour l'auto-gestion de ces applications. Nous nous sommes concentrés sur la fourniture d'un support logiciel permettant de gérer à l'exécution les architectures et leur cycle de vie, notamment pour les applications à base de composants s'exécutant dans des environnements dynamiques, distributes et à grande échelle. De façon à atteindre cet objectif, nous proposons une solution synergique - le framework Cube - combin- ant des techniques issues de domaines de recherche adjacents tels que l'auto-organisation, la satisfaction de contraintes, l'auto-adaptation et la reflexion fondée sur les modèles architecturaux. Dans notre solution, un ensemble de gestionnaires autonomiques décentralisés s'auto-organise de façon à construire et gérer une application cible en s'appuyant sur une description partagée des buts de l'application. Cette description formelle, appelé Archetype, prend la forme d'un graphe orienté exprim- ant les différents éléments de l'architecture et un ensemble de contraintes. Un prototype du framework Cube a été implanté dans le domaine particulier de la médiation. Des expériences ont été conduites dans le cadre de deux projets de recherché nationaux: Self-XL et Medical. Les résultats obtenus démontrent la validité de notre approche pour créer, réparer et adapter des applications à base de composants s'exécutant dans des environnements distribués, dynamiques et hétérogènes.
55

Modèles, outils et plate-forme d'exécution pour les applications à service dynamiques

Moreno-garcia, Diana 22 February 2013 (has links) (PDF)
L'essor de l'Internet et l'évolution des dispositifs communicants ont permis l'intégration du monde informatique et du monde réel, ouvrant ainsi la voie à de nouveaux types d'applications, tels que les applications ubiquitaires et pervasives. Ces applications doivent s'exécuter dans des contextes hétérogènes, distribués et ouverts qui sont en constante évolution. Dans de tels contextes, la disponibilité des services et des dispositifs, les préférences et la localisation des utilisateurs peuvent varier à tout moment pendant l'exécution des applications. La variabilité des contextes d'exécution fait que l'exécution d'une application dépend, par exemple, des services disponibles ou des dispositifs accessibles à l'exécution. En conséquence, l'architecture d'une telle application ne peut pas être connue statiquement à la conception, au développement ou au déploiement, ce qui impose de redéfinir ce qu'est une application dynamique : comment la concevoir, la développer, l'exécuter et la gérer à l'exécution. Dans cette thèse, nous proposons une approche dirigée par les modèles pour la conception, le développement et l'exécution d'applications dynamiques. Pour cela, nous avons défini un modèle de composants à services permettant d'introduire des propriétés de dynamisme au sein d'un modèle de composants. Ce modèle permet de définir une application en intention, via un ensemble de propriétés, de contraintes et de préférences de composition. Une application est ainsi spécifiée de façon abstraite ce qui permet de contrôler la composition graduelle de l'application lors de son développement et de son exécution. Notre approche vise à effacer la frontière entre les activités effectuées avant et pendant l'exécution des applications. Pour ce faire, le même modèle et les mêmes mécanismes de composition sont utilisés de la conception jusqu'à l'exécution des applications. A l'exécution, le processus de composition considère, en plus, les services disponibles dans la plate-forme d'exécution permettant la composition opportuniste des applications ; ainsi que la variabilité du contexte d'exécution permettant l'adaptation dynamique des compositions. Nous avons mis en œuvre notre approche via un prototype nommé COMPASS, qui s'appuie sur les plates-formes CADSE pour la réalisation d'environnements logiciels de conception et de développement, et APAM pour la réalisation d'un environnement d'exécution d'applications à services dynamiques.
56

Simulations orientées-interaction des systèmes complexes

Kubera, Yoann 06 December 2010 (has links) (PDF)
Les simulations multi-agents reproduisent un phénomène en modélisant intuitivement son fonctionnement au niveau microscopique. Ce fonctionnement est décrit par le comportement d'entités autonomes qui agissent dans un environnement commun. Toutefois, les approches actuelles restreignent les interactions à des effets de bord ou ne fournissent aucune méthodologie réifiant la notion d'interaction. La conception de simulations contenant un grand nombre d'agents interagissant de manière variée s'en trouve complexifiée. Nous soutenons que pour faciliter la conception des simulations, il est préférable que toute entité soit concrétisée par un agent et tout comportement par une interaction. Le moteur de simulation doit de plus être clairement séparé des agents et interactions, de sorte que tout le système multi-agents soit régi par le même algorithme de simulation. Une telle approche procure de nombreux avantages tels que l'automatisation de l'implémentation, la réutilisabilité des interactions ou la conception graduelle du modèle du phénomène. En nous fondant sur ces principes, nous avons développé une approche centrée sur les interactions (IODA) composée d'une pyramide d'outils : un modèle formel, un ensemble d'algorithmes de simulation et une méthodologie. Nous confirmons la faisabilité de cette approche par une plateforme de simulation paramétrable (JEDI) fidèle au modèle formel et un environnement de développement intégré (JEDI-Builder) qui automatise le passage du modèle IODA au code JEDI. Nous montrons ainsi que la concrétisation logicielle des interactions a conduit à une unification du concept d'agent et à une simplification du processus de conception de simulations.
57

Pratiques artistiques sur les écrans mobiles : création d’un langage de programmation / Artistic practices on mobile screens : the creation of a programming language

Cunin, Dominique 01 December 2014 (has links)
Tout au long de ses évolutions, l'ordinateur n'a cessé de permettre autant la consultation que la création de médias. Mais contrairement à l'activité de consultation, la création de logiciels interactifs demande une certaine maîtrise de la programmation informatique, qui reste le seul moyen de produire des programmes agissant sur une machine numérique. Dans ce contexte, les pratiques artistiques engagées dans la création d'œuvres interactives ne peuvent se dispenser de recourir à la programmation informatique, c'est-À-Dire à la création logicielle. Mais dans quelles situations les artistes se placent-Ils face aux techniques du numérique et à la programmation en particulier ? Cette interrogation, qui trouve de multiples réponses, revient au premier plan lorsque le paysage des appareils numériques de grande consommation connaît un événement majeur. Notre recherche est issue d’une telle situation : à partir de 2007, l’apparition des écrans mobiles (smartphones et tablettes) a été pour nous l’occasion d’interroger le potentiel de ces nouveaux supports dans la création artistique œuvrant avec l’interactivité. Il s'agissait pour nous de faire œuvre avec les écrans mobiles autant que d’en définir les modalités de mise en œuvre esthétique et technique au moment même de leur introduction dans notre quotidien. Nous cherchons à situer une certaine pratique de l’interactivité dans l’art permise par les écrans mobiles et leurs spécificités techniques, en partant de l'hypothèse selon laquelle les écrans mobiles permettent des mises en œuvre artistiques de l’interactivité que d’autres supports numériques ne permettent pas, mais imposent également des créations logicielles spécifiques. / Throughout its evolution, the computer never stopped allowing media consultation as well as media creation. Unlike the consultation activity, the creation of interactive software requires some computer programming skills, as it remains the only way to produce programs that acts on a digital machine. In this context, artistic practices involved in the creation of interactive works cannot avoid the use of computer programming and the creation of software. But what circumstances artists are facing when then work with digital technologies and software programming? This question, which has multiple answers, gain in importance when the landscape of massively produced digital devices experiences a major event.Our research is the result of such a situation: starting in 2007, the emergence of mobile screens (smartphones and tablets) was an opportunity to examine the potential of these new digital devices in the field of interactive arts. Our purpose was to create effective art works with mobile screens to be able to define their aesthetic and technical specificities at the very time of their introduction into our daily lives. We try to situate some interactive art practices that mobile screens makes possible thanks to their technical specifications. Our base hypothesis is that mobile screens allow the creation of interactive art work that other digital media cannot afford, but also require the creation of specifics softwares.
58

Réduction des pics de consommation d’électricité et problèmes d’optimisation induits pour les consommateurs / Reduction of electricity consumption peaks and optimization problems induced on the demand side

Desdouits, Chloé 10 February 2017 (has links)
Alors que les préoccupations concernant le réchauffement climatique deviennent de plus en plus sérieuses, l'une de ses premières causes: la consommation d'électricité, continue à croître. Une des manières d'endiguer le phénomène pourrait être de mieux équilibrer la consommation et la production, afin d'allumer moins de gros groupes de production, et de permettre l'intégration de plus de sources renouvelables. Le nouveau paradigme du marché de l'électricité incite les consommateurs à réduire leur pic de consommation, et à différer leur consommation quand la demande est moindre, à l'aide d'incitations tarifaires. De nouveaux algorithmes d'optimisation, et de nouvelles méthodologies sont donc nécessaires pour optimiser la puissance d'électrique utilisée par les consommateurs. Schneider Electric propose, à travers le projet européen Arrowhead, d'étudier trois cas applicatifs : un ascenseur avec plusieurs sources énergétiques, une usine manufacturière et un réseau d'eau potable. Pour chacune de ces trois applications, une méthodologie pour optimiser les pics de puissance consommée (parfois à l'aide d'une fonction de coût de l'électricité) est donnée, ainsi que des algorithmes d'optimisation. Dans le cas de l'ascenseur multi-sources, deux contrôleurs couplés sont proposés : l'un au niveau stratégique résolvant un problème linéaire, et l'autre à base de règles au niveau tactique. Dans le cas de l'usine, la méthodologie que nous avons utilisée pour faire des mesures, construire des modèles énergétiques, et finalement optimiser est expliquée. De plus, trois formulations linéaires, ainsi qu'une procédure de recherche locale, et une formulation naïve de programmation par contraintes sont données afin de résoudre le problème d'ordonnancement NP-difficile. Dans le cas du réseau d'eau, une formulation à contraintes quadratiques est utilisée pour comparer des plans de pompage optimisés avec la tactique utilisée habituellement dans le réseau. Les méthodes proposées entraînent des gains sur la facture énergétique de 1.5% à 114%, dépendamment du contexte. De plus, elles permettent aux consommateurs de participer au nouveau marché de l'énergie. Finalement, les connaissances retirées de l'étude de ces trois pilotes sont résumées, et des lignes directrices sont données pour l'optimisation de la facture énergétique d'un système quelconque consommant de l'énergie. / While concerns about global warming have never been so important, one of its first causes: global electricity consumption, is still growing. One way to stem the phenomenon could be to better balance demand and production, in order to switch on less big production groups and to allow the integration of more renewable production sources. The new paradigm of electricity market incites customers to reduce their electricity consumption peak and to shift their consumption when the demand is lower, by introducing economical incentives. Thus, new optimization algorithms and methodologies are needed at the customers side to optimize power usage over time. Schneider Electric proposes, through the Arrowhead European project, to study three application use-cases: an elevator with multiple electricity sources, a manufac- turing plant, and a drinking water network. For each of these use-cases, a methodology to optimize power consumption peaks (sometimes through an electricity cost function) is given, as well as optimization algorithms. For the multisource elevator case, two coupled controllers are proposed: one at the strategic level solving a linear problem, the other one rule-based at the tactical level. For the manufacturing plant, the methodology we used to monitor, build energy models, and finally optimize is explained. Furthermore, three linear formulations are given, as well as a simple local search procedure and a naive constraint satisfaction formulation to handle the NP-hard scheduling problem. For the water network use-case, a quadratically constrained formulation is used to compare optimized pumping plans with the Business As Usual tactic. The methods proposed bring between 1.5% to 114% savings on the energy bill, depending on the context. Moreover, they allow electricity consumers to participate in the demand-response market. Finally, the knowledge extracted from our three use-cases is summarized, and guide- lines are given to optimize the electricity bill of any electricity consumer system.
59

Supporting Reuse by Reverse Engineering Software Architecture and Component from Object-Oriented Product Variants and APIs / Support à la réutilisation par la rétro-ingénierie des architectures et des composants logiciels à partir du code source orienté objet des variantes de produits logiciels et d'APIs

Shatnawi, Anas 29 June 2015 (has links)
La réutilisation est reconnue comme une démarche intéressante pour améliorer la qualité des produits et la productivité des projets logiciels. L'ingénierie des logiciels à base de composants (CBSE en anglais) et l'ingénierie des lignes de produits logiciels (SPLE en anglais) sont considérées parmi les plus importants paradigmes de réutilisation systématique. L'ingénierie à base de composants permet de développer de nouveaux systèmes logiciels par composition de briques préconstruites appelées composants. L'ingénierie des lignes de produits logiciels permet de dériver (construire) de nouveaux produits par simple sélection de leurs caractéristiques (feature en anglais). Cette dérivation est rendue possible grâce à la représentation et à la gestion de la variabilité et de la similarité des produits d'une même famille. Cependant, une des difficultés vers une large adoption de l'ingénierie des logiciels à base de composants et des lignes de produits est le coût à investir pour construire, à partir de rien, les composants et les artefacts de lignes de produits. Dans ce contexte, les travaux de cette thèse proposent de réduire ce coût par une démarche basée sur la rétro-ingénierie.La première contribution de cette thèse consiste à proposer une approche permettant d'identifier, par l'analyse d'un ensemble de variantes d'un produit logiciel orienté objet, les éléments du code source pouvant servir à l'implémentation de composants. Au contraire des approches existantes d'identification de composants basées sur l'analyse d'un seul produit, l'originalité de notre approche consiste en l'analyse de plusieurs variantes de produits en même temps. Notre objectif est l'amélioration de la réutilisabilité des composants extraits. L'évaluation expérimentale menée dans le cadre de cette thèse a montré la pertinence de cette démarche.La deuxième contribution consiste en la proposition d'une approche pour l'extraction d'une architecture à base de composants d'un ensemble de variantes d'un produit logiciel orienté objet. Il s'agit d'identifier la variabilité des composants architecturaux et la configuration architecturale. L'identification de la configuration architecturale est principalement basée sur l'utilisation de l'analyse formelle de concepts pour trouver les dépendances entre les éléments architecturaux. L'expérimentation conduite pour l'évaluation de l'approche proposée confirme la pertinence des éléments identifiés.La troisième contribution de cette thèse permet de restructurer les APIs orientées objet en composants. Nous exploitons la spécificité des classes des APIs d'être conçues pour être utilisées par des applications clientes pour identifier ces composants. Le code source de ces APIs et celui de leurs applications clientes sont analysés afin d'identifier des groupes de classes qui peuvent servir à l'implémentation de composants à extraire. L'identification de ces groupes de classes est basée sur l'analyse des liens structurels entre ces classes et sur la probabilité que ces classes soient utilisées ensemble par les applications clientes. Nous montrons à travers les résultats expérimentaux que la restructuration des API orientées objet en composants facilite la réutilisation et la compréhension des éléments de ces APIs. / It is widely recognized that software quality and productivity can be significantly improved by applying a systematic reuse approach. In this context, Component-Based Software Engineering (CBSE) and Software Product Line Engineering (SPLE) are considered as two important systematic reuse paradigms. CBSE aims at composing software systems based on pre-built software components and SPLE aims at building new products by managing commonalty and variability of a family of similar software. However, building components and SPL artifacts from scratch is a costly task. In this context, our dissertation proposes three contributions to reduce this cost.Firstly, we propose an approach that aims at mining reusable components from a set of similar object-oriented software product variants. The idea is to analyze the commonality and the variability of product variants, in order to identify pieces of code that may form reusable components. Our motivation behind the analysis of several existing product variants is that components mined from these variants are more reusable for the development of new software products than those mined from single ones. The experimental evaluation shows that the reusability of the components mined using our approach is better than those mined from single software.Secondly, we propose an approach that automatically recovers the component-based architecture of a set of object-oriented software product variants. Our contribution is twofold: the identification of the architectural component variability and the identification of the configuration variability. The configuration variability is based on the identification of dependencies between the architectural elements using formal concept analysis. The experimental evaluation shows that our approach is able to identify the architectural variability.Finally, we propose an approach that aims at restructuring object-oriented APIs as component-based ones. This approach exploits specificity of API entities by statically analyzing the source code of both APIs and their software clients to identify groups of API classes that are able to form components. Our assumption is based on the probability of classes to be reused together by API clients on the one hand, and on the structural dependencies between classes on the other hand. The experimental evaluation shows that structuring object-oriented APIs as component-based ones improves the reusability and the understandability of these APIs.
60

ApAM : un environnement pour le développement et l'exécution d'applications ubiquitaires / ApAM : An environment for the development and execution of ubiquitous applications

Damou, Elmehdi 25 October 2013 (has links)
Simplifier notre interaction avec les entités informatiques interconnectées de notre environnement et faciliter l'exploitation des informations générées par celles-ci est l'objectif des environnements et applications ubiquitaires. Le comportement des applications ubiquitaires dépend de l'état et de la disponibilité des entités (logicielles ou dispositifs) qui compose l'environnement ubiquitaire dans lequel ils évoluent, ainsi que des préférences et localisation des utilisateurs. Développer et exécuter des applications ubiquitaires est un véritable défi que notre approche essaie de relever au travers de l'environnement d'exécution ApAM. Considérant que l'environnement d'exécution est imprévisible, nous partons du principe qu'une application ubiquitaire doit disposer d'une grande flexibilité dans le choix de ses composants et que cette composition doit être automatique. Nous proposons une description abstraite et implicite de la composition (où les composants et les liens entre eux ne sont pas décrits explicitement), ce qui permet de construire l'application incrémentalement pendant la phase d'exécution. La plate-forme d'exécution ApAM implémente ces mécanismes de composition incrémentale et s'en sert pour conférer aux applications ubiquitaires la capacité de « résister » et de s'adapter aux changements imprévisibles de l'environnement d'exécution. Cette propriété dite de résilience est au cœur de notre approche car elle permet aux programmeurs de développer « simplement » des applications « résilientes » sans avoir à décrire les diverses adaptations à réaliser, et même sans connaitre toutes les perturbations de l'environnement auquel elles seront soumises. Notre proposition offre le moyen de développer et d'exécuter des applications ayant un haut niveau de résilience vis-à-vis des évolutions de leur contexte d'exécution, grâce à des mécanismes automatiques capables de construire et de modifier à l'exécution l'architecture logicielle des applications ubiquitaire. Les mécanismes fournis sont génériques mais peuvent être étendus et spécialisés pour s'adapter plus finement à certaines applications ou à des domaines métiers spécifiques. / The goal of ubiquitous environments and applications is to simplify our interaction with interconnected software and hardware entities, and to allow the exploitation of the information that they gather and generate. The behavior of ubiquitous applications depends on the state and the availability of the software and hardware entities that compose the ubiquitous environment in which they are constantly evolving, as well as, the preferences and locations of users. Developing and executing ubiquitous applications is a difficult challenge that our approach attempts to address with the creation of the ApAM execution environment. Knowing that the execution environment is unpredictable, we believe that ubiquitous applications require a large amount of flexibility in choosing the components that compose the application, and that the composition should be automated. We propose an abstract and implicit description of the composition, where components and bindings are not explicitly described. This allows to incrementally building an application at runtime. The ApAM execution platform implements the mechanisms to achieve incremental composition and uses them to provide ubiquitous applications with the resilience and adaptability necessary to face unpredictable changes that originate in the execution environment. Resilience is a core property of our approach because it allows developers to easily build applications without the need to either describe nor predict the multiple adaptations required to support environmental disturbances which the applications will encounter. Our proposal offers the means of developing and executing applications with a high level of resilience in regards to their continuously evolving context. This is possible thanks to the mechanisms described in this dissertation that allow building and changing, at runtime, ubiquitous applications. These mechanisms are generic but can be extended or specialized in order to solve domain or application-specific issues.

Page generated in 0.1186 seconds