一种检测需求冲突关系的方法技术

技术编号:8271485 阅读:144 留言:0更新日期:2013-01-31 03:43
本发明专利技术公开了一种自动检测需求冲突关系的方法,其包括:建立需求数据库和需求关系数据库;根据冲突的类型,建立冲突关系矩阵;以及遍历所述冲突关系矩阵,检测需求冲突。本发明专利技术能够在系统设计运行之前进行自动需求冲突的检测和去除,避免漏测和误测的问题,提高了冲突检测的准确性。

【技术实现步骤摘要】
本专利技术涉及计算机
,特别涉及到一种在软件工程中检测需求冲突关系的方法
技术介绍
软件工程是计算机
中非常重要的内容。在大型软件的开发中,软件工程的应用几乎无处不在。大型软件的开发成本极高,在开发软件系统之前,对其进行需求分析 是极其的重要。在需求分析阶段后做出的任何调整都可能会带来极高的成本。检测需求之间是否存在冲突是一项重要内容。所谓存在冲突是指需要之间的各种关系存在违反客观规律或者用户约束的矛盾,如描述系统组成的需求间存在层次分解关系,描述系统功能的需求间存在层次分解关系,描述功能到系统组成需求的分配关系,分配关系可能造成一个系统组成模块完成一项子功能而该模块的子模块完成该子功能的父功能,这种情况与一般客观规律或常识不相符。现有技术中检测和处理需求中的冲突的解决方法中,具有代表性的有4类。第I类采用经典逻辑或准经典逻辑作为需求表示形式,并利用定理证明技术解决需求冲突问题。第I类方法首先将需求描述为逻辑断言,描述细到能够刻画对象属性,然后采用定理证明技术进行需求冲突的检测,但是其实现要借助于定理证明器,检测过程可以自动进行,难点在于如何将需求转换为逻辑断言,不足之处是定理证明器效率一般较低。第2类采用状态变迁作为需求建模原则,并利用模型检验技术处理需求冲突。第2类方法将需求表示为状态变迁系统,通过检测系统状态变迁之间是否存在冲突,判断需求冲突问题,难点在于如何将需求无失真地转换为系统状态变迁,因此这种方法的效率也不闻。第3类以系统目标作为需求建模原则,并利用目标的语义模式和关于目标的启发式规则处理需求冲突。第3类方法将需求表示为系统的目标分解树,用启发式规则进行分歧检测,用目标模式寻找分歧出现的边界条件,并通过分歧处理模式和启发式加以解决,但是目标检测和分析工具需要专门设计。第4类利用图形对需求进行描述,通过给定某些特定的图的性质,或者某些特定的图元的语义等,检测处理需求冲突。第4类方法用关联图的形式表示需求,通过寻找图形间交叉引用的不一致性来检测和定位需求冲突,通过人工处理来实现对需求不一致性的消解,这种方法是在自动化检测和易用性之间的一个折衷,不足之处是检测需要是根据具体冲突来设计,这些规则是用户自定义的或依赖于业务领域的。因此,目前迫切需要一种能够在系统设计运行之前自动进行需求冲突关系检测方法,能够避免漏测和误测,提高需求冲突检测的准确性。
技术实现思路
针对上述技术问题,本专利技术提出一种自动检测需求冲突关系的方法,其包括建立需求数据库和需求关系数据库;根据冲突的类型,建立冲突关系矩阵;以及遍历所述冲突关系矩阵,检测需求冲突。本专利技术提供的自动检测需求冲突关系的方法能够通过简单需求冲突和需求映射冲突进行检测和去除冲突,提高了需求冲突检测的准确性,为后续的开发提供了重要的支持以及正确性的保证。附图说明图I为本专利技术实施例一种自动检测需求冲突关系的方法流程示意图;图2为本专利技术实施例一种自动检测需求冲突关系的方法简单需求冲突的流程示意图;图3为本专利技术实施例一种自动检测需求冲突关系的方法需求映射冲突的流程示 意图。具体实施例方式本专利技术的思想在于,首先,建立需求数据库和需求关系数据库。从自然语言描述的需求文档,或者其他类型的需求文档直接建立需求数据库和需求关系数据库是容易的,特别是借助于文档解析器等工具的帮助。规约文档已经广泛采用XML形式或者其他规范形式,因此,这一步骤成本并不高。根据冲突的类型,建立冲突关系矩阵;然后根据不同的冲突类型以及冲突关系矩阵,通过简单数值方式遍历冲突关系矩阵,或者计算的方式遍历冲突关系矩阵,寻找符合特定条件的数值或者关系,从而实现检测需求冲突。随着计算机技术的发展,矩阵的计算以及可以快速和高效的实现。特别是针对矩阵运算的矩阵处理器的出现,更是可以大大提高矩阵运算的能力。通过以上的方式,将难以处理的复杂的逻辑关系的检测转化成了能够由计算机自动处理并高效完成的矩阵运算。通过计算能力的拓展取代了逻辑能力,借助于计算的高效完成能力,从而解决逻辑上的检测问题。以下结合具体实施例,并参照附图,对本专利技术进一步详细说明。参阅图I所示,为本专利技术实施例一种自动检测需求冲突关系的方法流程示意图,包括阶段一将自然语言描述的需求规约文档转换为规则化描述的XML文档,将所述XML文档对应的数据存储到存储器中,具体实施过程如下在本专利技术的一个实施方案中,本方法读取Off ice Word和Text形式的自然语言描述的需求规约文档,然后可以利用文档解析器将其转换为规则化描述的XML文档。将所述XML文档对应的数据存储到存储器中,可以采用多种不同种类的具有不同性能特征的存储器,例如内部硬盘、外部硬盘等等。存储的形式可以采用简单的文本或者数字,也可以是比较复杂的数据。在本实施例中,采用的是由数据库形成的结构化的表格数据。具体地进一步说明建立需求数据库,根据保留词{RequirementTypeDef}提取需求类型、需求类型说明、包含的属性字段等信息,存入需求类型数据表RequirementType中;对每种需求类型,建立一个数据表,用于存储该类型的需求数据,该表字段除需求名称和标识外,还包括该类型需求定义中每种属性对应字段,根据保留词{Requirement}提取文档中的所有该类型需求信息,并写入需求数据表Requirement中。根据保留词{RequirementRelationDef}提取需求关系类型及相关数据,存入需求关系数据表RequirementRelationType中,该表包括关系名称、关系说明等字段。根据保留词{RequirementRelation}提取需求关系,并根据需求类型和需求关系类型将数据存入相应需求关系数据表 RequirementRelation 中。根据保留词{RequirementMappingDef}提取需求映射类型及相关数据,存入需求映射类型数据表RequirementMappingType中,该表包括需求映射名称、标识、源需求类型、目的需求类型等字段。根据保留词{RequirementMapping}提取需求映射信息,并根据需求映射及相关需求类型信息,将需求映射数据存入需求映射数据表RequirementMapping中。 阶段二 调取存储器中所述自然语言描述的需求规约文档中的任意一类需求,若所述需求类型中的两项需求之间存在双向相同的逻辑关系,则存在简单需求冲突,遍历所述存储器中所有的需求类型,进行简单需求冲突的检测和去除。在本专利技术的一个实施方案中,利用处理器对存储器中以数据库形式存储的任务对象进行简单需求冲突的处理,所述进行简单需求冲突的处理是经过直接简单需求冲突分析和间接简单需求冲突分析。具体实施过程如下参阅图2所示,为本专利技术实施例一种自动检测需求冲突关系的方法简单需求冲突的流程示意图,步骤201 :调取数据库中的任务对象,任意选取一种类型的需求,记为A类型,创建需求数据集合Table(A),对Table⑷中的需求进行编号,记为Table(A) = Iai | i=l, 2,…,nA},其中nA为A类型需求的数目。步骤202:从数据库中任意选择一种需求关系r,遍历需求类型A,建立Table (A, r)。步骤203 :判断是否在需求类型A中存在需求关系r,本文档来自技高网
...

【技术保护点】
一种检测需求冲突关系的方法,其包括:建立需求数据库和需求关系数据库;根据冲突的类型,建立冲突关系矩阵;以及遍历所述冲突关系矩阵,检测需求冲突。

【技术特征摘要】
1.一种检测需求冲突关系的方法,其包括 建立需求数据库和需求关系数据库; 根据冲突的类型,建立冲突关系矩阵;以及 遍历所述冲突关系矩阵,检测需求冲突。2.根据权利要求I所述的方法,其中,所述建立需求数据库和需求关系数据库的步骤包括 将自然语言描述的需求规约文档转换为规则化描述的XML文档,将所述XML文档对应的数据存储到所述需求数据库和需求关系数据库中。3.根据权利要求2所述的方法,进一步包括针对所述规则化描述的XML文档,根据需求类型定义保留词{RequirementTypeDef}中提取信息,存入需求类型数据表RequirementType 中; 根据需求保留词{Requirement}提取文档中的所有该类型需求信息,并写入需求数据表 Requirement 中; 根据需求关系定义保留词{RequirementRelationDef}提取需求关系类型及相关数据,存入需求关系类型数据表RequirementRelationType中; 根据需求关系保留词{RequirementRelation}提取需求关系,并根据需求类型和需求关系类型将数据存入需求关系数据表RequirementRelation中; 根据需求映射关系保留词{RequirementMappingDef}提取需求映射类型及相关数据,存入需求映射类型数据表RequirementMappingType中;以及 根据需求映射保留词{RequirementMapping}提取需求映射信息,并根据需求映射及相关需求类型信息,将需求映射数据存入需求映射数据表RequirementMapping中。4.根据权利要求I所述的方法,其特征在于,所述的冲突关系矩阵采用二维数据链表。5.根据权利要求I所述的方法,其中,根据冲突的类型建立冲突关系矩阵,以及遍历所述冲突关系矩阵检测需求冲突的步骤包括 若所述需求类型中的两项需求之间存在双向相同的逻辑关系,则存在简单需求冲突;遍历所述存储器中所有的需求类型,进行简单需求冲突的检测;其中所述简单需求冲突包括直接简单需求冲突和间接简单需求冲突。6.根据权利要求5所述的方法,其中,针对直接简单需求冲突的检测和去除,具体的步骤包括 O调取数据库中的任务对象,任意选取一种类型的需求A,创建需求数据集合Table (A) J^Table(A)中的需求进行编号,记为 Table (A) = {&i | i=l,2,...,nA},其中 nA 为 A类型需求的数目; 2)从数据库中任意选择一种需求关系r,遍历需求类型A,建立Table(A, r);以及 3)根据Table(A, r)建立nAXnA的二维数据链表D (A, r),若Si到a」存在关系r,那么D(A, r)的第i行第j列的元素取值为1,否则取值为O ;ED(A,r)元素取值对应的矩阵为!) = (<1.(丨、Jl,:. ,根据 D (A, r)建立 nA X nA 的二维数据链表 DD (A, r),DD (A, r)的第 i 行第 j列的元素取值为ddr(i,j) = dr(i, j)Xdr(j, i),DD(A, r)即为所述冲突关系矩阵; 其中,遍历所述冲突关系矩阵,检测需求冲突的步骤包括 如果ddji,j) = 1,那么需求%和a]间存在关于关系r的直接简单需求冲突。7.根据权利要求5所述的方法,其中,针对间接简单需求冲突的检测和去除的步骤包括 O调取数据库中的任务对象,任意选取一种类型的需求A,创建需求数据集合Table (A),对 Table (A)中的需求进行编...

【专利技术属性】
技术研发人员:刘俊先陈洪辉罗爱民罗雪山
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1