首页 后端开发 C#.Net教程 统一软件开发过程——RUP

统一软件开发过程——RUP

Feb 23, 2017 am 10:17 AM
软件开发

  RUP(rational unified process)是一个面向对象且基于网络的程序开发方法论。它是以面向对象方法为基础的方法,RUP坚持以用例驱动,以架构为中心,迭代和增量的开发方法。

  下面以思维导图为依据简单介绍一下RUP:

 

 1.六大经验

  1)迭代式开发

  RUP中的每一个阶段可进一步分解为迭代,一个迭代是一个完整的开发循环,每一次循环都可以产生一个执行文件,每一次循环都是一次增量开发直到形成最终产品。迭代式开发允许在每次迭代过程中需求发生变化,通过不断细化对问题加深理解。迭代式开发不仅可以降低风险,而且每次迭代过程都可以执行版本结束,一次鼓舞团队士气。

  2)管理需求

  RUP描述了如何提取、组织系统的功能和约束条件并将其文档化,用例和脚本的使用证明了是捕获需求的有效方法。

  3)基于组件的体系结构

  基于独立的、可替代的、模块化组件的体系结构有助于管理复杂性,提高使用率。RUP描述了如何设计一个有弹性的、能适应变化的、易于理解的、有助于复用的软件体系结构。

  4)可视化建模

 RUP往往和UML联系在一起,对软件系统建立可视化模型帮助人们提高管理软件复杂性的能力。RUP告诉我们如何可视化的对软件系统建模,获取有关体系结构于组件的结构和行为信息。

  5)验证软件质量

 在RUP中软件质量评估不再是事后进行或单独小组进行的分离活动,而是内建于过程中的所有活动,这样可以及早发现软件中的缺陷,提高软件质量节约软件成本。

  6)控制软件变更

  迭代式开发中如果没有严格的控制和协调,整个软件开发过程很快就陷入混乱之中,RUP描述了如何控制、跟踪、监控、修改以??品,隔离来自其他工作空间的变更,以此为每个开发人员建立安全的工作空间。

 2.二维开发模型

 RUP软件开发生命周期是一个二维的软件开发模型。横轴通过时间组织,是过程展开的生命周期特征,体现开发过程的动态结构,用来描述它的术语主要包括周期、阶段、迭代里程碑;纵轴以内容来组织为自然的逻辑活动,体现开发过程的静态结构,用来描述它的术语主要包括活动、产物、工作者和工作流。如图:

 

 3.核心概念

  RUP中定义的核心概念主要有角色、活动和工作:

  角色:描述某个人或者一个小组的行为与职责。RUP预先定义了很多角色。
  活动:是一个有明确目的的独立工作单元。
  工件:是活动生成、创建或修改的一段信息。

 

 4.裁剪

  RUP是一个通用的过程模板,包含了很多开发指南、制品、开发过程所涉及到的角色说明,由于它非常庞大所以对具体的开发机构和项目,用RUP时还要做裁剪,也就是要对RUP进行配置。RUP就像一个元过程,通过对RUP进行裁剪可以得到很多不同的开发过程,这些软件开发过程可以看作RUP的具体实例。RUP裁剪可以分为五步:

  1) 确定本项目需要哪些工作流

  2) 确定每个工作流需要哪些制品。

  3) 确定4个阶段之间如何演进。确定阶段间演进要以风险控制为原则,决定每个阶段要哪些工作流,每个工作流执行到什么程度,制品有哪些,每个制品完成到什么程度。

  4) 确定每个阶段内的迭代计划。规划RUP的4个阶段中每次迭代开发的内容。

  5) 规划工作流内部结构。工作流涉及角色、活动及制品,他的复杂程度与项目规模即角色多少有关。最后规划工作流的内部结构,通常用活动图的形式给出。

 5.开发过程

  RUP中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶段、细化阶段、构造阶段和交付阶段。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。

  1)初始阶段

 初始阶段的目标是为系统建立商业案例并确定项目的边界。为了达到该目的必须识别所有与系统交互的外部实体,在较高层次上定义交互的特性。本阶段具有非常重要的意义,在这个阶段中所关注的是整个项目进行中的业务和需求方面的主要风险。对于建立在原有系统基础上的开发项目来讲,初始阶段可能很短。

  2)细化阶段

 细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。为了达到该目的,必须在理解整个系统的基础上,对体系结构作出决策,包括其范围、主要功能和诸如性能等非功能需求。同时为项目建立支持环境,包括创建开发案例,创建模板、准则并准备工具。

  3)构造阶段

 在构建阶段,所有剩余的构件应用程序功能被开发并集成为产品,所有的功能被详细测试。从某种意义上说,构建阶段是一个制造过程,其重点放在管理资源及控制运作以优化成本、进度和质量。

  4)交付阶段

 交付阶段的重点是确保软件对最终用户是可用的。交付阶段可以跨越几次迭代,包括为发布做准备的产品测试,基于用户反馈的少量的调整。在生命周期的这一点上,用户反馈应主要集中在产品调整,设置、安装和可用性问题,所有主要的结构问题应该已经在项目生命周期的早期阶段解决了。

 6.核心工作流

  RUP中有9个核心工作流,分为6个核心过程工作流和3个核心支持工作流。这些工作流在整个生命周期中被多次访问。9个核心工作流在项目中轮流被使用,在每一次迭代中以不同的重点和强度重复。

  1)商业建模

商业建模工作流描述了如何为新的目标组织开发一个构想,并基于这个构想在商业用例模型和商业对象模型中定义组织的过程,角色和责任。

  2)需求

 需求工作流的目标是描述系统应该做什么,并使开发人员和用户就这一描述达成共识。为了达到该目标,要对需要的功能和约束进行提取、组织、文档化;最重要的是理解系统所解决问题的定义和范围。

  3)分析和设计

 分析和设计工作流需求转化成未来系统的设计,为系统开发一个健壮的结构并调整设计使其与实现环境相匹配,优化其性能。分析设计的结果是一个设计模型和一个可选的分析模型。设计模型是源代码的抽象,由设计类和一些描述组成。设计类被组织成具有良好接口的设计包和设计子系统,而描述则体现了类的对象如何协同工作实现用例的功能。设计活动以体系结构设计为中心,体系结构由若干结构视图来表达,结构视图是整个设计的抽象和简化,该视图中省略了一些细节,使重要的特点体现得更加清晰。体系结构不仅仅是良好设计模型的承载媒介,而且在系统的开发中能提高被创建模型的质量。

  4)实现

 实现工作流的目的包括以层次化的子系统形式定义代码的组织结构,以组件的形式实现类和对象将开发出的组件作为单元进行测试以及集成由单个开发者(或小组)所产生的结果,使其成为可执行的系统。

  5)测试

 测试工作流要验证对象间的交互作用,验证软件中所有组件的正确集成,检验所有的需求已被正确的实现,识别并确认缺陷在软件部署之前被提出并处理。RUP提出了迭代的方法,意味着在整个项目中进行测试,从而尽可能早地发现缺陷,从根本上降低了修改缺陷的成本。测试类似于三维模型,分别从可靠性、功能性和系统性能来进行。

  6)部署

 部署工作流的目的是成功的生成版本并将软件分发给最终用户。部署工作流描述了那些与确保软件产品对最终用户具有可用性相关的活动,包括:软件打包、生成软件本身以外的产品、安装软件、为用户提供帮助。

  7)配置和变更管理

 配置和变更管理工作流描绘了如何在多个成员组成的项目中控制大量的产物。配置和变更管理工作流提供了准则来管理演化系统中的多个变体,跟踪软件创建过程中的版本。工作流描述了如何管理并行开发、分布式开发、如何自动化创建工程。同时也阐述了对产品修改原因、时间、人员保持审计记录。

  8)项目管理

 软件项目管理平衡各种可能产生冲突的目标,管理风险,克服各种约束并成功交付使用户满意的产品。

  9)环境

 环境工作流的目的是向软件开发组织提供软件开发环境,包括过程和工具。环境工作流集中于配置项目过程中所需要的活动,同样也支持开发项目规范的活动,提供了逐步的指导手册并介绍了如何在组织中实现过程。

 

 以上就是统一软件开发过程——RUP的内容,更多相关内容请关注PHP中文网(www.php.cn)!


 

 

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

变革性趋势:生成式人工智能及其对软件开发的影响 变革性趋势:生成式人工智能及其对软件开发的影响 Feb 26, 2024 pm 10:28 PM

人工智能的崛起正在推动软件开发的快速发展。这一强大技术有可能彻底改变我们构建软件的方法,对设计、开发、测试和部署等各个方面都会产生深远影响。对于企图进入动态软件开发领域的企业来说,生成式人工智能技术的问世为它们提供了前所未有的发展机遇。将这一前沿技术纳入其开发流程后,公司可以大幅提升生产效率、缩短产品上市周期,并推出在激烈竞争的数字市场中脱颖而出的优质软件产品。根据麦肯锡的一份报告,预测到2031年,生成式人工智能市场规模有望达到4.4万亿美元。这一预测不仅反映了一种趋势,更显示出技术和商业格局

软件开发中的人工智能应用:自动化与优化 软件开发中的人工智能应用:自动化与优化 Sep 02, 2023 pm 01:53 PM

作为一项前沿技术,人工智能(AI)正在各个领域展现出巨大的潜力。在软件开发领域,人工智能的应用也引起了广泛关注。从自动化任务到代码优化,人工智能为开发人员带来了许多创新的方式来提高效率、质量和创造力。本文将探讨人工智能在软件开发中的应用,重点关注自动化和优化方面的发展自动化任务1.代码生成通过学习现有代码库,人工智能可以自动生成代码片段甚至完整的模块。这对于开发人员来说非常有帮助,能够快速创建基础框架,节省时间和精力。例如,一些人工智能工具可以根据需求生成样板代码,使开发人员能够更快地开始工作2

生成式AI将在十个方面改变软件开发 生成式AI将在十个方面改变软件开发 Mar 11, 2024 pm 12:10 PM

译者|陈峻审校|重楼上个世纪90年代,当人们提起软件编程时,通常意味着选择一个编辑器,将代码检入CVS或SVN代码库,然后将代码编译成可执行文件。与之对应的Eclipse和VisualStudio等集成开发环境(IDE)可以将编程、开发、文档、构建、测试、部署等步骤纳入到一个完整的软件开发生命周期(SDLC)中,从而提高了开发人员的工作效率。近年来,流行的云计算和DevSecOps自动化工具提升了开发者的综合能力,使得更多的企业能够更加轻松地开发、部署和维护软件应用。如今,生成式AI作为下一代开

Go语言在软件开发中的重要作用 Go语言在软件开发中的重要作用 Mar 29, 2024 am 09:21 AM

Go语言(又称Golang)是由Google开发的一种编程语言,从诞生之初便备受关注,其简洁、高效、并发性强等特点让它在软件开发中发挥着越来越重要的作用。本文将探讨Go语言在软件开发中的重要性,并结合具体的代码示例进行解析。一、并发编程Go语言天生支持并发编程,其goroutine和channel的机制使并发编程变得非常简单。goroutine是Go语言提供

Golang在现代软件开发中扮演的角色及其重要性 Golang在现代软件开发中扮演的角色及其重要性 Mar 05, 2024 pm 04:12 PM

标题:Golang在现代软件开发中扮演的角色及其重要性在当今快速发展的软件开发领域中,Golang(又称Go语言)作为一种新兴的编程语言,正逐渐成为越来越多开发者的选择。Golang是由Google开发的一种开源编程语言,其设计目标是提高开发效率、简化工程维护并保持高性能。本文将探讨Golang在现代软件开发中所扮演的角色及其重要性,并通过具体的代码示例来展

揭示Python编程中最有前途的就业领域 揭示Python编程中最有前途的就业领域 Sep 08, 2023 pm 12:37 PM

揭示Python编程中最有前途的就业领域Python是一种高级编程语言,具有简单易学、功能强大和广泛应用等特点,成为目前最受欢迎的编程语言之一。Python的强大功能使其在各个行业都有着广泛的应用,因此,选择Python作为职业发展的编程语言是一个明智的选择。本文将重点揭示Python编程中最有前途的就业领域,并提供相应的代码示例。数据科学与机器学习随着大数

Java语言中的软件开发流程介绍 Java语言中的软件开发流程介绍 Jun 10, 2023 am 11:07 AM

Java语言是一种使用广泛的面向对象编程语言,被广泛应用于企业级软件开发中。在Java语言中,软件开发流程是一个非常重要的部分,它能够帮助开发团队更加高效地完成软件开发任务。本文将会介绍Java语言中的软件开发流程,并探讨其各个阶段所要完成的任务。需求分析阶段软件开发的第一步是进行需求分析,该阶段旨在确定软件需求。在Java语言中的需求分析阶段,开发团队需要

聘请人工智能软件开发机构需要了解的关键标准 聘请人工智能软件开发机构需要了解的关键标准 May 01, 2023 pm 04:40 PM

在企业聘请人工智能软件开发机构帮助开发应用程序时,必须考虑很多因素。正如最近的一份报告指出的那样,如今合格的人工智能开发人员严重缺乏。许多企业将他们的人工智能开发项目外包出去,因为他们自己很难找到合格的开发人员。幸运的是,如果与合适的人工智能软件开发机构开展合作,这个过程会容易得多。然而,企业在外包软件开发服务来开发和处理他们的人工智能项目时必须特别小心。正确扩充IT服务和人员可以使企业开发的产品与众不同,将会提高收入。基于这一点,企业需要了解聘请定制软件开发机构以帮助人工智能初创公司取得成功的

See all articles