Spelling suggestions: "subject:"variantes dde produits logiciel"" "subject:"variantes dee produits logiciel""
1 |
Recovering traceability links between artifacts of software variants in the context of software product line engineering / Identification des liens de traçabilité entre les artefacts logiciels d'applications similaires dans le contexte de l'ingénierie des lignes de produitsEyal Salman, Hamzeh 17 June 2014 (has links)
L'ingénierie des lignes de produits logiciels (Software Product Line Engineering-SPLE en Anglais) est une discipline qui met en œuvre des principes de réutilisation pour le développement efficace de familles de produits. Une famille de produits logiciels est un ensemble de logiciels similaires, ayant des fonctionnalités communes, mais néanmoins différents selon divers aspects; nous parlerons des différentes variantes d'un logiciel. L'utilisation d'une ligne de produit permet de développer les nouveaux produits d'une famille plus vite et d'augmenter la qualité de chacun d'eux. Ces avantages sont liés au fait que les éléments communs aux membres d'une même famille (besoin, architecture, code source, etc.) sont réutilisés et adaptés. Créer de toutes pièces une ligne de produits est une tâche difficile, coûteuse et longue. L'idée sous-jacente à ce travail est qu'une ligne de produits peut être créée par la réingénierie de logiciels similaires (de la même famille) existants, qui ont été préalablement développés de manière ad-hoc. Dans ce contexte, la contribution de cette thèse est triple. La première contribution est la proposition d'une approche pour l'identification des liens de traçabilité entre les caractéristiques (features) d'une application et les parties du code source qui les implémentent, et ce pour toutes les variantes d'une application. Ces liens sont utiles pour générer (dériver) de nouveaux logiciels par la sélection de leurs caractéristiques. L'approche proposée est principalement basée sur l'amélioration de la technique conventionnelle de recherche d'information (Information Retrieval –IR en Anglais) et des approches les plus récentes dans ce domaine. Cette amélioration est liée à deux facteurs. Le premier facteur est l'exploitation des informations liées aux éléments communs ou variables des caractéristiques et du code source des produits logiciels analysés. Le deuxième facteur concerne l'exploitation des similarités et des dépendances entre les éléments du code source. Les résultats que nous avons obtenus par expérimentation confirment l'efficacité de notre approche. Dans la deuxième contribution, nous appliquons nos résultats précédents (contribution no 1) à l'analyse d'impact (Change Impact Analysis –CIA en Anglais). Nous proposons un algorithme permettant à un gestionnaire de ligne de produit ou de produit de détecter quelles les caractéristiques (choix de configuration du logiciel) impactées par une modification du code. Cet algorithme améliore les résultats les plus récents dans ce domaine en permettant de mesurer à quel degré la réalisation d'une caractéristique est impactée par une modification. Dans la troisième contribution nous exploitons à nouveau ces liens de traçabilité (contribution No 1) pour proposer une approche permettant de satisfaire deux objectifs. Le premier concerne l'extraction de l'architecture de la ligne de produits. Nous proposons un ensemble d'algorithmes pour identifier les points de variabilité architecturale à travers l'identification des points de variabilité au niveau des caractéristiques. Le deuxième objectif concerne l'identification des liens de traçabilité entre les caractéristiques et les éléments de l'architecture de la ligne de produits. Les résultats de l'expérimentation montre que l'efficacité de notre approche dépend de l'ensemble des configurations de caractéristiques utilisé (disponibles via les variantes de produits analysés). / Software Product Line Engineering (SPLE) is a software engineering discipline providing methods to promote systematic software reuse for developing short time-to-market and quality products in a cost-efficient way. SPLE leverages what Software Product Line (SPL) members have in common and manages what varies among them. The idea behind SPLE is to builds core assets consisting of all reusable software artifacts (such as requirements, architecture, components, etc.) that can be leveraged to develop SPL's products in a prescribed way. Creating these core assets is driven by features provided by SPL products.Unfortunately, building SPL core assets from scratch is a costly task and requires a long time which leads to increasing time-to-market and up-front investment. To reduce these costs, existing similar product variants developed by ad-hoc reuse should be re-engineered to build SPLs. In this context, our thesis proposes three contributions. Firstly, we proposed an approach to recover traceability links between features and their implementing source code in a collection of product variants. This helps to understand source code of product variants and facilitate new product derivation from SPL's core assets. The proposed approach is based on Information Retrieval (IR) for recovering such traceability links. In our experimental evaluation, we showed that our approach outperforms the conventional application of IR as well as the most recent and relevant work on the subject. Secondly, we proposed an approach, based on traceability links recovered in the first contribution, to study feature-level Change Impact Analysis (CIA) for changes made to source code of features of product variants. This approach helps to conduct change management from a SPL's manager point of view. This allows him to decide which change strategy should be executed, as there is often more than one change that can solve the same problem. In our experimental evaluation, we proved the effectiveness of our approach in terms of the most used metrics on the subject. Finally, based on traceability recovered in the first contribution, we proposed an approach to contribute for building Software Product Line Architecture (SPLA) and linking its elements with features. Our focus is to identify mandatory components and variation points of components. Therefore, we proposed a set of algorithms to identify this commonality and variability across a given collection of product variants. According to the experimental evaluation, the efficiency of these algorithms mainly depends on the available product configurations.
|
2 |
Prise en charge du « copie et appropriation » dans les lignes de produits logiciels / Supporting Clone-and-Own in software product lineGhabach, Eddy 11 July 2018 (has links)
Une Ligne de Produits Logiciels (LPL) supporte la gestion d’une famille de logiciels. Cette approche se caractérise par une réutilisation systématique des artefacts communs qui réduit le coût et le temps de mise sur le marché et augmente la qualité des logiciels. Cependant, une LPL exige un investissement initial coûteux. Certaines organisations qui ne peuvent pas faire face à un tel investissement, utilisent le « Clone-and-own » C&O pour construire et faire évoluer des familles de logiciels. Cependant, l'efficacité de cette pratique se dégrade proportionnellement à la croissance de la famille de produits, qui devient difficile à maintenir. Dans cette thèse, nous proposons une approche hybride qui utilise à la fois une LPL et l'approche C&O pour faire évoluer une famille de produits logiciels. Un mécanisme automatique d’identification des correspondances entre les « features » caractérisant les produits et les artéfacts logiciels, permet la migration des variantes de produits développées en C&O dans une LPL. L’originalité de ce travail est alors d’aider à la dérivation de nouveaux produits en proposant différents scenarii d’opérations C&O à effectuer pour dériver un nouveau produit à partir des features requis. Le développeur peut alors réduire ces possibilités en exprimant ses préférences (e.g. produits, artefacts) et en utilisant les estimations de coûts sur les opérations que nous proposons. Les nouveaux produits ainsi construits sont alors facilement intégrés dans la LPL. Nous avons étayé cette thèse en développant le framework SUCCEED (SUpporting Clone-and-own with Cost-EstimatEd Derivation) et l’avons appliqué à une étude de cas sur des familles de portails web. / A Software Product Line (SPL) manages commonalities and variability of a related software products family. This approach is characterized by a systematic reuse that reduces development cost and time to market and increases software quality. However, building an SPL requires an initial expensive investment. Therefore, organizations that are not able to deal with such an up-front investment, tend to develop a family of software products using simple and intuitive practices. Clone-and-own (C&O) is an approach adopted widely by software developers to construct new product variants from existing ones. However, the efficiency of this practice degrades proportionally to the growth of the family of products in concern, that becomes difficult to manage. In this dissertation, we propose a hybrid approach that utilizes both SPL and C&O to develop and evolve a family of software products. An automatic mechanism of identification of the correspondences between the features of the products and the software artifacts, allows the migration of the product variants developed in C&O in an SPL The originality of this work is then to help the derivation of new products by proposing different scenarios of C&O operations to be performed to derive a new product from the required features. The developer can then reduce these possibilities by expressing her preferences (e.g. products, artifacts) and using the proposed cost estimations on the operations. We realized our approach by developing SUCCEED, a framework for SUpporting Clone-and-own with Cost-EstimatEd Derivation. We validate our works on a case study of families of web portals.
|
Page generated in 0.1021 seconds