Застосування методів і технологій рекомендаційних систем для конфігурування динамічних лінійок програмних продуктів - Гамзаєв, Рустам Олександрович; Ткачук, Микола Вячеславович (Національний технічний університет "Харківський політехнічний інститут", 2021)
У статті проведено аналіз існуючих підходів до вирішення задачі динамічного конфігурування у лінійках програмних продуктів (ЛПП). ЛПП це набір програмних систем, що мають спільні і варіабельні компоненти і використовують набір парадигм і методів до розробки. Завдяки використанню яких надаються можливості налаштовувати програмні рішення відповідно до потреб кінцевих користувачів. Було показано, що для вирішення цієї проблеми доцільно використовувати методи і технології побудови сучасних рекомендаційних систем (РС). Проведено аналіз існуючих підходів і методів побудови РС, були розглянуті такі можливі методи як: кластеризація, марковский процес прийняття рішень, факторизація матриць. В результаті огляду інтелектуальних методів розробки РС та дослідження функціональних можливостей технологій реалізації РС у проектах з відкритим кодом, для подальшого використання саме в задачах конфігурування динамічних ЛПП запропоновано метод N-вимірної контекстно-залежної тензорної факторизації та інструментальна система CARSkit. Розроблені функціональні вимоги та запропонована архітектура прототипу РС, яка уможливлює автоматизацію конфігурування програмних компонентів у системах «Розумний будинок» (РБ), і яка може бути програмно реалізована засобами системи CARSkit та алгоритмами обробки консолідованих даних на мові Python. Ця реалізація дозволяє побудувати процес відстеження змін у зовнішньому середовищі і передавати інформацію в РБ і після аналізу вхідних даних обробляти в РС для відстеження змін у контекстної інформації. Під час подальших досліджень заплановано проведення обчислювальних експериментів з урахуванням специфіки систем «Розумний будинок» і застосування кількісних метрик для оцінки ефективності алгоритмів тензорної авторизації для прогнозування динамічних змін програмних компонентів в цих системах.

Software product lines (SPL) dynamic configuring process could use methods for recommendation system (RS) elaboration. An overview and analysis of such methods was done in this paper. SPL represent a set of software systems that have common and variable functional components and use a set of paradigms and methods for development. In the classical static SPL the process of configuring performed before executing and performing in the operation environment (OE), in contrast dynamic software product lines performs after executing in the OE. Through the use of which it is possible to customize software solutions in accordance with the needs of end users. The following possible methods to build RS were considered: clustering, Markov decision-making process, matrix factorization. According to the review of the intelligent RS method development and researching of the functionalities of such systems in some open-source projects it was proposed to use N-dimensional context-dependent tensor factorization method and CARSkit tool system. Functional requirements and software architecture of the RS were developed. It allows to automatize software components configuration in the „Smart Home” (SH) systems that could be implemented with CARSkit software toolkit and algorithms implemented with programming language Python. This implementation allows to build a process for tracking changes in the external environment and transfer information to the SH system and, after analyzing the input data, process it in the RS to track changes in the context information. In the future research some additional quantitative experiments will be performed considering the specifics of the SH systems, additionally quantitative metrics will be used for efficiency assessment of the tensor factorization algorithms to predict the dynamic configurations of software components in these systems.
Using methods and technologies of recommendation systems for dynamic software product lines configuration
Keywords: варіабельність; динамічне конфігурування; архітектура; variability; dynamic configuration; architecture