没有合适的资源?快使用搜索试试~ 我知道了~
沙特国王大学学报CDBR:一种基于依赖关系的半自动协同执行需求优先级排序方法Ankita Gupta,Chetna GuptaJaypee Institute of Information Technology,A-10 Sector 62,Noida,印度阿提奇莱因福奥文章历史记录:2018年5月9日收到2018年8月30日修订2018年10月5日接受在线发售2018年关键词:协作机器学习需求依赖性需求优先级需求工程A B S T R A C T需求优先级排序过程的成功很大程度上取决于利益相关者和开发人员在确定优先级时如何处理不同的约束和影响因素。本研究的主要目标所提出的方法针对三个主要的限制很少在现有的工作,即需求之间的依赖关系,利益相关者和开发人员之间的沟通和可扩展性的问题。对几个不同的要求集进行性能评估的结果,并通过比较CDBR与其他国家的最先进的方法,即层次分析法和IGA的案例研究。结果在有效性、效率、可扩展性和利益相关者和开发人员之间的分歧关注方面是准确和可比的CDBR在效率和处理时间方面分别优于AHP和IGA。©2018作者(S)。由爱思唯尔公司出版代表沙特国王大学这是一个开放的访问CC BY-NC-ND许可证下的文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。1. 动机和介绍需求工程的挑战性任务之一是确定需求池中的哪些需求比其他需求更可取,应该首先考虑实现。当需求集更大时,这个决策制定变得更加复杂和乏味。为了增加任何软件系统的经济价值和成功,捕获、分析和优先化需求是必不可少的,这在很大程度上取决于对涉众需求、关注点和标准的接受程度(Davis,2003;Mead,2006;Perini等人,2007年)。做出“正确”选择的关键之一确定需求优先级的挑战性任务是*通讯作者:Deptt.印度诺伊达Jaypee信息技术学院CSE/IT电 子 邮 件 地 址 : ankita.gupta. gmail.com ( A.Gupta ) , gmail.com ( C.Gupta)。沙特国王大学负责同行审查短语通常情况下,有数百个单独的需求,并且很可能涉众希望将所有需求合并到软件项目中。但现实是,并非所有的特性或需求都是真正必要的,许多涉众不会同意哪些需求是重要的,哪些不是。大多数软件项目都有更多的候选需求,这些需求可以在可用的预算、时间限制、涉众期望和技术限制内得到承认。根据相关利益相关者的看法确定重要和核心要求的过程在过去的几十年中,已经提出了许多需求优先化技术(Chatzipetrou 等人, 2010; Karlsson 和 Ryan , 1997;Kaiya等人,2002; Wiegers and Things,1999; Greerand Ruhe,2004; Perini et al.,2013年; Saaty,2004年),其考虑单个或多个参数(标准)来确定需求的优先级。这些参数通常一起作用,相互沟通,单个角度的变化可以对参数的不同方面产生影响。一个错误的决策可能会导致组织的额外成本,其影响可能是多方面的(Ruhe等人,2003年),影响其他要求,其https://doi.org/10.1016/j.jksuci.2018.10.0041319-1578/©2018作者。由爱思唯尔公司出版代表沙特国王大学这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。制作和主办:Elsevier可在ScienceDirect上获得目录列表沙特国王大学学报杂志首页:www.sciencedirect.com422A. 古普塔角Gupta/ Journal of King Saud University关系值、依赖性(Perini等人, 2013),这可能会进一步传播到其他层面,如架构层面,设计层面和产品的未来发展(Wiegers和Beatty,2013)。为了有效地确定需求优先级,必须由涉众和开发人员合并不同的方面,以帮助决策过程。 大部分的优先化技术受到各种研究人员在他们的工作中报告的一个或另一个关注点或问题的困扰(Mead,2006; Perini等人,2007; Leffingwell和Widrig,2000;Chatzipetrou等人,2010; Karlsson和Ryan,1997; Kaiya等人,2002; Wiegers andThings,1999; Greer and Ruhe,2004; Periniet al.,2013; Saaty,2004; Ruhe等人,2003),例如,不适合承认依赖的必要性,缺乏涉众和开发人员之间的协作支持,不考虑涉众的关键利益和约束,耗时,敏感-一个单独的错误可能影响整个优先级排序,不能解决逻辑不一致,不适合处理复杂情况,不提供对多标准偏好的支持,并产生有问题和有偏见的最终排序。本研究的重点是提供一个决策支持系统,选择“正确”的顺序的需求,从一个给定的超集的候选人的需求,考虑关键利益相关者和开发人员的关键利益,约束,偏好,这有助于实现整体的商业价值的产品。基于这一目标,本研究试图克服现有方法的局限性,例如,通过以协作的方式使用由用户和领域知识组成的混合知识库来提供对利益相关者和开发人员初始偏好的启发的支持,分析需求之间的关系,(依赖),只考虑需求之间的业务和贡献依赖关系,而不考虑需求依赖之间的执行关系,使用学习算法处理多准则偏好和可扩展性问题。协作是一种战略手段,在这种战略手段中,利益相关者的标准和开发人员的标准得以实现,从而通过从双方的角度出发来实现构建软件项目的目标。在这项研究中,这种合作是通过考虑利益相关者和开发人员的初始优先级列表来实现的,以生成最终的排序。在本文中,我们将只在上述背景下使用协作或协作努力。通过本研究解决了以下研究问题:计算CDBR与AHP、CDBR与IGA之间的精度差异.RQ 2:分析所提出的方法的结果是否有能力处理错误(由利益相关者或开发人员在分配初始优先级值时犯下的错误)。研究问题3:分析所提出的方法产生的优先级是否与IGA和AHP的优先级列表相当?整个过程在两种类型的实证研究中测试其准确性-一种是评估所提出的方法在处理九个不同需求集的可扩展性问题方面的性能,作为实验的一部分,另一种是案例研究,以评估与分析层次分析法(AHP)(Saaty,2004)和交互式遗传算法(IGA)(Tonella等人, 2013年)。实验结果表明,与IGA相比,该方法的排序结果准确、可比,优于AHP,保证了排序结果的正确性、有效性和可比性,具有较强的可靠性和抗误差能力本文的其余部分组织如下。在第2节中,列出了与需求优先级相关的工作。第3节介绍了拟议的方法,CDBR与详细讨论,关于利益相关者和开发人员如何合作并提供初始优先级的问题,这些优先级又用于使用机器学习算法计算最终需求排序的算法中。第4节说明了所提出的方法的算法。第五部分介绍了本研究所处理的各种研究问题,并进行了实证验证,并与层次分析法进行了比较。最后,第6节给出了结论。2. 相关工作在过去的二十年里,已经提出了一系列的需求优先级技术来处理需求优先级的问题。到目前为止,提出的大部分方法考虑一个或多个视角(标准),例如,需求对组织的商业价值、实现的紧迫性、必要性、需求之间的依赖性、复杂性、处理太多涉众的问题、处理涉众和开发人员关于需求的不同意见为了有效地确定需求优先级,必须结合涉众和开发人员的不同观点,以帮助决策过程。这些现有的算法解决了诸如成本、惩罚、风险、努力等问题,并且使用多标准决策、成对比较、等级学习、相似需求的聚类、B树、人工智能技术的概念来为给定的需求集提供最终的等级(Achimugu等人, 2014年)。在最常用的技术中,层次分析法(AHP)(Saaty,2004)通过执行成对比较来确定需求的相对重要性,以获得所有需求的加权分数成本-价值优先技术(Karlsson和Ryan,1997)通过确定需求的价值与其实现成本来确定最高需求一种名为累积投票($100-Test)的技术(Leffingwell andWidrig,2000)根据$100在基于重要性的需求之间的分布来确定每个需求的相对重要性然后,这些值根据从$100开始的赚取值以升序排序数值分配(Sommerville和Sawyer,1997年)通过将每项要求按其重要程度分为三组,即低、中、高,为每项要求分配价值 除了上面列出的技术之外,诸如冒泡排序、二元搜索树、最小生成树、优先级组、MosCow、双赢、规划游戏、质量功能部署、前十和二元优先级列表的其他技术也得到了充分的考虑(Karlsson等人, 1998),但根据Thakurta(2012)的报告,使用这些技术在评估需求之间的相对优先级差异方面带来了相当大的挑战和困难。最近,研究人员探索了机器学习的应用,技术,例如,基于案例的排名(Perini等人,2013)、自适应AHP(Jawale等人,2017)和模糊层次分析法(邝和Bai,2002年),它使用语言权重来根据使用学习算法的预定义标准对需求进行优先级排序。Perini等人(2013)使用可利用的隐式知识来使用机器学习对需求进行优先级排序。EVOLVE方法(Greer andRuhe,2004)提供了一种借助遗传算法对增量软件开发进行连续规划的方法。该算法考虑了开发需求所需的工作量,因此为发布下一个模块提供了解决方案。交互式遗传算法(IGA)(Tonella等人,2013)使用遗传算法来处理需求之间的依赖关系,并且旨在与AHP相比减少引出对的数量。该算法有效地减少了比较次数●●●A. 古普塔角Gupta/ Journal of King Saud University423-并因此处理优先化需求的可扩展性问题。它使用多个交互式会话来最终推导优先级列表。Duan et al.(2009)考虑到聚类和机器学习技术来处理更多的非功能需求,因此提出了一种处理大量需求的自动化技术。这种技术允许涉众在更高的抽象层次上工作,并提供了一个自动化的平台,便于分析需求。 Gambo等人(2018)提出了一种综合技术,使用模糊多标准决策(FMCDM),相似性度量和基于目标的方法来确定需求优先级。这使用了语言和不确定的优先级条件。Ishaya等人提出的方法考虑了开发人员,但缺乏对依赖需求的思考。Misaghian和Motameni(2018)通过在张量分解的帮助下包括非功能性和功能性需求来进行优先级排序,从而增加了研究。该文件未能考虑依赖的概念和利益相关者和开发人员的协作努力。各种基于搜索的软件工程(SBSE)方法也采用了机器学习技术,如遗传算法、贪婪搜索和TABU搜索(de Souza等人,2011年)对需求进行优先排序,旨在根据客户需求决定产品的下一个版本。Zhang等人(2007)已经探索了使用Pareto最优遗传算法和NSGA-II来为下一版本的需求划分优先级。从文献中值得注意的是,现有技术遭受一个或多个问题,即可扩展性、处理依赖性、需求演变、等级更新和与利益相关者沟通困难相关的问题(Tonella等人,2013年)。在所有这些限制中,依赖性和可扩展性被认为是严重的问题之一。它在文学中已经被强调(Tonella等人,2013年),在现有的优先排序方法中很少讨论需求之间的依赖性问题。依赖性是一个关键属性,如果处理不当,可能会导致错误或冗余的结果。需求可以是独立的,也可以是相互依赖的。在前一种情况下,相关性不会对优先级确定过程产生影响,但实际上,需求是相互关联的,相互依赖的需求在确定优先级时需要大量关注,因为它们不能单独实现。Carlshamre等人(2001)对五个独立的需求库进行的研究报告说,只有20%的需求是独立的,80%的需求是相互依赖的。因此,在这种情况下,准确的优先级排序结果不能整个过程都是有风险的。因此,整个过程的复杂性直接取决于系统中相互依赖的需求的总数,并且为这种复杂系统确定需求的优先级是具有挑战性的任务之一。很少有技术像EVOLVE(Greer和Ruhe,2004)、交互式遗传算法(IGA)(Tonella等人, 2013)和Drank(Shao等人,2017年)在优先考虑的同时解决了依赖性问题。有时,要求涉众根据他们的偏好和需求依赖性对需求进行优先级排序(Tonella等人, 2013年)。优先级排序技术,如AHP和冒泡排序(Saaty,2004;Park等人,1999; Babar等人,2011)面临可扩展性问题,因为基于可能的配对来比较要求,从而导致n(n 1)/2次比较,其中n是要求的数量,并且当要求的数量变高时,系统开始变得复杂。这又使得这些技术对于真实世界场景消耗时间(Babar等人,2011; Thakurta,2012)。另一个影响优先化的重要问题是在优先化时与利益相关者的沟通微不足道(Tonella等人,2013年)。文献表明,大多数优先排序技术不支持利益相关者之间的沟通,过 去 的 项 目失 败 ( Attarzadeh 和 Ow, 2008 年 ; Gold 等 人 , 2010;Savolainen,2011; Standish Group,2009)。Perini等人(2013年)完成的工作将其报告为需求优先级排序技术的局限性之一。因此,利益相关者和开发人员必须与目标合作,以实现关于给定需求集的优先级的共同意见(Ruhe等人,2003年)。利益相关者和开发人员之间的健康沟通有助于减少业务挑战和分歧问题。Gupta和Gupta(2018)提出了一种技术,该技术考虑了利益相关者和开发人员的优先级值,但忽略了需求之间的依赖性因素。技术如(Chatzipetrou等人,2010年;Fehlmann,2008年)考虑了沟通问题,但不适用于要求范围从10到30人,涉及5-6个利益相关者的小规模项目。3. 该方法大多数优先级技术,从文献中得出的结论,分为两类的基础上提供的信息具体的要求。根据Kwong和Bai(2002),这两个类别是:(a)先验和(b)后验。前者独立于分析中的特定需求准则后验观点是基于这样一个事实,即手头问题的解决方案是从过去类似问题的可能解决方案中推断出来的。著名的技术如交互式遗传算法(Tonella等人,2013),层次分析过程(Saaty,2004)属于这一类。本文提出了一种迭代的混合方法,称为协作依赖性排序方法,简称CDBR,它遵循先验和后验的角度进行需求优先化。利益相关者根据两个目标标准(即对业务价值的重要性和紧迫性)分配初始优先级另一方面,开发人员在通过流图分析需求之间的先执行后执行(EBA)依赖关系后,完全遵循后验观点(详细信息在第3.1.2中讨论)。在该初始优先级排序之后,CDBR利用粒子群优化(PSO)(Kennedy,2011)优化算法的使用来最小化利益相关者和开发者排序之间的分歧,以便生成最终可接受的优先级以用于实施。正如第2节所讨论的,研究人员已经有效地使用了一般的进化计算(EC)技术和遗传算法(GA),特别是在过去的需求优先级。本研究利用粒子群优化算法,因为它与进化计算和遗传算法有许多相似之处粒子群优化算法和遗传算法都是基于种群的进化算法,它们最大的区别在于粒子和基因的定义不同粒子群算法是一种面向智能体的粒子群算法,其中粒子是半自治的智能体,它们相互了解对方的状态,并决定改变自己的状态,使之朝着在其所在位置上观察到的 另一方面,基因不是代理人,没有任何能力来感知周围的环境,使得PSO比GA收敛得更快(Hassan等人, 2005年)。Elbeltagia和Grierson(2005)对最近五种基于进化的算法进行了实验,即遗传算法、模因算法、粒子群、蚁群系统和混合蛙跳,以评估这些算法在成功率、解质量、424A. 古普塔角Gupta/ Journal of King Saud University处理时间和计算效率。他们的工作结果得出结论,PSO在成功率和解决方案质量方面优于其他算法,在处理时间方面仅次于蚁群优化总体上,PSO被认为是更有效的计算(使用更少的功能评估)比GA。这使得PSO作为一个坦率的选择,用于进行这项研究的需求优先级。3.1. 初始优先级分配受上述观察的启发,CDBR旨在提供利益相关者和开发人员都可以接受的最佳优先级列表。使用粒子群优化,CDBR最大限度地减少了利益相关者和开发人员以基于个人标准的排名形式提供的输入所产生的优先级值之间的分歧。优先化的整个过程总结在图中。1 .一、考虑一个有限的需求池集R ={R1,R2...............................Rn}用于优先级排序,其中存在一组利益相关者和开发人员,使得S = {S1,S2. ... . S n}和D ={D 1,D 2........................................................................Dn}。CDBR可以有效地处理由利益相关者和开发人员独立提供的多个标准的单个和多个决策利益相关者是那些代表组织的人,他们将记录需求。另一方面,为了避免混淆,我们将仅在上述上下文中使用利益相关者和用户。3.1.1. 利益相关者的初始优先级分配决策是一种人类固有的能力,它并不是真正明智的指导,可以建立在明确的或推断的假设之上,这些假设不需要对可行的备选方案进行准确和完整的估计。考虑到这一点,利益相关者将以最初优先的形式表达他们的偏好,仅作为语言价值。使用语言值而不是数字的主要原因是语言字符-特征化没有数字化那么具体,但可以认为更接近人们表达和使用他们的洞察力的方式。例如,如果我们说在这种情况下,“更重要”是变量“需求的优先级”的语言值,其不如数值"第一”精确和提供信息。尽管其信息量较少,但值“更重要”使人们能够正常表达和管理可能不确定或不完整的数据(利益相关者可能不知道特定要求的确切级别)。在信息不精确在现实生活中非常常见的这种情况下,语言变量可以是捕获利益相关者知识的强大媒介,其中用于优先化要求的语言术语集是:{非常低,低,中,高,非常高}以表示一个标准相对于另一个标准的相对重要性。这些语言值将用于评估评级,以绘制映射到顺序标度的每个术语集的重要性(参见表1),这使得软件开发人员更容易推断出信息,这些信息将作为所提出算法的输入之一。为了说明该过程,让我们考虑具有10个要求的示例情况,使得R ={R1,R2. . R10}。利益相关者的初始优先级是根据下划线的启发过程(上文讨论)产生的,该过程使用多标准决策分析来交织人类活动。表2给出了语言值的引出和映射,以生成涉众优先级的序数值。3.1.2. 开发商初始优先级分配开发人员使用依赖流图来分析数据和控制需求之间的依赖关系。在依赖流图中,节点表示依赖于其他需求的需求,边表示它们之间的依赖关系。依赖性通常是随着时间的推移而表现出来的,它表明后面的需求在其依赖性被满足之前不能被处理。使用依赖图的目的是捕捉需求之间的交互,这有助于开发人员图1.一、CDBR优先级排序过程的基本布局A. 古普塔角Gupta/ Journal of King Saud University425表1语言标度值到顺序标度的映射这使其成为提取相关知识的有效机制语言标度映射序数值定义利益相关者给出的初始优先级以及他们之间的关系表示为开发人员对给定需求集的优先级,以这种方式存在均衡非常高1基本,应立即高2相对重要,但不如非常高中3必需,但不是立即需要,对基本功能低4不立即需要,也基本功能非常低5不显著,不会对基本功能性=表2利益相关者最初的偏好作为优先投入。要求语言尺度值优先R1非常高1R2介质3R3低4R4高2R5非常高1R6非常低5R7低4R8非常高1R9介质3R10低4为了(i)分析用于对给定节点的流内(输入边)和流外(输出边)依赖性进行计数的要求(i i)找到实现顺序,使得依赖性在我们到达那里时得到满足(iii)在间接依赖(传递)要求之间进行推断(iv)在优先化的同时突出并加速非线性分支情况非线性分支是指在给定点处存在可用于实现的多于一个需求并且分配更高等级的决定是基于满足它们的依赖性的事实CDBR捕获需求之间所有可能的执行流(之前和之后),由具有单个入口和出口的节点和边组成定义1.我们定义了需求之间的执行前后(EBA)依赖关系,作为可能的执行集,将在某个需求R之前或之后执行。给定一个依赖图G,具有三个要求X,Y和Z,使得G(X,Y,Z)2EBA对于G当且仅当:1. X不能在Y实现之前执行(直接或传递)2. Y不能被执行,直到Z被实现,这为X执行(直接或传递)施加了传递条件。在这种情况下,X被称为依赖者依赖于它的依赖性。双态性是有方向的;如果X依赖于Y,并需求之间存在两种类型的依赖关系,即直接依赖关系和间接依赖关系。如果需求X依赖于需求Y,那么X直接依赖于Y(上面的情况1)。如果X依赖于Y,Y依赖于Z,那么X对Z有间接依赖性(上面的情况2)。如果你不能在没有Y的情况下实现X,不能在没有Z的情况下实现Y,那么你也不能在没有Z的情况下实现X利益相关者和开发人员之间的标准和初始排名。下面的图2展示了表2中列出的示例需求集的依赖性流程图。需求之间的依赖关系是根据价值、成本、复杂性、资源可用性、工作量和优先场景的约束随机添加的。下面的表3列出了所有的before-after explosion依赖关系及其依赖关系类型。从表3中可以注意到,R10没有任何之前的依赖性,但对两个要求R8和R9有之后的依赖性这意味着在R8和R9之前,必须实现R10,R8和R9之前都依赖于R10。使用相同的概念,整个优先级列表可以从开发人员的一侧计算利益相关者和开发人员的初始优先级被认为是“理想”偏好。最终的优先级排序将作为结果计算,并作为CDBR的输出。它使用这些3.2. 基于粒子群优化算法的最终优先级估计给定利益相关者和开发者的初始排名,粒子群优化将通过根据适应度函数改进候选或可能的解决方案来迭代地优化问题,该适应度函数实际上它通过在整个相邻搜索空间中将它们移向“最佳”可能解决方案来处理可能解决方案的关键性。一个单一的解决方案被称为粒子的位置。等式(1)和(2)用于计算这些粒子向最佳解移动期间的位置及其相应速度的近似值。其目的是引导粒子向适应度函数的值对给定问题最vi1wωvic1ωrandωpbest-presentic2ωrandpresenti1 presentivi2图二. 依赖流图。426A. 古普塔角Gupta/ Journal of King Saud UniversityXΣð ÞΣð ÞX表3所有可能的执行前后依赖关系,它们的依赖类型和需求集的最终优先级列表在表2中列出。表4示例开发者优先级、利益相关者优先级和粒子位置。直销前-直销后要求相依集间接相依集优先级列表开发商<8,9,10,7,5,4,6,3,2,1>R1R4-B,R5-B,R2-AR4,R5R6,R7,R8,R9,R10R2R1-B,R3-BR1,R3R4,R5,R6,R7,R8,R9,R10R3R5-B,R2-AR5R6,R7,R9,R10R4R7-B,R1-AR7R5,R6,R8,R9,R10R5、R6-B、R1-A、R3-A、R7-A R6R 9,R 10R6R 9-B,R 5-AR 9R 10R7R8-B,R5-B,R4-A R5, R8 R6, R9, R10R8R 10-B,R 7-AR 10R9R 10-B,R 6-AR 10R10R8-A R9-A优先级列表:R10、R9、R8、R6、R5、R7、R4、R1、R3、R2利益相关者1,3,4,2,1,5,4,1,3,4>颗粒(P1)2,5,6,1,3,4,7,9,10,8>3.2.1. 粒子个体优先级-开发者优先级和粒子个体优先级-利益相关者优先级之间的不一致计算参考上表4,根据P1,应首先实现R2 根据图1的开发者优先级和依赖流图, R2依赖于R4、R5、R6、R7、R8、R9,aB表示关系之前,A表示关系之后。R10 排在第九位。因此,出现了分歧-位置向量,present是当前粒子(解决方案),表示算法当前迭代时的需求优先级列表。速度v是粒子速度,并被定义为需求优先级值的变化因子pbest和优先级值对中的项。我们正在考虑一个不一致值1,表示两个优先级值之间的冲突。类似地,识别其他冲突对,并且使用等式计算不一致值。(3)和(4)。表5总结了P1和devel- oper优先级的所有优先级值计算的差异。gbest是分别被认为是迭代和直到那时执行的所有迭代的最优或最佳解的那些优先级向量。rand()是区间(0,1)中的随机数,c1是d博士1如果0如果njDi-Pij>03jDi-Pij ¼0最后访问的位置,c2是一个继续图1中的优先级排序过程,下一步是应用PSO为给定的需求集生成优先级。优先级顺序(10代表需求总数这个范围描绘了粒子的优先级(位置)的可能组合,disagreeddrdi41/1可以观察到,当事人和开发者之间的总不一致值为9,这表明两个优先级列表中的不一致对的总数为9。更大的分歧意味着更多的冲突。较低的分歧定义较高的适应性。类似地,P1和利益相关者优先级之间的不一致使用等式计算。(5)和(6)。表6总结了针对P1和利益相关者优先级的所有优先级值计算的分歧,总分歧值为6。实际上是上限的阶乘,即需求总数。在这种情况下,对于一组10个需求,可能的粒子数是10的阶乘,相当于3,628,800曾基博士1如果0如果njSi-Pij>05jSi-Pij ¼0组合。在3,628,800个选项中选择粒子优先级不是最有利的情况,并且将非常昂贵。在本研究中,我们选择了50和100个粒子的子集,然后修改或移动其相应值,使双方(利益相关者和开发人员)之间的双方解决分歧的要求,以实现最佳的价格,同意,同意1/1参考第3.1节,表1,其中利益相关者将要求排序为1-5,需要使用等式2绘制这些优先级。(7)初始化匹配粒子范围的1要求的优先级列表定义2.不一致-不一致的定义是两个偏好之间的差异列为排名顺序。它表示为不一致(反向)优先级值对的总计数。n地图范围¼5表5哪里 n 是 要求数量两种类型的分歧计算。一个在粒子个体优先级(P1)和开发者优先级之间,第二个在粒子个体优先级(P1)和利益相关者优先级之间,其中P1指示第一次迭代的粒子优先级列表。下面的表4列出了三个优先级列表,即开发人员优先级,利益相关者优先级和个人优先级(P1),用于第3节中考虑的10个需求的需求集。优先次序已安排按从右到左的降序排列,其中数字编号对应于特定的需求编号,例如,在开发者显影剂优先级和粒子位置之间的不一致计算。要求开发者优先级粒子位置不一致(drd)R18 2 1R29 5 1R310 6 1R47 1 1R55 3 1R64 4 0R76 7 1R83 9 1R92 10 1R101 8 1分歧9.¼.¼A. 古普塔角Gupta/ Journal of King Saud University427.Σ表6个体粒子优先级和利益相关者优先级之间的不一致计算。要求利益攸关方优先事项粒子位置映射粒子位置不一致(dr)R11210R23530R34631R42111R51321R65421R74740R81951R931051R104840分歧6等式中的分母因子(7)表示来自表1中讨论的项集合的可能的不同优先级值的总数。在本例中,对于10个需求,映射范围为2。这表明初始优先级值1和2将被映射到1;优先级值3和4将被映射到2,其余的值依次类推。如果数量要求是20,则映射范围将是4,这意味着优先级值( Davis , 2003; Mead , 2006; Perini 等 人 , 2007; Leffingwell 和Widrig , 2000; Chatzipetrou 等 人 , 2010; Karlsson 和 Ryan ,1997;Kaiya 等 人 , 2002; Wiegers and Things , 1999; Greer andRuhe , 2004; Perini et al. , 2013; Saaty , 2004; Ruhe 等 人 ,2003;Leffingwell和Widrig,2000; Wiegers和Beatty,2013; Tonella例如,2013; Achimugu等人,2014; Sommerville和Sawyer,1997;Karlsson等人,1998; Thakurta,2012; Jawale等人, 2017年)将分别映射到1、2、3、4和5。在计算单独的不一致值之后,根据等式(1)针对每次迭代计算组合的不一致值。(八)、组合总不一致值被定义为粒子个体初始值之间计算的不一致的总和,它比较所有的pbest和gbest,并用具有比gbest低的值的pbest之一来更新gbest值。另一个向量,最佳/最优优先级列表也被用于指示所生成的所有优先级列表中的最佳列表,其中不一致值是最低的。速度因子现在更新优先级向量的值,同时考虑对向量施加的限制。这些向量现在用作下一次迭代的输入。重复该过程,直到迭代次数未完成。粒子的适应值或分歧值是最低的被认为是最好的一个和它的位置(优先级值)被认为是最好的几个1的分歧。最佳适应值被定义为所有粒子中最小的不一致值,其有利于等式中给出的方法。(九)、fitnessfunc<$mindisagree8disagree^8it9其中,它是迭代总数的1/4算法1:CDBR优先级利益相关者优先。对于涉及粒子P的第一次迭代,计算的总不一致性等于6 + 9 = 15。当与其他方法比较时,组合的总不一致值将用于计算结果的准确性。disagree同意;不同意4. 算法算法1表示以n个需求为输入的CDBR过程的伪代码。它还将利益攸关方的优先事项和依赖关系矩阵作为投入。该算法设置了迭代次数和种群大小,种群大小定义了要处理的优先级列表的数量。所有的粒子/优先级列表然后被初始化为遵循均匀分布的随机优先级值,换句话说,要求被分配优先级值以形成优先级向量Pr i。步骤3指示设置速度和位置值的限制。必须维护优先级值,使其不超过1到n的范围,其中n是需求的数量。步骤4-6对算法中涉及的变量进行必要的初始化。下一步是计算以下项的不一致值:初始化的优先级列表使用等式(3)pbest和gbest分别表示局部最佳解和全局最佳解。 参数pbest是粒子(优先级向量)的最佳解,对于该最佳解,粒子在迭代集合上获得了最低的不一致。gbest为迭代中的不一致定义最佳最优或全局解。步骤8.a.ii,将粒子不一致性与pbest进行比较,并更新pbest值输入:n:需求数量输入:stak_prio:输入:Dep_matrix:(nXn)(取决于流程图)输出:R1,,Rn>需求1. 设置nPop的值(粒子数/可能的要求优先级组合)2. 初始化具有随机优先级的粒子{Pri......................................... }3. 设定速度和位置4. 设置迭代5. 初始化gbest:=16. disagree:=0;7. 目标:最小化不一致值8. 对于每次迭代a. 对于总体中的每个Pri,i. 使用等式计算每个Pri,disagree的不一致值(3)ii. 如果不一致值优于该粒子(Pri)的历史中的先前最佳适应值(pBest),则将当前值设置为新的pBestb. 如果gbest > pbest,则更新gbest = pbestc. 更新best_position = Pri位置,其中gbest >pbest。d. 为每个粒子i. 根据等式更新粒子(一)ii. 根据计算出的速度和设置的限制更新粒子(二)9. 端10. 返回最终最小化的disagree= g best和Pri,其中disagree最低11. 返回如果它小于前一个值。下一步是更新值428A. 古普塔角Gupta/ Journal of King Saud University图1描述了在迭代过程中转换的整个过程。3.第三章。第一次迭代表示在使用两个优先级列表的算法的帮助下找到的初始解当迭代朝着最小分歧前进时,位置(需求的优先级值)和速度(需求值必须改变的速率)也会更新。当从一个迭代移动到另一个迭代时,有必要查找由于位置和速度更新而可能出现的重复优先级值下一节将解释处理重复性的过程为了确保整个过程中没有重复,即。没有两个需求具有相同的优先级/位置,采用以下程序4.1. 处理重复的优先事项如果在对两个或多个需求进行优先级排序时,获得了相同的优先级值,则会留下一个间隙,该间隙等于具有相似优先级值的需求总数的1倍。甚至,每个需求优先级编号将有1加上排在它上面的需求编号。这将确保所有那些优先级低于它们的需求的位置不受影响(即,当且仅当恰好有两个需求在其之上具有更高优先级时,需求才可以被排在第三位)。例如,如果要求R1具有比R2和R3更高的优先级,其中R2和R3具有相似的优先级值并且具有比R4更高的优先级值,则R1将被排名第一位置,然后是由R2和R3共享的第二位置,然后是由R3共享的第四位置,R4.在这次联合排名分配之后,为解决平局而采取的措施如下:4.1.1. 第一种情况:优先级相同,没有或有相同数量的从属要求与共享类似等级的要求相比,没有依赖性的要求将被赋予更高的优先级。在相等的相关要求的情况下,可以在共享的等级要求中以任何顺序分配等级。例如,如果要求R1、R2和R4共享相同的优先级值,没有其他要求依赖于R1,并且2个要求依赖于R4和R2,则R1的排名将高于R4和R2,而下一个排名可以以R1和R2之间的任何顺序分配。R4和R2在依赖图中的位置相同4.1.2. 情况II:相同的优先级和一个或多个依赖要求,与共享类似等级的其他要求相比,具有更多数量的依赖要求的要求将排名更高。例如,需求R1和R2共享相同的优先级值,并且3个其他需求依赖于R2,而R1具有1个依赖于R2的需求。在这种情况下,R2的排名将高于R1。以这种方式解决tiebreaker将确保开发人员只有在已经实现了最大依赖数量的需求时才能继续实现需求。5. 经验验证本节介绍的实验进行调查的性能所提出的方法产生的结果存在的初始偏好,需求依赖关系和可变的需求集。两种类型的实证研究进行:一个是评估所提出的方法的性能方面的处理问题的可扩展性和另一个案例研究。在前一种情况下,使用了九个不同的需求集(具有不同的需求)对于这九个集合中的每一个,利益相关者开发者的优先级计算的矩阵的密度定义了矩阵的稀疏性,它反映了系统的复杂性。密度的值越高,表示系统中的依赖性越多,因此使其在本质上变得复杂。对于后一种情况,选择仓库中货物预订管理(CBMW)的需求集作为应用于CDBR的案例研究,交互式遗传算法(IGA)(Tonella等人,2013)和层次分析法(AHP)(Saaty,2004),以建立一个统一的比较基线,并回答第1节中提出的研究问题。CBMW旨在为仓库中的货物提供无障碍管理。从向最终用户提供高质量的软件,CBMW允许供应商监控他们在不同仓库中的产品,并通过他们的独特登录检查空间的可用性以保存新产品。仓库管理模块允许他们接受来自供应商的新产品请求的存款,图三. 迭代快照上的转换A. 古普塔角Gupta/ Journal of King Saud University429货物的损坏,如果有的话,创建一个门通行证的货物调度和进入,计算其成本的基础上的重量,体积,持续时间保持货物,转移货物从一个仓库到另一个,查看和更新记录,跟踪货物等从开发这个管理系统的角度来看,2个高层次的需求模块和8个低层次的子模块被确定为提供功能的最终用户。下面的表7总结了作为需求收集过程结果的各个模块和子模块中的需求。在特定模块中的依赖性和使用。 子模块通过它们之间的依赖性在它们之间进一步互连。根据第3.1节中采用的流程,获取利益相关者和开发人员的初始优先级。在对高优先级模块/子模块中包含的每个需求进行严格分析后,表示最终优先级。这将有助于软件工程师理解和弥合需求收集过程中的差距
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功