APP下载

基于自动控制理论的系统功能需求分析方法

2021-01-21马赞王鹏崔明山

关键词:子集用例分析方法

马赞,王鹏,崔明山

(1.中国民航大学 民航航空器适航审定技术重点实验室,天津 300300;2.北京畅研汇明科技有限公司,北京 100107)

0 引 言

功能需求分析是需求工程的重要内容[1-2],是系统设计开发的关键输入。随着系统越来越复杂,系统功能需求越来越多,越来越难以完整识别,尤其是没有结构化的识别方法,这给系统需求分析带来了不小的困难。

目前,最流行的需求分析方法主要有:调研/访谈的需求分析方法;基于知识的需求获取;基于场景的需求分析方法;面向对象的需求获取分析方法;基于特征的需求分析;基于本体的需求获取方法;基于QFD的质量功能展开方法。

上述方法无法保证需求分析的完整性,主要原因有:(1)这些方法都是基于主观的分析方法,由干系人根据经验提出系统需求,对干系人的经验要求较高,如果干系人经验欠缺或者出现疏忽,就会遗漏需求,造成需求不完整;(2)这些分析方法未能完整考虑“外部所有输入信号”的各种情况,容易遗漏外部输入的特殊组合情况,造成系统需求缺失;(3)这些分析方法未能充分考虑“系统所有的工作状态”,造成在不同工作状态下系统对外部所有输入的响应出现遗漏,导致系统需求缺失;(4)非结构化方法易造成功能需求缺失。

具体而言,造成需求不完整的原因为:

(1)调研/访谈的需求分析方法[3],因为是通过调研和访谈进行的需求分析,被访谈者描述需求的时候主观性很强,如果干系人欠缺经验,就会造成需求不完整;另外,系统越来越复杂,单纯靠人的经验,已经无法完整准确地识别系统需求了。

(2)基于知识的需求获取[4],虽然可以依靠相关人员的经验知识获取系统功能需求,但是,由于人类积累的知识有限,有些经验知识是系统发生故障后才能获得的,因此,无法确保系统功能需求的完整性,只能作为一种检查完整性的方法。

(3)基于场景的需求分析方法[5-6],从系统运行场景的角度可以识别系统功能需求的“分类”,但是由于每个场景的“分支”组合太多,单纯靠场景法几乎无法穷举这些分支,也会造成功能需求识别不完整。

(4)面向对象的需求获取分析方法[7-8]是目前最流行的,其更多强调的是一种分析流程,并且,由于通过用例图、活动图、顺序图、对象图等进行分析,与“基于场景的需求分析方法”类似,并没有从一开始就综合考虑功能需求的完整性,而且主要依靠有经验的人进行分析,可能造成功能需求有遗漏,无法保证需求的完整性。

(5)基于特征的需求分析[9],重点在功能需求的“分类”和需求之间的依赖关系上,也依赖于有经验的专家,难以保证需求的完整性。

(6)基于本体的需求获取方法[10-11],重点在需求的层次关系、本体之间关系、图形化表示等方面,和“面向对象的需求获取分析方法”类似,偏重于流程和技术手段,并不是针对需求的完整性进行分析,无法确保需求的完整性。

(7)基于QFD的质量功能展开方法[12-15],侧重点在从客户需求到系统特征上的定量转化,也就是从定性的需求向定量的需求转换,并没有考虑需求的完整性问题。

1 基本原理及定义

1.1 基本原理

本文提出的系统功能需求完整性的分析方法,是从系统对外界输入信号响应和系统自身状态的角度考虑需求分析的一种方法,并且从一开始就关注结构化的分析流程。

根据现代控制系统理论,可以通过如下公式表示一般系统的所有功能集合[16]:系统外部输入信号集合(Input);系统内部状态集合(State);系统输出集合(Output)。

系统完整功能集合表示为

Output=fsystem(State,Input),

式中,fsystem为一般系统。

对于一般系统而言,功能需求就是“系统处在内部各种状态下,对接收到的外界的各种输入信号组合产生何种响应的要求”。因此,通过识别系统内部状态State和外部信号输入Input的所有组合,描述在每种特定组合下,系统应该执行的操作和得到的输出,就可以获得系统完整的功能需求。

假设系统存在P种状态,且在状态Mi下,系统对输入信号的组合Sj的响应可以描述为需求Ri,j,假设所有输入信号的组合数为N,那么,在状态Mi下的所有需求集合

Ri={Ri,j|j=1,…,N}。

由于包含了所有的输入信号组合,因此,Ri代表了在状态Mi下的所有需求,该状态下,Ri所代表的需求集合是完整的。

假设整个系统的所有需求集合为Rsys,则有

Rsys={Ri,j|i=1,…,P,j=1,…,N}。

由于系统状态是完整的(P种状态),每种状态下的需求集合是完整的(Ri),因此,Rsys所代表的系统的功能需求集合也是完整的。

1.2 定义

为了简化表示方法,给出一些定义,这些定义将在后面的分析和实例验证中使用。

定义1 信号有效集合

R={Sig,},

式中:Sig为信号名称;S1,S2,S3,…为在全空间内的有效子集合;为信号Sig的所有有效子集集合;S为信号Sig的有效集合。

定义1表示信号的整个范围集合。

定义2 信号有效集合乘法运算

假设As,Bs2个信号的有效集合分别为

A={As,},B={Bs,}。

As,Bs输入信号有效集的乘法运算定义为

T=A×B={,<,
,,,B1>,>},

式中:为两个信号乘积名称集合;<,,,

B2>,,>为两信号有效集合的乘积;T为信号有效集乘法运算后的信号所有组合的集合。

定义2表示多信号有效集合的所有可能的组合情况,用于识别信号的各种有效组合关系。

推论1 多个信号乘法运算,可以分解为多个两信号乘法运算的迭代运算。

假设As,Bs,Cs3个信号的有效集合分别为

A={As,},B={Bs,},
C={Cs,}。

As,Bs,Cs3个信号有效集的乘法运算为

T=A×B×C=(A×B)×C=

{,<,,

,>}×C=

{,<,

,,

,,

,,

>}。

推论1是将定义2推广到多信号有效子集的所有组合情况的计算。

定义3 信号有效集合数量

假设S为信号Sig有效集合,S集合中有效子集的个数k称为信号有效子集数量,记为

k=N(S),

式中,N为运算符。

定义3是计算符号,用于计算信号有效子集的数量。

推论2 信号有效子集数量等于所有信号有效子集数量的乘积

假设S1,S2,…,Sn为对应信号的有效集合,Sa=S1×S2×…×Sn,那么,ka=N(Sa)=N(S1)×N(S2)×…×N(Sn)。

推论2代表了多信号组合后的所有可能组合数量的计算方法。

2 分析过程及流程

2.1 需求分析过程

需求分析过程中,可以结合系统用例图,识别不同系统状态下的输入接口和信号,从而减小Input,State组合空间的大小,进而降低分析的复杂度。假设系统用例如图1所示。

用例的接口关系参见表1。

所有输入信号有效集合为(参见定义1)

Sa={a,},Sb={b,}

Se={e,},Sf={f,}。

(1)用例1。在用例1的情况下,系统输入信号的有效组合为(参见定义2)

T1=Sa×Sb={,,

b2>,,,,

,,}

所有信号组合后有效子集数量为(参见定义3和推论2)

k1=N(T1)=9。

(2)用例2。在用例2情况下,系统的输入信号的有效集合组合为(参见定义2)

T2=Se×Sf={,,

,,},

组合后有效子集数量为(参见定义3和推论2)k2=N(T2)=4。

综合用例1和用例2,要充分描述系统在输入信号a,b,e,f作用下的功能需求,需要考虑的功能需求数为ka=k1+k2=13。

2.2 需求分析流程

系统功能需求结构化分析流程参见图2,未来可以考虑程序化自动处理。

图2 系统功能需求结构化分析流程图

3 实例验证

3.1 实例分析

以某自适应巡航系统ACC为例,验证系统功能需求分析方法的适用性和有效性。

3.1.1 识别系统用例

ACC系统用例有2个(为简化,其他用例省略):

(1)速度控制模式。速度控制模式主要是维持当前车速为设定的巡航速度不变,适用于前方没有车辆的情况。

(2)跟车模式。跟车模式主要是前方有车并且车速低于设定的巡航速度时的控制策略。此时,本车保持与前车车速一致,进行跟随。

3.1.2 识别用例的外部参与者

识别两个用例的外部参与者相同,均为:驾驶员(Driver);发动机(Engine);刹车系统(Brake);雷达(Radar)。

系统用例图参见图3。

图3 自适应巡航系统用例示意

3.1.3 识别用例和外部参与者间的信号接口

“速度控制模式”和“跟车模式”用例与外部的接口命名为:(1)Driver;(2)Engine;(3)Brake;(4)Radar。

3.1.4 识别“速度控制模式”用例所有信号的有效子集

根据系统特点和定义1,识别的“速度控制模式”用例的所有输入信号的有效集合参见表2。

表2 速度控制模式下所有信号有效子集

3.1.5 分析“速度控制模式”输入信号组合的数量

根据表2,一共有5个信号作为输入,根据推论3,所有信号的各种组合数量的计算公式及结果为

3.1.6 对照输入信号组合数量,识别需求

在识别的32种信号有效组合中,根据不同的组合情况,分别识别对应的需求,参见表3。

表3 速度控制模式下识别的所有需求

3.1.7 将需求整理成需求规范

根据表3整理得到如下的需求规范:

(1)当前车速度大于本车速度,且两车之间距离大于安全距离时,保持跟车模式运行。

(2)当前车速度大于本车速度,且两车之间距离小于等于安全距离时,刹车,直到两车之间距离大于安全距离。

(3)当前车速度大于本车速度,且两车之间距离小于安全距离时,刹车,直到本车速度小于等于前车速度。

(4)当前车速度小于本车速度,且两车之间距离小于安全距离时,刹车,直到本车速度小于等于前车速度,且两车距离大于安全距离。

(5)接收到刹车踏板信号时,退出自动巡航,如果此时前车速度小于本车速度并且两车距离小于安全距离,则发出警报。

(6)接收到油门踏板信号时,退出自动巡航;,如果此时前车速度小于本车速度并且两车距离小于安全距离,则发出警报。

(7)接收到退出巡航按钮信号时,退出自动巡航。

根据前面的分析可知,(1)~(7)的需求规范涵盖了所有输入信号的各种组合,是“速度控制模式”的“全部的功能需求”,从而达到了识别该运行模式下功能需求的目的。

3.2 实例总结

在以上的分析中,只对“速度控制模式”进行了功能需求完整性分析。从分析可以看出,在“速度控制模式”下,系统涵盖了对所有输入信号各种组合的所有功能要求,这意味着,该模式下的所有的功能需求都已经得到了分析,因此,该模式下的功能需求描述是完整的、全面的。

以此类推,可以再次分析“跟车模式”下的所有输入信号的各种组合,并且针对每种输入信号的组合,提出对应的功能需求,可以保证该模式下的功能需求描述是完整的。

如果ACC系统还有其他的工作模式,则仿照以上的分析过程对所有的其他工作模式进行分析,确保每种工作模式下所有的输入信号的各种组合得到分析,并且提出对应的功能需求,确保每种工作模式下的功能需求描述都是完整的。

最后,通过整理得到ACC系统的完整需求,或者基于以上的需求分析表格直接进行工作。

3.3 本方法的优越性

从国内外文献检索情况看,传统的功能需求获取方法主要有以下几方面的不足:

(1)基于主观的分析方法,对干系人的经验要求较高,容易受到个人主观情绪的影响。

(2)分析方法一般根据专家经验,主要关注了核心关键需求,对特别细节的需求,考虑不周。

(3)非结构化方法,容易造成功能需求分析不完整。

从整体看,本方法属于比较客观的分析方法,虽然实际分析过程中,依然需要人确定状态,确定输入端的等效子集等,存在一定的主观性,但是与传统纯主观的分析方法相比,客观性得到了增强。

另外,本方法形成了特有的分析过程,在分析过程的结构化上得到了极大的增强,该过程一旦掌握,将大大降低传统非结构化方法带来的需求分析不完整的问题。

4 结 论

系统功能需求本质上是系统在特定状态下对所有系统外部输入组合的所有响应,基于此,提出了基于系统特定状态和系统输入信号组合的方法以提升系统需求分析的完整性,从而可以得到尽量完善的系统功能需求。

通过识别系统的所有用例,识别每种用例下所有外部输入信号的所有组合情况,识别每种信号组合情况下,系统应该具备的所有功能,从而得到该用例下系统的完整的功能需求;然后,对每个系统用例,都识别其完整的功能需求,最后,整理所有用例的功能需求(可能会对需求进行合并),形成系统功能需求。

该方法结合实际自适应巡航系统进行了某特定状态下的功能需求分析,实例分析证明了该方法对于识别功能需求的有效性,并且是结构化的,易于掌握和应用。

虽然该方法对小型系统是实用的,但对于大型、复杂系统,直接应用还存在一定的困难。目前最直接的方法如3.2节所描述,将系统的用例自上而下,不断细化,待用例到达足够小的时候,使用此方法;然后,再依次向上逐步综合,进而形成大型、复杂系统的功能需求。目前的情况下,依然会存在输入组合数过多的问题,在可接受的范围内,下一步研究考虑进行计算机自动组合分析。

猜你喜欢

子集用例分析方法
高一上学年期末综合演练
拓扑空间中紧致子集的性质研究
基于EMD的MEMS陀螺仪随机漂移分析方法
建筑工程施工质量控制及分析方法阐述
中国设立PSSA的可行性及其分析方法
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
资费拨测系统的研究与应用
用例规约在课程成绩管理系统需求分析中的应用研究
集合的运算