本文是Faiz Akram , Tanvir Ahmad 和 Mohd. Sadiq 2024年发表的论文《基于推荐系统的软件需求获取过程》的翻译。论文提出了基于推荐系统的软件需求获取过程领域的研究差距,并提出一种新的的研究方向。

1 前言

需求获取是需求⼯程的基本⼦过程之⼀,⽤于发现利益相关者的需求。此⼦过程包含多项活动,即识别利益相关者及其需求、确定软件需求的优先级 1以及分析。

推荐系统与需求获取过程交织在⼀起,以根据利益相关者 2对功能性和⾮功能性需求的偏好来预测他们的需求。在需求获取领域已经进⾏了⼤量系统⽂献综述 (SLR)。这些 SLR 不⽀持在需求获取过程中应⽤推荐系统。为了解决这个问题,我们提出了⼀个基于推荐系统的软件需求获取过程的SLR,研究时间从 2009 年到 2022 年,研究了四个问题:

  1. 软件需求获取⽅法有哪些不同的活动?
  2. 推荐系统在识别软件需求⽅⾯有哪些应⽤?
  3. 推荐系统如何促进需求获取过程中利益相关者的识别?
  4. 有哪些⽅法可以⾃动选择需求获取技术?

本研究的⽬的是确定基于推荐系统的需求获取过程领域的研究差距,并提出未来的研究⽅向。

2 介绍

需求获取是需求工程 3 (RE) 的第一个子过程, 用于理解和识别利益相关者的需求。 已经开发了多种方法和技术来获取利益相关者的需求, 如情境方法、 认知方法、 传统方法和面向目标的方法4。有各种技术来加强需求获取过程,如模糊逻辑、粗糙集理论和推荐系统。在这些技术中,推荐系统在文献中被广泛用于处理大量需求。推荐系统的目的是识别感兴趣的项目,根据利益相关者过去的信息或偏好关系,通过应用不同类型的过滤方法,即基于内容的过滤、基于协作的过滤和基于混合的过滤5,根据利益相关者的需求进行推荐。在 RE 的文献中6,推荐系统解决了以下问题,即 (a) 识别项目的利益相关者,(b) 引出客户需求或系统特性,以及 (c) 需求选择和优先排序。

在使用推荐系统引出客户需求的文献中使用了不同的数据集,即替代访问、图书馆和身份证 (RALIC) 7和机构考试系统 (IES) 8。 例如,Lim 和 Finkelstein 9提出了一种使用社交网络和协作过滤技术的混合方法来引出大量需求。通过考虑 RALIC 数据集讨论了该方法的适用性。该数据集包含 76 个利益相关者和 104 个需求。 Hassan 等人10专注于使用置信度值分析利益相关者,其中在利益相关者的推荐过程中使用了语言变量。作者使用“与L-1R-1逆算术原理相关的乘法规范表示和分级平均积分表示” 根据其他利益相关者对开发 IES 的建议选择利益相关者。 Shambour 等人11还采用了 RALIC 数据集来处理需求获取问题之一,即信息过载。 在他们的工作中,作者开发了一种基于用户项目的混合方法,用于使用协作过滤来获取需求。

需求获取过程包括几项活动,例如利益相关者识别及其需求、确定软件需求 (SR) 的优先级等,以便能够根据利益相关者的需求开发 12产品。 对利益相关者需求的不当引出、目标不明确以及成本估算 13错误是软件系统失败或受到挑战的主要原因。 根据 2020 年发布的 CHAOS 报告,19% 的项目失败,一半的项目结果受到质疑,31% 的项目获得成功。 软件失败的原因之一是SR识别效率低下,包括它们的优先级14。 很少有研究使用推荐系统来自动化需求获取过程的不同活动。有不同类型的推荐系统,主要根据其推荐模式进行分类,例如,协同过滤推荐系统、基于内容的过滤推荐系统和混合推荐系统15

这些系统定义如下:

2.1 协同过滤推荐系统

它根据类似利益相关者的先前偏好提供推荐。例如,考虑两个类似的利益相关者S1和S2,他们都为软件产品选择了需求R1和R2。 如果利益相关者S1为软件产品选择了另一个需求R3,那么R3也会被推荐给S2;见图 1

图1协同过滤推荐系统示意图

协同过滤是推荐系统中采用的主要技术。这种推荐系统依赖于两个重要的计算,即计算相似度和评级预测。文献中用于计算相似度的不同技术有很多, 例如,皮尔逊相关系数、余弦相似度、调整余弦相似度、欧几里得距离16公式1描述了利用皮尔逊相关性计算两个利益相关者S1和S2之间的相似度的公式,即(stakeSim(S1, S2))。

公式1

这里, CRS1,S2 = 两个利益相关者S1和S2之间共同评价的要求集

  • rS1R: 利益相关者S1对要求 R给出的评级
  • rS2R: 利益相关者S2对要求 R给出的评级
  • rS1: 利益相关者S1的平均评分
  • rS2: 利益相关者S2的平均评分

等式 1 生成的值介于“1” 和“‐1” 之间。 利益相关者S1和S2之间的完全一致用值“1”表示; 另一方面,“‐1” 表示他们之间完全不一致的值。 重复此过程以计算不同利益相关者之间的成对相似性。此外,通过选择最相似的利益相关者的“N”, 为每个利益相关者生成一个邻域。 利益相关者(例如S1) 对尚未评级的需求“R” 的兴趣水平由以下等式预测:

公式2

这里S2 ∈ nbr(S1): S2是S1的邻居

2.2 基于内容的过滤推荐系统

它根据利益相关者过去的偏好生成推荐17。 例如, 如果利益相关者S1为软件产品选择了需求R1, 那么与R1相似的需求(例如R2)将被推荐给S1, 如图2所示。

图2基于内容的过滤推荐系统

需求获取需要需求表示、利益相关者分析和计算相似性度量以生成建议。每个需求Ri在数学上表示为特征向量Vi。然后,利益相关者分析PS是在利益相关者需求 18的特征向量组合之后创建的,其中根据利益相关者的偏好分配权重; 参见公式 (3)。

公式3

其中wS,i是根据利益相关者的偏好分配给需求的权重。计算利益相关者概况PS与各需求特征向量Vi之间的相似度, 公式(4) 表示计算PS与Vi之间余弦相似度的公式。

公式4

其中||PS||和||Vi||分别是向量PS和 Vi的欧几里得范数。根据相似度值对需求进行排序, 以表示需求获取过程中相应的相关性。

2.3 混合推荐系统

根据产品的要求,融合协作推荐和基于内容的推荐的特点来生成推荐19。 已经进行了各种 SLR,以调查现有需求获取技术的优缺点。例如,Pacheco 和 Garcia 20对需求获取中应用的利益相关者识别方法进行了 SLR。 结果发现, 基于利益相关者识别的方法可分为以下几类: (a) 描述利益相关者的方法, (b) 基于利益相关者之间互动的方法, (c) 评估利益相关者的方法。

利益相关者的评估取决于利益相关者在项目开发中的优先利益和技能。 一种获得软件产品预期质量的一种方法是了解预计开发软件项目的环境领域。 有效且高效的利益相关者选择可以提高需求覆盖率21。 Hujainah 等人22对利益相关者和技术在需求优先级 23排序过程中的重要性进行了SLR。作者根据手动、半自动化和全自动类型将需求优先级排序技术进行了分类。 Aldave 等人24研究了敏捷软件开发中的需求引出技术。

到目前为止, 最新的 SLR 是关于 Lim 等人25执行的数据驱动需求引出,强调信息系统的自动化需求引出。 表 1总结了 SR 引出领域中选定的 SLR 列表。据我们所知, 尚未执行任何SLR 并强调推荐系统在需求引出中的应用。 因此, 本研究的目标是在基于推荐系统的需求引出领域执行 SLR,以便在需求引出过程中识别和推荐关键利益相关者及其需求。

表1 表 1 SR 引出区域中选定的 SLR

序号 SLR 执行者 研究领域 数量 研究问题 数字图书馆 涉足SLR领域多年
1 Pacheco et al. 26 Software requirements elicitation 2 ACM Digital Library, IEEE Xplore,Springer Verlag Google Scholar,ScienceDirect,Metapress, Wiley InderScience. 1993-2015
2 Pacheco and Garcia 27 Importance of stakeholders in requirements elicitation 4 ACM Digital Library, IEEE Xplore,Springer Verlag,Google Scholar,ScienceDirect,Metapress, Wiley. 1984–2011
3 Hujainah et al. 28 Software requirements prioritization and stakeholders 5 ScienceDirect, IEEEXplore,SpringerACM Digital Library,ISI Web of Science,Google Scholar and Scopus 1993–2018
4 Aldave et al. 29 Requirements elicitation within agile software development 5 ACM, Google Scholar, IEEE Xplore, ISI Web of Science, Science Direct, Scopus 2007–2017
5 Lim et al. 30 Data-driven requirements elicitation 3 Scopus, Web of Science, ACM Digital Library, and IEEE Xplore 2009–2020
6 Horkof et al. 31 Goal-oriented requirements engineering 8 ACM, Springer, IEEE 1998–2015
7 Wong et al. 32 Software requirements elicitation 3 ScienceDirect, IEEE Xplore Digital Library and ACM Digital Library 2009–2014

后续章节安排如下: 研究方法部分讨论了开展 SLR 的研究方法。 有效性威胁部分描述了对 有效性的威胁。 结果与讨论部分总结了基于研究问题 (RQ) 的结果和讨论。 比较研究部分对基于推 荐系统的需求获取过程的 SLR 与其他选定的需求获取过程相关的 SLR 进行了比较研究。 最后, 结论、 挑战和未来工作部分总结了结论、 挑战和未来工作。

3 研究方法

Kitchenham 和 Charters 33提出的指导方针用于确定基于推荐系统的 SR 引出过程领域的研究差距。 根据34, 执行 SLR 的步骤如下:

    1. 研究问题
    1. 搜索策略
    1. 研究选择
    1. 数据综合。

下面详细介 绍了这些步骤:

3.1 研究问题

基于推荐系统的 SR 引出方法的目标是捕捉利益相关者的需求和偏好, 以便可以根据利益相关者的需求在 全球软件开发中识别不同类型的 SR。

这些利益相关者分布在国内或国外的不同地点。 为了实现这一目标, 制定了以下 RQ:

  • RQ‐1: SR 引出方法有哪些不同的活动?
  • RQ‐2: 推荐系统在识别
  • SR?
  • RQ‐3: 推荐系统如何帮助识别利益相关者
    • 需求获取过程中的持有者?
  • RQ‐4: 有哪些方法可以自动选择需求获取技术?
    • 独特?

3.2 搜索策略

从上述 RQ 中可以得出以下关键词: 软件需求引出推荐系统利益相关者自动化引出技术

根据上述关键词构建搜索字符串。 还创建了这些关键词的同义词以完成字符串, 以便可以识别基于 RQ 的相关研究。 使用 Word Net 版本 3.0 [15]和牛津词典(https://www.oxfordlearnersdictionaries.​com/)扩展了关键词中出现的术语同义词。。

最后, 创建了以下搜索字符串来从电子数据库中识别主要研究:

搜索字符串: ((软件需求引出 或 软件需求工程 或 需求引出或需求工程) AND (推荐系统 或 推荐系统 或 自动化 或 局限性 或 弱点 或 优势 或 优点 或 缺点) AND (评论 或 系统评论 或 文献综述 或 系统文献综述 或 调查 或 旅程 或 文献映射 或 系统文献映射 或 最先进技术))。

我们使用以下五个电子数据库根据搜索字符串搜索相关的主要研究:

IEEE Xplore、ACM 数字图书馆、 Springer、ScienceDirect 和 Google Scholar。

3.3 研究选择

图 3 展示了研究选择过程的搜索策略。 我们选择了 2009 年至 2022 年发表的主要研究; 见图 4。 最初, 从五个电子数据库中选择 了 170 项主要研究。 在根据标题进行审查后, 60 项研究未在 SLR 中列出, 因为它们是不必要的和不相关的。 结果, 根据标题选择 了 110 项主要研究。 根据摘要和结论进一步分析了这些研究, 并入围了 60 项研究。

图3 研究选择过程的搜索策略
图4 研究选择过程的搜索策略

最终根据以下质量评估对选定的研究进行了评估:

质量保证(QA) 标准:

  • QA‐1: “所选研究是否有助于回答RQ?”
  • QA‐2: “研究目的是否表达得很清楚?”
  • QA‐3: “有没有案例研究支持这项研究?”
  • QA‐4 “这项研究对工业界或学术界有任何价值吗?”

如果一项研究部分回答了 QA 问题, 则为该问题分配 0.5 的绩点。 如果该研究令人满意地回答了 QA 标 准, 则为其分配 1.0 的绩点。 对于每项选定的研究, 都会评估与 QA 标准相对应的绩点总和。 如果总和大于 或等于 2.0, 则该研究被选为 SLR 的主要研究。 最后, 50 项研究被确定为主要研究并被选为 SLR。 附录1总 结了选定的 50 项主要研究的清单, 附录 2 列出了这些研究的质量评估分数。 主要研究包括来自以下享有 国际声誉的期刊和会议的研究论文, 例如“IEEE 软件工程学报”、 “需求工程期刊”、 “LNCS 出版的会 议论文集”、 “国际软件工程会议” 和“国际需求工程会议”。 通过考虑选定的 50 项主要研究, 已经回 答了制定的 RQ。

3.4 数据综合

综合了与 50 项主要研究相关的数据, 以回答制定的 RQ。 采用以下方式来综合数据: RQ‐1 的答案用条形 图表示, 以说明在 SR 引出方法期间开展的各种活动; 见图 5。 RQ ‐2 的答案列于表 2, 其中总结了 SR 引出 的不同活动, 其中推荐系统有助于识别 SR。 RQ‐3 的结果以表格形式表示(见表 3), 其中描述了推荐系 统在需求引出过程中自动识别利益相关者所采用的各种技术, 以及自动化水平和所考虑的软件项目的规模。

图5 需求获取方法中的不同活动

对 RQ‐4 的观察 35以文本的形式记录下来。

表 2 SR 引出活动中的推荐系统

研究 需求引出中的推荐系统应用 方式方法 案例
S24 领域分析 使用 ARM 和 k‐NN 进行基于内容的推荐 Softpedia 防病毒产品
S25 自动化利益相关者分析 社交网络措施 RALIC 软件项目
S26 组织目标的领域分析、 识别和渠道化 上下文感知方法以及内容过滤算法 SE4S 项目
S27 利益相关者的识别和优先排序、 需求重 用、 软件发布计划 使用 Dice 系数进行基于内容的推荐, 使用群组推荐 多数投票, 使用偏好矩阵的基于知识 的推荐 格拉茨科技大学
S29 需求优先级 使基于内容的过滤 L‐1‐R‐1函数运算原理及分级均值 积分表示 IES
S30 需求优先级 自然语言处理技术与机器学习算法的结合 基于 Web 的 GIS
S33 需求识别与分析 Apriori 算法 包含 4000 条 FR 和 NFR 记录的合成数据集
S34 需求收集和分析 优化基于关联规则的推荐 三个不同领域的合成数据集
S35 需求识别、 分析和重用 基于混合内容的协同过滤推荐 RALIC 数据集

表3利益相关方建议的项目规模、技术和自动化水平过程

论文编号 项目规模 技术 自动化程度
S9 大规模 社会网络措施 自动化
S25 大规模 社会网络措施 半自动化
S38 大规模 混合推荐系统 半自动化
S39 大规模 权益QP 半自动化
S40 广义 社交网络措施、 协同过滤 自动化
S41 中大规模 混合推荐 半自动化
S42 中大规模作 二元协同推荐算法 半自动化
S43 小规模‐中规模 内容和协同过滤技术 自动化
S45 广义 社会网络措施 不适用

4 有效性威胁

本节旨在讨论可能影响 SLR 结论的潜在问题。 任何 SLR 的有效性都面临四大威胁, 即“结论有效性”、 “内部有效性”、 “结构有效性” 和“外部有效性” 36。 这些威胁是任何 SLR 的重要组成部分。 例如, Sadiq 等人37讨论了选择具有不完整语言偏好关系的 SR 的这些威胁。 下面简要讨论了不同类型的验证:

  1. 对结论有效性的主要威胁之一是选择适当的原始研究和综合数据时存在偏见。 为了削弱这种威胁, 设计了一种系 统的研究选择方法, 用于根据 QA 标准纳入和排除原始研究。 这种方法得到了准确实施, 以确认每项纳入的原始 研究的正确性。
  2. 在内部有效性方面, 讨论了感兴趣的变量与结果之间的关系。 在本研究中, 在推荐系统的背景下讨论了利益相关者 在需求获取和优先级排序过程中的应用。 很少有方法仅应用于 SR 的小数据集, 主要关注本地软件开发, 而不是 考虑全局软件开发。 因此, 可能无法评估使用推荐系统处理大型项目的方法的正确性能。 为了缓解这个问题, 只 要有可能, 就会考虑同一项工作的多种出版物来源。
  3. 在结构效度方面讨论了应用与理论之间的关系。 对结构效度的威胁之一来自于可能相关的主要研究的消除。 为了 遏制这种威胁, 定义了搜索程序, 并包括了与基于推荐系统的 SR 引出和优先级排序领域相关的所有研究。 与该 领域相关的灰色研究被排除在外。
  4. 最后, 对外部有效性的威胁包括限制将 SLR 的发现推广到研究范围之外的能力的问题。 在本研究中, 排除了灰色 和非英语研究。 我们认为, 本研究中使用的审查协议帮助我们选择了一组与领域知识相关的典型研究。 本研究的 结果更多地关注从工业和学术角度使用推荐系统领域进行需求引出。

5 结果与讨论

在本 SLR 中, 根据审查方案确定了 50 项主要研究。 这些研究发表于 2009 年至 2022 年。 图 4 显示了主要研究的年份分 布。

5.1 RQ‐1: SR 引出方法有哪些不同的活动?

需求引出是一组有助于收集特定问题领域信息的活动 [S1、 S2], 此阶段发生的错误会阻碍所提议的软件系统的成功 [S3、 S4]。 需求引出由以下活动组执行, 受不同因素的支配, 例如项目的范围和目标、 组织的类型和位置以及系统的规模。 这些因 素增强了需求的清晰度、 一致性、 有效性和明确性 [S5、 S6]。

根据我们的分析, 我们发现一些活动在需求获取方法中很常见。 例如, Pohl [S7] 描述了通常执行的三大类需求获取 活动。 Sandhu 和 Weis‐trofer [S8] 强调了需求获取在实现

组织和利益相关者的需求。 作者列出了需求获取中的五项主要任务, 并全面回顾了这些任务的重要性和挑战。 Mulla 和 Girase [S9] 提出了一项简明的研究, 重点研究了需求获取的五种不同活动。 Sharma 和 Pandey [S10] 讨论了对需求获取进行更详细描述的 必要性。

在他们的工作中, 作者考虑了需求获取的十项活动, 并确定了与之相关的各种挑战。 Bani‐Salameh 和 Aljawabrah [S5] 还在他 们的需求获取模型中提出了 10 种不同的活动。 作者通过他们的模型尝试为给定的软件项目生成所有正确的需求。 Jalil 等人 [S11] 将需求获取过程分为 5 个阶段。 Wong 和 Mauricio [S12] 提出了需求获取过程中嵌入的七种不同活动。 作者还确定了影响这些 获取活动的因素。 “软件工程知识体系”

(SWEBOK) [S13] 提出了两项被认为是 SR 引出中最重要的活动。

根据我们的回顾, 图 5总结了现有引出方法中常见的需求引出活动。 从图 5可以清楚地看出, 以下活动在大多数需求引出技术中很 常见: 确定应用领域、 确定利益相关者以及分析和确定需求、 文档和细化来源。 除了这些活动之外, 还引入了一些活动来处理引出方 法中的模糊性和不精确性。 例如, Sadiq [S14] 提出了一种基于模糊的利益相关者分析方法, 以便可以根据 SR 的重要性识别关键 利益相关者。 在各种 SR 引出技术中, 面向目标的方法也得到了应有的重视。 在这种方法中, 利益相关者的目标被分解为子目标, 以获 得系统的功能需求 (FR) 和非功能需求 (NFR) [S15]。 Mohammad 等人。 [S16] 开发了一种基于模糊的面向目标领域的 SR 分 析方法。 为了解决基于模糊的方法的问题, Sadiq 和 Devi [S17] 提出了一种使用粗糙集理论对 SR 进行优先级排序的方法。 在另一 项研究中, Sadiq 和 Devi [S18] 开发了一种使用模糊软集方法选择 IES 要求的方法。 在这些研究中, 小型和中型数据集已被用于 解释所提出的方法。 Amaral 和 Elias [S19] 提出了一种风险驱动的多目标进化方法用于 SR 选择。 在最近的一项研究中, Nazim 等人 [S20] 讨论了在 SR 选择和优先级排序研究中使用的不同类型的数据集。 在他们的研究中, 基于 IES 的数据集对模糊 AHP 和 模糊 TOPSIS 进行了比较。

5.2 RQ‐2: 推荐系统在需求识别领域有哪些应用?

如图 5 所示, 需求获取过程涉及不同的活动。 这些活动对于使用不同的技术从不同的利益相关者那里收集正确的需求非常重要。 如 果手动执行, 这些获取活动可能会非常耗时, 而且容易出错 [S21]。 推荐系统有助于解决这个问题。

在需求获取方法中, 推荐系统用于推荐潜在利益相关者。 推荐系统通过提供有关项目的信息让利益相关者了解最新情况。 如果有效地考 虑了利益相关者的观点, 利益相关者之间的共识也可以通过推荐系统达成 [S22, S23]。

Dumitru 等人 [S24] 提出了一种推荐系统, 该系统部署了一种增量聚类方法进行领域分析。 该方法强调了可用软件产品的规格, 使用关 联规则挖掘 (ARM) 和 k‐最近邻 (k‐NN) 推荐适用于正在开发的软件产品的功能。 有些研究将推荐系统与社交网络相结合, 以便确定大型项 目的需求。 例如, Lim 等人 [S25] 开发了一种 StakeNet 方法来引出大量 SR。 作者采用了社交网络措施来自动化利益相关者分析, 以便利 益相关者可以根据项目的需要相互推荐。 StakeNet 方法的关键步骤之一是收集利益相关者的资料并收集信息, 以生成 SR 的优先级列表。

其他各种研究也讨论了推荐系统在需求获取过程中的应用。 例如, Roher 和 Richardson [S26] 提出的上下文感知推荐系统解决了探索 应用领域、 确定组织目标和引导这些目标等活动。 所提出的推荐系统还考虑了项目的部署地点, 以协助整合可持续性。 Ninaus 等人 [S27] 开发了一种协助获取活动的方法, 包括支持利益相关者的识别、 需求的优先级排序和质量保证、 需求重用以及软件发布计划。 这种方法被称 为 INTELLIREQ, 它利用不同推荐技术的优势, 例如使用 Dice 系数的基于内容的推荐、 使用多数投票的群体推荐、 使用偏好矩阵的基于知识 的推荐等, 使需求模型更加一致和主动。 Iqbal 等人 [S27] [S28] 讨论了机器学习在自动化不同需求工程任务(例如需求引出和发现以及需 求规范) 方面的作用和应用。 作者指出, 机器学习为处理具有高度不精确性和模糊性的大型数据集的软件项目提供了更好的决策。 Ahmad 和 Sadiq [S29] 提出了一种基于推荐系统的方法来对 IES 的需求进行优先排序。 在他们的工作中, 作者确定了利益相关者及其要求的列表。 因此, 使用“L‐1R‐1反函数算术原理和分级平均积分” 表示来选择引出的 FR 和 NFR。 Lunarejo [S30] 提出了一种半自动多标准方法来解 决软件产品的 FR 和 NFR 需求识别的可扩展性和缺乏自动化的问题。 已经使用真实的基于 Web 的地理信息系统 (GIS) 评估了所提出的方 法。 Mohebzada 等人。 [S31] 在他们的系统映射中重点关注推荐系统在推荐利益相关者、 需求优先级、 相似需求等方面的应用。 据观察, 协 同过滤已被用于生成建议。

从文献中可以看出, 推荐系统在需求获取过程中发挥着重要作用, 而基于人工智能的自动化工具和技术 38以 及机器学习在需求获取过程中受到了广泛关注。 表 2总结了 SR 获取的不同活动, 其中推荐系统有助于识别 SR。

但同时, 推荐系统在引出活动过程中也面临着一些挑战, 例如不同类型的利益相关者的反馈和需求之间的关 系 [S32]。

5.3 RQ‐3: 推荐系统如何促进在需求获取过程中识别利益相关者?

来自不同领域的人们参与软件项目的需求获取。 这些个人或个人群体是利益相关者。 软件项目的成败受到各 种利益相关者参与的影响 [S9]。 识别利益相关者在实施过程中始终是一项艰巨的任务, 需要花费大量的精力 和时间才能确定软件项目的完整利益相关者名单。 推荐系统促进了这些任务, 并收集了对拟议软件系统有价 值的信息 [S36, S37], 如图 6 所示。 因此, 许多研究都集中于简化和自动化利益相关者的识别过程。 Mulla 和 Girase [S9] 在他们的研究中确定了各种社交网络指标, 可用于推荐和确定利益相关者的优先级。 该研究建议 建立一个社交网络, 其节点代表利益相关者。 网络的链接是利益相关者的建议。

在这里, 利益相关者推荐其他利益相关者进行识别和优先排序。 Castro‐Herrera 等人 [S38] 分析了传统技 术在涉及大量利益相关者的大型软件项目中的弊端。 作者进一步强调了推荐系统在促进关键利益相关者识 别方面的重要性。

在 [S38] 中, 作者提出了一种混合推荐系统来识别潜在用户, 以解决开源论坛中无人参与的帖子。 Lim 等 人 [S25] 开发了 StakeNet, 它使用社交网络识别、 推荐和优先考虑与软件项目相关的利益相关者。 Hujainah 等人 [S39] 提出了一种称为 StakeQP 的新型半自动化技术, 该技术有助于在软件需求引出期间量化和优先 考虑利益相关者。 使用 RALIC 数据集对该方法进行了评估, 以显示其在促进利益相关者的建议和后续要求方面的相关性和 有效性。

图6 软件项目中利益相关者推荐流程

Palomares 等人 [S40] 开发了 OpenReq 方法, 为需求获取提出相关利益相关者的建议。 该方法利用协作过滤推荐机制, 通过检查利益相关者在 早期软件项目中的贡献, 分析利益相关者在软件项目领域的实力和兴趣以及利益相关者的个人可用性。

Hariri 等人。[S41] 在他们的工作中建议识别和推荐对所考虑的软件项目具有熟练程度的利益相关者。 作者建议实施混合推荐系统来推荐三 类利益相关者, 即直接利益相关者、 间接利益相关者和推断利益相关者。 Castro‐Herrera 等人的工作 [S42] 专注于识别不同的利 益相关者并将其聚集到相关的在线论坛和讨论组中。 作者在他们的框架中结合了数据挖掘 39和机器学习, 以提供半自动化的帮助来 管理这些需求论坛。 为了识别和推荐某个领域的潜在专家, Castro‐Herrera 和 Cleland‐Huang [S43] 的方法会自动检查不同 利益相关者的贡献。

然后, 该方法使用机器学习来识别、 检查这些贡献并将其分类到不同的领域。 由此创建的利益相关者概况有助于对利益相关者进 行分类。 Milano 等人 [S44] 在对多利益相关者推荐系统的分析中提出了多利益相关者方法相对于传统的以用户为中心的推荐系 统观点的决定性优势。 作者强调并建议研究推荐系统对不同利益相关者利益的影响。 作者还将推荐系统的作用归功于dation 系统在促进大量利益相关者在在线论坛中的互动方面发挥着重要作用。 Felfernig 等人 [S45] 在他 们的研究中观察到, 对智能软件系统的需求日益增长, 以便自动为利益相关者提供支持。 作者强调了社交网络 在识别和推荐利益相关者以及对 SR 进行聚类以识别它们之间的依赖关系方面的重要性。

根据我们的审查, 我们发现利益相关者是软件项目成功的一个重要因素, 在推荐系统中得到了应有的考虑。 研究人员和学者提 出了各种模型来自动化与利益相关者有关的活动, 即识别和分析利益相关者、 推荐利益相关者、 向利益相关者提供建议等。

利益相关者识别方法主要关注不同类型的项目、 用于推荐的技术和自动化水平; 见表 3。

5.4 RQ‐4: 有哪些方法可以自动选择需求引出技术?

需求获取技术用于检查利益相关者的需求, 以确定所考虑软件的需求。 这些技术可分为传统技术、 群体获取技术、 认知技术、 情境 技术、 面向目标的技术、 质量功能部署方法、 面向包的需求获取等。 需求工程师在获取 SR 期间面临的挑战之一是选择合适的获取 技术 [S46]。

Darwish 等人 [S47] 列出了决定为给定软件项目选择何种技术的多种因素。 这些因素包括所考虑项 目的关键性级别、 项目规模和项目复杂程度。 在他们的工作中, 提出了一种使用三组分方法选择引出技术 的混合机器学习模型。 该方法首先通过文献综述来确定常见的引出技术及其影响因素。 第二步是使用多 元回归模型识别影响技术选择的因素。 最后, 使用提出的人工神经网络模型选择所需的引出技术。 Tiwari 等人 [S48] 专注于选择 SR 引出方法。 作者强调, 缺乏选择引出技术的推荐系统如何迫使利益相关者使 用传统的公司实践或个人经验。 Hussein 等人[S46] 在他们的工作中列出了 19 个因素, 这些因素被分 为 4 大类, 即引出者、 利益相关者、 项目和引出过程, 这些因素会影响需求引出技术的规范和选择。 作者开 发了一个原型来协助需求工程师执行这项任务。 虽然大多数选择都是利用需求工程师的专业知识手动 完成的, 但 Ibrahim 等人 [S49] 提出了一个模型来自动化这一过程。 在他们提出的模型中, 作者使用机 器学习方法来自动选择引出技术。 作者使用 k‐NN 算法来选择最合适的技术, 以协助需求工程师规划新 项目, 同时考虑到需求的复杂性特征。

此外, Dafaalla 等人 [S50] 提出了一种基于深度学习的决策模型, 用于自动选择需求获取技术。 作者希 望通过他们的模型减少人为错误, 从而提高软件项目开发中需求获取的效率。

根据我们的审查, 我们发现很少有研究关注需求获取技术选择的自动化。 在大多数研究中, 已经探索 了理论和启发式方法来为所考虑的项目选择获取技术。 但最近很少有研究提出机器学习模型来自动化 需求获取技术的选择。

6 比较研究

在本节中, 我们根据以下标准比较了基于推荐系统的 SR 引出过程与其他选定方法之间的 SLR: SLR 领域、 出版年份、 RQ 和推荐系统支持。 结果如表4 所示。

在比较研究的基础上, 发现需求 40获取是软件开发的关键过程。 需求获取有不同的方面, 如利益相关者的识别41、 需求获取技术的成熟度42、 数据驱动概念在需求获取中的应用43和 SR 选择 44。 现有的 SLR [1, 8–13]讨论了与需求获取技术相关的不同问题。 我们在 2009 年至 2022 年期间找 不到任何相关研究在基于推荐系统的需求获取过程领域提出 SLR。 因此, 本文试图填补这一研究空白。

表4 基于推荐系统的 SR 引出过程与其他研究的比较

作者 SLR领域 出版年份 RQ 推荐系统支持
Pacheco 和 Garcia 需求获取中的利益相关者识别 2012 RQ‐1: 目前在需求引出过程中使用什么 方法或技术来进行利益相关者识 别?
RQ‐2: 执行利益相关者识别 时建议采取哪些有效做法?
RQ‐3: 利益相关者识别不正确会 对软件需求的质量造成什么影 响?
RQ‐4: SI 的哪些方面是可取的做法?
Pacheco 等人 需求引出技术 2018 RQ‐1: 目前有哪些成熟的技术可用 于引出软件需求?
RQ‐2: 哪些成熟的技术可以 提高引出效果?
Lim 等人 数据驱动的需求引出 2021 RQ‐1: 哪些类型的动态数据可用于 自动需求引出?
RQ‐2: 哪些类型的技术和工艺可用 于自动化需求引出?
RQ‐3: 自动化的结果是什么 需求引出?
我们的工作 需求引出 2023 RQ‐1: 软件需求引出方法有哪些不同的活动?
RQ‐2: 推荐系统在软件需 求识别中有哪些应用?
RQ‐3: 推荐系统如何促进需求 引出过程中利益相关者的识别?
RQ‐4: 有哪些方法可以自动选择需 求引出技术?

7 结论、挑战和未来工作

本文介绍了基于推荐系统的 SR 引出过程的 SLR。 在此 SLR 中, 构建了一个审查协议来制定 RQ。 此 SLR 的结果展示了识别 SR 所涉及的不同活动,推荐系统在 SR 引出过程中的应用, 以及利益相关者的识别, 最后讨论了自动选择 SR 引出技术的方法。

对于 SR 的引出过程, 引出活动对于选择所考虑项目的全面、 完整和一致的需求列表是必不可少的。 我们的 SLR 发现, 确定应用领域、 确定利益相关者、 确定需求来源、 分析利益相关者以及选择引出工 具、 技术和方法是实际应用中使用的主要引出活动。 大多数这些引出活动都是以头脑风暴 45、 问卷调查、 讨 论、 会议等形式手动进行的, 但近年来, 任务的自动化程度逐渐提高。

因此, 我们的 SLR 进一步强调了各种推荐技术在需求引出中的重要性, 特别是利益相关者及其需求的 推荐和识别。

协作推荐技术和社交网络度量是实现软件项目利益相关者推荐过程自动化的最常用方法。 另一方面, 基于推荐的风险分析、 软件成本估算、 需求跟踪和 NFR 识别方法受到的关注较少。 研究结果表明, 现有 的 SR 引出技术存在一些局限性和相关挑战。 例如, 对于具有大量利益相关者的大型系统或利益相关 者经常改变意见的系统, 利益相关者的需求和后续目标可能会不一致。 这些不一致通过利益相关者之 间的协商来解决, 协商大多以启发式方式进行。 对这些不一致进行分类并实现协商自动化以提高软件 质量需要进一步研究。 此外, 在面向目标的需求引出方法中, 主要强调使用 AND/OR 图分析 SR。 将推荐 系统与目标导向方法相结合, 分析目标和利益相关者的不一致是未来需要解决的重要问题。

8 附录

表5 原始研究

论文编号 完整参考
S1 Cheng BHC, Atlee JM (2009) Current and future research directions in requirements engineering.Lecture Notes in Business Information Processing, 14:11–43.
S2 Dieste O, Juristo N (2011) Systematic review and aggregation of empirical studies on elicitation techniques. IEEE Transactions on Software Engineering, 37(2):283–304.
S3 Akbar MA, Alsanad A, Mahmood S, Alsanad AA, Gumaei A (2020) A systematic study to improve the requirements engineering process in the domain of global software development,” in IEEE Access, vol. 8, pp. 53374–53393.
S4 Dick J, Hull E, Jackson K (2017) Introduction. In: Requirements Engineering. Springer, Cham.
S5 Bani-Salameh H, Al-Jawabreh N (2015) Towards a comprehensive survey of the requirements elicitation process improvements. In: Proceedings of the International Conference on Intelligent Informa- tion Processing, Security and Advanced Communication, ACM International Conference Proceeding Series, 60:1–6.
S6 Alsanoosy T, Spichkova M, Harland J (2020) Cultural influence on requirements engineering activities:a systematic literature review and analysis. Requirements Engineering, 25(3):339–362.
S7 Pohl K (2010). Requirements engineering: Fundamentals, principles, and techniques, ed. 1, Berlin:Springer.
S8 Sandhu RK, Weistroffer, HR (2018) A review of fundamental tasks in requirements elicitation. Lecture Notes in Business Information Processing, 333:31–44.
S9 Mulla N, Girase S (2012) A new approach to requirement elicitation based on stakeholder recommendation and collaborative filtering. International Journal of Software Engineering & Applications, 3(3):51–60.
S10 Sharma S, Pandey SK (2014). Requirements elicitation: Issues and challenges. In: 2014 International Conference on Computing for Sustainable Global Development, INDIACom 2014, pp. 151–155.
S11 Jalil R, Khalid J, Maryam M, Khalid M, Cheema SN, Iqbal I (2019) Requirement elicitation for bespoke software development: a review paper. In: International Conference on Intelligent Technologies and Applications, 932:805–821.
S12 Wong LR, Mauricio DS (2018) New factors that affect the activities of the requirements elicitation process. Journal of Engineering Science and Technology, 13(7):1992–2015.
S13 Bourque P, Fairley RE (2014) SWEBOK V3.0 Guide to the Software Engineering Body ok Knowledge. In IEEE Computer Society.
S14 Sadiq M (2017) A fuzzy set-based approach for the prioritization of stakeholders on the basis of the importance of software requirements. IETE Journal of Research, 63(5): 616–629.
S15 Horkoff J, Aydemir FB, Cardoso E et al (2019) Goal-oriented requirements engineering: an extended systematic mapping study. Requirements Engineering, 24(2): 133–160.
S16 Mohammad CW, Shahid M, Hussain SZ (2021) Fuzzy attributed goal oriented software requirements analysis with multiple stakeholders. International Journal of Information Technology, 13:1–9.
S17 Sadiq M, Devi VS (2022) A rough-set based approach for the prioritization of software requirements. International Journal of Information Technology, 14: 447–457.
S18 Sadiq M, Devi VS (2022) Fuzzy-soft set approach for ranking the functional requirements of software. Experts Systems with Applications, 193:1–7.
S19 Amaral A, Elias G (2019) A risk-driven multi-objective evolutionary approach for selecting software requirements. Evolutionary Intelligence. 12: 421–444.
S20 Nazim M, Mohammad CW and Sadiq M (2022). A comparison between fuzzy AHP and fuzzy TOPSIS methods to software requirements selection. Alexandria Engineering Journal, 61(12), pp.10851– 10870.
S21 Meth H, Brhel M, Maedche A (2013). The state of the art in automated requirements elicitation. In Information and Software Technology, 55(10):1695–1709.
S22 Al-walidi NH, Mahmood MA, Ramadan N (2019) Recommender systems in requirements engineering: A systematic literature review. In: The 54 th Annual Conference on Statistics, Computer Sciences and Operations Research, pp. 44.
S23 Carlos CH, Jane CH (2010) Utilizing recommender systems to support software requirements elicitation. In: Proceedings of the 2nd International Workshop on Recommendation Systems for Software Engineering ACM, pp. 6–10.
S24 Dumitru H, Gibiec M, Hariri N et al (2011) On-demand feature recommendations derived from mining public product descriptions. In: International Conference on Software Engineering proceedings, pp. 181–190.
S25 Lim SL, Quercia D, Finkelstein A (2010) StakeNet: using social networks to analyse the stakeholders of large-scale software projects, In: ACM/IEEE 32nd International Conference on Software Engineering, pp. 295–304.
S26 Roher K, Richardson D (2013) A proposed recommender system for eliciting software sustainability requirements. In: 2nd International Workshop on User Evaluations for Software Engineering Research- ers 2013 – Proceedings, pp. 16–19.
S27 Ninaus G, Felfernig A, Stettinger M et al (2014) INTELLIREQ: Intelligent techniques for software requirements engineering. Frontiers in Artificial Intelligence and Applications, 263:1161–1166.
S28 Iqbal T, Elahidoost P, Lucio L (2018) A bird’s eye view on requirements engineering and machine learning. In: 25th Asia–Pacific Software Engineering Conference 2018, pp. 11–20.
S29 Ahmad S, Sadiq M (2015). Recommender systems for software requirements negotiation and prioritization. In: International Journal of Computer Applications, 117(13):975–8887.
S30 Lunarejo MIL (2021) Requirements prioritization based on multiple criteria using Artificial Intelligence techniques. In2021 IEEE 29th International Requirements Engineering Conference (RE) 2021 pp. 480–485, IEEE.
S31 Mohebzada JG, Ruhe G, Eberlein A (2012) Systematic mapping of recommendation systems for requirements engineering. In: 2012 International Conference on Software and System Process Pro- ceedings, pp. 200–209.
S32 Williams I, Yuan X (2019) Recommender systems for software requirements engineering: Current research and challenges. In: IEEE SoutheastCon, pp. 1–6.
S33 AlZu’bi S, Hawashin B, EIBes M, and Al-Ayyoub M (2018) A novel recommender system based on apriori algorithm for requirements engineering. In 2018 fifth international conference on social net- works analysis, management and security (snams) (pp. 323–327). IEEE.
S34 Muhairat M, AlZu’bi S, Hawashin B, Elbes MW, and Al-Ayyoub M (2020). An intelligent recommender system based on association rule analysis for requirement engineering. J. Univers. Comput. Sci., 26(1), 33–49.
S35 Shambour QY, Hussein AH, Kharma QM, and Abualhaj MM (2022). Effective hybrid content-based collaborative filtering approach for requirements engineering. Computer Systems Science & Engineering,40(1).
S36 Robillard M, Walker R, Zimmermann T (2010) Recommendation systems for software engineering. IEEE Software, 27(4):80–86.
S37 Sivapalan S, Sadeghian A, Rahnama H, Madni AM (2014) Recommender systems in e-commerce.World Automation Congress Proceedings, pp. 179–184.
S38 Castro-Herrera C, Duan C, Cleland-Huang J, Mobasher B (2009) A recommender system for requirements elicitation in large-scale software projects. In: Proceedings of the ACM Symposium on Applied Computing. pp. 1419–1426.
S39 Hujainah F, Bakar RB, Abdulgabber MA (2019) StakeQP: A semi-automated stakeholder quantification and prioritisation technique for requirement selection in software system projects. Decision Support Systems, 121:94–108.
S40 Palomares C, Franch X, Fucci D (2018) Personal recommendations in requirements engineering: The openreq approach. Lecture Notes in Computer Science (Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 10753:297–304.
S41 Hariri N, Castro-Herrera C, Cleland-Huang J, Mobasher B (2014) Recommendation systems in requirements discovery. In: Recommendation Systems in Software Engineering, pp. 455–476.
S42 Castro-Herrera C, Cleland-Huang J, Mobasher B (2009) Enhancing stakeholder profiles to improve recommendations in online requirements elicitation. In: Proceedings of the IEEE International Confer- ence on Requirements Engineering, pp. 37–46.
S43 Castro-Herrera C, Cleland-Huang J (2009) A machine learning approach for identifying expert stakeholders. In: 2nd International Workshop on Managing Requirements Knowledge, pp. 45–49.
S44 Milano S, Taddeo M, Floridi L (2021) Ethical aspects of multi-stakeholder recommendation systems.The Information Society, 37(1):35–45.
S45 Felfernig A, Ninaus G, Grabner H et al (2013) An overview of recommender systems in requirements engineering. In: Managing Requirements Knowledge Springer, pp 315–332.
S46 Hussein IH, Din J, Baharom S, Jasser MB (2021). An approach for selecting the suitable requirement elicitation technique. In: Turkish Journal of Computer and Mathematics Education 12(3).
S47 Darwish NR, Mohamed AA, Abdelghany AS (2016) A hybrid machine learning model for selecting suitable requirements elicitation techniques. In: International Journal of Computer Science and Infor- mation Security, 14(6):380–391.
S48 Tiwari S, Rathore SS, Gupta A (2012) Selecting requirement elicitation techniques for software projects. In: Sixth International Conference on Software Engineering, pp. 1–10.
S49 Ibrahim HME, Ahmad N, Rehman MB, Ahmad I, Khan R (2019) Implementing and automating elicitation technique selection using machine learning. In: Proceedings of 2019 International Conference on Computational Intelligence and Knowledge Economy, pp. 564–569.
S50 Dafaalla H, Abaker M, Abdelmaboud A et al. (2022). Deep learning model for selecting suitable requirements elicitation techniques. Applied Sciences, 12(18), 9060.

表6 所选 50 项原始研究的质量保证评分结果

论文编号 QA‐1 QA‐2 QA‐3 QA‐4 分数
S1 0.5 1 0 0.5 2
S2 0.5 1 0 1 2.5
S3 0.5 1 0 1 2.5
S4 0.5 1 1 1 3.5
S5 0.5 1 0 1 2.5
S6 0.5 1 0 1 2.5
S7 1 1 0 1 3
S8 1 1 0 1 3
S9 1 1 0 1 3
S10 0.5 1 0 1 2.5
S11 0.5 1 0 1 2.5
S12 1 1 0 1 3
S13 0.5 1 0 1 2.5
S14 0.5 1 1 1 3.5
S15 0.5 0.5 1 1 3
S16 0.5 1 1 1 3.5
S17 0.5 1 1 1 3.5
S18 0.5 1 1 1 3.5
S19 0.5 1 1 1 3.5
S20 0.5 0.5 1 1 3
S21 0.5 1 0 1 2.5
S22 1 1 0 1 3
S23 0.5 1 0 1 2.5
S24 0.5 1 0 1 2.5
S25 1 1 0 1 3
S26 0.5 1 1 1 3.5
S27 0.5 1 0 1 2.5
S28 0.5 1 1 1 3.5
S29 0.5 1 1 1 3.5
S30 1 1 0 1 3
S31 1 1 0 1 3
S32 1 1 0 1 3
S33 0.5 1 1 1 3.5
S34 0.5 1 1 1 3.5
S35 0.5 1 1 1 3.5
S36 0.5 1 0 1 2.5
S37 0.5 1 0 1 2.5
S38 1 1 0 1 3
S39 0.5 1 0 1 2.5
S40 1 1 0 1 3
S41 1 1 0 1 3
S42 0.5 1 1 1 3.5
S43 0.5 1 1 1 3.5
S44 0.5 1 0 1 2.5
S45 1 1 0 1 3
S46 0.5 0.5 0 1 2
S47 0.5 1 1 1 3.5
S48 0.5 0.5 0 1 2
S49 0.5 1 0 1 2.5
S50 1 0.5 0.5 1 3

9 参考引用