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
Software Product Line (SPL) promises to accelerate the development process with higher quality of product and low budget of production. The essential key of SPL is feature diagram which describes the relation between features for the domain and captures the commonalities and variabilities. The approach gains numerous attention in research and industry area. However, the implementation of SPL approach for information system development is still inadequate. Some works explain the inclusion of ontology for SPL such as having feature diagram in ontology language. The inclusion benefits to produce an information system automatically. On the other side, the executable modelling language such as Abstract Behavioural Specification (ABS) can be utilized to implement the feature diagram for distributed objectoriented systems. The trend of ABS expands to accommodate microservices-based software variabilities, that is ABS Microservices Framework. The Framework allows to build different services for different devices who consume the data from ABS. However, these two area of research have not been integrated. We propose an adaptor to integrate the ABS microservices and ontology-based information system to produce automated business logics into the system. We show that by using the ontology as its basis, the system is semantically structured and the business logics required by the system is updated automatically.
Software Product Line Engineering (SPLE) aims to produce variant-rich software with features based on diverse user requirements. SPLE uses the term feature to express system commonalities and variabilities. The Abstract Behavioral Specification (ABS) is an executable modeling language that supports SPLE. It uses feature models to declare and organize software variability as a tree of nested features. Users select the specific features they need based on this feature model. Such a selection process can be a too complex task if the number of features is quite large. In this research we propose to apply a grouping mechanism to the features of a feature model in order to reduce the complexity of the feature selection performed by the user. Using this mechanism the user selects the features in a software product based on groups instead of the more complex original feature model structure. We implemented the grouping mechanism as part of the ABS tool suite. The resulting groups are visualized using a simple web application. Case studies were employed to evaluate the proposed grouping mechanism
Software Product Lines (SPL) support the concept of software mass production and customization by defining the commonalities and variability of related software products using a notion of features. The features of SPLs and their interdependencies are typically organized in feature models. These capture the product variations by defining permissible feature combinations. Analysis of feature models aims to extract valuable information and build a better software product line. The current implementation of automated analysis of feature models in Abstract Behavioral Specification (ABS) is using Choco Solver 2, a Java library for constraint satisfaction problems. Our work in this research was to port the implementation to the newest version of Choco Solver, namely Choco 4. Additionally, we extended the set of feature model analyses by adding new useful operations. An evaluation has been conducted to analyze the time performance. As a result, Choco 2 outperformed Choco 4 in case of deriving all solutions, while Choco 4 is better when deriving single solutions.
There has been an increasing number of charities worldwide. However, transparency and imbalanced distribution are still critical issues in this sector. Despite the Web has been exploited for several purposes in numerous sectors, its potential has not been fully employed by not-for-profit organizations. Due to the variability of the organizations, it is not easy to provide a one application-fit-all open source applications. Many small organizations are very active but still lack of qualified resources to provide IT supports. Thus, we endeavour to develop an adaptive system for different charity organizations in a single development with Software Product Lines (SPL) as its approach to deal with the charities problems. In this paper, we introduce a platform to generate the charities systems with ABS as a core architecture to support SPL. We present how the products are generated by the system. However, the system does not have rich UI/UX variations.
Problem and solution space are two fundamental phases which are sequentially run in Software Product Line (SPL). In problem space, feature models are widely used to capture commonalities and variabilities for a particular domain. On the other hand, the features are implemented to be an application in solution space of SPL. Lacking semantics of feature model gains a considerable attention in Semantic Web discipline. Several studies have discussed the formal representation of feature models using ontologies with different mapping styles. However, they focused on the ontology approach only. In this paper, we present that an ontology which represent a feature model can be realised into an application. We employ the ontology as an input of Zotonic framework for application realisation.
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.
Feature modeling on ABS was a modeling process which were performed using a text-based language known as μTVL (Micro Textual Variability Language). This approach was relatively difficult when developing a large-scale system. Therefore, systematic mechanism would be needed to make the common modeling process in feature modeling can be recognized and used by ABS. One approach that could be used was to make a code generator that transforms a feature diagram to ABS code. This research was focused on creating a code generator that can be used to transform feature diagrams into code ABS in μTVL representation. This research had succeeded in making the code generator by first preparing rule-making for feature diagram so the transformation result is suitable with the rules that are owned by ABS. Current code generator is still needed to be refined with the metamodel according to the specifications of ABS so all excess that ABS has can be put to good use.
Feature-based approaches to software design, like delta-oriented programming, are well-suited to support multi-product software development paradigms, such as Software Product Lines. Currently, the popular UML notation does not support delta-oriented software design, so that several ad-hoc notations tend to be used. This paper presents a systematic approach to import concepts from delta-oriented programming into the mainstream notation UML. This is done with minimal overhead by specifying a new, slim, delta-oriented UML profile. It is compatible with languages that support delta-oriented programming such as DeltaJ and ABS. The usefulness of the profile is evaluated with a case study.
Producing software variations from the same software product line requires developers to adopt developing tools that support variability. The Abstract Behavioral Specification (ABS) is a modeling language that facilitates the generation of various software products from a single code base. One part of ABS is the Product Selection Language (PSL), which is used to specify software products as sets of features. Even though some products might share some features, using PSL, all features in a product need to be stated one by one. If the product is obtained from tens to hundreds of features, defining the product will be difficult and inefficient To remedy this situation, we extend the PSL such that products can be declared incrementally, by referring to other products. Such declarations contain product expressions that use set-theoretic operations (i.e., union, intersection, complement) over products and sets of features. We evaluate our extended PSL with a case study of a Charity Organization System developed at the RSE Research Lab in the Faculty of Computer Science at Universitas Indonesia.
Software Product Lines (SPL) enable a software to have various products in single development. The products possess commonality and variability that should be defined in the problem domain. Abstract Behavioral Specification (ABS) is one of executable modeling language that supports SPL by implementing Delta Oriented Programming (DOP). In DOP, features that is related with the variability will be implemented in the delta modules (deltas). Deltas will modify a basic product to create (new) various products. Thus the various features and products will be managed well in delta modeling. On the other hand, there is Unified Modeling Language (UML), a standard and popular modeling language. UML is not designed to model SPL, but UML has a mechanism to extend their syntax and semantics by defining UML Profile. In this paper, we aim to bridge UML and SPL automatically by having an automatic traslation program. The program will produce UML model based on ABS model, that supports SPL, by using UML-DOP Profile. Besides connecting UML and SPL, the program can also help the developer to achieve coherency between design and implementation. As the results, the UML models produced by automatic translator are represented by XML Metadata Interchange (XMI) documents.