基于一阶逻辑的需求变更影响分析方法研究.docx
15页基于一阶逻辑的需求变更影响分析方法研究 彭钊 杜天保摘要:需求的变更影响分析过程无论是对于降低系统维护的代价或者是保证系统对变更需求正确的实现都有着至关重要的意义已有的变更影响分析的研究主要存在两个方面的问题:一方面,当前的有关需求变更影响分析的研究主要侧重于需求到代码之间的变更影响分析,缺乏需求与需求之间的变更影响分析的研究另一方面,传统的方法大多数是基于需求文档描述做研究,缺乏需求间关系的语义,在作变更影响分析时,会导致大量的变更影响误报,从而忽略了实际的变更影响为了解决以上这些问题,本文提出了一种基于一阶逻辑的变更影响分析方法设计一个只包含需求追踪关系信息实体的需求元模型,基于该模型设计一种变更分类方法,并基于一阶逻辑给出需求间关系以及每种变更类型的形式化语义,自动实现需求模型中变更的传播并通过一个实验来说明本文方法的可行性关键词:需求间变更影响分析;一阶逻辑;形式化语义;可追踪性:TP311 :A :1007-9416(2020)04-0000-000 引言据调查,软件系统开发的预算中有85%到90%被用于软件系统的管理和维护,而这其中有50%被用于软件系统的变更管理[1]。
Ebert等人在文献[2]和文献[3]中通过调查得到一个结论:一个周期为一年的软件开发项目,就会有多于40%的需求发生了变更为了尽可能的减少软件开发成本,需要尽早在软件开发周期中对变更进行管理如图1为软件系统的变更管理和维护过程变更影响分析是指:基于引入的需求变更,确定变更潜在的后果,并对系统中需要更改的其他元素做出预测[4]变更影响分析无论是对引起变更需求的实现还是对评估系统变更后的风险都十分重要[4]Bohner等人在文献[5]-[7]中列出了软件系统开发过程中所有可能受变更影响的元素,他提出一个概念叫作“变更影响爆炸(the explosion of impacts)”需求间的变更影响爆炸:由于缺乏需求间关系的语义,需求工程师必须对需求文档中的每个需求都进行分析,因此会造成变更影响爆炸从而忽略实际的变更影响在安全关键的嵌入式软件中,需求变更影响分析有着重要的意义ISO-26262和安全标准IEC-61508中对需求变更影响分析都有相应的要求[9][10]需求变更影响分析的不完整有可能致使系统功能出现故障或者失效本文提出一种基于一阶逻辑的需求间变更影响分析方法,该方法基于一阶逻辑符号系统对需求间关系给出一个形式化语义,保证了需求间变更影响分析的有效性和准确性。
本文的具体章节安排如下:第1节介绍了需求间变更影响分析的国内外相关研究现状;第2节介绍需求间变更影响分析及一阶逻辑相关理论基础;第3节详细介绍了基于一阶逻辑的需求间变更影响分析方法过程;第4节用一个案例说明本文方法的可行性;第5节是结束语1 相关工作目前,学术界对需求变更影响分析做了大量的研究从变更影响分析过程中的影响集的角度出发,变更影响方法可分为基于可追踪性的变更影响分析、基于依赖关系的变更影响分析和基于工程实验的变更影响分析[11]Boher等人在文献[4]中提供了一种基于可追踪性的变更影响分析方法文献[12]使用程序切片技术提供了一种基于依赖关系的变更影响分析方法文献[13][14]提供了一种基于UML模型的变更影响分析方法Kilpinen等人在文献[11][12]出了一种基于工程实验的方法根据需求变更影响分析是否由人工来完成,又可以将需求变更影响分析方法分为静态分析方法和动态分析方法静态分析方法:文献[15][16][17]提供了一种面向方面文档驱动需求的变更影响分析方法文献[18]提供一种基于可达矩阵的变更影响分析方法;动态分析方法:文献[19]基于事件的通知机制,通过使用发布/订阅模式来实现软件演化过程中的需求变更影响分析方法。
陈光颖等人在文献[20]中基于谓词逻辑和模型驱动方法,提供一种常见的需求间关系的形式化语义,并给出需求间隐含关系的推导规则文献[21]基于SysML的元模型,给定一个需求模型,并在需求模型中定义需求之间的关系,最后利用文献[20]中提供的语义和推导规则,证明了需求变更影响不一致性分析推导规则2 相关理论2.1 需求间变更影响分析相关综述在需求變更中,存在以下3个基本概念:(1)变更源:变更源通常是指软件系统中最初引入变更的一个或者多个元素2)变更传播:对于系统中已经引入的变更,与这些引入变更的元素相关的其他元素会出现新的变更,需求工程把这种活动称为变更的传播3)受影响集:给定一个或者多个变更源,把这些受到变更影响的元素成为受影响集[22]需求的层次内(Within-level)可追踪性是需求间变更影响分析的前置条件图2是一个简单的需求可追踪性关系图:文献[23]给出了如下5种常见的需求关系:定义2.1五种常见的需求间关系需求关系(Requires);精化关系(Refines);包含关系(Contains); 部分精化关系(Partially Refines);冲突关系(Conflicts)。
Goknil在文献错误!未找到引用源中给出了一个比较精化的需求描述模型,他指出需求是指对系统中一个或多个需要被满足的属性的描述,关系符号和阈值构成了需求所要实现的属性的约束条件,如图3为Goknil提供的需求描述模型:2.2 一阶逻辑相关理论定义2.2模型M在一阶逻辑中的定义:令F为函数符号,P为谓词符号集,函数与谓词都是n元变量的,n是有限的,则模型M由二元组(F,P)表示,并且由以下的符号项组成:(1)非空集合A,表示个体词的取值范围2)对于任意一个n元函数f,f∈F,n>0,并且存在映射关系f^M:A^n→A3)对于任意一个n元谓词符号集P,P∈P,n>0,并且存在集合P^M?A^n下面是公式?在一阶逻辑中的形式化定义,该定义通过巴斯克范式表示:?∷=K(t_1…t_n )|??|(?∧?)|?∨?|(?→?)|?x?|(?x?),n≥1在上述巴斯克范式中,K是n元的谓词符号集,x是变量,t_i,i∈(1,n)是函数集F上的项,?是由右侧的巴斯克范式规则构造出来的任意一个公式整个公式是一个合取范式(Conjunctive normal form,CNF)的形式,公式的右侧是由原子公式组成的,这些原子公式不包含逻辑连接词和子公式。
对于二元组(F,P)上的任意一个一阶逻辑公式?,满足以下关系:M?_l ?即模型M在环境l下,公式?为真,环境是指变量集到A的一个映射关系,其作用是查询变量取值定义2.3需求R在一阶逻辑中的定义:对于一个需求R,在一阶逻辑中将其定义为一个二元组,其中P为需求中的属性集合,S为满足属性的系统的集合,S可看作一个基于一阶逻辑的形式化模型Ml是模型M中的环境,在对需求R的定义中可视为约束条件:(1)P=?x(p_1∧…?p_n ),n≥1,其中x为变元,p_1到p_n为属性2)S?_l P(即属性P在需求R中约束条件为l的时候成立)以上便是一阶逻辑对需求的形式化定义定义2.4基于一阶逻辑的需求间关系的形式化语义:令R_1 〖,R〗_2,R_3为一个需求模型中的3个需求,二元组P_1,S_1>,,分别为需求R_1 〖,R〗_2在一阶逻辑系统下的公式1)需求关系的形式化语义:(2)精化关系的形式化语义:(3)包含关系的形式化语义:(4)冲突关系的形式化语义:(5)部分精化关系的形式化语义:3 本文方法概述3.1 基于需求间追踪关系的需求元模型本文在通用的Sysml需求元模型的基础上去掉与需求间关系无关的实体,得到了如图4中的扩展的需求元模型:3.2 基于需求描述模型的需求变更类型基于图3中给出的需求描述模型以及图4中给出的需求元模型,本文提供了如表1中需求变更类型:前五种变更在需求模型中是非常简单而且明显的。
对于最后一种类型,根据上述给出的需求描述模型,可以将其分为6个小的部分,给定需求R和R1,属性property用pt表示,约束条件constraint用ct表示,如表2:假定对于一个需求R,一个属性pt,为需求R添加一个属性pt,且pt总是与需求R总已存在的属性不相同,从一阶逻辑符号系统来说明:即对于新添加的属性pt,总是存在一个系统集S,S满足属性pt且不满足需求R中的现有属性定义4.1 添加一个属性:3.4 需求变更传播需求变更传播是基于并引入的初始的需求变更,根据本文所给出变更类型和需求关系可以推导出可能出现的新的变更我们设定一个变更影响分析函数:如下为变更影响分析函数的定义:函数:SPCR×SCT×SR×SSRR→SSDT其中SCT表示需求变更类型的集合;SR表示需求集合;SSRR表示需求模型中需求关系的集合;SPCR表示初始的引入变更的需求集合,存在关系SPCP∈SR,SSDT为函数的输出,表示一组对于受变更影响的其他需求可能出现的变更的决策树集合3.5 变更传播规则本文对11种变更类型和5种需求关系进行任意组合得到变更场景,最后可得到所有场景的需求变更影响传播的规则,如表3:上述表3中的16条规则是本文中需求间变更影响分析中的所有的影響规则。
本文以此规则为基础讨论需求间的变更影响分析3.6 变更传播算法变更影响分析算法的核心思想是根据需求模型中需求与需求之间的关系,从变更源开始遍历整个需求模型,得到一组决策树,决策树包含了需求变更可能的转播路径如算法3.1:4 案例分析4.1 系统概述如下是一个远程的病患监护系统,该系统拥有3个利益相关者:医生、病人、系统管理员,这个系统的主要功能是监控病人的体征状态如:血压、心率、体温等本文通过一种需求管理工具:TRIC,TRIC可根据需求的语义来找到需求间具体的关系,通过TRIC可以得到RPM系统的需求模型,如图5:4.2 需求间变更影响分析应系统的利益相关者的需要,现在要对RPM系统中的需求R14引入一个变更变更描述:The warning to the doctor should also contain all information about the patients condition(传递给医生的警告应该包含相关患者的所有体征信息)對于需求R14: The system shall store patient temperature measured by the sensor in the central storage and it shall warn the doctor when the temperature threshold is violated.它的属性有2个:(1)存储测量到的病人的体温数据;(2)对医生发出警告信息。
这两个属性对应的约束条件是:(1)通过中央存储器来存储数据;(2)警告信息为病人的体温超过阈值此时,需求R14为变更源需求,由图6中可以得到与需求R14相关的需求:首先根据第3节给出的需求描述模型和需求变更类型的形式化语义,可以判定该变更类型为“为需求的属性增加约束条件”其次,基于表3中的需求变更传播规则,调用算法3.1-3.3,可以生成一组决策树,这组决策树的叶节点即为与R14相关的需求可能会受到的影响根据算法3.1-3.3,可以得到如下6条变更传播路径:(1)R14-R4-R6;(2)R14-R6-R1;(3)R14-R4-R1;(4)R14-R7-R1;(5)R14-R7-R9;(6)R14-R7-R8对于每一条传播路径,我们都可以基于表3中的规则,调用算法3.1-3.3,生成一。

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


