(计算机科学与技术专业论文)面向方面体系结构建模研究.pdf_第1页
(计算机科学与技术专业论文)面向方面体系结构建模研究.pdf_第2页
(计算机科学与技术专业论文)面向方面体系结构建模研究.pdf_第3页
(计算机科学与技术专业论文)面向方面体系结构建模研究.pdf_第4页
(计算机科学与技术专业论文)面向方面体系结构建模研究.pdf_第5页
已阅读5页,还剩72页未读 继续免费阅读

(计算机科学与技术专业论文)面向方面体系结构建模研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

围防科学技术大学研究1 i 院硕:学何论文 摘要 随着面向方面编程技术的日趋完善,面向方面思想已经不再局限于程序设计 阶段并延伸到软件生命周期的各个阶段,形成了面向方面需求工程、面向方面体 系结构设计、面向方面设计、面向方面编程和面向方面测试与验证等各方向协同 发展的态势。软件体系结构设计是对软件系统的高层次的抽象描述,是整个软件 开发过程中重要的软件制品,也是软件建模非常重要的组成部分。传统的软件体 系结构设计方法没有单独的考虑横切关注点。因此,在软件体系结构设计阶段, 建模人员需要新的机制来描述这些横切关注点。 本文首先从关注点分离的角度回顾了软件开发方法的发展历程。通过时面向 方面软件开发领域内对称式和非对称式两种发展方向的分析,总结出面向方面的 本质特征:基于横切的一种新型的封装机制。本文通过对目前存在的四种面向方 面的软件体系结构建模方法的分析,总结出目前该领域存在的两个主要问题:概 念不统一、不能同时对两类开发方法提供支持。针对这些问题,本文首先提出了 以横切为核心的通用的软件体系结构层面上的面向方面概念框架。接着通过扩展 u m l 的方式给出了该概念框架中的核心概念的构造型。最后通过扩展u m l 相应 视图支持了面向方面的软件体系结构建模。然后本文具体分析了一种与实现平台 a s p e c t j 有关的建模方法,并结合具体的例子通过一定的步骤将本文提出的模型成 功精化到该建模方法支持的模型上,说明了本文提出的建模方法对非对称式面向 方面软件开发的支持。最后基于e c l i p s e 平台及r c p ( 斑c hc l i e n tp l a t f o r m ) 和g e f ( g r a p h i c a le d i t i n gf r a m e w o r k ) 框架开发了支持本文提出的建模方法的原型工具 a o a u m l ,并通过具体的实例展示了该工具的使用。 主题词:横切,面向方面,u m l ,扩展机制,软件体系结构建模,a o a u m l 第i 页 国防科学技术大学研究乍院硕士:学能论文 a b s t r a c t w i t ht h ep r o g r e s so fa o p ( a s p e c t - o r i e n t e dp r o g r a m m i n g ) t e c h n o l o g y ,t h ea o ( a s p e c t - o r i e n t e d ) m e t h o d o l o g yh a sn o to n l yl i m i t e dt ot h ei m p l e m e n t a t i o np h a s e t h e a om e t h o d o l o g yh a ss t r e t c h e do v e ra l lp h a s e so ft h es o f t w a r el i f ec y c l e i th a sf o r m e d t h es i t u a t i o ni nw h i c ha s p e c t - o r i e n t e dr e q u i r e m e n te n g i n e e r i n g ,a s p e c t o r i e n t e d a r c h i t e c t u r e d e s i g n ,a s p e c t - o r i e n t e dd e s i g n ,a s p e c t o r i e n t e dp r o g r a m m i n ga n d a s p e c t - o r i e n t e dt e s ta n dv e r i f i c a t i o nc o o p e r a t ew i t he a c ho t h e rt oe v o l v e s o f t w a r e a r c h i t e c t u r ed e s i g ni sah i g h l e v e la b s t r a c td e s c r i p t i o no fs o f t w a r es y s t e m i ti sa l l i m p o r t a n ts o f t w a r ea r t i f a c ti nt h ee n t i r es o f t w a r ed e v e l o p m e n tp r o c e s sa n da ni m p o r t a n t p a r to fs o f t w a r em o d e l i n g t h et r a d i t i o n a ls o f t w a r ea r c h i t e c t u r ed e s i g na p p r o a c h e sd o n o tp r o v i d ea l li i l d e p e n d e n tm e c h a n i s mf o rc r o s s c u t t i n gc o n c e r n s a sar e s u l t ,i ti s n e c e s s a r yt op r o v i d ean e wm e c h a n i s mf o rc r o s s c u t t i n g c o n c e r n si na r c h i t e c t u r e m o d e l i n g t h i sp a p e rr e v i e w st h ed e v e l o p m e n to fs o f t w a r em e t h o d o l o g yf r o mt h ev i e wo f s e p a r a t i o no fc o n c e r n s as u m m a r yt h a tan e we n c a p s u l a t i o nm e c h a n i s mb a s e do n c r o s s c u t t i n gi st h ee s s e n c eo fa ow a so b t a i n e df r o mt h ea n a l y s i so fb o t hs y m m e t r i c a l a n da s y m m e t r i c a la o s d ( a s p e c t - o r i e n t e ds o f t w a r ed e v e l o p m e n t ) b ya n a l y z i n gt h e c u r r e n tf o u ra s p e c t - o r i e n t e da r c h i t e c t u r ed e s i g na p p r o a c ht h r o u g ht h ee v a l u a t i o n f r a m e w o r kt h i sp a p e rh a sp r o p o s e d ,t w om a j o rp r o b l e m si nt h ef i e l do fa s p e c t - o r i e n t e d a r c h i t e c t u r ed e s i g nw e r ef o u n d t h ef i r s tp r o b l e mi st h a ti td o e s n th a v eau n i f i e d c o n c e p tf r a m e w o r k t h es e c o n do n e i st h a tc u r r e n ta p p r o a c h e sd o n tp r o v i d es u p p o r tf o r b o t hs y m m e t r i c a la n da s y m m e t r i c a la o s d t oc o p ew i t ht h e s ep r o b l e m s ,t h i s d i s s e r t a t i o nf i r s t l yp r o p o s e sag e n e r a lc o n c e p tf r a m e w o r kw h i c hs u i t sf o rt h es o f t w a r e a r c h i t e c t u r e t h e n ,w eg i v et h es t e r e o t y p e so fc o r ec o n c e p t si nt h ec o n c e p tf r a m e w o r k b yu s i n gu m l e x t e n s i o nm e c h a n i s m t os u p p o r ta s p e c t - o r i e n t e da r c h i t e c t u r ed e s i g n , t h e s es t e r e o t y p e sw e r ea p p l i e di ns o m eu m l d i a g r a m s t os p e c i f yh o wo u ra p p r o a c h s u p p o r tt h ea s y m m e t r i c a la o s d ,a na s p e c t - o r i e n t e dl a n g u a g eb o u n dt oa s p e c t jw a s a n a l y z e da n ds o m es t e p sw a sg a v et om a po u r a r c h i t e c t u r em o d e lt ot h ea s p e c t jm o d e l a tt h ee n d ,ap r o t o t y p e t o o la o a u m lw a sd e v e l o p e dt os u p p o r tt h em o d e l i n g a p p r o a c h t h i st o o lw a sd e v e l o p e db a s e do ne c l i p s ep l a t f o r m ,r c pa n dg e ff r a m e w o r k t h e n ,a ne x a m p l ew a sg i v e nt oe x p l a i nh o w t ou s et h i st 0 0 1 k e yw o r d s :c r o s s c u t t i n g ,a s p e c t - o r i e n t e d ,u m le x t e n s i o nm e c h a n i s m , s o f t w a r ea r c h i t e c t u r em o d e l i n g ,a o a u m l 第i i 页 围防科学技术大学研究乍院硕士学f :论文 表目录 表2 1 对称式面向方面软件开发主要概念1 3 表2 2 非对称式面向方面软件开发概念表1 4 表3 1a o g a 方法中概念模型1 6 表3 2d a o p a d l 中的概念模型1 8 表3 3p c sf r a m e w o r k 概念模型1 9 表3 4 评价结果2 2 表4 1方面的构造型3 2 表4 2 切入点的构造型3 3 表4 3a d v i c e 和i n t r o d u c t i o n 的构造型3 3 表4 4 顺序图中常用的操作符3 8 表5 1 切入点相关构造型4 2 表5 2 通知相关构造型4 2 表5 3 类型间声明相关构造型4 3 表5 4 方面相关的构造型4 3 表5 5 各种关系的构造型一4 4 表6 1 核心关注点表6 l 表6 2 横切关注点表6 l 第页 国防科学技术大学研究牛院硕士学他论文 图2 1 图2 2 图2 3 图2 4 图2 5 图2 6 图3 1 图3 2 图3 3 图4 1 图4 2 图4 图4 图4 图4 图4 7 图4 8 图4 9 图4 1 0 图4 1 l 图4 1 2 图5 1 图5 2 图5 3 图6 1 图6 2 图6 3 图6 4 图6 5 图6 6 图6 7 图6 8 图目录 软件开发方法进化图5 面向对象的需求分析过程7 面向对象设计图8 而向方而软件开发9 对称式软件开发一1 2 非对称式软件开发一1 3 t m n s a t 元模型一1 7 p c sf r a m e w o r k 的元模型1 9 评价框架2 0 u m l 体系结构2 4 u m l 四层结构实例2 5 u m lp r o f i l e 结构图2 5 j a v a b e a n 的构造型2 6 约束实例一2 7 面向方面体系结构建模概念框架31 方面组件和组件的关系3 4 方面和方面之间的关系3 5 基于j 2 e e 的w e b 系统传统体系结构图3 5 基于j 2 e e 的w e b 系统面向方面体系结构图3 6 日志方面组件的结构图3 7 日志方面顺序图3 9 精化l o g i c b e a n 组件4 5 精化l o g g i n g 方面4 6 精化后的方面图表示。4 7 g e f 结构图j 4 9 控制器结构图4 9 e c l i p s er c p 结构图5 l a o a u m l 总体框架图5 2 工具流程图5 3 a o a u m l 模型编辑器包图5 3 包a o a u m l a r c h i t e c t u r e d i a g r a m m o d e l 内的主要类图5 4 包a o a u m l a r c h i t e c t u r e d i a g r a m e d i t - p a r t 内的主要类图5 6 第v 页 围防科学技术大学研究乍院硕二l :学位论文 图6 9 案例总体结构图6 2 图6 1 0a c c e s sc o n t r o l 组件图6 2 第页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学 位或证书而使用过的材料与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位论文题目:亘自左亘签盈丝盐瘦搓珏究 学位论文作者签名:二己j 骂 一 日期: 2 口- 7 年2 月2 7 日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定本人授权国 防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允 许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据库进行检索, 可以采用影印、缩印或扫描等复制手段保存、汇编学位论文 ( 保密学位论文在解密后适用本授权书) 学位论文题目:亘囱左道堡丕结掬建搓透塞 学位论文作者签名: 垂避 作者指导教师签名:垂遣菱 日期:2 勺口7 年 日期:2 1 年 口尸日 2 7 月 月 2 ) , 国防科学技术大学研究卜院硕士学俯论文 第一章绪论 1 1 课题研究背景和意义 随着计算机技术的不断发展,计算机已经广泛应用到人们生产、生活的各个 领域。由于应用环境复杂性的不断增加,人们对软件的要求越来越高,软件的复 杂性也越来越大。因此,为了开发出符合人们需求的高质量的软件,软件开发方 法学一直是软件工程领域研究的热点问题。经过几十年的发展,软件开发方法经 历了一代又一代的更迭。结构化方法是一种系统开发方法,它采用系统科学的方 法自顶向下分析和设计系统。结构化方法包括结构化分析( s t r u c t u r e da n a l y s i s 简称 s 舢、结构化设计( s t r u c t u r e dd e s i g n 简称s d ) 和结构化程序设计( s t r u c t u r e dp r o g r a m d e s i g n 简称s p ) ,其中核心是结构化分析和结构化设计。结构化方法的基本思想就 是将待解决的问题看成一个系统,从而用系统科学的自顶向下、逐步求精的思想 来分析和解决问题。结构化的软件开发方法存在这样的问题:系统状态由很多全 局变量控制,而应用程序中任意一行代码都能够修改这些全局变量。面向对象方 法的出现将系统状态封装在单一的对象内部,系统状态在对象内部被私有化,其 他对象可以通过访问方法和逻辑来控制这些状态。面向对象的思想起源于2 0 世纪 6 0 年代的仿真程序设计语言s i m u l a6 7 。s i m u l a6 7 的主要思想是:将对象看成是问 题域中一个需要处理的元素,而针对问题域的解决方案就是处理这些不同的对象。 通过模块化的方法,将这些对象连接起来形成系统。这就是最初的面向对象的思 想。2 0 世纪8 0 年代,s m a l l t a l k 语言的出现及应用极大的推动了面向对象技术的发 展,并使得面向对象的思想被广泛接受。2 0 世纪9 0 年代中后期u m l ( u n i f i e d m o d e l i n gl a n g u a g e ) 的出现是面向对象技术发展的一个重要里程碑。u m l 统一了面 向对象建模的基本概念、术语和表示方法,不仅为面向对象的软件开发过程提供 了丰富的表达手段,而且也为软件开发人员提供了互相交流、分享经验的共同语 剖。目前,面向对象软件开发方法仍是软件工程中主流的开发方法。但是,在面 向对象软件开发方法中会出现以下问题:很难把问题全部表示成完全模块化、封 装完好的模型。这是由于系统的有些功能必须跨越多个对象来运用,如:日志、 监控、安全、事务处理等,在软件工程中,称这些为横切关注点( c r o s s c u t t i n g c o n c e r n ) 。如果硬把以上的横切关注点封装在对象中,这样就会导致在实现阶段出 现代码的散射( s c a t t e r i n g ) 和纠缠( t a n g l i n g ) 。关注点分离( s e p a r a t i o no fc o n c e r n s ) 是软 件工程领域最基本的原则之闭。面向对象软件开发已经被证明是一种成功地使关 注点保持分离的软件开发方法。它将功能性关注点很自然的封装在对象结构中, 从而提高了软件的模块化以及可重用性。但是面向对象的封装机制并不能很好的 第1 页 国防科学技术大学研究牛院硕士学俯论文 封装横切关注点【3j 。而向方面编程( a o p ) 足一一种新的基j :关注点分离的技术,它时 横切关注点提供了很好的封装机制。面向方面的提出是为了解决面向对象巾横切 关注点问题的,它的基本原理就是提供一种描述横切关注点的机制,然后利用这 种描述来分离横切关注点,最后通过一定的编织技术把分离出来的横切关注点与 核心关注点编织成最后的系统。面向方面与面向对象一样,最初也是从编程层次 上出现的,代表语言有a s p e c t j l 4 1 、h y p e r j 5j 等。经过十几年的发展,面向方面的编 程已经相当成熟。但是一种软件开发方法仅仅停留在编程实现层次上是不够的, 完整的软件开发过程包括需求分析、设计、实现、测试和维护。而向方面的软件 开发也要在相应的阶段提供相应的技术支持。其中面向方面体系结构建模就是在 软件开发的早期对面向方面提供支持的技术。 面向方面体系结构建模是面向方面软件开发的重要组成部分,也是近些年面 向方面领域研究的热点问题。它主要是在较高抽象层次上描述有关面向方面软件 开发的一些概念和特征。研究人员主要从两种角度来研究面向方面体系结构建模。 第一种是白底向上的方法。目前,丽向方面编程已经十分成熟,也出现了很成熟 的实现平台,研究人员通过分析每一种具体的实现平台,抽象出一些面向方面的 概念,通过扩展u m l 来支持这些概念,也就是直接把实现层次上的概念映射到设 计层次上。这样就会过早的把设计固定在一种实现平台上。第二种,是将面向方 面的思想及核心概念引入到软件体系结构设计阶段,它不局限于一种特定的实现 平台,从而在软件开发的早期阶段就保持关注点的分离。本文主要从第二种角度 研究面向方面体系结构建模。 在软件体系结构建模层面上捕获横切关注点在支持面向方面软件开发中有很 重要的意义【6 j : 1 ) 方便文档化和学习 把方面作为一个设计结构在软件开发的早期阶段引入,开发者就能在更早的 时候认识横切结构。这样,方面设计人员和面向方面软件的学习人员就可以以更 直观的方法文档化方面。 2 ) 方面的重用 文档化和学习性的简单化使得方面信息的重用得到很大的提高,例如方面是 怎样被设计的,它又是怎样影响一个类的。这样来还增加了很多使用方面的方 式,例如:支持方面的c a s e 工具。这些都使得方面的可用性得到很大的提高。 3 ) 迭代式软件开发 建模层次上支持面向方面很好的支持了增量式和迭代式的面向方面的软件开 发,例如:方面代码与设计模型的转换,模型与方面代码的转换,编织代码与模 型的转换,方面重构。 第2 页 囝防科学技术大学研究牛院硕士学何论文 本课题$ - t x , j 函ff u 方碡i 体系结构建谈存在的问题进行研究,从而向方面起源出 发,通过研究面向方面软件开发的本质问题,提出面向方面体系结构层面上的概 念框架。同时把该概念框架中核心概念引入到体系结构设计阶段,通过扩展i m 给出了相应的模型,提出了一种面向方面体系结构建模的方法。从而在软件开发 的早期阶段支持横切关注点的分离。 本课题的基本任务是研究面向方面体系结构建模,解决其中涉及的关键问题, 例如体系结构层面上面向方面的概念框架,体系结构层面上面向方而核心概念的 模型表示等。相关理论和方法可指导而向方而软件开发中的体系结构建模,有广 泛的应用的景。 本课题的研究意义体现在理论和实践两个方面。在理论上,提出了面向方面 体系结构概念框架,并提出了面向方面体系结构建模方法;在实践上,基于e c l i p s e 平台及r c p 和g e f 框架开发出支持本文方法的a o a u m l 建模工具原型。使用该 工具进行面向方砸的软件体系结构阶段建模有利于保证软件质量,并有利于面向 方面软件开发在工业领域的大规模应用。 1 2 课题研究内容 目前而向方面建模在面向方面软件开发领域中的研究已经十分活跃,面向方 面体系结构建模作为面向方面软件开发的一部分已经成为该领域的热点问题。在 软件体系结构建模阶段要考虑哪些概念,如何定义通用的面向方面体系结构的概 念框架以及对主要概念的图形化的模型表示是体系结构建模阶段需要考虑的重要 问题。 本课题研究的基本内容是从理论、方法和实现三个方面来研究面向方面软件 体系结构建模问题。主要研究内容是: 1 ) 从面向方面的起源出发,分析面向方面软件开发的发展历程,即从面向方 面编程入手研究面向方面软件开发的理念和特性,同时具体分析了面向软 件开发两种不同的发展方向。 2 ) 提出种面向方面体系结构建模的评价框架,利用该框架分析目前国内外 面向方面软件体系结构建模的研究现状以及存在的问题。 3 ) 针对以上问题,结合面向方面的本质特性,提出一个面向方面概念框架。 4 ) 分析并研究u m l 的扩展机制。通过扩展u m l 来支持面向方面体系结构 概念框架中的主要概念。通过扩展u m l 相应的视图中支持面向方面的软 件体系结构建模。 5 ) 给出了精化到一种与具体实现平台a s p e c t j 有关的建模语言的步骤。 6 ) 设计并实现支持本文提出的面向方而体系结构建模方法的a o a u m l 工具 第3 页 困防科学技术大学研究牛院硕士学位论文 原型。 7 ) 通过具体案例分析本文提出的面向方面体系结构建模方法。 本课题的目标是:提出一种适合体系结构层面上通用的面向方面概念框架: 针对概念框架中的主要概念通过扩展u m l 给出具体的图形化模型;实现面向方面 体系结构建模工具a o a u m l 以支持本文提出的方法;通过具体案例展示面向方面 体系结构建模方法。本课题希望通过该方法能够有效的支持面向方面软件开发过 程中建模阶段的早期活动。 1 3 论文结构 论文共分为七章。 第一章是绪论。主要介绍了课题的研究背景、研究意义和研究内容,确定了 课题的研究目标。 第二章是面向方面软件开发方法概述。在这一章,主要从软件开发方法学的 角度介绍了传统的软件开发方法以及面向方面软件开发的理念、发展历程。 第三章是面向方面体系结构概述。首先研究分析了目前存在的主要的面向方 面体系结构建模方法;接着提出了一个用于评价面向方面体系结构建模方法的评 价框架;最后针对各种方法,利用本文提出的面向方面体系结构建模评价框架进 行详细的分析和评价,并指出了各种方法存在的主要问题。 第四章是本文提出的扩展u m l 进行面向方面体系结构建模方法。首先,分析 了u m l 的扩展机制;然后基于本节关于面向方面思想的讨论提出一种面向方面概 念框架;最后针对概念框架中的核心概念给出了相应的模型表示。 第五章主要介绍了如何将本方法得到的面向方面的软件体系结构模型精化到 与实现平台更接近的建模语言的步骤。 第六章介绍了支持本文面向方面体系结构建模方法的原型工具a o a u m l 的 设计和实现,并通过具体的案例演示了它的用法。 第七章对论文的主要工作进行了总结,明晰各部分的主要工作内容,并明确 了在今后的研究中需要进一步加强的工作。 第4 页 圉防科学技术大学研究牛院硕e 学何论文 第二章面向方面软件开发 本章首先从关注点分离的角度介绍了传统的软件开发方法;同时从历史的角 度回顾了面向方面软件开发的发展历程以及目前面向方面软件开发的研究现状。 2 1 软件开发方法概述 到目前为止,软件开发方法大概已绛经历了三个阶段:结构化的软件开发方 法、面向对象的软件开发方法和面向方血的软件开发方法。如图2 1 所示。 傈统网、 像统 陬闻 、 泽 卜 彤 意冷 卜 罐 结构化开发方法面向对象开发方法 面向方面开发方法 图2 1 软件开发方法进化图 结构化方法把问题逐步分解成独立的小模块,从而采用分而治之的思想解决 软件开发中的复杂问题。面向对象思想通过把问题域中主要关注点映射成求解域 中的各个对象,然后通过对各个对象进行处理来解决问题。面向方面软件开发进 一步对关注点进行分类,提供一种专门的机制来解决问题域中出现的横切关注点 问题,从而进一步提高了软件的模块化。从图2 1 可以看出,每一种软件开发方法 的发展都是将关注点的抽象化和模块化进一步提高。因此,本节以关注点的分离 和模块化为中心讨论目前存在的各种软件开发方法。 2 2 传统的软件开发方法 软件工程是计算机学科中一个重要的研究领域。软件开发方法是软件工程中 的一个重要概念,它是指在某种思想的指导卜使用已定义好的一系列技术和表示 工具来组织软件开发过程的方法,它一般表述成一系列的步骤,每一步骤都有相 应的技术和表示工具( 7 1 。软件开发人员使用已有的软件开发方法进行软件开发从而 获取用户需要的可运行的软件系统以及各种支持文档。由于结构化方法和面向对 象软件开发方法已经被实践证明是成功的软件开发方法,因此本文把结构化软件 开发方法和面向对象的软件开发方法归为传统的软件开发方法。 2 _ 2 - 1 结构化的软件开发方法 第5 页 困防科学技术大学研哆芒卞院硕士学何论文 结构化方法包括s a 、s d 、s p 。与非结构化方法十日比,结构化方法的土要特征 就是模块化。模块是软件功能模块的逻辑划分,它将软件中逻辑上相关联的部分 封装在模块中。模块问是自顶向下、逐步求精的关系。结构化方法非常强调软件 的需求分析,根据需求分析的不同,结构化方法进步分为两大类:面向数据流 的开发方法和面向数据结构的开发方法。 1 ) 面向数据流的结构化方法 而向数据流的结构化方法的雏形出现丁二2 0 世纪6 0 年代后期,y o u r d o ne 和 c o n s t a n t i n ell 在1 9 7 8 年正式提出了结构化软件开发方法,即所谓的s a s d 方 法, 也可称为面向功能的软件开发方法或面向数据流的软件开发方法。1 9 7 9 年 t o md em a r c o 对此方法作了进一步的完善。该方法在需求分析阶段利用数据流图 来表达,其大致过程:创建数据流模型、创建控制流模型、针对原子级处理功能 给出过程规格说明【l 】。在设计阶段该方法依据模块独立性准则、软件结构准则,将 数据流图转换为软件的体系结构,用软件结构图来建立系统的物理模型,实现系 统的概要设计。由于这一方法不仅开发步骤明确,s a 、s d 、s p 相辅相成,而且给 出了两类典型的软件结构( 变换型和事务型) ,便于参照,使软件开发的成功率大大 提高,从而深受软件开发人员的青睐。该方法是8 0 年代使用最广泛的软件开发方 法。 2 ) 面向数据结构的开发方法 a ) j a c k s o n 方法 j a c k s o nma 在1 9 7 5 年提出了著名的j a c k s o n 方法。其核心思想是:根据作用 于数据的行为序列的结构( 顺序、选择与重复) 建立目标软件系统的模型,然后在软 件设计阶段将模型演化为相应的程序结构【l 】。这一思想形成了最初的j s p ( j a c k s o n s y s t e mp r o g r a m m i n g ) 方法,该方法首先描述问题的输入、输出数据结构,分析其 对应性,然后推出相应的程序结构从而给出问题的软件过程描述。这一方法对输 入、输出数据结构明确的中小型系统特别有效,如商业应用中的文件表格处理。 但是当输入、输出无对应关系时,就很难使用该方法。该方法也可与其它方法结 合,用于模块的详细设计。基于j s p 方法的局限性,又发展了j s d ( j a c k s o ns y s t e m d e v e l o p m e n t ) 方法,它是j s p 方法的扩充。j s d 方法是一个完整的系统开发方法, 该方法首先建立现实世界的模型,再确定系统的功能需求。对需求的描述特别强 调了操作之问的时序性,它以事件作为驱动,是一种基于进程的开发方法,应用 于时序特点较强的系统,包括数据处理系统和一些实时控制系统。 b ) w a m i e r 方法 w a m i e r 方法是w a m i e rjd 在1 9 7 4 年提出的。它利用顺序、选择、重复三种 结构表示信息的层次分解,并指出可以从信息层次结构推导出程序结构【。其与 第6 页 罔防科学技术大学研究乍院硕士学f 节论文 j a c k s o n 方法的土要自以下几点不i 卅:首先,使用的图形工具不i 叫,分别使用w a m i e r 图和j a c k s o n 图:其次,使用的伪码不同;最后,在构造程序框架时,w a m i e r 方 法仅考虑输入数据结构,而j a c k s o n 方法不仅考虑输入数据结构,而且还考虑输出 数据结构。 2 - 2 2 面向对象的软件开发方法 2 0 世纪8 0 年代以来,随着应片j 系统的日趋复杂、庞大以及结构化系统开发方 法在应用上出现的问题,面向对象方法以其直观、方便的优点获得广泛应用。面 向对象的软件开发方法最早于2 0 世纪6 0 年代后期提出。最初也是从面向对象的 程序设计语言开始的,然后逐渐形成面向对象的分析方法和面向对象的设计方法, 最终形成一套系统的软件开发方法。 面向对象方法的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使 开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是 使描述问题的问题空间与实现解法的解空间在结构卜尽可能一致【8 】。面向对象的软 件开发方法主要包括曲向对象的分析、面向对象的设计和面向对象的实现三个步 骤。 面向对象的需求分析方法的核心是利用面向对象的概念和方法为软件需求建 造模型。它包括面向对象风格的图形语言机制和用于指导需求分析的面向对象方 法学【。面向对象需求分析的主要任务是分析并了解问题域中涉及的主要对象、对 象之间的关系,然后对问题域构造简洁、精确、可理解的正确模型。基于u m l 的 面向对象需求分析的主要过程【l 】如图2 2 : 分析师 图2 2 面向对象的需求分析过程 1 ) 首先利用u m l 中的用例及用例图描述需求。从业务需求描述出发获取执 行者和场景;对场景进行汇总、分类、抽象,形成用例图;确定用例与用例之 间的关系,生成用例图; 2 ) 利用包图及类图表示目标软件系统的总体框架结构。根据领域知识、业务 第7 页 国防科学技术大学研究乍院硕士学何论文 需求抒6 述和既往经验i 殳汁目韵:系统的顶层架构;从业务需求描述中提取关键概 念,形成领域概念模型;从概念模型和用例出发,研究系统巾主要的类之间的 关系,生成类图。 面向对象设计就是把分析阶段得到的需求模型转变成符合成本和质量要求 的、抽象的系统实现方案的过程,也就是把问题空间中模型映射到解空间中。它 也是对需求分析阶段得到模型进行细化的过程。基于u m l 的面向对象的设计主要 包括以下步骤【l j 如图2 3 : q 六 设计师 用例描述及用 l 设计用例实施方案| 体系结构图 侧图 使用 用例实现图 设计技术支撑力案 领域概念模翟 类图 设计用户界面 其他( 顺序圈、活 动图等) 分析模型精化设计摸型 设计模型 图2 3 面向对象设计图 1 ) 针对分析模型中用例,设计实现方案。实现方案用u m l 交互图表示。 2 ) 设计技术支撑设施。在大型软件项目中,往往需要一些技术支撑设施来帮 助业务需求层面1 - _ 的类或子系统完成其功能。这些设施本身并非业务需求的一 部分,但却为多种业务需求的实现提供公共服务。 3 1 设计用户界面。 4 ) 针对分析模型中的领域概念模型以及第2 、3 两个步骤引入的新类,完整、 精确地确定每个类的属性和操作,并完整的标示类之间的关系。 面向对象的实现,即指软件功能的编码实现。它包括:每个对象的内部功能 的实现;确立对象哪。一些处理能力应在哪些类中进行描述;确定并实现系统的界 面、输出的形式及其他控制机理等。总之是实现在面向对象设计阶段所规定的各 个对象所应完成的任务。 2 3 面向方面软件开发方法 面向方面软件开发从编程层面起步,但是随着a o p 的迅速发展,研究人员认 识到面向方面技术带来的模块化特性可体现在软件开发的早期而并非只在编程阶 段。因此,面向方面的思想被进步应用到软件开发生命周期的各个阶段,从需 求到实现阶段甚至整个软件生命周期。从整个软件生命周期研究面向方面软件开 发的现状,主要包括如下方面( 如图2 4 所示) : 第8 页 囝防科学技术大学研究乍院硕士学化论文 图2 4 面向方面软件开发 1 ) 面向方而的需求工程( a o r e ) 典型的方法包括t h e m e d o c 【9 1 、a r c a d e 【1 0 l 、 a r g m 1 、a s p e c t u a lu s ec a s e s 1 2 】【1 3 】【1 4 】【1 5 】【1 6 1 17 1 、c o s m o s 1 8 19 1 、a o r e c l 2 0 等。 主要是在需求层面上识别和处理横切关注点的技术。 2 ) 面向方面体系结构建模( a o a m ) 典型的方法包括p c sf r a m e w o r k 2 1 1 、 d a o p a d l 2 2 1 、a o g a 2 3 1 、t r a n s a t l 2 4 】等。 3 ) 面向方面设计( a o d ) 典型的方法包括:t h e m e 2 5 1 、u s ec a s ed r i v e na o d ( a o s d u c ) 【2 6 】、s t a t ec h a r t sa n du m lp r o f i l e s ( s u p ) 眠a s p e c t - o r i e n t e dd e s i g n m o d e l l i n g ( a o d m ) 2 引、a s p e c t - o r i e n t e da r c h i t e c t u r em o d e l l i n g ( a a m ) 【2 9 1 、u m l f o ra s p e c t s ( 切? a ) 【3 0 1 、c o c o m p o s e 3 1 1 等。面向方面设计使用相应的设计语言清 晰的描述横切关注点。从目前的研究来看,面向方面建模分为扩展u m l 和非 扩展u m l 。而扩展u m l 进行面向方面建模又有两种形式,轻量级扩展( 1 i g h t w e i g h t ) 和重量级扩展( h e a v yw e i g h t ) 。前者利用u m l 提供的标准扩展机制直接 在模型层次上完成扩展,后者在元模型层次上进行扩展。 4 ) 面向方面编程( a o p ) 面向方面是从编程起步的,因此目前面向方面编程语 言已经十分成熟。典型的语言有:a s p e c t j 4 1 、a s p e c t c + + 3 2 1 、a s p e c t c 3 3 1 、 h y p e r j 5 1 、j b o s sa o p 3 4 1 、s p r i n ga o p 3 5 1 等。 5 ) 面向方面程序验证目前面向方面验证方法主要集中在模型和代码两个层 面上进行。文献【3 6 】介绍了在模犁上进行分析和验证的方法,解决了在编码前 对软件相关属性的验证问题。文献【3 7 】介绍了将a s p e c t 代码编织到b a s e 程序后 对得到的代码进行验证的方法。 2 3 1 横切关注点问题 第9 页 围防科学技术大学研究牛院硕士学何论文 考虑一个图书馆管理系统,在b o o k 类中,刈+ 图书馆中的书的每一个操作都需 要授权检查以确定用户具有操作的权限。用传统的面向对象的方式去实现该系统 时,类b o o k 及其包含的操作如下所示: p u b l i cc l a s sb o o k p r i v a t em b o o k n u m b e r ;, p u b l i cv o i da d d b o o k c o p y 0 p u b l i cv o i dr e m o v e b o o k c o p y ( ) ) ) v o i da d d b o o k c o p y 0 i f ( ! g e t c u r r e n t u s e r o c a n p e r f o r m ( o p _ a d d b o o k c o p y ) ) t h r o wl l e ws e c u r i t y e x c e p t i o n o ; ) t r y b o o k n u m b e r + + ; s y s t e m l o g 1 0 9 0 p e r a t i o n ( o p _ a d d b o o k c o p y ) ; ) c a t c h ( e x c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论