Precise Requirement Change
Integrated System (PRICES) is a framework for developing web-based software product lines. This framework is designed
by combining model driven software engineering (MDSE) and software product line engineering (SPLE).
MDSE enhances the benefits of modeling through automated code generation and SPLE supports systematic variability management.
PRICES is supported with a toolkit comprises various tools, as shown in the following figure.
The tools can be categorized into diagram editors, model transformation tools, and web development frameworks.
The model transformation tools aid in modeling the problem domain and facilitate the transformation
process into the solution domain. On the other hand, the web development tools and frameworks
are designed to support the development of web-based software product lines.
PRICES is designed on top Abstract Behavioral Specification (ABS) language. 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.
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.
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.
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.
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.
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.
Repository:
ABS Microservices Framework
ABS Microservice Framework is built to facilitate Product-Line based Web Applications that adhere to the microservices concept. The goal is to create a framework to develop high-quality and maintainable microservices web applications effectively. This framework extends Abstract Behavioral Specification (ABS) to be used for developing microservices web applications.
In the ABS SPLE process, software developers perform modeling for the microservices web application using ABS modeling language. ABS SPLE process is able to generate microservices web application that corresponds to selected features. The middleware becomes an interface to enable communication between external systems and generated microservices. External system enforced to use standard HTTP Request and receiving a data in JSON-format as its response.
An xample of ABS microservices implementation for Charity Organization System is available here:
a href="hhttps://gitlab.com/RSE-Lab-Fasilkom-UI/prices-2/case-study/aisco-abs-microservices/" class="mr-3">