Download Free Mastering Software Variability With Featureide Book in PDF and EPUB Free Download. You can read online Mastering Software Variability With Featureide and write the review.

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.
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.
This book constitutes the proceedings of the 20th International Conference on Software and Systems Reuse, ICSR 2022, held in Montpellier, France in June 2022. The 7 full papers and 2 short papers included in this book were carefully reviewed and selected from 29 submissions. The papers were organized in topical sections named: Code Recommendations and Ruse; Learning and Reuse; Evolution and Reuse; Quality, Longevity and Reuse.
This book presents a collection of research papers that address the challenge of how to develop software in a principled way that, in particular, enables reasoning. The individual papers approach this challenge from various perspectives including programming languages, program verification, and the systematic variation of software. Topics covered include programming abstractions for concurrent and distributed software, specification and verification techniques for imperative programs, and development techniques for software product lines. With this book the editors and authors wish to acknowledge – on the occasion of his 60th birthday – the work of Arnd Poetzsch-Heffter, who has made major contributions to software technology throughout his career. It features articles on Arnd’s broad research interests including, among others, the implementation of programming languages, formal semantics, specification and verification of object-oriented and concurrent programs, programming language design, distributed systems, software modeling, and software product lines. All contributing authors are leading experts in programming languages and software engineering who have collaborated with Arnd in the course of his career. Overall, the book offers a collection of high-quality articles, presenting original research results, major case studies, and inspiring visions. Some of the work included here was presented at a symposium in honor of Arnd Poetzsch-Heffter, held in Kaiserslautern, Germany, in November 2018.
Developing variable systems faces many challenges. Dependencies between interrelated artifacts within a product variant, such as code or diagrams, across product variants and across their revisions quickly lead to inconsistencies during evolution. This work provides a unification of common concepts and operations for variability management, identifies variability-related inconsistencies and presents an approach for view-based consistency preservation of variable systems.
This book covers both theory and applications in the automation of software testing tools and techniques for various types of software (e.g. object-oriented, aspect-oriented, and web-based software). When software fails, it is most often due to lack of proper and thorough testing, an aspect that is even more acute for object-oriented, aspect-oriented, and web-based software. Further, since it is more difficult to test distributed and service-oriented architecture-based applications, there is a pressing need to discuss the latest developments in automated software testing. This book discusses the most relevant issues, models, tools, challenges, and applications in automated software testing. Further, it brings together academic researchers, scientists, and engineers from a wide range of industrial application areas, who present their latest findings and identify future challenges in this fledging research area.
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.
This book constitutes the refereed proceedings of the 17th International Conference on Software Engineering and Formal Methods, SEFM 2019, held in Oslo, Norway, in September 2019. The 27 full papers presented were carefully reviewed and selected from 89 submissions. The papers cover a large variety of topics, including testing, formal verification, program analysis, runtime verification, malware and attack detection,and software development and evolution and address a wide range of systems, such as cyber-physical systems, UAVs, autonomous robots, and feature-oriented and operating systems. They are organized in the following topical sections: cooperative asynchronous systems; cyber-physical systems; feature-oriented and versioned systems; model-based testing; model inference; ontologies and machine learning; operating systems; program analysis; relating models and implementations; runtime verification; security; and verification.
This textbook describes the theory and the pragmatics of using and engineering high-level software languages – also known as modeling or domain-specific languages (DSLs) – for creating quality software. This includes methods, design patterns, guidelines, and testing practices for defining the syntax and the semantics of languages. While remaining close to technology, the book covers multiple paradigms and solutions, avoiding a particular technological silo. It unifies the modeling, the object-oriented, and the functional-programming perspectives on DSLs. The book has 13 chapters. Chapters 1 and 2 introduce and motivate DSLs. Chapter 3 kicks off the DSL engineering lifecycle, describing how to systematically develop abstract syntax by analyzing a domain. Chapter 4 addresses the concrete syntax, including the systematic engineering of context-free grammars. Chapters 5 and 6 cover the static semantics – with basic constraints as a starting point and type systems for advanced DSLs. Chapters 7 (Transformation), 8 (Interpretation), and 9 (Generation) describe different paradigms for designing and implementing the dynamic semantics, while covering testing and other kinds of quality assurance. Chapter 10 is devoted to internal DSLs. Chapters 11 to 13 show the application of DSLs and engage with simpler alternatives to DSLs in a highly distinguished domain: software variability. These chapters introduce the underlying notions of software product lines and feature modeling. The book has been developed based on courses on model-driven software engineering (MDSE) and DSLs held by the authors. It aims at senior undergraduate and junior graduate students in computer science or software engineering. Since it includes examples and lessons from industrial and open-source projects, as well as from industrial research, practitioners will also find it a useful reference. The numerous examples include code in Scala 3, ATL, Alloy, C#, F#, Groovy, Java, JavaScript, Kotlin, OCL, Python, QVT, Ruby, and Xtend. The book contains as many as 277 exercises. The associated code repository facilitates learning and using the examples in a course.
This book focuses on software reuse and the chances, dependability tests and recommendations for best reuse practice. A short introduction of the Ecodesign of hardware is given combined with the latest update of relevant EU legislation and standardization. It also describes the combination of different states of software in a E&E system in order to guarantee dependability of the product to be resold.