当前位置: 首页 > 专利查询>上海大学专利>正文

一种基于模型的侵入式灰盒组装验证方法技术

技术编号:12017627 阅读:74 留言:0更新日期:2015-09-09 13:52
本发明专利技术涉及一种基于模型的侵入式灰盒组装验证方法,属于软件工程技术领域,包括步骤:1)流程设计:根据待开发软件的业务逻辑,设计由多个抽象构件构成的工作流模型;2)实例化:根据工作流中各抽象构件的功能要求和接口信息在实例构件库中检索,并确认是否存在匹配的单一实例构件,若为是,则将该实例构件插入至抽象构件所在位置,若为否,则选择多个实例构件组合为复合构件并侵入至抽象构件所在位置;3)性质验证:转化实例化所产生的配置文件,得到适合于模型检验器NuSMV执行的Kripke结构脚本,并基于该脚本验证构件组装过程的正确性和安全性。与现有技术相比,本发明专利技术具有提高基于构件的软件开发效率等优点。

【技术实现步骤摘要】

本专利技术涉及一种软件工程技术,尤其是涉及一种基于模型的侵入式灰盒组装验证方法
技术介绍
基于构件的软件开发(Component-Based Software Development,CBSD)是软件工业化的大趋势。计算机软件构架由手工代码开发模式转变为重用可独立运行的、被封装的构件模式,它具有更高的灵活性。由于复用算法和软件功能,基于构件的软件开发大大缩短了软件系统的开发进度,尤其是在经费有限的情况下该方法是实现软件项目开发的最佳选择。构件是将具有特定功能的模块或代码按照一定的格式进行封装。构件组装则是研究如何组装构件的机制,以需求模型为基础,查找合适的构件进行集成以快速开发系统软件为目的。目前,构件组装技术主要分为黑盒组装方法,白盒组装方法和灰盒组装三种方法。但各自存在优缺点:黑盒组装方法不需要对构件的实现细节有任何了解,也不需要对构件进行配置或修改,但“以不变的构件组装成万变的应用”的理念过于现实化,实际应用难度大。黑盒组装对功能进行抽象描述,使用户无法了解构件是如何运行的,缺乏对黑盒构件的可信性。白盒组装方法则要求将构件的所有实现细节都展示出来,让复用者理解后再进行组装,并可按应用需求对构件进行二次修改,但该方法需要用户对实现细节和具体需求了如指掌,在程序可读性和可维护性方面存在应用的局限性。而灰盒组装方法介于黑盒和白盒之间,其通过混合使用组装机制来架构系统软件实现用户组装需求,既灵活又高效。因此,灰盒组装方法是目前构件组装技术的研究重点和难点。在灰盒组装过程中,即要体现构件的部分实现细节,又要展示构件的部分模块功能。实际上,构件组装的操作更加复杂,而且组装的正确性和安全性很难保证。涉及如下两个主要问题:1)如何描述和表达灰盒组装的组装流程?包括展示部分实现细节和部分功能模块。2)如何有效地对灰盒组装进行验证?包括构件组装的正确性和安全性。在传统的组装场景上,每个组装点的功能需求以push推的形式向构件库发出构件检索请求,查询是否存在合适的构件,同时以pull拉的形式将目标实例构件插入到组装点进行集成。这种方式目标明确,组合速度块。但在实际情况下,存在如下问题:1)由于缺少构件规格说明语言,很难正确地、形式化地描述push点的构件需求;2)由于构件库中的构件数量有限,很难准确地检索出满足请求的单个构件实体。因此需要一套系统的基于侵入式组装方式,允许构件以主动的方式进行组合以满足目标组装点的功能需求。无论是原子构件还是复合构件,其通过一种侵入(intrusion)的方式强行插入到组装点。虽然,侵入式组装可以弥补传统构件组装的不足,但同样存在一些问题:1)从实现细节的源代码级来看,侵入式组装将增加一些无用代码或危险代码;2)从组装高层的工作流来看,侵入式组装将附加一些无用的接口或威胁接口。针对这些组装问题,一方面需要保证构件交互的正确性,即对局部而言,交互接口中的参数,参数顺序等是兼容的;另一方面需要保证组合的构件是安全性的,即对整体而言,不存在隐藏的威胁,不存在违反既定的需求。而模型检验作为测试的辅助手段,是一种自动化的、基于有限状态模型的性质验证方法,它通过显式的状态搜索或隐式的不动点计算来检测系统模型是否满足预期性质,当模型不满足性质时输出反例信息,即模型中违背性质的状态迹。基于此,将模型检验方法应用检验基于侵入式的灰盒组装方法组装的软件,可以有效地验证构件组装过程的正确性和安全性,保证基于构件的软件系统的软件质量。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种基于模型的侵入式灰盒组装验证方法。本专利技术的目的可以通过以下技术方案来实现:一种基于模型的侵入式灰盒组装验证方法,包括步骤:1)流程设计:根据待开发软件的业务逻辑,设计由多个抽象构件构成的工作流模型;2)实例化:根据工作流中各抽象构件的功能要求和接口信息在实例构件库中检索,并确认是否存在匹配的单一实例构件,若为是,则将该实例构件插入至抽象构件所在位置,若为否,则选择多个实例构件组合为复合构件并侵入至抽象构件所在位置;3)性质验证:转化实例化所产生的配置文件,得到适合于模型检验器NuSMV执行的Kripke结构脚本,并基于该脚本验证构件组装过程的正确性和安全性。所述实例构件库的构建过程包括步骤:A1:将Java程序进行封装使其构件化,添加组装点,并采用反射技术解析出程序功能的函数方法,以及组装点的接口信息;A2:根据反射出来的接口信息,确认接口以及接口参数,包括参数个数,参数名称,参数类型和参数顺序。A3:将解析出的函数方法进行绑定,产生调用关系;A4:将构件化后的Java程序以XML形式保存,输出实例构件的封装文件;A5:将实例构件保存到实例构件库中,建立实例构件的索引信息,同时在封装文件中标识其相关的应用领域,以提供构件组装时使用。所述步骤1)具体包括步骤:11)新建组装界面,根据待开发软件的业务逻辑绘制工作流;12)设计工作流上抽象构件,并描述抽象构件的接口信息和功能要求。13)在工作流上,标识抽象构件的构件状态,包括初始点,中间点,以及终止点。所述步骤2)中将单一实例构件插入至抽象构件所在位置的过程具体为:根据工作流调用关系,绑定该实例构件与相邻抽象构件实例化得到的实例构件间的接口参数,包括参数名称,参数类型,以及参数顺序。所述步骤2)中选择多个实例构件组合为复合构件并侵入至抽象构件所在位置的过程中:以领域优先原则,采用启发式随机算法给出满足当前抽象构件的实例构件集合,使得多个实例构件在组合后,既满足接口信息,又满足领域应用的要求;或以功能优先原则,采用相似度计算方法给出多个跨领域的实例构件集合,使得多个实例构件在组合后,既满足接口信息,又满足领域应用的要求。所述步骤3)具体包括:31)根据实例化配置信息,输出相应的配置文件;32)转化配置文件,产生可用于模型检验器NuSMV执行的Kripke结构脚本;33)检验组装构件是否满足正确性和安全性;34)通过执行模型检验器NuSMV对结构脚本执行检验,根据检验结果判断组装是否满足正确性和安全性。所述步骤31)具体包括步骤:311)新建一个配置文件,在其中写入配置信息的版本号,并描述组装构件的名称和功能;312)根据配置信息的接口定义部分,解析接口信息,并将解析得到的接口信息写入该组装构件的接口定义部分;<本文档来自技高网
...
一种基于模型的侵入式灰盒组装验证方法

【技术保护点】
一种基于模型的侵入式灰盒组装验证方法,其特征在于,包括步骤:1)流程设计:根据待开发软件的业务逻辑,设计由多个抽象构件构成的工作流模型;2)实例化:根据工作流中各抽象构件的功能要求和接口信息在实例构件库中检索,并确认是否存在匹配的单一实例构件,若为是,则将该实例构件插入至抽象构件所在位置,若为否,则选择多个实例构件组合为复合构件并侵入至抽象构件所在位置;3)性质验证:转化实例化所产生的配置文件,得到适合于模型检验器NuSMV执行的Kripke结构脚本,并基于该脚本验证构件组装过程的正确性和安全性。

【技术特征摘要】
1.一种基于模型的侵入式灰盒组装验证方法,其特征在于,包括步骤:
1)流程设计:根据待开发软件的业务逻辑,设计由多个抽象构件构成的工作
流模型;
2)实例化:根据工作流中各抽象构件的功能要求和接口信息在实例构件库中
检索,并确认是否存在匹配的单一实例构件,若为是,则将该实例构件插入至抽象
构件所在位置,若为否,则选择多个实例构件组合为复合构件并侵入至抽象构件所
在位置;
3)性质验证:转化实例化所产生的配置文件,得到适合于模型检验器NuSMV
执行的Kripke结构脚本,并基于该脚本验证构件组装过程的正确性和安全性。
2.根据权利要求1所述的一种基于模型的侵入式灰盒组装验证方法,其特征
在于,所述实例构件库的构建过程包括步骤:
A1:将Java程序进行封装使其构件化,添加组装点,并采用反射技术解析出
程序功能的函数方法,以及组装点的接口信息;
A2:根据反射出来的接口信息,确认接口以及接口参数,包括参数个数,参
数名称,参数类型和参数顺序。
A3:将解析出的函数方法进行绑定,产生调用关系;
A4:将构件化后的Java程序以XML形式保存,输出实例构件的封装文件;
A5:将实例构件保存到实例构件库中,建立实例构件的索引信息,同时在封
装文件中标识其相关的应用领域,以提供构件组装时使用。
3.根据权利要求1所述的一种基于模型的侵入式灰盒组装验证方法,其特征
在于,所述步骤1)具体包括步骤:
11)新建组装界面,根据待开发软件的业务逻辑绘制工作流;
12)设计工作流上抽象构件,并描述抽象构件的接口信息和功能要求。
13)在工作流上,标识抽象构件的构件状态,包括初始点,中间点,以及终止
点。
4.根据权利要求1所述的一种基于模型的侵入式灰盒组装验证方法,其特征
在于,所述步骤2)中将单一实例构件插入至抽象构件所在位置的过程具体为:根

\t据工作流调用关系,绑定该实例构件与相邻抽象构件实例化得到的实例构件间的接
口参数,包括参数名称,参数类型,以及参数顺序。
5.根据权利要求1所述的一种基于模型的侵入式灰盒组装验证方法,其特征
在于,所述步骤2)中选择多个实例构件组合为复合构件并侵入至抽象构件所在位
置的过程中:
以领域优先原则,采用启发式随机算法给出满足当前抽象构件的实例构件集
合,使得多个实例构件在组合后,既满足接口信息,又满足领域应用的要求;或
以功能优先原则,采用相似度计算方法给出多个跨领域的实例构件集合,使得
多个实例构件在组合后,既满足接口信息,又满足领域应...

【专利技术属性】
技术研发人员:高洪皓陈颖田野曾红卫缪淮扣
申请(专利权)人:上海大学
类型:发明
国别省市:上海;31

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

1