(计算机应用技术专业论文)基于uml与rup的软件再工程的研究与应用.pdf_第1页
(计算机应用技术专业论文)基于uml与rup的软件再工程的研究与应用.pdf_第2页
(计算机应用技术专业论文)基于uml与rup的软件再工程的研究与应用.pdf_第3页
(计算机应用技术专业论文)基于uml与rup的软件再工程的研究与应用.pdf_第4页
(计算机应用技术专业论文)基于uml与rup的软件再工程的研究与应用.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机应用技术专业论文)基于uml与rup的软件再工程的研究与应用.pdf.pdf 免费下载

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

文档简介

基于u m l1 jr u p 的软件薄工程的研究与应用 摘要 随着信息化步伐的加快,软件危机呈现出愈演愈烈的趋势,如何有效维护现 存软件以缓解危机的研究也变得更加紧迫。软件再工程通过利用重新抽象出设计 模型、将新的技术和需求应用到现存系统,从根本上提高系统的性能和可维护性, 正日益受到重视。 本文正是在这背景下,以软件再工程为主题,对其有关技术和方法进行了 深入的研究。 文章介绍了u m l 和r u p 这两项关键技术,u m l 与r u p 是软件工程中的新技术, 本文所探讨的软件再工程模型是基于这两项技术提出的。 本文在研究软件再工程传统模型的基础上,吸收u m l 和r u p 的思想,构建出 基于u b l l 和r u p 的软件再工程的迭代、增量模型,并定义其阶段和关键活动。此 再工程模型对充分挖掘现存系统的信息,将这些信息运用到目标系统中有着重大 意义。对软件再工程迭代、增量模型的各关键活动的任务和分析方法本文都进行 了详细阐述,描述了此模型是如何分析现存系统,创建目标系统的各个细节和整 个过程。 本文以本人参与的江西省电力公司医疗保险缴费报销系统的项目为应用实 例,将再工程的迭代、增量模型运用于实践中,提出了总体的再工程方案。 关键词:u m l ,r u p ,软件再工程 基于u m l 与r u p 的软件雌工程的t 叶宄与应用 a b s t r a c t w i t ht h ef a ad e v e l o p m e n to fi n f o r m a t i o nt e c h n o l o g y s o f t w a r ec r i s i sb e c o m e e v e nm o r es e r i o u s f o rt h ep u r p o s eo fm i t i g a t i n gt h ec r i s i s ,r e s e a r c h e do nh o wt o m a i n t e n a n c et h e e x i s t i n gs y s t e m m o r ee f f e c t i v e l yi s b a d l yn e e d e d s o f t w a r e r e e n g i n e e r i n gi sb e i n ga t t a c h e dm u c hm o r ei m p o r t a n c ei nr e c e n ty e a r s ,f o ri t s d r a m a t i ce n h a n c i n gp e r f o r m a n c ea n dm a i n t a i n a b i l i t yo ft h e e x i s t i n gs y s t e mb y r e a b s t r a c td e s i g nm o d e la n di n c o r p o r a t i n gn e wt e c h n o l o g i e st ot h ee x i s t i n gs y s t e m t m sp a p e rd i s c u s s e ss o f t w a r e r e e n g i n e e r i n g f u r t h e rr e s e a r c h e sr e l a t e d t e c h n i q u e sa n dm e t h o d s t h ep a p e rp r e s e n t st w ok e yt e c h n o l o g i e s ,u m la n dr u p t h es o f t w a r e r e e n g i n e e r i n gm o d e lw h i c ht h ep a p e rd i s c u s s e si sb a s e do nt h i st ot e c h n o l o g i e s b a s e do nr e s e a r c h i n gt h et r a d i t i o n a ls o f t w a r er e e n g t n e e r i n gm o d e l ,c o n s u l tt h e c o r e so fu m la n dr u p ,d e s i g nt h ei t e r a t i v ea n di n c r e a s i n gs o f t w a r er e e n g i n e e r i n g m o d e lb a s e do nt h eu m la n dr u p a n dd e f i n et h ep h a s e sa n di m p o r t a n ta c t i o n s t h e r e e n g i n e e r i n gm o d e lh a si m p o r t a n tm e a n i n gt os u f f i c i e n t l yu n d e r s t a n dt h ei n f o r m a t i o n o f t h eo l ds y s t e ma n da p p l yt h ei n f o r m a t i o nt on e ws y s t e m t h ep a p e re x p a t i a t e se a c h i m p o r t a n ta c t i o n so ft h e i t e r a t i v ea n di n c r e a s i n gs o f t w a r er e e n g i n e e r i n gm o d e l , d e s c r i b e se a c hd e t a i la n dt h ew h o l ep r o c e s sa b o u tt h em o d e lh o wt oa n a l y z et h eo l d s y s t e ma n de s t a b l i s ht h en e ws y s t e m t h e p a p e r c o m b i n e s t h ei t e r a t i v ea n di n c r e a s i n gm o d e lo f r e e n g i n e e r i n gt ot h ep r a c t i c e ,o u t l i n e st h eg e n e r a lr e e n g i n e e r l n gs c h e m e , u s i n gt h ep r o j e c to fm e d i c a r ec h a r g es y s t e mo fj i a n g x ie l e c t r i cp o w e rc o r p o r a t i o na s t h ea p p l i c a t i o no b j e c t w r i t t e nb yy u a np i n g ( c o m p u t e ra p p l i c a t i o n ) d i r e c t e db yp r o f y a ol i - w e n ,p r o f d u a nl o n g - z h e n k e yw o r d s :u m l ,r u p , s o f t w a r er e e n g i n e e r i n g i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得南昌大学或其他教育机 构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献 均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:签字日期: 年月日 学位论文版权使用授权书 本学位论文作者完全了解南昌土学有关保留、使用学位论文的规定, 有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和 借阅。本人授权南暑文学可以将学位论文的全部或部分内容编入有关数据库进 行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:在每 导师签名: 签字日期:7 1 - 4 年z 月7 e t 学位论文作者毕业后去向 工作单位: 通讯地址: 懒秀量 签字日期:形戽占 电话 邮编 日 基于u m l 与r u p 的软件n _ 1 = 程的卅f 究与应用 第一章绪论 1 1 现存系统引发的维护危机 9 0 年代以来,信息产业的飞速发展,软硬件系统的不断更新,由于在软件 业技术革新周期越来越短,新技术不断出现,过去的一些软件系统在新技术面前 显得落后、缺乏竞争力,但是这些软件系统已经被使用多年,用户熟悉其操作过 程,已经习惯使用它,因此这些老的软件系统逐渐成为“鸡肋”食之无味, 弃之可惜。这些软件系统就是所谓的现存系统。 现在,由于市场竞争力不断激烈,愈来愈多的现存系统( l e g a c ys y s t e m ) 面 临着更新换代的问题。与此同时,软件系统的规模变得越来越大,结构也越来越 复杂,软件的寿命也越来越长。这些现存系统采用传统的开发工具和技术,限于 当时的技术条件和需求,同时组织的业务规则也在改变,他们或多或少地不能满 足现在的要求,但他们在功能方面还是完善和可用的,同时由于多年运行历史, 遗产系统包含了企业的众多知识,包括系统需求、设计决策、业务规则和企业数 据库,不能完全被替换,随着时间的推移,可供利用的遗产系统越来越多。但是 由于遗产系统已经被使用多年,开发这些系统的人员大都无从寻找,并且大部分 文档和设计信息都由于时间久远而丢失了,或者是当时的开发文档不全等。上述 因素都给理解这些遗产系统带来了困难,没有人能充分理解这些软件系统的内部 流程,也没有人敢随意修改它们,维护这些软件变得几乎不可能。 这种场景太常见了:某软件已经为某公司的业务需要服务了1 0 年或1 5 年。 在那段时间中,它曾被多次纠错、适应性修改和增强。完成这些工作的人们具有 最好的愿望,但是,好的软件工程习惯总是被抛到一边( 由于其他事情的压力) , 维护和文档并未保持一致。然而仍必须继续演化。 很多我们现在使用的软件已有1 0 年到1 5 年的使用史,即使这些程序是采用 当时最好的设计和编码技术创建的,其实大多数并不是如此。现在它们被移植到 新的平台上,根据机器和操作系统技术方面的变化进行调整并增强以满足新的用 户需求所有这些并没有对整体体系结构给予足够关注。结果是:我们现在仍 保持运行的系统具有设计很差的结构、糟糕的编码、不完全的逻辑、以及贫乏的 文档。 软件交付使用后的变更成为软件维护。软件维护是由于在特定使用条件下暴 露的一些潜在错误或设计缺陷、使用过程中数据环境发生变化、以及用户有提瞰 改进现有系统的要求,对软件产品所进行的修改活动。 基于u m l 与r u p 的软件再1 二程的研究弓眈瑁 根据维护产生原因可以将软件维护分为以下四类: 1 、纠错性维护。 也称改正性维护,在软件交付使用后,由于开发时测试的不彻底、不完全, 必然会有一部分隐藏的错误被带到运行阶段来,这些隐藏下来的错误在某些特定 的使用环境下就会暴露。为了识别和纠正软件错误、改正软件性能上的缺陷、排 除实施中的误使用,应当进行的诊断和改正错误的过程,就叫做纠错性维护。 2 、适应性维护。 随着i t 技术的发展,外部环境( 新的软、硬件配置) 或数据环境( 数据库、 数据格式、数据输入输出方式、数据存储截止) 可能发生变化,为了使软件适 应这种变化,而去修改软件的过程就叫做适应性维护。 3 、完善性维护。 在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满 足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加 工效率、提高软件的可维护性。这种情况下进行的维护活动口q 做完善性维护。 4 、预防性维护。 为了提高软件的可维护性、可靠性等,为今后进一步改进软件打下良好基础。 通常,预防性维护定义为:“把今天的方法学用于昨天的系统以满足明天的需要”。 也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分( 重 新) 进行设计、编制和测试。 不可维护并不是一个新问题。事实上,对软件再工程的强调是源于3 0 多年 不断形成的软件维护“冰山( i c e b e r g ) ”。软件维护缺乏系统的方法和技术,使得 维护工作显得更加困难。软件维护是软件工程中最消耗资源的活动,对现存软件 的维护可能占据开发组织所花费的所有努力的7 0 以上,其中纠错性维护大约占 整个维护工作量的2 0 ,其余8 0 都花费在对其他三种维护活动中。而且随着 更多的软件被生产出来,这个百分比在继续上升。在当前视野内,我们可以遇见, “维护束缚( m a i n t e n a n c e b o u n d ) ”的软件开发组织不可能再生产新的软件,因 为所有可用的资源都被花费在旧软件的维护上。许多软件开发组织疲于旧系统的 维护,无暇从事新的软件开发。 同时,对现存系统进行维护很必要,因为这些软件是一些组织业务工作的关 键,其中渗入了许多业务知识和工作经验,这些知识和经验除在软件中体现并没 有其他记载,因此必须在这些软件基础上开展工作,如果将这些软件抛弃、重新 开发新软件会冒很大的风险。而这些系统通常是早期开发的,可维护性很差。 基于u m l 与r u p 的软件再工程的研究与应用 1 2 软件再工程的产生 在这种背景下,旨在提高系统的可维护性、充分解决现存系统所引发的问题 的软件再工程也就应运而生。软件再工程是软件维护领域的一个分支,属于维护 中的“预防性维护”。软件再工程通过挖掘、整理现存的软件系统以得到有用的 软件构件,或对已有软件构件进行维护以延长其生存期。它是一个工程过程,能 够将逆向工程、重构和正向工程组合起来,将现存系统重新构造为新的形式。 软件再工程在解决现存系统问题上很彻底,能对现存系统进行设计维护,发 现业务规则,重写文档,将更有利于维护的新技术集成到现存系统中。 充分利用遗产系统来开发新系统正在成为当前软件工程研究的一个重要方 向。再工程提供了一条把遗产系统转化为新系统的现实可行途径。再工程以少的 开销、短的时间、低的风险把旧系统改造成为个新的形式,使系统在操作、系 统能力、功能、性能、可维护性和可支持性上得到提高。再工程提供了一条把遗 产系统转化为可演化系统的现实可行的途径:通过再工程提供的整套严格定义 的方法和活动,可以有效地使遗产系统得到再利用,提高其可演化性,适应新的 软件生命周期模型的需求。 1 3 课题来源和研究意义 本课题来源于江西省电力公司项目,属于理论与应用相结合的研究课题。江 西省电力公司医疗保险缴费报销系统( 以下简称医保系统) 改造和实现。医保系 统的主要功能是电力公司以及分布在省、地、县三级的职工进行医疗保险费用的 收缴和医疗费报销。 软件再工程作为一种重要的软件工程技术,为现存系统的演化提供了理论和 方法上的支持。在利用现存系统开发新系统的时候,如果能够合理地按照再工程 模型中所规定的活动来进行,会在很大程度上降低开发费用,缩短工期,并且能 够降低一定的风险。当然,再工程的理论和技术也要随着其他软件技术的进展而 发展。面对如何进一步提高软件生产率,需要新的对策,才能始终如一地保持再 工程的特点和优势。 软件再工程的重点是以更高的投资收益率,来提高现存系统的性能。因此, 软件再工程可以更高地提高软件生产率,解决软件再工程活动周期过长和开销过 大的问题。 进行本课题的研究具有如下意义: 首先,本论文对软件再工程的探索具有一定的刨新性和前瞻性。由于软件再 工程实施比较复杂,我们希望借鉴一些前人的开发经验,少走弯路。这些经验被 3 挂于u m l 与r u p 的较件0 i i t - 程的j ; f 究与应用 抽象到理论的高度。它是软件设计者软件复用经验的结晶。因而本论文对软件再 : 程及其应用的研究极具参考价值。 其次,本文对软件再工程的模型进行探讨,在传统模型的基础上,融入u m l 及r u p 的思想,对传统的再工程模型进行优化和改造,对其关键活动进行详细 描述和分析,对软件再工程的模型的研究具有重大意义。 再次,在本课题的研究过程中,我们在分析现有的医保系统的业务流程和数 据特点,根据用户的需求变更对现有的医保系统进行改造的基础上,提供了个 真实的软件再工程的实例。以医保系统的改造为实例,给出了从逆向工程到重构 再到正向工程的比较详细描述。因而本课题的研究对软件再工程的实践工作者有 一定的参考作用。 最后,从实践的角度来看,本课题的研究解决了省电力公司医保领域省、地、 县的医保缴费和报销问题。并可推广至其他省份,是理论与实践的结合。 1 4 再工程研究现状 在国外,软件再工程研究工作进展很快,很多新的软件技术融入到软件再工 程中来,同时有很多新的模式被不断总结出来,并且很多软件开发工具和环境增 加了对它们的支持。有些研究机构还设想将设计模式用形式化表示让机器自动生 成代码,一些类库正在被开发以支持设计模式的实现。但是,软件再工程的研究 还存在着下列不足: 1 、软件再工程活动普遍存在着周期过长和开销过大的问题。 2 、尚缺乏成熟的过程机制以保证再工程理论的有效付诸实践。 国内研究软件再工程以及模型应用的时间很短,尚处于起步阶段,国内作者 所写的相关方面的书籍、文章、资料都还不多见,同时成功应用这些优秀的理论、 方法、经验的案例也比较少见。但是我们相信,随着我国信息产业的飞速发展, 在不久的将来,必定会有大量的遗产系统出现。而到那时候,我们也一定会面临 维护危机和如何利用遗产系统开发新的软件系统的问题。因此,有必要研究再工 程的理论和方法,为在将来能够更好地利用遗产系统提供理论和方法上的支持。 1 5 课题研究内容和创新点 本文的研究内容如下: 第一,本文分析了软件维护危机的严重性和软件再工程理论的提出,阐述了 再工程的目的和意义。 第二,文章介绍了u m l 技术和r u p 开发过程,本文吸收了这两项技术的恩想 4 基于u m l 与r u p 的软件婚1 _ _ _ 程的i 开究与应用 提出了软件再工程的迭代、增量模型 第三,文章阐述了软件再工程的理论,描述了传统软件再二程的一般模型。 然后结合r u p 和u m l 的思想,设计了软件再工程的迭代和增量开发模型,定 义了软件再工程迭代的阶段和活动。 第四,对软件再工程迭代、增量模型的各关键活动的任务和分析方法进行详 细阐述。 第五,结合实例,从现存医疗保险缴费报销系统的实际问题出发,详细阐述 了如何将软件再工程的迭代增量模型运用于实践。 最后,总结全文且对设计中可进一步优化的方向和未来的研究工作进行了展 望。 本文的创新点是在传统软件再工程的模型基础上,结合u m l 和r u p 两项软件 工程新技术,吸收u m l 的模型表示方法和r u p 的迭代、增量软件开发思想,创新 设计出软件再工程的迭代、增量模型,并对此模型的各个阶段和关键活动进行定 义和详细描述。 1 6 本文的组织 全文内容安排如下: 第一章绪论: 介绍了课题的背景、来源、意义,并介绍了笔者完成的主要工作和安排。 第二章u m l 与r u p 技术: 概述了u m l 与r u p 的概念和理论。讲述了u m l 的九种图的功能和关系, 阐述了u m l 是如何用于描述系统需求。还概述了r u p 的开发过程,详细介绍 了r u p 的开发阶段和活动,描述了它的迭代和增量特点。 第三章基于u m l 与r u p 再工程模型: 本章和下面的第四章是本论文最有创新意义的部分。这一章阐述了再工程的 概念和定义以及实施再工程的目的和必要性。从理论的角度阐述了u m l 与r u p 对软件再工程的影响和优化,结合u m l 与r u p 对传统的软件再工程模型进行 改造。在这一章中,提出了基于u m l 和r u p 的软件再工程的模型,将再工程 进行了划分为四个阶段和九个核心工作流。 第四章再工程的关键活动: 从具体实现的角度,对改造后的再工程模型中的四个阶段:文档分析、逆向 工程、重构以及正向工程的各个关键活动进行详细的阐述和分析,对其中如何进 行再工程的技巧和方法进行了详细描述,其中结合进u m l 以及r u p 的思想。 第五章再工程模型在医疗保险系统中的应用: 肇于u m l 与r i j p 曲软件再工程的研究与虚用 本章从再工程的迭代模型入手,以江西省电力公司医疗保险缴费系统为实 例,详细阐述了再工程的迭代模型以及其关键活动在实际项目中的应用意义。实 践证明此模型不仅可以提高开发效率,降低开发风险,而且有良好的设计思路和 实用性。 论文的最后部分是“总结和展望”和“参考文献”。 第六章总结和展望: 分析了在整个论文的实施过程中遇到的问题和期待完善的某些内容。 参考文献部分是在完成本文的过程当中所参考的主要文献资料列表。 6 基于u m l 与r u p 的软件再工程的研究与应用 第二章u m l 与r u p 技术 2 1u m l 与r u p 对再工程的意义 u m l 和r u p 技术都是软件工程的新技术,对于软件再工程来说,u m l 和 r u p 可以改进和方便再工程的实施过程,可以降低再工程的风险,使得再工程 得出的软件产品质量更高,用以帮助软件工程工程的改进有着十分重要的意义。 u m l 可以使得再工程中逆向工程所发掘出来的信息清楚的表达,便于用户和开 发人员相互交流,以适应新的软件系统的需求。r u p 中的迭代和增量大大降低 了整个软件再工程的开发风险。 下面分别对这两种技术做简要介绍。 2 2u m l 技术简介 2 2 1u m l 的产生和发展 统一建模语言( u m l ) 是一种对软件系统的产物进行可视化( s u a l i 西n g ) 、详述 ( s p e c i f y i n g ) 、构造( c o i l s t f u c t i n g ) 和文档化( d o c u m e n t i n g ) 的标准语言。它是汇集了 多种面向对象建模技术的精华而发展起来并成为面向对象建模语言的工业标准。 面向对象建模语言出现于7 0 年代中期。从1 9 8 9 年到1 9 9 4 年,其数量从不到十种增 加到了五十多种,百家争鸣。在众多的建模语言中,语言的创造者努力推崇自己 的产品,并在实践中不断完善。但是,面向对象( 0 0 ) 方法的用户并不了解不同建 模语言的优缺点及其差异,因而很难根据自身应用特点选择合适的建模语言。9 0 年代中,一批新方法出现了,其中最引人注目的是b o o c h l 9 9 3 、o o s e 和o m t 2 等。 b 0 0 c h 是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概 念。1 9 9 1 年他将以前面向a d a 的工作扩展到整个面向对象设计领域。b o o c h l 9 9 3 比较适合于系统的设计和构造。r u m b a u g h 等人提出了对象建模技术( o m t ) 方法, 采用了面向对象的概念,并引入各种独立于语言的表示符。这种方法用对象模型、 动态模型、功能模型和用例模型,共同完成对整个系统的建模,所定义的概念和 符号可用于软件开发的分析、设计和实现的全过程,软件开发人员不必在开发过 程的不同阶段进行概念和符号的转换。o m r - 2 特别适用于分析和描述以数据为中 心的信息系统。 7 基于u m l 与r u p 的软件再工程的研究与应用 j a c o b s o n 于1 9 9 4 年提出to o s e 方法, 在用例的描述中引入了外部角色的概念。 其最大特点是面向用例f u s e c a s e ) ,并 用例的概念是精确描述需求的重要武 器,用例贯穿于整个开发过程,包括对系统的测试和验证。o o s e e g 较适合支持 商业工程和需求分析。此外,还有c o a d y o u r d o n 方法,即著名的o o a & d ,它是 最早的面向对象的分析和设计方法之一。该方法简单、易学,适合于面向对象技 术的初学者使用,但由于该方法在处理能力方面的局限,目前己很少使用。 概括起来,首先,面对众多的建模语言,用户由于没有能力区别不同语言之 间的差别,因此很难找到一种比较适合其应用特点的语言;其次,众多的建模语 言实际上各有千秋;第三,虽然不同的建模语言大多雷同,但仍存在某些细微的 差别,极大地妨碍了用户之间的交流。因此在客观上,极有必要在精心比较不同 的建模语言优缺点及总结面向对象技术应用实践的基础上,根据应用需求,取其 精华,去其糟粕,求同存异,统一建模语言。 1 9 9 4 年1 0 月,g r a a yb o o c h 和j i mr u m b a u g h :始致力于这一工作。他们首先 将b o o c h l 9 9 9 3 和o m i e 统一起来,并于1 9 9 5 年1 0 月发布了第一个公开版本,称之 为统一方法u m0 8 ( u n i f i e dm e t h o d ) 。1 9 9 5 年秋,o o s e 的创始人i v a r j a c o b s o n 力n 盟 到这一下作。经过b o o c h r u m b a u g h 和j a c o b s o n 两人的共同努力,于1 9 9 5 年6 月和 1 ( ) 月份别发布了两个新的版本,即u m l o 9 和u m l 0 9 1 ,并将u m 重新命名为 u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) 。1 9 9 6 年,一些机构将u m l 作为其商业策略己 日趋明显。u m l 的开发者得到了来自公众的正面反应,并倡议成立了u m l 成员 协会,以完善、加强和促进u m l 的定义工作。当时的成员有d e c ,h p , i - l d g i c , i t e l l i c o r p ,i b m ,i c o nc o m p u t i n g , m c is y s t e m h o u s e ,m i c r o s o f t ,o r a c l e ,r a t i o n a l - s o f t w a r e ,t i 以及u n i s y s 。这一机构对u m l l 0 ( 1 9 9 7 年1 月) 及u m l l 1 ( 1 9 9 7 年7 月) 的定义和发布起了重要钧促进作用。1 9 9 7 年1 1 月,u m l i i 被o m g ( ) c c j 象管理组) 采纳,成为基于面向对象技术的统一建模语言。此后,u m l 的维护工作由o m g 的修订专门组织( r e v i s i o n t a s k f o r c e ,r t f ) 负责并先后发布了1 2 、1 3 和1 4 版本, 使其在技术上更加清晰完整。从2 0 0 1 年中期,o m g 开始进行u m l 2 0 版本的修订 工作,这个版本将对u m l 基础结构( i n f r a s t r u c t u r e ) 、上层结构( s u p e r s t r u c t u r e ) 、对 象约束语言( o b j e c tc o n s t r a i n tl a n g u a g e ) 及u m l i 虢交换( u m ld i a g r a m i n t e r c h a n g e ) 等方面做重大改进,目前此项工作还在进行之中。图1 1 展示了u m l 的发展历程。 8 基于u m l 与r u p 的软件_ | j :工程的研究与应局 2 2 2 u m l 技术 图2 。1u m l 的发展历程 作为面向对象建模语言的标准,u m l 的内容及相关知识非常丰富。在此只 能做一个简要介绍。 1 、u m l 概念模型 为了理解u m l ,我们需要建立其概念模型:为此,需要了解如下三个方面 的内容:u m l 基本组成元素、这些元素的组合规则、u m l 中的通用机制。u m l 的术语表中包括了三种基本组成对象:实体、关系和图。其中,实体是模型中“一 基于u m l 与r u p 的软件再工程的研究与应用 等公民”的抽象,例如:类、接口、用例、包等等;关系将这些实体连接起来, 例如:继承关系将父类和子类连接起来;图将相关实体的集合进行分组。 为了刻画软件开发的各个方面,u m l 提供了9 种图,包括: ( 1 ) 类图 面向对象建模中最重要、最常见的图,显示了一系列类、接口以及他们之间 的关系,用于刻画系统的静态设计视图。 ( 2 ) 对象图 显示一系列对象及相互之间的关系,是类图中实体实例的“快照”。 ( 3 ) 用例图 显示一系列用例和执行者及相互之间的关系,用于描述需求。 ( 4 ) 时序图、协作图 统称交互图,显示了一系列对象及对象之间的交互情况。其中顺序图强调是 时序关系,而合作图强调对象之间的组织结构关系。 ( 5 ) 状态图 显示类、接口或对象的行为机器所能够具有的状态以及这些状态之间的切换 关系。 ( 6 ) 活动图 一种特殊的状态图,显示系统内部的活动之间的关系。强调多个对象之间的 控制流。 ( 7 ) 构件图 显示一系列构件之间的组织和依赖关系。构件图中的构件图符可以表示源代 码文件、目标码文件、运行中的构件或者文档等等,比狭义的“构件”概念宽泛。 ( 8 ) 部署图 显示运行时运算节点的配置以及构件在其上的分布情况。 正如其他语言一样,u m l 也有自己的语法规则。这些规则规定了上述的基 本组成元素如何组成语法正确的模型。为了对上述的基本组成元素以及相关规则 进行严格定义。u m l 规范遵从o m g 的m o f ( m e t ao b j e c tf a c i l i t y ) 四层元模型 结构,并辅以o c l ( o b j e c tc o n s t r a i n tl a n g u a g e ,对象约束语言) 来定义u m l 的元模型( m e t am o d e l ) 。 此外,u m l 中还有一些通用机制,包括规格说明和扩展机制等,它们可以 应用在各种u m l 基本组成元素上。u m l 不只是一种图形语言,其每个图形表 示都对应着一个规格说明,描述对应的语法和语义内容以刻画系统的细节。而扩 展机制的必要性在于,不可能存在一种封闭( 不可扩展) 的语言,它足以描述任 何时期、任何领域、任何模型中任何可能出现的内容。所以,u m l 提供了扩展 基于u m l 与r u p 的软件弭: 程的驯充与庸用 机制,使人们能够在可控的方式下,对u m l 进行必要的扩展,以增强其表达能 力。u m l 中的扩展机制,包括:构造型( s t e r e o t y p e ) 、标签值( t a g g e dv a l u e ) 和约束( c o n s t r a i n t ) 。 2 、u m l 模型的组织 软件开发是一个复杂的活动,众多的参与者在其中发挥着各不相同、但都非 常重要的作用。这些参与者( 包括:最终用户、分析师、开发人员、系统集成人 员、测试人员、项目经理等) 在系统生命周期的不同阶段、从各自感兴趣的视角 看待所开发的系统。系统的模型需要从这些视角刻画所开发的系统,因而也变得 复杂。如何对这些不同的视角进行管理? 系统的体系结构为我们提供了解答的线 索。 体系结构是在如下多个面所做的一系列重大决定: 一个软件的组织; 所选择的结构元件以及它们之间用与组建系统的接口; 这些结构元件的行为( 使用结构元件之间的协作加以刻画) : 这些结构元件和行为元件任何组合成为规模逐渐增加的子系统; 指导开发组织的体系结构风格:静态和动态的元件、它们之间的接口、它们 的协作和组合。 如图2 2 所示,一个软件密集型系统的体系结构最好使用5 个相互关联的视 图加以描述。其中每一个视图都可以视为系统的组织结构在某个特定方面的“投 影”。 其中,用例视图包含一系列用例,用于描述最终用户、分析师、测试人员所 看到的系统行为。该视图并未刻茴系统的组织情况,而是描述了影响体系结构的 关键因素。该视图的静态方面使用用例图描述,动态方面使用交互图、状态图、 活动图描述。 逻辑视图包含组成问题及其解决方案词汇表的类、接口、和它们之间的协作。 该视图主要刻画支持系统功能需求的相关分析、设计内容。其静态方面使用类图、 对象图描述:动态方面使用交互图、状态图和活动图描述。 并发视图包含形成系统并行、同步机制的进程和线程。该视图侧重于系统的 性能、可伸缩性和吞吐量方面。它使用与设计视图同样的u m l 图来描述,只是 引入了“活动类”来刻画进程和线程。 基于u m l 与r u p 的软件雕工程的研究与应用 词汇表 功能 行为 系统性能 可伸缩性 吞吐量 图2 - 2 系统体系结构模型 系统集成 配置管理 系统拓扑结构 分布情况 系统交付安装 构件视图包含用于构建和发布系统的构件和文件。主要用于配置管理等方 面。其静态方面使用构件图描述;动态方面使用交互图、状态图和活动图描述。 部署视图包含构成系统运行时硬件拓扑结构的各个节点。该视图侧重于系统 各部分的分布情况、提交和安装。其静态方面使用部署图描述。动态方面使用交 互图、状态图和活动图描述。 系统体系结构的模型可以使用如上的方式加以组织,同时,它又是系统模型 的骨架。所以,一个软件密集型系统的模型,可以参照图2 2 ,使用4 + 1 视图的 方式加以组织。 2 3r u p 开发过程简介 实际上,r a t i o n a l 统一过程是一个包含了如下两个方面的综合过程: 首先,从软件工程过程的角度来看,统一过程是一个软件开发过程,即是指 想要达到的一个目标而采取的一组有序的步骤。在软件生命周期中,统一过程是 一个将用户需求转化为一个满足用户需求的软件系统所需要的一系列步骤的集 合,如图2 3 所示,它对软件开发的周期、阶段、工作流步骤提供了详细的指导。 输入用户需求 软件开发过程 输出软件系统 图2 3 统一过程是一个软件开发过程 蜒十u m l 与r u p 的软件再工程的研究与府用 其次从项目组织管理的角度来看,统一过程不仅仅是一个简单的过程,它还 是一个通用的,可裁剪的项目管理框架( 或项目管理模板) 。统一过程对广泛的 项目和组织捕获了一些最流行的软件开发实践,它对软件项目组织中的四个要素 ( 人员、项目、产品和过程) 之间关系的管理提供了详尽的指导,如图2 4 所示, 从而实现项目风险缓解、质量控制、优化项目管理和配置管理的目标。该过程框 架可根据具体不同的情况进行相应裁减,从而用于各种不同类型的软件系统、各 种不同的应用领域、各种不同类型的组织、各种不同的功能级别以及各种不同的 项目规模。 图2 4 统一过程是一个管理模板 2 3 1 统一过程( r u p ) 的生命周期 统一过程是一个将用户需求转化为满足用户需求的软件系统的活动集合,该 活动集合是在过程的生命周期中完成的。 统一过程是在重复一系列包含初始、细化、构造、移交四个阶段的循环。每 次循环就是统一过程的一次完整的生命周期。每次循环都以提供给用户的一个产 品版本作为终结。软件开发组织正是在该过程的指导下,不断重复过程的生命周 期,从而不断向用户提供越来越高的软件产品版本,推动着系统不断升级。 统一过程的生命周期可以在两维空间中描述,如图2 5 所示。该图的一次循 环代表了统一过程的一次生命周期。 基十u m l 与r u p 的软件q - 工程的硼。究与应用 女心2 r 作 需求 舒沂 醢计 实i 见 湖( 式 初始细化构造移交 避代选代 选代 遗代 图2 - 5 统一过程生命周期的两维空间 横轴代表组成过程一次生命周期的四个阶段( 初始、细化、构造、移交) , 以及每个阶段经历的若干次迭代。它显示了系统产品在过程生命周期中从不成熟 渐渐过渡到成熟的过程。从图中可以看到,在r u p 中,系统的生命周期由一系 列的过程生命周期组成,每个过程生命周期产生的结果是用户产品的发布。每个 过程生命周期有四个阶段,每个阶段又细分为若干次迭代,每次迭代都有一个核 心工作流。统一过程是基于原型法来构造系统的,每一次迭代过程都在原有的系 统上生成一个增量。正是这些迭代过程不断产生系统新的增量,使产品不断成熟, 从低版本软件不断过渡到高版本软件。 我们可以得出:一次迭代过程是组成过程生命周期的最基本的单元。 纵轴恰恰显示了一次迭代的内部工作流,即产生系统一次增量所经历的工作 流程。主要有五个核心工作流:需求、分析、设计、实现、测试。 2 3 。2 阶段和迭代 1 、阶段 阶段是过程随着时间的动态组织。软件系统的生命被划分为一些生命周期, 每个周期都影响新一代产品。r u p 把一个开发过程周期划分为四个连续的阶段: 初始阶段、细化阶段、构造阶段、移交阶段。每个阶段都以一个称为“里程碑” 的时间点作为结束的标志。每个阶段都有不同的目标。阶段内部经历了若干次迭 代后,达到了阶段的目标,我们就说此时到了阶段的里程碑,即此阶段结束,过 渡到下一阶段的任务。 ( 1 ) 初始阶段: 撼于u m l 可r u p 的软件博工程的珂f 究与 训司 在仞始阶段所要做的工作是,为系统建立业务案例,划定项目领域范围。业 务案例包括成功准则( 如市场前景,税收预测) 、风险评估、所需资源的估测、 以及一个显示主要里程碑进度表的阶段计划。在初始阶段,通常要建立一个用做 概念验证的可执行原型。 在初始阶段最后,检查项目的生命周期目标,决定是否继续进行全范围的开 发。 ( 2 ) 细化阶段: 细化阶段目标是分析问题领域,建立一个健全的、合理的体系结构基础,开 发项目计划,并排除该项目的最高风险元素。此时,通过描述大部分系统需求建 立一个体系结构基础,以对系统有一个整体的了解:它的范围、主要的功能和非 功能需求。 细化阶段的最后,检查已经细化的系统目标和范围、体系结构的选择以及主 要风险的解决方法,决定是否进行构造。 ( 3 ) 构造阶段 在构造阶段,项目组要迭代地、增量地开发一个完整的产品,该产品是准备 移交给用户的,并且是经过内部测试的。 ( 4 ) 移交阶段 过渡阶段的目的是,把软件产品移交给用户使用。通常,产品移交后,用户 会产生一些新的需求,如功能升级,或原有未察觉的问题的修改。这个阶段通常 从系统的原版开始,并且随后修改,直到用户认可的真正产品。 2 、迭代 r a t i o n a l 统一过程的每个阶段都可进一步的分解为若于个迭代。一个迭代是 一个完整的开发循环( 即从捕获需求到代码实现) ,它将产生一个可执行的内部 或外部的发布版本,这个可执行产品发布版本构成开发中的最终产品的一个子 集,然后从迭代到迭代增量式地成长,最终变为系统产品。虽然每个过程工作流 按其阶段不同各有不同的重点,但是每个迭代都经历不同的过程工作流,在初始 阶段,重点在于需求捕获,在细化阶段,重点转移到分析和设计,在构造阶段, 实现是中心活动,而移交阶段的中心任务在于实施。 2 3 3 过程工作流 r a t i o n a l 统一过程工友九个工作流程,其中包括图2 5 的五个核心工作流。 其中业务建模、需求、分析和设计、实现、测试、实施是基本的过程工作流;配 置管理、项目管理、环境是支持工作流。 基于u m l 与r u p 的软件i l ; 工程的1 u 究与逝用 1 、业务建模 大多数软件工程项目的主要问题在于:软件工程和业务工程这两个无法恰当 地项目交流,这就导致业务工程的输出无法被正确地用做软件开发的输入。业务 建模通过描述组织的业务相关的结构和动态特性,并用软件工程和业务工程两大 社会都易于交流的语言( 如u m l ) 来表达,使得软件开发获得易于作为输入的 语境。 2 、需求 需求工作流主要是为了引出系统的需求,描绘出系统应该给用户提供什么样 的功能。 3 、分析和设计 分析和设计通过描述系统多种体系结构视图来说明系统在实现阶段是如何 被实现的。 分析活动,是系统的概念分析阶段,目的是为了更好地理解需求,也是为了 得到一个易于维护且有助于确定需求的系统结构概念化的描述。 系统设计是结合具体的软件实现环境,得到一个为软件特定环境支持详细的 系统结构描述。 4 、实现 实现模型描述如何用源代码、可执行程序等构件实现设计模型中的元素( 如 设计类和接口等) 。 5 、测试 测试分单元测试、阶段测试和系统测试。主要是测试每一个构造块( 包括内 部构造块、中间构造块以及将要向外发布的系统最终版本) 来验证实现的结果。 6 、实旄 实施的目的是将开发的产品提交给用户,并做相应的系统配置。 7 、配置管理 配置管理描述了如何控制软件项目组内部的各个成员的相互关联的工作( 如 避免重复无效的软件修改,多版本兵法开发的协调和控制等等) ,以控制和维护 项目制品的完整性。 8 、项目管理 项目管理是组织和管理为完成个软件项目目标而进行的各项工作。如工作 进度,人员安排等等。 9 、环境 包括开发一个系统所需要的基础设施。其目标是为项目组提供需要的过程配 置和工具支持。 基于u m l 。r u p 的软件再工程的研究与应用 2 3 4 制品 r u p 的每个过程流都将产生一个相应的制品:业务模型、用况模型、分析模 型、设计模型、实施模型、实现模型、测试模型。值得注意,以上的所有模型在 r u p 中都是用u m l 来描述的。 其中,业务模型表示一个组织的抽象;用况模型表示系统的功能性需求;分 析模型表示系统的概念设计:设计模型建立问题领域的词汇以及它的解决方案; 实施模型描述了一个被执行的系统的硬件拓扑结构( 网络布局及节点的软件构件 的部署) ;实现模型建立了用于实旌和发布物理系统的各个不见;测试模型用于 验证和校验系统。 2 3 5 统一过程( r u p ) 的特点 统一过程( r u p ) 的特点可以概括为一句话;用况许动的,以构架为中心的, 迭代和增量的软件开发过程。 1 、用况驱动 用况就是

温馨提示

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

最新文档

评论

0/150

提交评论