[发明专利]一种基于性质规约模式的软件运行时性质监测方法有效
申请号: | 201010114723.6 | 申请日: | 2010-02-26 |
公开(公告)号: | CN101794224A | 公开(公告)日: | 2010-08-04 |
发明(设计)人: | 毛晓光;吴海亮;万小敏;代子营;王瑞;王承松;雷晏;王燕妮 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 国防科技大学专利服务中心 43202 | 代理人: | 郭敏 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 性质 规约 模式 软件 运行 监测 方法 | ||
技术领域
本发明涉及软件监测领域中的一种软件运行时性质监测方法,尤其指一种基于性质规约模式监测软件运行时性质违背的方法。
背景技术
随着软件规模的扩大和复杂度的提高,软件运行表现出动态性、不可预测性、潜在不安全性等诸多特性。软件的质量问题越来越突出,给人们的工作生活带来许多不利影响,甚至给人类生命、财产和环境造成灾难性的损失。为应对这些挑战,人们希望尽可能了解软件系统运行过程中的内部状况。软件运行时性质监测是指在软件系统运行过程中,通过捕获其内部状态、行为交互等信息,来监测和验证软件的运行状态与行为是否符合预期性质约束的方法。这里的性质约束指为了分析软件系统的行为、定位故障、优化软件执行的关键路径、进行可信分析、保证正确执行而附加的限制条件,也称监测需求。软件运行时性质监测在软件开发、维护以及可信分析等方面都很有用途。
软件的监测需求通常是一系列不准确的非形式化描述或高度抽象的形式化描述(如线性时序逻辑、分支时序逻辑等)。实施监测时,需要将监测需求准确映射为对软件代码中相关变量、方法等在运行时的信息采集需求并进行性质验证。早期的软件监测方法为:在软件开发阶段,将软件的监测需求作为非功能需求的一部分与软件的其他需求(如功能需求、性能需求等)一起进行分析、设计和编码,生成具有监测功能的软件。这种监测方法使得最终生成的软件系统中监测代码和其它功能代码相互交织,产生代码纠缠和功能分散的问题。这种方法只适于用在开发阶段就考虑监测需求且监测需求明确、固定的软件,不能对大量已经在使用的遗产软件进行监测。为此,提出了基于代码插装的软件监测方法。该方法主要包括以下几步:
1.分析监测需求和待监测软件,将监测需求分解为面向待监测软件实现层的一系列监测点和各监测点的信息采集需求。监测点也称插装点,即为需要插入插装代码的地方。插装代码用于采集需要的信息。
2.利用代码插装工具(如,Jtrek、BCEL、ASM等)提供的接口规范,将各监测点的信息采集需求编码为插装代码并插装到待监测软件中,生成具有监测功能的新 软件。
3.运行新软件,输出需要的消息(即监测信息),供监测人员分析,查找故障。
基于代码插装的软件监测方法以扩充的方式在待监测软件上迭加插装代码,效果上能达到对简单监测需求变更的响应。然而基于代码插装的软件监测方法没有改变监测逻辑与软件原有业务逻辑混杂的状态,需要开发人员找到所有的插装点,并对每一个插装点的信息采集需求和原有业务逻辑进行分析编写插装代码,极容易出错。一方面增加了软件的维护复杂性,另一方面使得监测的后续工作——故障分析和缺陷定位变得难以继续。
然而,随着软件开发周期和版本更新节奏的加快,软件适应可变和演化的需求日益增多,对软件的不同关注点进行独立建模、封装和维护的开发要求越来越强。软件监测需求就是一个典型的横切关注点。随着近几年面向方面编程(AOP:Aspect-OrientedProgramming)技术的快速发展,由于其封装横切关注点的特性,AOP技术也逐渐进入软件运行时监测领域,为软件运行时监测提供了新的思路和途径。基于AOP技术对软件进行监测主要分为以下几步:
1.仔细分析待监测软件和监测需求,将监测需求分解为面向待监测软件实现层的一系列监测点和各监测点的信息采集需求。
2.按照AOP编程规范,将各监测点和各监测点的信息采集需求编码成监测代码,保存在方面文件中。监测点经过分析总结后被编码为方面程序中的切入点(pointcut)。切入点用来指示待监测软件中插装点。信息采集需求被编码为各切入点的通知(advice)代表各插装点处的插装代码。通知可以在软件运行时采集需要的信息。切入点和通知被保存在独立的文件中,称为方面文件。
3.利用代码编织工具(如,AJDT、ACDT等)将方面文件和待测软件进行编织,生成具有监测功能的新软件。
4.运行新软件,输出需要的消息(即监测信息),供监测人员分析,查找故障。
基于AOP技术的软件监测方法将监测需求从其它软件需求中独立出来,实现了监测功能的独立建模和封装。但由于AOP技术从编程切入,直接面向待监测软件实现层的离散化的信息采集需求,降低了监测的抽象层次,模糊了监测需求的物理含义,使得监测实施与软件工程中的监测需求可跟踪链脱节,从而给故障发现和故障推断带来困难。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010114723.6/2.html,转载请声明来源钻瓜专利网。