Page 33 - 《软件学报》2021年第7期
P. 33
檀超 等:复杂软件系统的不确定性 1951
程所特有的.(4) 关于不确定性处理方法,软件工程和自动化都主要关注于不确定性条件下的决策,在探究该方
法处理复杂系统开发和运行过程中的不确定性时,可以借助这两个领域的优势,以便有效地处理不确定性.通过
对自动化领域和软件工程领域在以上 4 个方面的探索,有助于复杂系统不确定性在这两个领域的交叉研究,借
助两个领域理论方法的优势互补(如通过软件工程结构模型和自动化的数学模型两个维度表征不确定性)进行
更深层次的研究.
6 结束语
不确定性问题对于复杂系统的开发和运行会产生重要的影响,引起了研究人员的广泛关注.因此,针对复杂
系统的不确定性研究是当前的热点.本文通过对该领域的相关文献进行系统性的分析和研究,总结了复杂系统
不确定性涉及的多个方面,重点包括复杂系统的不确定性的分类、不同系统开发阶段的分布情况以及研究人员
提出的处理不确定性的主要方法.在此基础上,本文还进一步总结和归纳了该领域未来的发展趋势,以帮助研究
人员从整体上快速把握该领域的研究现状,吸引更多的研究人员投入到这个热点研究领域中.我们未来的研究
工作侧重在如下 5 个方面.
构建更加通用、全面、可扩展的针对信息物理系统和物联网等复杂系统的不确定性分类标准.复杂系统
及其开发和运行的不确定性种类多种多样,且多数情况下与信息物理系统和物联网的具体设计和应用领域有
关,目前还缺少统一的分类标准,我们将针对信息物理系统和物联网等复杂系统的不确定性展开全面且深入的
研究,构建一个通用的、全面的、针对不同应用领域特征的可扩展的分类标准.
深入研究复杂系统的不确定性处理方法、相关理论和技术的应用,且系统、全面地建立不确定性处理方
法与不同类别不确定性之间的关系.为了处理复杂系统开发和运行过程中出现的各种不确定性,研究人员采取
了不同的方法对不确定性进行处理:经过对 142 篇文献的整理和分析,本文总结出六大类不确定性处理方法(如
不确定性传播).由于种类较多且每种不确定处理方法所应用的技术复杂多样(如不确定性推理方法可以基于贝
叶斯推理和模糊逻辑等),本文无法展开详细讨论.所以,基于本文现有的研究,我们将对每种不确定性处理方法、
相关理论和技术应用进行详细的分类和特征提炼,且将不确定性处理方法和不确定性类型关联起来.
系统且深入地研究复杂系统开发过程中各种不确定性间的相关性.为了更好地应对系统开发过程中的
各种不确定性,未来需要对软件开发过程中各种不确定性的本质进行更详细的分类和特性提炼,进而更好地定
位不确定性的来源以及对应的解决方法.比如,对于需求阶段,需要从需求获取、需求分析、需求规约、需求验
证以及需求管理等方面进行更细粒度的不确定性分析.在此基础上,探究需求阶段和系统设计、运行等不同系
统开发阶段与不确定性的相关性,并探讨沿着系统全生命周期如何系统地降低各种不确定性,如何分析不同开
发阶段之间的不确定性影响,以有效地保证所开发的复杂系统的质量以及提升其在运行阶段应对不确定性的
能力.
深入探究机器学习等人工智能技术对复杂系统不确定性的影响和机遇.随着诸如机器学习等人工智能
技术的快速发展,越来越多的研究者将机器学习等人工智能技术引入到信息物理系统和物联网等复杂系统不
确定性的处理中来.机器学习等人工智能技术的应用给复杂系统不确定性的处理带来了便利(如利用机器学习
等人工智能技术更加有效地进行不确定性决策),同时也引入了诸多的副作用(如深度学习中深度神经网络本身
固有的不确定性以及机器学习技术预测不确定性或预测错误增加复杂系统内部的不确定).目前研究工作的视
角多以解决问题为主,而缺乏不确定性和机器学习算法的相关性.为了更好地利用机器学习技术去处理复杂系
统的不确定性,需要对复杂系统的不确定性本质进行更加准确的分类和特征提炼,进而更好地定位不确定性亟
待解决的具体问题,从而更精准地将不确定性问题映射为现有的机器学习方法能解决的问题.此外,我们也需要
建立机器学习等人工智能技术的固有不确定性与复杂系统的其他内外部不确定性之间的关系,从而为系统地
分析复杂系统开发“端对端”全生命周期的不确定性提供基础.
深入探究自动化和计算机领域(尤其是软件工程)不确定性研究的相关性.复杂系统不确定性研究具有多
学科交叉特性,对于不确定性的研究,自动化和计算机领域(软件工程)研究人员关注的研究主题有所差异.由于