计算机系统形式化验证中的模型检测方法综述论文.doc

合集下载

AADL综述

AADL综述

AADL:嵌入式实时系统体系结构设计与分析语言综述摘要:结构分析和设计语言(architecture analysis and design language)是嵌入式实时系统的一种体系结构描述语言标准,广泛应用于航空宇航工业中对安全关键应用系统模型的建模。

本文首先归纳了AADL的发展历程及其主要建模元素。

其次,介绍了模型检测方法的研究和应用,并就航电系统与模型检测方法做了研究和分析。

最后,探讨了AADL 模型转化为形式化模型,并用模型检测方法进行验证和分析的方法和可行性。

关键字嵌入式实时系统AADL 建模形式化方法模型验证1.引言嵌入式实时系统广泛应用于航空航天、汽车控制、机器人、等安全关键系统领域。

由于计算精度、实时响应的要求的提高,系统变得越来越复杂,如何设计与实现具有高可靠性、高质量的复杂嵌入式实时系统,同时有效的控制开发的效率和成本,成为学术界和工业界共同的话题。

模型驱动开发方法(model driven develop- ment,简称MDD)能够在早期阶段对系统进行分析与验证,有助于保证系统的质量属性,并有效控制开发时间与成本。

而质量属性是由系统体系结构决定的[1]。

因此,基于体系结构模型驱动(model-based architecture-driven)的设计与开发方法成为复杂嵌入式系统领域的重要研究内容。

其中一个重要的方面就是研究合适的体系结构描述语言。

常用的体系结构描述语言主要有UML(unifi-ed modeling language) 和ADL (architecture description language)。

UML侧重描述系统的软件体系结构,为了支持嵌入式实时系统的非功能属性分析,OMG(Object Management Group)先后定义了UML Profile for SPT(schedulability,perfor-mance,and time,简称SPT)[2],UML Profile for Qos/FT(quality of service and fault tolerance,简称Qos/FT)[3]以及UML Profile MARTE(modeling and analysis of real-time and embedded sys-tems)[4],它们继承了UML 的多模型多分析方法,因此模型之间可能存在不一致性;而C2,Darwin,Wright,Aesop,Unicon,Rapide 等ADL都是通用领域的软件体系结构描述语言,难以满足软硬件协同设计、实时响应、资源受限等特定需求;MetaH 是面向航空电子系统的ADL,可以用于嵌入式实时系统体系结构描述与分析,但MetaH 在支持运行时体系结构描述、可扩展、与其他ADL 兼容以及复杂系统设计等方面有所欠缺。

基于模型的设计在计算机系统中的应用:探讨基于模型的设计在计算机系统中的应用和实践

基于模型的设计在计算机系统中的应用:探讨基于模型的设计在计算机系统中的应用和实践

基于模型的设计在计算机系统中的应用:探讨基于模型的设计在计算机系统中的应用和实践引言在计算机系统设计领域,基于模型的设计方法已经成为一种流行的方法,被广泛应用于各种计算机系统的设计和开发中。

本文将探讨基于模型的设计在计算机系统中的应用和实践,包括其定义、特点、优势以及实际案例分析。

什么是基于模型的设计基于模型的设计是一种以模型为中心的设计方法。

它通过建立和使用各种抽象模型来描述和分析计算机系统的行为和结构。

这些模型可以是各种形式的图、图标、表格、方程式等。

在基于模型的设计中,设计师可以通过对模型的分析和调整来指导系统的开发和优化。

基于模型的设计的特点基于模型的设计具有以下几个特点:抽象化基于模型的设计方法可以将计算机系统高层次概念抽象化为各种模型,简化了设计过程。

通过建立合适的模型可以隐藏系统复杂性,使得设计师可以更加专注于系统的关键问题。

可视化基于模型的设计方法通常使用图形化表示来展示模型,使得设计师能够直观地理解系统的行为和结构。

设计师可以通过观察模型的变化来评估设计方案的合理性,并进行必要的调整和优化。

可重用性基于模型的设计方法鼓励设计师将已有的模型进行重复利用。

设计师可以将已经验证和优化过的模型作为模板,在不同的设计中使用。

这样可以提高设计的效率和一致性,并减少错误的发生。

验证性基于模型的设计方法可以使用各种验证技术来验证设计方案的正确性和可行性。

通过建立合理的模型和运用形式化验证技术,设计师可以提前发现和解决设计中的问题,减少开发过程中的风险。

基于模型的设计的优势基于模型的设计方法在计算机系统中的应用具有以下几个优势:提高设计效率基于模型的设计方法可以帮助设计师更好地理解和抽象系统的复杂性,从而提高设计效率。

通过建立模型,设计师可以更加直观地展示和分析系统的行为和结构,发现问题并进行调整。

保证设计一致性基于模型的设计方法鼓励设计师使用统一的模型表示系统的不同方面。

通过建立一致的模型,设计师可以确保设计在各个方面的一致性和协调性,减少冲突和错误的发生。

模型检测中状态爆炸问题研究综述

模型检测中状态爆炸问题研究综述

V o l . 4 0N o Байду номын сангаас 6 A J u n e 2 0 1 3
模型检测中状态爆炸问题研究综述
侯 刚 周宽久 勇嘉伟 任龙涛 王小龙 ( ) 大连理工大学软件学院 大连 1 1 6 6 2 0
摘 要 模型检 测 已成 为 保 证软件系 统正 确 性 和 可 靠 性 的重要手段 , 但 随 着 软件 功 能 日益 强 大 , 其 规 模和 复杂度 也 越 来越大, 在模型检 测过 程 中容 易 产生 状 态 爆炸 问题 。 如 何 解 决 模型检 测 中的 状 态 爆炸 , 已成 为 工 业 界 和理论 界 无 法 回 避 的重要 课 题 。 系 统 地 综 述 模型检 测 领域 解 决 状 态 爆炸 问 题 的 关 键 技 术 和 主 要 方 法 , 并提出该领域的最新研究进展 与方向。 关键词 软件系 统 , 模型检 测 , 状 态 空间 爆炸 , 形 式 化 验证 中图法分类号 T P 3 0 1 文献标识码 A
( , , ) S c h o o l o f S o f t w a r e D a l i a n U n i v e r s i t o f T e c h n o l o D a l i a n 1 1 6 6 2 0, C h i n a y g y
A b s t r a c t o d e l c h e c k i n h a s b e c o m e a n i m o r t a n t a r o a c h t o e n s u r e t h e c o r r e c t n e s s a n d r e l i a b i l i t s o f t w a r e s s t e m s . M g p p p y y , , H o w e v e r w i t h t h e i n c r e a s i n l o w e r f u l s o f t w a r e f u n c t i o n a l i t s s t e m s c a l e a n d c o m l e x i t a r e a l s o r o w i n . T h e n i t i s g y p y y p y g g e a s r o d u c e r o b l e m r o c e s s . H o w t o s t a t e e x l o s i o n i n m o d e l c h e c k i n t o s o l v e t h e s t a t e e x l o s i o n i n m o d e l c h e c k i n y p p p p g p g , b e c o m e a n i m o r t a n t i s s u e t h a t c a n n o t b e a v o i d e d b t h e i n d u s t r a n d t h e o r i s t s . I n t h i s w e o v e r v i e w e d t h e a e r h a s p y y p p r o b l e m, r o o s e d r o r e s s k e t e c h n o l o a n d m a i n m e t h o d s o f s o l v i n s t a t e e x l o s i o n a n d t h e l a t e s t r e s e a r c h a n d d i - p p p p g y g y g p r e c t i o n i n t h i s f i e l d o f m o d e l c h e c k i n . g , , , K e w o r d s o f t w a r e s s t e m s M o d e l c h e c k i n S t a t e e x l o s i o n F o r m a l v e r i f i c a t i o n S y g p y 切片 、 偏序规约 、 抽象等 。 本文将按照模型检测技术的发 展 历 , 程综述 上 述 技 术 和 方 法 ( 如图 1所示) 并对该领域的最新研 究热点与现状进行分析与讨论 。

基于NuSMV的SysML模型形式化验证

基于NuSMV的SysML模型形式化验证

基于NuSMV的SysML模型形式化验证邓刘梦; 葛晓瑜; 宛伟健【期刊名称】《《计算机技术与发展》》【年(卷),期】2019(029)010【总页数】4页(P153-156)【关键词】需求工程; 模型转换; 形式化验证; 模型驱动开发【作者】邓刘梦; 葛晓瑜; 宛伟健【作者单位】南京航空航天大学计算机科学与技术学院江苏南京 211106【正文语种】中文【中图分类】TP3110 引言在过去多年,软件开发面临了多个挑战,新的需求和存在系统不断增长,系统也变得越来越复杂,以至于很难及时地对它们进行构建。

为了解决这些问题,出现了很多新的方法,其中最突出的一个就是模型驱动开发。

模型驱动开发代表了一套理论和工业化软件开发的方法框架,在软件开发全生命周期中系统的使用模型作为主要工件,主要是为了解决软件的两个根本危机:复杂性和变更能力。

但与此同时,模型驱动开发也带来了一些问题:使用自然语言描述的需求与严格定义的模型之间的鸿沟无法很好地连通[1]。

此外,对于SysML描述的图形化模型,目前缺乏严格有效的分析和验证方法。

针对以上存在的问题,文中给出了从SysML模型到NuSMV输入模型的转换规则,并实现自动化程序完成这一转换。

接着利用NuSMV模型检测的方法来验证SysML模型的正确性。

1 SysML系统建模SysML是目前业界常用的系统体系结构建模语言,可用于由软硬件、数据和人综合而成的复杂系统的分析与设计。

然而,为了保证一定的易读性,SysML采用半形式化的描述方法来定义语义,使用自然语言描述约束和详细语义,力求在形式严格和易于理解间找到平衡[2]。

在实际中,其图形化的建模方式十分简洁直观,关系链接与约束描述等方式也进一步缩小了模型驱动开发过程中需求描述与模型设计制品间的沟壑。

但是,其牺牲的部分就是缺乏精确的语义,难以进行严格的语义分析以及正确性验证。

SysML是一种图形化建模语言,是对象管理组织(object management group,OMG)在对UML2.0的子集进行重用和扩展的基础上提出的一种新建模语言[3]。

ARINC653实时系统可调度性验证综述

ARINC653实时系统可调度性验证综述

但 BDD 中存在大量重复状态,为减少存储空间,Bryant 提出 了一种能够删除冗余、合并同构树的有序二叉决策图(OBDD), 目前已有不少学者对 OBDD 进行了相关的优化,该方法可验证 状态数已超过了。
但 MC 存在着一个不可避免的问题——随着系统规模的 增大,状态呈指数形式不断增长,在时间与空间有限的情况 下难以得出结论,尽管状态压缩、存储压缩、组合验证等方 法在一定程度上缓解了状态爆炸,但难以从本质上解决问题。
2013 年 J BOUDJADAR 等人 [13] 构建了一个多层次单处理 器实时系统的验证框架,通过 UPPAAL 分别采用 MC 和 SMC 验 证了系统的可调度性,但 MC 验证过程中可能会出现状态爆炸 的问题,SMC 所得结果仅为近似解。
2015 年符宁 [14] 等人通过 AADL 构建 ARINC653 系统模型, 提出了将 AADL 模型转换为 UPPAAL 模型进行可调度性验证的 方法,但未考虑任务抢占,同年四川大学代声馨在文献 [15] 提出了一种多处理器实时系统可调度性分析的方法,针对已 划分的系统进行验证,将对任务依赖关系的管理引入到了模 型中,并采用 SMC 验证系统的可调度性,获得了近似的验证 结果并对比分析了置信度和精确度对 SMC 验证时长的影响。
26 2021 年第 6 期
信息技术与信息化 计算机应用
验证了分布式航电系统的可调度性,相较于 JALIL BOUDJADAR,引入 SMC 可快速对系统进行全局验证得到近似解,缩短 验证与重配置系统的时间,结合 MC 对分区进行分组验证则能 够得出精确结论,但两者未考虑任务间的依赖关系。
4 总结
局限,1994 年 TINDELL 和 CLARK 提出了基于抢占式静态优先 级策略的可调度性分析方法,计算出任务的最大响应时间, 当最大响应时间未超过任务截止期时则认为任务可调度,此 方法相较于 LIU 和 LAYLAND 提出的方法精确性较强,国内有 不少学者在此基础上进行了改进对 ARINC653 系统进行可调 度性验证——2011 年周天然 [1] 推导出了 ARINC653 系统中周 期强实时任务的响应时间上界,并考虑了非周期弱实时任务, 得出了任务可调度的条件。但其将任务分为周期强实时任务 和非周期弱实时任务,假设每个分区封装一种类型的任务, 与实际情况不符。2015 年高晓光 [2] 提出了一种计算任务响 应时间上限的快速方法,并由此推演出任务可调度性分析方 法。但是其以牺牲响应时间精确度为代价,与实际结果存在 一定误差。

形式化验证技术在软件开发中的应用研究

形式化验证技术在软件开发中的应用研究

形式化验证技术在软件开发中的应用研究随着科技的不断进步,软件开发的业界也变得越来越庞大,越来越重要。

软件开发涉及到很多技术,其中一项重要技术就是形式化验证。

本文将从形式化验证的概述、应用场景、优缺点以及未来发展趋势四个方面展开,探讨形式化验证技术在软件开发中的应用研究。

一、概述形式化验证,英文名为Formal Verification。

它是指利用一定的数学语言和自动化验证方法,对软件、电子系统等进行完备的验证,以证明其设计能够满足特定要求或确认其存在特定的缺陷与漏洞。

它是一种高精度的验证技术,可以保证系统的正确性。

形式化验证的主要技术包括模型检测、定理证明、抽象解释等。

二、应用场景1.硬件验证形式化验证最早应用于硬件验证领域,因为硬件系统通常具有精确定义的行为和状态。

形式化验证在硬件验证中有着广泛应用,特别是在芯片设计中,形式化验证成为了可靠性保证的重要手段。

2.网络安全网络安全是当前全球互联网发展过程中所必须关注的方面之一。

形式化验证技术可以在网络安全中得到有效应用。

在网络安全领域中,形式化验证可以用来验证算法的正确性,分析软件漏洞和攻击防范等方面。

3.软件验证软件验证是形式化验证的另一种应用。

随着软件系统的不断发展,软件验证也变得越来越重要。

从应用领域上看,软件验证已经在银行金融、电信、交通管理、医疗卫生以及软件系统领域得到了广泛应用。

三、优缺点1.优点(1)保证系统正确性:形式化验证可以保证系统在实际运行中的正确性。

(2)提高开发效率:在软件开发的过程中,利用形式化验证技术可以尽早地发现程序错误,从而提高开发效率和质量。

(3)约束程序规模:形式化验证可以约束程序规模,从而避免了在程序变得复杂时出现的错误。

2.缺点(1)提高了开发成本:形式化验证的应用需要耗费大量的时间和资源,从而增加了开发的成本。

(2)限制精度:在某些场景下,形式化验证技术的精度受限于硬件和软件的复杂性,甚至可能导致无法实现。

形式化方法在软件工程中的应用

形式化方法在软件工程中的应用

形式化方法在软件工程中的应用软件工程是一门涉及软件开发、维护和管理的学科,它旨在提高软件开发的效率和质量。

在软件工程领域,形式化方法是一种重要的工具和技术,它通过使用数学和逻辑的方法来验证和验证软件系统的正确性。

形式化方法的应用可以帮助开发人员发现和解决软件系统中的潜在问题,从而提高软件系统的可靠性和稳定性。

形式化方法最早在20世纪60年代提出,当时主要应用于硬件设计领域。

随着计算机科学的发展和软件工程的兴起,形式化方法逐渐被引入到软件开发过程中。

形式化方法的核心思想是使用形式化的数学语言来描述和验证软件系统的行为。

通过使用形式化方法,开发人员可以将软件系统的设计和实现过程转化为可验证的数学模型,从而减少人为错误的发生。

形式化方法在软件工程中的应用主要包括需求分析、设计、验证和测试等方面。

首先,形式化方法可以帮助开发人员准确地捕捉和描述软件系统的需求。

通过使用形式化规范语言,开发人员可以将需求规范转化为数学模型,从而减少需求文档中的歧义和模糊性。

这样可以确保开发人员和用户对软件系统的需求有一个共同的理解,从而避免在后续开发过程中出现需求误解和错误。

其次,形式化方法可以帮助开发人员设计和实现高质量的软件系统。

通过使用形式化建模语言,开发人员可以将软件系统的结构和行为转化为可验证的数学模型。

这样可以帮助开发人员发现和解决软件系统中的潜在问题,从而提高软件系统的可靠性和稳定性。

同时,形式化方法还可以帮助开发人员进行软件系统的自动化验证和测试,从而减少人为错误的发生。

最后,形式化方法可以帮助开发人员进行软件系统的维护和演化。

通过使用形式化方法,开发人员可以对软件系统进行全面的分析和理解,从而更好地理解软件系统的结构和行为。

这样可以帮助开发人员快速定位和修复软件系统中的问题,从而减少维护过程中的时间和成本。

此外,形式化方法还可以帮助开发人员进行软件系统的演化和扩展,从而满足用户的新需求和变化。

总之,形式化方法在软件工程中的应用具有重要的意义。

软件测试中的模型检测方法与工具

软件测试中的模型检测方法与工具

软件测试中的模型检测方法与工具在软件开发过程中,软件测试是非常重要的环节,它旨在发现和修复系统中的缺陷,保证软件的质量和可靠性。

随着软件规模和复杂性的增加,传统的测试方法往往无法满足需求,因此,模型检测方法与工具成为软件测试领域的一种重要技术手段。

模型检测是一种形式化验证方法,它通过对系统的模型进行分析和推理,验证系统是否满足某些性质。

在软件测试中,模型检测可以帮助测试人员发现潜在的错误、缺陷和安全风险,提高测试效率和覆盖率。

一种常用的模型检测方法是符号模型检测(Symbolic Model Checking)。

符号模型检测通过将系统的状态空间转化为布尔代数形式,使用符号计算来进行推理和验证。

它能够自动地检测系统中的死锁、安全性问题和性能瓶颈等。

常用的符号模型检测工具有NuSMV和SPIN。

NuSMV是一种基于符号模型检测的开源工具,它支持对有穷状态机(FSM)和时序逻辑进行建模和分析。

NuSMV提供了丰富的语言和算法库,可以对系统的行为和性质进行验证。

通过使用NuSMV,测试人员可以快速地建立模型,并自动地进行验证和推理。

SPIN 是一种常用的基于符号模型检测的工具,它使用Promela语言描述系统模型,并通过模拟与验证的方式进行分析。

SPIN提供了强大的模型检测功能,可以有效地检测系统中的死锁、数据竞争和资源分配问题。

它还支持属性和断言的定义,方便测试人员对系统性质进行验证。

除了符号模型检测,还有一种常用的模型检测方法是模态模型检测(Modal Model Checking)。

模态模型检测通过使用模态逻辑对系统的行为和性质进行建模和验证。

常用的模态模型检测工具有PRISM和UPPAAL。

PRISM 是一种常用的基于模态模型检测的工具,它主要用于建模和分析概率性系统。

PRISM使用概率性模型与模态逻辑相结合,能够对系统的可靠性和性能进行验证。

它支持多种性质的定义,如概率达到、时间约束和资源分配等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面临的挑战和未来发展方向等问题。

2 模型检测及相关技术
模型检测方法最初由Clarke,Emerson等人于1981年提出,因其自动化高效等特点,在过去的几十年里被广泛用于实时系统、概率系统和量子等多个领域。

模型检测基本要素有系统模型和系统需满足的属性,其中属性被描述成时态逻辑公式Φ。

检测系统模型是否满足时态逻辑公式Φ,如果满足则返回“是”,不满足则返回“否”及其错误路径或反例。

时态逻辑主要有线性时态逻辑LTL(Linear TemporalLogic)和计算树逻辑CTL(Computation Tree Logic)。

2.1 线性时态逻辑
对一个系统进行检测,重要的是对系统状态正确性要求的形式化,其中一个基本维度是时间,同时需要知道检验结果与时间维度的关系。

使用线性时态逻辑(LTL)来描述系统,可以使得系统更容易被理解,证明过程更加直截了当。

LTL公式是一种线性时态逻辑。

它在表示授权约束时,定义了无限的未来和过去,这样扩展了常用语义,并且保证了证明中判定的结果在各个时间点中都是成立的。

LTL公式用逻辑连接符和时态算子表达系统运行时状态之间的关系。

LTL的逻辑连接符包括:∧(与),∨(或),—|(非),→(逻辑包含),←→(逻辑对等)。

时态算子包括:G(Globally),U(Until),F(Future),X(neXt-time)。

LTL模型检测验证系统状态转换模型是否满足属性,使用可满足性判定,即为检测系统模型M 中是否存在从某个状态出发的并满足LTL公式—|Φ的路径,如果所有路径都满足LTL公式Φ则不存在有路
径满足—|Φ。

使用LTL公式也有一定的局限性,LTL公式只能包括全称量词,对于混用了全称和存在量词的性质,一般无法用这种方法进行模型检测。

2.2 计算树逻辑
计算树即为通过将迁移系统M 某一状态作为根,将M 用树形结构展开表示出来,CTL使用路径量词(包括:A(All),E(Exist))和时态算子(包括F,G,X,U)对计算树属性进行形式化的描述,表示出系统的状态变化以及状态的分枝情况。

LTL的时间定义是与路径相关的,每个时刻只有唯一的一个后继状态。

LTL可用于有重点的选择感兴趣的路径分析,并且LTL可以表达公平概念而CTL不能。

但是对于一些复杂属性,如每个计算总是可能返回到初始状态,LTL将无法描述,但是CTL可以。

CTL的时间定义是与状态相关的,每个状态都有多个可能的后继状态,从一个给定的状态量化分离出路径,能够断言行为的存在。

CTL可以用路径量词E,而LTL不可以;CTL公式使用路径量词A时与LTL公式表达内容可以相同。

LTL和CTL各有优势,Emerson等人提出扩展的时间逻辑CTL,提供了一种统一的框架,包含了LTL和CTL,但是可满足性判定代价较高。

2.3 模型检测工具
模型检测因其自动化、高效等特点得到广泛应用,各类模型检测工具也层出不穷。

以下是几类典型的模型检测工具。

SPIN 是1980年美国贝尔实验室开发的模型检测工具,主要关心系统进程间的交互问题。

它以promela为建模语言,以LTL为系统属性的逻辑描述语言,支持on-the-fly技术,可以根据用户的需要
生成系统的部分状态,而无需构建完整的状态迁移图。

SPIN验证器无法验证实时系统。

NuSMV是1987年由McMillan提出的开源的符号模型检测工具。

它可以工作于批处理模式,也可以工作于交互模式。

NuSMV采用扩展的SMV语言描述系统,并用CTL和LTL描述需求。

NuSMV结合了以可满足性(SAT)为基础的模型检测和以二叉决策树BDD(Binary Decision Diagram)为基础的模型检测。

它具有健壮性,以模块形式构建,不同模块间无依赖关系,代码易修改。

提供了同步模型和异步模型的分区方法,可以结合可达性分析,验证不变性质。

NuSMV非常灵活,使用者可以控制并且可以改变其系统模块的执行顺序,并且可以检查和修改系统的内部参数来调整验证过程。

普通的有限状态转换图无法模拟动态变化的物理环境,于是出现了由时间自动机与有着一系列变量的状态转换图结合而成的新模型。

UPPAAL就是基于这种模型的成熟的实时系统验证工具。

UPPAAL是1995年由Aallorg大学和Uppsala大学共同提出,具有可视化图形编辑器。

它基于时间自动机并对其进行扩展,引入了坚定位置、初始化程序、紧迫位置和紧迫管道等概念,有助于对真实系统进行建模,并能够有效减少系统内存占用。

它被用于检测不变量和可达性属性,尤其是检测时间自动机的控制节点某些组合以及变量约束是否满足初始配置。

CPN-Tool是由Aarhut大学开发的工具,用于有色petri网CPN(Colored Petri Net)的构造和分析。

有色petri网是用于对系统进行建模并验证其并发、通信和同步的语言,是一种描述离散事件的图形化建模语言。

它基于meta-language,并有强大的可扩展性。

它能够通过仿真分析系统的行为,通过模型检测验证系统属性。

对于状态爆炸问题,CPN-Tool有很多方法来减少状态数量,Christensen等人使用全局时钟和时间戳作为标
记,通过状态等价关系化简状态空间,将无限状态转化为有限状态。

2.4 状态爆炸问题
模型检测使用状态空间检索来进行系统验证。

状态空间检索的主要缺点就是状态空间随着进程数量增CTL使用路径量词(包括:A(All),E(Exist))和时态算子(包括F,G,X,U)对计算树属性进行形式化的描述,表示出系统的状态变化以及状态的分枝情况。

CTL和LTL都有强大的表达能力。

LTL的时间定义是与路径相关的,每个时刻只有唯一的一个后继状态。

LTL可用于有重点的选择感兴趣的路径分析,并且LTL可以表达公平概念而CTL 不能。

但是对于一些复杂属性,如每个计算总是可能返回到初始状态,LTL将无法描述,但是CTL可以。

CTL的时间定义是与状态相关的,每个状态都有多个可能的后继状态,从一个给定的状态量化分离出路径,能够断言行为的存在。

CTL可以用路径量词E,而LTL不可以;CTL公式使用路径量词A时与LTL公式表达内容可以相同。

LTL和CTL各有优势,Emerson等人提出扩展的时间逻辑CTL,提供了一种统一的框架,包含了LTL和CTL,但是可满足性判定代价较高。

3 模型检测的新进展
尽管模型检测验证能力在不断增强,可是对于复杂系统的验证仍然面临许多挑战。

验证混成系统时,由于其状态空间庞大,对于一些基础问题的验证,具有不可判定性。

验证系统的访问控制策略时,一条策略可能包含大量规则,如何对策略建模成为难
点。

验证多智能系统MAS(Multi-Agent System)时,由于MAS出现的目的就是用多个模块来解决单一模块无法解决的复杂问题,因此MAS的使用环境一般较为复杂,行为多样且具有随机性,验证难度较大。

本文针对上述难题,提出一些解决方法如下。

验证混合自动机。

Krishna等人用混合自动机模型化物联网系统,并且用LTL模型检测进行验证。

在使用LTL模型检测混合自动机时,由于LTL具有不可判定性,引入互模拟的概念,并表明一个有限互模拟的存在意味着使得LTL模型检测问题的可判定。

验证访问控制安全策略。

Maarabani等人将组织间模型O2O(Organization to Organization model)与LTL模型相结合,来验证互操作访问控制安全策略。

将每一个O2O策略分别用两个LTL公式表示,进行验证。

Hwang,Tao等人定义了一个新的工具ACPT(Access Control Policy Testing),将策略制定者的安全需求,转化成可执行的策略,并根据需要对访问控制策略进行动态和静态验证验证MAS。

Meski等人用基于SAT的限界模型检测和基于BDD的限界模型检测分别验证多智能系统MAS,并对两种验证方法的时间和内存耗费方面等进行比较。

由于目前对MAS的验证技术不支持主流验证工具,且输入形式单一,Hunter 等人提出扩展验证框架可以支持多种输入,并且提供翻译器将输入翻译为多个主流验证工具的输入语言,利用现有的验证工具对MAS进行验证。

由于MAS的使用环境相对复杂,其行为具有随机性,Song针对MAS行为具有随意性的难题,提出一种概率建模语言对MAS的进行描述,并提出相应的模型检测框架。

4 结束语
形式化验证方法已经被广泛的研究,各种描述语言与验证
工具层出不穷。

相对于演绎验证,模型检测因其全自动并可以提供有数学基础的反例等特点,适用范围更广,可用于验证软件、硬件和协议系统等多个领域。

利用模型检测时需控制好状态数量,进行存储压缩或者使用必要的路径压缩、状态缩减算法非常关键。

同时前期对于保护目标的选取也非常关键,选出关键资产来保护可以大大提高后期的描述与验证效率。

本文工作可为模型检测方法的研究提供借鉴和参考意义。

相关文档
最新文档