We investigated how a software product line (SPL) for Web application is realized by following an established Web application development methodology called Architecture-Centric Model-Driven Web Engineering (AC-MDWE). The development process is done by using Abstract Behavioural Specification (ABS), which is an executable modelling language that provides SPL-related features. We created a case study by implementing a product line for E-commerce Web applications. The product line is realisable using ABS with modifications to the original AC-MDWE process. ABS can provide several benefits such as control during product generation, feature traceability, and preserving integrity of core assets. However, it is still not ready for creating production-level Web application and lack of readability in the generated artefacts.
We choose Unified Modeling Language (UML) as the foundation to model the proposed solution of the Multi Software Product Lines (MPL) interoperability challenge. The proposed pseudo-code is modeled as an extension of the UML meta-model to support MPL. The model serves to provide a standard representation of MPL and an intuitive transformation to an Object-Oriented Programming (OOP) language. Some extension to the UML that yet to have intuitive translation into common OO language are augmented with a mechanism using a build automation system. This mechanism provides manual transformation that gives us some hints whether the proposed solution fulfilled the evaluation criteria. The given challenge case has been written in our proposed pseudo-code, modeled in our UML extension, and translated into Java source code and Gradle build scripts. By invoking Gradle tasks, we can simulate product generation that creates products as Java objects.
Microservices architecture is a software development style that divides software into several small, independently deployable services. Every service can be invoked by standard protocols such as HTTP, so it can be used on a variety of platforms (e.g. mobile, web, desktop). The diversity of users of microservices-based software causes an increased variation in software requirements. In order to accommodate this ariability, we propose a framework for microservices-based software based on the Software Product Line Engineering (SPLE) approach. We call this framework ABS Microservices Framework, as it relies on the Abstract Behavioral Specification (ABS) language development platfor that readily supports SPLE. The framework created in this research has shown more flexibility to accommodate software variability than other microservices frameworks. Hence, the ABS Microservices Framework can support the software industry to distribute variable software of high quality and reliability