模型及自动代码生成

2024-08-27

模型及自动代码生成(精选八篇)

模型及自动代码生成 篇1

关键词:车身控制器,模型及自动代码生成

1 面临的挑战

车身控制器通常具有以下特性, 诸如中控门锁控制, 遥控无钥匙进入, 轮胎压力监测, 防盗报警, 内部/外部灯光控制, 前/后的雨刮和洗涤控制, 电池低电压保护, 低功耗模式功能, 后除霜及整车网络和网关功能。但不同的汽车主机厂, 不同的汽车平台要求截然不同。我们开发汽车产品软件, 必须要确保软件质量。但是过去工程师们的工作主要依赖于消耗大量的时间和对手写代码的完善来保证质量。由于项目很多, 每个工程师都不得不同时开发几个项目, 作为项目负责人, 我决定寻找新的开发手段。

2 解决方案

2.1 软件架构分析

我们设计的车身控制器是面向全球汽车厂家, 所以我们的软件架构要符合AUTOSAR标准。AUTOSAR标准 (汽车开放系统架构) 是一个开放和标准化的汽车软件架构, 是由汽车制造商, 供应商和工具开发商共同开发的。根据对不同层的标准化接口, 将实现以下技术目标:模块化, 可扩展性, 可移植性和功能重用。在我们的设计中, 软件在框架上总体可分为3层。最上层是应用层, 然后是运行时环境接口 (RTE) 层, 接下来是软件基本层。一般情况下, 软件的底层变动不是很大, 不同的客户功能需求都体现在应用层上。如果用手写代码, 每次客户更改, 都需要更改软件设计, 代码, 然后再验证, 这样既浪费人力物力, 又增加了潜在错误的机会。基于模型的设计由于具有可重复的快速设计, 通过缩短设计时间而节约了成本, 最后的设计更接近于预先设计所期望的系统性能, 功能, 特点以及开发进度。这就使我想到把模型及代码自动生成技术应用到产品的应用层上。

2.2 基于模型的软件开发工具和流程

在产品软件开发过程中采用建模和自动代码生成技术的成功与否依赖于开发流程。这包括需求管理, 建模和仿真, 自动编码, 验证等流程规范。这一过程的效率取决于选择和使用合适的工具链。

2.3 基于模型设计的软件开发步骤

2.3.1 模型设计

模型作为初步设计, 基本包括需求分析, 决定输入和输出和实现算法。在模型设计过程中, 要遵循两点原则:沟通明确和设计模块化。

2.3.1.1 沟通明确

基于模型的设计, 它的前提是一个可执行文件, 以图形化模型作为设计资料库。在设计和实施中使用图形图表而不是文本代码, 从而提高了团队及内部之间的沟通。

2.3.1.2 设计模块化

软件开发者知道, 通过建立明确和简单的模块可以减少软件的复杂度。最新的软件开发技术的设计告诉我们, 在支持所需的功能的同时, 设计应尽可能简单。标准的软件度量, 如“圈复杂度”就是基路径, 通过软件模块设计以减少路径数量。

2.3.2 自动代码生成

一旦模型建立和经过完整测试后, 准确的实时的嵌入式代码软件就可自动生成。与传统的手工编码相比既节省了时间又降低了成本。嵌入式代码自动生成是从根本上改变了我们工程师的工作。我们不再手写数千行的代码, 而是自动生成。

2.3.3 测试与验证

检验和验证技术适用于整个开发过程, 依据产品需求来创建设计和测试用例。通过验证模型测试结果, 以确定产品需求被正确地实现。基于模型的设计在软件开发周期的早期进行验证, 暴露设计缺陷, 需求的不充分, 测试的不完整和不必要的设计构造, 以减少后期错误检测的风险。图1显示了如何一起使用测试案例和设计模型, 以便在开发过程中不断进行验证。

3 结束语

本文以车身控制产品为例, 详细地阐述了基于模型设计的软件开发流程, 包括模型建立, 代码自动生成和测试等, 从中我们可以看到基于模型设计使用的开发工具及四种关键技术。基于模型的设计, 可在开发阶段早期对模型进行校验, 有需求问题及早发现, 避免了常规开发到代码集成测试才能发现错误。同时采用自动代码生成, 避免了由于手写代码所引入编程错误的风险, 从而最终提高了产品质量和降低了开发成本。

参考文献

[1]张晓华.系统建模与仿真[M].北京:清华大学出版社, 2006.

[2]张亮.MATLAB7.x系统建模与仿真[M].北京:人民邮电出版社, 2006.

由TIN模型自动生成等高线算法 篇2

简要介绍TIN模型及其数据结构,主要从计算机地图制图的角度,研究基于TIN模型(不规则三角网)的等高线的自动绘制问题.同时,用VB设计程序,通过实验证明其正确性和有效性.

作 者:任丽艳 周秋生 成枢 张周平REN Li-yan ZHOU Qiu-sheng CHENG Shu ZHANG Zhou-ping 作者单位:任丽艳,成枢,REN Li-yan,CHENG Shu(山东科技大学,地球信息科学与工程学院,山东,青岛,266510)

周秋生,ZHOU Qiu-sheng(黑龙江工程学院测绘工程系,黑龙江,哈尔滨,150050)

张周平,ZHANG Zhou-ping(西安市勘察测绘院,陕西,西安,710054)

模型及自动代码生成 篇3

多Agent系统经常被描述为扩展了的面向对象系统,开发者为了简化开发采用了面向对象的工具来描述多Agent系统的特性,相应的基于Agent的模型语言—AUML就开发出来了。AUML就是B. Bauer 等人为适应多Agent 系统的建模需要而提出的扩展UML语言。B. Bauer 等人最初只是对UML中的顺序进行了扩展, 用来建模多Agent 系统。像UML一样,AUML的目的也是为开发者提供分析、设计、实施多Agent系统的方法。AUML还是尽量多的重用UML,在扩充UML的基础上来开发多Agent系统。其中的一个扩充就是AUML顺序图的扩充使顺序图有了并发机制。

至今,AUML是建模多Agent 系统最有名的可视化模型语言。因为面向多Agent的建模方法刚刚开始,所以AUML作为新的一种建模语言存在着不足。AUML主要存在的问题还有:多Agent系统非常复杂,开发它们存在一定的困难。一个最大的困难是怎么样能够有效地将交互协议的设计和实施有效地结合起来。目前只是在分析和设计阶段使用AUML来建立模型,缺少对于模型地实施和验证。Bauer 在2000年首次提出使用AUML为交互图建立模型,从2000年至今AUML有了很大的发展。但是目前AUML还是主要在于Agent的交互图和类图的定义上。目前使用AUML的方法大都在分析和设计阶段的建模方法上,缺乏对AUML的实施方法。为了在设计阶段更好、更全面地利用AUML建模多Agent系统,同时,在实施时能够将AUML模型转换为基于Agent的应用程序,并且将多Agent的分析、设计和实施集成在一起,形成一套完整的开发方法学,并提供完整易用的工具支持。本文设计了一套基于Eclipse平台的Agent集成的插件来支持本文的工程化开发。为用户提供友好的开发和配置工具。力图为面向多Agent系统快速开发提供一整套的从多Agent的分析、设计到实现的开发环境。文中设计了一个基于Eclipse环境的插件,此插件能将基于AUML可视化模型自动转换为运行于多Agent平台的Agent源程序。实现了从多Agent系统可视化建模分析到实现的有效结合。

2 基于Eclipse环境的工作插件实现

本文开发了一个基于Eclipse的图形用户插件,能集分析和设计多Agent系统与实施多Agent系统于一体。

本节的目的是介绍这种基于Eclipse开发环境的集成开发环境工作插件的开发流程。在这个集成开发环境插件开发过程中包括了Eclipse平台,EMF(Eclipse Modeling Framework),GEF(Graphical Editing Framework)以及其他辅助工具。从而为用户提供一个友好的集成开发环境,通过这个插件用户就可以很方便地集分析、设计和实施多Agent系统,从而实现对多Agent系统模型的直接验证和实施。

使用提供的插件遵循一定的开发流程。大概经历了下面几个步骤:

首先,使用AUML去可视化定义交互协议 。

其次,将AUML定义的交互协议转换为有限状态机(FSM)。

再次,提供一种文本表示来表示FSM模型,本文使用了CPXML作为FSM模型的文本表示。

最后,为了模型实施以确保可扩充性、冗余性和互操作性,开发了一种模型框架。为了使多Agent框架成为可能,一个单独的代码生成程序插件多Agent框架创建一个协商交互的JADE代码,图1描述了设计的流程。

2.1 AUML可视化描述转换为FSM模型

本文所设计的插件也是采用了FSM作为模型开发的工具。因为多Agent系统平台直接支持FSMbehavior。正如下文所描述的FSM模型可以直接转换为本文选择的文本描述语言CPXML。在分析和设计阶段使用了AUML作为可视化建模工具,为了实施这些AUML所定义的交互协议,在实施阶段将AUML转换为FSM模型表示。本文给出非形式化定义FIPA定义的合同网协议。

图2描述了合同网协议,过程如下:主办方Initiator向参与方Paticipant提出价格cfp,参与方根据自身的情况可以选择是拒绝(refuse)还是再给一个新的提议(propose)。主办方可以对参与方的提议做出不同的处理,他可以拒绝这次提议(rejectproposal),也可以接受这次提议(acceptproposal)。参与方向主办方通知这次协商失败(failure)或者最后完成的结果(informdone,informresult)。整个谈判协商过程结束。

AUML模型经过上述算法转换为Agent交互协议的各个状态,如初始状态(READY),发送状态(CFP_SENT),同意状态(PROP_SEND)等。将转换的各个状态连接起来,得到了FSM模型。

但所建立的FSM模型只是提供了FSM状态的图形表示,还是无法生成基于Agent平台的程序代码。为了将FSM描述的各种状态及彼此之间的消息生成目标代码,本文采用了文本描述语言cpXML定义FSM模型。因为Eclipse平台当中的EMF插件很好地支持了cpXML模型的代码生成。

2.2 cpXML描述FSM模型

本文开发的插件里采用了FSM模型,一个原因是CPXML可以很好地去表示FSM模型。目前有很多语言可以去描述这种协商,例如:DAML-S , BPEL4WS , and cpXML 。本文选择cpXML是因为cpXML不局限于消息的类型并且允许多方交互。在2002年秋天,IBM的由工作流组提出了cpXML交谈策略标记语言(cpXML-Conversation Policy XML)。CpXML定义了XML 模式命名和定义了角色。使用cpXML描述FSM模型原因: FSM模型只是提供了FSM状态的图形表示,还是无法生成基于Agent的程序代码。为了将FSM的各种状态和彼此之间的消息生成目标代码,本文采用了文本描述语言cpXML定义FSM模型。因为Eclipse平台当中的EMF插件很好地支持了cpXML模型表示及其Java代码生成。其使用cpXML描述FSM中的各个角色,状态和转换如READY-> CFP_SENT描述

<InitialState>

<IniStateName>READY</IniStateName>

</InitialState>

<State StateId="READY">

<SendMessageTransition TransitionName="cfp">

<Target>CFP_SENT</Target>

<Sender>Initiator</Sender>

<Event>SendMessage</Event>

最后得到的AUML交互图的文本描述cpXML模型。对建立的cpXML模型,可以通过EMF提供的命令可以生成Java代码和相应的插件,如图3所示。

用户通过本文提供的插件使cpXML模型生成各个状态的Java程序和Java类,如State.class,Role.class,Message.class和InitialState.class等。但需要将AUML模型转换为多Agent系统平台——JADE平台所支持的代码。所以需要对目前所生成的代码进行定制,使其转换为JADE代码。

2.3 cpXML模型转换为JADE代码

尽管JADE是用Java编写的,但是Java线程无法完整表达出多Agent系统的复杂交互和协商。所以JADE引入了行为(Behavior)来表达Agent的执行任务。本文在设计过程中得到的以有限状态机描述的Agent的交互协商即可通过继承该类方便地得以实现。

交互协议的每种状态都可以注册为FSMBehaviour 的子类Behaviour(行为)。最后为交互协议的每个状态都创建一个行为(Behaviour)。这些行为都是JADE平台支持FSMBehaviour行为子类,如StateREADY行为,StateCPT_SENT行为,StateOFFER_ACCEPTED行为等。

为了将本文的插件内嵌于集成开发环境(IDE)中,选择了目前比较成熟的开发平台Eclipse 。图4是插件的图形用户界面,它给出了交互协议的有限状态机和相应的cpXML模型表示。用户直接使用该插件,将建立与AUML模型对应的FSM模型、cpXML模型。通过单击插件中菜单Generate JADE Source Code,就可以自动生成JADE代码。

该AUML模型最终生成的JADE代码。同时对已经生成的JADE程序,应当应用在被广泛使用的多Agent系统开发平台——JADE平台中。

通过JADE提供的工具可以实现交互协议协商过程的仿真。

3 结束语

本文采用了先利用AUML为多Agent 系统建立模型,然后将其转换为JADE支持的FSM并采用cpXML描述FSM,最后自动转换为多Agent系统的JADE代码的方法,达到了预期的目的,显然这是一个有实用价值的论题。而且本文以基于AUML为多Agent 的供应链管理为实例研究验证了利用AUML为多Agent系统建模的有效性。为面向多Agent系统快速开发,将多Agent的分析、设计和实施集成在一起,形成一套完整的开发方法学,并提供完整易用的工具支持。

摘要:针对目前开发者多在分析和设计阶段采用Agent UML为多智能体(MAS)建立模型,但无法实施对模型的验证。文中实施了能够将Agent UML可视化模型转换为基于Agent的应用程序——JADE代码,并且使将多Agent协商的分析、设计和实施集成在一起,形成一套完整的开发方法学,并提供完整易用的工具插件支持。

关键词:Agent UML,Agent,MAS,JADE

参考文献

[1]Bauer 1 B,Muller J P,J Odell.An extension of UML by protocolsfor multi-agent interaction[C]//International Conference on Multi-Agent Systems(ICMAS’00),2000:207-214.

[2]薛霄.面向Agent的软件设计开发方法[M].电子工业出版社,2009:200-215.

模型及自动代码生成 篇4

为了提高测试的效率,满足软件自动化测试的要求,测试数据成为自动化测试的关键。基于使用模型的软件测试的关键是使用模型的建立,然而传统的使用模型的建立比较困难,一般是依靠经验丰富的专家人工建立的,尤其是对于具有大量约束条件的系统,其状态之间转移概率的确定需要耗费大量的工作量。现提出了以Markov链的测试轨迹熵最小化为目标,通过带约束的非线性规划问题的求解方法解决使用模型状态转移概率,建立软件测试的使用模型。测试数据在自动生成过程中以轮盘赌方式选择测试路径,给出了如何生成具备一定充分性的测试用例的新方法,并用Euclidean Distane方法证明此测试方法的充分性。

1使用模型

1.1Markov链模型

面向对象软件中的类对象通常通过状态图来描述它事件响应所作出反应经历的状态序列。其运行轨迹遵循如下演变原则:在时刻t0 所处的状态,可以决定对象在时刻t(t>t0)所处的状态,而不需要借助t0以前所处历史状态,可以借助Markov链构建软件统计测试的使用模型[1]。

Markov链使用模型是一个具有唯一初态和终态的Markov链,可用强连通有向网G=(V,A)和函数P:V×V→[0,1]表示,具有如下性质:

1) V={1,2,…,n}为节点集,表示软件系统的使用状态;

2) A为边集,其元素表示在某个状态下选定某个操作时软件状态间的转移。从状态i到状态j的边e定义为一个有序对(i,j),任意2个状态ij之间的一个方向最多只有一条有向边相连;

3) 转移概率p(i,j)满足0≤p(i,j)≤l,表示从状态i一步转移到状态j的概率。

1.2使用模型的建立

Markov链使用模型的建立通常分为两个步骤[2]:第一步:建立模型的结构。第二步:指定各边对应的转移概率。由软件的真实使用,从类级对象状态间约束条件出发,根据测试对象覆盖程度为目标,以解非线性优化问题的方式求出优化的使用模型。基于使用模型的类对象测试的测试用例数,即模型的轨迹数[2]。其计算公式为

s(x)=2f(x)(1)

式(1)中的f(x)是使用模型的测试轨迹熵,可以采用式(2)来进行计算[2]。显然使用模型的测试轨迹熵越大,测试用例就会越多。

f(x)=-i=0n-1πij=0n-1pi,jlg2pi,jπlnv(2)

-i=0n-1πij=0n-1pi,jlg2pi,j为使用模型的激励熵,πlnv为最终状态的平稳分布率,πi为模型中状态i的平稳分布率。因此要使s(x)最小,转化为求f(x)最小值即可。

式(2)的最小化的前提是已知各个状态的平稳分布率,对于还没有获得状态转移概率的情况下就无法求解出平稳分布率。可以引用由信息论领域的理论知识发展而来的最大熵理论[3]来求解最佳的平稳分布率,即求最大化平均平稳分布率熵为目标的各个状态的平稳分布率。

max{-i=1nπilgπi}=min{i=1nπilgπi}(3)

显然,求最大化平均平稳分布率熵就转化为求基于约束的非线性规划全局最优解问题。其约束条件考虑从基于状态转移概率的约束条件中获得基于平稳分布的约束条件,现借助Markov链平稳分布定理实现其转化方式,其具体实现方式如下:

(1) 若0≤αi,jpi,jβi,j≤1; i,j∈{1,2,…,n},αi,jpi,j的下界,βi,jpi,j的上界,则根据平稳分布定理,平稳分布πi满足如下约束

g(αi,j)=i=1nπiαi,j-πj0;

g(βi,j)=i=1nπiβi,j-πj0;

h(πi)=i=1nπi=1

(2) 由罚函数法(外点法)求基于(1)中约束的式(3)最优化值。

根据以上有约束的规划问题转换为以下无约束的规划模型

i=1nπilgπi+λ({k=1mmin[0,g(k)]}a+|h(πi)|b) (4)

式(4)中m为不等式限定条件的个数,g(k)分别为g(αi,j),g(βi,j),a≥1, b≥1且a,b都为常数,λ为罚因子,初值取为2,现取a=b=2。可以获得最优测试时使用的Markov链使用模型的平稳状态分布率。

(3) 求式(2)的最小值的优化解。

设状态转移概率pi,j约束条件分别为

gi(p)≤0 i, ∈{1,2,…,m},为概率约束不等式条件序列

hi(p)=0 i, ∈{1,2,…,k},为概率约束等式条件序列。

由罚函数法(外点法)求基于以上gi(p)和hi(p)约束的式(2)最小值的最优化值的解。同理可以转换为以下无约束的规划模型

f(x)+λ((i=1mmin(0,gi(p)))a+ik|hi(p)|b) (5)

式(5)中m为不等式限定条件的个数,f(x)为式(3),k为不等式限定条件的个数,gi(p)为不等式限定条件,hi(p)为等式限定条件。a≥1, b≥1且a,b都为常数,λ为罚因子,初值取为2,现取a=b=2。可以获得最优测试时使用的Markov链使用模型的最小测试用例数的使用模型中转移概率值。

2基于使用模型类测试数据的生成

使用模型的软件测试用例是从模型的开始状态经过若干个中间状态的转移,最后到结束状态的一条测试序列。现采用轮盘赌算法产生测试用例方法产生测试数据[3],其产生的算法如下。

(1) 设当前状态为i,若i为结束状态,则该测试用例生成完毕,否则把状态i记入到测试用例链中。

(2) 计算当前状态i的出边个数k,每边对应的转移概率为pj, j∈{1,2,…,n} ,数组S[j]=j=1kpj; j∈{1,2,…,n}。

(3) 生成一个[0,1]之间均匀分布的随机数r,若 S[j-1]≤rS,则j所对应的边作为状态i的出边,并计入测试用例。以r所对应的终止状态为当前状态,转到(1)。

以上算法中,状态i为当前状态,若随机数r落在(S[i-1],S[i]]内的概率恰好为转移概率,若使用模型的转移概率反应了真实的使用情况,那么随机产生的测试用例也就符合软件的真实使用情况。

3测试充分性的评价

测试充分性可根据测试模型到使用模型的逼真程度进行评价[5]。其评价过程如下。

(1) 建立测试模型。测试起始状态,测试模型与使用模型的结构基本相当,但测试模型没有状态间的转移概率,其值为0,在不断的测试过程中,每个测试用例经过迁移时,测试模型对应的迁移概率就加上1,计为Ci,j,每个测试用例测试完成后对当前测试模型的迁移概率进行处理,从而转化为[0,1]之间的概率,计为Tpi,j,其转化公式为

Τpi,j=Ci,jj=1nCi,j(i,j=1,2,,n)(6)

(2) 用欧几里德距离公式来度量测试模型与使用模型的差异,当差异小于某个值时就停止测试,其计算公式如下:

D(ΤΡ,Ρ)=i=1j=1n(Ρi,j-Τpi,j)2(7)

式(7)中,Pi,j为使用模型的状态转移概率,TPi,j为测试模型的状态转移概率。

随着测试的进行,测试模型就越来越接近使用模型,当D(Tp,p)的值足够小时,就可以认为测试充分了,测试结束。

4基于使用模型的测试用例的自动生成

通过某应用软件为实例研究其测试用例的自动生成。构造该应用软件的Markov链使用模型如图1所示。

图1中,该使用模型由初始Begin、A、B、C、D、结束End 6个状态组成。设转移概率pi,jxi,的对应关系如表1所示。

与之相应的转移概率约束条件如下。

(a)转移概率约束条件 x1=1;

x2+x3=1;

x4+x5+x6=1;

x7+x8=1;

x9+x10=1;

0.5≤x2≤0.8;

x4≤0.2;

0.5≤x6≤0.7;

x7≥x8;

x10≥x9。

(b)平稳分布率约束条件

π2-π1≥0;

π1+0.2π3-π2≥0;

π3-0.5π2-0.5π4≥0;

0.8π2+π4-π3≥0;

π4-0.2π2-0.1π3≥0;

0.5π2+0.5π3-π4≥0;

0.5π4-π5≥0;

π6-0.5π3-0.5π5≥0;

0.7π3+π5-π6≥0;

π1+π2+π3+π4+π5+π6=1;

π1=π6。

4.1生成模型的平稳分布率π

求该生成模型的平稳分布率,分一下几步进行。

(1) 由平稳分布定理根据转移概率约束条件(a)确定平稳分布率约束条件,得到约束条件(b)。

(2) 根据公式(1.4),计算出其平稳分布率。本模型的平稳分布率的计算结果如表2。

4.2生成状态转移概率

由式(5),计算出其状态转移概率。模型的状态转移概率矩阵计算结果如下。

Ρ=[0.001.000.000.000.000.000.000.000.580.420.000.000.000.190.000.260.000.550.000.000.570.000.430.000.000.000.200.000.000.800.000.000.000.000.000.00]

4.3基于使用模型的类对象测试数据生成

使用模型通过以上方式建立后,并通过审核需求分析规格说明书,测试人员的经验等方法进行适宜的优化,作为可测的测试模型,产生测试用例。以下序列是通过图1 Markov链使用模型后,采用轮盘赌法判别式的值小于0.2所产生的测试用例。如表3所示。

以上测试用例从状态覆盖率,边覆盖率和判别式三个方面进行了充分性的验证。在测试过程中,D(P,PT)为小于0.08时,所需要的测试用例为61个;为0.1时,需要34个,0.2时为18个,说明测试得越充分,其测试用例数越多,其测试程度越来越接近真实的使用情况。图2是测试判别条件小于0.08时,判别式的值的分布情况。

测试中,判别式的值(D(P,PT))在总体上是不断减小,并且最终处于稳定状态。同时,在测试实践中,停止测试的标准还可以通过判别式的变化曲线图,测试人员可以根据经验进一步优化。

5结束语

详细介绍了基于优化使用模型的类级自动化测试数据的生成方法,并且研究了在使用模型状态之间转移概率不详细的情况下,建立测试用的优化使用模型,测试用例的自动生成以及讨论了测试充分性的判定标准。并通过具体的实例对本方法进行验证,实践表明,此测试方法能够较好地实现软件测试的自动化水平,对软件的测试比较充分,为提高软件质量和可靠性提供了保障。

摘要:研究了一种基于优化使用模型的类级测试用例的自动生成方法。首先使用基于约束的非线性规划问题的求解方法获得Markov链使用模型的状态转移概率,建立优化的使用模型;然后以使用模型的概率转移为约束采用轮盘赌算法自动生成测试用例;最后以Euclidean Distane方法度量测试的充分性。实验表明此方法能够提高测试自动化水平,提高软件的可靠性。

关键词:类级测试数据,Markov链使用模型,测试充分性

参考文献

[1] Yan Jiong,Wang Ji,Chen Huo-wang.Deriving software markov chainusage model from uml models.Journal of Software,2005;16(8):1386—1394

[2]西方.软件统计测试模型及其应用研究.大连:大连理工大学学位论文,2009

[3] Gao Hai-chang,Feng Bo-qin,Zeng Ming,et al.Statistical softwaretest based on Markov chain path usage model.Computer Engineering,2006;32(19):20—22

[4]张德平,查日军.基于Markov链使用模型的加速统计测试方法.东南大学学报(自然科学版),2011;41(5):949—955

[5] Yan J,Zhou K P,Deng C H,et al.Importance sampling based safety-critical software statistical testing acceleration//2010 InternationalConference on Cornputational Intelligence and Software Engineering.Wuhan:China,2010:1—4

模型及自动代码生成 篇5

关键词:Sugeno积分,语言量词,文本自动生成

0 前言

由于不同的预报员在选词习惯上的不同,同一个预报结果的文本描述可能差异较大,这将直接影响到最终用户对天气预报文本产品的解释应用。如何避免因预报员的人为因素带来的预报结果及对结果解释上的差异是气象预测预报业务中的一个难题。采用计算机自动生成气象文本,结果相对客观,可避免上述问题。但在气象文本描述中,存在大量的模糊性用语。例如:“赣北”、“赣中”这样的地域用语,“局部”、“大部”这样的范围用语,“小雨”、“中雨”这样的量级用语。如何客观地度量,准确地选用相关的用词,成为气象文本生成技术的难点。

本文提出一种基于Sugeno积分的语言量词模型气象文本自动生成技术,并重点讨论降水实况描述文本和降水预报文本的自动生成如何实现。

1 基于Sugeno积分的语言量词模型

经典的一阶谓词逻辑只含全称量词和存在量词,无法表达很多自然语言中的具有模糊量化的命题。很多学者针对这一问题开展大量的研究工作,并提出相关的方法。Zadeh最先提出了模糊量词的概念,此后很多学者采用了完全不同的方法建立了相应的模糊语言量词的模型。1986年,我国学者应明生教授在学术界率先提出模糊测度和Sugeno积分表示语言量词的思想。2006年,应明生教授在《人工智能》上发表的文章[1]中重述了他的基本思想。

1.1 模糊测度函数

定义:设g:P(X)→[0,1],其中P(X)为X的幂集。满足:

(3)若,且为一个递增的可测集序列,则有:

(1)

则称g为P(X)上的λ-模糊测度gλ.。

在定义中,条件(1)表明g为有界的非负性,条件(2)为单调性,条件(3)为连续性。

1.2 Sugeno积分

Sugeno积分又叫模糊积分,是由M.Sugeno创立的。模糊积分是模糊集的隶属函数H与模糊测度函数m的一种广义内积。

当A=U时,A⌒F=F。所以积分公式变为:

特别的,当A=U且h(u1)≥h(u2)≥h(u3)…≥h(un)时,公式可以变为:

(4)式与前两个公式相比简单了很多,在实现上也更容易且计算量小很多,有利于用电脑编程高效实现。本文采用公式(4)作为Sugeno积分公式。在计算前首先对h(xi)进行从大到小排序。

1.3 语言量词模型

在参考文献[1]中提出了一些常用的语言量词定义方法。设X是一个集合,,可以按如下方法定义“不超过三个”,“许多”,“大部分”,“几乎所有”等语言量词:

其中,│E│表示E中元素的个数,│X│表示X中元素的个数。

2 基于Sugeno积分语言量词模型的气象文本自动生成

2.1 根据天气实况生成实况描述文本

在气象文本中经常要对某一时期出现的天气现象进行综合性的描述。例如根据江西北部部分观测点观测到的降水实况水(见表一前两列),综合描述江西北部的天气状况。本文提出的方法如下:

(1)定义江西北部各观测点属于“赣北”的隶属度(见表1第三列)。本文给出的数值是根据气象专家给出的建议确定的。

(2)气象行业根据“小雨”、“小到中雨”和“中雨”的界定计算实况降水属“小雨”、“小到中雨”和“中雨”的测度(见表一后四列)。气象行业确定24小时降水量在0.1-9.9mm属“小雨”,5-16.9mm属“小到中雨”,10-24.9mm属“中雨”。

(3)参照参考文献[1]中定义“局部地区”、“部分地区”、“大部分地区”和“近乎全部地区”等量词。

(4)分别计算“小雨”、“小到中雨”、“中雨”三种情况的“局部地区”、“部分地区”、“大部分地区”和“近乎全部地区”四种量词的Sugeno积分的值。结果见表二所示。

(5)Sugeno积分值可以看作是对应降水量级选用对应的量词的可信度。一般认为可信度为0.7是可接受的结果阈值。对比各Sugeno积分值,取积分值>=0.7并更接近0.7的量词。

对于“小雨”来讲,可信度大于等于0.7的有:“部分地区小雨”的可信度为0.76,“局部地区小雨”的可信度为1。0.76更接近0.7,则对于上述实况降水描述为“部分地区小雨”;

“小到中雨”和“中雨”都只能选用“局部地区”。在同等的情况下,选择降水量级较大的。

因此,上述江西北部降水实况就可以描述为“部分地区小雨,局部地区中雨”。

2.2 根据降水落区预报自动生成降水预报文本

气象预报的基本过程为,预报员综合分析各种气象资料,然后预测降水可能落在哪一个区域范围,通常会在江西区域地图中勾画出相应的落区。

可将江西省地图进行网格区域化,并确定每一网格点地理上的隶属度。然后根据该网格点的预报的降水量级确定其分别属“小雨”、“小到中雨”和“中雨”的测度。随后根据3.1中定义的量词计算对应的降水级别Sugeno积分值,并根据积分值确定选用的量词。

3 结束语

本文只讨论了天气现象中的降水情况,其它天气现象可参考本文的方法进行实现。从本文的结果来看,采用基于Sugeno积分的语言量词模型进行气象文本自动生成的结果同预报员人工选词的结果大致相同。

参考文献

[1]Mingsheng Ying.Linguistic quantifiers modeled by Sugeno integrals.Tsinghua University,2006.

[2]Etienne E.Kerre.An Overview of Fuzzy Quantifiers.U-niversity Gent,1997.

[3]林启太.基于模糊积分评判的开拓运输系统选择[J].中国矿业,2000,9(1).

模型及自动代码生成 篇6

1 系统设计思想

本系统围绕“知识点”来构建试题与试卷。将章节和大纲要求的各章知识点加进数据库, 保证试卷知识点的全面性, 同时与题型、题量、难易度相结合使得试卷更具科学性。每道试题都包含所属课程、章节、难度、试题类型等属性说明。可手动和自动两种方式提取试题, 分别可保证试题系统性和随机性。生成的试卷可自动生成Word文档形式并打印。

数据库的结构设计是整个系统的关键环节, 为使系统生成的试卷更加规范化、标准化。必须遵循专业课程命题原则和要求, 突出试卷库系统的特点。本系统采用ACCESS建立数据库进行数据管理, 采用ADO数据访问技术, Delphi结合SQL语句, 实现对数据库的的各项功能管理。将数据库概念结构化后分8类表, 如表1所示。

2 系统模块功能设计

为保证系统具有一定可扩展性、可移植性, 采用模块化设计, 各模块功能如图1所示。

2.1 试题库管理模块

试题库管理模块是本系统的基础和重点。主要功能包括:试题的检索、添加、修改、删除、统计与保存, 并可随时添加新课程信息及相应试题。本系统已包含了2门汽车电子类课程的试题, 题型包括填空、选择、简单、问答、计算、综合, 每道题都说明其难易程度及章节出处。

2.2 试卷生成模块

试卷生成模块分手动组卷和自动组卷两种形式, 手动组卷时需选定课程名、题型、难度;自动组卷只需设定课程名、知识点分配比例, 之后系统自动完成余下工作, 同时生成试卷和相应答案, 并自动转换成Word格式输出。笔者所在学校要求同时出A、B两卷, 要求彼此没有相同题目, 且三年内不得重复, 因此在生成试卷时需要进行重复度的检测, 防止试题重复。

2.3 试卷库管理模块

试卷生成模块生成的试卷必须进行存档管理, 此功能由试卷库管理模块实现。可实现试卷及答案的保存、检索、删除、导出、打印等。保存时注明试卷ID号、年份、学期、考试对象, 方便教师了解不同学期学生考试情况, 为下次组卷提出参考, 也保证了试卷三年内不重复。

2.4 系统维护模块

系统对不同用户设置不同权限, 保证试题库的安全性。并实现数据库的备份、还原恢复等日常维护。

3 功能实现的难点与策略

3.1 生成试卷时试题的按章排序

在数据库中章节的存放往往没有规则, 但是在生成试卷时需要依照章节顺序显示。因此选用了Delphi的动态数组类型, 所用排序算法如下所示:

3.2 试题的不重复随机选取

如何生成一个覆盖知识点广且不重复的试卷是此系统重点也是难点。为此需要生成一个不重复的随机数序列。此序列变量用SXT表示。

3.3 试题中的图形显示

试题中不可避免会出现图形和公式, 纯文本方式不能达到设计要求。可应用OLE技术调用Microsoft Ofiice Word文字编辑器来实现。

4 结束语

本文采用模块化设计方法详细设计出一套通用试题库及试卷自动生成系统, 并完成功能测试, 所实现的通用试卷及答案自动生成系统具有良好的通用性、可扩展性、可移植性, 安全性, 为教师出卷提出了高校快捷的工作平台, 提高了教学效率。

参考文献

[1]张琨.基于遗传算法的自动组卷系统的设计与实现[J].计算机工程与科学, 2012, 34 (5) :178-183.

[2]罗显鸽.试卷生成系统的设计与实现[J].软件导刊, 2012 (6) :55-56.

[3]王长利.试卷生成管理系统的设计和实现[J].数字技术与应用, 2011 (3) :120-121.

模型及自动代码生成 篇7

计算顶点法向的一种常用方法是对共享顶点的所有多边形面法向取平均值,把这个平均值作为该顶点的近似法向。这种方法是Gouraud[1](1971)提出的。为了提高顶点法向的计算精度,Thurmer和Wuthrich[2](1998)提出另一种计算方法。他们把各个多边形在共享顶点处形成的角度大小作为权值来决定每个多边形的法向贡献。Max[3](1999)又提出了另一个不同的加权方法。该方法基于这样一种假设:多边形的边越长,对法向的影响也就越小。当使用简化技术的时候,这种类型的平滑方法要好一些。

3DS是一种常用的三维模型文件格式,可以从3DS Max或AutoCAD等工具直接生成,许多其它工具也支持这类文件的导出,利用3DS模型构建三维场景[4,5]的应用也日益广泛。在这类应用中,一般的处理过程是:首先场景管理器将模型读入到预先定义的数据结构中;然后根据顶点坐标计算模型各个面的法向;最后对共享这个顶点的所有面的面法向求平均值,作为这个顶点的法向。在某些要求体现更多细节的情况下,这种处理过程将会出现渲染失真等问题。

针对以上问题,本文根据3DS文件提供的平滑组,给出了一种适于计算3DS模型顶点法向的方法,解决了以上问题。并通过程序实现,验证了该算法是可行的。

1 3DS文件格式

绝大部分的三维造型软件使用平滑技术来生成顶点法向。通过为多边形制定平滑组,模型也就可以提供相应的平滑信息。使用平滑组,可以显式地定义组中哪些多边形共同组成一个弯曲平滑的表面。

已知3DS文件[4]按块划分,包含有模型的版本号块,顶点坐标块和纹理坐标块等。如果模型是动态的,还会包含关键帧块。每个数据块都有一个块ID即块标识。例如,块标识为0x4150的数据块是模型的面平滑组块。3DS文件按面的顺序记录平滑组值,即第个值表示第i个面的平滑组序号。每个平滑组占4个字节,取值范围是0~232-1之间的任意整数。3DS模型中,平滑组主要调节模型相邻面之间连接的平滑程度。具体的,若两个相邻面的平滑组不相同,那么在渲染时,这两个面之间将出现一条明显的棱边。如果相邻的两个面共享相同的平滑组,在渲染时,它们将显示成较平滑的曲面。图1a是用3DS MAX软件,同时以线框模式和渲染模式显示的一个球模型。注意图中的粗虚线,紧邻该线上方的4个三角形面具有相同的平滑组,紧邻该线下方的3个三角形面共享另一个平滑组。图1b只使用了渲染模式。在图1b中,箭头指向的明显棱边恰好是具有不同平滑组的三角形面之间的界线。而分别第5卷第21期(2009年7月)在这两组三角形面内,共享同一平滑组的三角形面之间呈现出平滑的曲面效果。

2 算法描述

用多边形网格构成三维形体时,由于顶点位于几个不同的多边形边界上,所以需要考虑顶点所在的各个多边形的面法向。如果相邻的两个多边形面片之间过渡足够光滑,那么它们的共享顶点所对应的法向也就唯一;如果多边形面片之间有硬边缘(hard edge)或者拐角(corner),则要求这些共享顶点构成的硬边缘或拐角对应不同多边形,应该取不同的法向。

一般情况下,用顶点所在的各个多边形的面法向平均值作为该顶点的近似法向:假设共享顶点A的多边形有k个,这k个多边形的面法向分别为N1,N2,…,Nk,那么取顶点A的法向为NA=(N1,N2,…,Nk)/k。这种算法忽略了3DS模型的面平滑组,会产生渲染失真问题。

根据上述分析,3DS模型表面都是三角形,并且面数据块(块标识为0x4120)记录了每个三角形的3个顶点序号,3DS模型顶点法向的具体算法描述如下:

Step 1:计算三角形面法向:

Step 1.1:根据3个顶点序号,得到三角形的3个顶点坐标;

Step 1.2:计算三角形两条边矢量的叉积,并进行归一化处理。

Step 2:统计每个顶点所在的三角形序号,建立一张以顶点为索引的面列表;

Step 3:判断模型是否使用了平滑组;如果模型没有使用平滑组,则转step5;

Step 4:对每个顶点执行以下步骤:

Step 4.1:记录下共享该顶点的各个面所属的平滑组和面序号;

Step 4.2:以平滑组为键值,对面进行分类;

Step 4.3:统计顶点的平滑组个数。如果顶点只有一个平滑组,则转step5;否则,从第二个平滑组开始,对每个平滑组:

Step 4.3.1:复制该顶点的位置坐标、纹理坐标和顶点法向等,并赋予新的顶点序号;

Step 4.3.2:遍历共享该顶点的相应面,将该顶点序号更新为新的顶点序号;

Step 4.3.3:重建以顶点为索引的面列表;

Step 5:计算顶点法向

Step 5.1:叠加共享顶点的各个面法向;

Step 5.2:归一化顶点法向。

算法改进主要增加了step3和step4。本算法根据平滑组对渲染面进行分类,而平滑组体现了模型表面之间过渡的平缓程度。对变化剧烈的物体边缘应该用更多的细节去表现,更适用于本算法。

3 实验分析

系统用Visual C++6.0和OpenGL 2.0.3版本,在Windows XP桌面系统下实现。系统的硬件配置为2.0GHz,2G内存,NVIDIA GeForce 7300GT显卡,256M显存。本文把“用顶点所在的所有多边形的面法向平均值作为该顶点的近似法向”算法简称为“一般算法”。实验用2个模型:兔子(bunny)和消防栓(fire hydrant)(见图2和表1,为了突出本算法的处理特点,实验中不使用模型的贴图数据),对本文算法与一般算法从绘制效果和绘制速度两方面进行测试比较。

图3是本文算法和一般算法绘制兔子的效果比较。模型的各个面平滑组相同。由图3可以看出,当模型的面平滑组都相同时,两种算法都能很好地表现模型细节。

图4给出了两种算法绘制消防栓的效果比较。由图4可见,当模型有明显的硬边缘时,本文算法能够保留模型硬边缘处的细节,而一般算法的绘制结果如图4b中白色箭头指向的卷边,与实际情况不符,造成明显失真。

消防栓模型的0~63号顶点所在面的平滑组都为1。图5a显示了消防栓的0~50号顶点,可以看出它们主要位于边缘过渡比较平滑的地方。图5b显示了它的100~150号顶点,这些顶点所在面的平滑组不相等,它们主要位于模型硬边缘处。

表2列举了共享64号顶点的面序号及面平滑组,表3是64号顶点经本文算法处理后的相关信息。本文算法根据平滑组对面分类。最先访问到的104号面的平滑组为1,则平滑组为1的各个面的64号顶点序号不变。为第二个平滑组分配一个新顶点序号421,并把132和136号面的顶点序号64更新为421。计算顶点法向时,64号顶点的法向是104,105和111号面的面法向平均值,421号顶点的法向是132和136号面的面法向平均值。实际上,它是64号顶点的第二个法向。如图6a所示,白色圆圈指出64号顶点所在位置,实线是它的第一个法向,虚线是它的第二个法向。图6b表明,一般算法只赋予64号顶点一个顶点法向。

表4给出了两种算法绘制3个模型的平均执行时间(包括读取3DS文件到在屏幕上显示出模型的全部时间)。测试在同一台计算机上进行。从表4可以看出,本文算法增加了时间和空间开销。并且,在模型的面平滑组都相同的情形下,本文算法在绘制速度上的效率是最低的。

4 结论

实验表明,本文算法突显了3DS模型的硬边缘细节,而一般算法实际上使用了平均值滤波,丢失了模型的边缘细节。因此,绘制模型前,应当考虑是否需要表现模型的边缘细节特征,再选择合适的算法。比如,出于美观或安全实用等方面的考虑,机械零件或玩具等模型通常都有一个较为平整的外表面,用一般算法绘制这类3DS模型更为合适。而对于显示模型的边缘细节要求较高的场合,则用本文算法绘制更合适。

参考文献

[1]H.Gouraud.Continuous Shading of Curved Surfaces[J].IEEE Transactions on Computers,1971,20(6):623-629.

[2]G.Thürmer,C.Wüthrich.Computing Vertex Normals from Polygo-nal Facets[J].Journal of Graphics Tools,1998,3(1):43-46.

[3]N.Max.Weights for Computing Vertex Normals from Facet Normals[J].Journal of Graphics Tools,1999,4(2):1-6.

[4]殷素峰,高雪强,杨胜强.在OpenGL环境下开发3DS文件浏览器[J].工程图学学报,2005,26(6):22-25.

[5]Richard S Wright,Benjamin Lipchak.徐波,译.OpenGL超级宝典(第三版)[M].北京:人民邮电出版社,2005.

模型及自动代码生成 篇8

1 相关研究

从第一个提出利用蜜罐进行攻击特征自动提取的Honeycomb[1]开始,蠕虫特征自动提取技术成为了研究的热点。Honeycomb主要采用LCS算法查找流量的最长公共子串字符来提取特征,然而单个最长的特征片段并不能准确的描述蠕虫特征。Autograp[2]和Earlybird[3]把每个网络流量的内容分成“长度不定的内容块”,然后通过统计相应的频率而决定是否其为蠕虫的特征,它容易产生较高的误报率,而且不能提取多态蠕虫特征。Polygraph[4]通过计算网络流量中至少出现k次的所有互不包含的子字符串(token),然后通过特殊符号y和token重新表示原来的序列,最后再对新的序列串进行联配而提取蠕虫特征,它能够有效的提取多态蠕虫的特征,但需要高质量的流量样本。Hamsa[5]同样针对多态蠕虫采用类似Polygraph的方法提取子串,但选择了一种轻量级后缀数组算法———deepsort算法[6]实现,并引入一个评分函数来权衡出现频率和误报。

上述系统和方法多将研究重点集中在特征提取的算法上,而在可疑蠕虫流量的采集和预处理上不做处理或只进行很简单的处理,对可疑流量进行有效的预处理。一方面可以使需要处理的数据量减少,加快特征提取速度;另一方面也可以提高待处理数据的纯度,使特征提取更加准确。为此,本文提出基于T-Coffee多序列比对的蠕虫自动提取模型,并对模型中的可疑蠕虫流量处理和特征提取算法等关键技术做了相应的研究。

2 模型设计和算法研究

模型总体设计如图1所示,从网络边界获得的流量数据中提取包头信息,然后通过结合蜜罐捕获的数据对其进行聚类,得到若干的可疑蠕虫网络流量后,再通过序列比对进行特征自动提取,提取出来的特征将使用正常流量进行测试,如匹配不超过阈值则认为在合理的误报范围内,经过验证的特征加入蠕虫特征库中,再用于基于特征的蠕虫防御系统如IDS或IPS。下面分别叙述系统涉及的关键技术和算法。

2.1 基于聚类的流量预处理

采用聚类方法对网络流量做预处理。Cristian Estan[7]通过把网络流定义为如下的五元组(src IP,dst IP,src Port,dst Port,Proto),其中src IP表示源IP地址,dst IP表示目的IP地址,src Port表示源端口,dst Port表示目的端口,Proto表示采用的协议;端口可以分为公认端口(0到1024)和高端口(1024以上);协议可分为TCP、UDP和ICMP等协议。也可以用通配符*,如(*,*,well know,*,UDP)可以用来分析网络流量,以找出其中显著的流。五元组可表示为五维的多维结构,然后进行多维聚类[7],基于各个属性的聚类树构建多维聚类树,与单维聚类使用自下而上的构建方法不同,多维聚类使用自上而下的构建方法,首先检查某个节点下所有单维聚类是否超过阈值,其次检查该节点的所有父节点是否超过阈值,如果这两个条件都满足再计算该节点的流量总和是否超过阈值,如果超过则记录该节点。通过对文献[7]提出的算法研究发现其检查节点的所有父节点是否超过阈值是不必要的,而且算法中的阈值也很难确定。而根据没有正常网络业务活动的蜜罐捕获的网络流量都是可疑的数据,因此可以结合蜜罐来对网络流量进行聚类分析和过滤。单对蜜罐捕获的流量进行预处理,会因为蠕虫在初期传播时数据流量比较少而很难得到可疑蠕虫流量样本。

流量聚类预处理步骤:首先对蜜罐网络流量进行聚类,IP的深度为1,端口深度为3,协议深度为2。然后对整个网络流量的的先进行单维聚类,为了后面的过滤,设置IP的深度为5,其他的设置跟蜜罐网络流量一样,再对其子节点进行遍历,如果其含有在蜜罐数据流量的子节点中,则为可疑节点。其他节点流量也可能是蠕虫产生的。根据蠕虫在传播时首先都是要进行主机探测,我们可以根据IP在流量中的离散度来检测是否为蠕虫流量。按聚类中的剩余的每个IP统计器包数以计算其的离散度,当离散度达到阈值时则断定子节点为可疑节点。阈值为蜜罐网络流量中的每个IP在整个网络流量的离散度的平均值。

2.2 基于序列比对的特征提取

序列比对是将多条序列通过比较和适当的空位插入,构建一个使得相似性度量函数达到最大的比对序列,从而达到两个目的:发现序列之间的相似性和辨别序列的差异。本文采用改进的T-Coffee算法[8]来进行可疑蠕虫流量序列比对。经典T-Coffee算法使用Needleman-Wunsch算法[9]作为其中的双序列联配算法,但Needleman-Wunsch算法存在“易产生碎片”的问题[4]。为了鼓励将连续的字母联配在一起,本文在计算相似度时引人了连续匹配奖励函数enc(x),其中x是连续匹配的字母数目。具体的算法如下:

(1)初始化

(2)迭代

(3)结束

输出最大的相似度值F(M,N)并从D(M,N)回溯路径得到最优的比对结果。

而T-Coffee算法该主要过程如下:

(1)用双序列比对构建初级库。假设有m个输入序列,任意两个输入序列之间都进行双序列比对,将这m(m-1)/2个比对的结果中所有的两两字符匹配保存在初级库中。

(2)库扩展。每一对双序列比对都被扩展为三个序列的比对,并将得到的结果保存在扩展库中。扩展库中保存的仍然是一些两两字符匹配,但是它们都额外被赋予了一个权值。

(3)构造引导树。双序列比对可以得到两个序列的相似度值,由步骤1中任意两个序列之间进行的双序列比对,可以得到任意两个序列之间的相似度值。利用相似度值构造序列之间的距离矩阵,然后,通过neighbor-joining算法对这个距离矩阵进行计算,便可以得到一个引导树。该引导树指明了在后面的渐进式比对过程中,每次选择哪两个序列或一个序列与一个比对结果进行双序列比对。

(4)渐进式比对。多序列比对通过一系列的双序列比对进行。根据引导树的指引,每一步都有两个序列,或者一个序列与一个联配结果进行双序列比对。

该算法的时间复杂度为O(N2L2)+O(NL2),其中N为比对的序列数目,L为序列的长度,但经过前面的流量预处理,序列的质量大大提高,因此该算法在特征自动提取中消耗的时间还是可以接受的。

3 实验分析

为了对比分析,本文使用Polygraph、Hamsa和文中的特征提取模型分别对Apache-Knacker和TSIG这两种蠕虫病毒进行特征提取,实验网络环境为wmware搭建的虚拟网络,包括了一个蜜罐主机和两个正常主机,其中正常主机进行下载等各种网络活动以产生正常网络流量。我们使用上面两种蠕虫对此虚拟网络进行了探测和攻击并采集了0.5h的网络流量后分别使用上述的三种特征提取技术进行了提取特征,提取情况见表1,从表中看以本文提出的模型产生的特征质量都要优于其它两种技术的。

4 小结

本文提出了基于T-Coffee的多序列比对的蠕虫特征提取方法。采用了对边界网络流和蜜罐捕获的可疑网络流进行统一的基于聚类的预处理以提高可疑蠕虫样本的纯度和质量,并使用改进的T-Coffee多序列比对进行特征提取以提高特征的精确度。下一步的工作是继续完善该模型,并结合实际环境开发相应蠕虫特征提取系统。

参考文献

[1]C.KREIBIEH,J.CROWEROF.Honeycomb-Cre ating intrusion detec-tion signatures using honeypots[C].In Proceedings of the Second Work-shop on Hot ToPies in Networks(HotNets-Ⅱ),November 2003,5 1-56.

[2]H-AKIM,B.KARP.Autograph:toward autom ate d,distributed worm sig-nature detection[C].In Proceed ings of the 13th USENIX Seeurity Sym-Posium,Augus t 2004,271-286.

[3]S.SINGH,C.ESTAN,G.VARGHESE,S.SAVAG E.A utomated worm fingerprinting[C].In Proceedings of the 6th ACM/USENIX SymPosium on Op-erating System design and Implementation(OSDI),Dec 2004,45-60.

[4]J.NEWSOME,B.KARP,D.SONG.Polygraph:Automa tically generatingsignatures for Polymorphie worms[C].In IEEE Security and PrivacySymPosium,2005,2 26-241.[5]Z.LI,M.SANGHI,Y.CHEN,M-Y.KAO,B.CHAVEZ.Hamsa:Fast signature generation for Zero-day Polym orphicworms with provable attack resilienee[C].In IEEE SymPosium on Sceurityand Privacy,Oakland,C A,May2006.

[6]MANZINI G,FERRAGINA P.Engineering a lightweight suffix array con-struction algorithm[J].Algorithmica,2004,40(1):33-50.

[7]ESTAN C,SAVAGE S,VARGHESE G.Automatic ally inferring patternsof resource consumption in network traffic[C].Proceedings of ACM Sig-comm,2003.

[8]NOTREDAME C,HIGGINS DG,HEFINGA J.T-Co ffee:a novel methodfor fast andaccurate multiple seq uence alignment[J].Joumal of Molecu-lar Biology.2000,302(1):205-217.

[9]NEEDLEMAN S.B,WUNSCH C.D.A general met hod applicable to thesearch for similaritiesin the amino acid sequence of two proteins[J].Journal of Mole cular Biology,1970,48(3):443-453.

上一篇:万古霉素耐药下一篇:高速铁路路基