Learn More About The First
Software Product Lines Engineering (SPLE)
Product in Indonesia

The Feature Diagram

We research the essential features which we explored and analysed from several organizations.
Charity organizations at first.

The Technology

Research Group in Reliable Software Engineering Lab Fasilkom UI conducted research to implement ABS
Technology in Indonesia.

Delta Modeling

Delta-oriented progamming is an approach to describe software variability. By using this approach, we are able to create set of softwares where each software represents every specific need. In delta modeling, set of softwares is described in a core that can be modified to produce a software. Core is modified in by a set of delta. Each delta describes modifications to cores. A product configuration is obtained by applying the changes of deltas to the core.


Abstract Behavioral Specification (ABS) is a modeling language based on Delta Oriented Programming (DOP) that supports software development with Software Product Product Line (SPL) approach. By using SPL, software developers can create multiple products on a single development process. At the beginning, developer have to define system commonalities and variabilities.
By using ABS, feature variations can be defined on feature model. Each feature will be realized using delta model (delta). Delta is a code that can change the Core ABS (existing features) without changing the original code. The connectivity between the delta with features, defined in the Product Line Configuration.
Finally, to create a product, we have to define the product name and features that will be implemented for the product. ABS compiler will create product selection based on the feature selection.


Variability modules for Java (VMJ) is an architectural pattern to realize the variability modules (VM) in Java programming language. The VM concept is combined with the Java module system (available from Java 9) and design patterns to model delta-oriented programming (DOP). The main advantage of VMJ is an extension of the Java module system that supports SPLE and also Multi Product Line (MPL).
Java modules are managed using decorator and factory design patterns to derive product variants. A delta module decorates a core module by specifying the modification behavior. A product module configures objects based on the selected features. By defining java modules dependency, a product module can access functionality in the selected features.
Objects in the core modules and delta modules are created using the factory pattern. The factory pattern also manages the delta application order if a feature is implemented by more than one delta. VMJ is more intuitive to use for anyone familiar with the Java programming language. The adoption of SPLE, as a new approach, can be easier using VMJ.