CN111597103A - 一种嵌入式软件SysML模型状态空间约简方法 - Google Patents
一种嵌入式软件SysML模型状态空间约简方法 Download PDFInfo
- Publication number
- CN111597103A CN111597103A CN202010206248.9A CN202010206248A CN111597103A CN 111597103 A CN111597103 A CN 111597103A CN 202010206248 A CN202010206248 A CN 202010206248A CN 111597103 A CN111597103 A CN 111597103A
- Authority
- CN
- China
- Prior art keywords
- matrix
- sysml
- sdm
- zero
- embedded software
- 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
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000009467 reduction Effects 0.000 title claims abstract description 21
- 239000011159 matrix material Substances 0.000 claims abstract description 69
- 238000010586 diagram Methods 0.000 claims abstract description 27
- 230000007704 transition Effects 0.000 claims description 6
- 238000013508 migration Methods 0.000 claims description 3
- 230000005012 migration Effects 0.000 claims description 3
- 238000012795 verification Methods 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 9
- 238000001514 detection method Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000004880 explosion Methods 0.000 description 2
- 238000011946 reduction process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000005406 washing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004451 qualitative analysis Methods 0.000 description 1
- 238000013509 system migration Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Complex Calculations (AREA)
Abstract
一种嵌入式软件SysML模型状态空间约简方法,包括以下步骤:步骤1000,获取嵌入式软件的SysML状态图模型SDM=(S,S0,R,T,P);步骤2000,将嵌入式软件的SysML状态图模型SDM转换为用二维数组表示的邻接矩阵A;步骤3000,进行基于邻接矩阵状态空间约简,得到约简后的邻接矩阵A';步骤4000,将约简后的邻接矩阵A',转换为新SysML状态图SDM'。本发明有效提升验证效率。
Description
技术领域
本领域涉及嵌入式软件,特别涉及具有形式化验证需求的嵌入式软件,是一种嵌入式软件SysML模型状态空间约简方法。
背景技术
近年来,随着科技的发展,嵌入式软件在各个领域的应用越来越广泛,嵌入式软件呈现综合化、复杂化的发展趋势,对软件安全性的要求越来越高。一旦嵌入式软件出现安全性问题,导致系统安全性失效,可能造成巨大的经济损失,甚至对人们的生命财产安全构成威胁。因此,如何提高嵌入式软件的安全性成为了人们越来越关注的问题。
软件工程界的统计数据表明,发现错误的时间越早,改错的难度和代价就越小。因此,要保证软件的安全性,就需要在开发的前期,对软件进行充分的验证。
目前常用的软件验证方法包括:
(1)静态分析:以检查单或类似的手段对待检测软件进行定性分析;
(2)测试:将测试用例作为待检测软件的输入进行分析;
(3)模型检测:模型检测是针对模型驱动开发而提出的验证技术,继承了模型驱动开发的基本思想,将软件进行建模通过对模型的有穷状态空间进行穷尽的搜索来验证模型是否满足特定的属性要求。
与传统的静态分析、测试等方法相比,基于模型的模型检测方法可以在开发早期对设计模型进行验证,尽早发现错误。验证的一般过程如下:给定一个软件模型以及该软件必须满足的规约,对模型的有穷状态空间进行穷尽的搜索来验证模型是否满足特定的属性要求,验证过程一般是自动的。使用模型检测的优点在于,可以准确地描述软件的安全性性质,验证过程无需人工干预,易于发现软件中的错误,错误定位非常准确等,并且可以极大地提高验证的覆盖率和可信度。
但是,由于嵌入式软件功能复杂,导致建模后状态数量多,在模型检测时会产生状态空间爆炸的问题,影响验证效率。
发明内容
为了克服现有技术的验证效率较低的不足,本发明提供一种嵌入式软件SysML模型状态空间约简方法,有效提升验证效率。
为了解决上述技术问题本发明提供如下的技术方案:
一种嵌入式软件SysML模型状态空间约简方法,包括以下步骤:
步骤2000,将嵌入式软件的SysML状态图模型SDM转换为用二维数组表示的邻接矩阵A;
所述步骤2000的过程如下:
步骤2100,使用广度优先搜索遍历SysML状态图模型SDM,统计SDM中状态的个数n,即为邻接矩阵A的阶数;
步骤2200,使用深度优先搜索遍历SysML状态图模型SDM,通过步骤2210与步骤2220,确定邻接矩阵A中元素的值;
步骤2210,若SDM中,si与sj不连通,则将邻接矩阵A中的aij赋值为零;
步骤2220,若SDM中,si与sj连通,则将邻接矩阵A中的aij赋值为状态si、sj之间转移的原子命题pij;
步骤3000,进行基于邻接矩阵状态空间约简,得到约简后的邻接矩阵A';
所述步骤3000的过程如下:
步骤3100,取矩阵A中所有行相同、列相邻、值相等的两个原子命题pij与pi(j+1),组成二元组pairij=(pij,pi(j+1)),得到集合S={pairij};
步骤3200,遍历集合S,依据S中每个二元组pairij,对矩阵进行行方向约简与列方向约简;
步骤3210,对于取到的S中二元组pairij,若矩阵A中第j+1行的所有元素的值全部等于零,则删除第j+1行的所有元素;
步骤3220,若矩阵A的第j+1行中存在不为零的元素,则找到与不为零元素列坐标相等、行坐标减一的位置的元素ajk,进一步判断;
步骤3321,若ajk的值等于零,将a(j+1)k的值赋给ajk,并删除矩阵A中第j+1行的所有元素;
步骤3322,若ajk的值不等于零,则删除矩阵A中第j+1行的所有元素;
步骤3410,对于取到的S中二元组pairij,若矩阵A中第j+1列的所有元素的值全部等于零,则删除第j+1列的所有元素;
步骤3420,若矩阵A的第j+1列中存在不为零的元素,则找到与不为零元素所对应的行坐标相等、列坐标减一的位置的元素akj,进一步判断;
步骤3421,若akj的值等于零,将ak(j+1)的值赋给akj,并删除矩阵A中第j+1列的所有元素;
步骤3422,若akj的值不等于零,则删除矩阵A中第j+1列的所有元素;
步骤4000,将约简后的邻接矩阵A',转换为新SysML状态图SDM';
所述步骤4000的过程如下:
步骤4100,遍历邻接矩阵A',确定矩阵A'的阶数m,即为新SysML状态图SDM'的状态个数m;
步骤4200,遍历邻接矩阵A',通过步骤4210,填充新SysML状态图SDM'中状态之间的迁移关系;
步骤4210,若邻接矩阵A'中,a'ij的值不为零,则令SDM'中状态s'i、s'j之间转移的原子命题pij为a'ij的值。
本发明的有益效果为:在模型检测过程中,状态空间会随着状态的数量的增加而快速的增长,产生状态空间爆炸的问题,严重地影响了检测的效率。本发明可以降低模型检测过程中状态空间的大小,提高验证的效率。
附图说明
图1是嵌入式软件SysML模型状态空间约简方法的执行流程示意图。
图2是某洗衣机约简前状态图。
图3是某洗衣机约简后状态图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,将结合附图对本发明作进一步地详细描述。
参照图1~图3,一种嵌入式软件SysML模型状态空间约简方法,所述方法包括以下步骤:
步骤1000,获取嵌入式软件的SysML状态图模型SDM=(S,S0,R,T,P);步骤2000,将嵌入式软件的SysML状态图模型SDM转换为用二维数组表示的邻接矩阵A;步骤3000,进行基于邻接矩阵状态空间约简,得到约简后的邻接矩阵A';步骤4000,将约简后的邻接矩阵A',转换为新SysML状态图SDM'。
下面通过实施例来对本发明做进一步详细说明;
步骤1000,获取嵌入式软件的SysML状态图模型SDM,如图2所示;
步骤2000,将嵌入式软件的SysML状态图模型SDM转换为用二维数组表示的邻接矩阵A;
所述步骤2000的过程如下:
步骤2100,使用广度优先搜索遍历SysML状态图模型SDM,统计SDM中状态的个数为6,即为邻接矩阵A的阶数;
步骤2200,使用深度优先搜索遍历SysML状态图模型SDM,通过步骤2210与步骤2220,确定邻接矩阵A中元素的值;
步骤2210,因SDM中,s1与s1、s4、s5、s6不连通,s2与s1、s2、s3、s5、s6不连通,s3与s1、s2、s3、s6不连通,s4与s1、s2、s3、s4不连通,s5与s1、s2、s3、s4、s5不连通,s6与s1、s2、s3、s4、s5、s6不连通,则将邻接矩阵中的a11、a14、a15、a16、a21、a22、a23、a25、a26、a31、a32、a33、a36、a41、a42、a43、a44、a51、a52、a53、a54、a55、a61、a62、a63、a64、a65、a66赋值为零。
步骤2220,因SDM中s1与s2连通且转移关系为“程序选择1”,s1与s3连通且转移关系为“程序选择2”,s2与s4连通、s3与s4连通、s3与s5连通、s4与s5连通且转移关系为“程序选择3”,s4与s6连通、s4与s6连通且转移关系为“程序选择4”,将邻接矩阵中的a12赋值为“程序选择1”,将a13赋值为“程序选择2”,将a24、a34、a35、a45赋值为“程序选择3”,将a46、a56赋值为“程序选择4”。
步骤3000,进行基于邻接矩阵状态空间约简,得到约简后的邻接矩阵A';
所述步骤3000的过程如下:
步骤3100,取矩阵A中所有行相同、列相邻、值相等的两个原子命题pij与pi(j+1),组成二元组pairij=(pij,pi(j+1)),因此,得到集合S={pair34};
步骤3200,遍历集合S,依据S中每个二元组pairij,对矩阵进行行方向约简与列方向约简。
所述的行方向约简的过程如下:
步骤3220,对于取到的S中二元组pair34,因第5行中a56不为零,则找到与不为零元素列坐标相等、行坐标减一的位置的元素a46,进一步判断;
步骤3322,因a46不为零,则删除矩阵A中第5行的所有元素。
所述的列方向约简的过程如下:
步骤3420,对于取到的S中二元组pair34,因第5列中a35、a45不为零,则找到与不为零元素所对应的行坐标相等、列坐标减一的位置的元素a34、a44,进一步判断;
步骤3421,其中a44的值为零,因此,将a45的值赋给a44;
步骤3422,其中a34的值不为零,则删除矩阵A中第5列的所有元素,得到约简后的邻接矩阵A'。
步骤4000,将约简后的邻接矩阵A',转换为新SysML状态图SDM',如图3所示。
所述步骤4000的过程如下:
步骤4100,遍历邻接矩阵A',确定矩阵A'的阶数为5,即为新SysML状态图SDM'的状态个数为5;
步骤4200,遍历邻接矩阵A',通过步骤4210,填充新SysML状态图SDM'中状态之间的迁移关系;
步骤4210,因邻接矩阵A'中,a'12、a'13、a'24、a'34、a'44、a'45的值均不为零,则令s'1、s'2之间转移的原子命题为“程序选择1”,令s'1、s'3之间转移的原子命题为“程序选择2”,令s'2与s'3之间、s'3与s'4之间、s'4与s'4之间、转移的原子命题为“程序选择3”,令s'4、s'5之间转移的原子命题为“程序选择4”。
Claims (6)
2.根据权利要求1所述的嵌入式软件SysML模型状态空间约简方法,其特征在于,所述步骤2000的过程如下:
步骤2100,使用广度优先搜索遍历SysML状态图模型SDM,统计SDM中状态的个数n,即为邻接矩阵A的阶数;
步骤2200,使用深度优先搜索遍历SysML状态图模型SDM,通过步骤2210与步骤2220,确定邻接矩阵A中元素的值;
步骤2210,若SDM中,si与sj不连通,则将邻接矩阵A中的aij赋值为零;
步骤2220,若SDM中,si与sj连通,则将邻接矩阵A中的aij赋值为状态si、sj之间转移的原子命题pij。
3.根据权利要求1或2所述的嵌入式软件SysML模型状态空间约简方法,其特征在于,所述步骤3000的过程如下:
步骤3100,取矩阵A中所有行相同、列相邻、值相等的两个原子命题pij与pi(j+1),组成二元组pairij=(pij,pi(j+1)),得到集合S={pairij};
步骤3200,遍历集合S,依据S中每个二元组pairij,对矩阵进行行方向约简与列方向约简。
4.根据权利要求3所述的嵌入式软件SysML模型状态空间约简方法,其特征在于,所述的行方向约简的过程如下:
步骤3210,对于取到的S中二元组pairij,若矩阵A中第j+1行的所有元素的值全部等于零,则删除第j+1行的所有元素;.
步骤3220,若矩阵A的第j+1行中存在不为零的元素,则找到与不为零元素列坐标相等、行坐标减一的位置的元素ajk,进一步判断;
步骤3321,若ajk的值等于零,将a(j+1)k的值赋给ajk,并删除矩阵A中第j+1行的所有元素;
步骤3322,若ajk的值不等于零,则删除矩阵A中第j+1行的所有元素。
5.根据权利要求3所述的嵌入式软件SysML模型状态空间约简方法,其特征在于,所述的列方向约简的过程如下:
步骤3410,对于取到的S中二元组pairij,若矩阵A中第j+1列的所有元素的值全部等于零,则删除第j+1列的所有元素;.
步骤3420,若矩阵A的第j+1列中存在不为零的元素,则找到与不为零元素所对应的行坐标相等、列坐标减一的位置的元素akj,进一步判断;
步骤3421,若akj的值等于零,将ak(j+1)的值赋给akj,并删除矩阵A中第j+1列的所有元素;
步骤3422,若akj的值不等于零,则删除矩阵A中第j+1列的所有元素。
6.根据权利要求1或2所述的嵌入式软件SysML模型状态空间约简方法,其特征在于,所述步骤4000的过程如下:
步骤4100,遍历邻接矩阵A',确定矩阵A'的阶数m,即为新SysML状态图SDM'的状态个数m;
步骤4200,遍历邻接矩阵A',通过步骤4210,填充新SysML状态图SDM'中状态之间的迁移关系;
步骤4210,若邻接矩阵A'中,a'ij的值不为零,则令SDM'中状态si、sj之间转移的原子命题pij为a'ij的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010206248.9A CN111597103B (zh) | 2020-03-23 | 2020-03-23 | 一种嵌入式软件SysML模型状态空间约简方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010206248.9A CN111597103B (zh) | 2020-03-23 | 2020-03-23 | 一种嵌入式软件SysML模型状态空间约简方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111597103A true CN111597103A (zh) | 2020-08-28 |
CN111597103B CN111597103B (zh) | 2023-11-28 |
Family
ID=72181547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010206248.9A Active CN111597103B (zh) | 2020-03-23 | 2020-03-23 | 一种嵌入式软件SysML模型状态空间约简方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111597103B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559359A (zh) * | 2020-12-22 | 2021-03-26 | 华东师范大学 | 一种基于s2ml的安全攸关系统分析与验证方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105117326A (zh) * | 2015-07-01 | 2015-12-02 | 湖州师范学院 | 一种基于组合混沌序列的测试用例集生成方法 |
US9298858B1 (en) * | 2012-10-12 | 2016-03-29 | The Mathworks, Inc. | System and method for reducing models based on a criterion |
CN106682343A (zh) * | 2016-08-31 | 2017-05-17 | 电子科技大学 | 一种基于图的邻接矩阵的形式化验证方法 |
CN108399152A (zh) * | 2018-02-06 | 2018-08-14 | 中国科学院信息工程研究所 | 数字查找树的压缩表示方法、系统、存储介质及规则匹配装置 |
US20190095314A1 (en) * | 2017-09-28 | 2019-03-28 | Xidian University | Interpolation Based Path Reduction Method in Software Model Checking |
CN110399285A (zh) * | 2018-04-24 | 2019-11-01 | 西安邮电大学 | 一种基于弱变异分析的测试用例约减方法 |
CN110515838A (zh) * | 2019-07-31 | 2019-11-29 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于主题模型软件缺陷检测的方法和系统 |
CN115861349A (zh) * | 2022-11-23 | 2023-03-28 | 西安电子科技大学 | 基于约简概念结构元素和矩阵序的彩色图像边缘提取方法 |
-
2020
- 2020-03-23 CN CN202010206248.9A patent/CN111597103B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9298858B1 (en) * | 2012-10-12 | 2016-03-29 | The Mathworks, Inc. | System and method for reducing models based on a criterion |
CN105117326A (zh) * | 2015-07-01 | 2015-12-02 | 湖州师范学院 | 一种基于组合混沌序列的测试用例集生成方法 |
CN106682343A (zh) * | 2016-08-31 | 2017-05-17 | 电子科技大学 | 一种基于图的邻接矩阵的形式化验证方法 |
US20190095314A1 (en) * | 2017-09-28 | 2019-03-28 | Xidian University | Interpolation Based Path Reduction Method in Software Model Checking |
CN108399152A (zh) * | 2018-02-06 | 2018-08-14 | 中国科学院信息工程研究所 | 数字查找树的压缩表示方法、系统、存储介质及规则匹配装置 |
CN110399285A (zh) * | 2018-04-24 | 2019-11-01 | 西安邮电大学 | 一种基于弱变异分析的测试用例约减方法 |
CN110515838A (zh) * | 2019-07-31 | 2019-11-29 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于主题模型软件缺陷检测的方法和系统 |
CN115861349A (zh) * | 2022-11-23 | 2023-03-28 | 西安电子科技大学 | 基于约简概念结构元素和矩阵序的彩色图像边缘提取方法 |
Non-Patent Citations (3)
Title |
---|
危前进;: "基于有序二叉决策图的粗糙集属性约简的符号方法", 桂林电子科技大学学报, no. 02 * |
芮素娟;刘葭;: "基于状态图的测试用例生成技术", no. 08 * |
蒙祖强;史忠植;: "一种新的基于简化二进制可辨矩阵的相对约简算法", 控制与决策, no. 09 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559359A (zh) * | 2020-12-22 | 2021-03-26 | 华东师范大学 | 一种基于s2ml的安全攸关系统分析与验证方法 |
CN112559359B (zh) * | 2020-12-22 | 2024-03-22 | 华东师范大学 | 一种基于s2ml的安全攸关系统分析与验证方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111597103B (zh) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8104001B2 (en) | Automated debugging method for over-constrained circuit verification environment | |
JP4557337B2 (ja) | Xリストに基づく多重エラー及び故障を診断する方法並びにシステム | |
CN107783758A (zh) | 一种智能合约工程方法 | |
CN114936158B (zh) | 一种基于图卷积神经网络的软件缺陷定位方法 | |
CN1534764A (zh) | 集成电路设计整合方法及其应用的组件、交易方法与产品 | |
CN103995780A (zh) | 一种基于语句频度统计的程序错误定位方法 | |
CN115062570B (zh) | 一种形式验证方法、装置、设备及计算机存储介质 | |
CN115470750B (zh) | 基于追踪文件的芯片性能验证系统 | |
CN111597103A (zh) | 一种嵌入式软件SysML模型状态空间约简方法 | |
CN110991065B (zh) | 一种建筑信息模型中设计变更自动识别方法 | |
CN115659335A (zh) | 基于混合模糊测试的区块链智能合约漏洞检测方法及装置 | |
CN109409002B (zh) | 一种版图实例化的完整性检测方法 | |
CN111767546B (zh) | 一种基于深度学习的输入结构推断方法和装置 | |
CN117272646A (zh) | 一种基于孪生神经网络的仿真软件自动操作优化方法 | |
US8001503B2 (en) | Method and system for automatically accessing internal signals or ports in a design hierarchy | |
CN116820852A (zh) | 一种可快速遍历中断位的中断测试方法 | |
CN111045948A (zh) | 模块间接口信号的检查方法、设备和存储介质 | |
CN116401229A (zh) | 数据库的数据校验方法、装置及设备 | |
CN113485940A (zh) | 一种基于参数抽象建模的组合测试用例生成方法 | |
CN112948253B (zh) | 一种基于vrm模型的测试用例生成方法 | |
CN108959091B (zh) | 一种支持约束的事件序列故障定位方法 | |
US7475369B1 (en) | Eliminate false passing of circuit verification through automatic detecting of over-constraining in formal verification | |
Cochran et al. | Formal model-based validation for tally systems | |
CN112181844B (zh) | 一种验证分布式协议活性属性容错机制的检测方法及装置 | |
CN108984355A (zh) | 一种接口测试的自动化测试方法 |
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 |