一种基于面向方面的统一过程软件开发方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

$
需求分析
需求分析受开发方法的影响相对较小,整合 EF 的统一过程软件开发方法的需求分析与基于面向对象
的统一过程相似,具体需求分析过程如下 ) (#)捕获系统最重要的需求,由此构造出系统最初的业务模型; (!)以业务模型作为输入,确定用况 ( ,65C=/65) 和用况的参与者 ( /=2’-) ; (H)区分各个用况的优先级,详细描述所确定的每一个用况; (%)综合各个步骤,构造出用况模型 ) 基于 EF 的统一过程软件开发方法在需求分析阶段相对基于传统方法的统一过程的优势在于:对于一 些系统开发后期得到的需求,传统的开发方法处理非常麻烦且效果不佳,而 EF 可以将这些 “迟来” 的需求 组织为 “方面” 推迟到系统设计或系统实现阶段,而不需将这些需求再次加入用况模型中重新进行系统分 析、设计、实现和测试,从而使得开发过程更为流畅 )
#


<= 实现了更高层次上对软件系统的抽象规约,有利于软件系统的开发、维护;统一过程是一个工程化 的过程,能够严格的指导软件系统的开发;将 <= 与统一过程相结合,能够很好地整合 <= 与统一过程两者 的优势,更好的进行软件系统的开发 $ 主要表现为以下几点:
! 保持了 <= 对关注点的模块化能力,特别是对横切关注点的模块化能力; ! 使用 <= 的同时,并不排斥传统软件开发方法的使用;而是很好地与传统开发方法进行结合,特别是
== 方法; ! 将 <= 的开发融入到统一过程的严格工程指导当中,保证了基于 <= 软件开发的有序和完整; ( 1=A) 提供了一种新的有效途径 $ ! 为更好的进行软件关注点的分离
@Z
西南师范大学学报 (自然科学版)
wk.baidu.com
第 ?= 卷
综上所述,在软件规模日益庞大、软件体系结构日益复杂的今天,基于 !" 的统一过程软件开发方法 将发挥越来越重要的作用,为传统软件开发方法注入新的活力与动力 # 参考文献:

系统分析
系统分析是对需求分析所得的结果进行进一步的分析、精化和组织 ) 分析员使用更为形式化的语言
!
收稿日期:!$$H $% $A 基金项目:教育部重点资助项目 (!$$# G $##%A) ) 作者简介:郑旭飞 (#"AJ G ) ,男,江西上饶人,硕士研究生,主要从事软件工程的研究 ) 通讯作者:张为群,教授 )
第 !" 卷
第#期
西 南 师 范 大 学 学 报(自然科学版)
!$$% 年 ! 月
&’( ) !" *’ ) # +’,-./( ’0 1’,234562 738./ *’-9/( :.8;5-682<(*/2,-/( 1=85.=5) >5? ) !$$% ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
!
系统实现
实现模型如图 % 所示 $ 基于 <= 的统一过程软件开发方法的系统实
现是采用一种支持的编程范型将系统设计的结 果以 代 码 实 现,也 就 是 面 向 方 面 编 程 ( <=> ) $ <=> 由两部分组成:语言规范和语言实现 $ 语言 规范描述了语言的基础单元和语法;语言实现则 按照语言规范来验证代码的正确性,并把代码转 化成机器可执行的形式 $ 具体的实现过程如下: (?)构架实现:通过识别对构架有重要意义 的构件来勾画实现模型; (@)系统集成:描述迭代中所需的构造和对 每个构造的需求,集成每个构造; (%)子系统实现:确保子系统履行其在每个 构造中的角色; &’()% 图% 实现模型的层次结构
传统的程序经常会表现出一些不能自然地适应单个程序模块或者几个紧密相关的程序模块的行为,例 如日志记录、对上下文敏感的错误处理、性能优化、协调工作、内存管理、实时约束等等 ) 面向方面 (EF:/6B5=2C’-85.25D) 软件开发从技术上解决了上述问题,从更高的抽象层次对软件系统进行
[# G H] 规约,根据系统的特定行为进行程序模块的划分 ) 但是它没能够从软件工程的高度上把握系统的开
)&*+,+-.&-,/ 01+2-12+* 34 5*6&’7 839*/
!
系统设计
系统设计模型如图 : 所示 ! 基于 "# 的统一过程软件开发方法在系统设
计阶段对系统分析所得的一般关注点和横切关注 点进行进一步的分析、设计、组织和精化,并根据 系统的分析模型构造出系统的设计模型 ! 设计模 型由一系列相互协作的模型元素组成,这些模型 元素描述了系统中的各种行为 ! 具体的系统设计 过程如下: ($)构架设计:通过对子系统及其接口、对构 架有重要意义的设计类 (如主动类) 以及处理公共 性需求的通用设计机制 (如横切关注点) 的识别勾 画设计模型; (:)用况设计:识 别 系 统 的 设 计 对 象、设 计 类、设计方面,以及子系统; (;)类设计:创建一个能够实现用况实现中所要求角色 (一般关注点) 的设计类; %&’(: 图: 设计模型的层次结构
"
系统测试
基于 <= 的统一过程软件开发方法在测试阶段与传统的开发方法基本相同,目的是为了执行并评估测
试模型所描述的测试 $ 具体的测试活动包括:! 制定测试计划;" 设计测试;# 实现测试;$ 集成测试; % 系统测试;& 评估测试 $ 测试模型主要描述怎样通过集成测试和系统测试对实现模型中的可执行构件进行测试,测试模型是测 试用例、测试规程和测试构件的集合 $
<>
西南师范大学学报 (自然科学版)
第 :? 卷
(如状态图、活动图,交互图等) 进行结果描述 ! 传统的开发方法在系统分析阶段一般只分析系统的功能性需求 ("# 中称作一般关注点,以下均称作一 般关注点) ,将横切行为的非功能性需求 ("# 中称作横切关注点,以下均称作横切关注点) 推迟到系统的设 计和实现阶段进行 ! 传统的这种处理方法存在着很大的不足,因为将横切关注点不加处理地直接推迟到系 统的设计和实现阶段进行,将会导致对这些横切关注点的相关实现遍布到所涉及的所有功能模块当中,从 而导致系统原本集中而有序的代码变得分散和混乱,而混乱和分散的代码最终导致代码可读性差、低产 出、低代码重用率、代码质量差以及系统难以扩展等问题 ! 基于 "# 的统一过程软件开发方法在系统分析阶 段以统一过程为指导,在提取系统一般关注点的同时 也提取出系统中的横切关注点,进行关注点的具体分 析,并由此构造出系统的分析模型 ! 本方法很好的利 用了统一过程的过程指导能力和 "# 对横切关注点的 模块化能力,有效的解决了传统开发方法中所存在的 前述问题 ! 具体的系统分析过程如下 (分析模型如图 $ 所示) ! ($)构架分析:根据需求分析所得的用况模型及 系统的主要用况构造系统的构架,通过确定分析包、 一般关注点和横切关注点来概述分析模型; (:)用况精化:根据构架确定系统当中的一般关 %&’($ 注点、横切关注点,进行一般关注点及横切关注点的行为分配; (;)类分析:依据一般关注点在用况实现—分析当中的角色来确定和维护其职责、属性,及其关系; (<)方面分析:依据横切关注点在用况实现—分析当中的角色来确定和维护其职责、属性,及其关系; (=)分析包:确保分析包达到实现领域类或用况,确保该分析包尽可能与其他分析包无关,描述依赖 关系以便能够对未来变化的影响进行估计; (>)分析模型构造:将上述工作流分析的结果进行模型化 ! 用况实现—分析是分析模型内部的一种协作,它描述了如何根据分析类、分析方面及其交互的分析对 象来实现和执行一个具体的用况 ! 于是,一个用况实现便可以很直接地跟踪到用况模型中一个具体用况 ! 图$ 分析模型的层次结构
发,缺乏工程化的指导 ) 统一过程是一个将用户需求转化为软件系统所需要的活动集合的软件开发过程,
[% G I] 是一个通用的过程框架 )
所以本文提出了一种能有效整合 EF 和统一过程的软件开发方法,将 EF 融入到统一过程的严格工程 化指导下进行软件系统的开发 ) 下面按照统一过程的核心工作流,对该软件开发方法进行阐述 )
)&*+,+-.&-,/ 01+2-12+* 34 5*6&’7 839*/
第?期
郑旭飞,等:一种基于面向方面的统一过程软件开发方法
!B
(!)方面设计:创建一个方面,由该方面实现用况实现中所要求解决的系统横切行为; (")子系统设计:确保子系统提供正确的接口,确保子系统独立于其它子系统以及确保子系统实现其 接口所定义的操作; (#)设计模型构造:将上述工作流的结果进行模型化 $ 用况实现—设计是在设计模型内的协作关系,以设计类,设计方面及其对象为基础,描述一个特定用 况的实现和执行 $ 用况实现—设计为相应的用况实现—分析提供了物理实现,并处理在用况实现—分析中 所捕获的大部分横切关注点 $ 一个用况实现—设计可以直接跟踪到分析模型中的一个用况实现—分析,因 此能够通过用况实现—分析跟踪到用况模型中的某个用况 $
*’+,-,./’.-0 12,3.23,+ 45 6780+7+92-2’49 :4;+0
(!)类实现:实现构件中的一般关注点,确保定义的操作和接口,生成最终的源代码; (")方面实现:实现构件当中的横切关注点,确保方面集成器能够实现类和方面的集成; (#)实现模型构造:将上述工作流的结果进行构造并集成 $
[$] %&’()*+, -,.)/0&12 3,4+156+7)8 !,!" #$ # !,0+’9:"8&+19+5 ;8<28)//&12 [ 3] # %&’( ,$==>,$?@$:??A B ?@? # [?] C)/1&D), .)55)5# E F)19 4G !";:H+0)8)9+ H<I9J)8+ K<1’+81, J&96 !,0+’9:"8&+19+5 ;8<28)//&12,.+)81 !,0+’93 9< L+99+8 M15+8: [ NL O ".] ,9)15 !,0+’9:"8&+19+5 ;8<28)//&12 # 6990: O O JJJ# P)D)J<8*5# ’</ O P)D)J<8*5 O ,?AA? # [Q] R6+ !,0+’93 9+)/# !,0+’9:"8&+19+5 ;8<28)//&12 J&96 !,0+’93 [ NL O ".] # 6990: O O ),0+’9# <82,?AA? # [@] 3)’<S,<1 E,L<<’6 -,CT/S)T26 3# 统一软件开发过程[ 4] # 周伯生,冯学民,樊东平,等,译 # 北京:机械工业出版社, ?AA? # [U] CT/S)T26 3,3)’<S,<1 E,L<<’6 -# M4. 参考手册[4] # 姚淑珍,唐发根,等,译 # 北京:机械工业出版社,?AA$ # [V] ;8+,,/)1 C H# 软件工程:实践者的研究方法[4] # 第 U 版# 梅 [出版者不详] ,$===# .&,S<1: [Z] N5T)85< %+,,*+8 ;&D+9),!T2T,9< 3T1 Y+D+2&*&# !,0+’9, &1 96+ C)9&<1)* M1&I&+5 ;8<’+,,[ !1)*G,&, )15 Y+,&21 F<87I*<J [ !] # )*+,",*[出版者不详] ,?AA$ # .#.!/ #" "0! 22)%(43 ?AA$[ K] # R)/0): 宏,译 # 北京:机械工业出版社,?AA? # [>] HT(T7& 3,W)/)/<9< W# NX9+15&12 M4. J&96 !,0+’9,:!,0+’9 HT00<89 &1 96+ Y+,&21 ;6),+ [!] [ K] # )*+,",*- .#.!/ #" "0! 1’22)3 == #
文章编号:#$$$ @%A# (!$$%) $# $$%@ $%
一种基于面向方面的统一过程软件开发方法
郑旭飞, 张为群
西南师范大学 计算机与信息科学学院,重庆 %$$A#@
!
摘要:对近年提出的面向方面 ( /6B5=2C’-85.25D) 软件开发方法和统一过程软件开发方法分别进行分析后,结合面向方 面和统一过程的优势,提出了一种基于面向方面的统一过程软件开发方法 ) 解决了传统软件开发方法中存在的许 多问题 ) 关 键 词:面向方面;软件开发;面向方面编程;统一过程 文献标识码:( 中图分类号:!"#$$%&’
相关文档
最新文档