Spelling suggestions: "subject:"dignes dde produits"" "subject:"dignes dee produits""
11 |
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 EngineeringTaffo 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.
|
12 |
Composition des modèles de lignes de produits logiciels / Composition of software product line modelsBen Rhouma, Takoua 29 November 2012 (has links)
Cette thèse s’inscrit dans le cadre de la gestion des modèles de lignes de produits logiciels complexes. L’ingénierie des lignes de produits logiciels a pour objectif de modéliser et développer une famille de produits logiciels présentant un ensemble de similarités plutôt que de modéliser et développer des produits logiciels individuels au cas par cas. La modélisation, cependant, peut se révéler une tâche difficile voir même infaisable quand il s’agit de modéliser des lignes de produits logiciels complexes et à grande échelle. Pour résoudre un tel problème, la tâche de modélisation est distribuée sur différents intervenants. Les modèles développés séparément doivent alors être composés pour obtenir le modèle global de la ligne de produits logiciels. Toutefois, la composition des modèles de lignes de produits logiciels n’est pas une tâche triviale car elle doit prendre en compte l’information de variabilité des éléments de modèles, les contraintes de variabilité, la structure des modèles manipulés et la sémantique ciblée par la composition. L’objectif de cette thèse est de fournir des mécanismes de composition des modèles de lignes de produits logiciels. Pour cela, deux mécanismes sont proposés : la fusion et l’agrégation. La fusion a pour objectif de combiner des modèles présentant des similarités au niveau de leurs éléments structurels. Alors que l’agrégation vise à composer des modèles ne possèdent pas de similarités mais plutôt d’éventuelles contraintes transversales reliant leurs éléments structurels. Les modèles utilisés sont représentés sous une vue de structures composites d’UML et incluent des annotations spécifiques des éléments variables. Les mécanismes que nous proposons traitent l’information de variabilité des éléments structurels manipulés, les contraintes de variabilités associées aux éléments annotés variables ainsi que l’aspect structurel des modèles à composer. Les mécanismes de composition proposés sont définis selon des propriétés sémantiques bien précises décrivant le but de la composition. Ces propriétés sémantiques doivent alors être vérifiées tout au long du processus de composition. A la fin, une évaluation du travail effectué permet de montrer la capacité à composer des modèles de lignes de produits logiciels en un temps raisonnable ainsi que l’importance de la consolidation des modèles structurels dans la réduction du nombre de produits structurellement incomplets. / The Software Product Line (SPL) engineering aims at modeling and developing a set of software systems with similarities rather than individual software systems. Modeling task can be, however, tedious or even infeasible for large scale and complex SPLs. To address such a problem, the modeling task is distributed among different stakeholders. At the end, the models separately developed have to be composed in order to obtain the global SPL model. Composing SPL models is not a trivial task; variability information of model elements has to be treated during the composition, as well as the variability constraints. Similarly, the model structure and the composition semantics are key points that have to be considered during the composition. This thesis aims at providing specific mechanisms to compose SPL models. Therefore, we propose two composition mechanisms: the merge and the aggregation mechanisms. The merge mechanism aims at combining models including structural similarities. The aggregation mechanism, however, intends to compose models without any structural similarity but having eventual constraints across their structural elements. We focus on UML composite structures of SPLs and use specific annotations to identify variable elements. Our composition mechanisms deal with the variability information of structural elements, the variability constraints associated with the variable elements as well as the structures of the manipulated models. We also specify a set of semantic properties that have to be considered during the composition process and show how to preserve them. At the end, we have carried out an assessment of the proposals and have showed their ability to compose SPL models in a reasonable time. We have also showed how model consolidation is important in reducing le number of products having incomplete structure.
|
13 |
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.
|
14 |
Construction de lignes de produits logiciels par rétro-ingénierie de modèles de caractéristiques à partir de variantes de logiciels : l'approche REVPLINE / Reverse Engineering Feature Models From Software Variants to Build Software Product Lines : RIVEPLINE ApproachAl-Msie' Deen, Ra'Fat 24 June 2014 (has links)
Les lignes de produits logicielles constituent une approche permettant de construire et de maintenir une famille de produits logiciels similaires mettant en œuvre des principes de réutilisation. Ces principes favorisent la réduction de l'effort de développement et de maintenance, raccourcissent le temps de mise sur le marché et améliorent la qualité globale du logiciel. La migration de produits logiciels similaires vers une ligne de produits demande de comprendre leurs similitudes et leurs différences qui s'expriment sous forme de caractéristiques (features) offertes. Dans cette thèse, nous nous intéressons au problème de la construction d'une ligne de produits à partir du code source de ses produits et de certains artefacts complémentaires comme les diagrammes de cas d'utilisation, quand ils existent. Nous proposons des contributions sur l'une des étapes principales dans cette construction, qui consiste à extraire et à organiser un modèle de caractéristiques (feature model) dans un mode automatisé. La première contribution consiste à extraire des caractéristiques dans le code source de variantes de logiciels écrits dans le paradigme objet. Trois techniques sont mises en œuvre pour parvenir à cet objectif : l'Analyse Formelle de Concepts, l'Indexation Sémantique Latente et l'analyse des dépendances structurelles dans le code. Elles exploitent les parties communes et variables au niveau du code source. La seconde contribution s'attache à documenter une caractéristique extraite par un nom et une description. Elle exploite le code source mais également les diagrammes de cas d'utilisation, qui contiennent, en plus de l'organisation logique des fonctionnalités externes, des descriptions textuelles de ces mêmes fonctionnalités. En plus des techniques précédentes, elle s'appuie sur l'Analyse Relationnelle de Concepts afin de former des groupes d'entités d'après leurs relations. Dans la troisième contribution, nous proposons une approche visant à organiser les caractéristiques, une fois documentées, dans un modèle de caractéristiques. Ce modèle de caractéristiques est un arbre étiqueté par des opérations et muni d'expressions logiques qui met en valeur les caractéristiques obligatoires, les caractéristiques optionnelles, des groupes de caractéristiques (groupes ET, OU, OU exclusif), et des contraintes complémentaires textuelles sous forme d'implication ou d'exclusion mutuelle. Ce modèle est obtenu par analyse d'une structure obtenue par Analyse Formelle de Concepts appliquée à la description des variantes par les caractéristiques. L'approche est validée sur trois cas d'étude principaux : ArgoUML-SPL, Health complaint-SPL et Mobile media. Ces cas d'études sont déjà des lignes de produits constituées. Nous considérons plusieurs produits issus de ces lignes comme s'ils étaient des variantes de logiciels, nous appliquons notre approche, puis nous évaluons son efficacité par comparaison entre les modèles de caractéristiques extraits automatiquement et les modèles de caractéristiques initiaux (conçus par les développeurs des lignes de produits analysées). / The idea of Software Product Line (SPL) approach is to manage a family of similar software products in a reuse-based way. Reuse avoids repetitions, which helps reduce development/maintenance effort, shorten time-to-market and improve overall quality of software. To migrate from existing software product variants into SPL, one has to understand how they are similar and how they differ one from another. Companies often develop a set of software variants that share some features and differ in other ones to meet specific requirements. To exploit existing software variants and build a software product line, a feature model must be built as a first step. To do so, it is necessary to extract mandatory and optional features in addition to associate each feature with its name. Then, it is important to organize the mined and documented features into a feature model. In this context, our thesis proposes three contributions.Thus, we propose, in this dissertation as a first contribution a new approach to mine features from the object-oriented source code of a set of software variants based on Formal Concept Analysis, code dependency and Latent Semantic Indexing. The novelty of our approach is that it exploits commonality and variability across software variants, at source code level, to run Information Retrieval methods in an efficient way. The second contribution consists in documenting the mined feature implementations based on Formal Concept Analysis, Latent Semantic Indexing and Relational Concept Analysis. We propose a complementary approach, which aims to document the mined feature implementations by giving names and descriptions, based on the feature implementations and use-case diagrams of software variants. The novelty of our approach is that it exploits commonality and variability across software variants, at feature implementations and use-cases levels, to run Information Retrieval methods in an efficient way. In the third contribution, we propose an automatic approach to organize the mined documented features into a feature model. Features are organized in a tree which highlights mandatory features, optional features and feature groups (and, or, xor groups). The feature model is completed with requirement and mutual exclusion constraints. We rely on Formal Concept Analysis and software configurations to mine a unique and consistent feature model. To validate our approach, we applied it on three case studies: ArgoUML-SPL, Health complaint-SPL, Mobile media software product variants. The results of this evaluation validate the relevance and the performance of our proposal as most of the features and its constraints were correctly identified.
|
15 |
Mining and modeling variability from natural language documents : two case studies / Extraction automatique de modèles de variabilitéBen Nasr, Sana 05 April 2016 (has links)
L'analyse du domaine vise à identifier et organiser les caractéristiques communes et variables dans un domaine. Dans la pratique, le coût initial et le niveau d'effort manuel associés à cette analyse constituent un obstacle important pour son adoption par de nombreuses organisations qui ne peuvent en bénéficier. La contribution générale de cette thèse consiste à adopter et exploiter des techniques de traitement automatique du langage naturel et d'exploration de données pour automatiquement extraire et modéliser les connaissances relatives à la variabilité à partir de documents informels. L'enjeu est de réduire le coût opérationnel de l’analyse du domaine. Nous étudions l'applicabilité de notre idée à travers deux études de cas pris dans deux contextes différents: (1) la rétro-ingénierie des Modèles de Features (FMs) à partir des exigences réglementaires de sûreté dans le domaine de l’industrie nucléaire civil et (2) l’extraction de Matrices de Comparaison de Produits (PCMs) à partir de descriptions informelles de produits. Dans la première étude de cas, nous adoptons des techniques basées sur l’analyse sémantique, le regroupement (clustering) des exigences et les règles d'association. L'évaluation de cette approche montre que 69% de clusters sont corrects sans aucune intervention de l'utilisateur. Les dépendances entre features montrent une capacité prédictive élevée: 95% des relations obligatoires et 60% des relations optionnelles sont identifiées, et la totalité des relations d'implication et d'exclusion sont extraites. Dans la deuxième étude de cas, notre approche repose sur la technologie d'analyse contrastive pour identifier les termes spécifiques au domaine à partir du texte, l'extraction des informations pour chaque produit, le regroupement des termes et le regroupement des informations. Notre étude empirique montre que les PCMs obtenus sont compacts et contiennent de nombreuses informations quantitatives qui permettent leur comparaison. L'expérience utilisateur montre des résultats prometteurs et que notre méthode automatique est capable d'identifier 43% de features correctes et 68% de valeurs correctes dans des descriptions totalement informelles et ce, sans aucune intervention de l'utilisateur. Nous montrons qu'il existe un potentiel pour compléter ou même raffiner les caractéristiques techniques des produits. La principale leçon à tirer de ces deux études de cas, est que l’extraction et l’exploitation de la connaissance relative à la variabilité dépendent du contexte, de la nature de la variabilité et de la nature du texte. / Domain analysis is the process of analyzing a family of products to identify their common and variable features. This process is generally carried out by experts on the basis of existing informal documentation. When performed manually, this activity is both time-consuming and error-prone. In this thesis, our general contribution is to address mining and modeling variability from informal documentation. We adopt Natural Language Processing (NLP) and data mining techniques to identify features, commonalities, differences and features dependencies among related products. We investigate the applicability of this idea by instantiating it in two different contexts: (1) reverse engineering Feature Models (FMs) from regulatory requirements in nuclear domain and (2) synthesizing Product Comparison Matrices (PCMs) from informal product descriptions. In the first case study, we adopt NLP and data mining techniques based on semantic analysis, requirements clustering and association rules to assist experts when constructing feature models from these regulations. The evaluation shows that our approach is able to retrieve 69% of correct clusters without any user intervention. Moreover, features dependencies show a high predictive capacity: 95% of the mandatory relationships and 60% of optional relationships are found, and the totality of requires and exclude relationships are extracted. In the second case study, our proposed approach relies on contrastive analysis technology to mine domain specific terms from text, information extraction, terms clustering and information clustering. Overall, our empirical study shows that the resulting PCMs are compact and exhibit numerous quantitative and comparable information. The user study shows that our automatic approach retrieves 43% of correct features and 68% of correct values in one step and without any user intervention. We show that there is a potential to complement or even refine technical information of products. The main lesson learnt from the two case studies is that the exploitability and the extraction of variability knowledge depend on the context, the nature of variability and the nature of text.
|
16 |
Metamodels and feature models : complementary approaches to formalize product comparison matrices / Méta-modèles et modèles de caractéristiques : deux approches complémentaires pour formaliser les matrices de comparaison de produitsBécan, Guillaume 23 September 2016 (has links)
Les Matrices de Comparaison de Produits (MCP) sont largement répandues sur le web. Elles fournissent une représentation simple des caractéristiques d'un ensemble de produits. Cependant, le manque de formalisation et la grande diversité des MCP rendent difficile le développement de logiciels pour traiter ces matrices. Dans cette thèse, nous développons deux approches complémentaires pour la formalisation de MCP. La première consiste en une description précise de la structure et la sémantique d'une MCP sous la forme d'un meta-modèle. Nous proposons aussi une transformation automatique d'une MCP vers un modèle de MCP conforme au meta-modèle. La seconde approche consiste à synthétiser des modèles de caractéristiques attribués à partir d'une classe de MCP. Grâce nos contributions, nous proposons une approche générique et extensible pour la formalisation et l'exploitation de MCP. / Product Comparison Matrices (PCMs) abound on the Web. They provide a simple representation of the characteristics of a set of products. However, the lack of formalization and the large diversity of PCMs challenges the development of software for processing these matrices. In this thesis, we develop two complementary approaches for the formalisation of PCMs. The first one consists in a precise description of the structure and semantics of PCMs in the form of a metamodel. We also propose an automated transformation from PCMs to PCM models conformant to the metamodel. The second one consists in synthesizing attributed feature models from a class of PCMs. With our contributions, we propose a generic and extensible approach for the formalization and exploitation of PCMs.
|
17 |
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.
|
18 |
Methodology for the derivation of product behaviour in a Software Product Line / Méthodologie SPL pour la dérivation de modèles comportementaux des produitsIstoan, Paul 21 February 2013 (has links)
Le principal problème abordé dans cette thèse est la définition d'une nouvelle méthodologie SPL qui couvre les deux phases du processus et met l'accent sur la dérivation de modèles comportementaux des produits. Le chapitre 2 définit le cadre de cette thèse : les lignes de produits logiciels, les processus opérationnels et l'ingénierie dirigé par les modèles. Dans le chapitre 3, nous proposons une nouvelle méthodologie SPL centrée sur la dérivation de comportement des produits. Nous décrivons d'abord le courant principal de la méthodologie, et ensuite les différentes étapes. Dans le chapitre 4, nous proposons un nouveau langage spécifique domaine appelé CBPF pour la modélisation des fragments de processus opérationnels. Une approche dirigée par les modèles est suivie pour créer CBPF: syntaxe abstraite, syntaxe concrète graphique et sémantique translationnelles. Dans le chapitre 5, nous proposons plusieurs types de vérifications applicables aux fragments afin de déterminer leur justesse. Pour la vérification structurelle, est définit un ensemble des règles de cohérence qui doivent être valides pour chaque fragment réalisé avec CBPF. Pour vérifier le comportement, nous transformons d'abord les fragments dans des réseaux de Pétri équivalents. On peut alors vérifier des propriétés génériques mais aussi définir des propriétés spécifiques. Dans le chapitre 6, nous illustrons la méthodologie proposée en l'appliquant à une étude de cas à partir du domaine système de gestion de crise. Nous proposons également une suite d'outils qui supporte notre méthodologie. Le chapitre 7 décrit les améliorations possibles et les extensions aux contributions de cette thèse. Nous concluons la thèse dans le chapitre 8. / The major problem addressed in this thesis is the definition of a new SPLE methodology that covers both phases of the SPLE process and focuses on the derivation of behavioral models of SPL products. In Chapter 2 three research areas scope context of this thesis: Software Product Lines, Business Processes, and Model-Driven Engineering. Throughout Chapter 3, we propose a new SPLE methodology that focuses on the derivation of product behavior. We first describe the main flow of the methodology, and then detail the individual steps. In chapter 4 we propose a new domain specific language called CBPF created for modeling composable business process fragments. A model driven approach is followed for creating CBPF: definition of the abstract syntax, graphical concrete syntax and translational semantics. In Chapter 5 we propose several types of verifications that can be applied to business processfragments to determine their "correctness". For structural verification we definine a set of fragment consistency rules that should be valid for every business process fragment created with CBPF. To check behavioral correctness we first transform the business process fragment into an equivalent HCPN. We can then check generic properties but also define aset of fragment specific properties. In chapter 6 we exemplify the proposed SPL methodology by applying it to a case study from the crisis management system domain. We also propose a tool suite that supports our methodology. Chapter 7 describes possible improvements and extensions to the contributions of this thesis. We conclude the thesis in Chapter 8 and draw some conclusions.
|
19 |
Taming Complexity of Large Software Systems: Contracting, Self-Adaptation and Feature ModelingCollet, Philippe 06 December 2011 (has links) (PDF)
Nos travaux s'inscrivent dans le domaine du génie logiciel pour les systèmes informatiques à large échelle. Notre objectif est de fournir des techniques et des outils pour aider les architectes logiciels à maîtriser la complexité toujours grandissante de ces systèmes. Principalement fondées sur des approches par ingénierie des modèles, nos contributions s'organisent autour de trois axes. Le premier axe concerne le développement de systèmes à la fois fiables et flexibles, et ce à base de composants hiérarchiques équipés de capacités de reconfiguration dynamique. Par l'utilisation de nouvelles formes de contrats logiciels, les systèmes et frameworks que nous proposons prennent en compte differents formalismes de spécification et maintiennent les contrats à jour pendant l'exécution. Une seconde partie de nos travaux s'intéresse à fournir des capacités auto-adaptatives à ces systèmes contractuels, à travers des mécanismes de négociation de contrats et des sous-systèmes de monitoring eux-mêmes auto-adaptatifs. Un troisième axe concerne les lignes de produits logiciels dans lesquelles les features models sont largement utilisés pour modéliser la variabilité. Nos contributions consistent en un ensemble d'opérateurs de composition bien définis et implémentés efficacement pour les feature models, ainsi qu'un langage dédié permettant leur gestion à large échelle.
|
20 |
Architecting software systems using model transformations and architectural frameworksPerrouin, Gilles 20 September 2007 (has links)
<b>Résumé</b>
Les applications logicielles sont devenues indispensables dans un grand nombre d’activités humaines et se sont répandues grâce à l’avènement des réseaux (ADSL, WIFI, GSM...) ou de l’informatique nomade (ordinateurs portables, assistant digitaux personnels, téléphones mobiles etc.) qui ont rendu l’interaction avec des systèmes informatiques possible en presque tout lieu. Cet état de fait a engendré à la fois une grande complexité pour la conception de ces systèmes distribués et de grandes attentes de la part des clients de ces systèmes, préoccupés principalement par les qualités et temps de réalisation des applications logicielles exécutées par ces systèmes ainsi que les coûts qui en découlent. Il est donc nécessaire d’améliorer nos méthodes de développement afin de faire face à ces nouveaux défis.
D’une part, l’ingénierie dirigée par les modèles (IDM), en permettant la description d’applications logicielles à divers niveaux d’abstraction et en générant certains de leurs éléments via la transformation de modèles, s’attaque à la complexité intrinsèque de ces systèmes et réduit leur temps de développement ainsi que celui de maintenance. D’autre part, l’approche de ligne de produits accélère la réutilisation logicielle en proposant le développement d’applications basées sur un ensemble de composants communs dans un domaine déterminé. Ainsi, lorsque ceux-ci sont conçus avec soin, il est possible de satisfaire simultanément des critères de qualité et de temps de développement. Les méthodes qui ont été construites sur le paradigme de ligne de produits se sont principalement attachées à décrire les points communs et les différences parmi les composants qui seront réutilisés par les applications membres de lignes de produits.
Néanmoins, un logiciel doit très souvent répondre à un besoin qui émane d’un utilisateur particulier. Il est donc nécessaire de prendre en compte ses attentes qui sont parfois spécifiques à cet utilisateur et il n’est ni possible ni souhaitable de définir et de supporter celles ci dans l’ensemble de composant réutilisables à partir desquels les applications sont dérivées. Certaines méthodes orientées lignes de produits proposent des approches pour la dérivation de produits par trop restrictives qui excluent de manière indue des produits qui, bien que pouvant être développés à partir des composants de la ligne de produits, n’ont pas été envisagés lors de sa définition, ce qui nous prive donc de la possibilité d’adresser facilement les exigences spécifiques des utilisateurs. Si quelques méthodes reconnaissent la nécessité de prendre en compte ces exigences particulières, elles ne fournissent aucune solution systématique pour intégrer ces exigences dans le cycle de développement d’un produit.
Cette thèse s’attache à la définition d’une méthode plus souple pour le développement d’applications dans le contexte de ligne de produits qui s’appuie sur une combinaison de l’approche IDM avec les “frameworks” orientés-objet. Le domaine ciblé par cette méthode est celui des applications de ventes enchères sur Internet qui est un domaine non-critique pour lequel une grande variabilité dans les scenarii d’utilisation est requise.
La première partie de cette thèse introduit les concepts de base de notre méthode nommée FIDJI. En particulier, nous définissons la notion de framework architectural comme un ensemble de modèles permettant la description cohérente des divers constituants d’analyse et de concept d’une ligne de produits. Cette entité est ensuite instanciée par le biais de transformations de modèles. Nous décrivons ensuite les principes méthodologiques qui ont déterminé les choix des modèles du framework architectural ainsi que l’instanciation flexible de produits encadré par des contraintes définies sur les modèles du framework architectural.
La seconde partie de cette thèse présente en détail les phases de définition des charges, d’analyse et de conception de la méthode FIDJI. Tout d’abord, un modèle de définition de ligne de produits est introduit permettant la définition des charges de manière informelle en se basant sur des variations de cas d’utilisation et un dictionnaire de données et encadré par des règles méthodologiques simples. Nous définissons ensuite la phase d’analyse comme un raffinement de la phase de découverte des charges en proposant la modélisation des concepts du domaine à l’aide de diagrammes UML 2.0 ainsi que l’enrichissement des cas d’utilisation par des expressions OCL (Object Constraint Language). Au niveau de l’analyse, nous démontrons comment un certain degré de flexibilité peut être obtenu au niveau du cycle de vie des évenements échangés entre le système et ses acteurs via l’utilisation de variables d’états. La phase de design s’intéresse principalement à l’aspect architectural, en proposant un modèle de composants basé sur UML 2.0 permettant la description de styles architecturaux structurant le framework architectural. Des profiles UML 2.0 définissant les éléments de modèles utilisés, leurs conditions d’application ainsi que des règles de cohérence et de traceabilité pour les modèles d’analyse et de conception sont proposés. Le processus méthodologique, commun aux phases d’analyse et de conception, consiste en l’écriture d’un programme de transformation de modèles permettant d’instancier le framework architectural tout en étant guidé par des contraintes d’instanciation qui définissent de manière souple les frontières de la ligne de produits.
Enfin, la dernière partie de cette thèse s’intéresse à l’application concrète de la méthode FIDJI. Une étude de cas appartenant au domaine des applications e-commerce est détaillée, illustrant ainsi les modèles FIDJI. Nous montrons en particulier comment écrire le programme de transformations à partir d’opérations de transformation prédéfinies ainsi que la raison d’être et l’utilisation des contraintes guidant le processus d’instanciation au coeur de la méthode.
<b>Abstract</b>
Software systems have become essential to many human activities and have proliferated thanks to various hardware innovations such as mobile computing (laptops, personal digital assistants, mobile phones) and networks (DSL, WIFI, GSM, etc.) enabling interactions between users and computer systems in virtually any place. This situation has created both a great complexity for such distributed systems to be designed and great expectations (mainly concerned with quality, time and induced costs of the software) from the users of these systems, requiring improvements in software engineering methods in order to meet these challenges.
On the one hand, Model Driven Engineering (MDE), by allowing the description of software systems through abstractions and deriving useful system artifacts, harnesses inherent complexity of software systems and reduces time-to-market via model transformations. On the other hand, software product lines foster software reuse by proposing to develop applications based on a set of common assets belonging to a particular domain. Thus, when product line assets are carefully designed, both quality and time-to-market requirements can be achieved. Development methods that have resulted from the product line paradigm generally focus on defining common and variable assets to be reused by product line members. However, they hardly address the development of applications from the product line assets in a systematic way. Furthermore, those considering it propose automated but rather inflexible approaches that unnecessarily exclude products which, although addressable by product line assets, have not been explicitly envisioned during product line definition. If in some domains — in particular, those including hardware constraints and/or critical features — it is possible to fully determine the products that are part of the software product line, in the other cases, an initial set of products can only be considered assuming that the customers’ requests will be met by this set. We believe that this assumption is false in general and this thesis examines the research question which consists in proposing a set of models and a product line development method to offer more flexibility while deriving products in order to seamlessly address customers’ requests. The domain we consider is that of web e-bartering systems.
This thesis strives to propose a trade-off between automated and unsupported product derivation by providing a model-driven product line development method that allows developers to define product line members by transforming a coherent and layered set of product line models. Moreover, constraints on the possible transformations have to be specified in order to determine which products cannot be derived both for functional and technical reasons.
The first part of this thesis introduces the foundational concepts of our FIDJI method. In particular, it describes the notion of architectural framework as a set of models defining product line assets at analysis and design levels and which is instantiated in order to obtain product line members thanks to model transformations. This part then describes key methodological principles driving the choice of architectural framework models and how flexibility in product derivation can be achieved and controlled by constraints defined over the set of architectural framework models.
The second part of this thesis is devoted to requirements elicitation, analysis and design phases of the method. For requirements elicitation, a specific product line template is defined to allow for the description of a software product line in an informal manner via use case variants and data dictionaries. The analysis phase refines requirements elicitation by allowing the precise description of domain concepts in terms of UML models as well as functionalities in terms of use cases completed by OCL expressions. Variability is ensured through the use of state variables in OCL expressions which enable a wide variety of scenarios to be implemented in the product. Constraints indirectly define product line boundaries by preventing certain instantiations from being made. The design phase focuses on the architectural design of the architectural framework and describes it in terms of interacting components structured via architectural styles. Analysis and design models are supported by UML profiles defining the constructs offered by the FIDJI method, their usage conditions as well as traceability and consistency rules ensuring model correctness. The methodological process for both analysis and design consists in writing a transformation program, validated over the aforementioned constraints, that will instantiate the architectural framework to obtain a viable product line member.
The last part of the thesis deals with the practical application of the method. A case study belonging to the e-commerce domain illustrates the FIDJI method in detail and a simple architectural framework is defined for this purpose. In particular, we show how the transformation program is created from predefined transformation operations dedicated to FIDJI models and the rationale and usage of constraints controlling the instantiation of the architectural framework.
|
Page generated in 0.0951 seconds