Page 11 - 《软件学报》2021年第7期
P. 11
檀超 等:复杂软件系统的不确定性 1929
维护奠定基础.
下面,我们简要介绍针对不确定性进行系统文献综述的相关工作.Marinho等人收集了 1994 年~2013 年之间
发表的相关文献,并以此为依据针对软件项目管理中的不确定性进行了系统的文献调研 [15] .他们的研究目标是
调研在软件项目中的不确定性的来源、等级和管理技术等.研究结果表明,采用新方法的项目和具有高风险的
项目更有可能在其开发过程中遇到不确定性问题,大部分的不确定性出现在没有足够多的开发经验可以参考
和利用的创新项目中.同时,他们还发现不确定性的来源包括市场的不确定性(比如不确定的客户、供应商、合
作伙伴和当前市场状况)、技术的不确定性(比如现有技术的可用性和成熟程度)、内部和外部组织环境的不确
定性(比如人口变化)、项目团队的认知复杂性和不确定性,以及他们与其他组织机构的关系.
Asan 和 Soyer 对不确定性下多准则风险优先级划分方法展开了文献调研,主要目标是识别和确定潜在的
失效模式及其在不确定性下影响的优先级 [16] .这里的不确定性包括不完整、模糊和/或模棱两可的信息以及由
于缺乏知识、模糊的评估和分级标准、碎片化的判断导致专家的主观判断缺少足够的信心.在该工作中,两位
作者还确定并罗列了应对不确定性的方法(例如证据分析、普通模糊集).他们的研究结果表明,不同的方法倾向
于处理不同类型的不确定性,并且没有一种研究方法能够很好地处理所有类型的不确定性.比如,基于粗糙集理
论的方法主要用于处理专家的主观判断中的不确定性.
Shevtson 等人针对控制理论软件的适应性进行了系统的文献调研,控制理论软件的适应性主要是为了处
理不确定的操作条件,例如动态的服务可用性和软件目标的变化 [17] .他们收集了 42 篇相关文献,并展开调研.调
研结果表明,尽管软件通常被认为是高度非线性的,但大多数研究都在使用线性模型.同时,他们也鼓励在控制
理论的软件适应性方面进行跨学科研究(比如同时考虑软件工程和控制论).但是,他们在文献[17]中并没有将不
确定性作为主要的研究问题.
Salih 等人通过系统的文献综述将处理需求工程中不确定性的方法进行分类 [18] .他们收集了 167 篇相关文
献,并以此为基础开展调研.调研结果表明,研究人员针对需求审查和分析中出现的不确定性展开的研究最多,
其次是面向目标的建模.在这项工作中,虽然在搜索字符串中明确定义了不确定性,但是 Salih 等人并没有提出
针对不确定性的研究问题.
张等人针对机器学习赋能的软件系统自适应性开展了系统的文献调研工作 [19] .他们将自适应环境中的不
确定性明确归类为触发自适应的原因之一,还提出了面向自适应软件系统设计和运行中的不确定性的全面分
类,并以此为目标开展研究.基于收集到的 78 篇相关文献,他们针对软件系统自适应性的 3 个关注点(即场景不
确定性、环境动态变化、效果不确定)进行了分析,并将这 3 个关注点与自适应策略生成与演化、参数评估和
环境预测等自适应系统各项功能进行了关联,同时将这些自适应系统的各项功能进一步与不同的机器学习方
法相关联.此外,他们还在文献[19]中详细介绍了目前该领域研究存在的问题,并对未来工作加以展望.
3 研究框架
由于目前复杂系统不确定性涉及的领域众多,且文献数量庞大,难以进行全面的搜索分析,因而难以采用系
统文献综述(systematic literature review,简称 SLR)方法 [20] .本文调研的研究问题较为宽泛,更适合采用系统的调
研(systematic mapping study)方法.系统调研常用于某一类研究搜索范围确定的领域,以得到某一主题的当前技
术发展水平或实践水平的概括.因此,在本文中,我们使用系统的调研方法来调研复杂系统及其开发和运行中的
不确定性.系统调研是一种通过分析文献来识别、评估和解释与某个研究兴趣相关内容的方法.Kitchenham 等
人提出了被研究人员广泛使用的系统调研的具体准则 [21] ,我们按照该准则进行实验.根据这一准则的要求,系统
调研包括 3 个阶段,分别为调研的规划(planning)、调研的实施(conducting)、调研的分析与展示(reporting).以这
3 个阶段为根据,我们详细设计了本文的研究方法.如图 1 所示,本文的研究方法分成 6 个模块,分别为研究问题
定义、相关文献搜索、文献筛选、文献质量评估与保障、属性抽取与细化以及研究问题调研.
具体来说,根据本文的研究目标,我们首先定义了一系列的研究问题,从不同角度调研针对复杂系统的不确
定性问题.接着,以这些定义好的研究问题为依据,设定了一系列的搜索关键词及其同义词,并将这些搜索关键