CN111597103A - 一种嵌入式软件SysML模型状态空间约简方法 - Google Patents

一种嵌入式软件SysML模型状态空间约简方法 Download PDF

Info

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
Application number
CN202010206248.9A
Other languages
English (en)
Other versions
CN111597103B (zh
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.)
Zhejiang University of Technology ZJUT
Original Assignee
Zhejiang University of Technology ZJUT
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 Zhejiang University of Technology ZJUT filed Critical Zhejiang University of Technology ZJUT
Priority to CN202010206248.9A priority Critical patent/CN111597103B/zh
Publication of CN111597103A publication Critical patent/CN111597103A/zh
Application granted granted Critical
Publication of CN111597103B publication Critical patent/CN111597103B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation 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模型状态空间约简方法
技术领域
本领域涉及嵌入式软件,特别涉及具有形式化验证需求的嵌入式软件,是一种嵌入式软件SysML模型状态空间约简方法。
背景技术
近年来,随着科技的发展,嵌入式软件在各个领域的应用越来越广泛,嵌入式软件呈现综合化、复杂化的发展趋势,对软件安全性的要求越来越高。一旦嵌入式软件出现安全性问题,导致系统安全性失效,可能造成巨大的经济损失,甚至对人们的生命财产安全构成威胁。因此,如何提高嵌入式软件的安全性成为了人们越来越关注的问题。
软件工程界的统计数据表明,发现错误的时间越早,改错的难度和代价就越小。因此,要保证软件的安全性,就需要在开发的前期,对软件进行充分的验证。
目前常用的软件验证方法包括:
(1)静态分析:以检查单或类似的手段对待检测软件进行定性分析;
(2)测试:将测试用例作为待检测软件的输入进行分析;
(3)模型检测:模型检测是针对模型驱动开发而提出的验证技术,继承了模型驱动开发的基本思想,将软件进行建模通过对模型的有穷状态空间进行穷尽的搜索来验证模型是否满足特定的属性要求。
与传统的静态分析、测试等方法相比,基于模型的模型检测方法可以在开发早期对设计模型进行验证,尽早发现错误。验证的一般过程如下:给定一个软件模型以及该软件必须满足的规约,对模型的有穷状态空间进行穷尽的搜索来验证模型是否满足特定的属性要求,验证过程一般是自动的。使用模型检测的优点在于,可以准确地描述软件的安全性性质,验证过程无需人工干预,易于发现软件中的错误,错误定位非常准确等,并且可以极大地提高验证的覆盖率和可信度。
但是,由于嵌入式软件功能复杂,导致建模后状态数量多,在模型检测时会产生状态空间爆炸的问题,影响验证效率。
发明内容
为了克服现有技术的验证效率较低的不足,本发明提供一种嵌入式软件SysML模型状态空间约简方法,有效提升验证效率。
为了解决上述技术问题本发明提供如下的技术方案:
一种嵌入式软件SysML模型状态空间约简方法,包括以下步骤:
步骤1000,获取嵌入式软件的SysML状态图模型SDM=(S,S0,R,T,P),其中S是状态的有限集合,S0是初始状态并且
Figure BDA0002421216820000021
R是一个有限事件集,T是系统迁移关系的集合,P是原子命题集合;
步骤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”。
Figure BDA0002421216820000051
步骤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'。
Figure BDA0002421216820000061
步骤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)

1.一种嵌入式软件SysML模型状态空间约简方法,其特征在于,所述方法包括以下步骤:
步骤1000,获取嵌入式软件的SysML状态图模型SDM=(S,S0,R,T,P),其中S是状态的有限集合,S0是初始状态并且
Figure FDA0002421216810000011
R是一个有限事件集,T是系统迁移关系的集合,P是原子命题集合;
步骤2000,将嵌入式软件的SysML状态图模型SDM转换为用二维数组表示的邻接矩阵A;
步骤3000,进行基于邻接矩阵状态空间约简,得到约简后的邻接矩阵A';
步骤4000,将约简后的邻接矩阵A',转换为新SysML状态图SDM'。
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的值。
CN202010206248.9A 2020-03-23 2020-03-23 一种嵌入式软件SysML模型状态空间约简方法 Active CN111597103B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559359A (zh) * 2020-12-22 2021-03-26 华东师范大学 一种基于s2ml的安全攸关系统分析与验证方法

Citations (8)

* Cited by examiner, † Cited by third party
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 西安电子科技大学 基于约简概念结构元素和矩阵序的彩色图像边缘提取方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
危前进;: "基于有序二叉决策图的粗糙集属性约简的符号方法", 桂林电子科技大学学报, no. 02 *
芮素娟;刘葭;: "基于状态图的测试用例生成技术", no. 08 *
蒙祖强;史忠植;: "一种新的基于简化二进制可辨矩阵的相对约简算法", 控制与决策, no. 09 *

Cited By (2)

* Cited by examiner, † Cited by third party
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