• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 14
  • 11
  • 6
  • 6
  • 3
  • 2
  • Tagged with
  • 38
  • 38
  • 11
  • 10
  • 9
  • 8
  • 7
  • 7
  • 6
  • 6
  • 6
  • 6
  • 6
  • 5
  • 5
  • 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.
21

Contribution à la conception à base de composants logiciels d'applications scientifiques parallèles / Contribution to the design of scientific parallel applications based on software components

Pichon, Vincent 05 November 2012 (has links)
La conception d'applications scientifiques à base de couplage de code est une tâche complexe car elle demande de concilier une facilité de programmation et une obtention de haute performance. En outre, les ressources matérielles (supercalculateurs, grappes de calcul, grilles) permettant leur exécution forment un ensemble hétérogène en constante évolution. Les modèles à base de composants logiciels forment une piste prometteuse pour gérer ces deux sources de complexité car ils permettent d’exprimer les interactions entre les différents constituants d’une application tout en offrant des possibilités d'abstraction des ressources. Néanmoins, les modèles existants ne permettent pas d'exprimer de manière satisfaisante les applications constituées de motifs répliqués dynamiques et hiérarchiques. Ainsi, cette thèse vise à améliorer l'existant – et en particulier la plate-forme générique de simulation numérique SALOME – pour une classe d'applications très répandue : les applications à base de décomposition de domaine et la variante utilisant le raffinement de maillage adaptatif. Tout d'abord, nous avons proposé d’étendre le modèle de composition spatial et temporel de SALOME en ajoutant la possibilité de définir dynamiquement la cardinalité des composants. Cela demande en particulier de gérer les communications de groupes ainsi induites. La proposition a été implémentée dans SALOME et validée via une application de décomposition de domaine à base de couplage de plusieurs instances de Code_Aster. Ensuite, nous avons étudié la pertinence d'utiliser un modèle de composant supportant des connecteurs natifs (MPI, mémoire partagée, appel de méthode) pour permettre une composition plus fine des interactions entre composants. Les résultats d'expériences montrent que des performances équivalentes aux versions natives sont obtenues tout en permettant de manipuler facilement l'architecture de l'application. Enfin, nous avons étudié les extensions nécessaires aux modèles à composants (abstraction,hiérarchie, dynamicité) pour la conception d’applications de raffinement de maillage adaptatif. Les modèles de composants spatio-temporels les plus avancés permettent ainsi d'exprimer ce type d'application mais les performances sont limitées par leur mise en œuvre centralisée ainsi que par le manque de moyens efficaces pour modifier à la volée des assemblages de composants. / Designing scientific applications based on code coupling is a complex task. It requires both an easy programming process and high-performance. In addition, execution resources (supercomputers, computer clusters, grids)  are heterogeneous and constantly evolving. Software components models offer a promising perspective to manage this double complexity because they can express interactions between the different parts of an application while providing abstraction of resources. However, existing models cannot accurately express the applications made of dynamic and hierarchical patterns. The aim of this thesis is to improve the existing models, and in particular the generic platform for numerical simulation SALOME, for a class of widespread applications : applications based on domain decomposition, and its dynamic variant using adaptive mesh refinement. Firstly, we proposed to extend the spatial and temporal composition model provided by SALOME, by adding the ability to dynamically set component cardinality. This requires in particular to manage group communications induced. The proposal has been implemented into SALOME and validated via a domain decomposition application based on coupling several instances of Code_Aster.Then, we have studied the relevance of using a component model supporting native connectors (MPI, shared memory, method invocation), in order to allow finer composition interactions between components.The experiment results show that performances obtained are equivalent to those of the native versions, while allowing to easily manipulate the application architecture. Finally, we studied the necessary component models extensions (abstraction, hierarchy, dynamicity) for designing adaptative mesh refinement applications. The most advanced spatio-temporal component models can express this type of application but performances are limited by their centralized implementation and by the lack of efficient ways of modifying component assembling at execution time.
22

Modelo de qualidade para componentes de software / Software component quality model

Darley Rosa Peres 18 December 2006 (has links)
Dentre as tecnologias de desenvolvimento de software que promovem o reuso com o objetivo de construir sistemas com prazos e custos menores, sem sacrificar a qualidade dos produtos, está o Desenvolvimento Baseado em Componentes (DBC). O Desenvolvimento Baseado em Componentes consiste na construção de sistemas pela composição de componentes de software de acordo com um processo de desenvolvimento específico. Para garantir a qualidade desses sistemas, é importante garantir a qualidade de seus componentes. A falta da garantia da qualidade dos componentes de software destinados à reutilização é um dos fatores de inibição do DBC, e existe certa carência de pesquisas sobre a qualidade de componentes de software. Desta maneira, o principal objetivo deste trabalho foi a definição de um modelo de qualidade específico para componentes de software, fornecendo a base para a especificação de requisitos de qualidade e para a avaliação de qualidade dos mesmos. O Modelo está embasado nas normas ISO/IEC 9126 e ISO/IEC 12119, e também na literatura especializada. Uma ferramenta para apoiar avaliações de componentes (e de produtos de software de forma geral) também foi desenvolvida. Foram realizadas ainda quatro avaliações de componentes através de estudos de casos para verificar a aplicabilidade e utilidade do modelo de qualidade e da ferramenta desenvolvida. Dois questionários foram respondidos pelos avaliadores responsáveis pelas avaliações coletando assim, suas considerações sobre o modelo de qualidade e sobre a ferramenta / Among the software development technologies that promote the reuse aiming to build systems with periods and smaller costs, without sacrificing the quality of products, is the Component-Based Development (CBD). The Component-Based Development consists on the construction of systems by the composition of software components according to a specific development process. To guarantee the quality of those systems, it is important to guarantee the quality of their components. The lack of warranty of the quality of the software components destined to reuse is one of the inhibition factors of CBD, and there is certain lack of researches about quality of software components. This way, the main objective of this work was the formalization of a specific quality model for software components, supplying the base for the specification of quality requirements and for the quality evaluation of the same ones. The model is based on the norms ISO/IEC 9126 and ISO/IEC 12119, and also in the specialized literature. A tool to support components evaluations (and software products in a general way) was also developed. It was realized four components evaluations through case studies to verify the applicability and usefulness of the quality model and the developed tool. Two questionnaires were answered by the appraisers responsible for the evaluations collecting thereby, their considerations on the quality model and the tool
23

Component Reusability Analysis for Exchanging Electronic Health Records

Nam, Jaechang January 2009 (has links)
As Information Communication Technologies (ICTs) are growing, there have been ceaseless efforts to develop a National Health Information Infrastructure (NHII). One of the challenges in constructing a NHII is concerned with the management of Electronic Health Records (EHRs). In particular, exchanging EHRs is an important factor in establishing interoperability within a NHII, and the reusability of the functionality for exchanging EHRs is one of major solutions to construct an NHII. In this study, we obtain several component models, and conduct empirical studies to validate the component models in terms of component reusability. Using HL7 CDA (Health Level 7 Clinical Document Architecture) as an EHR standard, we implemented three prototypes of the EHR Exchanger based on JavaBeans, the exogenous connectors and the mediator connector respectively. As shown in the experiment results, the reuse approach using a mediator connector leads to better component reusability in terms of external dependency, total coupling between objects (CBO), additional lines of codes (LOC), and performance. Thus, we believe that the reuse approach using a mediator connector yields many benefits in terms of component reusability for the EHR Exchanger implementation.
24

Supporting resource awareness in managed runtime environment / Soutien efficace pour créer des systèmes «conscient des ressources» sur des environnements d'exécution gérés

Gonzalez Herrera, Inti Yulien 14 December 2015 (has links)
Aujourd'hui, les systèmes logiciels sont omniprésents. Parfois, les applications doivent fonctionner sur des dispositifs à ressources limitées. Toutefois, les applications nécessitent un support d'exécution pour faire face à de telles limitations. Cette thèse aborde le problème de la programmation pour créer des systèmes "conscient des ressources" supporté par des environnements d'exécution adaptés (MRTEs). En particulier, cette thèse vise à offrir un soutien efficace pour recueillir des données sur la consommation de ressources de calcul (par exemple, CPU, mémoire), ainsi que des mécanismes efficaces pour réserver des ressources pour des applications spécifiques. Dans les solutions existantes, nous trouvons deux inconvénients importants. Les solutions imposent un impact important sur les performances à l'exécution des applications. La création d'outils permettant de gérer finement les ressources pour ces abstractions est encore une tâche complexe. Les résultats de cette thèse forment trois contributions : Un cadre de surveillance des ressources optimiste qui réduit le coût de la collecte des données de consommation de ressources ; une méthodologie pour sélectionner les le support d'exécution des composants au moment du déploiement afin d’exécuter la réservation de ressources ; un langage pour construire des profileurs de mémoire personnalisées qui peuvent être utilisés à la fois au cours du développement des applications, ainsi que dans un environnement de production. / Software systems are more pervasive than ever nowadays. Occasionally, applications run on top of resource-constrained devices where efficient resource management is required ; hence, they must be capable of coping with such limitations. However, applications require support from the run-time environment to properly deal with resource limitations. This thesis addresses the problem of supporting resource-aware programming in execution environments. In particular, it aims at offering efficient support for collecting data about the consumption of computational resources (e.g., CPU, memory), as well as efficient mechanisms to reserve resources for specific applications. In existing solutions we find two important drawbacks. First, they impose performance overhead on the execution of applications. Second, creating resource management tools for these abstractions is still a daunting task. The outcomes of this thesis are three contributions: an optimistic resource monitoring framework that reduces the cost of collecting resource consumption data ; a methodology to select components' bindings at deployment time in order to perform resource reservation ; a language to build customized memory profilers that can be used both during applications' development, and also in a production environment.
25

Une approche pragmatique pour mesurer la qualité des applications à base de composants logiciels / A pragmatic approach to measure the quality of Component–Based Software Applications

Hamza, Salma 19 December 2014 (has links)
Ces dernières années, de nombreuses entreprises ont introduit la technologie orientée composant dans leurs développements logiciels. Le paradigme composant, qui prône l’assemblage de briques logiciels autonomes et réutilisables, est en effet une proposition intéressante pour diminuer les coûts de développement et de maintenance tout en augmentant la qualité des applications. Dans ce paradigme, comme dans tous les autres, les architectes et les développeurs doivent pouvoir évaluer au plus tôt la qualité de ce qu’ils produisent, en particulier tout au long du processus de conception et de codage. Les métriques sur le code sont des outils indispensables pour ce faire. Elles permettent, dans une certaine mesure, de prédire la qualité « externe » d’un composant ou d’une architecture en cours de codage. Diverses propositions de métriques ont été faites dans la littérature spécifiquement pour le monde composant. Malheureusement, aucune des métriques proposées n’a fait l’objet d’une étude sérieuse quant à leur complétude, leur cohésion et surtout quant à leur aptitude à prédire la qualité externe des artefacts développés. Pire encore, l’absence de prise en charge de ces métriques par les outils d’analyse de code du marché rend impossible leur usage industriel. En l’état, la prédiction de manière quantitative et « a priori » de la qualité de leurs développements est impossible. Le risque est donc important d’une augmentation des coûts consécutive à la découverte tardive de défauts. Dans le cadre de cette thèse, je propose une réponse pragmatique à ce problème. Partant du constat qu’une grande partie des frameworks industriels reposent sur la technologie orientée objet, j’ai étudié la possibilité d’utiliser certaines des métriques de codes "classiques", non propres au monde composant, pour évaluer les applications à base de composants. Parmi les métriques existantes, j’ai identifié un sous-ensemble d’entre elles qui, en s’interprétant et en s’appliquant à certains niveaux de granularité, peuvent potentiellement donner des indications sur le respect par les développeurs et les architectes des grands principes de l’ingénierie logicielle, en particulier sur le couplage et la cohésion. Ces deux principes sont en effet à l’origine même du paradigme composant. Ce sous-ensemble devait être également susceptible de représenter toutes les facettes d’une application orientée composant : vue interne d’un composant, son interface et vue compositionnelle au travers l’architecture. Cette suite de métrique, identifiée à la main, a été ensuite appliquée sur 10 applications OSGi open- source afin de s’assurer, par une étude de leur distribution, qu’elle véhiculait effectivement pour le monde composant une information pertinente. J’ai ensuite construit des modèles prédictifs de propriétés qualité externes partant de ces métriques internes : réutilisation, défaillance, etc. J’ai décidé de construire des modèles qui permettent de prédire l’existence et la fréquence des défauts et les bugs. Pour ce faire, je me suis basée sur des données externes provenant de l’historique des modifications et des bugs d’un panel de 6 gros projets OSGi matures (avec une période de maintenance de plusieurs années). Plusieurs outils statistiques ont été mis en œuvre pour la construction des modèles, notamment l’analyse en composantes principales et la régression logistique multivariée. Cette étude a montré qu’il est possible de prévoir avec ces modèles 80% à 92% de composants fréquemment buggés avec des rappels allant de 89% à 98%, selon le projet évalué. Les modèles destinés à prévoir l’existence d’un défaut sont moins fiables que le premier type de modèle. Ce travail de thèse confirme ainsi l’intérêt « pratique » d’user de métriques communes et bien outillées pour mesurer au plus tôt la qualité des applications dans le monde composant. / Over the past decade, many companies proceeded with the introduction of component-oriented software technology in their development environments. The component paradigm that promotes the assembly of autonomous and reusable software bricks is indeed an interesting proposal to reduce development costs and maintenance while improving application quality. In this paradigm, as in all others, architects and developers need to evaluate as soon as possible the quality of what they produce, especially along the process of designing and coding. The code metrics are indispensable tools to do this. They provide, to a certain extent, the prediction of the quality of « external » component or architecture being encoded. Several proposals for metrics have been made in the literature especially for the component world. Unfortunately, none of the proposed metrics have been a serious study regarding their completeness, cohesion and especially for their ability to predict the external quality of developed artifacts. Even worse, the lack of support for these metrics with the code analysis tools in the market makes it impossible to be used in the industry. In this state, the prediction in a quantitative way and « a priori » the quality of their developments is impossible. The risk is therefore high for obtaining higher costs as a consequence of the late discovery of defects. In the context of this thesis, I propose a pragmatic solution to the problem. Based on the premise that much of the industrial frameworks are based on object-oriented technology, I have studied the possibility of using some « conventional » code metrics unpopular to component world, to evaluate component-based applications. Indeed, these metrics have the advantage of being well defined, known, equipped and especially to have been the subject of numerous empirical validations analyzing the predictive power for imperatives or objects codes. Among the existing metrics, I identified a subset of them which, by interpreting and applying to specific levels of granularity, can potentially provide guidance on the compliance of developers and architects of large principles of software engineering, particularly on the coupling and cohesion. These two principles are in fact the very source of the component paradigm. This subset has the ability to represent all aspects of a component-oriented application : internal view of a component, its interface and compositional view through architecture. This suite of metrics, identified by hand, was then applied to 10 open-source OSGi applications, in order to ensure, by studying of their distribution, that it effectively conveyed relevant information to the component world. I then built predictive models of external quality properties based on these internal metrics : reusability, failure, etc. The development of such models and the analysis of their power are only able to empirically validate the interest of the proposed metrics. It is also possible to compare the « power » of these models with other models from the literature specific to imperative and/or object world. I decided to build models that predict the existence and frequency of defects and bugs. To do this, I relied on external data from the history of changes and fixes a panel of 6 large mature OSGi projects (with a maintenance period of several years). Several statistical tools were used to build models, including principal component analysis and multivariate logistic regression. This study showed that it is possible to predict with these models 80% to 92% of frequently buggy components with reminders ranging from 89% to 98%, according to the evaluated projects. Models for predicting the existence of a defect are less reliable than the first type of model. This thesis confirms thus the interesting « practice » of using common and well equipped metrics to measure at the earliest application quality in the component world.
26

以物件導向模型及軟體元件觀念進行資訊系統發展之研究-以流通業訂單處理系統為例 / A Study on Information Systems Development using Object-Oriented Software Component Technology -- A Distribution Channel Order Processing System Example

劉浩然, Liu, Hao-Jan Unknown Date (has links)
面對商場日益競爭激烈及服務型態的翻新迅速,通路革命已使流通業者的結構產生劇幅的改變。業者對營業資訊的需求增加,上下游、連鎖經營店間的資料傳輸日漸綿密,再加上企業為了市場競爭,其經營模式或組織需要非常靈活的彈性調整,使得資訊系統的開發與運用重要性日增,其維護上的負擔也日益沉重。在軟體技術方面,由於物件導向技術的成熟,資訊系統開發人員也戮力於導入此技術。然而現今之電腦軟體技術愈來愈複雜,對品質的要求也不斷地提昇,資訊系統開發生命週期在市場的變化下愈來愈短,這些現象都使軟體元件的角色加重。為要達到品質與生產力的雙重要求,軟體元件的再使用與配套的軟體發展程序是一個關鍵成功因素。本研究運用方法論 (Methodology)、概念形成 (Concept Formulation) 與雛型發展(Prototype) 三種研究方式,結合物件導向技術及軟體元件觀念相輔相成的軟體發展塑模方式,建構一套以使用個案及企業元件為主軸、軟體架構為中心的軟體元件發展程序,以期強化軟體再使用度及維護度,減低開發的時程及成本,並建立一個流通業訂單資訊系統的雛型,產生相關的企業軟體元件及開發程序,用以說明本研究所提概念的運用方式。 / Due to the rigorous competition and the rapid change of service type, the channel revolution has huge impact on the business structure of channel service providers. Because of the increased information requirement in business operating, frequent communication between channels and dynamic business model with changing organization structure intensify the importance of flexibility and maintainability of information systems development and usage. On the other hand, object-oriented technology has been adopted wildly by information systems developers. However, due to the incurred complexity in software technology, the requests on higher software quality and shorter life cycle make the focus shift to software component technology gradually. To meet the expectation in both software quality and productivity, the reusability in software components and the related development process will be the critical factor in success. In this thesis, we introduce a modeling process in terms of object-oriented technology d software component concepts, such as use case, business component and software architecture. The proposed process should potentially increase the software reusability and maintenance, as well as reduce the developing schedule and cost. A prototype for order processing is also built to illustrate the process and the involved concepts.
27

A Gis Domain Framework Utilizing Jar Libraries As Components

Ozdogru, Ebru 01 June 2005 (has links) (PDF)
A Component Oriented Software Engineering (COSE) modeling environment is enhanced with the capability to import executable components and deliver applications through their composition. For this purpose, an interface layer that utilizes JAR libraries as components has been developed. Also, Domain Engineering process has been applied to Geographical Information Systems (GIS) domain and utilized towards converting the environment to a development framework. The interface layer imports JAR libraries into the COSECASE tool, which is a graphical tool supporting COSE approach and COSE Modeling Language (COSEML). As a result, systems can be designed using abstractions and then implemented by corresponding deployed components. Imported code is made available to the COSECASE environment through this interface layer. Also, Domain Analysis, Domain Design, and Domain Implementation phases of Domain Engineering process have been applied to the GIS domain. Components developed in this Domain Implementation phase have been imported into COSECASE. A simple GIS application has been designed and generated through the interface layer of COSECASE for demonstration purposes.
28

Um modelo de interconex?o de componentes para ambientes mulitm?dia distribu?dos

Silva, Carlos Eduardo da 02 February 2007 (has links)
Made available in DSpace on 2014-12-17T15:48:09Z (GMT). No. of bitstreams: 0 Previous issue date: 2007-02-02 / Multimedia systems must incorporate middleware concepts in order to abstract hardware and operational systems issues. Applications in those systems may be executed in different kinds of platforms, and their components need to communicate with each other. In this context, it is needed the definition of specific communication mechanisms for the transmission of information flow. This work presents a interconnection component model for distributed multimedia environments, and its implementation details. The model offers specific communication mechanisms for transmission of information flow between software components considering the Cosmos framework requirements in order to support component dynamic reconfiguration / Sistemas multim?dia devem incorporar conceitos de middleware de forma a abstrair especificidades de hardware e sistemas operacionais. Aplica??es nestes sistemas podem ser executadas em diferentes tipos de plataformas, e os componentes destes sistemas precisam interagir uns com os outros. Neste contexto, faz-se necess?rio a defini??o de mecanismos de comunica??o espec?ficos para a transmiss?o de fluxos de informa??o. Este trabalho apresenta um modelo para a interconex?o de componentes em ambientes multim?dia, e sua arquitetura de implementa??o. O modelo oferece mecanismos de comunica??o espec?ficos para a transmiss?o de fluxos de informa??o entre componentes de software atendendo aos requisitos do framework Cosmos de maneira a suportar a reconfigura??o din?mica de componentes
29

Um modelo de interconex?o de componentes para ambientes mulitm?dia distribu?dos

Silva, Carlos Eduardo da 05 February 2007 (has links)
Made available in DSpace on 2014-12-17T15:48:13Z (GMT). No. of bitstreams: 1 CarlosES.pdf: 1065336 bytes, checksum: c1840ccdd384fc7c59635d8e173e484f (MD5) Previous issue date: 2007-02-05 / Multimedia systems must incorporate middleware concepts in order to abstract hardware and operational systems issues. Applications in those systems may be executed in different kinds of platforms, and their components need to communicate with each other. In this context, it is needed the definition of specific communication mechanisms for the transmission of information flow. This work presents a interconnection component model for distributed multimedia environments, and its implementation details. The model offers specific communication mechanisms for transmission of information flow between software components considering the Cosmos framework requirements in order to support component dynamic reconfiguration / Sistemas multim?dia devem incorporar conceitos de middleware de forma a abstrair especificidades de hardware e sistemas operacionais. Aplica??es nestes sistemas podem ser executadas em diferentes tipos de plataformas, e os componentes destes sistemas precisam interagir uns com os outros. Neste contexto, faz-se necess?rio a defini??o de mecanismos de comunica??o espec?ficos para a transmiss?o de fluxos de informa??o. Este trabalho apresenta um modelo para a interconex?o de componentes em ambientes multim?dia, e sua arquitetura de implementa??o. O modelo oferece mecanismos de comunica??o espec?ficos para a transmiss?o de fluxos de informa??o entre componentes de software atendendo aos requisitos do framework Cosmos de maneira a suportar a reconfigura??o din?mica de componentes
30

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.

Page generated in 0.1552 seconds