Ing. Jakub Perdek
I am a doctorand focused on reuse in the area of software product lines at the Institute of Informatics, Information Systems and Software Engineering, Faculty of Informatics and Information Technologies, Slovak University of Technology in Bratislava.
I have membership in AdvanSD research group.
Software product lines (dissertation): Annotation based, Aspect oriented, and model driven.
Information retrieval (master thesis): Similarity metrics, LDA, indexing, BIG Data (Hadoop, PIG, Hive), etc.
Machine and Deep learning (bachelor thesis): Their application.
Data structures and algorithms: Experimenting with algorithms applied to different technologies.
Computer Graphics (side): Its use in Web development.
Room:
3.34Telephone:
+421 950 567 469E-mail:
jakub.perdek@stuba.sk / perdek.jakub@gmail.comWeb development:
Cascading styles:
CSS, SCSS, SASSProgramming languages:
Java, AspectJ, C, C++, Python, JavaScript, TypeScript, Php (Laravel)Frameworks:
Django (Python), Laravel (Php/Blade), Angular (TypeScript), Tensorflow (Python), Theano (Python), Node.js - Express (JavaScript)Orchestration and containerization:
Kubernetes, Docker, Docker-ComposeHobbies:
Curving, Reading books, Playing chess, Painting, Playing computer games, Graphics
Introduced software product lines
Stateful code based on handling of changes during interactions with central canvas element.
In its introduction we ensured following capabilities and benefits:
- Complex, stateful products/applications
- Responsiveness
- In one application (without backend if necessary)
- Accessible from everywhere (from the browser)
- High UX possible (known elements, reactive forms, own routing,…)
- Possibility to easily evolve SPL
- Possibility to easily evolve product derivation (aspects do not introduce additional dependency here)
- Reusing proven solutions (resizing canvas (board) during play, rendering algorithms,..)
- Customization of graphic libraries for each specific case
Environments from the domain:
During its introduction we ensured following capabilities and benefits:
- Creation of texture for 3D objects from 2D designed canvas
- Text creation and formatting
- Loading various images including vector and raster graphics to design texture
- Basic operations with objects: moving, skewing, rotating, removing, resizing
- Synchronization with 3D canvas - every move
- Managing groups of objects
- Saving current desing - canvas state
- Incorporating color pallete
- Exporting resulting designed objects in various formats including OBJ and GLTF
- Managing settings on 3D canvas: lights, shadows, background

Preview:

Feature model:

During its introduction we ensured following capabilities and benefits:
- Loading particular image that should be set up
- Incorporating custom puzzle rendering algorithm
- Creation of each puzzles as separate image
- Disabling possibility to deform, remove, or resize particular puzzle
- Incorporation of puzzle shuffling and rotation
- Preparing responsive puzzle board with information about position of each puzzle
- Added hint to show position of particular puzzle on the board
- Added posibility to move puzzle under or behind puzzles
- Incorporation of zooming
- Supporting application with rendering of various puzzle types

Preview:

Feature model:

Stateful code based on handling of changes during interactions with central canvas element.
In its introduction we ensured following capabilities and benefits:
- Multiple format representations (vector, raster, text)
- No third party dependencies - easy to execute code and get values from the execution
- Lot of recursion and reuse - code that is executed repeatedly
- Accessible from everywhere (from the browser)
- Variability reaches a “high degree” – almost everything is variability
- Many generated samples
- For evaluation purposes of variability management
- Performing automated evolution based on structural information
- Creation of product line dataset with multiple representations of fractal product families
Multiple implemetations of the following fractals (different codebase):





Publications
Lightweight Aspect-Oriented Software Product Lines with Automated Product Derivation
ABELLÓ, Alberto; VASSILIADIS, Panos; ROMERO, Oscar; WREMBEL, Robert; BUGIOTTI, Francesca; GAMPER, Johann; VARGAS SOLAR, Genoveva; ZUMPANO, Ester. New Trends in Databases and Information Systems, ADBIS 2023 Short Papers, Doctoral Consortium and Workshops: AIDMA, DOING, K-Gals, MADEISD, PeRS, Barcelona, Spain, September 4–7, 2023, Proceedings. Cham: Springer, 2023. ISBN 978-3-031-42940-8
Details
Keywords:
Software product lines, Feature models, Aspect oriented programming, Lightweight method, AutomationAbstract:
Aspect-oriented software product lines are not a new idea, but their application is facing two obstacles: establishing software product lines is challenging and aspect-oriented programming is not that widely accepted. In this paper, we address exactly these two obstacles by an approach to establishing lightweight aspect-oriented software product lines with automated product derivation. This is particularly relevant for data preprocessing systems, which are typically custom-built with respect to the data and its structure. They may involve data cleaning, reduction, profiling, validation, etc., which may have variant implementations and may be composed in different settings. The approach is simple and accessible because developers decide about variation points directly in the code without any assumption on development process and applied management. Also, it allows for variability management by making the code readable, configurable, and adaptable mainly to scripts and code fragments in a modular and concise way. The use of annotations helps preserve feature models in code. We presented the approach on the battleship game and data preprocessing pipeline product lines, which include the configuration of features, product derivation mechanism based on annotations applied by the user on certain classes and methods, implementation of features according to the feature model, and the possibility to generate all given software product derivations.Modal title
Matrix Based Approach to Structural and Semantic Analysis Supporting Software Product Line Evolution
BUDIMAC, Zoran; VRANIĆ, Valentino; LANG, Ján. SQAMIA 2023: Software Quality Analysis, Monitoring, Improvement, and Applications 2023. Bratislava: Slovenská technická univerzita v Bratislave, 2023.
Details
Keywords:
Feature modeling, Feature trees, Matrix clustering, Hierarchical clustering, Graph comparisonAbstract:
The evolution of product families is complex due to the exponential growth of new products with a modified codebase. It is caused by the introduction of new such important or restrictive features that allow transforming an existing solution into a new product as the basis for another one. Specifically, both the structure of resulting components and semantic information need to be taken into account to provide in-depth supporting materials by capturing feature interactions and their capabilities. Additionally, data from heterogeneous applications usually differ and their handling needs account for different scoring. We tackled these problems by creating various supporting views based on structural and semantic information. Related applications are modeled as graphs, also instances of their components are optionally included, and various matrix based algorithms based on similarity metrics are integrated. The final integrated and automated approach is efficient because it runs in polynomial time, is extensively focused on dependencies/connections between nodes, can be adapted to big data, and is extendable and enhanced to support different metrics. Its capability to organize analyzed parts into hierarchies by applying hierarchic clustering helps to specify the context to support comprehension or find a related position of features based on their interaction, especially their coupling. With regards to possible design issues, each updated product should be checked by an expert or more autonomously against performed predictions, especially its complexity and coupling between components. Additionally, extendability can be measured from the chosen sequence of such updates. An approach including an automated matrix based feature recognition process is presented in the analysis of modular Angular applications. Our future work will be more focused on semantic enhancements, and its applications on big data by generating and analyzing various types of fractals including extracted knowledge from them.Modal title
Complexity of In-Code Variability: Emergence of Detachable Decorators
Perdek, Jakub, and Valentino, Vranić. "Complexity of In-Code Variability: Emergence of Detachable Decorators." . In Reuse and Software Quality (pp. 51–71). Springer Nature Switzerland, 2024.
Details
Keywords:
Code complexity, Software product lines, Variability management, Decorators, Variability configuration, Comparative analysisAbstract:
The evolution of product families is complex due to the exponential growth of new products with a modified codebase. It is caused by the introduction of new such important or restrictive features that allow transforming an existing solution into a new product as the basis for another one. Specifically, both the structure of resulting components and semantic information need to be taken into account to provide in-depth supporting materials by capturing feature interactions and their capabilities. Additionally, data from heterogeneous applications usually differ and their handling needs account for different scoring. We tackled these problems by creating various supporting views based on structural and semantic information. Related applications are modeled as graphs, also instances of their components are optionally included, and various matrix based algorithms based on similarity metrics are integrated. The final integrated and automated approach is efficient because it runs in polynomial time, is extensively focused on dependencies/connections between nodes, can be adapted to big data, and is extendable and enhanced to support different metrics. Its capability to organize analyzed parts into hierarchies by applying hierarchic clustering helps to specify the context to support comprehension or find a related position of features based on their interaction, especially their coupling. With regards to possible design issues, each updated product should be checked by an expert or more autonomously against performed predictions, especially its complexity and coupling between components. Additionally, extendability can be measured from the chosen sequence of such updates. An approach including an automated matrix based feature recognition process is presented in the analysis of modular Angular applications. Our future work will be more focused on semantic enhancements, and its applications on big data by generating and analyzing various types of fractals including extracted knowledge from them.Modal title
Fully Automated Software Product Line Evolution With Diverse Artifacts
J. Perdek and V. Vranić, "Fully Automated Software Product Line Evolution With Diverse Artifacts," in IEEE Access, vol. 13, pp. 27325-27358, 2025, doi: 10.1109/ACCESS.2025.3539868
Details
Keywords:
Aspect-oriented, Configuration expressions, Knowledge-driven, Software product line evolution, Variability modelingAbstract:
Existing approaches in software product lines usually neglect knowledge modeling and simulation of the interaction between features capable of bringing dynamism and automation. Consequently, these solutions miss opportunities to resolve associated and emerging problems, including defect detection or quality assurance, which can be solved by effectively extracting and utilizing knowledge from data based on the differences between variants. We bring capabilities to seize them in introducing a fully automated and minimalistic approach to software product line evolution that strictly focuses on handling variability at low-level code fragments. It incorporates the autonomous modeling of emerging knowledge across preconfigured simulations. Specifically, fully automated knowledge-driven software product line evolution provides various views on an existing software product line, its variants, and their evolution through semantic and structural information accompanied by the time and order of the performed changes. We initially developed our approach for software product line evolution, followed by its successful application to the evolution of fractal scripts. We present it accordingly. Fractal products are much simpler because an application state does not span out of recursive behavior, making it manageable within the drawing. Each change is propagated into repetitive phases, causing the visual performance of the implemented feature to be infinitely detailed. Even minor changes in low code fragments tend to manifest as user-visible features owing to recursive behavior, allowing one to massively introduce new features and/or configure existing features and manage variability observable as infinitely detailed shapes. Future applications propose automated observation of more comprehensive in-code representation of feature trees.Modal title
Supervised Theses
Master's theses
Efektívne využitie transformácií v tvorbe softvérových výrobkov riadenej konfiguráciou modelov vlastností
Effective Use of Transformations in Software Product Creation Driven by Feature Model Configuration
Bc. Langová, Anetta
20203/2024
Keywords:
Modelovanie, Formalizovanie, Prístup založený na transformáciách, Rady softvérových výrobkovAbstract:
Modelovanie vlastností umožňuje abstraktným spôsobom vystihnúť podstatu radov softvérových výrobkov a riadiť konfigurovanie jednotlivých výrobkov. Ukazuje sa, že sa na vlastnosti dá pozerať ako na transformácie kódu. Tvorba transformácií však nie je jednoduchá. Analyzujte prístupy k tvorbe softvérových výrobkov riadenej konfiguráciou modelov vlastností a koncept transformácie vo vývoji softvéru. Navrhnite prístup k tvorbe transformácií, ktorý umožní ich efektívne využitie v tvorbe softvérových výrobkov riadenej konfiguráciou modelov vlastností. Identifikujte typické transformácie a opíšte spôsob ich použitia. Prístup demonštrujte a vyhodnoťte na štúdií netriviálneho rozsahu.Keywords:
Modeling, Formalization, Approach based on transformations, Software product linesAbstract:
The creation of software products based on the configuration of the feature model is interesting even today from the point of view of reusability. However, the creation of software products driven by the feature model configuration using transformations is difficult from the point of view of implementation. According to the analysis of modeling and transformation concepts, as well as other approaches to software product development, this work proposes an approach on how the creation of transformations can be supported by two-level modeling of transformations. The proposed modeling has helped to better formalize the creation of transformations. The usefulness of formalization and modeling for transformation creation and configuration has been confirmed through particular experiments.Bachelor's theses
Detekcia defektov vo výrobkoch v radoch softvérových výrobkov
Detection of product defects in software product lines
Samuel Kohút
20203/2024
Keywords:
Graf Vzájomnej Závislosti Faktorov, Zabezpečenie Kvality, Rady Softvérových Výrobkov, Predikcia DefektuAbstract:
Pri vývoji softvéru predstavuje efektívne riadenie a zabezpečenie kvality výrobkov v radoch softvérových výrobkov (SPL) značnú výzvu, najmä pri detegovaní a odstraňovaní defektov v rôznych variantoch produktov. Varianty rovnakej SPL rodiny zdieľajú spoločné jadro, ale často sa líšia vo variabilných vlastnostiach. Táto divergencia vedie k významným problémom pri detekcii defektov, pretože každý variant môže vykazovať jedinečné problémy, ktoré sa nenachádzajú v iných. Táto práca predstavuje nový prístup, ktorý strategicky využíva grafy vzájomnej závislosti faktorov (FIG) spolu s pokročilými technikami strojového učenia na riešenie tohto problému. Tento prístup zahŕňa analýzu zdrojového kódu na extrakciu metrík súvisiacich s kvalitou softvérového produktu, ktoré sa potom používajú na trénovanie klasifikačných modelov. Tieto modely sú zručné v identifikácii potenciálnych defektov s následným mapovaním týchto defektov na variant špecifické FIG pre komplexné pochopenie ovplyvňujúcich faktorov kvality. Tento prístup ponúka riešenie na udržanie štandardov vysokej kvality v prostredí charakterizovanom variabilitou podobných produktov. Na vyhodnotenie nášho prístupu sme implementovali nástroj QTM-SPL, do ktorého môžu používatelia nahrať nový variant. Po nahraní nového variantu nástroj extrahuje metriky kódu, použije natrénované modely na klasifikáciu rôznych druhov defektov a vytvorí variant špecifický FIG, ktorý vizualizuje všetky metriky s ich označením defektné alebo kvalitné.Keywords:
Factor Interdependency Graph, Quality Assurance, Defect Prediction, Software Product LinesAbstract:
In software development, the efficient management and quality assurance of Software Product Lines (SPL) poses a significant challenge, particularly when detecting and resolving defects across varied product variants. Variants of the same SPL family, while sharing a common core, often diverge in variable features. This divergence leads to significant challenges in defect detection, as each variant may exhibit unique issues not found in others. This thesis introduces a novel approach that strategically employs Factor Interdependency Graphs (FIG) alongside advanced machine learning techniques to address this issue. The approach involves analyzing source code to extract quality-related metrics of software products, which are then utilized to train classification models. These models are adept at identifying potential defects, with the subsequent mapping of these defects onto variant specific FIGs for a comprehensive understanding of the influencing quality factors. This method offers solution for maintaining high-quality standards in an environment characterized by product variability. To evaluate our approach, we developed a tool QTM-SPL, where users can upload new variant. After uploading new variant, the tool will extract code metrics, use trained models to classify different kind of defects and create variant specific FIG, which visualizes all the metrics with their defective or quality label.Generate random maze and play!
Kontakt
E-mail:
jakub.perdek@stuba.skTel.:
+421 950 567 469