Unique developmental and operational characteristics of ML components as well as their inherent uncertainty demand robust engineering principles are used to ensure their quality. We aim to determine how software systems can be (re-) architected to enable robust integration of ML components. Towards this goal, we conducted a mixed-methods empirical study consisting of (i) a systematic literature review to identify the challenges and their solutions in software architecture for ML, (ii) semi-structured interviews with practitioners to qualitatively complement the initial findings and (iii) a survey to quantitatively validate the challenges and their solutions. We compiled and validated twenty challenges and solutions for (re-) architecting systems with ML components. Our results indicate, for example, that traditional software architecture challenges (e.g., component coupling) also play an important role when using ML components; along with new ML specific challenges (e.g., the need for continuous retraining). Moreover, the results indicate that ML heightened decision drivers, such as privacy, play a marginal role compared to traditional decision drivers, such as scalability. Using the survey we were able to establish a link between architectural solutions and software quality attributes, which enabled us to provide twenty architectural tactics used to satisfy individual quality requirements of systems with ML components. Altogether, the results of the study can be interpreted as an empirical framework that supports the process of (re-) architecting software systems with ML components.
翻译:为实现这一目标,我们开展了一项混合方法经验研究,其中包括:(一) 系统文献审查,以确定ML组件在软件结构方面的挑战及其解决办法;(二) 与从业人员进行的半结构性访谈,以定性地补充初步调查结果;(三) 调查,从数量上验证挑战及其解决办法;我们汇编并验证了与ML组件有关的(再)建筑系统的20项挑战和解决办法;例如,我们的成果显示,传统软件结构挑战(例如,部分组合)在使用ML组件时也发挥着重要作用;与新的ML具体挑战(例如,需要持续再培训);此外,结果显示,ML强化决策驱动因素,如隐私,与传统的决策驱动因素相比,如缩放等,起边际作用。