SlideShare a Scribd company logo
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
Outline
Introduction1
2
3
4
5
6 Conclusion
Abstract Behavioral Specification (ABS)
Implementation and Testing
Case Study
Discussion of Results
1.
Introduction
1 2 3 4 5 6
●Motivation: Case Study
●Research Questions
●Research Goals, Scope, Limitation and Benefits
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
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.
Feature Diagram
Figure 4.1: Charity Organization System - Feature Diagram
Charity Organization System (2/7)
1. Introduction 2. 3. 4. 5. 6.
Selected Features - Sekolah Bermain Matahari
Charity Organization System (3/7)
1. Introduction 2. 3. 4. 5. 6.
Selected Features - PKPU
Charity Organization System (4/7)
1. Introduction 2. 3. 4. 5. 6.
Selected Features - Ramadhan for Kids
Charity Organization System (5/7)
1. Introduction 2. 3. 4. 5. 6.
Selected Features - BeriBuku
Charity Organization System (6/7)
1. Introduction 2. 3. 4. 5. 6.
Selected Features - Sekolah Bermain Balon Hijau
Charity Organization System (7/7)
1. Introduction 2. 3. 4. 5. 6.
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.
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?
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
●Product Lines Engineering with ABS
●The ABS Compiler Front-end
1 2 3 4 5 6
2.
Abstract Behavioral Specification (ABS)
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
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)
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.
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
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)
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]
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)
3.
Implementation and Testing
●Original Product Selection Language (PSL)
●Extending the PSL with Product Expressions
1 2 3 4 5 6
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)
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
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
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
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
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
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
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
1. 2. 3. Implementation and Testing 4. 5. 6.
Extending the PSL with Product Expressions (7/9)
JastAdd Listener
Abstract Grammar -
Product Expressions
Abstract Grammar -
Product Declaration
Abstract Grammar -
Compilation Unit
JastAddListener.java
modify
Concrete Syntax -
Product Expressions
Concrete Syntax -
Product Declaration
Concrete Syntax -
Compilation Unit
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
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.
4.
Case Study
●Implementation using the Original PSL
●Implementation using the Extended PSL
1 2 3 4 5 6
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
“Can we define products based on the
combinations of other products?
1. 2. 3. 4. Case Study 5. 6.
Yes, by using product expressions.
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
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
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
5.
Discussion of Results
●Results of the Case Study
●Advantages and Disadvantages of Product Expressions
1 2 3 4 5 6
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
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.
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
6.
Conclusion
1 2 3 4 5 6
●Implementation of Product Expressions
●Evaluation of Product Expressions
●Suggestions for Future Work
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
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.
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.
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
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
Thanks
Triando
1206237265
triando21@ui.ac.id
Questions & Answers

More Related Content

Similar to Extending the Product Selection Language of the Abstract Behavioral Specification (ABS) with Product Expressions

Project Template - Artificial Intelligence and Data Science
Project Template - Artificial Intelligence and Data ScienceProject Template - Artificial Intelligence and Data Science
Project Template - Artificial Intelligence and Data Science
Leaving A Legacy
 
CMMI Agile Mapping
CMMI Agile MappingCMMI Agile Mapping
CMMI Agile Mapping
Vishnuvarthanan Moorthy
 
An Empirical Study of the Improved SPLD Framework using Expert Opinion Technique
An Empirical Study of the Improved SPLD Framework using Expert Opinion TechniqueAn Empirical Study of the Improved SPLD Framework using Expert Opinion Technique
An Empirical Study of the Improved SPLD Framework using Expert Opinion Technique
IJEACS
 
30500932 ictl-form-two-yearly-plan-rancangan-tahunan-ictl-ting-2
30500932 ictl-form-two-yearly-plan-rancangan-tahunan-ictl-ting-230500932 ictl-form-two-yearly-plan-rancangan-tahunan-ictl-ting-2
30500932 ictl-form-two-yearly-plan-rancangan-tahunan-ictl-ting-2
Farid Yusof
 
Core tools apqp, ppap, fmea, spc and msa
Core tools   apqp, ppap, fmea, spc and msa Core tools   apqp, ppap, fmea, spc and msa
Core tools apqp, ppap, fmea, spc and msa
Mouhcine Nahal
 
software testing unit 3 notes anna university 2017
software testing unit 3 notes anna university 2017software testing unit 3 notes anna university 2017
software testing unit 3 notes anna university 2017
SathyaP56
 
Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara
Kunskapsbaren 2011 Linköping - Att produktifiera mjukvaraKunskapsbaren 2011 Linköping - Att produktifiera mjukvara
Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara
HiQInternational
 
Essence syseng omg_20jun13_v4.1
Essence syseng omg_20jun13_v4.1Essence syseng omg_20jun13_v4.1
Essence syseng omg_20jun13_v4.1Andrey Bayda
 
Essence for Systems Engineering
Essence for Systems EngineeringEssence for Systems Engineering
REDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTS
REDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTSREDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTS
REDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTS
ijseajournal
 
REDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTS
REDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTSREDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTS
REDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTS
ijseajournal
 
Track g semiconductor test program - testinsight
Track g  semiconductor test program - testinsightTrack g  semiconductor test program - testinsight
Track g semiconductor test program - testinsightchiportal
 
ISTQB, ISEB Lecture Notes- 2
ISTQB, ISEB Lecture Notes- 2ISTQB, ISEB Lecture Notes- 2
ISTQB, ISEB Lecture Notes- 2
onsoftwaretest
 
Test plan on iit website
Test plan on iit websiteTest plan on iit website
Test plan on iit website
Samsuddoha Sams
 
Hunt On The White Rabbit 10 A Eng
Hunt On The White Rabbit 10 A EngHunt On The White Rabbit 10 A Eng
Hunt On The White Rabbit 10 A Eng
Andrew Issaenko
 
ISTQBCH2.ppt
ISTQBCH2.pptISTQBCH2.ppt
ISTQBCH2.ppt
RppsKumar1
 
ISTQBCH2.ppt
ISTQBCH2.pptISTQBCH2.ppt
ISTQBCH2.ppt
ghkadous
 
ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2Yogindernath Gupta
 

Similar to Extending the Product Selection Language of the Abstract Behavioral Specification (ABS) with Product Expressions (20)

Project Template - Artificial Intelligence and Data Science
Project Template - Artificial Intelligence and Data ScienceProject Template - Artificial Intelligence and Data Science
Project Template - Artificial Intelligence and Data Science
 
CMMI Agile Mapping
CMMI Agile MappingCMMI Agile Mapping
CMMI Agile Mapping
 
Istqb ctal tm
Istqb ctal tmIstqb ctal tm
Istqb ctal tm
 
An Empirical Study of the Improved SPLD Framework using Expert Opinion Technique
An Empirical Study of the Improved SPLD Framework using Expert Opinion TechniqueAn Empirical Study of the Improved SPLD Framework using Expert Opinion Technique
An Empirical Study of the Improved SPLD Framework using Expert Opinion Technique
 
30500932 ictl-form-two-yearly-plan-rancangan-tahunan-ictl-ting-2
30500932 ictl-form-two-yearly-plan-rancangan-tahunan-ictl-ting-230500932 ictl-form-two-yearly-plan-rancangan-tahunan-ictl-ting-2
30500932 ictl-form-two-yearly-plan-rancangan-tahunan-ictl-ting-2
 
Core tools apqp, ppap, fmea, spc and msa
Core tools   apqp, ppap, fmea, spc and msa Core tools   apqp, ppap, fmea, spc and msa
Core tools apqp, ppap, fmea, spc and msa
 
software testing unit 3 notes anna university 2017
software testing unit 3 notes anna university 2017software testing unit 3 notes anna university 2017
software testing unit 3 notes anna university 2017
 
Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara
Kunskapsbaren 2011 Linköping - Att produktifiera mjukvaraKunskapsbaren 2011 Linköping - Att produktifiera mjukvara
Kunskapsbaren 2011 Linköping - Att produktifiera mjukvara
 
Essence syseng omg_20jun13_v4.1
Essence syseng omg_20jun13_v4.1Essence syseng omg_20jun13_v4.1
Essence syseng omg_20jun13_v4.1
 
Essence for Systems Engineering
Essence for Systems EngineeringEssence for Systems Engineering
Essence for Systems Engineering
 
Testplan
TestplanTestplan
Testplan
 
REDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTS
REDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTSREDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTS
REDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTS
 
REDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTS
REDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTSREDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTS
REDUSHARPTOR: A TOOL TO SIMPLIFY DEVELOPER-WRITTEN C# UNIT TESTS
 
Track g semiconductor test program - testinsight
Track g  semiconductor test program - testinsightTrack g  semiconductor test program - testinsight
Track g semiconductor test program - testinsight
 
ISTQB, ISEB Lecture Notes- 2
ISTQB, ISEB Lecture Notes- 2ISTQB, ISEB Lecture Notes- 2
ISTQB, ISEB Lecture Notes- 2
 
Test plan on iit website
Test plan on iit websiteTest plan on iit website
Test plan on iit website
 
Hunt On The White Rabbit 10 A Eng
Hunt On The White Rabbit 10 A EngHunt On The White Rabbit 10 A Eng
Hunt On The White Rabbit 10 A Eng
 
ISTQBCH2.ppt
ISTQBCH2.pptISTQBCH2.ppt
ISTQBCH2.ppt
 
ISTQBCH2.ppt
ISTQBCH2.pptISTQBCH2.ppt
ISTQBCH2.ppt
 
ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2
 

Recently uploaded

2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 

Recently uploaded (20)

2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
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
  • 2. Outline Introduction1 2 3 4 5 6 Conclusion Abstract Behavioral Specification (ABS) Implementation and Testing Case Study Discussion of Results
  • 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.
  • 6. Feature Diagram Figure 4.1: Charity Organization System - Feature Diagram Charity Organization System (2/7) 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
  • 15. ●Product Lines Engineering with ABS ●The ABS Compiler Front-end 1 2 3 4 5 6 2. Abstract Behavioral Specification (ABS)
  • 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)
  • 23. 3. Implementation and Testing ●Original Product Selection Language (PSL) ●Extending the PSL with Product Expressions 1 2 3 4 5 6
  • 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
  • 32. 1. 2. 3. Implementation and Testing 4. 5. 6. Extending the PSL with Product Expressions (7/9) JastAdd Listener Abstract Grammar - Product Expressions Abstract Grammar - Product Declaration Abstract Grammar - Compilation Unit JastAddListener.java modify Concrete Syntax - Product Expressions Concrete Syntax - Product Declaration Concrete Syntax - Compilation Unit
  • 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.
  • 35. 4. Case Study ●Implementation using the Original PSL ●Implementation using the Extended PSL 1 2 3 4 5 6
  • 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
  • 41. 5. Discussion of Results ●Results of the Case Study ●Advantages and Disadvantages of Product Expressions 1 2 3 4 5 6
  • 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

Editor's Notes

  1. 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”.
  2. 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.
  3. In the introduction, First, i will explain the background underlying of this research.
  4. 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.
  5. 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.
  6. 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.
  7. These are the selected features of Sekolah Bermain Matahari highlighted with yellow.
  8. These are the selected features of PKPU.
  9. These are the selected features of Ramadhan for Kids.
  10. These are the selected features of BeriBuku.
  11. 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.
  12. 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.
  13. 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?
  14. 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.
  15. In this ABS part, First, i will explain about Product Lines Engineering with ABS.
  16. 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.
  17. 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.
  18. 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.
  19. 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.
  20. 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.
  21. 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.
  22. 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.
  23. On the implementation and testing, First, I will discuss about the original PSL.
  24. 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.
  25. 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.
  26. 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.
  27. 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.
  28. 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.
  29. 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.
  30. After that, abstract grammar of the product expressions is stored as an attribute in the Product Declaration.
  31. After that, abstract grammar of Product Declaration is stored as a list on CompilationUnit.
  32. 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.
  33. 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.
  34. 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.
  35. In the case study, First, I will describe the implementation using Original PSL.
  36. 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.
  37. Therefore, can we define products based on the combinations of other products? Yes, by using product expressions.
  38. 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.
  39. 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.
  40. 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.
  41. In the discussion of results, First, I will discuss the results from the case study.
  42. 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.
  43. 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.
  44. 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.
  45. At the conclusion part, I will explain conclusion regarding with the implementation of the product expressions.
  46. 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.
  47. 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.
  48. 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.
  49. This is a list of references of report.
  50. Then, this is a list of credits of presentation.
  51. Thank you for your attention, The next session is the question and answer.