Copy the page URI to the clipboard
Akiki, Paul
(2023).
DOI: https://doi.org/10.21954/ou.ro.000159f5
Abstract
Software systems execute tasks that depend on different types of resources. However, the variability of resources may interfere with the ability of software systems to execute important tasks. Resource variability can occur due to several reasons including unexpected hardware failures, excess workloads, or lack of materials. For example, in automated warehouses, malfunctioning robots could delay product deliveries causing customer dissatisfaction and, therefore, reducing an enterprise’s sales. Moreover, the unavailability of medical materials hinders the ability of hospitals to perform medically-critical operations causing loss of life. In this thesis, we propose to address the problem of resource variability through resource-driven adaptation, using task models as input for adaptation decisions. The thesis presents the following contributions:
• SPARK: a framework for performing proactive and reactive resource-driven adaptation based on multiple task-related criteria. The framework supports different types of depletable and reusable resources that could face variability. SPARK assists with four types of adaptation, namely: (i) execution of a similar task that requires fewer resources, (ii) substitution of resources by alternative ones, (iii) execution of tasks in a different order, and (iv) cancellation of the execution of tasks.
• SERIES: a task modelling notation and editor tool that enables software practitioners to create task models that serve as input for SPARK. SERIES supports the representation of task priorities, task variants, task execution types, resource types, and properties representing users’ feedback.
SPARK was evaluated in terms of the percentage of executed critical task requests, the average criticality of the executed task requests in comparison to the non-executed ones, overhead, and scalability through two case studies concerned with a medicine consumption system and a manufacturing system. The results of the evaluation showed that SPARK increased the number of executed critical task requests during resource variability. Additionally, the results showed that the time it takes to prepare and apply adaptation plans does not add significant overhead that hinders the ability of software systems to execute tasks in a tolerable waiting time. Furthermore, SPARK was shown to be scalable since the abovementioned time increases polynomially relative to the input size (number of tasks and task variants).
SERIES was evaluated through a user study with twenty software practitioners. The results showed that software practitioners performed very well when explaining and creating task models using SERIES. These results were reflected in the task modelling activities that the participants performed as well as in their positive feedback regarding the usability of SERIES and the clarity of its semantic constructs.
Overall, we conclude that the research presented in the thesis contributes to addressing resource variability through resource-driven adaptation. We also provide suggestions for future work that can extend this research.