
Many things in the world share similarities, yet variations still exist. The same applies to software development, where commonalities and differences are present. In this regard, the productivity of software development can be improved by applying software product line engineering (SPLE). One challenge in applying SPLE is managing architectural variations in development and deployment, such as microservices. Microservices split an application into separately deployable services that may communicate internally. However, these internal communications can hinder systematic interchangeability, reducing flexibility within the product line. We propose a refined solution based on Unified Modeling Language (UML) with extension for delta oriented programming (DOP) to address challenges in re-engineering microservice-based webshops into software product lines (SPL). Our approach defines a mechanism to reengineer microservices and generate a web-based SPL, designed to support the generation of independent services. We generate a running web application with Java backend and React frontend application. From a single SPL code base, we successfully produce four of the six selected cases of microservice-based webshops.
The Universal Variability Language (UVL) is increasingly adopted as a standard language for feature modeling in software product lines (SPL). In this tutorial, we present advanced modeling scenarios that highlight when and how to use UVL’s language levels and extensions. We also provide a comprehensive overview of the UVL ecosystem, showcasing the tools currently available to support modeling, analysis, sharing, and visualization of feature models.
The practices of software development are facing potentially dramatic change. A product line approach will remain relevant by accommodating emerging techniques, such as the capabilities of generative AI (artificial intelligence). This tutorial surveys the content of a draft book [1] that presents such an approach, built on the concept of a product family, for the systematic development of software-based products. A product family is defined in terms of the perceived similarity (commonalities and variabilities) in behavior of an envisioned set of products. These products are seen to differ according to a set of customer-relevant deferred decisions that determine why multiple products may be needed and how each such product is to be built. Partial resolution of these decisions reduces a family to a subfamily whereas full resolution designates a particular instance of the family. The presented approach adopts an objective of producibility—the ability to deliver needed capabilities to customers in a timely, cost-effective, and predictable manner—in building either singular evolving software products or an evolving domain with which customized software-based products targeting a coherent market can then be derived. The former option defines a software engineering formulation for building a product, expressed in the form of a notional product model. This then provides a foundation for the latter option toward building and instantiating a product family. This option is further extended to more directly address the relevance of enterprise and program management, systems and hardware engineering, and customer engagement. This approach retains the tripartite concept introduced in 1998 with the Domain-specific Engineering (DsE) methodology. DsE was a refinement and reformulation of the Synthesis methodology conceived in 1990 at the Software Productivity Consortium as the first comprehensive approach to software development based on the product family concept. DsE continues to be method-agnostic, accommodating diversity and innovation in software methods and practices, including the potential uses of generative AI. DsE is distinguished in part by the conception of application engineering as a streamlined model-based product manufacturing process. This process entails the resolution of domain-specified deferred decisions, associated with a concrete realization of a product family, as a sufficient means for deriving, comparatively evaluating, and delivering alternative customized whole products.
Software product line engineering (SPLE) is a promising approach for managing variability and enhancing reusability in web development. Despite the diversity of domains, many web applications share a significant number of common features. FeatureIDE, a community-supported SPLE tool, offers multiple composers to integrate feature-based variability into code. This paper introduces WinVMJ Composer, a new FeatureIDE composer for web-based SPL development. WinVMJ Composer supports web backend development using variability modules for Java (VMJ), an architectural pattern for delta-oriented SPLs in Java. We deploy WinVMJ Composer as an Eclipse plugin that lets developers compose product variants based on defined configurations. Integrating Java with FeatureIDE promotes SPLE adoption by offering a familiar and practical development environment.
Cyber-Physical Production Systems (CPPSs) integrate physical and software elements to enable the flexible and adaptive manufacturing demanded by today’s globalized markets. Experts from various engineering disciplines (e.g., electrical, mechatronic, or control software) collaborate to develop these systems. In practice, heterogeneous engineering artifacts (e.g., Bills of Material (BOM), Computer-Aided Design (CAD) drawings, or modeling languages) with diverse semantics are used to design and develop these variability-intensive systems. Managing consistency among these artifacts is crucial to prevent failures during commissioning and reduce engineering costs. However, this is challenging due to interdependencies between artifacts—changes in one artifact affect others, and constraints may evolve, leaving no guarantee of a consistent state. This paper presents our vision for managing consistency in CPPSs by transforming metamodel-conformant artifacts into a unified logical intermediate representation, which can be analyzed using a logical solver. We also propose a Domain-Specific Language (DSL) for expressing consistency rules. Our approach is demonstrated using an existing CPPS variability management method, and we outline a research agenda for future work.