delta-oriented programming is a modular, and flexible paradigm for implementing a Software Product Line. delta-oriented programming involves implementing a core software product alongside a collection of delta Modules...
详细信息
delta-oriented programming is a modular, and flexible paradigm for implementing a Software Product Line. delta-oriented programming involves implementing a core software product alongside a collection of delta Modules, which encapsulate modifications that can be applied to the core software to obtain the desired product. The applicable delta modules are activated through product configuration. The core product in delta-oriented programming is mainly an object-oriented program. While delta-oriented programming has the potential to enhance productivity by reusing modifications, its limited availability of tools poses a challenge in managing large-scale software systems, making it difficult for non -experts to use. Model-based engineering offers a viable solution to this problem by utilizing model artifacts instead of code snippets, simplifying product line management based on delta-oriented programming. This paper presents PhaDOP, a framework for implementing delta-oriented programming at the model level in the Pharo environment. The framework provides the necessary structures to construct Software Product Line architecture, organize reusable artifacts, and prepare the delta Module through a graphical user interface. PhaDOP was evaluated through a case study.
We explore the possibility of including delta-oriented programming (DOP) and Abstract User Interface (AUI) model during product generation in Software Product Line Engineering (SPLE). Previous work showed that DOP is ...
详细信息
ISBN:
(纸本)9781450359450
We explore the possibility of including delta-oriented programming (DOP) and Abstract User Interface (AUI) model during product generation in Software Product Line Engineering (SPLE). Previous work showed that DOP is applicable in a SPLE for Web applications albeit User Interface (UI) elements in derived product are still manually created without UI modeling. AUI model is proven to be successful for modeling UI elements for products in SPLE as it can model generic UI elements while still encouraging customization. Therefore, we pick an existing AUI modeling language called Interaction Flow Modeling Language (IFML) to create model of UI elements in a SPLE. We also suggest a new SPLE design that follows DOP and the proposed UI modeling language to generate adaptable UI given product configuration. The process of designing UI for each feature in the product line is based on reference implementation process used in previous work. We hope that the suggested process can solve the current DOP practices limitation in generating UI elements for products in SPLE.
This article proposes a novel framework for the development of product lines for web systems. Software product line engineering is a well-established reuse mechanism to aid development of related software products wit...
详细信息
This article proposes a novel framework for the development of product lines for web systems. Software product line engineering is a well-established reuse mechanism to aid development of related software products with a large degree of variability. Web systems, which exhibit high variability (different capabilities in each deployment) and commonality (similar user interfaces and functionalities), are very well suited for this approach. At the same time, web systems are amenable to model-driven software engineering, because they typically encompass loosely coupled and fixed functionality, which makes code generation feasible. In consequence, a model-driven software product line engineering (MDSPLE) approach to develop web systems is natural and in fact was variously suggested. However, all existing MDSPLE proposals either cover mainly the problem space. If they address the solution space at all, the technology is not variability-aware. In consequence, they lack reusability at the code level and feature-granular traceability. Our contribution is an MDSPLE-based framework that permits seamless end-to-end development of web systems. The framework is fully implemented and evaluated with realistic web systems in actual use. Our solution consists of two parts: A variability-aware extension of UML diagrams in the problem space and a feature-oriented behavioral modeling language in the solution space. Both languages have been carefully chosen (and extended) to provide a tightly fitting technology match and are based on delta-oriented programming.
We present a realization of multi software product lines in the Java programming language that permits full interoperability and hierarchical dependencies among multiple product variants. This concept, called variabil...
详细信息
ISBN:
(纸本)9781450388245
We present a realization of multi software product lines in the Java programming language that permits full interoperability and hierarchical dependencies among multiple product variants. This concept, called variability modules (VM), is implemented in terms of an architectural pattern in Java and does not require any pre-processing or language extension. It can be used with any Java development environment. The VM architectural pattern comes with a dedicated UML profile, which makes it possible to present variability to non-technical stakeholders. We evaluate our approach with the help of a real-world case study.
A Software Product Line (SPL) is a family of similar programs (called variants) generated from a common artifact base. A Multi SPL (MPL) is a set of interdependent SPLs (i.e., such that an SPL's variant can depend...
详细信息
ISBN:
(纸本)9781450384698
A Software Product Line (SPL) is a family of similar programs (called variants) generated from a common artifact base. A Multi SPL (MPL) is a set of interdependent SPLs (i.e., such that an SPL's variant can depend on variants from other SPLs). MPLs are challenging to model and implement efficiently, especially when different variants of the same SPL must coexist and interoperate. We address this challenge by introducing variability modules (VMs), a new language construct. A VM represents both a module and an SPL of standard (variability-free), possibly interdependent modules. Generating a variant of a VM triggers the generation of all variants required to fulfill its dependencies. Then, a set of interdependent VMs represents an MPL that can be compiled into a set of standard modules. We illustrate VMs by an example from an industrial modeling scenario, formalize them in a core calculus, provide an implementation for the Java-like modeling language ABS, and evaluate VMs by case studies.
The quest for feature- and family-oriented deductive verification of software product lines resulted in several proposals. In this paper we look at delta-oriented modeling of product lines and combine two new ideas: f...
详细信息
ISBN:
(纸本)9781450391122
The quest for feature- and family-oriented deductive verification of software product lines resulted in several proposals. In this paper we look at delta-oriented modeling of product lines and combine two new ideas: first, we extend Hahnle & Schaefer's delta-oriented version of Liskov's substitution principle for behavioral subtyping to work also for overridden behavior in benign cases. For this to succeed, programs need to be in a certain normal form. The required normal form turns out to be achievable in many cases by a set of program transformations, whose correctness is ensured by the recent technique of abstract execution. This is a generalization of symbolic execution that permits reasoning about abstract code elements. It is needed, because code deltas contain partially unknown code contexts in terms of "original" calls. Second, we devise a modular verification procedure for deltas based on abstract execution, representing deltas as abstract programs calling into unknown contexts. The result is a "delta-based" verification approach, where each modification of a method in a code delta is verified in isolation, but which overcomes the strict limitations of behavioral subtyping and works for many practical programs. The latter claim is substantiated with case studies and benchmarks.
Combining microservices and software product line engineering (SPLE) is a challenge in variability management. This paper proposes a solution to that challenge by re-engineering existing webshop systems into a product...
详细信息
ISBN:
(纸本)9781450375696
Combining microservices and software product line engineering (SPLE) is a challenge in variability management. This paper proposes a solution to that challenge by re-engineering existing webshop systems into a product line application. We first perform feature identification to analyze the features of subject systems. We introduce a mechanism that models the variability and designs a software product line architecture based on existing features. We use a UML diagram with the UML-DOP profile to abstract microservice variability in SPLE. Then, a transformation into a product line application is conducted to generate running applications based on selected features. We utilize a preliminary framework of microservice variability based on delta-oriented programming.
暂无评论