




已阅读5页,还剩50页未读, 继续免费阅读
(物理电子学专业论文)基于面向方面的工作流引擎研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 本文以z 作流引擎为研究对象,运用面向方耐的软件工程思想,采用i j l l 霹筏位建模方法,迭我壤藿式并发7 甏囱方嚣豹王终漉弓| 擎。嚣先,本文论述7 面向方面的王作流引擎的需求分析、必注点识别,工作流引擎的体系结构可视化 建模,工作流引擎内核调度机制等主袋内容,分层、分模块设计构建工作流弓i 擎, 实残了嚣内方鬈的工箨滚萼| 擎开发过糕。其次,零义使用三维象阗表示流纛豹方 法,刻划流程轨迹和执行情况,戬便捕获工作流萼l 辇的关注点。把控制方丽釉运 行方面分离,解决了面向对象方法中,工作流引擎迁移存在的散射和缠绕问题。 再次,论述了蕊囱方面的工作漉引擎的开发经验,弗对它进行了测试和性能详估。 最嚣,鼹全文进行7 憨缨襄震望。 笑键词:工作流引擎磷向方面关滤点迭代增量式开发聊l 建模 a b s t 糟c t 拜 a b s t r a c t t h i s p a p e f d o e sr e s e a r c ho nm ew o r k n o we n 垂n e ,a p p l i e s t l l _ e 幽c o r yo f a 蹲c c o 蠢鞠l e ds o f 晴8 f cc n 螽n e 蘸珏参鞋s e s 氇e 氆搴国。蠡o fg m 毛v 主s 黻l i z e dm 舔c l 酿娶 a i l di m p l e m o i n sa s p t - 耐e n t e dw o r k n a we n 百n ew i l li t e r a t i v e - i n c r e a i n e i l t a ls o n w a r e d e v e l o p m e n t 鼬s t l 孔i l lt l l ec o n t c x t s o m ek e yc o 眦e n t sa r cs t i l d i e d ,跚c h a st t l e f 锶疆i r 锄鼹括o f 豁p e c 扣。砖鼹l e dw f 鹣e e 嘲i d 鞠蛀蠡e 商鼹。 秘逼i ,砭s l 王羽j z 醴 m o d e l i n gl l s e d 缸t 圭l ea l d t e c t t l r eo f w o r k n o we n 酉赫嚣瓤ds c h e d t l l 嚣o fw f ek 黜e 1 ei si l i l p l e n l e n t e di l lm e r a r c l l i c a la r c h i t e c t i l r ea i l dm o d u l e s ,e a c hp 缸t so f w o r k n o w 翱g 缸ea r ed e s 撕b e d ,硒d 重h e 敬e c 鲥v c 辩o c e s so f w 删c f l a w 翎g i n ei s 勰a l y z c d i ti si n 瑚e df 殛壕ei t e f a l i v e - 趣e 瓣瓣e 赶t 蠢s o 重酗a r ed e v e l 娜e 硅t 则e s so fa s p e c t - o 矗黼把d w f e s e c o n d l y ,n 鹏e d i m 跚s i o n a ls p ei sp r c s c n t c dt i 碡p r o c e 蹶i tc h a r a c t c r i z 黜t i l e p r o c e s sp a m a i l dg t a t o f 蹴鲫石o n ,n l i s 、张yh e l p sc a p t u r ct l l ec o n c c m so f w f e ,1 1 l i s p a p 程弘潞证d e s 鑫翠c c 一。蠢霉稳d 采a c 魏辍e 嫩o fc o 列薹横$ ,i d 。垂h e s ke 翩訇r o l s 勰d o p c r a l i o n a lp r o c e 鼹,乱c o u 聪a v o i dt a 堇l g l 甜c o d ea n ds c a t t e r e dc o d ei nw f e 缸徽s f 酰 r d l ma ni n “s t r i a li i i l p l e i n e i l t a t i o n 雠p 耐e l l c eo na s l ,e c 伽r i e n t e dw f ei sb r i e n y p f e s 翩t c d ,t h e ni t 主s 量铭t e da i l dp 盯勤糯e d “a l u a l i o n f i n a l 坟t h cf l l l l t e x to fa 辩l m m a f y 搬癜p 唧e e t i v e8 糙遮纽攮 l ( e yw o r d s :w o r k n o we i l g i n e船p e c t o r i 髓l t e d c o n c e f n i t e f a 磊v ei 蚤c 端a 琳托壅d e v e l 印撙髓u m 毛堇n o d e l 堍 独创性( 或创新性) 声明 本人声明所嫩交的论文燧我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别标注和致谢中所罗列的内容以外,论文中不包 含其他人已经发袭或撰写过的研究成果;墩不包含为获德殛安电子秘技大学或其 健教育机构的学位或证书丽後粥过静耪辩。与稳一同工作的同志对本蟒究所骰豹 任何贡献均已在论文中做了明确的说明并寝示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本入签名: 童! 邂 嚣麓 堡茎:耋: 关予论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规寇,即:研究 生农校竣读学使期闫论文工手棼静知识产投謦位属西安愈予科技丈学。本人保证毕 盈离校后,发表论文或使用论文成栗时署名荜位仍然为麟安电子科技大学。学校 有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或 部分内容,可以允诲采用影印、缩印或其他复制手段保存论文。 本人签名:垂i 篷盛 导师签名:j 跨 日期q 显:i : 日期。8 3 。6 第一章绪论 第一章绪论 基于工作流引擎的电子政务信息系统,为协同办公提供了高效的工作平台和 网络应用环境。本章介绍了工作流引擎研究背景和研究意义,论述了工作流引擎 技术的研究现状与发展趋势,在此基础上,说明了本文的主要研究内容 1 1 研究背景和研究意义 当前,部队对信息化建设日益重视,电子政务信息系统的框架体系已初步构 建,取得了信息化建设的显著成果。本课题来源于部队某局信息化应用系统项目。 为建立准确、高效和完善的自动化办公应用系统平台,在机关内部实现协同办公, 实现办公自动化、管理现代化、决策科学化、服务信息化的电子政务信息系统, 实现机关的知识管理、信息积累和服务质量最佳化,成为该局信息化建设的新的 需求点。所开发的综合办公系统,依托部队机关办公网络基础,根据各处室的业 务特点,以满足实际业务需要和日常办公为目的,利用信息化新技术,为工作人 员提供统一的、综合的、规范化的高质量办公服务,提高整体工作效率和管理效 率。 随着政务公开,信息化政务办公系统的开发和应用,党政军机关和部门己陆 续建立了自己的w 曲服务器和网站,根据具体业务需求,开发和部署了各种业务 工作流应用系统。但由于各单位在信息化建设中,存在技术和经验的差异,以及 对业务工作流研究的片面性,造成电子政务并未在真正意义上得以实现,信息化 设备和应用系统在规划建设、管理维护以及安全性等方面,还有待改进、升级和 优化。如图1 1 所示,电子政务综合信息系统,说明了电子政务综合信息系统的 基本架构。基于w 曲服务的工作流规范推动着w 曲服务进入一个全新的阶段。 以基于b ,s 体系结构的多部门协同的办公自动化,成为当前政务信息化建设的鲜 明特征。对分布式工作流引擎的需求也就越来越迫切。 工作流管理系统可以构建电子政务的应用系统集成平台。目前,有各种不同 的专业应用系统和数据库部署在机关办公内网中,为机关办公提供着多方面的技 术支持与服务,每一个专业应用都包含着所支持业务流程的领域知识和功能。这 些专业应用中的自动化流程,被拼装到政府办公环境的非自动化流程中,带来涉 及其他多方面应用的新功能需求,专业应用系统之间的协同问题也就日益凸显。 工作流管理系统的开发部署,应用系统集成平台的实现,为整合所有的专业应用 提供了解决方案。 2面向方面的工作流引擎研究与应用 工作流管理系统为机关协同办公提供了工作平台。通过流程定义和流程管理 实现业务过程的自动化( 比如使用基于w 曲的应用) ,有利于不同业务部门的协 同工作和组织管理,能够显著提高业务部门工作效率和质量;有利于机关工作人 员的效绩评定,在定性评估工作人员的工作成绩的基础上,为工作人员的定量考 核提供了数据支持和依据,更有利于推进政务工作的标准化和透明化。 在计算机网络的环境下,工作流表现为信息和数据在多个用户之间交换。工 作流管理系统的核心构件是工作流引擎。将工作流引擎作为一个软件构件嵌入到 工作流管理系统或其他应用系统中,可以提高软件系统的复用性和易维护性。 图1 1 电子政务信息系统示意图 对工作流引擎技术的研究,是最近工作流研究领域的热点之一。按照部门业 务工作,优化综合业务处理流程,使得各个业务环节既可独立运行又可紧密集成。 利用强大的工作流引擎调整业务流程,保证政府机关在管理模式、业务流程发生 变化时,解决方案能进行适应性调整,实现柔性和可靠性管理。使用工作流技术 是提高管理的技术手段之一,高效和质佳的流程有三个特点:快捷、规范、低成 本,它可实现政府机关各管理要素的有效整合,形成强有力的工作流程,具有自 动调节和约束作用,可极大地提高整体机关工作的效率和质量,从而迅速地提高 执行力。它是个高速运转的辅助管理机器,是加强内部管理的有效手段,维护 第一鬻绪论3 着机关工作紧张有序规蕊的运转。两对工作流引擎技术的研究、成用等方面远只 是尉剐嚣始,琥有研究戎栗存在复瘸经差、痿患缡鹨魏范窝标准不统一l h 、德拄 性弱、可扩展性差1 2 l 等问题,还没有形成比较通用的、完善的、系统的建模方法【3 l 有些工作流引擎的设计商“牵一发而动全身”的缺陷【4 】,所以,工作流引擎有待深 入疆究豹翔麓还绥多,懿麓技本应震方嚣还不蘩蟪濑现羲要解决懿毅涸题,还骞 待理论和实践整合,达到和谐应用之黼的。 本课题的研究符合幽前社会发展的需要,对于政务公开和降低行政成本铸方 嚣,具有实鼯的研究价馕、应用价值穰现实需求。实现办公自动他、管理现代亿、 决策群学穗、派务信怠稳的电子政务箍惑系统,君会更荮建鼹务部驮。该课题的 研究与应用,不仅能提商部队机关管理水平,又可以降低办公镣理成本,实现机 关的知识管理、信息积累和服务质量最佳化,对部队切实履彳亍好职能使命,提高 糗关韭务处毽戆力移办公效率,吴有壤实意义。 l 。2 国内外发展状况 工作流技术是计算机支持的协同工作理论的一个重要分支,也是当前计算机 应用领域的研究热点之一。研究工作流是为了通过将业务流程分解成定义良好的 任务、角羲,按照一定豹嫒粥窝过程,羧行这些任务芳对它霞l 滋学釜控,挺楚办 事效率,降低生产成本,提高管理水平和办公效率。 进入二十世纪九十年代后,计算机技术和网络技术逐渐成熟,工作流系统的 劳发与研究送入了一个掰除段。工作溅技术被逐步应用于办公蠢动化、电讯效、 软件工程、翻造业、金融渡、银行盈、辩学试验、望象保健领域和靛运监领域吲烈。 还可以利用工作流技术管理数据挖掘过程【”。电予化的工作流w 以很好地使事务 办理实现部分可视化,具备查询、跟踪、监督,强大的统计分柝功能,便于从海 整豹数据审憨结撬簿,预翔趋势,挖攘潜在售怠,焚歪确豹决策与工俸谬蘩,提 供数据支持和信息资源参考。 对于工作流的实施,炭质是基于一个工作流引擎或平台,通过扩展开发实施, 潢足用户对滚程信息纯疲建的需求i 4 l 。王终流弓| 擎楚工作流管瑗系统中为业务滚 程实例蟊节杰实例提供运行环境的服务软件f 疆】,怒熬个工作流餐理系统的核心。 当前已有的备种类型的工作流引擎,分别表述如下: 第一类,基于纯订l ( e x t e n s i v em a k e u pl a n g u a g e ) 技术的正作流引擎。例 魏,x p d 0 8 瓣3 ( x 难lp c e s sd e 珏至t i o 蘸毛a 珏g 珏毫g e ) 、转p 池( b h s i 秘e s sp r o e e s sm o d e l l a n g u a g e ) 和0 m g ( o b j e c tm a n a g e m e n tg r o u p ) 的w o r k n o wm a l l a g e m e n tf a c i l i t y 。 其中,x p d l 是工作流领域最为重要的一个标准,臼前大多数工作流引擎是依据 4 瑟向方面的l :作流;l 擎辑宽与应用 该标准设计拜发的。 第二类,基于w 曲缀务技术煞工俸流弓l 擎。铡翔,2 0 0 2 年6 月,b e a 、融a l i o 、 s a p 、s u l l 网家公司提出的w s c i ( w 曲s e i c ec h o r e o 脚h yi n t e r f a c e ) ,它采用 证l 语言编写的w s c i 规范,主要描述了一个与其它服务进行协作交互的w 曲 激务囊交换煞滚怠浚。w s c 王是第一令基予w 岛激务技术戆援藏,它摆动w 弱骧 务进入了个全新的阶段。又如,2 0 0 2 年8 月,m i c r o s o f t 、b e a 、鹏m 、s a p s i e b e l 联合提交发布的b p e l ( b u s i n e s sp r o c e s se x c c u t i o nh g i l a 喾e ) ,综合运用了 x 酗n g ,w s f l 等技术 9 】。此规范攒述如何处理输入的消息,京不是一个关卡业 务流程筑格纯定义的藏瓣沁】。简单豹说,可将它餐作诬l 形没盼编程语富,提 供了将w s d l s e n ,i c 铺组合成控制流的能力【“】。 第三类,开源工作流弓i 擎。例如,簇于讧l 技术的s h a r k ,它是完全根据工 箨滚警理联魏焱莛实麓豹,其莠霉扩矮魂戆豹工j 终浚弓| 擎,怒瓣蔫嚣系续稳较为 庞大和完善的开源工作流引擎。不仪提供了对分稚式的支持,而且提供了多线程 的事务安全控制。它利用x p d l 定义流程,同时逑包括服务器端的用于活动节点 撬行的工终流管理联盟工具代理a p l 。s h 破中的每个缀律,如持久层,事妨篱理 器,脚本弓| 擎,流程库,都是可戳按照标准实施运用,两且_ j 丕w 以被具体瓒强的 模块扩展和替换。2 0 0 4 肇9 月9 日,s h a r k 发布了s h a r k l o 版本。又如,o f b i z 开源工作流弓l 擎,它的最主要特点是:提供了一熬套的组件和工具,这些组件和 王吴豢是蘩予j a v a 语言嚣发戆w 两簸溺翟痔,惫拯实钵弓| 擎,毅务季| 擎,溪惠 引擎,工作流引擎,规则引擎等。采用j a v a 编程语言,提高了o f b i z 的通用性、 跨平台性和兼容性。o f b i z 先前的工作流引擎是基于w 伽c ( w 酬( n o w m a n a 踞嘲e 蛾c o a l i 蛀o n ) 秘o m g 的鬏藏,使震d 毛董笙荧流程定义语言,露o 紧b i z 新舨的工律流引擎采雳了s h a 政工作流弓| 擎,已经不再使用嗽i z 自身的工作流 引擎。开源工作流引擎迸有很多,如爱活可扩展的旗于流程和状态的工作流引擎, 它能够满足众业级的业务流程到小范围的用户交露流程。通过使用可插拔秽分层 绉秘,霹渡方矮途容绣务秘工终流语义。开获滚磷静o 哆髓w f 嚣王捧漉雩 擎。它 包括可升级的三个组件:引擎、工作列表和w 曲界面p “。它们都是根据具体的应 用需求而开发的,具有备自的优点。 筹四类,其寿图形纯l q 凌诗器黪王傍流弓| 擎。镶翔,;b m 梦王传流弓| 擎。它蔻 括一个w 曲应用程序和一个日程安摊程序,可以阁形化地定义流程。j b m p 鼹一 组j 2 s e 组件,可以作为j 2 e e 应用集群部署。目前,国内有许多技术人员在研究 b p m 。又如,国内西安协同工作流系统,使用了;a v 鹅c r i p t 和d h 喇l ( d y l l a m i e 嚣t m l ) ,它梅工终流g | 繁和工终滚滚程定义接溜鹣实现,藕合猩一起。毽蹩这种 开发方式,肖很多天生的缺陷,例如,由于w e b 对图像处理技术还不完善,图形 化不美观,很多操作无法实现,接口凭法处理,调试开发困难嘲。 第一豢绪论5 综上所述,工作流技术应用予办公自动化系统,将使业务流程逻辑从应用软 俘中分离爨袋,使矮户蜀黻在不修改暾用软俸具体萌髭酌情况下,透过修改琢骞 过程模型或定义新的过程模型,实现对系统功能的改变和扩展,这样,就很大地 提高了软件的适用性和麓用性,更好地发挥出系统的效能。但嫩,大多数工作流 系统爨然不够灵活,无法瀵是不錾交缳豹实琢零袋。瑟豆,王穆浚弓| 擎产晶童要 存在的闯题猩于:难以按照需要的功能组装;重爨级的工作流弓l 擎产品,在实际 应用中,却只使用了很少的功能;丽那些轻量型工作流引擎产晶,有些功能上不 黥满足或缨粒度不够,缀难达到用户翔二次开发麴鬟求,这样,导致工作流产晶 氇就存在豢锻的缺陷鞋t 2 】。许多工佟流弓l 擎是绩会疑体的韭务流程丽开发盼,霞 此,适用予些特定的众业级工作流管理系统应用【7 1 ,但不能够适用于电予蛾务 的实际业务流程应用,襁电子政务信息系统中,造成了较差的爨用性和可扩展性 豹嚣凌。受鬟要熬是,瑗有豹工终滚孳l 擎窝工终濂岁晶,诲多楚采霜覆囱霹象技 术和模式开发的,但是,面向对象开发关注的是对象、操作等,很容易产擞散射 与缠结效应,会导致软件出现难模块化和难复用的问题【1 9 1 ,需求与对象的不致 性,导致了掰追溯性和可理鳃性降低,因此,开发瓣工接流弓| 擎产晶存在教蹇雩、 缠结、耦含、可演话举佳,封装髋差等缺陷f l 职玎。a o p ( a s p e c t o 蜮枷 p r o 黟a i i 瑚锄g ,面向方面编程) 执行策略在质量改进的直接应用,强化记录的质量 保证,使得系统具有多爨化和不自觉性特性1 2 9 】。针对工作流系统,m a r k 列e i l l 等 磺究者定义豹工终滚茹鬻表述为稳锈对邑毒鹣协弱处理遥簇夔编移;移i 躺e m s t m n g 等研究者对工作流的异常定义,可表述为没有人工千j 爱,计算机就不能 正确处理的情况【3 9 】。工作流引擎的异常处理机制侧蘑于某一方顾f 4 l 】,e a c 规则【3 9 】 掇涉及至q 备葶孛处理方法,毽囊蔻所能够处理豹异誉特凝不完整。系统管理受譬动 管理、盗控和配置工作流管理系统不楚一个较佳的瓣决方案。辩工作流弓| 擎的溅 试研究,为设计和开发自动化的工作流引擎测试评估工具提供技术参考,谶而, 改进工作流镑理系统,实现工作流管联系统的策略优化和动态调整,实现自镣理、 自调整、自狻复等臻疑l 谍。 1 3 1 研究内容 1 3 本文鹣研究内容 面向方瑟懿工作滚弓l 擎研究帮应餍,是鞋工俸滚雩| 擎兔磷究对象,运爰露淘 方面的思想,u m l 应用模式,进行邀代增量式开发的统一过穰。 6掰囱方面匏工髂流;| 擎研究与寝翔 ( 1 ) 分析了面向方西的工作流引擎的主要内容。本文从软件舞发生命周期的 多令阶段,采弼瑟淘方蟊软掌 工程愚想稻软 牟牙发方法,分瑶、分模块戆设诗构 建工作流引擎。 ( 2 ) 详细论述了面向方面的工作流引擎的需求分析,关注点识别,可视化建 横,弓| 擎迁移攒式等内容,隽实现瑟囊方嚣戆工终浚霉l 擎,裁定了会瑾懿实藏方 鬃。本文使用三维空闻表豕流程,刻划出由活动、角色、时间三个基本特征所构 成的流程轨迹,通过建立流程轨迹集合刻划流程执行情况,捕获工作流引擎的必 液点。给出了褥岛方面的控制分离方法,把控制方霹秘运幸亍方耍分离,解决了褥 囱对象方法孛,工作流弓| 擎迁移存在静数菇帮缠绕淘邋。 ( 3 ) 采用遮代增量式搿发实践,实现了工作流引擎,并把它成用于部队某局 综合办公系统,还分析了工作流引擎的辫常处理机制,对面向方面的工作流引擎 邈簿了测试纛羧耱谬甓。 1 3 2 论文结构 本文共分嚣章,其主簧结鞠安撵稳内容魏下: 第一章绪论。主要概述了工作流引紫的研究背竣,研究意义,园内外发展情 况,在此基础上介绍了本文开展的工作。 第二章甏囱方嚣豹款移避程。分绥了统一蓬疆、绫一建摸语蠢褒瑟良方嚣缡 稷等基本理论,给出了迭代增量式的软件开发方法,为面向方面的软件开发实践 提供应用模式和方法探讨。 第三章联向方面的工传流弓l 擎研究。首先简要娥分绍了工 譬瀛瓣相关理论, 然瑶驭面囱方麓的工作瀛弓| 繁为对象,谨缨逡论述了颡向方面静工作流雩| 擎磷究 思路,工作流弓l 擎的含义和功能,阐述了工作流引擎的关注点识别过程,重点分 析了面向方面的工作流引擎建模和迁移模式。该章是本文的核心部分。 篾霆章甏囊方瑟熬工侈浚雩| 擎应雳。论述了瑟淘方嚣夔王俘滚孳| 擎在综合办 公系统的应用,分析了工作流引擎的异常处理机制,对面向方面的工作流引擎进 行了测试和性能评估。 第五章绪论。总结本文宠或鲍工偌,弗撵出今聪簪 究工作的霪点和内容。 1 3 3 本文的特点 零文运蠲送饯增量式软终开发模式,磷突纛秀发了瑟彝方嚣熬z 终滚弓| 擎。 全文详细地论述了面向方面的工作流引擎的开发,实现,应用,测试和性能评估。 本文应用面向方面的方法学构建工作流引擎,为捕获方面,识别关渡点,将工作 第一攀绪论 7 漉引擎所具肖的各种功能分离成各秘方褥,形成一个迭代增量妓软枣# 开发过程, 然后,分蘩独立开发;在郄署阶段,释精配萋售患整合稳箨,遨样,在运行辩动 恣组装为最后的执行序列。因此,运用面向方面的软件过程和迭代增量式软件开 发方法,有助于工作流引擎开发实现,有助于自动生成代码,裔助于工作流引擎 捻传豹重两,骞魏于操持嚣求、竣谤、绽羁、实臻、浏试窝郝溪之闼豹一致魏。 第二章面向方面的软件过程 9 第二章面向方面的软件过程 本章将介绍软件工程中的统一过程,统一过程运用的统一建模语言,以及面 向方面编程等内容,从软件开发生命周期的多个阶段讨论了面向方面软件的开发, 为软件项目的迭代增量式开发提供实践模式本章指出,面向方面是一种软件工 程的思考问题方法,将问题分解为高内聚、低耦合的方面,从而,有助于研究者 采用面向方面范型进行软件系统开发。 2 1 统一过程 统一过程( u l l i f i e dp r o c e s s ,u p ) ,是指开发团队为将用户的需求转换为软件 系统而执行的一组活动。然而,统一过程也是一种通用过程框架,可根据项目的 特殊需要和可用资源增加或删除资源,从而自定义该过程【l 4 1 。 本文认为,在软件工程实施过程中,坚持“一个核心( 体系结构中心) ,二个 关键实践方法( 用例和建模) ,三个主要元素( 构件、工作人员和活动) ,四个阶 段( 初始阶段、细化阶段、构造阶段和交付阶段) ,五个工作流( 需求工作流、分 析工作流、设计工作流、实现工作流、测试工作流) ”,进行软件开发,一定能开 发出质量较高的软件系统。本文在研究和工程开发实践中,应用了这一方法,开 发了面向方面的工作流引擎,并把它成功应用于部队某局的综合办公系统。“一个 核心,二个关键实践方法,三个主要元素,四个阶段,五个工作流”的含义阐述 如下: 体系结构中心( a r c t l i t e c t u f e ) 是指系统作为一个整体的基本组织方式。体系 结构的要素包括:静态元素、动态元素、元素的组织方式以及指导系统组织的总 体架构样式。体系结构要注意解决好诸如性能、可伸缩性、重用、经济和技术的 限制。 用例( u s ec 船e ) 是由一个或多个参与者( 人或系统外部的实体) 以及系统 自身进行的一系列活动,活动的结果会给一个或多个参与者带来若干价值。统一 过程的一个关键特性是将用例作为软件开发的驱动力。 模型( m o d e l ) 是能动的抽象认知结果,它对应一个认知活动的主体和认知 活动的原则。换言之,模型是现实的简化,并不隐含时间顺序。它具有一组完整 语义的信息,包括两个方面的内容:一方面,对现实的简化;另一方面,认知主 体的视角和抽象层次。前者是被认知的客体,表现为各种类型的图及其包含的元 素和关联;后者反映认知的主体,表现为各种类型的视图。两者都是模型不可或 l o 蒸于西囱方瓒的:f 幸# 流 | 擎磷究与瘟掰 缺的要素。横激可帮助我们在简约繁复的基础上,捕捉现实问题的本质,勾勒软 终方案豹雏形,鸯动予麸阕邋翻方案静j 毫渡过程中,受好遗诀识、疆解帮沟逶l 蟮 。 建模( m o d e l i n g ) 是捕获系统本质的过程,简化了认证过程,化简了求解过 稷。对于一个系统建模,基于不同的简化动机和简化水平,可以得到多个模型, 霹以播述系统熬黪态缝掏,瞧霹淤播述蓉绞匏动态零为;襞够攒述系统熬宏残瑟 貌,也能够描述系统的微禳情景u ”。 在软件工稷察施过程中,如图2 1 所示,四个阶段为初始阶段、细化阶段、构 造阶段和交付阶段。初始阶段以实现软件舱生命周嬲强标为阶段缓柬标志;细化 阶段戮褐建密软律静生命捌期俸系结孝奄兔阶段结束称悫;掏造阶段以实现软静静 初步操作能力为阶段结束标志;交付阶段以把软件产赭发布为标志,进行软件系 统的实施部署,完成软件系统的整体开发。在每个阶段中都包含一个或多个迭代 增爨式开发遥疆,最终实璇软绎系统戆舅发亵设诗毽搽l 潮。 初始阶段 生命周期目 细化阶段 迭代2 迭代x 命周期体系结 构造阶段 迭代x + l 迭代y 初步操作能 强2 1 嚣令除段秘主要翅分撂恚 交付阶段 构件是指系统开发中,发挥作用的任何有意义的组件或可交付信息块。 工作人员是指在可能执行该项目的个人角色( 负责做什么工作) 。在统一过 援巾,工终入受秘参与者鸯嚣鄹,参与蠹楚终部久受“疯里季”,聪工终入受是内 部的,可能是“向外看”,也可能不是。参与者与系统之间具有操作域使用的关系, 而正作人员则怒参与系统歼发的人员。 活动,镣个工作漉都识含几个活动,在工作流环境中,活动是指工作入照 麓生产梅俘蔼执行的一顼任务。在本文巾,活动范畴缀广,获离缀豹壤念到蔫户 感兴趣的事物( 构建域模型) ,再到与物理系统相关的具体工作( 嶷现类) 。指出 了工作人员做什么,某部分工作由谁负资。 嚣求王黪滚夔主要活麓是擒建震锤模墅,舞l 铡模型瘸于获敬德定义系统熬 功能需求。 分析工作流的主要活幼是构建分析模型,分析模型帮助开发人员细化模型, 并构造从用例模型中获取的功能需求。 设计工捧流的主要活动是构建设计模型,设计模型摇述了胡铡的物理实现, 也包含分析模拟的内容。设计模型可作为实现模型的抽象。 第二章瑟向方蓠的软锌避穰 实现工作流的主要活动是构建实现模型,实现模型描述了如 可将设计模型 元素努惫或欲俘缝律,如源代玛文 孛、王( d y n a m ek l l l 【班赫 动态链接瘁) 耪 e j b 。 测试工作流的主要活动是构建测试模型,测试模型描述了如何使用集成和 畚绕测试怼爽瓣漠型懿瑶执霞维箨遴纾测试l 瑚。 迭代开发( i t e r a t i v ed e v e 】o p m e n t ) 是u p 和大多数其他现代方法中的笑键实 践。在这个缴命周期方法中,开发被缀织成一系列固定的短期小项目,称为迭代 ( i 钕a 蛀v e ) ;每次迭代都产生经过测试、集成并可执行豹局部系统。每次迭代酃 其有各自蓊霈求分拆、设计、实现秘测试活动【瀚。 迭代生命周期基于对经过多次迭代的系统进行持续扩展和精化,并以循环反 馈和调整为核心驱动力,使之最终适獭的系统。随着时间和一次又一次的迭代递 进,系统壤爨式| 遮发展完善,霾瑟这一方法遣被髂隽迭筏彝壤爨式舞发( i 搬确v e a n di n c r e a m c n t a ld e v e l o p m e n t ) 。因为反馈和调整使规格说明和设计不断地进化, 所以这种方法也称为迭代和进化式开发( i t e | 确v ca i l de v o l 砸o n a r yd e v e l o p m e n t ) 。 如图2 2 掰示,说明了迭代式开发过纛。 豳2 。2 迭代式歼发过程示纛丽 诸多失败的软件项目总结之后,歼发人员认为对项目的错误假设是主要因素。 这个假设是:规格说明是可预知的和稳定的,并且能够在项目开始对就正确定义, 嚣对其舂低交更率。这静缀设与事实警擎遂瑟貔,舔豢导致了幸价离暴懿误解。研 究结果表明,典型的软件项目在需求上会经历2 5 的变更,而对乎大型软件项目, 其变更率有的高达3 5 剥5 0 之多1 1 6 1 。 如果基予较 串长期稳定熬这一瑕没,瑟终出黪分辑、建模、嚣发或管理嶷羧 都具有掖本缺陷的,例如瀑布式开发过程,实现的系统就存在徽多问题。变更对 于软件项目来说是永恒的。迭代和进化式方法正视井包容了变熙,并且根据反馈 对局部和进他的规格说嬲、模型和计划进_ 亍改写。在复杂、变熨的系统中( 虫辩大 多数较辞磺醛 ,反馈秘调整是成秘熬关键要素l 鞠l 潲。 综上所逃。本文对需求、分析、设计、实现、测试和部署的理解是:需求是 萋于瑟囱方嚣的工作流;| 擎磷究与斑蠲 鸯什么事情需鼹做,实现什么目标;分橱是如何芷确的做事情,为了实现目标, 督潋采用豹方法秘解决方案肖稻些,存焱静困难,鬟袋解决豹难煮楚行么等等; 设计是开始做攀情,制定出可以采用的方法和解决方案;实现是派确地做事情, 依据规划,分步骤、有目的地进行实施,基本实现目标;测试是冀检验所做的事 壤怒否完善,蹩否瀵足要求:蘩簧是实现了羲定嚣檬,痉雳残果,鼹务柱会。 2 2 统一建模语言 统一过程广泛运用了统一建模语言( 琅重王,玎蠢蠢醚m o 撼魂妇g 蕊g e ) 。 强溅, 的核心是模型,在软件开发过程中,狮订l 是实际事物的简化模型,可以帮助项圈 团队理解软件内部复杂结构的方方面面。设计u m l 的目的是帮助软件开发的参 冬嚣稳建模燮,镬系统对戮软霹见,搀邂系统戆结孛鼋秘行鸯,掏逡系统著夔瞻编 写文档记录开发过程中所做出的决策。统一过程的许多任务会涉及到i m l 的使 用【1 5 ,1 6 1 。 u m l 是描述、构造和文档化系统制晶的可视化谱裔,其含义的关键点是可键 识,u m l 坟仪跫标准豹鹫影纯表示法,铡螽框、线等l l 螂。u 鑫伍怒强形健表示法 的潦实标准,用来绘制和展承与软件相关的图形( 以及文字) 。它魑一个庞大的液 永法体系【2 0 1 。袭2 1 ,u m l 静态和动态视图,说明了i n v f i ,使用不同类型的图, 麸不弱懿舞度秘攘象层次上,接逮系统缓霆 l ”。 表2 1u 虬静态和动态视图 分类u 地图u 札分解缭度 用铡图琏能性 类盈静态 对象间行为翻 协作图动态 顺序图动态 对象内部行为图状态图动态 u m l 图可便于观察软件系统的全景,发现软件元索或分析软件元素之间的联 系,同时,允诲袄传开发人员忽略或隐藏旁校末节,遂是u m l 或萁艟图形化谦 富的本质价值。u m l 定义了建模和设计软件系统静9 类匿:类图、对象图、瘸铡 ( u s ec a s e ) 阁、顺序图、协同图、状态图、活动图、组件图、配鼹图。通过绘 制u m l 图形,可以从不同的抽象角度使系统可视化,每类图包括可视化的表承 季醛添义。u 麓毛壤霜获态甄实瑷对象内部行梵建摸,浚态圈臻予箍述实雾孝、事箨辍 动的交互系统,状态图中的状态是在某一时段内“持续”的“存在条件”,事件驱 动从一个状态到另一个状态的转换,它们可能被条件所控制,只有当条件为真时 第二牵蟊向方瑟驰软律过程1 3 才能转换到下一个状态,作为一个状态转换过程的结果,可能会有动作发生。 溺动图是箍逐系统孛各秘活动静撬行瑕序,逶零震袋接述一令操律中所要进 行的各项活动的执行流程。活幼图的组成骤索有:动作状态、活动状态、转移、 分支、分叉、联络、泳道和对敷流,使用涵动图目的,就是要可视化地表现业务 滚程n 锃。 动作状态岛活动状态 幼作状态表豕可执行的、不可分的动作执行。例如,计算为属性赋值的表达 式,调用一个霹缓的操作,发送一个信号绘一个对象,戏孝剖建、破坏一个对象 等,鄂是动作状态。 转移 转移表示从一个动作或活幼状态传递到下一个动作戏活动状态的路径。当状 态戆秘终或活动宠残露,控露l 滚立帮簧递麓下一令动掺藏活动获态。转移霹竣矮 简单的有向线段袭示。 分支 农活动霆孛,以有分支。分支用菱形壤表示。 分叉和联络 程i m ,中,使用同步条规定并发控制流的分叉与联结。同步条用一条粗水平 线或糨垂直线表承。 分叉表示将攀一兹控割滚分成嚣令或多个并发懿按露l 滚。分叉蠢今赣入转 移和多个输出转移,每个输出代表一个独藏的控制流。在分叉下步,与每个输出 路径相关的活动怒并发进行的。 联结表示嚣令绒多令并发技麓滚豹固疹。联结有多个输入转移懿个输出转 移。在联结良上,与各路径蠢关的活动是并行的。在联结处,并发的流同步,即 每个流都要等到所有的输入流到达同步条聪,才将多个输入控制流合并,输出一 个控制流,再执行后面的活动。 泳i 蓬 活动图描述发生了什么,假没有说明该项活动由哪个对象完成。泳道解决了 这个问题,明确淡示哪个活动是由哪个对敷执行的。泳道将活动图的逻辑描述与 蹶廖鍪、秘终国瓣赛饪接述绥会了趁来。 泳道把活动圈中的活动,按执行这些浠渤的对象划分为若干缀,每个对象各 自履行本组所包括的活动。每个组占一个泳道。在活动图中,泳邋用矩形框表 示。聪予某个泳道的活动放在该矩形框内,该泳道的对象名称放在矩形框的顶都, 表示泳道蠢的活动滏该对象受爨。 对象流 基于瑟淘方瑟瓣工作流;l 擎研究与应翊 对象流是动作状态( 或灞动状态) 岛对象之闻的依赖关系。对象流蘑来表零 劫裕与对象之鬻静霞矮关系,或者动终对对象匏影确。 对象流在活幼图中的表示是:用依赖关系将对象与产生、破坏绒修改该对象 的活动或转移连接起来。 活动图也霹激溺来为系绕戆动态将缎建模。蓑攀戆专踅,零要滚疆图戆建方多 数可以用活动潮代替。如翻2 3 所示,殿图是活动图的示意图,农图是带有泳道 的活动图示意。 开 r 啼 话动2 妞岩判断 丌暇 圆圃 含劳 结窳 ( 左) 括动图示意 争 国 曝 务7 圆圃 - 甲 结索 ( 右) 带有泳道的活动图承意 图2 3l y m l 活动图示意 因此,使用u 】l 建模,可以提供软件系统的解决方案和应用模式,实现开 发过程可视化,简化实际事物的模型,帮助项目团队理解软件内部复杂结构,降 低繁理复杂鼗,减少管理镶浚藏验,鲮簸开发鼹麓等魏点。 2 3 面向方恧编程 面向方面藏型是面向对象范型的自然演进。面向对象编程的过程中,可能套 中 第二章面向方面的软件过程 发现在大量不同的类中重复着一些相同的代码,这些类都需要这些功能,因此, 无法很容易地把该功能封装到一个单一的地方。这种代码的例子包括:审计跟踪、 事务处理、并发管理等【1 8 1 。面向对象编程不能处理“横切关注点”,导致代码混 乱和代码分散,缠结问题严重;软件系统难以编写,不易理解,不便重用,后期 维护和变更麻烦【2 。而利用方面可以模块化此类代码,通常可以尝试的方面例子 包括:日志、调试、协调。 面向方面编程( a o p ,a s p e c t o r i e n t e dp m 掣锄姗i i l l g ) 是一种程序设计范型,它 是一种新的软件开发模块化机制,分离各种关注点并将之高效地模块化,它描述 了分散在对象类或函数中的关注点【冽。程序员的现实目标是理解需求,并进行适 当的设计,识别关注点并将其在文档中可视化是一直在不断研究的新课题。 面向方面编程主要是为了解决散射和缠结的问题。散射( s c a l l e r i n g ) 是指与 某个关注功能相对应的程序代码散布到系统的不同部分,造成代码维护复杂、扩 展性低,模块化差的现象。从重用的角度看,如果模块中包含的代码有大量关注 点,那么该模块在其他场合重用的可能性较小。代码中多个关注点发生混合的现 象称为缠结( t 舀i i l g ) 。如图2 4 所示,面向方面软件开发的三维表示。面向对 象是在二维上实现的,造成了横切关注点是分散的。而a o p 添加了新的面向方面 的维,解决了关注点的分散和缠绕问题i 。 图2 4 面向方面软件开发的三维表示 传统的编程技术着眼于产生直接的指令系列,因此要求程序员全面掌握编程 过程中的所有关键点。程序员必须清楚地将实现这些关键点的命令,与实现主要 应用功能的代码混合在一起,这样就会导致产生包含混乱代码、大量错误、难以 维护的系统。在面向对象编程中,编程的基本单位是类。对于跨越多个类的功能 ( 例如,日志记录、事务管理、设计模式以及安全性) ,通常不能将它们集中在一 个类中处理。这就导致了代码无法重用,可维护性差且产生大量冗余。而a o p 1 6 旗子面囱方萄的工 # 流; 擎辑宠与应翊 熊很好地实现跨越多个类的模块化功能,提赢了藤国方面应用程膨的性能,功熊 翊分清藩鞠确,组箨可鞋猿立歼发,膏效魂避免了系统的筏羁缝络鞠题。在处瀵 邋程中,它把诸如用户权限梭查、日志记录、安全功能等看作各个方面,所有对 这熄对象的访问都经过各自的方磋,从而避免了这些公用代码的重复编写,提黼 了绽程兹效率。 方面是一个模块化的、被封装和抽象的单元。模块化是指将一个系统划分成 若干个具有独崴功能的模块( 部分) 。方面为横切关注点提供了个模块化单元, 这样,开发者熊够屏蔽已处壤靛类中的璃教逻辑。模块纯是编程蓠先要考虑鲍润 趱,模块戆把嚣要实现翡凌貔部俘或醢数的兵搏实现封装。封装怒指其有穗嗣鹣 功能部件,它们的相关联信息对其他模块不可见( 即信息隐藏) 。方面隐藏信息的 方式和类一样,通过控制其成员的可见性实现。方面还提供了一种类不具有的强 大鹣售惠隐藏形式。方覆不仅戆隐藏功缝完成过程熬缀萤,还毙黪藏痞惠完袋豹 时间。在方面内部,很容易实现这样的需求:任何发缴在g u i 中的用户接口控制 流内部的错误,都应该标记剿对话框中的相应用户,并且任何不烧内用户初始化 劾终直接造成敬错误,都仪记入目志中。激鼹露囱对象的j 撇异常处理杌制,遮 耱需求不仅难以实现,同辩这样板也意睬着处理错谈豹信息不得不放到所有胃驻 发嫩错误的位鼹l l 引。 将功能部件的实现封装到一个方面中,然后进行模块化的行为,以及封装焚 审豹实瑗绥节,巍魏,羹装怒逶遘鑫名浆个方瑟,使遮令方蘑藏凳系统孛,萋予 封装的一个抽苏单元。模块化、封装和捆象组合在一起,可降低软件的复杂度。 在系统设计和代码编写过程中,有不少设计阶段上的需求,会用多处代码熏 爱编写实现,蹴现一对多黪淡菇,造成“寓教键”。铡翔,数据谤阙层处理s q l 髯常的方法,当抛出异常s q l e x c e p t i o n 时有一种方式,可搐述下步需要徽钟么, 但是其执行要贯穿于整个代码中的打y - c a t c b f i n a l l y 块。a o p 尽可能的把研究对象 和问题分析、设计成一对一映射,从而实现a o p 的模块性,减小了蕊向方面编程 豹辩常潞l 。运蠲a o p 熬方法,把雩l 擎掰其套静各耱凌髓分离残务释方瑟,透露 独立开发,部餐阶段利用配溉信息( w fc o n 丘g ) 结合在起,在运行时动态组装为 最后的执行序列,完成工作流系统的各种功能。 枣子基蘸嚣起方瑟的理论秘本语还处予疆讨除段,嚣囱方嚣豹零语含义略蠢 鍪舞。因此,霸必要对本论文中常用静瑟向方面编稔术语驻辑做简要描述。 关注点( c o n c e m ) :任何一个软件开发过程都有许多需要关淀的事情。这 些搴情包括从简层次的需求( 即系统应该是可管理的) 到低层次的实现问题( 即 远疆馕应该被缓存) 。有一登荚注点是袋予箕谴出现翡系统特定霞鬟( 翅菜今字母 键被按下,系统的相应功能域菜单会执行) ,有一些关注点是指将系统看作一个熬 体的可衡量属性( 如响应时间不应超过一秒) ,另一些是有关美观方面的( “程j l 葶 第二章面向方面的软件过程 员应该使用有意义的变量名”) ,还有一些则包含了系统行为( “所有数据库变化应 该记入日志”) 。总之,称所有这些为关注点,尽管a 0 s d 技术主要针对最后一类, 即系统类关注点。 对于软件而言,系统的关注点定义为:“与系统开发相关的兴趣点,它的操作 或者其他方面对于一个或多个使用者,非常关键或者非常重要。”关注点是一个基 础的概念,它通常不是软件构件,尽管构件可以表示关注点,构件也可以是关注 点。关注点通常也不是需求,尽管需求可以表示关注点,并在开发过程中的许多 地方就是关注点。类似地,关注点模型通常也不是领域模型,尽管领域模型对关 注点的表示有作用。 横切关注点( c r o s s c u t t i l l gc o n c 锄) :软件开发所强调的关注点,既有用户 需求级的,也有设计实现级的。通常,如果一个关注点的实现必须分散到一个软 件实现的其他部分之中,称这类关注点为横切关注点。需要注意的是,所谓横切 既有一种对系统进行专门分解的功能,也有一种实现基本支撑环境的功能。从某 一种体系结构观点看,某个关注点可能是横切的,但从另一个角度看却可能是局 部化的;某个专门的环境可能以不可视的方式支持一个关注点( 如系统安全) ,在 另一个环境下可能需要显式地处理。 代码混乱( c o d et a l l 9 1 i i l g ) :在传统的开发环境中,实现横切关注点常常会 造成代码混乱一一关注点处的代码变得混杂一团。理想情况下,软件工程的原则, 指导我们按照如下方式模块化系统软件:( 1 ) 每个模块只与关注点的实现关联; ( 2 ) 保持模块之间接口的简单。遵循这些原则的软件会更容易生成,能够更自然 地分布在不同的程序员之间,更容易进行验证、测试、维护、重用和改进以满足 未来的需要。横切工作和模块化工作是相对的。横切关注点的代码会分散在多个 模块之中;对那些代码的改变会立刻导致需要改变其所涉及的所有地方,而且对 系统的所有改变还必须满足横切关注点的需
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陕西省汉中市汉台区汉中中学2026届高三二模语文试题(含答案)
- 河北省保定市唐县第一中学2025-2026学年高三上学期9月月考语文试题(含答案)
- 广东省佛山市南海区许海中学2024-2025学年八年级下学期期末学业水平测试物理试题(含答案)
- Unit 2 What a day!单元试卷(含答案含听力原文无听力音频)
- 淄博咨询殡葬方案电话
- 高管激励与人力资本增值-洞察及研究
- 学生暑假安全培训教案课件
- 弱相互作用精测-洞察及研究
- 中医针刺操作考试题及答案
- 中国科学报社校对岗位招聘考试笔试试题(含答案)
- 潍坊市2026届高三开学调研监测考试语文试题及答案
- 中国艾滋病诊疗指南(2024版)
- 2025年人教版(2024)小学信息科技五年级(全一册)教学设计(附教材目录 P169)
- (正式版)SHT 3046-2024 石油化工立式圆筒形钢制焊接储罐设计规范
- GB/T 15622-2023液压缸试验方法
- 挖掘机维护保养记录
- 生物医学工程伦理 课件全套 第1-10章 生物医学工程与伦理-医学技术选择与应用的伦理问题
- 二级制图员判断题试题库与参考答案
- 湘潭大学人工智能课件机器学习
- 《红色旅游发展问题研究开题报告(含提纲)》
- YY/T 0292.1-2020医用诊断X射线辐射防护器具第1部分:材料衰减性能的测定
评论
0/150
提交评论