Component-Based Development (CBD) is a popular approach to mitigating the costs of creating software systems. However, it is not clear to what extent the core component selection and adaptation activities of CBD can be implemented to operate automatically in an efficient and reliable manner or in what situations (if any) CBD is preferable to other approaches to software development. In this paper, we use computational complexity analysis to determine and compare the computational characteristics of fully automatic component-based software system creation and reconfiguration by de novo design, component selection, and component selection with adaptation. Our results show that none of these approaches can be implemented to operate both efficiently and reliably in a fully automatic manner either in general or relative to a number of restrictions on software systems, system requirements, components, and component adaptation. We also give restrictions under which all of these approaches can be implemented to operate both efficiently and reliably. As such, this paper illustrates how different types of computational complexity analysis (in particular, parameterized complexity analysis) can be used to systematically explore the algorithmic options for implementing automatic activities in software engineering.
翻译:以组成部分为基础的开发是降低软件系统创建成本的流行办法,然而,尚不清楚《生物多样性公约》的核心组成部分选择和调整活动在多大程度上能够以高效和可靠的方式自动运作,或者在何种情况下(如果有的话)《生物多样性公约》比软件开发的其他方法更可取。在本文件中,我们使用计算复杂性分析来确定和比较完全自动组成部分为基础的软件系统创建和重组的计算特点,通过重新设计、组成部分选择和根据适应情况选择组成部分进行重组。我们的结果显示,这些方法中没有一个能够以完全自动的方式,或者在总体上或相对于对软件系统、系统要求、组成部分和组成部分的调整的若干限制,有效和可靠地运作。我们还对所有这些方法的实施加以限制,以便有效和可靠地运作。因此,本文件说明了如何利用不同种类的计算复杂性分析(特别是参数化的复杂性分析)系统探讨在软件工程中执行自动活动的算法选项。