CN115712564A - 一种scade软件模型复杂度计算方法 - Google Patents
一种scade软件模型复杂度计算方法 Download PDFInfo
- 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
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 12
- 238000000034 method Methods 0.000 claims abstract description 35
- 230000007704 transition Effects 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims abstract description 13
- 238000012795 verification Methods 0.000 abstract description 8
- 238000011161 development Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 2
- 230000009021 linear effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013441 quality evaluation Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种SCADE软件模型复杂度计算方法,确定SCADE软件模型中的模块数量和每个模块中与状态机处于同一层的方程数量;判断是否存在状态机,若存在则记为1,若不存在则记为0;确定状态机中的状态数、状态机中状态转移的路径数和状态机中方程数;确定状态机之间嵌套关系的层级数L,若不存在嵌套,则L=1;确定SCADE软件模型复杂度计算公式。本发明能够解决软件模型驱动开发过程中,事后衡量建模工程师工作量、事后评价模型质量,以及事前估计模型验证工作量时对SCADE软件模型复杂度计算困难的问题。
Description
技术领域
本发明属于面向基于SCADE工具的软件模型驱动开发技术领域,具体涉及一种SCADE软件模型复杂度计算方法。
背景技术
目前模型驱动开发(MBD)领域运用的主流工具有SCADE、MATLAB等,而SCADE工具套件中Suite工具主要是面向高可靠高安全领域的嵌入式软件建模。本发明就是在运用SCADESuite工具对软件进行建模的基础上开展的相关拓展应用。
由于MBD技术的应用,在软件研制过程中,引入了“模型”这一全新的配置项元素。与软件文档、软件代码类似,软件模型是软件研制过程中重要的阶段性工作产品。软件模型是软件设计人员根据软件需求,对软件开展的详细设计过程的产物,设计人员能够基于该模型开展需求的验证、性能分析、代码自动生成等后续工作。
当建模工作结束,需要开展对模型的质量评估、建模工作量评估以及对模型验证的工作量进行评估时,模型的复杂度就成为了上述评估和验证工作的一项重要指标。目前该领域暂时还没有一种针对SCADE Suite模型复杂度度量的方法。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种SCADE软件模型复杂度计算方法。本发明方案能够解决上述现有技术中存在的问题。
本发明的技术解决方案:
根据第一方面,提供一种SCADE软件模型复杂度计算方法,包括以下步骤:
确定SCADE软件模型中的模块数量和每个模块中与状态机处于同一层的方程数量;
判断是否存在状态机,若存在则记为1,若不存在则记为0;
确定状态机中的状态数、状态机中状态转移的路径数和状态机中方程数;
确定状态机之间嵌套关系的层级数L,若不存在嵌套,则L=1;
根据上述所有,确定SCADE软件模型复杂度计算公式为:其中,S表示一个状态机中的状态数量,T表示一个状态机中状态转移的路径数,表示一个状态机中所有状态中包含方程数的和,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软件模型复杂度计算公式为:其中,S表示一个状态机中的状态数量,T表示一个状态机中状态转移的路径数,表示一个状态机中所有状态中包含方程数的和,m表示一个模块中状态机的个数,n表示模型中模块的个数,B表示是否存在状态机,L表示一个模块中所有状态机之间嵌套关系的层级数,F表示一个模块中与顶层状态机在同一层的方程数量,D表示一个模块被调用的次数、FIO表示一个模块的输入输出总的数量。
为了对本发明提供的一种SCADE软件模型复杂度计算方法有更进一步了解,下面结合具体实例及附图进行详细说明。
本发明在对软件模型的复杂度进行度量时,选取了方程数、状态机的状态数、状态机的转态转移路径数、状态机的层级数、模块的被调用次数、操作符的输入输出数作为软件模型复杂度度量的指标,相关说明如表1所示:
表格1模型复杂度度量指标
步骤一,确定SCADE软件模型中的模块数量和每个模块中与状态机处于同一层的方程数量;
步骤二,判断是否存在状态机,若存在则记为1,若不存在则记为0;
步骤三,确定状态机中的状态数、状态机中状态转移的路径数和状态机中方程数;
步骤四,确定状态机之间嵌套关系的层级数L,若不存在嵌套,则L=1;
(1)(S-1):S表示一个状态机中的状态数量。由于在SCADE Suite工具中创建一个状态机时,工具会自动生成一个初始状态,该初始状态也计入状态数量,但是由于该状态是由工具自动生成,因此,不会对建模过程和模型本身的复杂程度直接造成影响。因此,在度量模型的复杂程度时,将每一个状态机中的初始状态剔除。
(2)(S-1)T:T表示一个状态机中状态转移的路径数。软件任务会在不同状态之间来回切换和转移,每多一条转移路径,对于该状态机的测试验证中需要的测试用例数量就会成比例的增长。因此用(S-1)T可以表示状态机的状态转移和软件任务间切换复的杂程度。
(9)D表示该模块被调用的次数、FIO表示该模块的输入输出总的数量。被调用次数表示与之发生联系的模块数量,因此,与状态转移路径对状态机复杂度影响类似,被调用次数与该模块对于整个模型复杂程度的增加为线性关系。同理适用于模块的输入输出数量。
根据第二方面实施例,提供一种介质,所述的介质存储本发明提供一种SCADE软件模型复杂度计算方法。
根据第三方面实施例,提供一种SCADE软件模型,所述的SCADE软件模型使用本发明提供的一种SCADE软件模型复杂度计算方法进行复杂度计算。
本发明中的一些与模型相关的名词,在此作图面说明,状态机如图2所示,模型中的模块如图3所示。
为了更好的阐述本发明的一种SCADE软件模型复杂度计算方法,下面结合附图和具体的实施例进一步说明。
以某软件模型为例,该软件模型的模块组成如图4所示:从图4可以看出,SINSProj软件模型由7个模块组成,因此计算公式中的n=7;下一步是逐一计算各个模块的复杂度;从图5中可以统计出,Alignment模块的复杂度为6,相关参数如表2所示:
表格2Alignment模块相关参数
从图6中可以统计出,imu模块的复杂度为3,相关参数如表3所示:
表格3imu模块相关参数
从图7中可以统计出,INCcheck模块的复杂度为80,相关参数如表4所示:
表格4INCcheck模块相关参数
从图8中可以统计出,INSinit模块的复杂度为12,相关参数如表5所示:
表格5INSinit模块相关参数
从9中可以统计出,INSmain模块的复杂度为30,相关参数如表6所示:
表格6INSmain模块相关参数
从图10中可以统计出,Limiter模块的复杂度为25,相关参数如表7所示:
表格7Limiter模块相关参数
从图11中可以统计出,SendNavData模块的复杂度为46,相关参数如表8所示:
表格8SendNavData模块相关参数
将上述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;
2.一种介质,其特征在于,所述的介质存储权利要求1所述的一种SCADE软件模型复杂度计算方法。
3.一种SCADE软件模型,其特征在于,所述的SCADE软件模型使用权利要求1所述的一种SCADE软件模型复杂度计算方法进行复杂度计算。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112506787A (zh) * | 2020-12-16 | 2021-03-16 | 北京机电工程研究所 | 基于测试结果的多维特性综合决策的软件质量评估方法 |
-
2022
- 2022-11-09 CN CN202211394696.1A patent/CN115712564A/zh active Pending
Cited By (2)
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 |
---|---|---|
Mukhopadhyay et al. | Software effort models for early estimation of process control applications | |
US5687094A (en) | Design verification apparatus | |
CN105224463B (zh) | 一种基于崩溃栈数据的软件缺陷代码定位方法 | |
JP2010049693A (ja) | 製造設計及び工程分析システム | |
CN104391791B (zh) | 嵌入式控制算法的测试方法及装置 | |
CN115712564A (zh) | 一种scade软件模型复杂度计算方法 | |
CN110096036A (zh) | 一种设备状态的确定方法、装置及设备 | |
CN111125946A (zh) | 一种基于mdo技术的上车体结构优化方法 | |
TW201717057A (zh) | 製程異因分析方法與製程異因分析系統 | |
Leitão et al. | Fault handling in discrete event systems applied to IEC 61499 | |
CN106933572B (zh) | 一种基于llvm中间表示程序切片的度量模型 | |
Pei et al. | Machining error control by integrating multivariate statistical process control and stream of variations methodology | |
CN114818361A (zh) | 一种基于应用场景的数字孪生模型构建方法 | |
JP5509062B2 (ja) | 生産シミュレーション装置 | |
CN107818051B (zh) | 一种测试用例的跳转分析方法、装置及服务器 | |
CN102521454A (zh) | 加工工艺数据的评估方法及装置 | |
Robinson | Automated analysis of simulation output data | |
CN110134090B (zh) | 融合多源信息的工业机器人控制系统可靠性评估方法 | |
CN109814924B (zh) | 一种软件复杂度计算方法 | |
JP2014110047A (ja) | 電子回路シミュレーションのための方法及び装置 | |
JP2005063208A (ja) | ソフトウェア信頼度成長モデル選択方法、ソフトウェア信頼度成長モデル選択装置、ソフトウェア信頼度成長モデル選択プログラム、およびプログラム記録媒体 | |
CN109522234A (zh) | 显示测试用例执行进度的方法、系统及自动化测试方法 | |
CN111967774B (zh) | 软件质量风险预测方法及装置 | |
CN109447235A (zh) | 基于神经网络的进给系统模型训练和预测方法及其系统 | |
JP2005284415A (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 |