651 research outputs found
Constraints: the Heart of Domain and Application Engineering in the Product Lines Engineering Strategy
International audienceDrawing from an analogy between features based Product Line (PL) models and Constraint Programming (CP), this paper explores the use of CP in the Domain Engineering and Application Engineering activities that are put in motion in a Product Line Engineering strategy. The start idea is simple: both CP and PL engineering deal with variables, and constraints that these variables must satisfy. Therefore, specifying a PL as a constraint program instead of a feature model, or another kind of PL formalism, carries out two important qualities of CP: expressiveness and direct automation. On the one hand, variables in CP can take values over boolean, integer, real or even complex domains (i.e., lists, arrays and trees) and not only boolean values as in most PL languages such as the Feature-Oriented Domain Analysis (FODA). Specifying boolean, arithmetic, symbolic and reified constraint, provides a power of expression that spans beyond that provided by the boolean dependencies in FODA models. On the other hand, PL models expressed as constraint programs can directly be executed and analyzed by off-the-shelf solvers. Starting with a working example, this paper explores the issues of (a) how to specify a PL model using CP, including in the presence of multi-model representation, (b) how to verify PL specifications, (c) how to specify configuration requirements and (d) how to support the product configuration activity. Tests performed on a benchmark of 50 PL models show that the approach is efficient and scales up easily to very large and complex PL specification
Combining configuration and recommendation to define an interactive product line configuration approach
This paper is interested in e-commerce for complex configurable
products/systems. In e-commerce, satisfying the customer needs is a vital
concern. One particular way to achieve this is to offer customers a panel of
options among which they can select their preferred ones. While solution
exists, they are not adapted for highly complex configurable systems such as
product lines. This paper proposes an approach that combines two complementary
forms of guidance: configuration and recommendation, to help customers define
their own products out of a product line specification. The proposed approach,
called interactive configuration supports the combination by organizing the
configuration process in a series of partial configurations where decisions are
made by the recommendation.Comment: arXiv admin note: text overlap with arXiv:1108.5586 by other author
Handling Constraints in Cardinality-Based Feature Models: The Cloud Environment Case Study
Feature modeling is a well-known approach to describe variability in Software Product Lines. Cardinality-based Feature Models (FMs) is a type of FMs where features can be instantiated several times in the configuration, contrarily to boolean FMs where a feature is present or not. While boolean FMs configuration is easily handled by current approaches, there is still a lack of support regarding cardinality-based FMs. In particular, expressing constraints over the set of feature instances is not supported in current approaches, where cardinality involved in such constraints can not be specified. To face this limitation, we define in this paper cardinality-based expressions and provide the related formal syntax and semantics as well as the way to automate the underlying configuration. We study the need for such a support using cloud computing environment configurations as a motivating example. To evaluate the soundness of the proposed approach, we analyze a corpus of 10 cloud environments. Our empirical evaluation shows that constraints relying on our cardinality-based expressions are common and that our approach is effective and can provide an useful support to developers for modeling and reasoning about FMs with cardinalities.La modélisation à l'aide de caractéristiques est une approche très utilisée dans les lignes de produits logiciels. Les Modèles de Caractéristiques (MCs) étendus avec des cardinalités sont un des MCs dans lesquels une caractéristique peut être instanciée plusieurs fois lors de la configuration, contrairement au MCs booléens dans lesquels une caractéristique est présente ou non. Alors que la configuration de MCs booléens est aujourd'hui maitrisée par différentes approches, il reste cependant un manque en terme de support pour les MCs étendus avec des cardinalités. Notamment, pouvoir exprimé des contraintes sur le nombre d'instances requises n'est pas permis dans les approches existantes, puisque les contraintes ne peuvent être exprimées que sur des caractéristiques booléennes. Pour contrer cette limite, nous fournissons dans cet article une nouvelle notation pour exprimer ces contraintes, une définition formelle de leur syntaxe et de leur sémantique ainsi qu'un moyen d'automatiser la vérification des configurations associées. Pour illustrer notre approche, nous étudions le besoin pour un tel support dans le cadre de la configuration d'environnements d'informatique dans les nuages. Nous évaluons notre approche sur un ensemble de 10 environnements. Notre étude empirique montre que les besoins pour exprimer ce type de contraintes sont communs dans ces environnements et que notre approche est efficace pour les gérer
Defects in Product Line Models and How to Identify Them
This chapter is about generic (language-independent) verification criteria of product line models, its identification, formalisation, categorization, implementation with constraint programming techniques and its evaluation on several industrial and academic product line models represented with several languages
Combining configuration and recommendation to enable an interactive guidance of product line configuration
This paper is interested in e-commerce for complex configurable products/systems. E-commerce makes a wide use of recommendation techniques to help customers identify relevant products or services in large collections of offers. One particular way to achieve this is to offer customers a panel of options among which they can select their preferred ones. A trend in the industry is to go a step further, beyond the selection of pre-defined products from a catalogue by handling products customization. The systems engineering community has shown that, based on product line engineering methods, techniques and tools, it is possible to produce customized products efficiently and at low cost. The problem is that there are usually so many products in a PL that it is impossible to specify all of them explicitly, and therefore traditional recommendation techniques cannot be simply applied. This paper proposes an approach that combines two complementary forms of guidance: configuration and recommendation, to help customers define their own products out of a product line specification. The proposed approach, called interactive configuration supports the combination by organizing the configuration process in a series of partial configurations where decisions are made by the recommendation. This paper illustrates this process by applying it to an example with the content based method for recommendation and the a priori configuration approach
Proceedings of Monterey Workshop 2001 Engineering Automation for Sofware Intensive System Integration
The 2001 Monterey Workshop on Engineering Automation for Software Intensive System Integration was sponsored by the Office of Naval Research, Air Force Office of Scientific Research, Army Research Office and the Defense Advance Research Projects Agency. It is our pleasure to thank the workshop advisory and sponsors for their vision of a principled engineering solution for software and for their many-year tireless effort in supporting a series of workshops to bring everyone together.This workshop is the 8 in a series of International workshops. The workshop was held in Monterey Beach Hotel, Monterey, California during June 18-22, 2001. The general theme of the workshop has been to present and discuss research works that aims at increasing the practical impact of formal methods for software and systems engineering. The particular focus of this workshop was "Engineering Automation for Software Intensive System Integration". Previous workshops have been focused on issues including, "Real-time & Concurrent Systems", "Software Merging and Slicing", "Software Evolution", "Software Architecture", "Requirements Targeting Software" and "Modeling Software System Structures in a fastly moving scenario".Office of Naval ResearchAir Force Office of Scientific Research Army Research OfficeDefense Advanced Research Projects AgencyApproved for public release, distribution unlimite
Software Product Line
The Software Product Line (SPL) is an emerging methodology for developing software products. Currently, there are two hot issues in the SPL: modelling and the analysis of the SPL. Variability modelling techniques have been developed to assist engineers in dealing with the complications of variability management. The principal goal of modelling variability techniques is to configure a successful software product by managing variability in domain-engineering. In other words, a good method for modelling variability is a prerequisite for a successful SPL. On the other hand, analysis of the SPL aids the extraction of useful information from the SPL and provides a control and planning strategy mechanism for engineers or experts. In addition, the analysis of the SPL provides a clear view for users. Moreover, it ensures the accuracy of the SPL. This book presents new techniques for modelling and new methods for SPL analysis
Fundamental Approaches to Software Engineering
This open access book constitutes the proceedings of the 25th International Conference on Fundamental Approaches to Software Engineering, FASE 2022, which was held during April 4-5, 2022, in Munich, Germany, as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022. The 17 regular papers presented in this volume were carefully reviewed and selected from 64 submissions. The proceedings also contain 3 contributions from the Test-Comp Competition. The papers deal with the foundations on which software engineering is built, including topics like software engineering as an engineering discipline, requirements engineering, software architectures, software quality, model-driven development, software processes, software evolution, AI-based software engineering, and the specification, design, and implementation of particular classes of systems, such as (self-)adaptive, collaborative, AI, embedded, distributed, mobile, pervasive, cyber-physical, or service-oriented applications
SQLCheck: Automated Detection and Diagnosis of SQL Anti-Patterns
The emergence of database-as-a-service platforms has made deploying database
applications easier than before. Now, developers can quickly create scalable
applications. However, designing performant, maintainable, and accurate
applications is challenging. Developers may unknowingly introduce anti-patterns
in the application's SQL statements. These anti-patterns are design decisions
that are intended to solve a problem, but often lead to other problems by
violating fundamental design principles.
In this paper, we present SQLCheck, a holistic toolchain for automatically
finding and fixing anti-patterns in database applications. We introduce
techniques for automatically (1) detecting anti-patterns with high precision
and recall, (2) ranking the anti-patterns based on their impact on performance,
maintainability, and accuracy of applications, and (3) suggesting alternative
queries and changes to the database design to fix these anti-patterns. We
demonstrate the prevalence of these anti-patterns in a large collection of
queries and databases collected from open-source repositories. We introduce an
anti-pattern detection algorithm that augments query analysis with data
analysis. We present a ranking model for characterizing the impact of
frequently occurring anti-patterns. We discuss how SQLCheck suggests fixes for
high-impact anti-patterns using rule-based query refactoring techniques. Our
experiments demonstrate that SQLCheck enables developers to create more
performant, maintainable, and accurate applications.Comment: 18 pages (14 page paper, 1 page references, 2 page Appendix), 12
figures, Conference: SIGMOD'2
- …