UML第十一讲统一软件开发过程概述.ppt
《UML第十一讲统一软件开发过程概述.ppt》由会员分享,可在线阅读,更多相关《UML第十一讲统一软件开发过程概述.ppt(90页珍藏版)》请在三一办公上搜索。
1、1,第十一讲 统一软件开发过程概述,(Rational Unified Process),2,一个过程定义了为达到某个确定的目标,需要什么人在什么时间以何种方式做何种工作。对于软件工程而言,其目标是构造一个新的软件产品或完善一个旧的软件产品。一个有效的过程为有效地开发高质量的软件提供准则,它获取并提出当前技术条件下可行的最佳实践方案,因此可以降低风险并增强预见性。我们需要一个可用于指导顾客、用户、开发人员和项目经理等参与者的过程。我们需要一个广泛适用的过程,以便所有的项目相关人员都能够理解自己在所进行的开发工作中的角色。一个软件开发过程还要能随时间的推移不断地进化。在进化过程中,它能及时调整自
2、己以适应技术、工具、人员以及组织模式的变化。,软件开发过程,3,UML的创始者Booch、Jacobson和Rumbaugh在创建UML的同时,在Rational公司的支持下综合了多种软件开发过程的长处,提出一种新的面向对象的软件开发过程,称之为Rational统一过程 RUP。利用UML建模时,可遵循任何类型的建模过程。UML建模语言的作者们给出了一种推荐性的建模过程指导,即RUP。UML是一种建模语言,不是一种方法,它是软件系统开发方法的一个组成部分,UML本身没有关于开发过程概念的定义和表示符号,它独立于过程。,OO、UML、RUP的关系,4,软件开发问题可以归结为开发人员面临的将一个大
3、型软件所包含的各个部分集成为一个整体的难度。软件开发团体需要一个受控的工作方式;需要一个过程来集成软件开发的方方面面;需要通用的方法或过程来完成如下工作:指导一个群组活动的顺序。布置每个开发人员和整个群组的任务。确定开发何种制品。提出监控和测量一个项目的产品和活动的准则。具有明确定义和管理完善的过程是区分高效项目和不成功项目的关键。统一软件开发过程是30多年来经验的总结,是软件问题的一种解决方案。,统一软件开发过程,5,RUP保证了软件开发按计划、有目的、有序的进行。避免了软件开发过程中的盲目性。详细步骤在四个大阶段中是迭代的,可以有效的将软件开发过程分成许多小项目,有助于管理,有助于分割目标
4、,有助于计划的制定、实施和检查。有助于管理人员随时了解项目状态,避免各种开发过程中的风险。,RUP过程的主要目的,6,Rational Unified Process描述了如何为软件开发队伍有效的部署经过商业化验证的软件开发方法。(OO+UML+RUP)RUP被称为最佳实践不仅仅因为可以精确地量化它们的价值,而且它们被许多成功的机构普遍的应用。为使整个软件开发团队有效利用最佳实践,RUP为每个软件开发团队成员提供了必要准则模板和工具指导。,有效保证:方法、量化和准则,7,RUP是一套软件工程方法的框架,各个组织可根据自身的实际情况,以及项目规模对RUP进行裁剪和修改,以制定出合乎需要的软件工程
5、过程。RUP有九个工作流(构件),分别有58个流程(包)和134个活动(类),大约89个工件。RUP特别适合大中型项目的开发。,RUP是可裁剪的,8,过程,项目,产品,人员,工具,模板,自动化,结果,参与者,peopleprojectproductprocess,软件开发的四个要素(4P),9,时间维上,为了能够方便地管理软件开发过程,监控软件开发状态,RUP把软件开发周期划分为Cycles,每个Cycle生成一个产品的新版本并依次由四个连续的阶段组成,每个阶段都应完成确定的任务。,迭代、增量式开发,10,迭代的开发软件需求管理使用基于构件的体系结构可视化软件建模验证软件质量控制软件变更,RU
6、P统一过程的特点,11,迭代的开发软件,为什么要以迭代方式开发?,12,迭代的开发软件,为了降低风险,应采用迭代方式递进开发。每次迭代完成都会发布一个可执行文件。,13,迭代式生命周期和瀑布式生命周期的风险比较,14,允许变更需求逐步集成元素 及早降低风险有助于组织学习和提高提高复用性生成性能更强壮的产品容许产品进行战术改变迭代流程自身可在进行过程中得到改进和精炼问题:迭代的保证基础是什么?,迭代式方法的优点,15,需求变更一直是给项目制造难题的主要根源,它们会导致延期交付、工期延误、客户不满意、开发人员受挫。用户会随着项目进行改变他们的想法。人的本性就是如此。强迫用户去接受他们最初所设想的那
7、种系统,是完全错误的。迭代便于您将变更需求考虑进来。需求总是会随着过程而变更。问题:为什么迭代可以适应变更?,适应变更,16,在迭代式方法中,集成可以说是连续不断的。过去在项目结束时要占到整个项目工作量 40%的那段较长的、不确定的且棘手的时期,现在分散到六至九个(很难精确计划的)集成部分中,每一部分要集成的元素都比过去少得多。集成并不只是简单的“一锤定音”-元素是被逐步集成的。问题:为什么迭代可以降低开发风险?,降低风险,17,因为相对于必须预先确定复用性而言,分部分设计和实施时更容易确定公用部分,所以可以提高复用性。确定和开发可重复使用的部分并非易事。早期迭代中的设计复审可使构架设计师确定
8、毋庸置疑的潜在复用部分,并在以后的迭代中开发和完善这些公用代码。问题:复用的设计基础是什么?,提高复用性,18,开发人员有机会在整个生命周期中边做边学,各显其能。测试员可早些开始测试,技术文档可早些开始编写迭代流程自身可在进行过程中得到改进和精炼。一次迭代结束时的评估不仅要从产品和进度的角度来考察项目的情况,而且还要分析组织和流程本身有什么待改进之处,以便在下次迭代中更好地完成任务。,组织学习,19,因为错误经过数次迭代已得到纠正,所以这样生成的构架将更强壮。在早期迭代中,随着产品逐步成熟,可以及早地发现缺陷。可以及时发现并减少性能上的瓶颈,而不是在交付前夕才发现它们。生成的是一个经过全面测试
9、的产品。关键功能因而有机会在数次迭代中经历多次测试。,提高质量,20,迭代在数量、持续时间和目标上都是按计划进行。参与者的任务和职责都已确定好。对进度进行的目标评测都将记录备查。从一次迭代到下一次迭代确实会存在返工现象,但返工也是严格按规定进行的。,规范,21,需求管理是一种用于查找、记录、组织和跟踪系统需求变更的系统化方法。需求不总是显而易见的,而且它可来自各个方面。需求并不总是能容易用文字明白无误地表达。在不同的详细级别上,需求的种类也各种各样。如果不加以控制,需求的数量将难以管理。需求之间相互关联关系,而且需求也和软件工程流程中的其他可交付工件有关。需求有唯一的特征或特征值。例如,它们的
10、重要性和容易满足的程度都各不相同。需求涉及众多相关方面,这意味着需求要由功能交叉的各组人员管理。需求会变更。,需求管理,22,构架框架或构架基础设施是可以在其上构建某种构架的构件集。软件构架设计RUP提供了一种系统化方法来设计、开发和验证一个构架。围绕多种构架视图的概念,以及构架样式、设计规则和约束的记录方式,提供了用于说明构架的模板。设计工作流程包括一些特定的活动,目的在于确定构架约束、在构架方面具有重要意义的元素以及有关如何选择构架的指南。构架主要是分析设计工作流程的结果。基于构件的开发 提供多种方法来支持基于构件的开发,基于构件的体系结构,23,用例视图:包括用例和场景,这些用例和场景包
11、括在构架方面具有重要意义的行为、类或技术风险。逻辑视图:包括最重要的设计类、从这些设计类到包和子系统的组织形式,以及从这些包和子系统到层的组织形式。实施视图:包括实施模型及其从模块到包和层的组织形式的概览。同时还描述了将逻辑视图中的包和类向实施视图中的包和模块分配的情况。进程视图:包括所涉及任务(进程和线程)的描述,它们的交互和配置,以及将设计对象和类向任务的分配情况。配置视图:包括对最典型的平台配置的各种物理节点的描述以及将任务(来自进程视图)向物理节点分配的情况。,RUP“4+1 视图模型”,24,用迭代方法可以逐步确定构件,决定哪些需要开发,哪些可以复用以及哪些需要购买。软件构架的侧重点
12、清楚地说明了结构;构件以及集成它们的方法;它们相互作用的基本机制和模式。在分析设计中,使用诸如包、子系统和层次的概念来组织构件并指定接口。测试首先围绕构件展开,然后才逐渐过渡到较大的集成构件集。,基于构件的开发,25,基于构件的分层次构架,26,目前许多项目都使用面向对象编程语言来实现可重复使用的、容许变更并且稳定的系统。为实现具备这些优点的系统,在设计中使用对象技术尤为重要。统一建模语言(UML)集中体现了整个对象技术行业中的这种最佳方案。开发过程显示了对软件如何可视化建模。可视化抽象帮助你沟通软件的不同方面。确保构件模块一致于代码,保持设计和实现的一致性。,可视化软件建模,27,可视化建模
13、加深了抽象的程度,28,质量应该基于可靠性,功能性,应用和系统性能根据需求来进行验证。帮助计划,设计,实现,执行和评估这些测试类型。质量评估被内建于过程。所有的活动,包括全体成员,使用客观的度量和标准,并且不是事后型的或单独小组进行的分离活动。,验证软件质量,29,部署之后又发现软件问题再进行修复,这通常要多花 100 到 1000 倍的成本,要在特定时间达到既定目标,在整个项目生命周期内不断对质量进行检验和管理必不可少。,验证软件质量,30,管理变更的能力:确定每个修改是可接受的,能被跟踪的。开发过程描述了如何控制,跟踪和监控修改以确保成功的迭代开发。描述如何进行自动化集成和建立管理使小组如
14、同单个单元来工作。,控制软件的变更,31,控制变更不仅仅是检入和检出文件。它包括对工作区、并行开发、集成以及工作版本的管理。,控制软件的变更,32,配置与变更请求管理,33,需求变更工作流程已明确定义,并可重复执行。变更请求使交流更具条理性。隔离的各个工作区减少了同时工作的团队成员间的相互干扰。变更率统计为客观地评估项目状况提供了一个良好的指标。工作区中包含所有的工件,这有利于保持一致性。可以评估和控制对变更的传播。变更可以保留在一个强壮的可定制的系统中。,控制软件变更,34,时间:把软件开发的生命周期划分为若干阶段和一系列的循环重复。过程:过程是指良好定义的开发活动。历经这些活动,可以获得规
15、定的软件开发产物。,二维结构的软件开发过程,35,RUP二维结构,36,软件生命周期被分解为周期,每一个周期工作在产品新的一代上周期又划分为四个连续的阶段为,(每个阶段都有自已的目标,在阶段结束时要达到里程碑所要求的状态)。每个阶段迭代的执行九个工作流(其中有六个核心工作流和三个核心支持工作流)。每个不同的工作流由若干个流程组成。而每个流程由若干个活动构成。每个活动由一系列的步骤来完成,进一步,每个步骤由一些文字来进行说明。活动是RUP软件开发过程的基本单元。活动由指定的角色完成,并对执行活动而产生的产品负责。产品是软件开发过程中的所有文挡、程序。产品应是可测试或评审的。产品的最终形式是交付给
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UML 第十一 统一 软件 开发 过程 概述
链接地址:https://www.31ppt.com/p-5576369.html