CN106650945A - 一种基于证据合成理论的软件体系结构安全性评估方法 - Google Patents
一种基于证据合成理论的软件体系结构安全性评估方法 Download PDFInfo
- Publication number
- CN106650945A CN106650945A CN201611009821.7A CN201611009821A CN106650945A CN 106650945 A CN106650945 A CN 106650945A CN 201611009821 A CN201611009821 A CN 201611009821A CN 106650945 A CN106650945 A CN 106650945A
- Authority
- CN
- China
- Prior art keywords
- component
- safety
- security
- software
- grade
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/02—Computing arrangements based on specific mathematical models using fuzzy logic
Abstract
本发明公开了一种基于证据合成理论的软件体系结构安全性评估方法,属于软件安全性评估技术领域;首先构建该某个软件系统的体系结构模型,对构件涉及的安全性要素进行模糊数学化表述,然后利用软件体系结构分析方法,得到构件的转移概率和运行路径在整个系统中的转移概率,进而利用Dempster‑Shafer(D‑S)证据合成理论,结合软件运行路径的使用权重,对构件进行安全性合成,得到每个构件的安全等级评估结果,从而计算运行路径的安全等级评估结果以及系统的安全性等级评估结果;本发明利用遵循自底向上的软件工程分析方法,实现对软件系统动态的安全性分析和评估。
Description
技术领域
本发明属于软件安全性评估技术领域,涉及一种基于证据合成理论的软件体系结构安全性评估方法。
背景技术
近年来,随着计算机技术的发展越来越广泛,软件已广泛应用于航空电子领域的安全关键系统。越来越多的功能被转移到软件来代替机械系统,因此软件变得越来越复杂,导致对安全性的要求很高。长期以来,由于安全关键系统软件的故障问题,造成了生命财产的损失,甚至导致严重的灾害,环境案件层出不穷。按照传统的软件安全性评估方法,是在软件分析的后期对软件进行安全性评估,若软件安全性论证出问题,修改的时间和成本代价会难以承受。同时在软件系统的安全性评估工作中,不应该只考虑到构件以及子系统的安全性分析本身,还应该关注构件及子系统软件的体系结构以及构件的使用环境。目前,把独立构件的安全性设定为一个固定值对系统进行安全性评估,会导致安全性分析上的不完全性。
目前软件安全性保障工作的评估主要体现在两个方面,基于风险的评估和基于缺陷的评估。Fenton认为测量软件的安全性应该考虑影响风险:如控制事件和触发事件的因素,而且要考虑对安全措施后果的影响。并且Fenton开发了一个安全性评估的系统AgenaRisk(Fenton于2006年发表的安全性评估系统),但是他的评估模型需要输入一些软件失效概率和控制事件成功概率等,这在软件的早期是很难得到的信息。在系统AgenaRisk中,作者分析了会导致风险的缺陷,并且在McCall模型基础上开发了一个安全关键软件安全性度量框架。但是值得指出的是软件的安全性不一定与系统中的剩余缺陷数成反比,应该还涉及到软件的运行剖面。只要这些缺陷没有被激活,不会对系统造成安全威胁。
基于构件的软件开发(CBSD)可以降低开发成本和上市时间,并提高维护性和软件系统的可靠性。在构件化软件开发方法中,构件是在系统中可以独立完成某功能的一个组件,构件工作在一个良好的上下文定义的架构中,构件之间通过接口进行通信。由于构件的特性,软件工程工作中,软件设计者使用自底向上的方法来开发软件系统;类似的可以借鉴这样的思路来评估构件化软件系统的安全性。为了确保构件化的软件系统准确而又有效的运行,系统体系结构是一个很重要的要素,根据构件化软件工程开发的特点,构件化系统的体系结构是模块化和层次化的。
目前软件安全性预计模型存在的难以解决的问题是:不少软件安全性预计模型都是在软件设计实现完毕后,对软件进行系统级的测试与软件安全性分析工作,难以实现在软件设计阶段的软件安全性评估工作,从而指导软件的安全性设计。因此如何在软件架构设计阶段综合一些软件构件的安全信息:如构件的故障率,故障发生后果的严重程度以及故障导致安全事故发生的可能性等历史信息,建立一个综合模型考虑软件的安全性,力图全面考虑影响软件安全性的各种信息进行软件安全性的建模与评估,使之成为一种新的思路。然而这些信息或因素通常属于主观信息,很难准确、客观的描述出来;这就使得现存的安全性评估模型:如基于概率的模型,建模和评估具有很大的局限性。
能够处理主观评价的模糊集理论可以作为安全性评估的数学模型,这一方法近年来也引起人们的注意并取得了一些研究成果。目前对于软件的安全性描述,大多数属于等级划分的思想,采用自然语言变量对其进行模糊的定性描述。比如DO-178B就规定软件的安全性分五级,按照发生故障后导致的后果严重程度分为:A级Catastrophic、B级Hazardous、C级Major、D级Minor以及E级No effect,对这种安全性的主观描述语言进行模糊数学化。
定义1:给定论域U到[0,1]闭区间的任一映射μA(U),确定U的模糊子集A={(u,μA(u))|u∈U},则称μA为模糊子集A的隶属度函数,μA{u}称之为u对A的隶属度。论域之上的模糊子集A由隶属函数μA表征。
单个构件的失效模式可由失效率FR、危险后果严重程度CS和失效后果发生概率FCP进行描述。上述参数可以分级评估以模糊化,失效率、危险后果严重程度和失效后果发生概率对应的参数模糊集分别用L、C、E来表示,对应地隶属函数为μc、μe和μL。
构件的安全度可以用这些参数模糊集操作组合加以描述:
式中代表组合操作,而×代表笛卡尔乘积;为安全度隶属于第j类的程度;S和μs是某一失效模式下危险因素导致的安全度等级的一种模糊描述。
定义2:给定命题Θ,若有函数m:2Θ→[0,1],符合可以称m为Θ上的基本概率分配函数;而称为X的基本置信度或者Mass函数m(X)。
在软件系统的安全性评估工作中,不应该只考虑到构件的安全性分析本身还应该关注构件软件的体系结构以及构件使用环境。把独立构件的安全性设定为一个固定值对系统进行安全性评估,这样必然会导致安全性分析上的不完全性。
发明内容
本发明为了解决传统的软件系统在设计建模阶段工作时,难以利用软件架构对软件进行动态安全性评估的问题;提出了一种基于证据合成理论的软件体系结构安全性评估方法;
包括以下几个步骤:
步骤一、针对某个软件系统,利用模块构建该软件系统的体系结构模型;
体系结构模型包括构件和体系结构配置;构件指组成该软件系统的独立单元,由软件系统的特点和需要分析的软件层次决定;体系结构配置是指构件与构件之间的连接关系;
步骤二、针对每个构件,根据安全性需求规格说明,计算该构件的三个模糊集;
每个构件的模糊集包括:失效率对应的参数模糊集L;危险后果严重程度对应的参数模糊集C;以及失效后果发生概率对应的参数模糊集E;对应地隶属函数为μL、μc和μe。
三个模糊集的自然语言分类等级包括:
模糊集L的安全等级描述为:高度频繁、频繁、合理频繁、平常、比较低、相当低和很低;
模糊集C的安全等级描述,在自然语言的等级分为:可忽略的、最低限度的、危险的、灾难性的;
模糊集E的安全等级描述为:极不可能、不可能、不太可能、可能、比较可能、极度可能和一定发生。
步骤三、针对某个构件i,根据三个模糊集计算该构件的安全性模糊集合成值Si;
μci代表模糊集C的安全性描述隶属于该模糊集安全等级的程度;μei代表模糊集E的安全性描述隶属于该模糊集安全等级的程度;μLi代表模糊集L的安全性描述隶属于该模糊集安全等级的程度;构件i总体的安全性描述隶属于自然语言变量的程度共有Hn类;n是指自然语言变量的分类;代表构件i的安全性描述隶属于第Hn类的程度。
步骤四、针对构件i的安全性模糊集合成值Si,分别计算该构件到五个安全度等级的五个闵可夫斯基距离;
五个安全度等级是指:对软件的安全性综合评估结果按5个等级进行划分,为1级灾难的、2级危险的、3级中等的、4级极低的和5级无影响;用集合表示为:j=(1,2,3,4,5);
闵可夫斯基距离dij公式如下:
dij表示构件i到第j个安全度等级的闵可夫斯基距离。是指根据构件i的安全性模糊集合成值Si中对应的第n个元素值;是指机载软件适航标准DO-178B中第j个安全度等级对应的第n个自然语言变量分类值。
构件i到五个安全度等级的闵可夫斯基距离dij为一行五列的向量;
步骤五、对五个闵可夫斯基距离分别标准化,得到构件i到五个安全度等级之间的安全性等级估计值;
构件i到第j个安全度等级之间的标准化安全性等级估计值βij计算如下:
aij是闵可夫斯基距离dij的倒数,计算如下:
diJ(J=1,2,3,4,5)为构件i到五个安全度等级的闵可夫斯基距离值中的最小值;
步骤六、分析当前软件系统的体系结构模型中的所有运行路径;
每个软件系统的运行过程是:一个构件经过一个体系结构配置和另一个构件进行数据传输的过程,对软件进行动态运行分析,得到系统在运行过程中由构件和体系结构配置组成的不同的运行路径。
步骤七、根据所有运行路径分别计算任意两个相邻构件的转移概率;
构件a与相邻构件b之间的转移概率vab计算如下:
vab=tab/ta
其中tab表示从构件a到相邻构件b的使用频率,而表示从构件a传出的且到与构件a有交互关系的所有相邻构件的使用频率之和,M表示从构件a传出的且与构件a有交互关系的所有相邻构件的数量。
步骤八、针对每个运行路径,利用该运行路径上每个构件的转移概率和五个安全性等级估计值,运用证据合成理论计算该运行路径的安全等级评估结果;
具体步骤如下:
步骤801、针对某个运行路径p上的构件i,计算构件i与相邻构件的转移概率vi;
构件i在M条运行路径中都存在,则转移概率vi计算如下:
vi1+vi2+...+viM=1
步骤802、根据构件i的转移概率vi和标准化安全性等级估计值βij,计算分配后安全性等级估计值
步骤803、利用分配后安全性等级估计值计算构件i和相邻构件i+1的安全性评估结果的冲突程度系数Ki,i+1;
代表构件i到第T个安全度等级之间的分配后安全性等级估计值;代表构件i+1到第R个安全度等级之间的分配后安全性等级估计值。
步骤804、利用构件i的分配后安全性等级估计值和证据合成理论,计算归一化参数
H表示代表构件i到第H个安全度等级之间的分配后安全性等级估计值;
步骤805、将第i+1个构件与前i个构件进行合成处理,得到运行路径p的安全性等级评估结果
初始设置
步骤806、将运行路径p的安全性等级评估结果映射为集合S(p);
Hj表示运行路径p的安全性等级评估结果对应的第j个安全度等级。
步骤九、利用证据合成公式,将每条运行路径的安全等级评估结果进行合成,得到系统安全性等级;
具体步骤如下:
步骤901、设定运行路径p的安全性等级评估结果用表示;
步骤902、利用运行路径p和相邻运行路径p+1的安全性等级评估结果,计算冲突程度系数Kp,p+1;
其中代表运行路径p到第T个安全度等级之间的安全性等级评估结果;代表运行路径p+1到第R个安全度等级之间的安全性等级评估结果。
步骤903、利用运行路径p的安全性等级评估结果和证据合成理论,计算归一化参数
H表示代表运行路径p到第H个安全度等级之间的安全性等级评估结果;
步骤904、将第p+1个运行路径与前p个运行路径进行合成处理,得到系统所有的安全性等级评估结果
初始设置
步骤905、将所有运行路径的安全性等级评估结果映射为集合S(System);
Hj表示所有运行路径的安全性等级评估结果对应的第j个安全度等级。
本发明的优点在于:
(1)一种基于证据合成理论的软件体系结构安全性评估方法,利用模糊数学的处理方法使得主观化的安全性描述客观化,便于分析过程中的客观运算。
(2)一种基于证据合成理论的软件体系结构安全性评估方法,利用软件运行剖面的分析信息,评估软件的动态运行过程中的安全性,使得评估结果更符合真实运行中的软件安全性。
(3)一种基于证据合成理论的软件体系结构安全性评估方法,考虑到了软件构件中的几个对安全性有影响的关键因素,使得对构件安全性的评估更全面客观。
附图说明
图1为本发明一种基于证据合成理论的软件体系结构安全性评估方法原理图;
图2为本发明一种基于证据合成理论的软件体系结构安全性评估方法流程图;
图3为本发明运用证据合成理论计算每条运行路径的安全等级评估结果流程图;
图4为本发明将所有运行路径的安全等级评估结果合成得到系统安全性等级流程图;
图5为本发明实施例中简单飞控系统结构实例模型图。
具体实施方式
下面将结合附图对本发明作进一步的详细说明。
在软件体系结构设计阶段,在体系结构模型的最小单位构件元素中加入安全性关键特征的属性,并且对模型和关键特征的属性进行数学的形式化转化,在得到航空电子体系结构的转化后模型后,利用基于体系结构的软件安全性评估的方法,对转化后的评估模型进行基于航电体系结构关键特征的安全性评估方法,形成了基于航电体系结构AADL模型的软件安全性评估方法。
本发明一种基于证据合成理论的软件体系结构安全性评估方法,如图1所示,本发明首先根据构件软件体系结构模型分析系统中的构建和连接的关系,利用系统安全性需求规格说明书从构件的失效可能性、构件失效后果严重程度和构件的失效后果严重程度三个维度分析构件的安全性,建立系统的构件安全性模糊集合,接下来将建立的系统构件安全性模糊集合进行模糊数学计算处理得到合成的构件的安全性评估模糊集,利用闵可夫斯基距离公式和模糊数学计算方法得到构件的安全性评估等级。然后利用系统运行剖面分析信息,得到系统构件和运行路径的使用概率。
接下来通过系统的运行使用概率信息和构件安全性评估等级结合,得到加权处理后的安全性评估等级,利用D-S证据合成理论,将构件的安全性评估等级进行合成,最终得到系统每个运行路径的安全性评估等级。遵循同样的思路,将路径的安全性评估等级利用D-S证据合成理论进行合成,得到系统的安全性评估等级的结果。
具体是指基于软件的体系结构,利用模糊数学理论和D-S证据合成理论结合软件的运行剖面信息,对软件安全性进行建模并评估的方法。在软件系统中,单个构件i的安全度S(i)可以被认为是拥有置信度βij,j=1,2,…s的一个假设,多个构件的安全度可以被不同的假设证据合成。然后软件使用场景的安全度可以再次通过合成和推理,加入软件的使用信息进行合成最终得到整个软件系统的安全度。
如图2所示,具体步骤如下:
步骤一、针对某个软件系统,利用模块构建该软件系统的体系结构模型;
体系结构模型包括构件和体系结构配置;通过建模软件建立体系结构模型,该模型描述了系统构件的动态交互行为。
构件指组成该软件系统的独立单元,可以是子系统、模块、对象、库、产品、数据库或其它更加广泛的概念,具体的划分方法由软件系统的特点和需要分析的软件层次来决定。
体系结构配置是指构件与构件之间的连接关系,包括子系统构件模块、对象构件模块、库构件模块、产品构件模块或者数据库构件模块;
针对各软件系统,可以在设计阶段开始利用软件详细设计文档,分析该软件系统的软件体系结构,仔细划分软件体系结构中的构件和体系结构配置;软件体系结构是关于软件的系统级层次上的组成和行为的设计,是设计过程中不可缺少的一个阶段,对复杂软件的后期设计活动起着重要的决定作用。
步骤二、针对每个构件,根据安全性需求规格说明,计算该构件的三个模糊集;
每个构件的模糊集包括:失效率对应的参数模糊集L,该参数表征的是在一定时期内失效发生的频率;危险后果严重程度对应的参数模糊集C,该参数为可能发生危险后果的严重性;以及失效后果发生概率对应的参数模糊集E,该参数表示导致严重后果的概率。
根据机载软件适航标准DO-178B,针对安全性分析需求,在该体系结构模型中的构件上加入了本发明方法自定义的安全性分析的基本属性参数,每个构件的安全性评估参数由失效率FR、危险后果严重程度CS和失效后果发生概率FCP共同描述;根据软件系统的安全性评估需求规格说明书要求,对定性的安全性评估需求进行分析,将之模糊数学化处理,对应构件的安全性评估参数;在AADL的连接构件上加入本发明方法自定义的转移概率属性参数,用以描述软件系统的动态行为。
模糊集构建的方法如下:U={1,2,…,n-1,n}代表一个自然语言变量分类等级的集合;如“可能,很可能…,一定发生”等,则这些语言变量就可以用以下的模糊子集来表示:
Hazardous={1/0,2/0,…,n-1/0.5,n/1.0}式中,每一个分子代表分类,分母代表该模糊集合的隶属度。
根据常用的安全性描述自然语言,安全度模糊集的自然语言分类等级为:
模糊集L的安全等级描述为:高度频繁、频繁、合理频繁、平常、比较低、相当低和很低;模糊集C的安全等级描述:可忽略的、最低限度的、危险的、灾难性的;模糊集E的安全等级描述为:极不可能、不可能、不太可能、可能、比较可能、极度可能和一定发生。
比如一个构件的失效率对应的参数模糊集L,在构建模糊集L过程中可以进行判断,如果这个构件通过配置项测试是一个很可靠的构件,平均无故障时间很长,对该构件进行失效率的模糊集建模如下:失效可能性={1,0.75,0,0,0,0,0}。
通过建模软件建立体系结构模型,该模型描述了本发明自定义的安全性分析的基本属性参数,分别是失效率FR、危险后果严重程度CS系统构件的动态交互行为。针对安全性分析需求,在该分析模型中的体系结构构件上加入了和失效后果发生概率FCP的模糊集合;连接构件上加入本发明自定义的转移概率属性参数,用以描述软件系统的动态行为。
步骤三、针对某个构件i,根据三个模糊集计算该构件的安全性模糊集合成值Si;
针对每个构件,采用模糊集组合计算方法和安全度合成算法,根据三个模糊集计算该构件的模糊集合成值Si,该合成的结果也是一个带有7个类别的模糊集合;
μci代表模糊集C的安全性描述隶属于该模糊集安全等级的程度;μei代表模糊集E的安全性描述隶属于该模糊集安全等级的程度;μLi代表模糊集L的安全性描述隶属于该模糊集安全等级的程度;构件i总体的安全性描述隶属于自然语言变量的程度共有Hn类;n是指自然语言变量的分类;代表构件i的安全性描述隶属于第Hn类的程度。
结果是该构件在某一失效模式下的安全性因素导致的安全度等级的一种模糊描述。
步骤四、针对构件i的安全性模糊集合成值Si,分别计算该构件到五个安全度等级的五个闵可夫斯基距离;
五个安全度等级是指:对软件的安全性综合评估结果按5个等级进行划分,为1级灾难的、2级危险的、3级中等的、4级极低的和5级无影响;用集合表示为:j=(1,2,3,4,5);
闵可夫斯基距离dij公式如下:
dij表示构件i到第j个安全度等级的闵可夫斯基距离。是指根据构件i的安全性模糊集合成值Si中对应的第n个元素值;是指机载软件适航标准DO-178B中第j个安全度等级对应的第n个自然语言变量分类值。
构件i到五个安全度等级的闵可夫斯基距离dij为一行五列的向量;
例如:
利用最优拟合法,计算安全性模糊集合成值Si和每一个安全度等级之间的,即两个模糊集合的闵可夫斯基距离,即欧几里得距离。式中,dij表示构件i的安全度评估值对模糊语言变量Catastrophic的确信程度;dij越小说明模糊安全度Si距离第j个模糊语言变量越近。
步骤五、对五个闵可夫斯基距离分别标准化,得到构件i到五个安全度等级之间的安全性等级估计值;
构件i到第j个安全度等级之间的标准化安全性等级估计值βij计算如下:
aij是闵可夫斯基距离dij的倒数,ai1,ai2,ai3,ai4,ai5代表相对闵可夫斯基距离的倒数;计算如下:
diJ(J=1,2,3,4,5)为构件i到五个安全度等级的闵可夫斯基距离值中的最小值;
假设Hn代表一系列自然语言变量的集合,用于安全性表达和评估,Hj表示构件i的标准化安全性等级估计值βij对应的第j个安全度等级;所以映射集合S(i)={(βij,Hj)}。
步骤六、针对当前软件系统的体系结构模型,分析该模型的所有运行路径;
在软件系统的设计阶段,除了设计软件的体系结构静态模型外,还会有软件的顺序图来描述软件的动态运行情况,以及用例图,从使用的视角来描述软件所处的动态运行环境以及软件的执行条件等。
由于在软件的体系结构设计中,软件的构件和体系结构配置都是做了严格的定义的,每个软件系统的运行过程可以看成是:一个构件经过一个体系结构配置和另一个构件进行数据传输的过程,对软件进行动态运行分析,得到系统在运行过程中由构件和体系结构配置组成的不同的运行路径。
步骤七、根据所有运行路径分别计算任意两个相邻构件的转移概率;
在用例图中,构件a的下一个执行构件可能有很多个,因此考虑从构件a到构件b的转移概率,如公式:vab=tab/ta
其中tab表示从构件a到相邻构件b的传递消息的次数,也就是使用频率;而表示从构件a传出的且到与构件a有交互关系的所有相邻构件的消息总数,也就是使用频率之和;M表示从构件a传出的且与构件a有交互关系的所有相邻构件的数量。
步骤八、针对每个运行路径,利用该运行路径上每个构件的转移概率和五个安全性等级估计值,运用证据合成理论计算该运行路径的安全等级评估结果;
加入带有构件使用频度权重的信息,本发明提出的安全性合成的分层的算法模型,如图3所示,步骤如下:
步骤801、针对某个运行路径p上的构件i,计算构件i在该运行路径上与相邻构件的转移概率vi;
其中构件i在M条运行路径中都存在,则转移概率vi计算如下:
vi1+vi2+...+viM=1
步骤802、根据构件i的转移概率vi和标准化安全性等级估计值βij,计算分配后安全性等级估计值
步骤803、利用分配后安全性等级估计值计算构件i和相邻构件i+1的安全性评估结果的冲突程度系数Ki,i+1;
其中代表构件i到第T个安全度等级之间的分配后安全性等级估计值;代表构件i+1到第R个安全度等级之间的分配后安全性等级估计值。
步骤804、利用构件i的分配后安全性等级估计值和证据合成理论,计算归一化参数
H表示代表构件i到第H个安全度等级之间的分配后安全性等级估计值;
步骤805、将第i+1个构件与前i个构件进行合成处理,得到该条运行路径的安全性等级评估结果
初始设置
根据D-S理论的基本算法,两个模糊集合成的算法如下:
将运行路径p中的所有构件的安全性评估结果进行合成,合成的步骤是两两合成,先得到第一个和第二个的合成结果,再将该结果与第三个进行合成,以此类推。
步骤806、将运行路径p的安全性等级评估结果映射为集合S(p);
Hj表示运行路径p的安全性等级评估结果对应的第j个安全度等级。
步骤九、利用证据合成公式,将每个运行路径的安全等级评估结果进行合成,得到系统安全性等级;
利用和步骤八一样的算法,将构件的安全性等级评估结果替换成路径的安全性等级评估结果进行合成,可以得到系统的安全性等级评估结果。
如图4所示,具体步骤如下:
步骤901、设定运行路径p的安全性等级评估结果用表示;
用代表路径p的安全性等级评估结果,替代构件的安全性评估等级的结果
定义Vk=(v1,v2,…vp)代表路径p在软件系统中的使用概率向量,该参数用于提供基本使用概率为安全度的赋值函数进行动态信任评估,从而可以由下式计算:
步骤902、利用运行路径p和相邻运行路径p+1的安全性等级评估结果,计算冲突程度系数Kp,p+1;
其中代表运行路径p到第T个安全度等级之间的安全性等级评估结果;代表运行路径p+1到第R个安全度等级之间的安全性等级评估结果。
步骤903、利用运行路径p的安全性等级评估结果和证据合成理论,计算归一化参数
H表示代表运行路径p到第H个安全度等级之间的安全性等级评估结果;
步骤904、将第p+1个运行路径与前p个运行路径进行合成处理,得到系统所有的安全性等级评估结果
初始设置
步骤905、将所有运行路径的安全性等级评估结果映射为集合S(System);
其中,代表最后一条路径p+1与之前p条路径进行安全性评估结果合成之后的值,计算出系统的安全度之后可以映射到DO-178B所规定的软件安全性等级表达中。Hj表示所有运行路径的安全性等级评估结果对应的第j个安全度等级。
利用运行路径的安全性等级评估结果合成得到系统的安全性等级评估结果;在得到每个运行路径的安全性等级评估结果后,利用每个路径不同的转移概率作为权重,在进行D-S证据合成计算的时候加入该权重,由于加入了软件运行路径的转移概率这一动态信息,就可以得到软件系统的动态安全性评估结果。
实施例:
以某飞控系统为例,体系结构模型如图5所示,其中,“飞控操纵台”Operating)是飞控系统的人机接口,具有驾驶员对系统工作状态的设置功能及对系统工作状态的指示功能。系统由增稳/控制增稳子系统(pcs,lcs)、自动飞行子系统(ap_manage)和自动配平子系统(pap)构成,增稳/控制增稳子系统为三余度配置(rm);同时系统还有控线分系统,主要是飞行状态选择器(CDS);以及系统的bit几个主要模块组成。
步骤一、针对某个软件系统,利用模块构建该软件系统的体系结构模型;
在本发明中将以上几个模块视为该软件系统的构件,建立飞控子系统体系结构安全性模型。根据软件系统体系架构分析,假设构件c1是飞控操作台模块,构件c2是启动程序模块,构件c3是系统BIT模块,构件c4是三余度控制模块,构件c5是飞行状态选择器模块。
步骤二、针对每个构件,分析软件安全性需求规格说明,计算该构件的三个模糊集;
根据软件需求规格说明书,对照DO-178B标准将软件构件的失效率FR、危险后果严重程度CS和失效后果发生概率FCP进行安全性分析,用模糊集描述这几个属性的安全性等级,模糊集的建立如表1,表2和表3所示;该模糊集的建立是通过W Karwowski于1986年在《Fuzzy Sets&Systems》上发表的文献《Potential applications of fuzzy sets inindustrial safety engineering》里提出的安全性模糊集的建立方法,该方法由于对安全性集合进行科学的分类并进行了计算的证明,在安全性的模糊评价工作中一直被沿用。
失效可能性模糊度如表1所示:
表1
失效后果严重程度模糊度如表2所示:
表2
失效后果发生可能性模糊度如表3所示,
表3
根据软件的飞控操作台的安全性需求分析文档,构件c1的失效概率介于“比较低”等级和“相当低”等级之间,并且可以认为非常接近“相当低”等级;由于构件c1影响到子系统的每个运行路径,故安全后果严重程度被认为是“危险的”,该构件c1是系统的一个关键构件,内部有备份冗余设置,故该构件的失效后果发生可能性被判定为接近“不太可能”和“不可能”之间,最后构件c1的安全性属性的模糊集构建结果如下:
L1={1/0.5,2/0.75,3/0.5,4/0,5/0,6/0,7/0}
C1={1/0,2/0,3/0,4/0.75,5/1,6/0.25,7/0}
E1={1/0.1,2/0.5,3/0.5,4/0,5/0,6/0,7/0}
遵循同样的分析思路,得到c2-c5的构件安全性属性模糊集合:
构件c2的失效概率介于“比较低”等级和“相当低”等级之间,并且根据失效率得到该模块可以认为非常接近“比较低”等级;由于构件c2是启动程序影响到子系统的每个运行路径,故安全后果严重程度被认为是“危险的”,该构件c2是系统的一个关键构件并且逻辑复杂目前没有做备份,故该构件的失效后果发生可能性被判定为接近“比较可能”和“极度可能”之间。
构件c2的安全性属性的模糊集构建结果如下:
L2={1/0,2/0.25,3/1,4/0.75,5/0,6/0,7/0}
C2={1/0,2/0,3/0,4/0.75,5/1,6/0.25,7/0}
E2={1/0,2/0,3/0,4/0,5/0.8,6/1,7/0.2}
构件c3是系统BIT模块,该模块的失效概率介于“很低”等级和“相当低”等级之间,并且根据失效率得到该模块可以认为非常接近“很低”等级;由于构件c3是BIT程序并不影响到子系统的每个运行路径,故安全后果严重程度被认为是“可接受的”和“可忽略的”,该构件c3是系统的测试性设计模块,故该构件的失效后果发生可能性被判定为接近“可能”和“不太可能”之间。
构件c3的安全性属性的模糊集构建结果如下:
L3={1/0.1,2/0.75,3/0.7,4/0.3,5/0,6/0,7/0}
C3={1/0,2/0,3/0,4/0.6,5/0.8,6/0.4,7/0.1}
E3={1/0,2/0,3/0,4/0.7,5/0.8,6/0.4,7/0.1}
构件c4是系统三余度模块,由于是通过配置项测试该模块的失效概率介于“比较低”等级和“平常”等级之间,并且根据失效率得到该模块可以认为非常接近“比较低”等级;由于构件c4是三余度控制程序并不影响到子系统的每个运行路径,故安全后果严重程度被认为是“危险的”,该构件c4是系统的备份冗余功能设计模块,故该构件的失效后果发生可能性被判定为接近“不可能”和“不太可能”之间。
构件c4的安全性属性的模糊集构建结果如下:
L4={1/0,2/0.3,3/1.0,4/0.7,5/0,6/0,7/0}
C4={1/0,2/0,3/0,4/0.75,5/1,6/0.25,7/0}
E4={1/0,2/0,3/0,4/0,5/0.7,6/1,7/0.3}
构件c5是系统飞行状态选择器模块,通过配置项测试该模块属于系统的关键模块,该的失效概率为“很低”等级;构件c5是系统关键模块,影响到子系统的每个运行路径,故安全后果严重程度被认为是“危险的”和“灾难的”之间,该构件具有备份冗余,故失效后果发生可能性被判定为接近“不可能”和“极不可能”之间。
构件c5的安全性属性的模糊集构建结果如下:
L5={1/0.25,2/1,3/0.25,4/0,5/0,6/0,7/0}
C5={1/0,2/0,3/0,4/0.75,5/0,6/1,7/0.25}
E5={1/0.25,2/1,3/0,4/0,5/0,6/0,7/0}
步骤三、根据三个模糊集计算各构件的安全性模糊集合成值;
用安全度合成算法,计算三个安全度模糊集的模糊集合成值,对构件c1有以下:
对其余构件构件c2,构件c3,构件c4和构件c5采用同样方法计算。
步骤四、针对构件i的安全性模糊集合成值Si,分别计算该构件到五个安全度等级的五个闵可夫斯基距离;
参考表4计算各安全性模糊集合成值到安全度表达模糊集的闵可夫斯基Minkowski距离。该表的安全度等级是根据DO-178B给出的飞机适航验证中的安全度分析等级。
表4
利用最优拟合算法,利用下列公式计算每个构件的安全度模糊集到五个安全度等级的闵可夫斯基距离。
针对构件c1到第一个安全度等级“Catastrophic”的闵可夫斯基距离为:
结果为:
同理,构件c1到第二个安全度等级的闵可夫斯基距离为d12,构件c1到第三个安全度等级的闵可夫斯基距离为d13;构件c1到第四个安全度等级的闵可夫斯基距离为d14;构件c1到第五个安全度等级的闵可夫斯基距离为d15;结果为:d12=0.901,d13=1.089,d14=1.030,d15=0.968。
步骤五、对五个闵可夫斯基距离分别标准化,得到构件c1到五个安全度等级之间的安全性等级估计值;
首先,根据五个闵可夫斯基距离分别计算倒数a11,a12,a13,a14,a15,结果依次如下:
a11=0.681,a12=1,a13=1.208,a14=1.143,a15=1.074
然后,根据五个倒数计算构件c1到五个安全度等级之间的标准化安全性等级估计值β11,β12,β13,β14,β15,结果为:β11=0.133,β12=0.196,β13=0.237,β14=0.224,β15=0.210。
最后,构件c1的安全性等级估计值集合结果为:
可以看到,构件c1的安全性等级估计值中以13.3%的置信度符合灾难的等级“catastrophic”;以19.6%的置信度符合危险的等级“hazardous”,以23.7%的置信度符合中等的等级“major”,以22.4%的置信度符合极低的等级“minor”,以21%的置信度符合无影响等级“no effect”。
遵循同样的计算思路,得到其余几个构件的安全度等级集合:
构件c2的安全性等级估计值集合结果为:
S(c2)={(0.104,Catastrophic),(0.100,Hazardous),(0.523,Major),
(0.126,Minor),(0.147,Noeffect)}
构件c3的安全性等级估计值集合结果为:
构件c4的安全性等级估计值集合结果为:
构件c5的安全性等级估计值集合结果为:
以上分别得到五个构件的安全性等级估计值集合。
步骤六、对软件的运行路径进行路径分析。
分析系统的运行路径,假设运行路径p1是c1-c2-c3,运行路径p2是c1-c2-c4-c5。
步骤七、根据所有运行路径分别计算任意两个相邻构件的转移概率;
根据系统分析人员分析,结合软件系统的使用情况,构件c2-c3和构件c2-c4在运行路径p1和p2的转移概率分别为:v23=0.6666和v24=0.3333。
步骤八、分别计算两条运行路径的安全等级评估结果;
针对第一条路径,利用D-S合成理论,综合构件c1,c2,c3的安全置信等级S(c1),S(c2),S(c3)得到软件运行路径p1的安全等级评估结果Sp1为:
利用公式:
n=1,…,n-1
首先,计算构件c1和相邻构件c2的安全性评估结果的冲突程度系数Kc1,c2为:Kc1,c2=1.747
并假定
然后,计算构件c2在运行路径p1中的分配后的安全性评估结果为:得到
最后,将构件c1与构件c2进行合成处理,得到前两个构件的安全性等级评估结果合成值;
同理,利用分配后的构件c2的安全性等级评估结果和相邻构件c3的安全性等级评估结果计算冲突程度系数Kc2,c3;再利用前两个构件的安全性等级评估结果合成值与构件c3进行合成,得到路径p1的安全性等级评估结果:
映射为集合:
即路径p1的安全性等级评估结果中,以12.82%的置信度符合灾难的等级“catastrophe”,以17.58%的置信度符合危险的等级“hazardous”,以20.52%的置信度符合中等的等级“major”,以28.90%的置信度符合极低的等级“minor”,以17.94%的置信度符合无影响等级“no effect”。
针对第二条路径,遵循同样的思路计算p2的安全度等级集合为:
S(P2)={(0.1103,Catastrophic),(0.1051,Hazardous),(0.3002,Major),
(0.3571,Minor),(0.1273,Noeffect)}
即路径p2的安全性等级评估结果中,以11.03%的置信度符合灾难的等级“catastrophe”,以10.51%的置信度符合危险的等级“hazardous”,以30.02%的置信度符合中等的等级“major”,以35.71%的置信度符合极低的等级“minor”,以12.73%的置信度符合无影响等级“no effect”。
步骤九、利用两条运行路径的安全等级评估结果合成,得到系统的安全等级评估结果。
根据综合算法,首先计算运行路径p1和p2的冲突程度系数Kp1p2=1.80775;假定所以将运行路径p1和p2进行合成处理,得到系统的安全性等级评估结果合成值;
综合软件动态运行路径的使用概率的软件系统的安全等级评估结果S(System)为:
S(System)={(0.1420,Catastrophic),(0.1826,Hazardous),(0.1954,Major),
(0.34965,Minor),(0.12688,Noeffect)}
根据以上结果,该飞控软件系统的安全等级以34.965%的置信度被评价为Minor。该结果可以作为系统安全度量结果的决策参考。在整个构件安全等级的分析过程中,结合该软件的安全需求规格说明书分析构件的安全等级,绝大多数的构件在进行安全度模糊集的安全性评估时被评价为安全评估等级为Minor,少部分的构件在进行安全度模糊集合评估时被评价为等级Catastrophic,该评估结果也是符合该软件在适航认证时得到的安全度评估评价为Minor 等级的结果。
Claims (5)
1.一种基于证据合成理论的软件体系结构安全性评估方法,其特征在于,包括以下步骤:
步骤一、针对某个软件系统,利用模块构建该软件系统的体系结构模型;
体系结构模型包括构件和体系结构配置;
步骤二、针对每个构件,根据安全性需求规格说明,计算该构件的三个模糊集;
每个构件的模糊集包括:失效率对应的参数模糊集L;危险后果严重程度对应的参数模糊集C;以及失效后果发生概率对应的参数模糊集E;对应地隶属函数为μL、μc和μe;
步骤三、针对某个构件i,根据三个模糊集计算该构件的安全性模糊集合成值Si;
μci代表模糊集C的安全性描述隶属于该模糊集安全等级的程度;μei代表模糊集E的安全性描述隶属于该模糊集安全等级的程度;μLi代表模糊集L的安全性描述隶属于该模糊集安全等级的程度;构件i总体的安全性描述隶属于自然语言变量的程度共有Hn类;n是指自然语言变量的分类;代表构件i的安全性描述隶属于第Hn类的程度;
步骤四、针对构件i的安全性模糊集合成值Si,分别计算该构件到五个安全度等级的五个闵可夫斯基距离;
五个安全度等级是指:对软件的安全性综合评估结果按5个等级进行划分,为1级灾难的、2级危险的、3级中等的、4级极低的和5级无影响;用集合表示为:j=(1,2,3,4,5);
闵可夫斯基距离dij公式如下:
dij表示构件i到第j个安全度等级的闵可夫斯基距离;是指根据构件i的安全性模糊集合成值Si中对应的第n个元素值;是指机载软件适航标准DO-178B中第j个安全度等级对应的第n个自然语言变量分类值;
步骤五、对五个闵可夫斯基距离分别标准化,得到构件i到五个安全度等级之间的安全性等级估计值;
构件i到第j个安全度等级之间的标准化安全性等级估计值βij计算如下:
aij是闵可夫斯基距离dij的倒数,计算如下:
diJ(J=1,2,3,4,5)为构件i到五个安全度等级的闵可夫斯基距离值中的最小值;
步骤六、分析当前软件系统的体系结构模型中的所有运行路径;
每个软件系统的运行过程是:一个构件经过一个体系结构配置和另一个构件进行数据传输的过程,对软件进行动态运行分析,得到系统在运行过程中由构件和体系结构配置组成的不同的运行路径;
步骤七、根据所有运行路径分别计算任意两个相邻构件的转移概率;
构件a与相邻构件b之间的转移概率vab计算如下:
vab=tab/ta
其中tab表示从构件a到相邻构件b的使用频率,而表示从构件a传出的且到与构件a有交互关系的所有相邻构件的使用频率之和,M表示从构件a传出的且与构件a有交互关系的所有相邻构件的数量;
步骤八、针对每个运行路径,利用该运行路径上每个构件的转移概率和五个安全性等级估计值,运用证据合成理论计算该运行路径的安全等级评估结果;
步骤九、利用证据合成公式,将每条运行路径的安全等级评估结果进行合成,得到系统安全性等级。
2.如权利要求1所述的一种基于证据合成理论的软件体系结构安全性评估方法,其特征在于,步骤一中所述的构件指组成该软件系统的独立单元,由软件系统的特点和需要分析的软件层次决定;体系结构配置是指构件与构件之间的连接关系。
3.如权利要求1所述的一种基于证据合成理论的软件体系结构安全性评估方法,其特征在于,步骤二中所述的三个模糊集的自然语言分类等级包括:
模糊集L的安全等级描述为:高度频繁、频繁、合理频繁、平常、比较低、相当低和很低;
模糊集C的安全等级描述,在自然语言的等级分为:可忽略的、最低限度的、危险的、灾难性的;
模糊集E的安全等级描述为:极不可能、不可能、不太可能、可能、比较可能、极度可能和一定发生。
4.如权利要求1所述的一种基于证据合成理论的软件体系结构安全性评估方法,其特征在于,所述的步骤八具体为:
步骤801、针对某个运行路径p上的构件i,计算构件i与相邻构件的转移概率vi;
构件i在M条运行路径中都存在,则转移概率vi计算如下:
vi1+vi2+...+viM=1
步骤802、根据构件i的转移概率vi和标准化安全性等级估计值βij,计算分配后安全性等级估计值
步骤803、利用分配后安全性等级估计值计算构件i和相邻构件i+1的安全性评估结果的冲突程度系数Ki,i+1;
代表构件i到第T个安全度等级之间的分配后安全性等级估计值;代表构件i+1到第R个安全度等级之间的分配后安全性等级估计值;步骤804、利用构件i的分配后安全性等级估计值和证据合成理论,计算归一化参数
H表示代表构件i到第H个安全度等级之间的分配后安全性等级估计值;
步骤805、将第i+1个构件与前i个构件进行合成处理,得到运行路径p的安全性等级评估结果
初始设置
步骤806、将运行路径p的安全性等级评估结果映射为集合S(p);
Hj表示运行路径p的安全性等级评估结果对应的第j个安全度等级。
5.如权利要求1所述的一种基于证据合成理论的软件体系结构安全性评估方法,其特征在于,所述的步骤九具体为:
步骤901、设定运行路径p的安全性等级评估结果用表示;
步骤902、利用运行路径p和相邻运行路径p+1的安全性等级评估结果,计算冲突程度系数Kp,p+1;
其中代表运行路径p到第T个安全度等级之间的安全性等级评估结果;代表运行路径p+1到第R个安全度等级之间的安全性等级评估结果;
步骤903、利用运行路径p的安全性等级评估结果和证据合成理论,计算归一化参数
H表示代表运行路径p到第H个安全度等级之间的安全性等级评估结果;
步骤904、将第p+1个运行路径与前p个运行路径进行合成处理,得到系统所有的安全性等级评估结果
初始设置
步骤905、将所有运行路径的安全性等级评估结果映射为集合S(System);
Hj表示所有运行路径的安全性等级评估结果对应的第j个安全度等级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611009821.7A CN106650945B (zh) | 2016-11-16 | 2016-11-16 | 一种基于证据合成理论的软件体系结构安全性评估方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611009821.7A CN106650945B (zh) | 2016-11-16 | 2016-11-16 | 一种基于证据合成理论的软件体系结构安全性评估方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106650945A true CN106650945A (zh) | 2017-05-10 |
CN106650945B CN106650945B (zh) | 2019-02-15 |
Family
ID=58807241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611009821.7A Active CN106650945B (zh) | 2016-11-16 | 2016-11-16 | 一种基于证据合成理论的软件体系结构安全性评估方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106650945B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109240920A (zh) * | 2018-08-23 | 2019-01-18 | 北京航空航天大学 | 一种基于ds证据理论的组合加速静态分析方法 |
CN111191346A (zh) * | 2019-12-11 | 2020-05-22 | 上海航天控制技术研究所 | 一种空间飞行器软件在轨运行实例数据还原方法及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763304A (zh) * | 2009-12-31 | 2010-06-30 | 合肥工业大学 | 一种基于证据理论的不确定型软件可信性评估方法 |
CN102222040A (zh) * | 2011-06-09 | 2011-10-19 | 西北工业大学 | 基于多属性熵权合成的软件可信等级评估方法 |
CN103984623A (zh) * | 2014-04-28 | 2014-08-13 | 天津大学 | 一种基于缺陷检测的软件安全风险评估方法 |
CN104750979A (zh) * | 2015-03-13 | 2015-07-01 | 上海交通大学 | 面向体系结构的综合化风险优先数计算方法 |
-
2016
- 2016-11-16 CN CN201611009821.7A patent/CN106650945B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763304A (zh) * | 2009-12-31 | 2010-06-30 | 合肥工业大学 | 一种基于证据理论的不确定型软件可信性评估方法 |
CN102222040A (zh) * | 2011-06-09 | 2011-10-19 | 西北工业大学 | 基于多属性熵权合成的软件可信等级评估方法 |
CN103984623A (zh) * | 2014-04-28 | 2014-08-13 | 天津大学 | 一种基于缺陷检测的软件安全风险评估方法 |
CN104750979A (zh) * | 2015-03-13 | 2015-07-01 | 上海交通大学 | 面向体系结构的综合化风险优先数计算方法 |
Non-Patent Citations (2)
Title |
---|
杨善林等: "《一种基于效用和证据理论的可信软件评估方法》", 《计算机研究与发展》 * |
鞠彦兵等: "《基于证据理论的软件开发风险评估方法》", 《系统工程理论方法应用》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109240920A (zh) * | 2018-08-23 | 2019-01-18 | 北京航空航天大学 | 一种基于ds证据理论的组合加速静态分析方法 |
CN111191346A (zh) * | 2019-12-11 | 2020-05-22 | 上海航天控制技术研究所 | 一种空间飞行器软件在轨运行实例数据还原方法及介质 |
CN111191346B (zh) * | 2019-12-11 | 2023-09-29 | 上海航天控制技术研究所 | 一种空间飞行器软件在轨运行实例数据还原方法及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106650945B (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Groth et al. | Hybrid causal methodology and software platform for probabilistic risk assessment and safety monitoring of socio-technical systems | |
De Ambroggi et al. | Modelling and assessment of dependent performance shaping factors through Analytic Network Process | |
Neil et al. | Applying Bayesian belief networks to system dependability assessment | |
Kim | An assessment of deforestation models for reducing emissions from deforestation and forest degradation (REDD) | |
Liu et al. | Analysis of dependencies among performance shaping factors in human reliability analysis based on a system dynamics approach | |
CN111177900B (zh) | 一种基于匹配适应度的空间人机系统安全性动态建模方法 | |
Engel et al. | Modeling software testing costs and risks using fuzzy logic paradigm | |
CN109408360A (zh) | 一种软件可靠性评估方法和系统 | |
de Souza et al. | Reliability analysis and asset management of engineering systems | |
RU2128854C1 (ru) | Система поддержки экипажа в опасных ситуациях | |
Guo et al. | Nuclear safety-critical Digital Instrumentation and Control system software: Reliability demonstration | |
CN106650945B (zh) | 一种基于证据合成理论的软件体系结构安全性评估方法 | |
Wang et al. | Reliability analysis of complex electromechanical systems: State of the art, challenges, and prospects | |
Lacaille | Validation of health-monitoring algorithms for civil aircraft engines | |
Ruiz et al. | Towards a case-based reasoning approach for safety assurance reuse | |
Gran | Assessment of programmable systems using Bayesian belief nets | |
CN116108622A (zh) | 轨道交通信号系统可靠性分析方法、装置及电子设备 | |
Söderholm | Maintenance and continuous improvement of complex systems: linking stakeholder requirements to the use of built-in test systems | |
Su et al. | Fuzzy FMECA risk evaluation and its applications in Chinese train control systems based on cloud model | |
Tumer et al. | Towards risk based design (RBD) of space exploration missions: a review of RBD practice and research trends at NASA | |
Jharko et al. | On creating safety control systems for high operation risk plants | |
Lamb et al. | Quantum Safety Metrics Framework for Commercial Unmanned Aircraft Operators | |
Appicharla | The Boeing 737 Max 8 Crashes: System-based Approach to Safety—A Different Perspective | |
Dong et al. | Evaluation for Trainee Pilot Workload Management Competency During Approach Phase Based on Flight Training Data | |
Shmelova et al. | Socio-Technical Approaches for Optimal Organizational Performance: Air Navigation Systems as Sociotechnical Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |