PhaDOP: A Pharo framework for implementing software product lines using Delta-Oriented Programming and model-based engineering - Niang, Boubou Thiam; Kahn, Giacomo; Ouzrout, Yacine; Derras, Mustapha; Laval, Jannik (Journal of computer languages (Online), 2024)
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. •Introduction of Pharo libraries tailored for Delta-Oriented Programming.•Combination of Model-Driven Engineering with Delta-Oriented Programming methodologies.•Development of a truth table-based methodology for identifying potential Delta modules at both entity and model levels.•Creation of a metamodel designed to capture reusable artifacts associated with method implementation.•Provision of comprehensive functionalities and user-friendly graphical interfaces for efficient Delta project management.