• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 58
  • 32
  • 8
  • 4
  • 3
  • 3
  • 2
  • 2
  • 1
  • 1
  • 1
  • 1
  • 1
  • Tagged with
  • 120
  • 120
  • 85
  • 37
  • 30
  • 28
  • 23
  • 21
  • 21
  • 19
  • 18
  • 18
  • 16
  • 15
  • 14
  • 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.
61

Uma linha de produto de software para módulos de aprendizagem interativa / A software product line for interactive learning modules

Danilo Leite Dalmon 06 July 2012 (has links)
Aplicativos educacionais podem promover diversos benefícios a professores e alunos, desde a redução de tarefas repetitivas à realização de atividades impossíveis com o uso de apenas lousa e papel. Módulos de Aprendizagem Interativa (iMA) são uma família de aplicativos educacionais que fornecem atividades interativas integradas a Sistemas de Gerenciamento de Cursos. O desenvolvimento de iMA, similarmente ao de outros sistemas criados em contexto de projetos acadêmicos, enfrenta problemas relacionados a manutenção e evolução de software, que afetam suas contribuições à sociedade. Isso é provocado principalmente pela degradação do código com o tempo e dos métodos ad-hoc utilizados, sem sistematização do processo ou procedimentos explícitos para prevenção desses problemas. Com o objetivo de aprimorar esse processo, esta dissertação apresenta uma Linha de Produto de Software (LPS) criada para o desenvolver iMA. O método usado para criá-la envolveu análise do domínio, formado pelos iMA existentes, a elaboração de um modelo de sistema para definir as responsabilidades das características obrigatórias, variantes e opcionais aos aplicativos, e a implementação de um arcabouço de aplicação. Assim, essa LPS consiste nesse arcabouço e seus manuais de funcionamento interno, utilização e evolução, promovendo reúso de código, arquitetura e processo. A avaliação deste trabalho foi conduzida com uma prova de conceito e um estudo de caso. A prova de conceito descreve o desenvolvimento de um novo iMA, chamado iTangran, apresentando a factibilidade da utilização da LPS para essa tarefa. O estudo de caso investigou com maior profundidade o impacto da LPS sobre a criação da nova versão de um aplicativo existente, chamado iVProg. Os resultados obtidos mostram que o oferecimento de um processo e uma arquitetura que guiam as tarefas do programador de iMA teve grande influência na sua percepção de produtividade e satisfação, além de contribuírem para a qualidade do código criado e sua documentação, fatores essenciais para a prevenção dos problemas de desenvolvimento enfrentados atualmente. / Educational software provide many benefits for teachers and students, from reducing repetitive tasks to offering assignments impossible with the use of only blackboard and paper. Interactive Learning Modules (iLM) are a family of educational systems which offer interactive assignments integrated with Learning Management Systems. The development of iLM, similarly to other software created in context of academic projects, faces issues related to software maintenance and evolution, which hinder their contributions to society. This is mainly caused by code degradation with time and to ad-hoc methods used, without a systematic process and explicit considerations to prevent these problems. With the goal of improving this process, this work presents a Software Product Line (SPL) for the development of iLM. The method used to create this SPL involved an analysis of the domain, which are the existing iLM, the creation of a system model in order to define the responsibilities of mandatory, variant and optional features among systems, and the implementation of an application framework. Therefore, the SPL consists of this framework and its manuals for internal operation, utilization and evolution, providing code, architecture and process reuse. Contributions of this work were evaluated by a proof of concept and a study case. The proof of concept describes the development of a new iLM called iTangran, presenting the possibility of using the SPL for this task. The study case investigated more deeply the SPL impact on the refactoring process of an existing iLM, iVProg. Results show that a guide and an architecture for the tasks undertaken by programmers have a significant influence on the perceived productivity and their satisfaction while working, also contributing to code and documentation quality, which are essential factors to prevent development problems such as those faced nowadays.
62

Variabilitätsextraktion aus makrobasierten Software-Generatoren

Baum, David 07 January 2014 (has links)
Die vorliegende Arbeit beschäftigt sich mit der Frage, wie Variabilitätsinformationen aus den Quelltext von Generatoren extrahiert werden können. Zu diesem Zweck wurde eine Klassifizierung von Variablen entwickelt, die im Vergleich zu bestehenden Ansätzen eine genauere Identifikation von Merkmalen ermöglicht. Zudem bildet die Unterteilung die Basis der Erkennung von Merkmalinteraktionen und Cross-tree-Constraints. Weiterhin wird gezeigt, wie die gewonnenen Informationen durch Merkmalmodelle dargestellt werden können. Da diese auf dem Generator-Quelltext basieren, liefern sie Erkenntnisse über den Lösungsraum der Domäne. Es wird sichtbar, aus welchen Implementierungskomponenten ein Merkmal besteht und welche Beziehungen es zwischen Merkmalen gibt. Allerdings liefert ein automatisch generiertes Merkmalmodell nur wenig Erkenntnisse über den Lösungsraum. Außerdem wurde ein Prototyp entwickelt, der eine Automatisierung des beschriebenen Extraktionsprozesses ermöglicht.
63

Analysis and Improvement of a Software Production Process based on the Combination of Model Driven Development and Software Product Lines

Echeverría Ochoa, Jorge 10 September 2018 (has links)
La reutilización es un factor clave para reducir los costos y mejorar la calidad de las propiedades de productos software como la seguridad, fiabilidad o rendimiento. Siguiendo este factor surge la aproximación para el desarrollo de software de Líneas de Productos Software; esta aproximación promete, entre otras cosas, acortar el tiempo del desarrollo de los sistemas software y reducir significativamente los costes de desarrollo y mantenimiento. Por otro lado, el Desarrollo Dirigido por Modelos es un enfoque para el desarrollo de software que propone el uso de modelos en varios niveles de abstracción y transformaciones de modelo como artefactos principales. El uso de modelos como los principales artefactos en el desarrollo de software ofrece muchas ventajas a los desarrolladores, por ejemplo, las transformaciones de modelo permiten la conversión de un modelo fuente en otro modelo objetivo, el aumento del nivel de abstracción permite a los desarrolladores centrarse en el problema a resolver y restar importancia a los detalles de implementación. Ambos paradigmas, en la búsqueda de optimizar el tiempo de producción y calidad en el software generado, pueden reunir importantes ventajas en el proceso de producción de software. La combinación de Desarrollo Dirigido por Modelos y Líneas de Producto Software para producir productos software requiere la identificación de nuevos retos y necesidades de los stakeholders involucrados. La investigación presentada en esta tesis tiene el objetivo, apoyada en varios estudios empíricos realizados en entornos industriales, de aumentar el conocimiento y realizar una serie de propuestas de mejora del proceso de desarrollo software fundamentado en la combinación de Desarrollo Dirigido por Modelos y Líneas de Producto Software. Para alcanzar este objetivo se han estudiado cuatro dimensiones: procesado de requisitos, usabilidad, comprensión (en la configuración de productos) y gestión de errores. Cada una de estas dimensiones ha sido abordada en un estudio empírico, estudios presentados en trabajos de investigación y que forman la parte nuclear de esta tesis. Como resultado del trabajo realizado en esta tesis se han elaborado una serie de propuestas para mejorar el proceso de desarrollo software basado en la combinación de Desarrollo Dirigido por Modelos y Líneas de Producto Software y se han generado siete trabajos de investigación. Cinco de estos trabajos han sido presentados en conferencias de relevancia en el ámbito de la Ingeniería del Software: CAiSEForum'15, CAiSE'16, ESEM'16, ISD'17 y ESEM'17. Estos resultados de investigación han sido aplicados en el proceso de desarrollo de software de placas de inducción de la división de electrodomésticos de BSH (Bosch, Siemens, Gaggenau, Neff y Balay) y están siendo utilizados para su aplicación en la actual implantación para el desarrollo de software del PLC que controla los trenes en la empresa Construcciones y Auxiliar de Ferrocarriles. / Software reuse is a key factor in reducing costs and improving the quality of software product properties such as security, reliability, or performance. Taking this factor in account, the Software Product Line approach appears for software development. This approach promises to decrease the time spent in developing software systems and to significantly reduce the costs for development and maintenance of software systems, among other things. In addition, Model Driven Development is an approach for software development that proposes the use of models at various levels of abstraction and model transformations as main artifacts. The use of models as the main artifacts in software development offers many advantages for developers. For instance, model transformations allow the conversion of a source model into another target model. The increase in the level of abstraction allows the developers to focus on the problem to solve, subtracting importance to the implementation details. Both paradigms search to optimize the production time and quality of the generated software, and can result in important advantages in the software production process. However, the combination of Model Driven Development and Software Product Lines to develop software products requires the identification of the challenges and needs of the involved stakeholders. The research presented in this dissertation, supported by several empirical studies carried out in industrial environments, aims to increase the knowledge in the field and to do a set of proposals to improve the software development process based on the combination of Model Driven Development and Software Product Lines. To achieve this objective, four dimensions have been studied: requirements processing, usability, comprehension (configuring software products), and error management. The dimensions have been addressed through empirical studies, presented in research papers. These papers conform the core of this dissertation. As result of the work carried out for this dissertation, a set of proposals to improve the software development process based on the combination of Model Driven Development and Software Product Lines have been generated. Furthermore, seven research papers have been published. Five of these works have been presented at relevant conferences in the Software Engineering field: CAiSE Forum'15, CAiSE'16, ESEM'16, ISD'17 and ESEM'17. These research results have been applied in the software development process of the induction hobs from the electrical appliances division of BSH (under the brands Bosch, Siemens, Gaggenau, Neff, and Balay), and are also being used in the current implementation of the PLC that controls the trains manufactured by the Construcciones y Auxiliar de Ferrocarriles company. / La reutilització és un factor clau per a reduir els costos i millorar la qualitat de les propietats de productes programari com la seguretat, fiabilitat o rendiment. Seguint aquest factor sorgeix l'aproximació per al desenvolupament de programari utilitzant Línies de Productes Programari; aquesta aproximació promet, entre altres coses, escurçar el temps del desenvolupament dels sistemes programari i reduir significativament els costos de desenvolupament i manteniment. D'altra banda, el Desenvolupament Dirigit per Models és un enfocament per al desenvolupament de programari que proposa l'ús de models en diversos nivells d'abstracció i transformacions de model com artefactes principals. L'ús de models com els principals artefactes en el desenvolupament de programari ofereix molts avantatges als desenvolupadors, per exemple, les transformacions de model permeten la conversió d'un model font en un altre model objectiu, l'augment del nivell d'abstracció permet als desenvolupadors centrar-se en el problema a resoldre i restar importància als detalls d'implementació. Tots dos paradigmes, en la cerca d'optimitzar el temps de producció i qualitat en el programari generat, poden reunir importants avantatges en el procés de producció de programari.La combinació de Desenvolupament Dirigit per Models i Línies de Producte Programari per a produir productes programari requereix la identificació de nous reptes i necessitats dels \ingles{stakeholders} involucrats. La recerca presentada en aquesta tesi té l'objectiu, recolzada en diversos estudis empírics realitzats en entorns industrials, d'augmentar el coneixement i realitzar una sèrie de propostes de millora del procés de desenvolupament de programari fonamentat en la combinació de Desenvolupament Dirigit per Models i Línies de Producte Programari. Per a aconseguir aquest objectiu s'han estudiat quatre dimensions: processament de requisits, usabilitat, comprensió (en la configuració de productes) i gestió d'errors. Cadascuna d'aquestes dimensions ha sigut abordada en un estudi empíric, estudis presentats en treballs de recerca i que formen la part nuclear d'aquesta tesi. Com a resultat del treball realitzat en aquesta tesi s'han elaborat una sèrie de propostes per a millorar el procés de desenvolupament programari basat en la combinació de Desenvolupament Dirigit per Models i Línies de Producte Programari i s'han generat set treballs de recerca. Cinc d'aquests treballs han sigut presentats en conferències de rellevància en l'àmbit de l'Enginyeria del Programari: CAiSEForum'15, CAiSE'16, ESEM'16, ISD'17 i ESEM'17. Aquests resultats de recerca han sigut aplicats en el procés de desenvolupament de programari de plaques d'inducció de la divisió d'electrodomèstics de BSH (Bosch, Siemens, Gaggenau, Neff i Balay) i estan sent utilitzats per a la seua aplicació en l'actual implantació per al desenvolupament de programari del PLC que controla els trens en l'empresa Construcciones y Auxiliar de Ferrocarriles. / Echeverría Ochoa, J. (2018). Analysis and Improvement of a Software Production Process based on the Combination of Model Driven Development and Software Product Lines [Tesis doctoral]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/107734
64

An investigation into the application of systematic software reuse in a project-centric organisation

Chapman, Mark Jonathon 31 January 2007 (has links)
The software development continues to become more competitive and demanding, placing pressure on developers. Changes in the international political climate have resulted in shrinking military budgets, putting developers of defence software under further pressure. At present, systematic reuse is probably the most realistic way of addressing this pressure by improving software development productivity and quality. Software product line (SPL) engineering provides a comprehensive approach to systematic software reuse and is becoming widely accepted. The focus of this interpretive case study was ground station software development in a small multidisciplinary project-centric company which produces avionics systems for military aircraft. The purpose of the study was to investigate the potential implementation of systematic software reuse in the company. The study consisted of three phases, a literature study, a contextualisation and a set of field interviews, and used elements of the Carnegie-Mellon Software Engineering Institute (SEI) Product Line Practice Framework to examine the suitability of SPL engineering for the company. The findings of the study highlight the potential challenges that SPL engineering poses for the company, and emphasise how the company's project-centric structure could impede its implementation of systematic software reuse. / Computing / M.Sc. (Information Systems)
65

Composition des modèles de lignes de produits logiciels / Composition of software product line models

Ben 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.
66

A knowledge representation framework for the design and the evaluation of a product variety / Cadre de modélisation pour la représentation de la connaissance à l’aide de la conception et l’évaluation de variétés de produits

Giovannini, Antonio 16 January 2015 (has links)
La conception de variété (ou diversité) de produit est un processus essentiel pour atteindre le niveau de flexibilité requis par la personnalisation de masse. Pendant le processus de conception de la variété, les clients et les experts sont impliqués dans la définition de la meilleure solution. Par conséquent, la compréhension des liens entre les connaissances provenant de ces différents domaines, i.e. client, produit, processus est devenue nécessaire. Dans cette thèse, nous nous intéressons en particulier à la formalisation de ces connaissances. En effet, même si plusieurs efforts ont étés accomplis dans le domaine de la représentation de la connaissance, la pensée logiciste (i.e. utilisation de méthode à base de logiques formelles) reste la base de la majeure partie des travaux sur la formalisation de la connaissance. Des réflexions appropriées sur l’utilisation des logiques peuvent montrer les risques d’ambiguïté de la représentation: l’utilisation de la logique conduit souvent à une représentation sujette à plusieurs interprétations, i.e. une représentation ambiguë. Une représentation avec cette caractéristique ne répond pas à l’exigence de bien comprendre les liens entre les différentes connaissances impliquées dans la conception de la variété. Notre travail s’intéresse, donc, au développement d’un cadre de modélisation de la connaissance de conception basé sur l’anti-logicisme. Les travaux sur les systèmes développés à partir des principes de cette école de représentation de la connaissance montrent à travers des applications concrètes dans les domaines de la robotique ou des systèmes multi-agents que les comportements intelligents peuvent être obtenus sans une représentation de la connaissance basée sur les logiques. Ce cadre permet de développer une variété de produit-processus à partir d’une clientèle définie au départ. Finalement, un critère pour comparer les différentes alternatives de variété générées est aussi proposé. Une méthode pour instancier le cadre de modélisation sur un logiciel de CAO 3D a été développée. De plus, un prototype pour utiliser les modèles de connaissance avec un solveur mathématique a été conçu et développé. Les propositions ont été testées sur un cas d’étude industriel, i.e. batterie froide d’un appareil de réfrigération. Ce test a permis de discuter les avantages et les limites de nos propositions / The product variety design is an essential process in order to deal with the flexibility requested by the mass-customisation. During the product variety stage, customers and expert are involved in the definition of the best variety. Therefore a deep understanding of the links between knowledge coming from the customer domain, product domain and process domain is needed. In this thesis the research focus is on the formalisation of this knowledge. Indeed, even if many efforts are present in the knowledge representation literature, logics are always used to build these links. But appropriate reflections about the use of logics can lead to recognise the risk of ambiguity of the representations, i.e. more than one interpretation of the same represented object are possible. This ambiguity would make the represented knowledge not appropriate for the product variety design. In this work, we propose a framework for the knowledge representation based on the anti-logicism. Since the samples of anti-logicist systems (e.g. multi-agents, robots) have shown an intelligent behaviour without a representation based on logics, we use the principles the anti-logicism to propose our knowledge representation framework. A knowledge representation framework that allows to connect the customer requirements to the manufacturing process parameters is proposed. The core feature of the models based on this framework is the non-ambiguity. Indeed, each piece of knowledge that composes the model can be interpreted in one unique way. This feature allows the perfect collaboration between customer, product engineers and process engineering during the variety design stage. Once the pieces of knowledge coming from different domains are integrated in one model, the framework explains how to generate alternatives of product-process variety by starting from a given customer set. Finally a criterion to compare the different generated alternatives of product-process variety is proposed. A method to instantiate the framework on a 3D CAD has been developed. Moreover, a prototype that uses the knowledge model along with a mathematical solver to propose the best variety has been developed. The impact of the framework on the selection process and on the design process of a customisable product (i.e. water coil) is tested. The test of the instantiation and the prototype allows to show the advantages and the limit of the proposals
67

Modelling and Reasoning with Software Product Lines with Design Choices

Kaur, Navpreet 03 1900 (has links)
No description available.
68

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 produits

Eyal 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.
69

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 Approach

Al-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.
70

Automatic generation of configurable test-suites for software product lines / Geração automática de conjuntos de teste configuráveis para linhas de produto de software

Fragal, Vanderson Hafemann 28 November 2017 (has links)
Software Product Line Engineering (SPLE) is an approach used in the development of similar products, which explores the systematic reuse of software artifacts. The SPLE process has several activities executed to ensure software quality. Quality assurance is of vital importance for achieving and maintaining a high quality of all kinds of artifacts, such as products and processes. Testing activities are widely used in the industry for quality management. However, the effort for applying testing is usually high, and increasing the testing efficiency is a major concern of all systems engineering activities. A common means of increasing efficiency is automation of the test execution and the test design. Automated test design can be performed using approaches such as Model-Based Testing (MBT) in which the real behavior of a software system is compared to an abstract test model. Several techniques, processes, and strategies were developed for SPLE testing, but still many problems are open in this area of research. The challenge in focus is the reduction of the overall test effort required to test SPLE products. Test effort can be reduced by maximizing test reuse using models that take advantage of the similarity between products. The thesis goal is to automate the generation of small test-suites with high fault detection and low test redundancy between products. To achieve the goal, equivalent tests are identified for a set of products using complete and configurable test-suites. Two research directions are explored, one is product-based centered, and the other is product line-centered. For test design, test-suites that have full fault coverage were generated from state machines with and without feature constraints. A prototype implementation tool was developed for test design automation. In addition, the proposed approach was evaluated using examples, experimental studies, and an industrial case study for the automotive domain. The results indicates test effort reduction of 36% in the first research direction for a product line with 24 products, and in the second research direction increasing test effort reduction based on the number of products that require testing. For 6 products 15% reduction (from case study), and for 20 random products 50% reduction (from experimental studies). / Engenharia de Linha de Produto de Software (SPLE) é uma abordagem utilizada no desenvolvimento de produtos similares, que explora a reutilização sistemática de artefatos de software. O processo da SPLE executa várias atividades para garantir a qualidade do software. Atividades de garantia de qualidade são fundamentais para alcançar e manter altos níveis de qualidade em todos os tipos de artefatos de software, tais como produtos e processos. Atividades de teste são amplamente utilizadas na indústria para o gerenciamento de qualidade. No entanto, o esforço para a aplicação de testes geralmente é alto e melhorar a eficiência dos testes é um desafio relacionado a todas as atividades da engenharia de sistemas. Uma maneira de melhorar a eficiência da atividade de teste é automatizar a geração e execução dos testes. A geração automática de testes pode ser realizada por abordagens tais como o Teste Baseado em Modelos (TBM), em que o comportamento real do sistema de software é comparado a um modelo de teste abstrato. Várias técnicas, processos e estratégias foram desenvolvidas para o teste de SPLE, contudo, existem diversos desafios nessa área de pesquisa. O desafio em foco é a redução do esforço geral de teste necessário para testar produtos da SPLE. O esforço de teste pode ser reduzido maximizando o reuso de teste usando modelos que representam variabilidades entre os produtos. O objetivo da tese é automatizar a geração de compactos conjuntos de testes com alta capacidade de detecção de falhas e baixa redundância de teste entre produtos. Para alcançar tal objetivo, testes equivalentes são identificados para um conjunto de produtos usando conjuntos de teste completos e configuráveis. Duas direções de pesquisa são exploradas, uma centrada no produto e a outra centrada na linha de produto. Foram gerados conjuntos de teste que tenham cobertura de falhas completa a partir de máquinas de estado com e sem restrições de características. A implementação de uma ferramenta foi desenvolvida para automatizar a geração de teste. Além disso, a abordagem proposta foi avaliada usando exemplos, estudos experimentais e um estudo de caso industrial. Os resultados indicam uma redução de esforço de teste de 36% na primeira direção de pesquisa para uma linha com 24 produtos, e na segunda linha de pesquisa uma redução incremental com mais produtos a serem testados. Para 6 produtos uma redução de 15% (do estudo de caso), e para 20 produtos randomicos uma redução de 50% (dos estudos experimentais).

Page generated in 0.0468 seconds