————————————
基金项目
基金项目基金项目
基金项目:
::
:国家自然科学基金资助项目(60773094, 61173048)
作者简介
作者简介作者简介
作者简介:
::
:孙晓星(1981-),女,博士研究生,主研方向:形式化方法,软件工程;虞慧群,教授、博士生导师
收稿日期
收稿日期收稿日期
收稿日期:
::
:2011-10-21 修回日期
修回日期修回日期
修回日期:
::
:2011-12-02 E-mail:
::
:sunxiaoxing@mail.ecust.edu.cn
基于
基于基于
基于
HCPN
的
的的
的面向方面
面向方面面向方面
面向方面
NVP
建模与分
建模与分建模与分
建模与分析
析析
析
孙晓星
孙晓星孙晓星
孙晓星
1
,
,,
,虞慧群
虞慧群虞慧群
虞慧群
1,2
(1. 华东理工大学计算机科学与工程系,上海 200237;2. 上海市计算机软件评测重点实验室,上海 201112)
摘
摘摘
摘 要
要要
要:
::
:为能够在软件开发早期检测设计故障,降低 N 版本编程(NVP)容错策略给系统带来的额外开销,提出一种基于层次着色 Petri 网
(HCPN)的面向方面 NVP 建模方法,将 NVP 模块转化为方面子模块,并编织为可执行的 HCPN。运用该建模方法对网络搜索实例建立面向
方面的 NVP 模型,结果验证了该 NVP 模型的正确性和有效性。
关键词
关键词关键词
关键词:
::
:N 版本编程;容错;面向方面的编程;层次着色 Petri 网;建模
Modeling and Analysis of Aspect-oriented NVP Based on HCPN
SUN Xiao-xing
1
, YU Hui-qun
1,2
(1. Department of Computer Science and Engineering, East China University of Science and Technology, Shanghai 200237, China;
2. Shanghai Key Laboratory of Computer Software Evaluating &Testing, Shanghai 201112, China)
【
【【
【Abstract】
】】
】Aiming at detecting the design faults at early development stage and reducing the overhead that N-version Programming(NVP) fault
tolerance strategy may bring into a system, this paper proposes an aspect-oriented modeling method based on Hierarchical Colored Petri Net(HCPN).
NVP is modularized into an aspect sub
-module and woven into a final executable HCPN. An aspect-oriented NVP model is built through a case
study of searching system using this method. Analysis result verifies the correctness and effectiveness of this NVP model.
【
【【
【Key words】
】】
】N-version Programming(NVP); fault tolerance; Aspect-oriented Programming(AOP); Hierarchical Colored Petri Net(HCPN);
modeling
DOI: 10.3969/j.issn.1000-3428.2012.16.015
计 算 机 工 程
Computer Engineering
第 38 卷 第 16 期
Vol.38 No.16
2012 年 8 月
August 2012
·
··
·软件技术与数据库
软件技术与数据库软件技术与数据库
软件技术与数据库·
··
·
文章编号
文章编号文章编号
文章编号:
::
:1000—
——
—3428(2012)16—
——
—0061—
——
—04
文献标识码
文献标识码文献标识码
文献标识码:
::
:A
中图分类号
中图分类号中图分类号
中图分类号:
::
:TP311
1
概述
概述概述
概述
N
版本编程
(N-version Programming, NVP)
[1]
是一种通
过增加版本开发间的独立性,降低不同版本同时出现相似
错误的概率,从而提高软件可靠性的容错策略。然而,多
版本的实现引入额外的软件交互,使系统变得复杂易错,
可 重 用 性 和 可 维 护 性 降 低 。 面 向 方 面 的 编 程
(Aspect-
oriented Programming, AOP)
[2]
技术能将
NVP
的实现从功
能性代码分离出来,之后编织成最终系统。但是,目前针
对
NVP
的
AOP
实现仅停留在执行阶段,而关于系统可靠
性的模型研究
[3-5]
大多未涉及面向方面技术。为了在软件
开发早期对
NVP
是否能有效增强系统可靠性进行分析验
证,减少潜在设计故障、后期调试成本和运行时间开销。
本文提出一种基于层次着色
Petri
网
(Hierarchical Colored
Petri Net, HCPN)
[6]
的面向方面的
NVP
建模及分析方法。
运用
HCPN
严格的数学基础和验证工具
CPN Tools
,对面
向方面的
NVP
模型进行建模、仿真和验证。
2
面向方面的
面向方面的面向方面的
面向方面的
HCPN
建模
建模建模
建模
HCPN
在着色
Petri
网的基础上增加了层次和子模块
的概念,并且子模块之间有着形式化的组合方式。这些特
性契合了
AOP
中方面实现分离和编织执行组合的思想。
AOP
包含基本模块和一组方面。基本模块中可识别的执
行点为连接点
(Join point)
。编织
(Weaving)
即在执行到达符
合切入点
(Pointcut)
声明的连接点处插入建议
(Advice)
。
定义
定义定义
定义
1
一个着色
Petri
网模块
(CPNM)
[7]
定义为一个四
元组
M sub port
Ω
=
,其中:
(1)
CPN (P, T, A, Σ
是一个非层次着色
Petri
网,
P
、
T
、
A
是网结构;
是颜色集函数;
V
是类型函数;
C
是颜色函数;
G
是守护函数;
E
是弧表达式;
I
是初始
化函数。
(2)
sub
是替代变迁的集合。
(3)
port
是端口库所的集合。
(4)
port
→
是一个端口类型函数,对每
一个端口指定一个端口类型。
定义
定义定义
定义
2
一个
HCPN
是三元组
H
Ω
=
,其中:
(1)S
是一个有限的模块集,每个模块是一个
CPNM
,
sub port
=
,并且满足
1 1 2 2
s s s s
(P T ) (P T ) φ
=∪ ∩ ∪
2 1 2
∈ ≠
。
(2)
sub
是一个子模块函数,给每一个替代变