论文部分内容阅读
伴随着近年来计算机硬件设备性能的迅速提升以及嵌入式系统的广泛应用,嵌入式软件的复杂度和规模也不断膨胀,软件的可靠性占据了整个系统的统治性地位。因此,嵌入式软件的设计方法和可靠性保障已经成为近几年软件工程师和计算机科学研究者所共同关心的热点问题。传统的嵌入式软件设计方法已经难以适应现代高复杂性和大规模的嵌入式软件面临的高可靠性、资源约束、面向特定领域等需求,必须借鉴和引入软件工程中构建复杂软件系统的理论和方法。基于构件化的软件设计方法作为软件工程主流之一,已逐渐被应用到复杂嵌入式软件设计中来,大大提高了软件开发效率和软件功能可重用性。嵌入式系统通常是由面向特定领域的具有各自独立的计算子模块组成,具有较高的构件化特征,通过构件与构件之间的交互运行来完成嵌入式软件的特定功能。针对产业界广为使用的构件化设计模型是UML顺序图,以此来描述系统运行中各个构件交互的场景,作为一种非形式化建模方法具有与生俱来的缺陷即难以进行自动化分析和验证问题。本论文深入地研究了嵌入式软件构件交互协议建模的需求,对复杂嵌入式软件系统提出了以数据库为底层支撑的基于一阶逻辑和承诺理论的构件交互协议模型,并给出了与之对应的基于模型检查的数据流敏感的构件交互协议和带资源约束目标的构件交互协议的分析与验证方法。本论文的主要工作和贡献如下:(1)针对构件化嵌入式软件系统,提出了以数据库为底层支撑的基本构件交互协议模型,除了描述构件动作的输入/输出消息签名外,利用一阶逻辑规则给出构件动作的输入数据约束规则、控制流规则、输出规则和状态转换规则,使得构件之间的交互运行得以全面的形式化描述,使得构件交互协议的自动化分析和验证成为可能。(2)为赋予嵌入式软件的构件交互协议以面向特定领域的业务语义,本论文在上述基本构件交互协议模型的基础上进行语义扩展,并给出了引入承诺理论的业务构件协议模型。该模型利用面向特定领域的业务词汇对嵌入式软件构件动作的业务效果进行标注,除了包括直接效果还允许标注以间接的承诺效果,自然地建模了嵌入式软件构件与底层支撑硬件之间的契约行为。(3)为能形式化描述和分析验证嵌入式软件构件交互运行的动态行为,本论文研究了基本构件交互协议模型的线性一阶逻辑(First-Order Linear Temporal Logic,FO-LTL)性质验证问题。FO-LTL公式可表达基本构件交互协议的交互过程的控制流和数据流的复杂性质。论文证明了在输入有界条件下,基本构件交互协议的LTL-FO属性验证问题是可判定的,并给出了针对LTL-FO属性的判定算法,实现了对应的模型检查器MC4CIP,实验表明MC4CIP可以在各类场景下进行有效的验证。(4)针对嵌入式软件构件交互协议的性质验证问题,论文在FO-LTL的基础上提出了带有承诺理论扩展的线性一阶逻辑(First-Order Linear Temporal Logic with Commitment Theory,FOCT-LTL),承诺表达式可以作为原子出现在性质公式中。通过将业务构件交互协议的FOCT-LTL属性验证问题规约到基本构件交互协议的FO-LTL属性验证问题,证明了在输入有界约束条件下业务构件交互协议的FOCT-LTL的验证问题也是可判定的,可规约为基本构件交互协议的FO-LTL属性验证算法求解。(5)论文研究了带资源约束的嵌入式软件业务构件交互协议的分析和验证问题。论文提出基于FOCT-LTL公式的资源约束条件下的业务目标表达方法,针对带有资源约束和业务语义的验证目标,提出一个以模型检查技术为基础的三阶段规划验证算法。首先采用有界模型检查技术从控制流角度迅速筛选掉不可能满足业务需求的构件交互协议。其次利用第一阶段得到的规划解规约业务构件交互协议,并利用业务构件交互协议的FOCT-LTL属性验证算法求出满足系统功能需求的可行解。最后通过约束求解进一步的验证嵌入式软件需求资源约束目标的可满足性。论文给出了资源约束下的业务构件交互协议验证框架的实现方案,实验结果表明该三阶段算法能够适应带有资源约束的嵌入式软件的构件交互场景中的资源约束目标验证。