一种面向机载软件需求的耦合分析方法及系统

未命名 07-13 阅读:98 评论:0
1.本发明属于软件工程领域,具体涉及一种面向机载软件需求的耦合分析方法及系统,适用于基于do-178c标准的机载软件系统的需求分析与设计。
背景技术
::2.do-178c是一个为民用航空电子设备(特别是软件方面)提供安全、可靠性指导的行业标准。遵循这个标准可以确保航空器的电子系统和软件达到严格的安全要求,从而降低飞行安全风险。do-178c标准要求开发人员对软件部件之间的数据耦合和控制耦合进行分析,并给出了以下相关定义:数据耦合是软件部件对那些不是完全置于该部件控制下的数据的依赖性;控制耦合是一个软件部件影响另一个软件部件运行的方式或程度;部件是执行系统的一个清晰功能的一个自包含的零部件,或者零部件、分组件、单元的组合。3.在机载软件领域,耦合分析对于确保软件的安全性、可靠性、可维护性、可测试性和可重用性具有重要意义。具体而言,在软件可靠性和安全性方面,通过降低模块间的耦合程度,可以减少潜在的错误传播和故障扩散,从而提高软件的可靠性和安全性。高度耦合的软件系统可能导致一个模块的故障影响到其他模块,从而引发整个系统的故障。在可维护性方面,低耦合的软件系统更易于维护,因为模块间的依赖关系简单明了,修改或修复某个模块的影响范围较小。相反,高度耦合的系统中,对一个模块的修改可能导致其他模块出现问题,维护成本更高。在可测试性方面,降低耦合度有助于提高软件的可测试性。低耦合的模块可以独立进行单元测试,而高度耦合的模块可能需要在集成测试阶段才能得到充分的测试。此外,低耦合的系统中,测试覆盖率和测试用例的设计也相对简单。在可重用性方面,低耦合的软件模块更具有可重用性,因为它们的功能独立性较高。这意味着,在新的项目或系统中,可以直接重用这些模块,从而节省开发时间和成本。在易理解性方面,低耦合的软件系统更易于理解,因为模块间的依赖关系较少且清晰。开发人员可以更容易地理解系统的整体结构,从而提高开发效率。4.耦合分析是一种用于分析软件部件之间交互的技术,在机载软件开发过程中,需要考虑到软件的数据耦合和控制耦合特性,并对其进行合理约束,以确保交互和依赖关系的正确性和覆盖范围的完整性。传统的耦合分析技术通常基于代码层级进行分析,而对于机载软件这样的复杂系统,如果在需求定义时发生错误,后续的代码编写和软件测试阶段会遇到更多的问题,并且更难以发现和处理,需要不断回溯甚至修改需求。而且do-178c中所有的验证活动都是基于需求的,基于代码结构的耦合分析难以满足适航局的要求。为了解决这些问题,一些基于需求和测试的耦合分析技术已经被提出。这些技术通过静态分析和工具分析数据耦合和控制耦合,评估是否正确实现了软件中关于数据值事务和函数调用的软件需求。然而,这些技术存在一些局限性,如不能处理需求中的层次依赖关系、没有划分变量的权重等。因此,需要开发一种新的基于需求层面的耦合分析技术,以更好地满足机载软件开发的需求。技术实现要素:5.本发明针对现有技术中的不足,提供一种面向机载软件需求的耦合分析方法及系统,使用vrm(variablerelationshipmodel,形式化变量关系模型)作为形式化需求模型,在系统需求层次进行建模,满足了do-178c对于数据耦合、控制耦合和软件部件的相关要求;同时还提出了基于变量间层次依赖关系的耦合度量方法,将变量间的关系定义为n叉依赖树的结构,并使用一系列算法对变量划分权重,通过构造变量矩阵、需求变量依赖树等方法对软件部件之间的数据耦合和控制耦合进行度量。6.为实现上述目的,本发明采用以下技术方案:7.一种面向机载软件需求的耦合分析方法,其特征在于:包括以下步骤:8.步骤1:使用vrm模型对机载软件的需求进行形式化建模,构建需求模型;其中,所述vrm模型由一组模型部件的集合组成,所述模型部件包括状态变量和表格函数,所述表格函数通过状态变量的组合与取值来定义机载软件的需求;9.步骤2:根据需求模型中状态变量和模型部件之间的对应关系,将各模型部件中的状态变量划分为需求变量和条件变量,构造反馈需求变量和条件变量之间依赖关系的部件变量关系矩阵;其中,所述需求变量是会根据条件变量的改变而改变的状态变量;10.步骤3:将需求模型中状态变量之间的依赖关系定义为n叉树的逻辑形式,每个节点代表一个状态变量,节点之间的边表示状态变量之间的依赖关系,建立需求变量依赖树;11.步骤4:计算需求变量依赖树中每一个节点的权重,得到状态变量之间的依赖度;12.步骤5:将状态变量之间的依赖度以权重的方式填入部件变量关系矩阵中,并重新定义为部件变量耦合矩阵;13.步骤6:根据部件变量耦合矩阵对两个模型部件之间的耦合度进行量化分析,计算模型部件之间的数据耦合度和控制耦合度。14.为优化上述技术方案,采取的具体措施还包括:15.进一步地,步骤1中,所述状态变量由输入变量、输出变量、中间变量和模式类组成;所述表格函数包括条件表、事件表和模式转换表,所述条件表和事件表用于描述机载软件的数据流,所述模式转换表用于描述机载软件的控制流,所述模型部件之间的数据耦合通过条件表和事件表中状态变量的交互来确定,所述模型部件之间的控制耦合通过模式转换表中状态变量的交互来确定。16.进一步地,步骤2中,所述部件变量关系矩阵是二维矩阵,所述二维矩阵中,前两行和前两列呈对称关系,第一行和第一列表示模型部件,第二行和第二列表示隶属于模型部件的状态变量,行变量定义为需求变量,列变量定义为条件变量,二维矩阵中的值表示行向量和列向量之间的依赖关系强度。17.进一步地,步骤3中,所述需求变量依赖树中,父节点与其子节点构成一条需求,父节点为需求变量,子节点为条件变量,需求的阶数根据需求变量在n叉树中的层数划分,当前阶数的需求变量同时也是上一层父节点的条件变量。18.进一步地,步骤4具体包括如下步骤:19.步骤4.1:根据状态变量在机载软件中的重要程度,对每个状态变量给出人工定义系数;20.步骤4.2:根据需求中状态变量的出现次数,计算变量标准差系数,所述变量标准差系数用于衡量状态变量在机载软件中的相对重要性;21.步骤4.3:根据各节点在需求变量依赖树中的阶数,计算层级权重系数,所述层级权重系数用于衡量根节点对其他阶数状态变量的依赖程度;22.步骤4.4:综合人工定义系数、变量标准差系数和层级权重系数,计算得到需求变量依赖树中状态变量之间的依赖度。23.进一步地,步骤4.2中,所述变量标准差系数的计算公式如下:[0024][0025]式中,sc(i)为状态变量i的标准差系数,xi表示状态变量i在所有需求中的出现次数,μ为所有状态变量出现次数的平均值,n是所有需求中状态变量的总个数;[0026]步骤4.3中,所述层级权重系数的计算公式如下:[0027][0028][0029][0030]式中,hc(i)表示状态变量i的层级权重系数,dep(i)表示状态变量i的距离度,cmp(i)表示状态变量i的复杂度,f(i)为需求变量依赖树中状态变量i的阶数,depth为n叉树的整体深度,l(j)为计算需求变量依赖树中第j阶节点个数的函数;[0031]步骤4.4中,所述状态变量之间的依赖度的计算公式如下:[0032]weight(i)=mc(i)×sc(i)×hc(i)[0033]式中,weight(i)为状态变量i对于根节点的权重大小,mc(i)为状态变量i的人工定义系数。[0034]进一步地,步骤6中,所述数据耦合度的计算公式如下:[0035][0036]式中,dc(a,b)表示模型部件a和模型部件b的数据耦合度,iv(a)、ov(a)和tv(a)分别表示模型部件a的输入变量、输出变量和中间变量,iv(b)、ov(b)和tv(b)分别表示模型部件b的输入变量、输出变量和中间变量,w(iv)、w(ov)和w(tv)分别表示输入变量、输出变量和中间变量的权重值;[0037]所述控制耦合度的计算公式如下:[0038][0039]式中,cc(a,b)表示模型部件a和模型部件b的控制耦合度,mc(a)和mc(b)分别表示模型部件a和模型部件b的模式类,w(mc)表示模式类mc的权重值。[0040]本发明还提出了一种面向机载软件需求的耦合分析系统,其特征在于:包括:[0041]需求建模与分析模块,用于使用vrm模型对机载软件的需求进行形式化建模,构建需求模型;其中,所述vrm模型由一组模型部件的集合组成,所述模型部件包括状态变量和表格函数,所述表格函数通过状态变量的组合与取值来定义机载软件的需求;[0042]部件变量关系矩阵构造模块,用于根据需求模型中状态变量和模型部件之间的对应关系,将各模型部件中的状态变量划分为需求变量和条件变量,构造反馈需求变量和条件变量之间依赖关系的部件变量关系矩阵;其中,所述需求变量是会根据条件变量的改变而改变的状态变量;[0043]需求变量依赖树建立模块,用于将需求模型中状态变量之间的依赖关系定义为n叉树的逻辑形式,每个节点代表一个状态变量,节点之间的边表示状态变量之间的依赖关系,建立需求变量依赖树;[0044]变量权重划分模块,用于计算需求变量依赖树中每一个节点的权重,得到状态变量之间的依赖度;[0045]部件变量耦合矩阵构造模块,用于将状态变量之间的依赖度以权重的方式填入部件变量关系矩阵中,并重新定义为部件变量耦合矩阵;[0046]耦合度计算模块,用于根据部件变量耦合矩阵对两个模型部件之间的耦合度进行量化分析,计算模型部件之间的数据耦合度和控制耦合度。[0047]本发明还提出了一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序使计算机执行如上所述的面向机载软件需求的耦合分析方法。[0048]本发明还提出了一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时,实现如上所述的面向机载软件需求的耦合分析方法。[0049]本发明的有益效果是:[0050]1、本发明专注于软件需求层面的耦合分析,弥补了传统的基于代码层级分析的盲点和不足,使得对整个软件系统的理解更加全面;[0051]2、本发明通过构建需求变量依赖树,以n叉树结构形式表达变量间的依赖关系,从而更清晰地揭示了各变量之间的层次依赖关系,有助于提高软件设计的可维护性和可理解性;[0052]3、本发明对变量进行权重划分,以区分系统中不同重要程度的变量的依赖度大小,从而更准确地反映了系统功能的重要性和优先级。附图说明[0053]图1为vrm模型的模型部件交互图。[0054]图2为部件变量关系矩阵的示意图。[0055]图3为需求变量依赖树的示意图。具体实施方式[0056]下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。[0057]在一实施例中,本发明提出了一种面向机载软件需求的耦合分析方法,具体的耦合分析步骤如下。[0058]步骤1:需求建模与分析。[0059]根据do-178c标准和相关规范,使用vrm模型对机载软件的需求进行形式化建模。vrm模型由一组模型部件的集合组成,如图1所示,vrm模型部件包含状态变量和表格函数。[0060]状态变量由输入变量iv(inputvariables)、输出变量ov(outputvariables)、中间变量tv(intermediatevariables)和模式类mc(modeclass)组成,模式类可以理解为一个状态机,其状态称为系统模式,其转换由事件触发;中间变量是输入变量、模式或其他中间变量的任何函数关系映射之后形成的变量,它的存在是为了更好地描述系统的需求层次。当系统实体更改为特定的值,或者从特定范围内变更到范围之外时,就会发生事件。[0061]表格函数由条件表(conditiontable)、事件表(eventtable)和模式转换表(modetransitiontable)组成。表格函数通常是需求的表现形式,函数通过状态变量的不同组合与取值来满足需求的定义。vrm模型通过条件表和事件表描述软件系统的数据流,通过模式转换表描述系统的控制流。通过对原始需求进行解析,可以得到耦合分析所需的输入变量、输出变量、中间变量和模式类,并将这些状态变量分布到vrm模型部件中。模型部件之间的数据耦合通过条件表和事件表中状态变量的交互来确定,控制耦合通过模式转换表中状态变量的交互来确定。[0062]vrm模型的建模过程包括两个方面,一是建立领域概念库,里面包含了系统中的状态变量;二是对原始需求规范化,建立表格函数。状态变量由输入变量、输出变量、中间变量和模式类组成。表格函数由条件表、事件表和模式转换表组成。条件表包含了所有可能出现的条件以及其对应的输出。事件表包含了所有可能出现的事件以及其对应的输出。模式转换表则描述了系统从一个状态转移到另一个状态的条件。通过条件表和事件表中状态变量的交互数据信息,可以确定模型部件之间的数据耦合;通过模式转换表中状态变量的交互控制信息,可以确定模型部件之间的控制耦合。[0063]步骤2:构造部件变量关系矩阵。[0064]根据需求模型中得到的状态变量和模型部件之间的对应关系,可以构造部件变量关系矩阵。首先根据需求模型中的输入变量、输出变量、中间变量和模式类,确定各个模型部件和对应的状态变量。然后根据需求模型中的条件表、事件表和模式转换表,确定变量之间的依赖关系。最后构造矩阵:按照一定的规则构造部件变量关系矩阵。通常采用表格的形式进行展示,矩阵的第一行和第一列为模型部件名,第二行和第二列是状态变量名,模型部件与状态变量是一对一或一对多的关系。矩阵中的值表示行变量和列变量之间的依赖关系强度,依赖关系强度越大,表示两个变量之间的依赖关系越紧密。[0065]如图2所示,部件变量关系矩阵是一个二维矩阵,前两行与前两列呈对称关系,矩阵的第一行(列)表示模型部件,而第二行(列)则表示隶属于该模型部件的状态变量,模型部件与状态变量是一对一或一对多的关系。在矩阵中,将行变量定义为需求变量,列变量定义为条件变量,需求变量的值会根据条件变量的改变而不同。如在一条需求中:当满足以下条件时,状态变量a的值应设置为x:状态变量b=yand状态变量c=z。这条需求中的状态变量a即为需求变量,状态变量b和状态变量c为条件变量。矩阵中行与列交叉的数值代表某一条需求中状态变量的关系,具体来说,以模型部件i(行)的状态变量作为需求变量,模型部件j(列)的状态变量作为条件变量,行列的交叉值n表示在这条需求中条件变量出现的次数,次数越多则表明需求变量对条件变量的依赖度越大。[0066]步骤3:建立需求变量依赖树。[0067]当一个软件部件修改了某个数据信息或控制信息后,与其耦合的部件也会受到影响,因为它们都使用同一份数据。这种依赖性可能会由于部件中的一个小变化,引起整个系统的连锁反应。变量间的依赖关系可以是直接的,也可以是间接的。直接依赖意味着部件之间直接共享数据,间接依赖则是通过一个或多个中间部件来共享数据。如图3所示,需求变量依赖树是一种描述变量之间层次依赖关系的树形结构,它将系统需求中的各个变量按照其依赖关系组织起来,方便对变量之间的直接依赖与间接依赖进行分析和度量。在需求变量依赖树中,每个节点代表一个状态变量,节点之间的边表示状态变量之间的依赖关系。对于树中的每一个节点来说,父节点与其子节点构成一条需求,其中父节点即为步骤2中定义的需求变量,它的子节点为条件变量。需求的阶数根据需求变量在n叉树中的层数划分,依赖树中的需求数目与前三阶的变量节点数一致。树中的节点既是自己所在阶数的需求变量,又是上一层,即父节点的条件变量。通过这种需求变量与条件变量的依赖关系,构成了需求变量依赖树。[0068]将需求中状态变量之间的关系定义为n叉树的逻辑形式,父节点与其子节点构成一条需求。父节点依赖于它的子节点,其含义是:当某一父节点的所有子节点组成的条件成立时,该父节点所在的需求得到满足。如图3所示,需求变量a与条件变量b、c构成第一条需求,b-d为第二条需求,c-e-f为第三条需求,以此类推。然后根据n叉树的层数划分需求的阶数,第一层为一阶需求,也称为根需求,它的具象化表示为:当条件变量b与c同时满足时,a变量所处的需求得以实现。类似地,二阶需求共有两条:一是基于b节点的需求(简称需求b),二是基于c节点的需求(简称需求c)。需求b的实现条件为d变量满足相应条件,而需求c则要求e变量与f变量同时满足相应条件。[0069]建立树模型首先需要分析需求以识别状态变量间的关系,根据需求确定哪些状态变量作为需求变量,哪些状态变量作为条件变量。然后初始化树结构,创建一个空的n叉树结构,将根节点设置为一阶需求变量(根需求),该需求变量是整个树结构的起点。接着添加子节点,对于每个需求变量,将与之相关的条件变量添加到依赖树中。这些子节点可以是多个,表示n叉树的n个子节点。最后递归构建子树,如果子节点也有自己的条件变量,递归地为这些子节点创建子树,继续添加子节点,直到满足所有需求为止。[0070]步骤4:划分变量权重。[0071]变量权重的划分共分三步,首先人工定义出状态变量的初始权重系数;再根据状态变量在每条需求中出现的次数,计算出变量标准差权重系数;最后根据需求变量依赖树将状态变量划分为不同层级,并为其设置不同的权重系数。结合以上三个权重系数,综合计算出每个状态变量的权重大小。[0072]步骤4.1:人工定义系数mc(manualcoefficient),在vrm模型中,人工定义系数可以通过以下方式进行定义:首先根据需求,对状态变量进行划分,将其分为输入变量、输出变量、中间变量和模式类。然后,针对每个状态变量,根据其在系统中的重要程度,给出一个人工定义系数。这个系数可以根据经验和专业知识进行设置,如对于输入变量和输出变量,其系数可以根据其对系统性能的影响进行设置;对于中间变量,其系数可以根据其在系统中的重要程度进行设置;对于模式类,其系数可以根据其对系统控制的影响进行设置。[0073]步骤4.2:变量标准差系数sc(standardcoefficient),通过观察需求中状态变量的出现次数,若某个状态变量在需求中的出现次数相对较多,那么它对系统的重要性也会更大,尤其是如果很多模型部件都使用了这个状态变量,那么它在耦合分析中就显得尤为重要。为此,本实施例提出了一种以状态变量在需求中出现的次数为基础的权重定义方法,即变量标准差系数,下面给出了它的计算公式。[0074][0075]式中,sc(i)为变量i的标准差系数,xi表示变量i在所有需求中的出现次数,μ为所有变量出现次数的平均值,n是所有需求中变量的总个数。通过这种计算方法,首先得到需求中状态变量数目的标准差,再根据每个状态变量的出现次数的不同,对出现数目多的状态变量给定一个较高的标准差权重系数。[0076]步骤4.3:层级权重系数hc(hierarchicalcoefficient),在需求变量依赖树中对不同层级的变量节点进行加权处理。权重系数与层级深度呈负相关,而与本层中变量节点数量呈正相关。根据权重系数,可以计算出根节点与其他阶数变量之间的耦合度,具体算法包括以下两个部分。[0077](1)距离度:在需求变量依赖树中,变量节点距离根节点越近,对根需求的影响就越大,因为它们与根节点之间的依赖关系更为紧密,这种紧密的依赖关系也意味着这些节点之间的耦合度更高。反之,距离根节点越远的变量节点影响越小,因为它们与根节点之间的依赖关系相对较弱,这也意味着它们之间的耦合度相对较低。因此,在考虑需求的满足时,必须充分考虑状态变量之间的依赖关系和距离根节点的距离。具体公式如下:[0078][0079]式中,dep(i)表示节点i与根节点变量的距离度,depth为n叉树的整体深度,f(i)为依赖树中节点i的阶数。[0080](2)复杂度:需求的满足涉及到多个条件变量的相互作用,它们在依赖树中被视为节点,而树的层级则代表了变量的层次关系。节点在依赖树中依赖于其子节点,同时影响其父节点,导致某层级的复杂度随着变量节点数量的增加而增大,其对上一层级的影响也相应增大。在实际需求中,节点增加会导致条件变量数量增加,从而增加满足需求的难度。针对高复杂度层级,通过增加相应的权重系数,可以更好地满足需求。具体公式如下:[0081][0082]式中,cmp(i)表示节点i所在阶数的复杂度,f(i)为依赖树中节点i的阶数,l(j)为计算依赖树中第j阶节点个数的函数。[0083]综合以上两点,需求变量依赖树中变量节点i的权重系数可以通过以下公式设计,它涉及计算节点的距离度和复杂度,并将它们与树的阶数相结合。[0084][0085]式中,hc(i)表示节点i的层级权重系数,dep(i)表示节点i的距离度,cmp(i)表示节点i的复杂度,f(i)为依赖树中节点i的阶数。[0086]步骤4.4:综合以上三个权重系数,可以得到需求变量依赖树中变量之间依赖度的大小,即为耦合度。具体计算公式如下:[0087]weight(i)=mc(i)×sc(i)×hc(i)[0088]式中,weight(i)为i节点对于根节点的权重大小,mc(i)为节点i的人工定义系数,sc(i)为节点i的变量标准差系数,hc(i)为节点i的层级权重系数。[0089]步骤5:构造部件变量耦合矩阵。[0090]为了更有效地量化数据耦合和控制耦合,在部件变量关系矩阵的基础上对变量之间的依赖关系进行了权重化处理。具体而言,将每个变量之间的依赖度转换为相应的权重值,并将这些权重值填充到矩阵中,从而得到一个新的矩阵,即部件变量耦合矩阵。矩阵中的元素表示某个部件中的变量与其他部件变量之间的耦合程度,这个耦合程度是通过考虑变量之间的直接依赖关系和间接依赖关系计算得到的。部件变量耦合矩阵不仅包含了部件与变量之间的对应关系,还反映了变量之间的依赖程度。[0091]在步骤2中已经构造出部件变量关系矩阵,因此可以通过查询该矩阵中的信息,确定每个模型部件与变量的关系。在步骤4中已经计算出了每个变量的权重,因此可以通过查询需求变量依赖树获取每个变量的权重,将变量之间的耦合度以权重值的大小填入部件变量耦合矩阵中。具体来说,对于每个模型部件中的变量,需要找到其依赖的相关变量,然后将这些变量的权重填入到该模型部件所对应的行和列中。在填充的过程中,如果两个变量之间的依赖度为0,则该位置的权重为0。例如,模型部件a中的状态变量x依赖于模型部件b中的状态变量y和状态变量z,且状态变量y和状态变量z对于状态变量x的相对权重大小分别为w1和w2。那么可以在矩阵中状态变量x所在的这一行,与状态变量y和状态变量z对应的列,填入相应的权重值w1和w2。[0092]步骤6:计算数据耦合度和控制耦合度。[0093]根据部件变量耦合矩阵可以对两个模型部件之间的耦合度进行量化分析,这里采用一种累加权重值的方法,将属于这两个模型部件耦合的相关变量权重相加。具体来说将耦合度分为两类:数据耦合和控制耦合。其中数据耦合度是指两个模型部件之间通过输入变量、输出变量和中间变量实现信息交换的程度,控制耦合度则是指两个模型部件之间通过模式类实现控制逻辑和行为模式交互的程度。计算数据耦合度需要将部件变量耦合矩阵中相应的输入变量、输出变量和中间变量的权重值累加,计算控制耦合度需要将模式类的权重值累加。[0094]数据耦合度反映了两个模型部件之间数据交互的程度,它的计算与输入变量、输出变量和中间变量相关。控制耦合度则反映了控制流程之间的依赖程度,它的计算与模式类相关。根据部件变量耦合矩阵,可以得到模型部件之间变量的依赖度,通过将相应变量的权重值累加,就可以计算出模型部件之间的耦合度。[0095]计算数据耦合度:对于任意两个模型部件a和b,其数据耦合度可以通过以下公式计算:[0096]式中,iv(a)、ov(a)和tv(a)分别表示模型部件a的输入变量、输出变量和中间变量,iv(b)、ov(b)和tv(b)分别表示模型部件b的输入变量、输出变量和中间变量,w(iv)、w(ov)和w(tv)分别表示输入变量iv、输出变量ov和中间变量tv的权重值。[0097]计算控制耦合度:对于任意两个模型部件a和b,其控制耦合度可以通过以下公式计算:[0098][0099]式中,mc(a)和mc(b)分别表示模型部件a和模型部件b的模式类,w(mc)表示模式类mc的权重值。[0100]在另一实施例中,本发明提出了与第一实施例提出的面向机载软件需求的耦合分析方法相对应的系统,即一种面向机载软件需求的耦合分析系统,具体包括以下模块:[0101]1、需求建模与分析模块:用于使用vrm模型对机载软件的需求进行形式化建模,构建需求模型;其中,vrm模型由一组模型部件的集合组成,模型部件包括状态变量和表格函数,表格函数通过状态变量的组合与取值来定义机载软件的需求。[0102]该模块中,状态变量由输入变量、输出变量、中间变量和模式类组成;表格函数包括条件表、事件表和模式转换表,条件表和事件表用于描述机载软件的数据流,模式转换表用于描述机载软件的控制流,模型部件之间的数据耦合通过条件表和事件表中状态变量的交互来确定,模型部件之间的控制耦合通过模式转换表中状态变量的交互来确定。[0103]2、部件变量关系矩阵构造模块:用于根据需求模型中状态变量和模型部件之间的对应关系,将各模型部件中的状态变量划分为需求变量和条件变量,构造反馈需求变量和条件变量之间依赖关系的部件变量关系矩阵;其中,需求变量是会根据条件变量的改变而改变的状态变量。[0104]该模块中,状态变量由输入变量、输出变量、中间变量和模式类组成;表格函数包括条件表、事件表和模式转换表,条件表和事件表用于描述机载软件的数据流,模式转换表用于描述机载软件的控制流,模型部件之间的数据耦合通过条件表和事件表中状态变量的交互来确定,模型部件之间的控制耦合通过模式转换表中状态变量的交互来确定。[0105]3、需求变量依赖树建立模块:用于将需求模型中状态变量之间的依赖关系定义为n叉树的逻辑形式,每个节点代表一个状态变量,节点之间的边表示状态变量之间的依赖关系,建立需求变量依赖树。[0106]该模块中,父节点与其子节点构成一条需求,父节点为需求变量,子节点为条件变量,需求的阶数根据需求变量在n叉树中的层数划分,当前阶数的需求变量同时也是上一层父节点的条件变量。[0107]4、变量权重划分模块:用于计算需求变量依赖树中每一个节点的权重,得到状态变量之间的依赖度。该模块具体包括如下子模块。[0108]人工定义系数模块,用于根据状态变量在机载软件中的重要程度,对每个状态变量给出人工定义系数;[0109]变量标准差系数模块,用于根据需求中状态变量的出现次数,计算变量标准差系数,所述变量标准差系数用于衡量状态变量在机载软件中的相对重要性;[0110]层级权重系数模块,用于根据各节点在需求变量依赖树中的阶数,计算层级权重系数,所述层级权重系数用于衡量根节点对其他阶数状态变量的依赖程度;[0111]依赖度计算模块,用于综合人工定义系数、变量标准差系数和层级权重系数,计算得到需求变量依赖树中状态变量之间的依赖度。[0112]5、部件变量耦合矩阵构造模块:用于将状态变量之间的依赖度以权重的方式填入部件变量关系矩阵中,并重新定义为部件变量耦合矩阵;[0113]6、耦合度计算模块:用于根据部件变量耦合矩阵对两个模型部件之间的耦合度进行量化分析,计算模型部件之间的数据耦合度和控制耦合度。[0114]各模块的具体工作方式与第一实施例提出的面向机载软件需求的耦合分析方法中的各步骤相同,故此处不再重复。[0115]在另一实施例中,本发明提出了一种计算机可读存储介质,存储有计算机程序,计算机程序使计算机执行如第一实施例所述的面向机载软件需求的耦合分析方法。[0116]在另一实施例中,本发明提出了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现如第一实施例所述的面向机载软件需求的耦合分析方法。[0117]在本技术所公开的实施例中,计算机存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序。计算机存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。计算机存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。[0118]本领域普通技术人员可以意识到,结合本技术所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。[0119]以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。当前第1页12当前第1页12
技术特征:
1.一种面向机载软件需求的耦合分析方法,其特征在于:包括以下步骤:步骤1:使用vrm模型对机载软件的需求进行形式化建模,构建需求模型;其中,所述vrm模型由一组模型部件的集合组成,所述模型部件包括状态变量和表格函数,所述表格函数通过状态变量的组合与取值来定义机载软件的需求;步骤2:根据需求模型中状态变量和模型部件之间的对应关系,将各模型部件中的状态变量划分为需求变量和条件变量,构造反馈需求变量和条件变量之间依赖关系的部件变量关系矩阵;其中,所述需求变量是会根据条件变量的改变而改变的状态变量;步骤3:将需求模型中状态变量之间的依赖关系定义为n叉树的逻辑形式,每个节点代表一个状态变量,节点之间的边表示状态变量之间的依赖关系,建立需求变量依赖树;步骤4:计算需求变量依赖树中每一个节点的权重,得到状态变量之间的依赖度;步骤5:将状态变量之间的依赖度以权重的方式填入部件变量关系矩阵中,并重新定义为部件变量耦合矩阵;步骤6:根据部件变量耦合矩阵对两个模型部件之间的耦合度进行量化分析,计算模型部件之间的数据耦合度和控制耦合度。2.如权利要求1所述的一种面向机载软件需求的耦合分析方法,其特征在于:步骤1中,所述状态变量由输入变量、输出变量、中间变量和模式类组成;所述表格函数包括条件表、事件表和模式转换表,所述条件表和事件表用于描述机载软件的数据流,所述模式转换表用于描述机载软件的控制流,所述模型部件之间的数据耦合通过条件表和事件表中状态变量的交互来确定,所述模型部件之间的控制耦合通过模式转换表中状态变量的交互来确定。3.如权利要求1所述的一种面向机载软件需求的耦合分析方法,其特征在于:步骤2中,所述部件变量关系矩阵是二维矩阵,所述二维矩阵中,前两行和前两列呈对称关系,第一行和第一列表示模型部件,第二行和第二列表示隶属于模型部件的状态变量,行变量定义为需求变量,列变量定义为条件变量,二维矩阵中的值表示行向量和列向量之间的依赖关系强度。4.如权利要求1所述的一种面向机载软件需求的耦合分析方法,其特征在于:步骤3中,所述需求变量依赖树中,父节点与其子节点构成一条需求,父节点为需求变量,子节点为条件变量,需求的阶数根据需求变量在n叉树中的层数划分,当前阶数的需求变量同时也是上一层父节点的条件变量。5.如权利要求1所述的一种面向机载软件需求的耦合分析方法,其特征在于:步骤4具体包括如下步骤:步骤4.1:根据状态变量在机载软件中的重要程度,对每个状态变量给出人工定义系数;步骤4.2:根据需求中状态变量的出现次数,计算变量标准差系数,所述变量标准差系数用于衡量状态变量在机载软件中的相对重要性;步骤4.3:根据各节点在需求变量依赖树中的阶数,计算层级权重系数,所述层级权重系数用于衡量根节点对其他阶数状态变量的依赖程度;步骤4.4:综合人工定义系数、变量标准差系数和层级权重系数,计算得到需求变量依赖树中状态变量之间的依赖度。
6.如权利要求5所述的一种面向机载软件需求的耦合分析方法,其特征在于:步骤4.2中,所述变量标准差系数的计算公式如下:式中,sc(i)为状态变量i的标准差系数,x
i
表示状态变量i在所有需求中的出现次数,μ为所有状态变量出现次数的平均值,n是所有需求中状态变量的总个数;步骤4.3中,所述层级权重系数的计算公式如下:步骤4.3中,所述层级权重系数的计算公式如下:步骤4.3中,所述层级权重系数的计算公式如下:式中,hc(i)表示状态变量i的层级权重系数,dep(i)表示状态变量i的距离度,cmp(i)表示状态变量i的复杂度,f(i)为需求变量依赖树中状态变量i的阶数,depth为n叉树的整体深度,l(j)为计算需求变量依赖树中第j阶节点个数的函数;步骤4.4中,所述状态变量之间的依赖度的计算公式如下:weight(i)=mc(i)
×
sc(i)
×
hc(i)式中,weight(i)为状态变量i对于根节点的权重大小,mc(i)为状态变量i的人工定义系数。7.如权利要求2所述的一种面向机载软件需求的耦合分析方法,其特征在于:步骤6中,所述数据耦合度的计算公式如下:式中,dc(a,b)表示模型部件a和模型部件b的数据耦合度,iv(a)、ov(a)和tv(a)分别表示模型部件a的输入变量、输出变量和中间变量,iv(b)、ov(b)和tv(b)分别表示模型部件b的输入变量、输出变量和中间变量,w(iv)、w(ov)和w(tv)分别表示输入变量、输出变量和中间变量的权重值;所述控制耦合度的计算公式如下:式中,cc(a,b)表示模型部件a和模型部件b的控制耦合度,mc(a)和mc(b)分别表示模型部件a和模型部件b的模式类,w(mc)表示模式类mc的权重值。8.一种面向机载软件需求的耦合分析系统,其特征在于:包括:需求建模与分析模块,用于使用vrm模型对机载软件的需求进行形式化建模,构建需求模型;其中,所述vrm模型由一组模型部件的集合组成,所述模型部件包括状态变量和表格函数,所述表格函数通过状态变量的组合与取值来定义机载软件的需求;
部件变量关系矩阵构造模块,用于根据需求模型中状态变量和模型部件之间的对应关系,将各模型部件中的状态变量划分为需求变量和条件变量,构造反馈需求变量和条件变量之间依赖关系的部件变量关系矩阵;其中,所述需求变量是会根据条件变量的改变而改变的状态变量;需求变量依赖树建立模块,用于将需求模型中状态变量之间的依赖关系定义为n叉树的逻辑形式,每个节点代表一个状态变量,节点之间的边表示状态变量之间的依赖关系,建立需求变量依赖树;变量权重划分模块,用于计算需求变量依赖树中每一个节点的权重,得到状态变量之间的依赖度;部件变量耦合矩阵构造模块,用于将状态变量之间的依赖度以权重的方式填入部件变量关系矩阵中,并重新定义为部件变量耦合矩阵;耦合度计算模块,用于根据部件变量耦合矩阵对两个模型部件之间的耦合度进行量化分析,计算模型部件之间的数据耦合度和控制耦合度。9.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序使计算机执行如权利要求1-7任一项所述的面向机载软件需求的耦合分析方法。10.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时,实现如权利要求1-7任一项所述的面向机载软件需求的耦合分析方法。

技术总结
本发明提出了一种面向机载软件需求的耦合分析方法及系统,使用形式化变量关系模型VRM作为形式化需求模型,在系统需求层次进行建模,满足了DO-178C对于数据耦合、控制耦合和软件部件的相关要求。同时,本发明还采用了基于变量间层次依赖关系的耦合度量方法,将变量间的关系定义为n叉依赖树的结构,并对变量进行了权重划分,通过构造变量矩阵、需求变量依赖树等方法对软件部件之间的数据耦合和控制耦合进行度量。本发明专注于软件需求层面的耦合分析,弥补了传统基于代码层级分析的盲点和不足,使得对整个软件系统的理解更加全面,有助于提高软件设计的可维护性和可理解性,能够更准确地反映系统功能的重要性和优先级。更准确地反映系统功能的重要性和优先级。更准确地反映系统功能的重要性和优先级。


技术研发人员:窦霖 王立松
受保护的技术使用者:南京航空航天大学
技术研发日:2023.04.21
技术公布日:2023/7/12
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐