CN115712564A - 一种scade软件模型复杂度计算方法 - Google Patents

一种scade软件模型复杂度计算方法 Download PDF

Info

Publication number
CN115712564A
CN115712564A CN202211394696.1A CN202211394696A CN115712564A CN 115712564 A CN115712564 A CN 115712564A CN 202211394696 A CN202211394696 A CN 202211394696A CN 115712564 A CN115712564 A CN 115712564A
Authority
CN
China
Prior art keywords
scade
state machine
complexity
software model
module
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.)
Pending
Application number
CN202211394696.1A
Other languages
English (en)
Inventor
王坤
刘娟娟
戈珅钰
方蕴宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Electromechanical Engineering Research Institute
Original Assignee
Beijing Electromechanical Engineering Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Electromechanical Engineering Research Institute filed Critical Beijing Electromechanical Engineering Research Institute
Priority to CN202211394696.1A priority Critical patent/CN115712564A/zh
Publication of CN115712564A publication Critical patent/CN115712564A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种SCADE软件模型复杂度计算方法,确定SCADE软件模型中的模块数量和每个模块中与状态机处于同一层的方程数量;判断是否存在状态机,若存在则记为1,若不存在则记为0;确定状态机中的状态数、状态机中状态转移的路径数和状态机中方程数;确定状态机之间嵌套关系的层级数L,若不存在嵌套,则L=1;确定SCADE软件模型复杂度计算公式。本发明能够解决软件模型驱动开发过程中,事后衡量建模工程师工作量、事后评价模型质量,以及事前估计模型验证工作量时对SCADE软件模型复杂度计算困难的问题。

Description

一种SCADE软件模型复杂度计算方法
技术领域
本发明属于面向基于SCADE工具的软件模型驱动开发技术领域,具体涉及一种SCADE软件模型复杂度计算方法。
背景技术
目前模型驱动开发(MBD)领域运用的主流工具有SCADE、MATLAB等,而SCADE工具套件中Suite工具主要是面向高可靠高安全领域的嵌入式软件建模。本发明就是在运用SCADESuite工具对软件进行建模的基础上开展的相关拓展应用。
由于MBD技术的应用,在软件研制过程中,引入了“模型”这一全新的配置项元素。与软件文档、软件代码类似,软件模型是软件研制过程中重要的阶段性工作产品。软件模型是软件设计人员根据软件需求,对软件开展的详细设计过程的产物,设计人员能够基于该模型开展需求的验证、性能分析、代码自动生成等后续工作。
当建模工作结束,需要开展对模型的质量评估、建模工作量评估以及对模型验证的工作量进行评估时,模型的复杂度就成为了上述评估和验证工作的一项重要指标。目前该领域暂时还没有一种针对SCADE Suite模型复杂度度量的方法。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种SCADE软件模型复杂度计算方法。本发明方案能够解决上述现有技术中存在的问题。
本发明的技术解决方案:
根据第一方面,提供一种SCADE软件模型复杂度计算方法,包括以下步骤:
确定SCADE软件模型中的模块数量和每个模块中与状态机处于同一层的方程数量;
判断是否存在状态机,若存在则记为1,若不存在则记为0;
确定状态机中的状态数、状态机中状态转移的路径数和状态机中方程数;
确定状态机之间嵌套关系的层级数L,若不存在嵌套,则L=1;
根据上述所有,确定SCADE软件模型复杂度计算公式为:
Figure BDA0003933003580000021
其中,S表示一个状态机中的状态数量,T表示一个状态机中状态转移的路径数,
Figure BDA0003933003580000022
表示一个状态机中所有状态中包含方程数的和,m表示一个模块中状态机的个数,n表示模型中模块的个数,B表示是否存在状态机,L表示一个模块中所有状态机之间嵌套关系的层级数,F表示一个模块中与顶层状态机在同一层的方程数量,D表示一个模块被调用的次数、FIO表示一个模块的输入输出总的数量。
根据第二方面,提供一种介质,所述的介质存储所述的一种SCADE软件模型复杂度计算方法。
根据第三方面,提供一种SCADE软件模型,其特征在于,所述的SCADE软件模型使用所述的一种SCADE软件模型复杂度计算方法进行复杂度计算。
本发明与现有技术相比的有益效果:
本发明通过对一种SCADE软件模型复杂度影响因素的分析和选取,获得一种SCADE软件模型复杂度的计算方法,能够解决软件模型驱动开发过程中,事后衡量建模工程师工作量、事后评价模型质量,以及事前估计模型验证工作量时对SCADE软件模型复杂度计算困难的问题。
附图说明
所包括的附图用来提供对本发明实施例的进一步的理解,其构成了说明书的一部分,用于例示本发明的实施例,并与文字描述一起来阐释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本发明实施例提供的一种SCADE软件模型复杂度计算方法步骤示意图;
图2示出了根据本发明实施例提供的状态机示意图;
图3示出了根据本发明实施例提供的模型中的模块示意图;
图4示出了根据本发明具体实施例提供的模块组成示意图;
图5示出了根据本发明具体实施例提供的Alignment模块;
图6示出了根据本发明具体实施例提供的imu模块;
图7示出了根据本发明具体实施例提供的INCcheck模块;
图8示出了根据本发明具体实施例提供的INSinit模块;
图9示出了根据本发明具体实施例提供的INSmain模块;
图10示出了根据本发明具体实施例提供的Limiter模块
图11示出了根据本发明具体实施例提供的SendNavData模块。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
如图1所示,根据本发明实施例提供一种SCADE软件模型复杂度计算方法,包括以下步骤:
确定SCADE软件模型中的模块数量和每个模块中与状态机处于同一层的方程数量;
判断是否存在状态机,若存在则记为1,若不存在则记为0;
确定状态机中的状态数、状态机中状态转移的路径数和状态机中方程数;
确定状态机之间嵌套关系的层级数L,若不存在嵌套,则L=1;
根据上述所有,确定SCADE软件模型复杂度计算公式为:
Figure BDA0003933003580000051
其中,S表示一个状态机中的状态数量,T表示一个状态机中状态转移的路径数,
Figure BDA0003933003580000052
表示一个状态机中所有状态中包含方程数的和,m表示一个模块中状态机的个数,n表示模型中模块的个数,B表示是否存在状态机,L表示一个模块中所有状态机之间嵌套关系的层级数,F表示一个模块中与顶层状态机在同一层的方程数量,D表示一个模块被调用的次数、FIO表示一个模块的输入输出总的数量。
为了对本发明提供的一种SCADE软件模型复杂度计算方法有更进一步了解,下面结合具体实例及附图进行详细说明。
本发明在对软件模型的复杂度进行度量时,选取了方程数、状态机的状态数、状态机的转态转移路径数、状态机的层级数、模块的被调用次数、操作符的输入输出数作为软件模型复杂度度量的指标,相关说明如表1所示:
表格1模型复杂度度量指标
Figure BDA0003933003580000061
Figure BDA0003933003580000071
步骤一,确定SCADE软件模型中的模块数量和每个模块中与状态机处于同一层的方程数量;
步骤二,判断是否存在状态机,若存在则记为1,若不存在则记为0;
步骤三,确定状态机中的状态数、状态机中状态转移的路径数和状态机中方程数;
步骤四,确定状态机之间嵌套关系的层级数L,若不存在嵌套,则L=1;
步骤五,根据上述所有,确定SCADE软件模型复杂度计算公式为:
Figure BDA0003933003580000081
其中,
(1)(S-1):S表示一个状态机中的状态数量。由于在SCADE Suite工具中创建一个状态机时,工具会自动生成一个初始状态,该初始状态也计入状态数量,但是由于该状态是由工具自动生成,因此,不会对建模过程和模型本身的复杂程度直接造成影响。因此,在度量模型的复杂程度时,将每一个状态机中的初始状态剔除。
(2)(S-1)T:T表示一个状态机中状态转移的路径数。软件任务会在不同状态之间来回切换和转移,每多一条转移路径,对于该状态机的测试验证中需要的测试用例数量就会成比例的增长。因此用(S-1)T可以表示状态机的状态转移和软件任务间切换复的杂程度。
(3)
Figure BDA0003933003580000082
表示状态机中所有状态中包含方程数的和。状态机的复杂程度不仅取决于状态转移路径的多少,还一定程度上取决于每个状态中包括了多少个方程。
(4)
Figure BDA0003933003580000083
由于状态机本身是表征软件任务切换的复杂程度的,而状态中的方程数量的增加,对于状态机本身的复杂程度的影响并没有线性的效果。因此,状态转移复杂度与状态机中方程数量的定性关系为和。
(5)
Figure BDA0003933003580000091
该式表示一个模块中包含的所有状态机的复杂度之和。要注意的是,该式并不区分这些状态机之间是否存在嵌套关系。
(6)
Figure BDA0003933003580000092
一个模块中所有状态机之间,如果存在嵌套关系,则L表示这种嵌套关系的层级数。如果不存在嵌套关系,则L=1,如果有两层嵌套,也就是状态机中的某个或者多个状态中还包含子状态机,则L=2,以此类推。
(7)
Figure BDA0003933003580000093
B表示是否存在状态机,如果一个模块中不存在状态机,则B=0,无需计算状态机的复杂程度。
(8)
Figure BDA0003933003580000094
F表示一个模块中与顶层状态机在同一层的方程数量。由于方程表征的是软件中的控制流与数据流,状态机表征的是软件中的任务切换。因此,二者的复杂度之间没有必然的联系。因此,二者的关系定型为和。
(9)
Figure BDA0003933003580000095
D表示该模块被调用的次数、FIO表示该模块的输入输出总的数量。被调用次数表示与之发生联系的模块数量,因此,与状态转移路径对状态机复杂度影响类似,被调用次数与该模块对于整个模型复杂程度的增加为线性关系。同理适用于模块的输入输出数量。
(10)
Figure BDA0003933003580000096
该式表示一套软件模型中,所有模块复杂度的总和,也是最终表征该模型复杂度的总指标。
根据第二方面实施例,提供一种介质,所述的介质存储本发明提供一种SCADE软件模型复杂度计算方法。
根据第三方面实施例,提供一种SCADE软件模型,所述的SCADE软件模型使用本发明提供的一种SCADE软件模型复杂度计算方法进行复杂度计算。
本发明中的一些与模型相关的名词,在此作图面说明,状态机如图2所示,模型中的模块如图3所示。
为了更好的阐述本发明的一种SCADE软件模型复杂度计算方法,下面结合附图和具体的实施例进一步说明。
以某软件模型为例,该软件模型的模块组成如图4所示:从图4可以看出,SINSProj软件模型由7个模块组成,因此计算公式中的n=7;下一步是逐一计算各个模块的复杂度;从图5中可以统计出,Alignment模块的复杂度为6,相关参数如表2所示:
表格2Alignment模块相关参数
Figure BDA0003933003580000101
Figure BDA0003933003580000111
从图6中可以统计出,imu模块的复杂度为3,相关参数如表3所示:
表格3imu模块相关参数
Figure BDA0003933003580000112
从图7中可以统计出,INCcheck模块的复杂度为80,相关参数如表4所示:
表格4INCcheck模块相关参数
Figure BDA0003933003580000113
Figure BDA0003933003580000121
从图8中可以统计出,INSinit模块的复杂度为12,相关参数如表5所示:
表格5INSinit模块相关参数
Figure BDA0003933003580000122
Figure BDA0003933003580000131
从9中可以统计出,INSmain模块的复杂度为30,相关参数如表6所示:
表格6INSmain模块相关参数
Figure BDA0003933003580000132
从图10中可以统计出,Limiter模块的复杂度为25,相关参数如表7所示:
表格7Limiter模块相关参数
Figure BDA0003933003580000133
Figure BDA0003933003580000141
从图11中可以统计出,SendNavData模块的复杂度为46,相关参数如表8所示:
表格8SendNavData模块相关参数
Figure BDA0003933003580000142
Figure BDA0003933003580000151
将上述7个模块的复杂度值相加得到模型的复杂度C(M)=6+3+80+12+30+25+46=202。
根据获得的一种SCADE软件模型复杂度有助于解决软件模型驱动开发过程中,事后衡量建模工程师工作量的问题、事后评价模型质量的问题,以及事前估计模型验证工作量的问题。
综上,本发明提供的一种SCADE软件模型复杂度计算方法,相比于现有技术至少具有以下优势:
本发明通过对一种SCADE软件模型复杂度影响因素的分析和选取,获得一种SCADE软件模型复杂度的计算方法,能够解决软件模型驱动开发过程中,事后衡量建模工程师工作量、事后评价模型质量,以及事前估计模型验证工作量时对SCADE软件模型复杂度计算困难的问题。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种SCADE软件模型复杂度计算方法,其特征在于,包括以下步骤:
确定SCADE软件模型中的模块数量和每个模块中与状态机处于同一层的方程数量;
判断是否存在状态机,若存在则记为1,若不存在则记为0;
确定状态机中的状态数、状态机中状态转移的路径数和状态机中方程数;
确定状态机之间嵌套关系的层级数L,若不存在嵌套,则L=1;
根据上述所有,确定SCADE软件模型复杂度计算公式为:
Figure FDA0003933003570000011
其中,S表示一个状态机中的状态数量,T表示一个状态机中状态转移的路径数,
Figure FDA0003933003570000012
表示一个状态机中所有状态中包含方程数的和,m表示一个模块中状态机的个数,n表示模型中模块的个数,B表示是否存在状态机,L表示一个模块中所有状态机之间嵌套关系的层级数,F表示一个模块中与顶层状态机在同一层的方程数量,D表示一个模块被调用的次数、FIO表示一个模块的输入输出总的数量。
2.一种介质,其特征在于,所述的介质存储权利要求1所述的一种SCADE软件模型复杂度计算方法。
3.一种SCADE软件模型,其特征在于,所述的SCADE软件模型使用权利要求1所述的一种SCADE软件模型复杂度计算方法进行复杂度计算。
CN202211394696.1A 2022-11-09 2022-11-09 一种scade软件模型复杂度计算方法 Pending CN115712564A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211394696.1A CN115712564A (zh) 2022-11-09 2022-11-09 一种scade软件模型复杂度计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211394696.1A CN115712564A (zh) 2022-11-09 2022-11-09 一种scade软件模型复杂度计算方法

Publications (1)

Publication Number Publication Date
CN115712564A true CN115712564A (zh) 2023-02-24

Family

ID=85232523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211394696.1A Pending CN115712564A (zh) 2022-11-09 2022-11-09 一种scade软件模型复杂度计算方法

Country Status (1)

Country Link
CN (1) CN115712564A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506787A (zh) * 2020-12-16 2021-03-16 北京机电工程研究所 基于测试结果的多维特性综合决策的软件质量评估方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112506787A (zh) * 2020-12-16 2021-03-16 北京机电工程研究所 基于测试结果的多维特性综合决策的软件质量评估方法
CN112506787B (zh) * 2020-12-16 2024-06-11 北京机电工程研究所 基于测试结果的多维特性综合决策的软件质量评估方法

Similar Documents

Publication Publication Date Title
CN110276147B (zh) 一种基于数字孪生模型的制造系统故障溯源方法、系统
Mukhopadhyay et al. Software effort models for early estimation of process control applications
US5687094A (en) Design verification apparatus
JP2010049693A (ja) 製造設計及び工程分析システム
CN104391791B (zh) 嵌入式控制算法的测试方法及装置
TWI584134B (zh) 製程異因分析方法與製程異因分析系統
CN115712564A (zh) 一种scade软件模型复杂度计算方法
CN103714191A (zh) 用于异常工具和阶段诊断的2d/3d分析
CN110096036A (zh) 一种设备状态的确定方法、装置及设备
CN110413513A (zh) 软件的发布质量管理系统、方法以及装置
CN106933572B (zh) 一种基于llvm中间表示程序切片的度量模型
Pei et al. Machining error control by integrating multivariate statistical process control and stream of variations methodology
CN102289530A (zh) 一种起重机通用型主梁参数化计算机建模系统
CN114818361A (zh) 一种基于应用场景的数字孪生模型构建方法
JP5509062B2 (ja) 生産シミュレーション装置
CN107818051B (zh) 一种测试用例的跳转分析方法、装置及服务器
Robinson Automated analysis of simulation output data
CN109814924B (zh) 一种软件复杂度计算方法
CN110134090B (zh) 融合多源信息的工业机器人控制系统可靠性评估方法
JP2014110047A (ja) 電子回路シミュレーションのための方法及び装置
JP2005063208A (ja) ソフトウェア信頼度成長モデル選択方法、ソフトウェア信頼度成長モデル選択装置、ソフトウェア信頼度成長モデル選択プログラム、およびプログラム記録媒体
CN109522234A (zh) 显示测试用例执行进度的方法、系统及自动化测试方法
CN111967774B (zh) 软件质量风险预测方法及装置
KR20110121014A (ko) 무역역조현황 추적 진단 및 특허기술 모니터링 시스템 및 방법
JP2014059805A (ja) モデルベースの制御装置用のテストケース生成装置およびテストケース生成方法

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