PRICES

Web Development Framework
Based on Software Product Line Engineering

PRICES ABS

Introduction

In the scheme of software development, modeling phase holds the important role to set a requirement model which is suitable to the user's needs. Any mistakes that occur during this phase will spread into the next phases. Hence, a right way of modeling will help the developers to create a good system. On the other hand, problem arises when there are changes in the requirement and user's needs that will hinder the development of software. To anticipate this, we will use the approach known as delta modeling. This method only records changes which will be done with delta without changing the default system. The delta is configured to be able to modify the core of the existing system.


The workflow of the research can be seen in Figure above. A research done by various universities in Europe which were members of HATS project (Highly Adoptable and Trustworthy Software using Formal Models) created a modeling language with object-oriented and executable approach which is called ABS (Abstract Behavioral Specification). ABS uses delta modeling in order to model various products by defining the needed features. This relatively new approach is not easily applied since softwares nowadays are mostly developed with standard patterns such as UML (Unified Modeling Language). Hence, there has to be a systematic mechanism which is able to map out the design from the old approach to be able to use the new.

Systematics of this change of requirement that is configured with delta modeling can increase the efficiency in software development. As for the quality of the software itself, a further evaluation is needed. The existing theories also need to be embodied in applicable form for common software industry, and this research will also deal with the development of related tools. With that in mind, this research will also give broader contribution and can be used by many software developers.

Feature Diagram Transformator to ABS

This is a tool which is made as a part of PRICES project. Overall, this tool can help user to transform a feature diagram to µTVL as a representation of feature modeling on ABS. Feature modeling on ABS is represented by a language called Micro Textual Variability Language or µTVL [1]. This language is a subset of Textual Variability Language (TVL) which was simplified to focus on getting the main requirement in performing feature modeling [1]. Feature modeling is one of methods that ABS used to model variability in software system. This method is focused on identifying features that can be used in creating product line. The main benefit of feature modeling on ABS can be seen when defining the product, the feature model will prevent the realization of new products which do not correspond to the feature model. This tool has a transformation rules that was implemented in Acceleo template. Before we use this tool, there are few steps that we have to follow so this tool can do its job smoothly.

Installation

  1. Download Eclipse Modeling Tools
  2. Download & Install HyperFlex Feature Diagram Editor via update site
  3. Download & Install ABS Plugin via update site
  4. Download Feature Diagram Transformation Tools Project
The complete tutorial for using this tools can be downloaded here

Figure below shows a transformation steps that is starting with making a feature diagram with HyperFlex and after that Acceleo will do the transformation process into ABS Code.



Source
[1] Clarke, D., Muschevici, R., Proenc¸a, J., Schaefer, I., dan Schlatte, R. (2012). Variability modelling in the abs language. In Formal Methods for Components and Objects, pages 204– 224. Springer.

UML-DOP Profile

UML profile is a mechanism from Object Management Group (OMG) that can be used to adjust UML syntax for specific domains or other programming languages. In this research, we created UML Profile for Delta Oriented Programming (UML-DOP). Abstract Behavioral Specification (ABS), executable modeling language, that implements DOP, developed by HATS project. The profile is defined by mapping DOP element to UML element. The following table summarizes the stereotypes, tagged values, and constraints introduced by UML profile.
The workflow of the research can be seen in Figure above. A research done by various universities in Europe which were members of HATS project (Highly Adoptable and Trustworthy Software using Formal Models) created a modeling language with object-oriented and executable approach which is called ABS (Abstract Behavioral Specification). ABS uses delta modeling in order to model various products by defining the needed features. This relatively new approach is not easily applied since softwares nowadays are mostly developed with standard patterns such as UML (Unified Modeling Language). Hence, there has to be a systematic mechanism which is able to map out the design from the old approach to be able to use the new.

UML profile can be visualized with UML profile diagram. UML profile diagram describes an extension mechanism to the UML by defining stereotypes, tagged values, and constraints. A stereotype uses the same notation as a class with the keyword <> shown above the stereotype name. Each stereotype must always be used with one of the metaclasses which it extends. Metaclass is a class which may be extended by one or more stereotypes. Metaclass is symbolized as a class with keyword <> shown above the stereotype name. The arrow from a <> class to <> class indicate that a stereotype extends that metaclass.
Figure below shows UML-DOP Profile diagram that was defined based on the profile summary. On the profile diagram, there are 17 stereotypes that defined from the UML-DOP profile. Metaclasses that extended by stereotypes are package, class, component, dependency, association, operation, and property. Each stereotype must extend one or more metaclasseses. For example, stereotype Module extends metaclass Package and stereotype modifiedClass extend metaclass Class. A stereotype also can be substereotype from another stereotype.

UML Diagram Translator to ABS

We used UML-DOP Profile to support UML diagram translation for ABS. Using the profile, translation from UML class diagram to ABS is straightforward. First, we have to do refactoring UML diagram to UML diagram with UML-DOP. After that, we can translate UML class diagram with UML-DOP to ABS model. The translation rules is implemented in Eclipse Acceleo Model to Text Transformation. Thus, we also created representation of UML-DOP profile on the Eclipse IDE.

Installation

  1. Download Eclipse Modeling Tools
  2. Download UML-DOP Profile
  3. Download UML Diagram to ABS Translator
The complete tutorial for using this tools can be downloaded here and the simulation of translation from UML class diagram to ABS can be seen on the video below.

ABS MVC Framework

ABS MVC Framework is a web application framework based on Abstract Behavioral Specification (ABS) modeling language (see http://abs-models.org/ for the detailed information). This framework was built to help software developer to adopt ABS for web application engineering. Furthermore, this framework can help software developer separating the business logic, data and presentation layer using Model - View - Controller (MVC) design pattern to make the code cleaner and more reusable.
Like other web application framework, we need a web application server to make our web application accessible in the network. Unfortunately, we cannot use existing web server like Tomcat or Glassfish to run this framework (although we can convert the ABS Code into JAVA Code). Because of this reason, we have been built a light web application (not production ready) to run our web application in the network so that we can access it using our web browser.
Figure 1. ABS Server and ABS MVC Framework Architecture

The Extended Product Selection Language of the ABS

Nowadays, the needs and variations of software increases continuously. There is a concept that aims to produce many variations of a product called Software Product Lines (SPL). The SPL concept is applied to a modeling language called Abstract Behavioral Specification (ABS). The ABS can facilitate the development of many related products from one single code base.
One part of the ABS language is the Product Selection Language (PSL). Using PSL, a product is expressed by a set 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 derived from dozens to hundreds of features, defining the product will be difficult and inefficient.
Therefore, the researcher implements a solution so that ABS developers can develop products by combining other products. These combinations are expressed using product expressions. In this research, the researcher extending the PSL by implementing and testing product expressions in the ABS compiler front-end. In addition, the researcher conducted a case study with a Charity Organization System, which was developed at the RSE Research Lab in the Faculty of Computer Science at Universitas Indonesia.

Keywords:
Software Product Lines (SPL), Abstract Behavioral Specification (ABS), Product Selection Language (PSL), Product Expressions

Documentation and Source Code: https://github.com/abstools/abstools

PRICES ABS

Introduction

In the scheme of software development, modeling phase holds the important role to set a requirement model which is suitable to the user's needs. Any mistakes that occur during this phase will spread into the next phases. Hence, a right way of modeling will help the developers to create a good system. On the other hand, problem arises when there are changes in the requirement and user's needs that will hinder the development of software. To anticipate this, we will use the approach known as delta modeling. This method only records changes which will be done with delta without changing the default system. The delta is configured to be able to modify the core of the existing system.
The workflow of the research can be seen in Figure above. A research done by various universities in Europe which were members of HATS project (Highly Adoptable and Trustworthy Software using Formal Models) created a modeling language with object-oriented and executable approach which is called ABS (Abstract Behavioral Specification). ABS uses delta modeling in order to model various products by defining the needed features. This relatively new approach is not easily applied since softwares nowadays are mostly developed with standard patterns such as UML (Unified Modeling Language). Hence, there has to be a systematic mechanism which is able to map out the design from the old approach to be able to use the new.
Systematics of this change of requirement that is configured with delta modeling can increase the efficiency in software development. As for the quality of the software itself, a further evaluation is needed. The existing theories also need to be embodied in applicable form for common software industry, and this research will also deal with the development of related tools. With that in mind, this research will also give broader contribution and can be used by many software developers.

PRICES ABS

Introduction

In the scheme of software development, modeling phase holds the important role to set a requirement model which is suitable to the user's needs. Any mistakes that occur during this phase will spread into the next phases. Hence, a right way of modeling will help the developers to create a good system. On the other hand, problem arises when there are changes in the requirement and user's needs that will hinder the development of software. To anticipate this, we will use the approach known as delta modeling. This method only records changes which will be done with delta without changing the default system. The delta is configured to be able to modify the core of the existing system.
The workflow of the research can be seen in Figure above. A research done by various universities in Europe which were members of HATS project (Highly Adoptable and Trustworthy Software using Formal Models) created a modeling language with object-oriented and executable approach which is called ABS (Abstract Behavioral Specification). ABS uses delta modeling in order to model various products by defining the needed features. This relatively new approach is not easily applied since softwares nowadays are mostly developed with standard patterns such as UML (Unified Modeling Language). Hence, there has to be a systematic mechanism which is able to map out the design from the old approach to be able to use the new.
Systematics of this change of requirement that is configured with delta modeling can increase the efficiency in software development. As for the quality of the software itself, a further evaluation is needed. The existing theories also need to be embodied in applicable form for common software industry, and this research will also deal with the development of related tools. With that in mind, this research will also give broader contribution and can be used by many software developers.

IFML-based UI Generator

The implementation of business logic and database communication (Back End development) can be handled by generating ABS Microservice Framework. Unfortunately, users are not comfortable communicating directly with the back end of a web application. Thus, it creates the needs of creating a User Interface (UI) that can complement the ABS Microservice Framework. Also, the process of UI development must adhere to the Product-Line Engineering concept and flexible enough in terms of styling and layout.
IFML-based UI Generator created to solve this challenge by using Interaction Flow Modeling Language (IFML) as a basis for designing the UI of the web application. IFML able to design the UI in terms of its abstraction (e.g. the possibility of a button, data that needs to be shown, data flow, and navigation flow). By doing this, software developers can create a collection of UI abstraction based on existing features in the product line. Given a product configuration, IFML-based UI Generator will generate the UI of web application consisted of basic interaction and its layout that can be used alongside microservices web application. Software developers then can refine the generated UI by adding style and layout according to the user's needs.
IFML-based UI generator can be used to generate a Progressive Web Application (PWA) representing the UI of the web application. Software developers can choose whether the PWA will be generated in the Angular or React framework based on their preferences. By doing this, software developers can easily adapt the generated UI based on their technical expertise.