Spelling suggestions: "subject:"[een] SOFTWARE PRODUCT LINES"" "subject:"[enn] SOFTWARE PRODUCT LINES""
81 |
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.
|
82 |
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
|
83 |
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.
|
84 |
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.
|
85 |
Exploration des variantes d'artefacts logiciels pour une analyse et une migration vers des lignes de produits / Mining software artefact variants for product line migration and analysisMartinez, Jabier 18 October 2016 (has links)
Les lignes de produits logiciels (LdPs) permettent la dérivation d'une famille de produits basés sur une gestion de la variabilité. Les LdPs utilisent des configurations de caractéristiques afin de satisfaire les besoins de chaque client et, de même, permettre une réutilisation systématique en utilisant des assets réutilisables. L’approche capitalisant sur des variantes des produits existants est appelé une approche extractive pour l'adoption de LdPs. L’identification des caractéristiques est nécessaire pour analyser la variabilité d’un ensemble de variantes. Il est également nécessaire de localiser les éléments associés à ces caractéristiques. Les contraintes entre ces caractéristiques doivent être identifiées afin de garantir la sélection de configurations valides. Par ailleurs, il faut construire les assets réutilisables et synthétiser un modèle de caractéristiques. Cette thèse présente BUT4Reuse (Bottom-Up Technologies for Reuse), un framework unifié, générique et extensible pour l’adoption extractive de LdPs. Une attention particulière est accordée à des scénarios de développement dirigée par les modèles. Nous nous concentrons aussi sur l'analyse des techniques en proposant un benchmark pour la localisation de caractéristiques et une technique d’identification de familles de variantes. Nous présentons des paradigmes de visualisation pour accompagner les experts du domaine dans le nommage de caractéristiques et aider à la découverte de contraintes. Finalement, nous étudions l'exploitation des variantes pour l'analyse de la LdP après sa création. Nous présentons une approche pour trouver des variantes pertinentes guidée par des évaluations des utilisateurs finaux. / Software Product Lines (SPLs) enable the derivation of a family of products based on variability management techniques. Inspired by the manufacturing industry, SPLs use feature configurations to satisfy different customer needs, along with reusable assets to allow systematic reuse. Capitalizing on existing variants by extracting the common and varying elements is referred to as extractive approaches for SPL adoption. Feature identification is needed to analyse the domain variability. Also, to identify the associated implementation elements of the features, their location is needed. In addition, feature constraints should be identified to guarantee that customers are not able to select invalid feature combinations. Then, the reusable assets associated to the features should be constructed. And finally, a comprehensive feature model need to be synthesized. This dissertation presents Bottom-Up Technologies for Reuse (BUT4Reuse), a unified, generic and extensible framework for mining software artefact variants. Special attention is paid to model-driven development scenarios. We also focus on benchmarks and in the analysis of variants, in particular, in benchmarking feature location techniques and in identifying families of variants in the wild for experimenting with feature identification techniques. We present visualisation paradigms to support domain experts on feature naming and to support on feature constraints discovery. Finally, we investigate and discuss the mining of artefact variants for SPL analysis once the SPL is already operational. Concretely, we present an approach to find relevant variants within the SPL configuration space guided by end user assessments.
|
86 |
Qualitätssicherung mittels Feature-Modellen / Quality Assurance by Means of Feature ModelsGollasch, David 11 May 2016 (has links) (PDF)
Modern business applications are getting increasingly distributed as multi-tenant software as a service (SaaS). This leads to new challenges in terms of quality assurance, because all customers are directly affected by software changes. The resulting problem is to proactively determinate evolutionary effects.
Because SaaS applications are often realized in the sense of a software product line, this thesis examines ways of using feature models to face the mentioned problem. For this purpose, two approaches are analyzed: extended feature models with quality attributes annotated per feature and the analysis of structural aspects of feature models and corresponding concrete configurations.
The presented attributed feature model approach measures the quality of concrete configurations to make configurations comparable according to specific quality goals. Criteria are elicited for when configurations can be compared to draw helpful conclusions. The structural approach focuses economic questions that are quality assurance related, such as identifying features that none of the tenants selected in their application configurations. Furthermore, three algorithms are presented that demonstrate the structural analysis approach to gather information relevant to quality assurance.
|
87 |
Conceptual Variability Management in Software Families with Multiple ContributorsGollasch, David 11 May 2016 (has links) (PDF)
To offer customisable software, there are two main concepts yet: software product lines that allow the product customisation based on a fixed set of variability and software ecosystems, allowing an open product customisation based on a common platform.
Offering a software family that enables external developers to supply software artefacts means to offer a common platform as part of an ecosystem and to sacrifice variability control. Keeping full variability control means to offer a customisable product as a product line, but without the support for external contributors.
This thesis proposes a third concept of variable software: partly open software families. They combine a customisable platform similar to product lines with controlled openness similar to ecosystems.
As a major contribution of this thesis a variability modelling concept is proposed which is part of a variability management for these partly open software families. This modelling concept is based on feature models and extends them to support open variability modelling by means of interfaces, structural interface specifications and the inclusion of semantic information. Additionally, the introduction of a rights management allows multiple contributors to work with the model. This is required to enable external developers to use the model for the concrete extension development.
The feasibility of the proposed model is evaluated using a prototypically developed modelling tool and by means of a case study based on a car infotainment system.
|
88 |
Uma abordagem orientada a modelos para reutilização de software / A model-driven software reuse approachLucredio, Daniel 17 July 2009 (has links)
A reutilização de software busca aumentar a qualidade e produtividade no desenvolvimento de software, evitando a duplicação do esforço e reaproveitando o máximo possível das experiências de projetos passados. Apesar de simples, esta idéia não é facilmente colocada em prática, principalmente de maneira sistemática e controlada. Técnicas de engenharia de domínio e linhas de produtos de software buscam facilitar esta tarefa, porém ainda existem outros fatores que dificultam a adoção da prática da reutilização. Entre estes, destacam-se os problemas inerentes ao desenvolvimento de software da maneira como é conduzido atualmente, baseado em código-fonte. Estes problemas têm suas origens na crescente demanda por software cada vez mais complexo e afetam negativamente a capacidade de reutilizar software. O desenvolvimento orientado a modelos surge como uma alternativa atraente neste cenário, elevando a importância de modelos dentro do ciclo de vida do software, incorporando-os como parte integrante do produto final por meio de técnicas de modelagem e geração de código. Com isto, parte da complexidade do software fica escondida dentro dos geradores, protegendo os desenvolvedores, reduzindo a incidência de erros, aumentando a produtividade, qualidade, interoperabilidade e manutenibilidade dos artefatos produzidos. Nesta dissertação defende-se a tese de que o desenvolvimento orientado a modelos pode efetivamente aumentar e/ou melhorar a reutilização de software, e que para isso ela deve ser tratada de forma consistente dentro de um processo de engenharia de domínio. Para demonstrar esta tese, é apresentada uma abordagem orientada a modelos para reutilização de software, com atividades que guiam o desenvolvedor durante a análise, projeto e implementação do domínio. São também apresentados os resultados de uma avaliação envolvendo três estudos empíricos, realizados em ambiente acadêmico e industrial, que buscou determinar a viabilidade da abordagem e os benefícios que podem ser alcançados com a combinação de técnicas do desenvolvimento orientado a modelos e da reutilização de software. Os resultados mostram que a abordagem pode trazer diferentes benefícios para organizações de software, incluindo aumento da quantidade e qualidade da reutilização, e reduzindo a complexidade de desenvolvimento e configuração de produtos / Software reuse aims at increasing quality and productivity in software development, avoiding effort duplication and reusing all past experiences possible. Although it is a simple idea, it is not easy to put reuse in practice, especially in a systematic and controlled way. Domain engineering and software product lines techniques try to make this task easier, but there are many other factors that difficult the reuse adoption. Among these factors are the problems that are inherent to software development in the way it is conducted today, based on source code. These problems arise from the growing demand for increasingly complex software, negatively affecting the ability to reuse. Model-driven development is an attractive alternative in this scenario, leveraging the importance of models in the software life cycle, incorporating them as part of the final product through modeling and code generation techniques. As a result, part of the software complexity becomes hidden inside the generators, shielding the developers, reducing errors, increasing the productivity, quality, interoperability and maintainability of the produced assets. In this dissertation is presented the thesis that model-driven development can effectively increase and/or improve software reuse, and that to achieve this goal it must be treated in a consistent way inside a domain engineering process. To demonstrate this thesis, a model-driven software reuse approach is presented, with activities that guide the developer during domain analysis, design and implementation. The results of an evaluation involving three empirical studies are also presented. The studies were performed in both academic and industrial environments, and aimed at determining the viability of the approach and the benefits that can be achieved with the combination of model-driven development and software reuse techniques. The results showed that the approach can bring different benefits to software organizations, such as software reuse quantity and quality improvements, and complexity reduction in product development and configuration tasks
|
89 |
Uma linguagem de modelagem de domínio específico para linhas de produto de software dinâmicas / A domain specific modeling language to dynamic software product linesBorelli, Helberth 06 May 2016 (has links)
Submitted by Marlene Santos (marlene.bc.ufg@gmail.com) on 2016-08-09T16:58:08Z
No. of bitstreams: 2
Dissertação - Helberth Borelli - 2016.pdf: 5479597 bytes, checksum: c182a5a918e2fda8bf310ba47bc494e4 (MD5)
license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) / Approved for entry into archive by Luciana Ferreira (lucgeral@gmail.com) on 2016-08-10T11:31:18Z (GMT) No. of bitstreams: 2
Dissertação - Helberth Borelli - 2016.pdf: 5479597 bytes, checksum: c182a5a918e2fda8bf310ba47bc494e4 (MD5)
license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5) / Made available in DSpace on 2016-08-10T11:31:18Z (GMT). No. of bitstreams: 2
Dissertação - Helberth Borelli - 2016.pdf: 5479597 bytes, checksum: c182a5a918e2fda8bf310ba47bc494e4 (MD5)
license_rdf: 0 bytes, checksum: d41d8cd98f00b204e9800998ecf8427e (MD5)
Previous issue date: 2016-05-06 / Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPES / Systems which involve adaptations due to context changes have the challenge of adapting
software systems at runtime. This thesis adopts as proposal the adaptation of resources in
the form of features, involving concepts of Feature Oriented Domain Analysis. A possible
approach to develop systems based on adaptable features at runtime is the concept of
Dynamic Software Product Line (DSPL), which can be implemented by Metamodels.
The aim of this thesis is the development of a Domain Specific Modeling Language
(DSML) for DSPL, designed from the construction of a metamodel for the development
of DSPLs, which is divided in three metamodels: of features, of variabilities and of
applications to derive products. The variabilities metamodel aims at modeling contracts
that must negotiate the product adaptation to the features that may be present or not
in the execution environment. Adaptations are based in state machines, which address
changes of feature state or changes by transitions of equivalent features, in order to
keep the execution of the software product. The developed DSML still plays the role
of extending the constraints imposed by the metamodels, as well as to generate codes in
general-purpose language based on modeling features, variabilities and applications. In
order to validate the proposal, the DSML was used to model two DSPLs, including the
derivation of products and the execution in a platform based in OSGi specification. / Sistemas que envolvem adaptação em decorrência de mudanças de contexto possuem
como desafio a adaptação do sistema de software em tempo de execução. Esta dissertação
adota como proposta a adaptação de recursos na forma de características, envolvendo o
conceito de Análise de Domínio Orientada a Características. Uma abordagem para o desenvolvimento
de sistemas baseados em características adaptáveis em tempo de execução
é o conceito de Linha de Produto de Software Dinâmica (LPSD), o qual pode ser implementado
por meio do desenvolvimento de Metamodelos. O objetivo desta dissertação é
o desenvolvimento de uma Linguagem de Modelagem de Domínio Específico (do inglês,
Domain Specific Modeling Language - DSML) para LPSD, concebida a partir da construção
de um metamodelo para o desenvolvimento de LPSDs, o qual está dividido em três
metamodelos: de características, de variabilidades e de aplicação para derivação de produtos.
Em destaque, o metamodelo de variabilidade tem como objetivo a modelagem de
contratos que devem negociar a adaptação dos produtos às características que poderão estar
ou não presentes no ambiente de execução. As adaptações são baseadas em máquinas
de estado, as quais abordam a mudança de estado de uma característica ou a mudança por
transição de características equivalentes, com o intuito de manter a execução do produto
de software. A DSML desenvolvida tem ainda o papel de estender as restrições impostas
pelos metamodelos, assim como gerar códigos em linguagem de propósito geral com
base na modelagem de características, variabilidades e aplicações. No sentido de validar
a proposta, a DSML foi usada para a modelagem de duas LPSDs, incluindo a derivação
de produtos e a execução em uma plataforma baseada na especificação OSGi.
|
90 |
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.0323 seconds