您好, 访客   登录/注册

一种基于自然语言描述的需求变更影响分析方法

来源:用户上传      作者:

  摘要:一个需求规约中的某一个需求发生变更有可能使得整个需求规约都发生变化,为了维护需求规约的正确性和一致性,我们需要分析一个需求的变更对另外的需求产生影响的可能性以及产生怎样的影响,这便是需求变更影响分析。常见的需求文本通过自然语言描述。本文基于自然语言描述的方式。结合已有的NLP(Natural Language Processing,自然语言处理)技术,给出一种定量的需求变更影响分析方法,通过这种方法,本文可以分析某个需求的变更对其他需求产生影响的可能性。
  关键词:需求变更影响分析;需求描述;自然语言处理;需求变更传播;变更传播条件
  中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2020)03-0209-03
  0 引言
  据调查,Ebert等人在文献[1][2]分析得出,一个时长两年的项目通常情况下会有多于30%的需求发生变更。
  对于不同的需求描述方法,应采用不同的需求变更影响分析方式,例如对于形式化语言描述的需求,首先要建立和推导需求之间的依赖关系,然后通过依赖关系来实现需求变更分析。
  本文基于自然语言描述的需求文本,通过现有的NLP技术,给出一个自动识别需求变更的方法,定义一个变更传播条件的语法;分析并给出定量的需求变更影响分析方法的过程,然后通过一个案例来说明该方法的可行性。其他章节安排如下:第1节主要讲述需求变更影响分析的研究现状,并给出本文方法的流程图。第2节主要给出本文中的对需求的自然语言处理过程,并给出一个算法用于自动识别。第3节给出相关案例来说明方法可行性;第4节是总结与展望。
  1 相关工作
  Goknil等人在文献[3]中给出了一种基于形式化语言描述的需求变更影响分析方法,该方法通过建立需求之间的依赖关系,把需求变更分为6个类型,并根据谓词逻辑给出了该方法中的需求和需求变更类型的形式化描述。文献[4]介绍了工具TRIC的详细描述和使用方法。David等人在文献[5]中给出了一种基于SysML需求模型的需求变更影响分析方法。Kurtev等人在文献[6]中给出了一种基于规则的需求变更影响分析方法,该方法主要是分析需求变更对系统体系结构产生的影响。以上方法均为形式化语言描述的需求。
  通过对自然语言加工处理达到消除二义性的目的,我们把这个过程称为自然语言处理(Natural Language Processing),自然语言处理技术在需求工程中有着很广泛应用,例如文本分块,词性标识以及相似度检测等,在文献[7][8]中,自然语言技术用于处理不一致性问题;在文献[9]中,NLP用于需求可追踪性的验证。
  对于需求描述中每个自然语句,本文通过已有的技术作自然语言处理,以自然语言的短语层次为基础,自动识别需求变更,并定义新需求变更的传播,给出传播条件的语法模板,最后通过引入二部图匹配的方法来给出需求变更影响的定量计算过程。
  2 基于自然语言的CIA方法描述
  2.1 方法概述
  图1概述了本文的方法:
  步骤一:对自然语言描述的需求文本做文本分块处理(Text-chunking),本文把所研究的自然语言分为3个层次:语句,词组,符号。本文选择在词组层次上来对需求变更进行分析,因为在语句层次上分析过于复杂,而在符号层次上分析对于预算、时间的消耗会增加很多。
  步骤二:当某个需求发生变更时,把该变更从自然语言语句层次同步到词组层次。经过处理后的短语层次级别文本需求会出现之前并不存在的符号,在该步骤中我们需要通过一个自动检测算法来自动识别并捕获变更。
  步骤三:分析的是需求变更会对需求规约中的其他需求产生影响的可能性以及产生怎样的影响。
  步骤四:基于给定的需求变更和文中定义的传播条件语法规则,得到潜在的受变更影响的需求集。
  2.2 需求文本的自然语言处理过程
  文本分块技术(text chunking)是最常用的自然语言处理技术之一,通常用来对自然语言作词性划分,词组提取,層次划分等,其核心思想是以词性分类为基础把自然语句分为互不重叠的部分,该过程可通过开源工具OpenNLP chunker来完成。名词短语和动词短语是一个自然语句必不可少的部分,因词我们可以通过合并的方法,把其他词性的短语合并到名词短语或者动词短语里面,这样通过文本分块的一个自然语句便只由名词短语和动词短语以及少量的介词短语构成。
  图2描述了自然语言处理的全过程,其具体步骤如下所示:
  (1)对于给定的自然语言描述的需求规约,基于开源工具Open NLP chunker,通过文本分块技术,获得只包换NP和VP的短语层次结构的需求描述。
  (2)给定需求变更,通过本文设计的自动检测算法,在初始的需求集的基础上,完成需求变更的自动识别过程,并输出增加或者删除的短语。
  2.3 短语层面的需求变更捕获
  如图3是本分所提出的自动检测算法,通过该算法可以海鲜变更检测的自动化。需求变更发生后,需求文本大致可分为3个区域:育雏室需求相同的区域;有删除部分的区域;有增加部分的区域。该算法通过分析词组和文本变更区域之间重叠的部分,自动获得变更的词组以及它们的注释,算法的输入是初始的需求集和变更的需求,输出是一个词组以及词组对应的注释类型。
  2.4 变更的传播条件
  在此引入一个概念:需求变更的传播。几乎在所有需求变更影响分析方法中都会涉及到需求变更传播,例如在文献[4]中,Goknil等人给出了变更传播的定义:基于初始的变更集,推导出可能出现的新的变更。
  传播条件的作用在于控制需求变更传播的选择,即某些需求我们不想让它受到变更影,那么它就一定不会受到变更影响;   當需求工程师需要某些需求受到变更影响时,那么它一定会受到变更影响。
  传播条件的作用在于控制需求变更传播的选择,即某些需求我们不想让它受到变更影,那么它就一定不会受到变更影响;
  当需求工程师需要某些需求受到变更影响时,那么它一定会受到变更影响。
  我们定义下述语法来表示变更传播条件:(如图4)
  由上述语法可以看出,需求变更传播条件由一个或者多个布尔表达式构成,表达式既可以是原子表达式也可以是复杂表达式,复杂表达式是由布尔运算符递归构成,原子表达式在自然语言总可以是词组或者符号。
  2.5 需求变更影响的定量分析
  本文方法中最后一步需要用到相似度匹配技术,给定一个传播条件φ,函数M(j,R)的值用来衡量需求R受到与传播条件φ相关的变更的影响,这个值越大,M值介于0和1之间,本文方法中有两个地方需要用到相似度匹配,首先要把传播条件和需求规约中的其他需求做相似度匹配,匹配值越高,则说明受到变更影响的可能性越大。其次要把潜在的受变更影响的需求集与初始的需求集做相似度匹配,匹配值越高,则说明受变更影响程度越小。
  如果传播条件是一个pos-token,对于pos-token t和需求R,如果R包含t,则M值默认为1,如果相反,v包含R,则M值默认为0。匹配算法的核心是计算pos-phrase的匹配值,对于一个给定的positive短语p,我们计算M(p,R)的步骤如下:
  (1)[t1…tn]表示pos-phrase的词组包。p1..pk表示需求R的短语集合,[t1'…tm']表示需求R短语中的词组包。构造一个二部图G,其中节点的第一部分和第二部分别为上述两个包。
  (2)我们用一条加权边把每一组(t,t')∈[t1…tn]×[t1'…tm']连接起来,权重由3.2中的三种相似度函数计算策略来决定。当把加权边添加到二部图G上时,我们就得到了一个全权重二部图。
  (3)我们可以得出p和R的匹配值的计算公式;
  M(p,R)=2×
  其中Q=二部图中最佳匹配策略中的所有边的权值之和;
  其中N1表示p中所有符号之和,N2表示从需求R中匹配的符号之和,N3表示需求R包含在二部图中最优策略边的符号数目之和。
  3 案例WASP系统
  本文基于一个WASP(3G mobile service platform)系统以及开源工具NARCIA通过文中方法的4个步骤,得出一系列实验数据,包括短语集,符号集,变更传播条件,潜在的受变更影响的需求集,以及定量的需求变更影响分析的结果(根据匹配值对需求描述进行的排序)。
  WASP系统一共包含了72个自然语句需求,经过NLP处理过程后,有267个短语,263个符号:
  由表1结果可以看出同一个需求集可以同时受到两个不同的需求变更的影响,同样也有可能与2个不同形式的传播条件相关联。
  4 结语
  本文提出了一种基于自然语言描述的需求变更分析方法,通过已有的自然语言处理技术——text chunking,将自然语言描述的文本需求转化为以短语结构为基础的自然语句,给出特定的需求变更,通过文中所给出的算法,自动检测需求变更在短语层次上的实现,并根据设计了一系列需求变更传播条件的语法模板,根据该模板给出相应的变更传播条件,最后再利用NLP中的相似度计算得出此需求变更对于需求规约中其他需求产生影响的可能性大小。
  但是本文提出的方法相比于传统方法也有一定的缺陷,对于自然语言描述的需求,一旦需求规约条数达到一定程度,排序列表的生成会耗费极大的执行时间,变更传播条件需要根据变更以及语法手动推导而出,不支持自动获取变更条件,这是与传统的形式化方法研究需求变更影响分析所不足的地方,相比与传统的形式化方法,本文方法的优点在于不需要耗费大量的时间和财力来提前建立需求间的依赖关系。
  参考文献
  [1] Ebert C.Understanding the product life cycle:Four key requirements engineering techniques[J].IEEE software,2006,23(3):19-25.
  [2] Ebert C,De Man J.Requirements uncertainty:influencing factors and concrete improvements[C]//Proceedings of the 27th international conference on Software engineering,2005:553-560.
  [3] Goknil A,Kurtev I,Van Den Berg K,et al.Change impact analysis for requirements: A metamodeling approach[J].Information and Software Technology,2014,56(8):950-972.
  [4] Goknil A,Kurtev I,Klaas V D B,et al.Change impact analysis for requirements:A metamodeling approach[J].Information & Software Technology,2014,56(8):950-972.
  [5] Hove D,Gknil A,Kurtev I,et al.Change impact analysis for SysML requirements models based on semantics of trace relations[C]//Proceedings of the 5th ECMFA Traceability Workshop.2009.
转载注明来源:https://www.xzbu.com/8/view-15232741.htm