Modeling and Analysis of Software Product Line Variability in Clafer

Modeling and Analysis of Software Product Line Variability in Clafer PDF Author: Kacper Bąk
Publisher:
ISBN:
Category :
Languages : en
Pages : 136

Get Book Here

Book Description
Both feature and class modeling are used in Software Product Line (SPL) engineering to model variability. Feature models are used primarily to represent user-visible characteristics (i.e., features) of products; whereas class models are often used to model types of components and connectors in a product-line architecture. Previous works have explored the approach of using a single language to express both configurations of features and components. Their goal was to simplify the definition and analysis of feature-to-component mappings and to allow modeling component options as features. A prominent example of this approach is cardinality-based feature modeling, which extends feature models with multiple instantiation and references to express component-like, replicated features. Another example is to support feature modeling in a class modeling language, such as UML or MOF, using their profiling mechanisms and a stylized use of composition. Both examples have notable drawbacks: cardinality-based feature modeling lacks a constraint language and a well-defined semantics; encoding feature models as class models and their evolution bring extra complexity. This dissertation presents Clafer (class, feature, reference), a class modeling language with first-class support for feature modeling. Clafer can express rich structural models augmented with complex constraints, i.e., domain, variability, component models, and meta-models. Clafer supports: (i) class-based meta-models, (ii) object models (with uncertainty, if needed), (iii) feature models with attributes and multiple instantiation, (iv) configurations of feature models, (v) mixtures of meta- and feature models and model templates, and (vi) first-order logic constraints. Clafer also makes it possible to arrange models into multiple specialization and extension layers via constraints and inheritance. On the other hand, in designing Clafer we wanted to create a language that builds upon as few concepts as possible, and is easy to learn. The language is supported by tools for SPL verification and optimization. We propose to unify basic modeling constructs into a single concept, called clafer. In other words, Clafer is not a hybrid language. We identify several key mechanisms allowing a class modeling language to express feature models concisely. We provide Clafer with a formal semantics built in a novel, structurally explicit way. As Clafer subsumes cardinality-based feature modeling with attributes, references, and constraints, we are the first to precisely define semantics of such models. We also explore the notion of partial instantiation that allows for modeling with uncertainty and variability. We show that Object-Oriented Modeling (OOM) languages with no direct support for partial instances can support them via class modeling, using subclassing and strengthening multiplicity constraints. We make the encoding of partial instances via subclassing precise and general. Clafer uses this encoding and pushes the idea even further: it provides a syntactic unification of types and (partial) instances via subclassing and redefinition. We evaluate Clafer analytically and experimentally. The analytical evaluation shows that Clafer can concisely express feature and meta-models via a uniform syntax and unified semantics. The experimental evaluation shows that: 1) Clafer can express a variety of realistic rich structural models with complex constraints, such as variability models, meta-models, model templates, and domain models; and 2) that useful analyses can be performed within seconds.

Modeling and Analysis of Software Product Line Variability in Clafer

Modeling and Analysis of Software Product Line Variability in Clafer PDF Author: Kacper Bąk
Publisher:
ISBN:
Category :
Languages : en
Pages : 136

Get Book Here

Book Description
Both feature and class modeling are used in Software Product Line (SPL) engineering to model variability. Feature models are used primarily to represent user-visible characteristics (i.e., features) of products; whereas class models are often used to model types of components and connectors in a product-line architecture. Previous works have explored the approach of using a single language to express both configurations of features and components. Their goal was to simplify the definition and analysis of feature-to-component mappings and to allow modeling component options as features. A prominent example of this approach is cardinality-based feature modeling, which extends feature models with multiple instantiation and references to express component-like, replicated features. Another example is to support feature modeling in a class modeling language, such as UML or MOF, using their profiling mechanisms and a stylized use of composition. Both examples have notable drawbacks: cardinality-based feature modeling lacks a constraint language and a well-defined semantics; encoding feature models as class models and their evolution bring extra complexity. This dissertation presents Clafer (class, feature, reference), a class modeling language with first-class support for feature modeling. Clafer can express rich structural models augmented with complex constraints, i.e., domain, variability, component models, and meta-models. Clafer supports: (i) class-based meta-models, (ii) object models (with uncertainty, if needed), (iii) feature models with attributes and multiple instantiation, (iv) configurations of feature models, (v) mixtures of meta- and feature models and model templates, and (vi) first-order logic constraints. Clafer also makes it possible to arrange models into multiple specialization and extension layers via constraints and inheritance. On the other hand, in designing Clafer we wanted to create a language that builds upon as few concepts as possible, and is easy to learn. The language is supported by tools for SPL verification and optimization. We propose to unify basic modeling constructs into a single concept, called clafer. In other words, Clafer is not a hybrid language. We identify several key mechanisms allowing a class modeling language to express feature models concisely. We provide Clafer with a formal semantics built in a novel, structurally explicit way. As Clafer subsumes cardinality-based feature modeling with attributes, references, and constraints, we are the first to precisely define semantics of such models. We also explore the notion of partial instantiation that allows for modeling with uncertainty and variability. We show that Object-Oriented Modeling (OOM) languages with no direct support for partial instances can support them via class modeling, using subclassing and strengthening multiplicity constraints. We make the encoding of partial instances via subclassing precise and general. Clafer uses this encoding and pushes the idea even further: it provides a syntactic unification of types and (partial) instances via subclassing and redefinition. We evaluate Clafer analytically and experimentally. The analytical evaluation shows that Clafer can concisely express feature and meta-models via a uniform syntax and unified semantics. The experimental evaluation shows that: 1) Clafer can express a variety of realistic rich structural models with complex constraints, such as variability models, meta-models, model templates, and domain models; and 2) that useful analyses can be performed within seconds.

Tests and Proofs

Tests and Proofs PDF Author: Sebastian Gabmeyer
Publisher: Springer
ISBN: 3319614673
Category : Computers
Languages : en
Pages : 167

Get Book Here

Book Description
This book constitutes the refereed proceedings of the 11th International Conference on Tests and Proofs, TAP 2017, held as part of STAF 2017, in Marburg, Germany, in July 2017. The 9 full papers and 1 invited paper presented in this volume were carefully reviewed and selected from 16 submissions. The TAP conference promotes research in verification and formal methods that targets the interplay of proofs and testing: the advancement of techniques of each kind and their combination, with the ultimate goal of improving software and system dependability.

New Trends in Intelligent Software Methodologies, Tools and Techniques

New Trends in Intelligent Software Methodologies, Tools and Techniques PDF Author: H. Fujita
Publisher: IOS Press
ISBN: 1614998000
Category : Computers
Languages : en
Pages : 852

Get Book Here

Book Description
Software is an essential enabler for science and the new economy. It creates new markets and directions for a more reliable, flexible and robust society and empowers the exploration of our world in ever more depth, but it often falls short of our expectations. Current software methodologies, tools, and techniques are still neither robust nor reliable enough for the constantly evolving market, and many promising approaches have so far failed to deliver the solutions required. This book presents the keynote ‘Engineering Cyber-Physical Systems’ and 64 peer-reviewed papers from the 16th International Conference on New Trends in Intelligent Software Methodology Tools, and Techniques, (SoMeT_17), held in Kitakyushu, Japan, in September 2017, which brought together researchers and practitioners to share original research results and practical development experience in software science and related new technologies. The aim of the SoMeT conferences is to capture the essence of the new state-of-the-art in software science and its supporting technology and to identify the challenges such technology will have to master. The book explores new trends and theories which illuminate the direction of developments in this field, and will be of interest to anyone whose work involves software science and its integration into tomorrow’s global information society.

New Trends in Software Methodologies, Tools and Techniques

New Trends in Software Methodologies, Tools and Techniques PDF Author: H. Fujita
Publisher: IOS Press
ISBN: 1614996741
Category : Computers
Languages : en
Pages : 388

Get Book Here

Book Description
Software has become an essential enabler for science and the economy. Not only does it create new markets and the possibility of a more reliable, flexible and robust society, it also empowers our exploration of the world in ever increasing depth. However software often falls short of our expectations, with current methodologies, tools and techniques remaining insufficiently robust and reliable for constantly changing and evolving needs. This book presents papers from the 15th International Conference on New Trends in Intelligent Software Methodology Tools and Techniques (SoMeT 16), held in Larnaca, Cyprus, in September 2016. The SoMeT conference focuses on exploring the innovations, controversies and challenges facing the software engineering community, bringing together theory and experience to propose and evaluate solutions to software engineering problems with an emphasis on human-centric software methodologies, end-user development techniques, and emotional reasoning, for an optimally harmonized performance between the design tool and the user. The book is divided into six chapters covering the following areas: decision support systems; software methodologies and tools; requirement engineering; software for biomedicine and bioinformatics; software engineering models, and formal techniques for software representation; and intelligent software development and social networking. The book explores new trends and theories which illuminate the direction of developments in the field, and will be of interest to all in the software science community.

Feature-Oriented Software Product Lines

Feature-Oriented Software Product Lines PDF Author: Sven Apel
Publisher: Springer Science & Business Media
ISBN: 3642375219
Category : Computers
Languages : en
Pages : 320

Get Book Here

Book Description
While standardization has empowered the software industry to substantially scale software development and to provide affordable software to a broad market, it often does not address smaller market segments, nor the needs and wishes of individual customers. Software product lines reconcile mass production and standardization with mass customization in software engineering. Ideally, based on a set of reusable parts, a software manufacturer can generate a software product based on the requirements of its customer. The concept of features is central to achieving this level of automation, because features bridge the gap between the requirements the customer has and the functionality a product provides. Thus features are a central concept in all phases of product-line development. The authors take a developer’s viewpoint, focus on the development, maintenance, and implementation of product-line variability, and especially concentrate on automated product derivation based on a user’s feature selection. The book consists of three parts. Part I provides a general introduction to feature-oriented software product lines, describing the product-line approach and introducing the product-line development process with its two elements of domain and application engineering. The pivotal part II covers a wide variety of implementation techniques including design patterns, frameworks, components, feature-oriented programming, and aspect-oriented programming, as well as tool-based approaches including preprocessors, build systems, version-control systems, and virtual separation of concerns. Finally, part III is devoted to advanced topics related to feature-oriented product lines like refactoring, feature interaction, and analysis tools specific to product lines. In addition, an appendix lists various helpful tools for software product-line development, along with a description of how they relate to the topics covered in this book. To tie the book together, the authors use two running examples that are well documented in the product-line literature: data management for embedded systems, and variations of graph data structures. They start every chapter by explicitly stating the respective learning goals and finish it with a set of exercises; additional teaching material is also available online. All these features make the book ideally suited for teaching – both for academic classes and for professionals interested in self-study.

System Analysis and Modeling: Models and Reusability

System Analysis and Modeling: Models and Reusability PDF Author: Daniel Amyot
Publisher: Springer
ISBN: 3319117432
Category : Computers
Languages : en
Pages : 329

Get Book Here

Book Description
This book constitutes the refereed papers of the proceedings of the 8th International Conference on System Analysis and Modeling, SAM 2014, held in Valencia, Spain, in September 2014. The 18 full papers and the 3 short papers presented together with 2 keynotes were carefully reviewed and selected from 71 submissions. The contributions are organized in topical sections named: reuse; availability, safety and optimization; sequences and interactions; testing; metrics, constraints and repositories; and SDL and V&V.

Software Language Engineering

Software Language Engineering PDF Author: Brian Malloy
Publisher: Springer
ISBN: 3642194400
Category : Computers
Languages : en
Pages : 428

Get Book Here

Book Description
This book constitutes the thoroughly refereed post-proceedings of the Third International Conference on Software Language Engineering, SLE 2010, held in Eindhoven, The Netherlands, in October 2010. The 24 papers presented were carefully reviewed and selected from 79 submissions. The book also contains the abstracts of two invited talks. The papers are grouped in topical sections on grammarware, metamodeling, evolution, programming, and domain-specific languages. The short papers and demos included deal with modeling and transformations and translations.

Software Product Lines

Software Product Lines PDF Author: Patrick Donohoe
Publisher: Springer Science & Business Media
ISBN: 1461543398
Category : Computers
Languages : en
Pages : 527

Get Book Here

Book Description
Software product lines are emerging as a critical new paradigm for software development. Product lines are enabling organizations to achieve impressive time-to-market gains and cost reductions. With the increasing number of product lines and product-line researchers and practitioners, the time is right for a comprehensive examination of the issues surrounding the software product line approach. The Software Engineering Institute at Carnegie Mellon University is proud to sponsor the first conference on this important subject. This book comprises the proceedings of the First Software Product Line Conference (SPLC1), held August 28-31, 2000, in Denver, Colorado, USA. The twenty-seven papers of the conference technical program present research results and experience reports that cover all aspects of software product lines. Topics include business issues, enabling technologies, organizational issues, and life-cycle issues. Emphasis is placed on experiences in the development and fielding of product lines of complex systems, especially those that expose problems in the design, development, or evolution of software product lines. The book will be essential reading for researchers and practitioners alike.

Mastering Software Variability with FeatureIDE

Mastering Software Variability with FeatureIDE PDF Author: Jens Meinicke
Publisher: Springer
ISBN: 3319614436
Category : Computers
Languages : en
Pages : 238

Get Book Here

Book Description
This book is a self-contained, practical introduction how to use FeatureIDE for modeling and implementing variable systems. In particular, readers learn how to analyze domains using feature models, specify requirements in form of configurations, and how to generate code based on conditional compilation and feature-oriented programming. Given the interactive style of the book, readers can directly try out the open-source development environment. All code examples are available in the standard distribution on GitHub and can immediately been used for individual modifications. Each part of the book is presented as a step-by-step tutorial and additionally illustrated using an ongoing example of elevator control software written in Java. Written by the core development team of FeatureIDE, this book is suitable for students using a tool for deepening the theoretical foundations of variability modeling and implementation, and as a reference for practitioners needing a stable and scalable tool for industrial applications. FeatureIDE is the most used open-source tool for feature modeling and has been continuously improved since 2004. The success of FeatureIDE is due to being a vehicle for cutting-edge product-line research by still providing an easy-to-use and seamless integration into Eclipse.

UML-Based Software Product Line Engineering with SMarty

UML-Based Software Product Line Engineering with SMarty PDF Author: Edson OliveiraJr
Publisher: Springer Nature
ISBN: 3031185560
Category : Computers
Languages : en
Pages : 517

Get Book Here

Book Description
This book is about software product lines (SPLs) designed and developed taking UML diagrams as the primary basis, modeled according to a rigorous approach composed of an UML profile and a systematic process for variability management activities, forming the Stereotype-based Management of Variability (SMarty) approach. The book consists of five parts. Part I provides essential concepts on SPL in terms of the first development methodologies. It also introduces variability concepts and discusses SPL architectures finishing with the SMarty approach. Part II is focused on the design, verification and validation of SMarty SPLs, and Part III concentrates on the SPL architecture evolution based on ISO/IEC metrics, the SystEM-PLA method, optimization with the MOA4PLA method, and feature interaction prevention. Next, Part IV presents SMarty as a basis for SPL development, such as, the M-SPLearning SPL for mobile learning applications, the PLeTs SPL for testing tools, the PlugSPL plugin environment for supporting the SPL life cycle, the SyMPLES approach for designing embedded systems with SysML, the SMartySPEM approach for software process lines (SPrL), and re-engineering of class diagrams into an SPL. Eventually, Part V promotes controlled experimentation in UML-based SPLs, presenting essential concepts on how to plan, conduct, and document experiments, as well as showing several experiments carried out with SMarty. This book aims at lecturers, graduate students and experienced practitioners. Lecturers might use the book for graduate level courses about SPL fundamentals and tools; students will learn about the SPL engineering process, variability management, and mass customization; and practitioners will see how to plan the transition from single-product development to an SPL-based process, how to document inherent variability in a given domain, or how to apply controlled experiments to SPLs.