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 Line (SPL). The SPL concept is applied to a modeling language called Abstract Behavioral Specification (ABS). 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 author 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 author extended PSL by implementing and testing product expressions in the ABS compiler front-end. In addition, the author 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
Importance of requirement assurance in product selectionMaveric Systems
This presentation highlights the importance of having well documented requirements in place and highlights the important role of requirements in the various stages of product selection process.
Importance of requirement assurance in product selectionMaveric Systems
This presentation highlights the importance of having well documented requirements in place and highlights the important role of requirements in the various stages of product selection process.
Project Template - Artificial Intelligence and Data ScienceLeaving A Legacy
This free template offers a clear structure, essential components, and helpful guidelines for your thesis. Adapt it to your specific needs and accelerate your documentation work!
Complete mapping with CMMI v1.3 and Agile Scrum practices. Easy interpretation of cmmi practices and how to apply in agile scrum lifecycles. CMMI Development maturity level 3 practices are mapped with agile scrum. Simpler and quick reference guide for practioners.
An Empirical Study of the Improved SPLD Framework using Expert Opinion TechniqueIJEACS
Due to the growing need for high-performance and low-cost software applications and the increasing competitiveness, the industry is under pressure to deliver products with low development cost, reduced delivery time and improved quality. To address these demands, researchers have proposed several development methodologies and frameworks. One of the latest methodologies is software product line (SPL) which utilizes the concepts like reusability and variability to deliver successful products with shorter time-to-market, least development and minimum maintenance cost with a high-quality product. This research paper is a validation of our proposed framework, Improved Software Product Line (ISPL), using Expert Opinion Technique. An extensive survey based on a set of questionnaires on various aspects and sub-processes of the ISPLD Framework was carried. Analysis of the empirical data concludes that ISPL shows significant improvements on several aspects of the contemporary SPL frameworks.
This presentation was given by Andrey Bayda in INCOSE (International Council on Systems Engineering) Russian Chapter in the Essence Information Day held in OMG Technical Meeting in Berlin, Germany on June 20, 2013.
The presentation shows an extension of Essence Kernel for systems engineering and its mapping with ISO 42010.
REDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTSijseajournal
Modern software systems are complex and locating, isolating and fixing a fault even with a failing test is
tedious and time-consuming. Simplifying failing test(s) can significantly reduce the developer effort by
reducing the irrelevant program entities that developers need to observe. Delta Debugging (DD) algorithm
automatically reduces the failing tests. Hierarchical Delta Debugging (HDD) algorithm improves DD for
hierarchical tests like source code and HTML files. Many modern implementations of these algorithms
work on a generic tree-like structure and fail to consider complex structures, intricacies, and
interdependence of program elements of a particular programming language. We propose a tool
ReduSharptor to simplify C# tests that uses language-specific features and interdependence of C# program
elements using Roslyn compiler APIs. We evaluate ReduSharptor on a set of 30 failing C# tests to
demonstrate its applicability and accuracy.
REDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTSijseajournal
Modern software systems are complex and locating, isolating and fixing a fault even with a failing test is
tedious and time-consuming. Simplifying failing test(s) can significantly reduce the developer effort by
reducing the irrelevant program entities that developers need to observe. Delta Debugging (DD) algorithm
automatically reduces the failing tests. Hierarchical Delta Debugging (HDD) algorithm improves DD for
hierarchical tests like source code and HTML files. Many modern implementations of these algorithms
work on a generic tree-like structure and fail to consider complex structures, intricacies, and
interdependence of program elements of a particular programming language. We propose a tool
ReduSharptor to simplify C# tests that uses language-specific features and interdependence of C# program
elements using Roslyn compiler APIs. We evaluate ReduSharptor on a set of 30 failing C# tests to
demonstrate its applicability and accuracy.
Project Template - Artificial Intelligence and Data ScienceLeaving A Legacy
This free template offers a clear structure, essential components, and helpful guidelines for your thesis. Adapt it to your specific needs and accelerate your documentation work!
Complete mapping with CMMI v1.3 and Agile Scrum practices. Easy interpretation of cmmi practices and how to apply in agile scrum lifecycles. CMMI Development maturity level 3 practices are mapped with agile scrum. Simpler and quick reference guide for practioners.
An Empirical Study of the Improved SPLD Framework using Expert Opinion TechniqueIJEACS
Due to the growing need for high-performance and low-cost software applications and the increasing competitiveness, the industry is under pressure to deliver products with low development cost, reduced delivery time and improved quality. To address these demands, researchers have proposed several development methodologies and frameworks. One of the latest methodologies is software product line (SPL) which utilizes the concepts like reusability and variability to deliver successful products with shorter time-to-market, least development and minimum maintenance cost with a high-quality product. This research paper is a validation of our proposed framework, Improved Software Product Line (ISPL), using Expert Opinion Technique. An extensive survey based on a set of questionnaires on various aspects and sub-processes of the ISPLD Framework was carried. Analysis of the empirical data concludes that ISPL shows significant improvements on several aspects of the contemporary SPL frameworks.
This presentation was given by Andrey Bayda in INCOSE (International Council on Systems Engineering) Russian Chapter in the Essence Information Day held in OMG Technical Meeting in Berlin, Germany on June 20, 2013.
The presentation shows an extension of Essence Kernel for systems engineering and its mapping with ISO 42010.
REDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTSijseajournal
Modern software systems are complex and locating, isolating and fixing a fault even with a failing test is
tedious and time-consuming. Simplifying failing test(s) can significantly reduce the developer effort by
reducing the irrelevant program entities that developers need to observe. Delta Debugging (DD) algorithm
automatically reduces the failing tests. Hierarchical Delta Debugging (HDD) algorithm improves DD for
hierarchical tests like source code and HTML files. Many modern implementations of these algorithms
work on a generic tree-like structure and fail to consider complex structures, intricacies, and
interdependence of program elements of a particular programming language. We propose a tool
ReduSharptor to simplify C# tests that uses language-specific features and interdependence of C# program
elements using Roslyn compiler APIs. We evaluate ReduSharptor on a set of 30 failing C# tests to
demonstrate its applicability and accuracy.
REDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTSijseajournal
Modern software systems are complex and locating, isolating and fixing a fault even with a failing test is
tedious and time-consuming. Simplifying failing test(s) can significantly reduce the developer effort by
reducing the irrelevant program entities that developers need to observe. Delta Debugging (DD) algorithm
automatically reduces the failing tests. Hierarchical Delta Debugging (HDD) algorithm improves DD for
hierarchical tests like source code and HTML files. Many modern implementations of these algorithms
work on a generic tree-like structure and fail to consider complex structures, intricacies, and
interdependence of program elements of a particular programming language. We propose a tool
ReduSharptor to simplify C# tests that uses language-specific features and interdependence of C# program
elements using Roslyn compiler APIs. We evaluate ReduSharptor on a set of 30 failing C# tests to
demonstrate its applicability and accuracy.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Extending the Product Selection Language of the Abstract Behavioral Specification (ABS) with Product Expressions
1. January 2016
Extending the Product Selection Language
of the Abstract Behavioral Specification
(ABS) with Product Expressions
By: Triando 1206237265 | Advisor: Dr. Ade Azurat and Dr. Radu Muschevici
Bachelor Thesis
3. 1.
Introduction
1 2 3 4 5 6
●Motivation: Case Study
●Research Questions
●Research Goals, Scope, Limitation and Benefits
4. 1. Introduction 2. 3. 4. 5. 6.
Motivation
Issues
Increase of software demand
Various types of requirements
Software Product Lines (SPL)
Challenges [9]
Minimum effort
Shorter developments of time
Abstract Behavioral Specification (ABS)
Product Selection Language (PSL)
solved by
facilitated by
5. Case Study: Charity Organization System (1/7)
Brief Description
● COS is part of project conducted at RSE Lab Fasilkom UI [4].
● COS is a support system to assist charitable organizations
(e.g., monitoring of charitable activities) [4].
26 Features
Sekolah Bermain
Matahari
PKPU
Ramadhan for
Kids
BeriBuku
generate
five products
Sekolah Bermain
Balon Hijau
1. Introduction 2. 3. 4. 5. 6.
7. Selected Features - Sekolah Bermain Matahari
Charity Organization System (3/7)
1. Introduction 2. 3. 4. 5. 6.
8. Selected Features - PKPU
Charity Organization System (4/7)
1. Introduction 2. 3. 4. 5. 6.
9. Selected Features - Ramadhan for Kids
Charity Organization System (5/7)
1. Introduction 2. 3. 4. 5. 6.
10. Selected Features - BeriBuku
Charity Organization System (6/7)
1. Introduction 2. 3. 4. 5. 6.
11. Selected Features - Sekolah Bermain Balon Hijau
Charity Organization System (7/7)
1. Introduction 2. 3. 4. 5. 6.
12. Problem and Proposed Solution
1. Introduction 2. 3. 4. 5. 6.
Problem
In larger projects, a product can consist of many features from dozens to hundreds.
Consequences
Difficult & inefficient to declare products.
• Repetitive
• Large & confusing
Solution Idea
Declare product based on already
existing product.
Product Expressions
• The products can be derived from
a combination of other products.
• Manage combinations of products
with sets of operations.
13. Research Questions
1. Introduction 2. 3. 4. 5. 6.
How to implement product expressions in the Product
Selection Language (PSL) in the ABS compiler front-end?
1
2 What are the advantages and disadvantages of product
expressions in the PSL of the ABS?
14. Research Goals, Scope and Benefits
1. Introduction 2. 3. 4. 5. 6.
Research Goals The Scope of Research Limitation
1. To extend the PSL with
product expressions.
1. Implementation in the
ABS compiler front-end.
The small size of the case
study is used to validate the
implemented ABS language
extension.
2. To show that product
expressions can be useful
for ABS developers.
2. Analyzing the use of
Charity Organization
System (COS).
Benefits of Research
1. To introduce the extended PSL that can be used to
state products from combination of other products.
2. To contribute the extended PSL to the ongoing
development of ABS.
gives
16. 1. 2. Abstract Behavioral Specification (ABS) 3. 4. 5. 6.
Product Lines Engineering with ABS (1/3)
▷ Product Selection Language (PSL)
▷ Feature Model
▷ Delta Modeling
▷ Product Line Configuration
→ product definitions [10]
→ feature hierarchy [11]
→ deltas implement features [11]
→ configures of product line [11]
Product Lines Engineering
17. 1. 2. Abstract Behavioral Specification (ABS) 3. 4. 5. 6.
Feature Model Product Selection Language (PSL)
the products
stated in
features
described in
Listing 2.2: Account PSL [11]
Figure 2.3: Account - Feature Diagram [11]
Product Lines Engineering
Product Lines Engineering with ABS (2/3)
18. 1. 2. Abstract Behavioral Specification (ABS) 3. 4. 5. 6.
the products
stated in
implement
by
Product Expressions
Product Lines Engineering
Product Selection Language (PSL)
Product Lines Engineering with ABS (3/3)
Example:
● Product P1 has features A, B, C, D.
● Product P2 is P1 without feature B, and additional features E, F.
19. 1. 2. Abstract Behavioral Specification (ABS) 3. 4. 5. 6.
The ABS Compiler Front-end (1/4)
ABS Source
Code
Concrete
Syntax
JastAdd
Listener
Abstract Syntax
Tree (AST)
parses
Figure 3.13: Flow of the Parsing Process
assigns values with
processes to AST and JastAdd
20. 1. 2. Abstract Behavioral Specification (ABS) 3. 4. 5. 6.
implement
by
Product Expressions
Product Selection Language (PSL)
using
technologies
Another Tool for Language Recognition (ANTLR)
Abstract Syntax Tree (AST)
JastAdd
is parser for the compiler [14]
defines class structure for the compiler [12]
adds methods to the classes [12]
The ABS Compiler Front-end (2/4)
21. 1. 2. Abstract Behavioral Specification (ABS) 3. 4. 5. 6.
Another Tool for Language Recognition (ANTLR)
The ABS Compiler Front-end (3/4)
Example of the Choice:
1 = 2
parse
Example of the Sequence:
1,2,3,4,5
parse
Example of the Nested Phrase:
while(expr){
while(expr){...}
}
parse
Listing 2.4: Concrete Syntax - Sequence [14]
Listing 2.5: Concrete Syntax - Choice [14]
Listing 2.6: Concrete Syntax - Nested Phrase [14]
ANTLR is a parser for the compiler [14]
22. 1. 2. Abstract Behavioral Specification (ABS) 3. 4. 5. 6.
Abstract Syntax Tree (AST) and JastAdd
● AST defines class structure for the compiler [12].
● JastAdd adds methods to the classes [12].
Listing 2.7: Abstract Grammar of Tiny.ast [12]
generates
Listing 2.8: Generated Classes from Tiny.ast [12]
Listing 2.9: Add Method run() to Block class
The ABS Compiler Front-end (4/4)
24. 1. 2. 3. Implementation and Testing 4. 5. 6.
Concrete Syntax of Product
Listing 3.17: Example of the PSL
parse
Listing 3.16: Concrete Syntax - Product
Original Product Selection Language (PSL) (1/2)
25. 1. 2. 3. Implementation and Testing 4. 5. 6.
Abstract Grammar of Product
Listing 3.18: Abstract Grammar - Product
Listing 3.20: JastAddListener - Product
Original Product Selection Language (PSL) (2/2)
Listing 3.16: Concrete Syntax - Product
26. 1. 2. 3. Implementation and Testing 4. 5. 6.
Extending the PSL with Product Expressions (1/9)
Operation Usage
Set Intersection operand ‘&&’ operand
Set Union operand ‘||’ operand
Set Difference operand ‘-’ operand
Parenthesis ‘(‘ operand ‘)’
Operation and Operand Product Expressions
Table 3.3: Product Expressions
● Product name
● Set of features
Operand of Product Expressions:
→ e.g., P1
→ e.g., {F1, F2}
Listing 3.21: Example of the Use of the Extended SPL
27. 1. 2. 3. Implementation and Testing 4. 5. 6.
Extending the PSL with Product Expressions (2/9)
Concrete Syntax of Product Expressions
Operation Usage
Set Intersection operand ‘&&’ operand
Set Union operand ‘||’ operand
Set Difference operand ‘-’ operand
Parenthesis ‘(‘ operand ‘)’
Table 3.3: Product Expressions Listing 3.23: New Concrete Syntax - Product Expressions
● Product name
● Set of features
Operand of Product Expressions
28. 1. 2. 3. Implementation and Testing 4. 5. 6.
Extending the PSL with Product Expressions (3/9)
Concrete Syntax of Product Declaration
Listing 3.22: The Extended Concrete Syntax - Product
Listing 3.23: New Concrete Syntax - Product Expressions
So, the PSL accepts:
• Previous syntax with set of features
• New syntax with product expressions
29. 1. 2. 3. Implementation and Testing 4. 5. 6.
Extending the PSL with Product Expressions (4/9)
Abstract Grammar of Product Expressions
Listing 3.23: New Concrete Syntax - Product Expressions
Listing 3.24: Abstract Grammar - Product Expressions
30. 1. 2. 3. Implementation and Testing 4. 5. 6.
Extending the PSL with Product Expressions (5/9)
Abstract Grammar of Product Declaration
Listing 3.25: Abstract Grammar - Product Declaration
Listing 3.24: Abstract Grammar - Product Expressions
31. 1. 2. 3. Implementation and Testing 4. 5. 6.
Extending the PSL with Product Expressions (6/9)
Abstract Grammar of Compilation Unit
Listing 3.25: Abstract Grammar - Product Declaration
Listing 3.26: Abstract Grammar - Compilation Unit
Listing 3.24: Abstract Grammar - Product Expressions
33. 1. 2. 3. Implementation and Testing 4. 5. 6.
Extending the PSL with Product Expressions (8/9)
Evaluation of Product Expressions with JastAdd
ProductDeclaration.jadd
→ Calls evaluation method in Main.javaMain.java
→ Creates an aspect file ProductDeclaration.jadd
→ Creates evaluation method of expressions
used in
34. 1. 2. 3. Implementation and Testing 4. 5. 6.
ProductDeclaration
Test.java
creates 14
unit tests
ProductDeclaration.jadd
run
All unit tests pass
Extending the PSL with Product Expressions (9/9)
Unit Test
The unit tests aim to ensure correct implementation of:
• Original Syntax PSL.
• Extension of product expressions.
36. 1. 2. 3. 4. Case Study 5. 6.
Implementation using the Original PSL
Listing 4.6: The Previous PSL
Sekolah Bermain
Matahari
PKPU
Ramadhan for
Kids
BeriBuku
definition
Sekolah Bermain
Balon Hijau
definition
definition
same definition
definition
37. “Can we define products based on the
combinations of other products?
1. 2. 3. 4. Case Study 5. 6.
Yes, by using product expressions.
38. 1. 2. 3. 4. Case Study 5. 6.
Implementation using the Extended PSL (1/3)
Product Formation
Ramadhan for Kids from Sekolah Bermain Matahari
Sekolah Bermain
Matahari
Ramadhan
for Kids- Removes: Eventual
- Adds: Money, IndividualBeneficiary, District
Using the
Extended
PSL
Using the
Original
PSL
transforms
39. 1. 2. 3. 4. Case Study 5. 6.
Implementation using the Extended PSL (2/3)
Product Formation
PKPU from BeriBuku
- Removes:
Notification, IndividualDonor, Money, Item
- Adds:
Periodic, Continuous, InstitutionDonor, District, Product
BeriBuku PKPU
transforms
Using the
Extended
PSL
Using the
Original
PSL
40. 1. 2. 3. 4. Case Study 5. 6.
Implementation using the Extended PSL (3/3)
Product Formation Sekolah Bermain Balon Hijau from
Sekolah Bermain Matahari
Sekolah Bermain
Balon Hijau
Sekolah Bermain
Matahari
restate all
features
transforms
Using the
Extended
PSL
Using the
Original
PSL
42. 1. 2. 3. 4. 5. Discussion of Results 6.
Result of the Case Study
Sekolah Bermain
Matahari
PKPU
Ramadhan for
Kids
BeriBuku
Sekolah Bermain
Balon Hijau
Results of the extended PSL:
• A product can be derived from combination of other products
• Easier for the ABS developers to state a product with expressions
• The intersection operation wasn’t used in this case study
transforms transforms
43. 1. 2. 3. 4. 5. Discussion of Results 6.
Advantages and Disadvantages of Product Expressions
Advantages
● Shorter syntax
The products can be formed directly by combination of other products.
● Readability faster
The products are derived from other products that have been declared.
● Dependencies
If ABS developers need the dependencies, the expressions already
automatically follow the referenced product.
44. 1. 2. 3. 4. 5. Discussion of Results 6.
Advantages and Disadvantages of Product Expressions
● Dependencies
If ABS developers doesn’t need the dependencies, the product that
states with expressions needs to be restated.
● Complex Expressions
If products are declared with complex expressions, then it becomes
difficult to see what features are included.
● Attribute of Value Ambiguity
Evaluation of set operations does not consider the features attribute.
Disadvantages
45. 6.
Conclusion
1 2 3 4 5 6
●Implementation of Product Expressions
●Evaluation of Product Expressions
●Suggestions for Future Work
46. 1. 2. 3. 4. 5. 6. Conclusion
Conclusion (1/3)
Operation Usage
Set Intersection operand ‘&&’ operand
Set Union operand ‘||’ operand
Set Difference operand ‘-’ operand
Parenthesis ‘(‘ operand ‘)’
Table 3.3: Product Expressions
● Product name
● Set of features
Operand of Product Expressions:
Implementation of Product Expressions
1. Products declared in terms of other products.
2. Product expressions have operations and operands.
Implemented and available as part of ABS Compiler
https://github.com/abstools/abstools
47. 1. 2. 3. 4. 5. 6. Conclusion
Evaluation of Product Expressions
Conclusion (2/3)
1. More concise product declaration using product expressions.
2. Operations were used in case study were union, difference, and
parenthesis.
3. Operation was not used in case study was intersection.
4. The evaluation only used small case study, so it needs for
further evaluation.
48. 1. 2. 3. 4. 5. 6. Conclusion
Suggestions for Future Work
Conclusion (3/3)
1. The evaluation mechanism for the attributes
included in features.
2. The bigger case studies to evaluate usability of
extended PSL.
49. 1. Beribuku. http://www.beribuku.com/. [Online; accessed 1-December-2015].
2. Is4charity. https://gitlab.com/IS4Charity/FeatureDiagram/tree/master/COS. [Online; accessed 1-
December-2015].
3. Pkpu. http://www.pkpu.org/. [Online; accessed 1-December-2015].
4. Prices abs. http://rse.cs.ui.ac.id/?open=prices/index. [Online; accessed 10- December-2015].
5. Ramadhan for kids. http://ramadhanforkids.com/. [Online; accessed 1- December-2015].
6. Reference manual for jastadd2. http://jastadd.org/web/documentation/reference-manual.php. [Online;
accessed 1-November-2015].
7. Sekolah bermain balon hijau. http://sbbalonhijau.tumblr.com/. [Online; accessed 1-December-2015].
8. Sekolah bermain matahari. http://sbmatahari.tumblr.com/. [Online; accessed 1-December-2015].
9. S. Apel, D. Batory, C. Kastner, and G. Saake. Feature-Oriented Software Product Lines. Springer, 2013.
10. D. Clarke, R. Muschevici, J. Proença, I. Schaefer, and R. Schlatte. Variability modelling in the abs language. In
International Symposium on Formal Methods for Components and Objects, B. Aichernig, F. S. de Boer, and
M. M. Bonsangue, Eds., vol. 6957 of LNCS, 2011.
11. R. Hähnle. The abstract behavioral specification language: A tutorial introduction. In Formal Methods for
Components and Objects, E. Giachino, R. Hähnle, F. Boer, and M. Bonsangue, Eds., vol. 7866 of LNCS, 2013.
12. G. Hedin and E. Magnusson. Jastadd-an aspect-oriented compiler construction system. In Special Issue on
Language Descriptions, Tools and Applications (L DTA’01), 2003.
13. C. Horstmann. Big Java 4th edition. JOHN WILEY and SONS, INC, 2010.
14. [T. Parr. The Definitive ANTLR 4 Reference. The Pragmatic Bookshelf, 2013.
15. P. Y. H. Wong, E. Albert, R. Muschevici, J. Proença, J. Schäfer, and R. Schlatte. The abs tool suite: modelling,
executing and analysing distributed adaptable object-oriented systems. In International Symposium on
Formal Methods for Components and Objects, B. Aichernig, F. S. de Boer, and M. M. Bonsangue, Eds., vol.
6957 of LNCS, 2011.
Bibliography
50. 1. Ellyza Marthadicta Noor Rachma who helped to modify design, color,
and style of the slides.
2. Antonio Presentation Template. Link:
http://www.slidescarnival.com/antonio-free-presentation-template/84
3. Logo Fakultas Ilmu Komputer Univesitas Indonesia. Link:
http://www.cs.ui.ac.id/id/wp-content/themes/csui/img/logo-ui.png
Credits
Assalamu'alaikum warahmatullahi wabarakatuh.
Good morning, the honorable examiners, Ibu. Siti Aminah and Bp. Petrus Mursanto,
Subsequently, good morning the respectable advisors, Bp. Ade Azurat and Mr. Radu Muschevici.
Let me introduce my self, my name is Triando.
In this occasion, i am going to present the results of my bachelor thesis entitled “Extending the Product Selection Language of the Abstract Behavioral Specification (ABS) with Product Expressions”.
As you can see on the screen, this is my presentation outline which i will present.
The first part, i will deliver the introduction.
Then, it will be followed by a brief review about the ABS.
In the next section, it will be presented on the implementation, testing, case study, discussion of results and conclusion.
In the introduction,
First, i will explain the background underlying of this research.
In the history of software development,
there is an increase of software demand with many requirement varieties.
In the other hand,
there are some challenges to provide software with minimum effort and shorter development time.
This problem can be solved by the concept of Software Product Lines (SPL).
SPL is a concept to develop a product with commonality and variability.
There is a language that supports the development of the SPL called Abstract Behavioral Specification (ABS).
ABS is a software modeling language that supports modeling features, object oriented and reuses software system.
One part of the ABS is the Product Selection Language (PSL) used to define the products.
The PSL can be used to develop software with producing many product variations.
In this research,
I have done a case study on the Charity Organization System.
This system is a part of project conducted in RSE research Lab Fasilkom UI.
One example of the use of this system is to monitor the activities of charities.
There are 26 features used to produce five varieties of products which are Sekolah Bermain Matahari, PKPU, Ramadhan for Kids, BeriBuku and Sekolah Bermain Balon Hijau.
Based on the screen, this is a representation of the relationship among features.
There are 26 features that consist of mandatory feature such as Program.
In addition, there are optional features such as Donation marked with a white circle and some relationships to other features.
These are the selected features of Sekolah Bermain Matahari highlighted with yellow.
These are the selected features of PKPU.
These are the selected features of Ramadhan for Kids.
These are the selected features of BeriBuku.
These are the selected features of Sekolah Bermain Balon Hijau.
Among the features wanted by every organizataion have similarity to one another.
By using the PSL, five products can produced from a set of features.
Hence, we do not need to repeatedly make the same product from beginning.
However, each product definition on the PSL should be stated one by one.
In larger projects,
a product can consist of many features from dozens to hundreds.
It causes that the defining of product becomes difficult and inefficient.
Therefore,
abstraction is required to define product based on the existing products.
Thus, the product can be obtained from the combination of other products and the combination among products can be managed using the sets of operations.
Based on the background, there are research questions that have been answered in this research.
First, how to implement product expressions in the Product Selection Language (PSL) in the ABS compiler front-end?
Second, what are the advantages and disadvantages of product expressions in the PSL of the ABS?
Furthermore,
There is an explanation of the goals, scope, limitation and benefits of this research.
First, this research aims to extend the PSL with product expressions and implement in the ABS compiler front-end.
Second, this research aims to show that product expressions can be useful for ABS developers analyzed by Charity Organization System (COS).
There is a limitation that is the small size of the case study to validate the implementation.
Based on aforementioned aims,
the extended PSL can be used to state products with the combination of other products. Then, it can contribute to the ongoing development of ABS.
In this ABS part,
First, i will explain about Product Lines Engineering with ABS.
In the ABS,
There is a layer language called Product Lines Engineering Language.
First, the PSL is used to define the desired products.
Second, the Feature Model is used to define the hirarchy of features.
Third, the Delta Modeling is used to model implemented deltas on the features.
Fourth, the Product Line Configuration is used to define configurations of the product line itself.
For example,
In the Feature Model, there is a hierarchy of features that can be selected which is Account product line.
There are mandatory features like Type and optional features like Overdraft and Fee.
Based on the features,
There are product varieties that can be produced as follows.
For example, the product CheckingAccount has features Type and Check, and the product AccountWithFee has features Type, Check and Fee.
Based on the background that explained in the introduction, the product expressions implemented on PSL so the definition of product can be stated based on the combination of other products.
For example,
Product P1 has features A, B, C, D.
By using product expression, we can make product P2 obtained from P1 without feature B and addtional features E, F.
Subsequently,
I will explain about ABS compiler front-end.
This is the flow of the parsing process of compiler.
First, the ABS source code is parsed based on concrete syntax.
Next, the values from concrete syntax are assigned with JastAddListener.
Then, the value is processed by AST and JastAdd.
To implement product expressions in the PSL,
the technology used are as follows:
- Another Tool for Language Recognition is used as a parser for the compiler.
- Abstract Syntax Tree which is defined as the class structure for the compiler.
- JastAdd is used to add method to the classes.
This is an example of using patterns on ANTLR.
The pattern used in this research are sequence, choice and nested phrase.
- To process a sequence from integer with coma separator,
The syntax is used can be seen as follows.
There are comma separator and asteriks which mean repetition of an integer.
- To process choice,
The syntax is used as follows.
There are several options that can be used, the example is id = id.
- To process the nested phrase from while loop,
The syntax is used as follows.
There is a string matching “while” followed by brackets that processes syntax recursively.
Furthermore,
These are the example of the use of AST and JastAdd.
There is abstract grammar with the definition of Program class that contains the attribute Block.
Abstract grammar generates class with minimal functionality.
After that, the JastAdd can be used to add method such as run() in the Program class.
On the implementation and testing,
First, I will discuss about the original PSL.
For example,
There is the definition of product represented by a set of features.
To process these definitions, there are concrete syntax of the product.
This syntax processes with the prefix "product", followed by the product name and a set of features stated in this part.
After syntax processes the definition of product,
The JastAddListener assigns the values on the corresponding abstract grammar.
The product name is processed by this part and is assigned on token Name.
A set of features is processed by this part and is assigned on the List of Features.
Furthermore,
I will discuss about extending PSL with product expressions.
To manage the combination among the product, it is required operation and operand.
The operands used are the product name and a set of features.
For example, the product name is P1 and the set of features {F1, F2}.
The operations used are :
set intersection with the notation &&,
union with the notation ||,
difference with the notation -,
and parenthesis.
For example, the operation processes syntax like this.
Next,
Concrete syntax is required to implement the operator and operand.
This is a concrete syntax which is used,
Set intersection is processed with this syntax, using notations ANDAND.
Set union is processed with this syntax, using notations OROR.
Set difference is processed with this syntax, using notations MINUS.
Parenthesis is processed by the prefix and suffix parenthesis.
Product name is processed with this syntax, using TYPE_IDENTIFIER.
Set of features is processed with this syntax, using the prefix and suffix curly brackets.
After that,
Syntax from product expressions is associated with the original syntax.
So that, the PSL accepts the original syntax with a set of features and new syntax of product expressions.
After the syntax is created, abstract grammar is required.
A set of features is associated with ProductFeatureSet.
Set intersection is associated with ProductIntersect.
Set union is associated with ProductUnion.
Set difference is associated with ProductDifference.
Product name is associated with ProductName.
After that,
abstract grammar of the product expressions is stored as an attribute in the Product Declaration.
After that,
abstract grammar of Product Declaration is stored as a list on CompilationUnit.
After that,
concrete syntax is associated with the JastAdd Listener to the abstract grammar.
New listeners are created for the product expressions.
Original listeners are modified to the Product Declaration and Compilation Unit.
After the syntax, grammar, and listener have been made,
Methods need to be made to process the product expressions.
First, create an aspect file for adding method on the ProductDeclaration.jadd.
Second, create a method for the evaluation of the expression.
After that, the evaluation method is used in the Main.java.
Furthermore, the unit tests were created to ensure the correctness from the implementation of PSL dealing with original syntax and the addition of product expressions.
It is created 14 unit tests in a file ProdutDeclarationTest.java.
After that, the unit tests are run.
The results obtained that are all the unit tests passed.
In the case study,
First, I will describe the implementation using Original PSL.
The five organizations have the product definition as follows.
Each product definition is defined by a set of features and is stated one by one.
One of the example,
Sekolah Bermain Matahari has features Periodic, eventual, Notification, Blog, IndividualDonor, Expense and Income.
Therefore, can we define products based on the combinations of other products?
Yes, by using product expressions.
Next, I will explain the implementation of the extended PSL.
First,
Sekolah Bermain Matahari has a product definition with the original PSL.
To form the product of Ramadhan for Kids, the expression used is to eliminate feature eventual and add features Money, IndividualBeneficiary, and District.
This is the definition of product using the extended PSL and this is the definition of the original PSL.
Second,
BeriBuku has a product definition with the original PSL.
To form the product of PKPU, the expression used is to eliminate features Notification, IndividualDonor, Money, items and add features Periodic, Continuous, InstitutionDonor, District and Product.
This is the definition of product using the extended PSL and this is the definition of the original PSL.
Third,
Sekolah Bermain Matahari has the product definition with the original PSL.
To form product Sekolah Bermain Balon Hijau, the expression used is equals.
This is the definition of product using the extended PSL and this is the definition of the original PSL.
In the discussion of results,
First, I will discuss the results from the case study.
Based on case study that has been described previously,
The results obtained are,
First, a product can be obtained from a combination of other products.
Second, the ABS developers can stated product easily with expressions.
Third, the intersection operation was not used in this case study.
Furthermore,
I will explain the advantages and disadvantages of the product expressions.
The advantages are as follows,
First, the syntax becomes shorter because the products can be formed directly using the combination of other products.
Second, the syntax can be read more quickly because the products obtained from existing products.
Third, if the ABS developer requires dependencies, the expression already automatically follow the referenced products.
Furthermore, the disadvantages are as follows,
First, if the ABS developer does not require dependencies, the products which are expressed by the product expressions need to be restated.
Second, if a product is declared by a complex expression, it will be difficult to see what features is resulted from the expression.
Third, the evaluation from sets of operations does not consider the attributes on features, so it causes the ambiguous results.
At the conclusion part,
I will explain conclusion regarding with the implementation of the product expressions.
First, the results of the implementation of the product expressions indicate that the product can be expressed by the combination of other products.
Second, the product expressions have operations and operands that can be used as intersection, union, difference, parenthesis, product name, and a set of features.
The results of the implemeted product expressions are available as part of the ABS Compiler and can be accessed at the following URL.
Furthermore, the conclusion of the evaluation are as follows,
First, the declaration of the products becomes more concisely using product expressions.
Second, the operations used in case study were union, difference and parenthesis.
Third, the operations that was not used in the case study was intersection.
Fourth, the evaluation is done only using a small case study, so it needs further evaluation to see the entire results.
Furthermore, suggestions for future work are described as follows,
First, it needs the attributes evaluation mechanisms among features.
Secondly, it needs bigger case studies to evaluate the usability of extended PSL.
This is a list of references of report.
Then, this is a list of credits of presentation.
Thank you for your attention,
The next session is the question and answer.