Announcement of the defence of the dissertation of Jakub Perdek
Dovoľujeme si oznámiť, že dňa 27. augusta 2025 o 11.45 hod.
sa uskutoční na Fakulte informatiky a informačných technológií STU v Bratislave, Ilkovičova 2, 842 16 Bratislava, v miestnosti č. 3.08, obhajoba dizertačnej práce/
We would like to announce that on 27 August 2025 at 11:45 a.m. will be held at the Faculty of Informatics and Information Technology STU in Bratislava, Ilkovičova 2, 842 16 Bratislava, in room No. 3.08, the defence of the doctoral thesis of a PhD student
Ing. Jakuba Perdeka/
Ing. Jakub Perdek
Názov dizertačnej prác/Thesis title:
Aspektovo orientované znalosťami riadené rady softvérových výrobkov s hierarchicky vyjadrenou informáciou o variabilite v kóde
Aspect Oriented Knowledge-Driven Evolution of Software Product Lines With Hierarchically-Expressed Variability Information Preserved in Code
Odbor/Study field: Informatika/Computer Science
Študijný program/Study program: Aplikovaná informatika/Applied informatics
Školiteľ/Supervisor: doc. Ing. Ján Lang, PhD. – FIIT STU v Bratislave
Abstrakt/Annotation:
Správa variability spolu so znovupoužitím je metodologicky a prakticky riadená v rámci existujúcich radov softvérových výrobkov. Jeden zo spôsobov realizácie podľa taxonómie predstavuje použitie anotácií pri zavádzaní vysoko konfigurovateľných systémov z dostupných vlastností. Napriek známym výhodám, manažovanie variability v kóde nie je prispôsobené pre prehľadné a zrozumiteľné udržovanie hierarchickej informácie v kóde. To môže byť naviac dosiahnuté jednoduchým, minimalistickým, a plne automatizovaným spôsobom. Napríklad existujúce prístupy neumožňujú porovnať rôzne druhy anotácií a výrazov na základe zložitosti v kóde, vynútiť pravidlá v kóde, použiť menné politiky, spravovať doménové znalosti, a nie sú identifikované kritériá pre flexibilné udržiavanie modelov vlastností v kóde. Predstavujeme preto metodológiu umožňujúcu zavedenie radu softvérových výrobkov odľahčeným, nenáročným spôsobom, rámec implementujúci stratégie pre určenie druhu anotácie pre správu variability s najnižšou zložitosťou určenou zo zdrojového kódu a jeho kontextu, škálovateľnú infraštruktúru zabezpečenú integráciou rýchlych grafovo-orientovaných metód pre zhodu a hierarchické zhlukovanie uzlov, a kompletnú integráciu vymenovaných metodológií do plne automatizovanej a minimalistickej správy variability. Predstavená metodológia je overená na navrhnutých a zhotovených radoch softvérových výrobkov s cieľom spravovať variabilitu v kóde, primárne na minimalistickej a plne automatizovanej verzii aplikovanej na evolúciu fraktálov pri ktorej každé rozšírené fraktálu je riadené podľa štruktúrnych indikátorov a rozšíriteľné smerom ku sémantickým. Prostredníctvom minimalistickej plne automatizovanej evolúcie sme už od skorých počiatkov vývoja zabezpečili správu variability za súčasného znovupoužitia, masívnej produkcie, a objavovania doménových znalostí (pri iteratívnej integrácii nových vlastností). Naša metodológia poskytuje perspektívy pre riešenie existujúcich výziev použitím rôznorodých artefaktov, napríklad pri simulácii interakcií vlastností vďaka automatizovanému generovaniu scenárov získaných z evolúcie radov softvérových výrobkov alebo rozhodovania pri zapracovaní nových vlastností vďaka navrhnutiu špecifického rozhodovacieho modelu. Perspektívny prínos našej práce pozostáva z vypracovania metodológie pre udržiavanie modelov vlastností v zdrojovom kóde spolu s verifikáciou jeho spôsobilostí v rámci plne automatickej minimalistickej evolúcie.
Variability handling and reuse are methodologically and practically managed in software product lines. In accordance with their taxonomy, the annotation-based type preserves the annotations of variability in code while ensuring the establishment of highly configurable systems out of its features. Despite the benefits of annotation-based software product lines, in-code variability management is not adjusted to concisely preserve hierarchical information in the code in a lightweight, minimalistic, and fully automated manner. Specifically, annotations are left without a selection procedure based on in-code complexity, policy enforcement, naming conventions, managing domain knowledge, and criteria for maintaining feature models directly in the code. Consequently, we introduce a methodology for the establishment of a software product line in a lightweight fashion, a framework with competing strategies based on in-code complexities concerning the context of the entire code fragment to select the annotation with the lowest complexity, a scalable solution infrastructure by fast matrix-based methods for graph matching and clustering, and finally most of them entirely integrated into fully automated and minimalistic variability management. Additionally, the methodology is verified on established software product lines prepared in accordance with the variability managed in the code, but primarily on the minimalistic and fully automated version for managing fractals driven by structural information towards its semantic extensions. Through minimalistic fully automated evolution, we achieved the ability to handle variability from the early beginning while reaching reuse, massive production, and discovering domain knowledge. Our methodology provides new perspectives to solve existing challenges with diverse artifacts, including the simulation of feature interactions owing to automated scenario generation from software product line evolution or decision-making with a custom-designed model while incorporating new features. A notable contribution of our work lies in elaborating the methodology of preserving feature models in code, with its verification in automated minimalistic evolution.