用于验证交互式组件的属性的方法、软件和处理单元技术

技术编号:14693639 阅读:102 留言:0更新日期:2017-02-23 16:34
本发明专利技术涉及具有递归树结构的子组件的交互式组件的属性的验证。所述验证包括:根据所述树来创建有向图,所述有向图包括用于所述树的子关系的弧,以及用于在所述组件之间耦合时创建耦合的弧。所述验证包括:创建表示所述属性的第二图,以及验证所述第二图是否展现在所述第一有向图内。

【技术实现步骤摘要】

本专利技术涉及交互式软件的属性(property)的验证。更具体地说,本专利技术涉及对按照交互式软件内的交互式组件(component)的层级结构组织的交互式组件的属性的制定和验证。
技术介绍
验证和确认是工程中的重要过程。确认包括使用可用的方法来校验系统适合于其目的。对系统进行验证包括:定义所述系统必须在任何时候都具有的属性,以及使用可用的方法来校验所述属性在系统中的确得到保证。软件的验证需要特定的方法。软件组件是可独立开发和组装以产生软件产品的指令的集合。软件属性是软件组件特有的特质或特性(attribute)。软件的验证可作为包括校验给定属性或属性的集合在给定软件产品或软件组件上是真还是伪的过程来执行。如果组件属性由软件组件实现,则组件属性为真,或者如果组件属性没有实现,则为伪。测试、审查和分析是主要确立的软件验证过程。测试包括向受控环境提交系统(软件产品或软件组件),观察其行为并将其与参照物(例如规范)相比较。试验是一种简单的方法,易于使用,并且非常可信的,但如果受控环境的建立很复杂,则测试可能是非常昂贵的;当对软件与用户或环境的交互进行测试时,尤其如此。审查包括向一个或几个审查人员提交系统以便检查、评论或批准。审查简单且灵活,但其成本随所需的可靠性水平急剧增加,并且其效率随软件的复杂度而降低,因为当软件的结构是难以阅读时,发现错误或校验属性是困难的。分析包括:构建系统的模型,验证并确认该模型。因此,如果某个模型持有某种属性,并且如果系统是根据所述模型构建的,那么所述最终系统持有所述属性。存在多种建模技术和模型分析方法。例如,如在Baier等人的Principlesofmodel-checking,MITPress,ISBN026202649X,9780262026499文献中所描述的,可以构建状态转换模型,并且从穷举模拟产生的图可用于支持如LTL或CTL的与时间相关的属性的验证。如Abrial,TheB-Book-AssigningProgramstoMeanings,2005所描述的,另一种方法包括:通过应用推理规则对模型进行数学证明,目的是校验在向模型添加更多细节时属性被保留。或者如Proc.ACMPOPL’77,ACM(1977),pp.238–252中的Cousot等的Abstractinterpretation:Aunifiedlatticemodelforstaticanalysisofprogramsbyconstructionorapproximationoffixpoints所描述的,可以从程序的源代码提取抽象语义,并用于验证属性。就覆盖度和可靠性来说,分析是一种非常有效的方法,但其复杂性要求专家的干预。此外,当对全软件产品进行分析时,只有有限的属性的集合的可用于验证。例如,有可能的是确保某些类型的软件故障将是不可能的,但不能确保软件正确地响应用户的操作。为新属性定义分析算法通常超出了本领域技术人员的能力,而程序员必须使其自身满足于可校验属性的可用列表。更一般地,当用于创建软件的语言和用于制定属性的语言之间的语义距离增加时,验证方法的效率和成本降低。具体而言,当所述软件被表示为小的低级别组件的非结构化集合时,难以验证大型软件的高层属性。例如,如果软件产品编程为运算指令的集合,并且所述软件产品应该执行依赖于外部条件和过去历史的复杂运算,那么构建用于测试的受控环境将是非常昂贵的,审查将是困难的,并且分析对于如“仅当该软件接收该输入序列时,显示的该部分才将发生变化”的属性来说将是不可用的。软件架构是用于将软件组件组织成更小的可重用的组件的规则的集合。软件架构涉及软件执行和数据二者是如何组织的。软件架构可由编程约定或编程语言支持。例如,函数式语言帮助将软件组织为名为函数的运算单元。类似地,面向对象的语言帮助将软件组织为既是数据单元又是运算单元的组件。由编程语言实施的软件架构可用于通过使得可以制定和校验个体组件的属性,从而减少属性与组件之间的距离,来改进验证方法的有效性。本领域技术人员可容易地定义个体组件的属性,并创建名为单元测试的小型受控环境来在单元测试中使用与组件中相同类型的编程指令测试所述属性。本领域技术人员还可以提交组件用于审查,并期望审查人员能够校验使用用于对所述组件进行编程的相同概念表达的属性。此外,编译器的开发人员可使用他们的关于编程语言是如何组织组件的知识来构建所述组件的模型并校验其属性。例如,编译器可以校验函数是否具有未使用的自变量,或者函数的控制流是否停在非预期的位置。当在重用任意组件来创建更大的组件时可使用用于创建所述组件的相同的规则的情况下,软件体系结构是递归的。递归的架构有助于管理软件复杂度,因为当将组件与其它组件进行组装时,程序员可选择忽视组件的内部复杂度,或者替代地,深入细节而不必学习新的架构。递归的架构使得本领域技术人员有可能表达可使用分析技术来校验的组件属性。开发人员或说明人员可使用某个组件及其直接子组件的特征来表达所述组件的属性,而忽略进一步的细节。如果需要,可使用相同的技术来为低级别组件定义低级别属性。在Computer(IEEE),25,10,October1992,pp.40–51中,Meyer,B.的“ApplyingDesignbyContract”公开了一种名为面向契约的编程的方法,其依赖于以面向对象的语言对每个类的对象的名为不变量(invariant)的属性的定义。不变量很容易定义,因为它们接近组件并且可以相同语言来书写。然后编程语言编译器或运行时间执行系统校验不变量。类似地,Abrial(参见上文的参考文献)公开了一种名为基于模型完善原则的B方法的方法:更多的信息逐步添加到具有某些属性的有效性的保持的模型。这些方法允许程序员甚至在开始对软件组件本身进行编程之前,在其程序的所有级别的细节处定义属性。交互式软件指的是:除了执行运算以外,从人、从物理环境或者从其它机器接收输入的软件。几乎所有的现代软件都是交互式软件。例如,文本编辑器、视频游戏、互联网浏览器、智能电话应用以及飞机座舱显示器的软件都是交互式软件。计算机操作系统、所连接的对象的固件以及网络服务器也是交互式软件。如今,新的人体输入和输出技术、智能电话、平板电脑、网络连接和所连接的对象的散布广泛增加了用于设计交互式软件的可能组合的数量。例如,在平板计算机上,输入现在可使用触摸感应表面、如空中指针这样的连接的对象以及如回转仪、加速计或温度计这样的传感器来输入。交互式软件可与面向计算的软件进行对比。面向计算的软件具有开始和结束,其目标在于从初始的一组数据计算出结果。相反,交互式软件等待输入并根据接收到的输入来触发反应行为或计算。交互式软件的期望的属性是传统软件的属性,外加非常大量的名为面向交互的属性的属性。面向交互的属性与软件如何响应其输入和用户如何获得其输出、以及软件如何帮助用户执行给定任务有关。仅有几个面向交互的属性适用于所有应用,而大多数必须针对当前的应用来定义。用于验证传统软件的方法对于校验面向交互的属性来说要么过于昂贵要么不合适。在某种程度上,一些传统方法能有效地帮助开发人员防止应用崩溃。然而,属性验证的传统方法不适合用来验证交互式属性,例如验证无论用户的输入和应本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201610444712.html" title="用于验证交互式组件的属性的方法、软件和处理单元原文来自X技术">用于验证交互式组件的属性的方法、软件和处理单元</a>

【技术保护点】
一种用于验证交互式组件的属性的方法,所述交互式组件被表示为子组件树,所述子组件树包括定义第一子组件与第二子组件之间的耦合的控制结构子组件,所述第二子组件是在所述第一子组件激活时被激活的,所述方法包括:‑创建表示所述交互式组件的第一有向图,所述第一有向图的节点包括所述第一子组件和所述第二子组件;‑获得表示所述属性的第二图;‑验证所述第二图在所述第一有向图中的存在或缺失之一;其中,创建所述有向图包括:‑创建所述交互式组件与所述组件的子组件之间的第一弧;‑创建所述第一子组件与所述第二子组件之间的第二弧。

【技术特征摘要】
2015.06.19 EP 15305950.61.一种用于验证交互式组件的属性的方法,所述交互式组件被表示为子组件树,所述子组件树包括定义第一子组件与第二子组件之间的耦合的控制结构子组件,所述第二子组件是在所述第一子组件激活时被激活的,所述方法包括:-创建表示所述交互式组件的第一有向图,所述第一有向图的节点包括所述第一子组件和所述第二子组件;-获得表示所述属性的第二图;-验证所述第二图在所述第一有向图中的存在或缺失之一;其中,创建所述有向图包括:-创建所述交互式组件与所述组件的子组件之间的第一弧;-创建所述第一子组件与所述第二子组件之间的第二弧。2.根据权利要求1所述的方法,其中,获得表示所述属性的第二图包括在库中检索所述第二图。3.根据权利要求1所述的方法,其中,获得表示所述属性的第二图包括在库中创建所述第二图。4.根据权利要求1所述的方法,其中,验证所述第二图的存在或缺失之一还包括:验证所述第二图的节点的特性的值。5.根据权利要求4所述的方法,还包括:验证所述特性的值是否在所述第二弧存在时遭到改变。6.根据权利要求1所述的方法,其中,显示所述交互式组件包括:显示子组件的子集。7.根据权利要求6所述的方法,其中,显示的顺序是由所述树的所述结构确定的。8.根据权利要求7所述的方法,其中,所述显示的顺序是深度优先搜索算法的顺序。9.根据权利要求1所述的方法,其中,所述属性是关于所述交互式组件的结构的。10.根据权利要求1所述的方法,其中,所述属性是关于所述交互式组件的行为的。11.根据权利要求1至10中的任一项权利要求所述的方法,所述方法还包括:将...

【专利技术属性】
技术研发人员:S·查蒂M·马尼奥德特D·普兰
申请(专利权)人:国立民用航空学院
类型:发明
国别省市:法国;FR

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1