Spelling suggestions: "subject:"bproduct lines"" "subject:"2product lines""
121 |
FlexMonitorWS : uma solução de monitoração de serviços Web com foco em atributos de QoS / FlexMonitorWS : a solution for monitoring Web services with a focus on QoS attributesFranco, Rômulo José, 1980- 08 January 2014 (has links)
Orientador: Cecília Mary Fischer Rubira / Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-25T19:51:06Z (GMT). No. of bitstreams: 1
Franco_RomuloJose_M.pdf: 10351473 bytes, checksum: 560e490e6acebcaf56e0a906dd45d0ec (MD5)
Previous issue date: 2014 / Resumo: Serviços Web são usados como uma das formas de se obter uma Arquitetura Orientada a Serviços (SOA). Com aspectos interoperáveis, dinâmicos e distribuídos, tais serviços agregam valores de negócio, são unidades de software com alta coesão e são utilizados para integração entre aplicações empresariais. Em um contexto de SOA, provedores de serviços devem oferecer garantias de funcionamento de seus serviços. Esta garantia é realizada através de atributos de Quality of Service (QoS) inseridos em contratos do tipo SLA (Service Level Agreement). Atributos de QoS podem ter flutuações ou mudança de estado ao longo do tempo, dado que um serviço opera em um ambiente de alta dinamicidade e alta imprevisibilidade que são propriedades inerentes ao contexto SOA. Diante deste cenário, há uma clara necessidade de se conhecer as variações que ocorrem nos atributos de QoS. Para isso, é fundamental aplicar uma monitoração que possibilite conhecer os valores de atributos de QoS para compreender o contexto geral do ambiente que opera o serviço. Uma boa solução de monitoração deve oferecer meios flexíveis de monitorar diferentes atributos de QoS (e.g. disponibilidade, desempenho e confiabilidade), de diferentes modos de operar, considerando diferentes alvos ligados ao serviço (e.g. servidor, rede e aplicação servidora). Por meio de uma Revisão Sistemática da Literatura identificamos que as soluções encontradas não apoiam a flexibilidade na monitoração. Face a este contexto, esta dissertação propôs a FlexMonitorWS uma solução de monitoração de serviços Web e de recursos de infraestrutura de TI ligada ao serviço Web. A FlexMonitorWS adota técnicas de Linhas de Produtos de Software para criar uma família de monitores a partir da variabilidade de software existente em sistemas de monitoração de serviços Web. Três estudos de caso foram executados para avaliar a viabilidade da ferramenta, obtendo-se resultados satisfatórios na entrega de valores de atributos de QoS e na compreensão do ambiente que opera o serviço Web. Ao final, apresentamos conclusões, contribuições e direções para trabalhos futuros / Abstract: Web services are used as a way of obtaining a Service Oriented Architecture (SOA). With interoperable, dynamic and distributed aspects such services add business values are software units with high cohesion and are used to integrate business applications. In a SOA context, service providers must offer guarantees of the servces operations. This warranty is carried out by attributes Quality of Service (QoS) type contracts entered into SLA (Service Level Agreement). QoS attributes can have fluctuations or changes of state over time, given that a service operates in an environment of high dynamics and high unpredictability inherent in the SOA context properties. Given this scenario, there is a clear need to understand the fluctuations in the QoS attributes. Therefore, it is essential to apply a monitoring which allows to know the QoS attributes values to understand the overall context of the environment that operates the service. A good monitoring solution must offer flexible ways to monitor different QoS attributes (e.g. performance, availability and reliability) in different ways to operate, considering different targets linked to the service (e.g. server, network and server application). By analyzing existing solutions through a Systematic Literature Review identified that solutions do not support the flexibility in monitoring. Against this background, this thesis proposed a solution FlexMonitorWS monitoring of Web services and IT infrastructure resources connected to the Web services. FlexMonitorWS adopts techniques from Software Product Lines to create a monitors family from the existing variability in the Web services monitoring systems. Three case studies were performed to assess the tool feasibility, obtaining satisfactory results in delivering QoS attributes values and understanding to environment that operates the Web service. In the end, conclusions, contributions and directions for future work are presented / Mestrado / Ciência da Computação / Mestre em Ciência da Computação
|
122 |
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.
|
123 |
[en] SUPPORTING HETEROGENEOUS CONFIGURATION KNOWLEDGE OF SOFTWARE PRODUCT LINES / [pt] SUPORTANDO CONHECIMENTO DE CONFIGURAÇÃO HETEROGÊNEO DE LINHAS DE PRODUTOS DE SOFTWAREELDER JOSE REIOLI CIRILO 24 January 2017 (has links)
[pt] Softwares personalizados para as necessidades de um cliente proveem vantagem competitiva quando comparados aos softwares de proposito geral. Linhas de produtos de softwares tem como objetivo a produção de produtos personalizados a partir de um conjunto de features reutilizáveis. É conhecido que o reuso sistemático de features potencialmente leva a ganhos significativos como rápida produção de software a um baixo custo e com maior qualidade. Na prática, a construção de linhas de produtos de softwares empresariais pode se tornar uma tarefa arriscada e sujeita a erros quando se leva em consideração o uso das técnicas atuais de implementação de features. O desenvolvimento de linhas de produtos de software empresariais de fato requer a convergência coordenada de várias visões (ex., especialistas de domínio, projetistas de interface, e desenvolvedores). Neste caso, cada participante do processo de desenvolvimento tem uma linguagem particular para resolver o problema específico a sua especialidade. Os desafios para integração de diferentes linguagens, evitando uma potencial cacofonia, é o problema do conhecimento de configuração heterogêneo. Nesta tese, nos examinamos as dificuldades atuais na especificação do conhecimento de configuração heterogêneo e como solução nos propomos a noção de Linguagens de Modelagem do Conhecimento do Domínio (LMCD). O propósito das LMCDs é evidenciar os conceitos do domínio e suas interfaces de programação, o que ajuda reduzir o ofuscamento do código fonte e aumentar a compreensão. Além disso, evidenciando os conceitos específicos de domínio, somos aptos a prevenir inconsistências em produtos pela detecção de erros em toda a linha de produto de software. Outro resultado deste trabalho de pesquisa é GenArchPlus, uma ferramenta extensível que suporta de forma flexível a incorporação de LMCDs na engenharia de linhas de produtos de softwares tradicional. Nos enfatizamos os benefícios da ferramenta, incluindo simplicidade, expressividade, e a capacidade de ser independente de qualquer tecnologia de implementação do domínio. Finalmente, nos ilustramos e avaliamos o uso de LMCDs em três diferentes linhas de produtos de software. / [en] Customer-specific software can provide a competitive advantage compared to general-purpose software. A software product line (SPL) aims at tailoring customer-specific products from a set of reusable features. It is well known that systematic reuse of features potentially leads to significant gains such as faster production with low costs and high quality. In practice, building enterprise software product lines might become a laborious and error-prone task when we take into account the use of current implementation techniques. Successful development of modern enterprise software product lines requires the convergence of multiple views (e.g., domain experts, interface designers, and developers), which are usually managed via domain-specific concepts. In this case, each participant of the development process has a particular working language to solve specific problems to its expertise. The challenge of integrating these differences into the engineering process, avoiding the potential cacophony of multiple different languages, is the heterogeneous configuration knowledge problem. In this thesis, we examine the current shortcomings on the specification of heterogeneous configuration knowledge and as a solution we propose the notion of Domain Knowledge Modeling Languages (DKMLs). The purpose of DKMLs is to put in evidence the domain concepts and their programming interfaces, which help to reduce source code obfuscation and increase feature comprehension. Moreover, evidencing the domain-specific concepts, we are also able to prevent inconsistencies on products by detecting errors in the entire software product line. Another result of this research is the GenArchPlus, an extensible tool that supports the flexible incorporation of DKMLs in traditional software product line engineering. We emphasize the benefits of GenArchPlus, including simplicity, expressiveness, and being framework independent. Finally, we illustrate and evaluate the use of DKMLs in three different product lines.
|
124 |
Uma infraestrutura autoadaptativa baseada em linhas de produtos de software para composições de serviços tolerantes a falhas / A self-adaptive infrastructure based on software product line for fault-tolerant composite servicesNascimento e Silva, Amanda Sávio, 1982- 24 August 2018 (has links)
Orientador: Cecília Mary Fischer Rubira / Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação / Made available in DSpace on 2018-08-24T09:31:42Z (GMT). No. of bitstreams: 1
NascimentoeSilva_AmandaSavio_D.pdf: 8931458 bytes, checksum: 448739042e9597c70abf120976d316b8 (MD5)
Previous issue date: 2013 / Resumo: A confiabilidade é um requisito de qualidade indispensável a muitos sistemas orientados a serviços, cada vez mais disseminados em várias atividades humanas. Composições confiáveis de serviços são formadas por um conjunto de serviços com diversidade de projetos, isto é, um conjunto de serviços funcionalmente equivalentes, ou serviços alternativos, usados para implementar técnicas de tolerância a falhas. Uma determinada técnica, como por exemplo, Recovery Blocks ou N-version Programming, pode ser mais adequada para um contexto específico de execução do que outra, dependendo dos requisitos exigidos pela aplicação, como por exemplo, desempenho. Sistemas orientados a serviços são usualmente implantados num ambiente altamente dinâmico, em que são comuns alterações nos requisitos dos clientes e flutuações na qualidade de serviços. Portanto, uma composição de serviços confiável deveria poder modificar seu próprio comportamento dinamicamente em resposta a essas mudanças. Entretanto, as soluções existentes, que usam diversidade de projetos para implementar composições confiáveis, apresentam algumas limitações: (i) não apóiam a seleção de serviços alternativos adequados que garantam que a composição realmente tolere falhas de software; (ii) em geral implementam uma única técnica de tolerância a falhas, não apoiando os requisitos diversos de clientes; e (iii) não apoiam um mecanismo autoadaptativo capaz de mudar a estratégia de tolerância a falhas em tempo de execução. Nessa tese, é apresentada uma solução baseada em linhas de produtos de software, que explora a variabilidade de software existente nas técnicas de tolerância a falhas e nas mudanças ocorridas no ambiente de execução, para a implementação de composições de serviços tolerantes a falhas e autoadaptativas. A solução encompassa: (a) um conjunto de diretrizes para investigar até que ponto serviços alternativos são realmente diversos entre si para tolerar falhas de software; (b) uma família de técnicas de tolerância a falhas para construir composições confíaveis que permite a escolha de uma técnica mais adequada para o contexto; e (c) uma infraestrutura autoadaptiva que apoia a instanciação de técnicas diferentes de tolerância a falhas como resposta a mudanças ocorridas no contexto, baseando-se no gerenciamento dinâmico de variabilidades de software. Resultados de estudos empíricos sugerem que a solução é eficiente para apoiar composições de serviços tolerantes a falhas e autoadaptativas. Direções para trabalhos futuros são apresentadas / Abstract: Nowadays, society is dependent on systems based on Service-Oriented Architecture (SOA) for its basic day-to-day functioning. As a consequence, these systems should be reliable. Fault-tolerant service compositions encompass a set of services, each with equivalent functionality yet different designs, called alternate services, that are used to implement fault tolerance techniques. A particular technique, for example, Recovery Blocks or N-version Programming, might be more suitable in a context than in another one, depending on non-functional requirements of an application, for example, performance or reliability. SOA-based applications often rely in an environment that is highly dynamic and several decisions should be postponed until runtime, where we have different stakeholders with conflicting requirements, and fluctuations in the quality of services (QoS) are recurrent. Therefore, a fault-tolerant service composition should adapt itself to meet the dynamically and widely changing context. Nevertheless, the existing diversity-based solutions for fault-tolerant service compositions present some drawbacks: (i) they do not support the selection of alternate services that in fact efficient to support a reliable service composition; (ii) they usually support only one fault tolerance technique, thus not being able to face various clients' requirements; (iii) they do not support an adaptive fault tolerance mechanism able to instantiate different fault tolerance strategies at runtime to cope with dynamic changes in the context. In this thesis, we present a solution based on software product line, which explores the variability among various software fault tolerance techniques and changes in the execution environment, to implement fault-tolerant and self-adaptive service compositions. The proposed solution encompasses: (a) a set of directives to investigate to what extent alternate services are able to tolerate software faults; (b) a family of software fault tolerance techniques to support reliable service compositions, such as the most suitable technique can be chosen according to the context; (c) a self-adaptive infrastructure to instantiate at runtime appropriate fault tolerance techniques in response to changes in the context, through dynamic management of software variability. Results from empirical studies suggest that the proposed solution is efficient to support fault-tolerant and self-adaptive service compositions. Directions for future work are also presented / Doutorado / Ciência da Computação / Doutora em Ciência da Computação
|
125 |
Um gerador de aplicações configurável / A configurable application generatorEdison Kicho Shimabukuro Junior 03 July 2006 (has links)
Os geradores de aplicação são ferramentas que recebem uma especificação de software, validam essa especificação e geram artefatos automaticamente. Os geradores de aplicação podem trazer benefícios em termos de produtividade por gerarem automaticamente artefatos de baixo nível com base em especificações de nível mais alto. Um dos problemas dos geradores de aplicação é o seu alto custo de desenvolvimento. Os geradores de aplicação configuráveis são adaptados para fornecer apoio em domínios específicos, ou seja, são considerados meta-geradores utilizados para obter geradores de aplicação específicos. Este trabalho delineia um processo de desenvolvimento com geradores confi- guráveis, define a arquitetura e as características de um gerador configurável e apresenta a ferramenta Captor, que é um gerador de aplicação configurável desenvolvido para facilitar a construção de geradores específicos. Três estudos de caso nos quais a Captor é configurada para domínios de aplicação específi- cos são apresentados: persistência de dados, gestão de recursos de negócios e bóias náuticas / Application generators are tools that receive as input a software specification, validate it and automatically generate artifacts based on it. Application generators can bring several benefits in terms of productivity, as they automatically generate low-level artifacts based on higher abstraction level specifications. A major concern of application generators is their high development cost. Con- figurable application generators are those generators that can be adapted to give support in specific domains, i.e., they are considered as meta-generators through which it is possible to obtain specific application generators. This work presents an approach for software development supported by configurable application generators. It defines the architecture and main features of a configurable application generator and presents Captor, which is a configurable application generator developed to ease the creation of specific generators. Three case studies were conducted to show the configuration of the Captor tool to different application domains: objects persistence, business resource management and floating weather stations.
|
126 |
Automatische Generierung von feature-orientierten Produktlinien aus Varianten von funktionsblockorientierten ModellenRyssel, Uwe 24 April 2014 (has links)
Zur einfacheren Entwicklung von technischen Systemen werden heutzutage vielfach funktionsblockorientierte Modellierungssprachen wie MATLAB/Simulink verwendet, die ein System als Netzwerk von miteinander verbundenen Funktionsblöcken darstellen. Aufgrund wechselnder Anforderungen entstehen dabei viele Modellvarianten, die nicht mehr effizient verwaltet werden können. Eine Lösung hierfür ist der Einsatz von Produktlinien, bei dem alle Varianten zusammengefasst und in wiederverwendbare Bestandteile zerlegt werden. Die Einzelvarianten werden dabei nur noch bei Bedarf aus diesen Bestandteilen zusammengesetzt. Die Erstellung dieser Produktlinien ist jedoch mit hohem manuellen Aufwand verbunden, besonders wenn vorhandene Modelle wiederverwendet werden sollen. Dies verhindert oft die Einführung dieses Paradigmas.
Das Ziel der Dissertation war es deshalb, diese Migration vorhandener Modellvarianten und damit die Erstellung der Produktlinien zu automatisieren. Hierzu wurde eine Migrationsschrittfolge vorgeschlagen: Mithilfe eines Model-Matching-Ansatzes werden zuerst Gemeinsamkeiten und Unterschiede zwischen den Modellen identifiziert und daraus ein zusammengefasstes Modell und sogenannte Features abgeleitet. Mithilfe der Formalen Begriffsanalyse werden daraufhin die Abhängigkeiten zwischen diesen Features extrahiert und daraus ein Feature-Modell erstellt. Feature-Modell und zusammengefasstes Modell bilden dabei eine Produktlinie, die exakt die vorgegebenen Modellvarianten beschreibt.
|
127 |
Formal Analysis of Variability-Intensive and Context-Sensitive SystemsChrszon, Philipp 29 January 2021 (has links)
With the widespread use of information systems in modern society comes a growing demand for customizable and adaptable software. As a result, systems are increasingly developed as families of products adapted to specific contexts and requirements. Features are an established concept to capture the commonalities and variability between system variants. Most prominently, the concept is applied in the design, modeling, analysis, and implementation of software product lines where products are built upon a common base and are distinguished by their features. While adaptations encapsulated within features are mainly static and remain part of the system after deployment,
dynamic adaptations become increasingly important. Especially interconnected mobile devices and embedded systems are required to be context-sensitive and (self-)adaptive. A promising concept for the design and implementation of such systems are roles as they capture context-dependent and collaboration-specific behavior.
A major challenge in the development of feature-oriented and role-based systems are interactions, i.e., emergent behavior that arises from the combination of multiple features or roles. As the number of possible combinations is usually exponential in the number of features and roles, the detection of such interactions is difficult. Since unintended interactions may compromise the functional correctness of a system and may lead to reduced efficiency or reliability, it is desirable to detect them as early as possible in the
development process.
The goal of this thesis is to adopt the concepts of features and roles in the formal modeling and analysis of systems and system families. In particular, the focus is on the quantitative analysis of operational models by means of probabilistic model checking for supporting the development process and for ensuring correctness.
The tool ProFeat, which enables a quantitative analysis of stochastic system families defined in terms of features, has been extended with additional language constructs, support for a one-by-one analysis of system variants, and a symbolic representation of analysis results. The implementation is evaluated by means of several case studies which compare different analysis approaches and show how ProFeat facilitates a family-based quantitative analysis of systems.
For the compositional modeling of role-based systems, role-based automata (RBA) are introduced. The thesis presents a modeling language that is based on the input language of the probabilistic model checker PRISM to compactly describe RBA. Accompanying tool support translates RBA models into the PRISM language to enable the formal analysis of functional and non-functional properties, including system dynamics, contextual changes, and interactions. Furthermore, an approach for a declarative and compositional definition of role coordinators based on the exogenous coordination language Reo is proposed. The adequacy of the RBA approach for detecting interactions within context-sensitive and adaptive systems is shown by several case studies.:1 Introduction
1.1 Engineering approaches for variant-rich adaptive systems
1.2 Validation and verification methods
1.3 Analysis of feature-oriented and role-based systems
1.4 Contribution
1.5 Outline
2 Preliminaries
I Feature-oriented systems
3 Feature-oriented engineering for family-based analysis
3.1 Feature-oriented development
3.2 Describing system families: The ProFeat language
3.2.1 Feature-oriented language constructs
3.2.2 Parametrization
3.2.3 Metaprogramming language extensions
3.2.4 Property specifications
3.2.5 Semantics
3.3 Implementation
3.3.1 Translation of ProFeat models
3.3.2 Post-processing of analysis results
4 Case studies and application areas
4.1 Comparing family-based and product-based analysis
4.1.1 Analysis of feature-oriented systems
4.1.2 Analysis of parametrized systems
4.2 Software product lines
4.2.1 Body sensor network
4.2.2 Elevator product line
4.3 Self-adaptive systems
4.3.1 Adaptive network system model
4.3.2 Adaptation protocol for distributed systems
II Role-based Systems
5 Formal modeling and analysis of role-based systems
5.1 The role concept
5.1.1 Towards a common notion of roles
5.1.2 The Compartment Role Object Model
5.1.3 Roles in programming languages
5.2 Compositional modeling of role-based behavior
5.2.1 Role-based automata and their composition
5.2.2 Algebraic properties of compositions
5.2.3 Coordination and semantics of RBA
6 Implementation of a role-oriented modeling language
6.1 Role-oriented modeling language
6.1.1 Declaration of the system structure
6.1.2 Definition of operational behavior
6.2 Translation of role-based models
6.2.1 Transformation to multi-action MDPs
6.2.2 Multi-action extension of PRISM
6.2.3 Translation of components
6.2.4 Translation of role-playing coordinators
6.2.5 Encoding role-playing into states
7 Exogenous coordination of roles
7.1 The exogenous coordination language Reo
7.2 Constraint automata
7.3 Embedding of role-based automata in constraint automata
7.4 Implementation
7.4.1 Exogenous coordination of PRISM modules
7.4.2 Reo for exogenous coordination within PRISM
8 Evaluation of the role-oriented approach
8.1 Experimental studies
8.1.1 Peer-to-peer file transfer
8.1.2 Self-adaptive production cell
8.1.3 File transfer with exogenous coordination
8.2 Classification
8.3 Related work
8.3.1 Role-based approaches
8.3.2 Aspect-oriented approaches
8.3.3 Feature-oriented approaches
9 Conclusion
|
128 |
Choosy and Picky: Configuration of Language Product LinesKühn, Thomas, Cazzola, Walter, Olivares, Diego Mathias 08 June 2021 (has links)
Although most programming languages naturally share several language features, they are typically implemented as a monolithic product. Language features cannot be plugged and unplugged from a language and reused in another language. Some modular approaches to language construction do exist but composing language features requires a deep understanding of its implementation hampering their use. The choose and pick approach from software product lines provides an easy way to compose a language out of a set of language features. However, current approaches to language product lines are not sufficient enough to cope with the complexity and evolution of real world programming languages. In this work, we propose a general light-weight bottom-up approach to automatically extract a feature model from a set of tagged language components. We applied this approach to the Neverlang language development framework and developed the AiDE tool to guide language developers towards a valid language composition. The approach has been evaluated on a decomposed version of Javascript to highlight the benefits of such a language product line.
|
129 |
Einfluss von Eingabedaten auf nicht-funktionale Eigenschaften in Software-ProduktlinienLillack, Max 05 December 2012 (has links)
Nicht-funktionale Eigenschaften geben Aussagen über Qualitätsaspekte einer Software. Mit einer Software-Produktlinie (SPL) wird eine Menge von verwandten Software-Produkten beschrieben, die auf Basis gemeinsam genutzter Bausteine und Architekturen entwickelt werden, um die Anforderungen unterschiedlicher Kundengruppen zu erfüllen. Hierbei werden gezielt Software-Bestandteile wiederverwendet, um Software effizienter zu entwickeln. In dieser Arbeit wird der Einfluss von Eingabedaten auf die nicht-funktionalen Eigenschaften von SPL untersucht. Es wird auf Basis von Messungen ausgewählter nicht-funktionaler Eigenschaften einzelner Software-Produkte ein Vorhersagemodell für beliebige Software-Produkte der SPL erstellt. Das Vorhersagemodell kann genutzt werden, um den Konfigurationsprozess zu unterstützen. Das Verfahren wird anhand einer SPL von verlustfreien Kompressionsalgorithmen evaluiert. Die Berücksichtigung von Eingabedaten kann die Vorhersage von nicht-funktionalen Eigenschaften einer SPL gegenüber einfacheren Vorhersagemodellen ohne die Berücksichtigung von Eingabedaten signifikant verbessern.
|
130 |
Variability Modeling in the Real: An Empirical Journey from Software Product Lines to Software EcosystemsBerger, Thorsten 16 April 2013 (has links)
Variability modeling is one of the key disciplines to cope with complex variability in large software product lines. It aims at creating, evolving, and configuring variability models, which describe the common and variable characteristics, also known as features, of products in a product line. Since the introduction of feature models more than twenty years ago, many variability modeling languages and notations have been proposed both in academia and industry, followed by hundreds of publications on variability modeling techniques that have built upon these theoretical foundations.
Surprisingly, there are relatively few empirical studies that aim at understanding the use of such languages. What variability modeling concepts are actually used in practice? Do variability models applied in real-world look similar to those published in literature? In what technical and organizational contexts are variability models applicable?
We present an empirical study that addresses this research gap. Our goals are i) to verify existing theoretical research, and ii) to explore real-world variability modeling languages and models expressed in them. We study concepts and semantics of variability modeling languages conceived by practitioners, and the usage of these concepts in real, large-scale models. Our aim is to support variability modeling research by providing empirical data about the use of its core modeling concepts, by identifying and characterizing further concepts that have not been as widely addressed, and by providing realistic assumptions about scale, structure, content, and complexity of real-world variability models. We believe that our findings are of relevance to variability modeling researchers and tool designers, for example, those working on interactive product configurators or feature dependency checkers. Our extracted models provide realistic benchmarks that can be used to evaluate new techniques.
Recognizing the recent trend in software engineering to open up software platforms to facilitate inter-organizational reuse of software, we extend our empirical discourse to the emerging field of software ecosystems. As natural successors of successful product lines, ecosystems manage huge variability among and within their software assets, thus, represent a highly interesting class of systems to study variability modeling concepts and mechanisms. Our studied systems comprise eleven highly configurable software systems, two ecosystems with closed platforms, and three ecosystems relying on open platforms. Some of our subjects are among the largest successful systems in existence today. Results from a survey on industrial variability modeling complement these subjects.
Our overall results provide empirical evidence that the well-researched concepts of feature modeling are used in practice, but also that more advanced concepts are needed. We observe that assumptions about variability models in the literature do not hold. Our study also reveals that variability models work best in centralized variability management scenarios, and that they are fragile and have to be controlled by a small team. We also identify a particular type of dependencies that is increasingly used in open platforms and helps sustain the growth of ecosystems. Interestingly, while enabling distributed variability, these dependencies rely on a centralized and stable vocabulary. Finally, we formulate new hypotheses and research questions that provide direction for future research.
|
Page generated in 0.1426 seconds