`
jxguoyan
  • 浏览: 14709 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

RUP 迭代开发计划的两种方法

阅读更多
摘自Lhttp://www.uml.org.cn/SoftWareProcess/200905315.asp
本文内容包括:
前言
迭代计划的特点
迭代目标的设置
迭代计划的开发方法
两种计划方法的总结
参考资料
随着软件技术的发展、客户需求的变化越来越快、对应用软件项目的交付的要求也越来越要跟上市场的变化,RUP 非常适合这样的开发场景,在应用软件开发中已经成为最常用的开发模式。从项目管理的角度来看,RUP 的开发中对于迭代计划的开发和管理是保证成功交付项目的关键。好的迭代开发计划可以有效降低项目的风险,提高团队的协作,提高项目开发效率。笔者结合在以往项目中应用 RUP 迭代开发的实践,总结了两种开发迭代计划的方法,并对比两者的适用情况,以期对应用 RUP 的项目管理人员提供借鉴。
前言

随着技术的快速发展和市场的快速变化,应用软件项目的交付越来越面临着需求不明确、交付进度紧、项目风险大、项目规模变大、项目团队协作困难、客户参与度高等问题。在这种情况下,RUP 的迭代开发的方法已经成为应用软件开发项目的主流的开发模式,并能够有效解决这些问题。但是本文不会完整讨论整个软件开发过程中 RUP 的贡献和如何应用 RUP。只是从项目管理和项目计划的角度探讨如何应用 RUP 的迭代方法开发项目计划。

笔者在多个项目中应用 RUP 进行软件项目的开发和管理,在本文中将结合实践阐述 RUP 迭代计划的两种开发方法,对于指导项目经理裁剪和应用 RUP 有实际的参考意义。本文还将与读者分享在实际项目中应用 RUP 如何开发迭代目标、如何开发迭代计划以及介绍了两种不同的迭代计划的模板参考示例。

迭代计划的特点

迭代开发是 RUP 的核心思想,但是大家在刚开始使用 RUP 时你会发现这么多的并行工作流对项目管理同时也带来很大挑战和难度。因此使用 RUP 来完成项目,开发迭代计划是实施的主要难点之一。

迭代计划的特点:

一个迭代是总体项目计划的一个阶段
需要明确的交付目标(或可以运行的系统)
多个比较明确的角色的参与
可以串行也可以并行
体现了 RUP 架构驱动、关注风险的特点
实现快速交付,缩短大项目的交付周期
提高客户参与度和项目的可视化
迭代计划的开发考虑的因素:

总体项目计划
项目规模大小、周期
需求明确程度和技术风险
团队成熟度和规模
项目所处的阶段,在同一个项目的不同的阶段可以采用不同的迭代计划方法
迭代目标的设置

上面提到迭代计划是实施 RUP 的难点之一,那么设置迭代目标就是解决这个难点的重点。

应用 RUP 开发项目的迭代目标主要是以项目开发周期中该迭代结束后所发布的交付物为主。 RUP 的迭代交付物通常以可以运行的系统,包括需求验证原型,架构验证原型,功能验证原型,测试系统,最终上线产品等。

通常在项目前期的迭代中以发布原型系统和原型架构为主,在项目的中期以发布的增量的功能Feature、业务模块为主,而在项目的后期以增量业务功能、测试系统、非功能需求、缺陷修改为主。当然,对于不同的项目类型,迭代的目标的设置也不同,比如系统软件产品的开发项目与应用软件开发项目,新软件产品开发与软件系统升级项目的差别就非常大。另外影响迭代目标的另外一个重要因素是项目的需求和架构的成熟程度,需求的明确程度,个性化需求和共性需求的比例,是影响项目风险和迭代开发目标的重要因素。还有就是采用的架构和技术,也是影响的重要因素之一,因此迭代目标的设置需要结合和考虑项目的总体目标和采用的不同的架构方法论,比如 IBM SO A项目的 SOMA(Service-Oriented Modeling and Architecture)面向服务的建模和架构。

概括来说,项目范围或需求、架构及决策、项目总体目标是设置迭代目标的重要的输入。比如原型迭代开发的迭代目标可以这样定义:

开发架构验证框架
完成 2 个关键业务用例的实现
完成对架构决策中 3 个关键技术的验证实现
迭代计划的开发方法

RUP 的开发过程模型对项目管理和项目计划提出了更高的要求,迭代计划的好坏直接影响到项目目标的实现,项目风险和生产效率。如何更好地平衡和组织项目中众多的并行活动和分配不同的项目专业角色,对项目管理提出了很大的挑战。

根据笔者在众多的项目中应用和实践 RUP 中,总结出了两种迭代计划的开发方法。当然这两种方法并不是相互独立和分开使用的。在不同的项目或者同一个项目的不同的阶段,会交替使用甚至组合使用。

下面就分别介绍这两种方法的内容、区别和适用情况。

以时间为轴线的迭代计划

以时间为轴线的迭代计划也是使用 RUP 开发整体项目计划的主要的方法。根据项目的周期分为软件开发的初始阶段(Inception Phase)、精化阶段(Elaboration Phase)、构建阶段(Construction Phase)和产品化阶段(Transition Phase)。一般来说,这四个阶段作为项目开发生命周期的主要里程碑,而细化后的迭代阶段作为项目的二级里程碑。

迭代计划就是在每个里程碑下以时间顺序设置不同的开发迭代以满足里程碑的要求,达到里程碑的目标。比如在初始阶段一般有 1-2 个迭代周期,精化阶段一般会有 2-4 个迭代周期。当然迭代周期的个数要根据项目的类型、项目的规模和项目的特点不同来选择。一般对于需求不明确的应用软件的开发项目,往往精化阶段会有更多个迭代,而在产品移交阶段的迭代会比较少。而对于软件系统升级项目,往往在构建阶段的迭代会比较多。

迭代周期(Duration)也是制定迭代目标要考虑的因素,迭代周期也是根据项目整体的周期长短来确定合理的周期。一般来说 2 个周到 2 个月是比较合理的选择。迭代周期的长短在同一个项目中是可以不同的,但是一般经验来看,相对固定的设置从项目管理和项目团队的工作来看更适合,可以保持比较好的项目的工作节奏。

确定迭代个数和迭代周期,往往与设置迭代目标是相辅相成的。综合考虑,在完成了迭代目标、周期后,项目管理人员就可以开发项目的迭代计划了。

在以时间为轴线的迭代计划一般会将多个工作流(Work Flows)集成在一个计划中,项目团队内部有分工,但是不强调过于明显的分工。这种方法一般适合项目早期、人员较少的情况下。 在项目的中后期,往往会结合以软件工程流程和角色为轴线的计划方法。 在这种方法下,对于一个迭代开发周期中,更像一个小的瀑布模型。 各个迭代之间没有重合(Overlap),是串行执行的。 具体例子参照如下:

图 1. 以时间为轴线的迭代计划


图 2. 以时间为轴线的迭代计划示例

以软件工程流程或者角色为轴线的迭代计划

当项目规模比较大,团队内部角色分工比较明确的情况下,迭代开发的活动组织在一个计划中往往难以管理和监控。这个时候项目一般会采取以软件工程流程或者开发角色为轴线来组织迭代开发计划。

根据 RUP 的工程流程,项目中会有如下活动类型:

业务建模,需求分析,分析设计,实施开发,测试,部署,配置和变更管理,项目管理,环境。

理论上每种软件工程流程都会对应一个单独的计划,而且每个软件工程流程会定义自己的迭代周期和迭代次数。当然这个单独的计划只是相对独立的,一方面要与总体的项目集成计划保持一致,另一方面还要考虑与其他软件工程流程的计划的依赖关系。项目经理的非常重要的职责之一就是识别和管理这些依赖关系,使之保证项目开发的顺利进行。

对于如上九种软件工程流程,并不是一定要对应九个单独的子计划,在一般的应用软件的开发项目中,一般根据角色的团队的情况分为如下几个单独的计划:

业务需求开发计划
软件设计计划
软件开发计划
测试计划
管理和集成计划
软件开发计划可能还会存在多个,比如一个项目有多个子系统的开发,开发团队比较大,一般又会分为子系统 1 开发计划、子系统 2 开发计划,分别组织实施。在这种情况下各个迭代计划之间是有重合(Overlap)的,项目计划活动的执行是并行进行的。

具体的例子如下所示:

图 3. 以软件工程流程为轴线的迭代计划


图 4. 以软件工程流程为轴线的迭代计划示例

两种计划方法的总结

下表对比两种方法,总结不同的方法在不同的适用场景下的适用情况,作为项目管理人员选择和采用的依据:

表 1. 两种方法的对照总结
 
两种方法的对照总结
适合情景 时间为轴线的迭代计划 工作流程和角色为轴线的迭代计划
适合的项目规模 都可以 全部或大型项目
适合项目团队的大小 小团队 大团队
适合的项目阶段 全部或者项目早期 项目的中期
依赖 内部依赖,串行执行 造成团队之间或者计划之间的依赖,并行执行
管理难度 中低 高
综上所述,在一个项目中,项目经理和项目管理人员往往根据项目的具体情况和项目所在阶段来采用不同的迭代计划的开发方法。甚至将两者结合,制定适合项目的迭代计划,从而降低项目风险、提供项目团队的协作能力,提高生产效率,实现快速交付的目标。

参考资料

学习
查看“敏捷 RUP:来自实战中的经验”,通过本文对于敏捷统一过程的论述,从中汲取这一来自于实战的最佳实践。
查看“IBM Rational Method Composer 介绍”,这篇文章简要介绍了 Rational Method Composer 在裁剪和定制 Rational 统一过程(RUP)方面的能力和特点。
访问 IBM Rational Method Composer 与 Rational Unified Process 产品专题,这是面向过程开发和管理人员的 RMC 与 RUP 技术参考资源。
获取免费的 Rational Method Composer 工具包,了解裁剪定制 Rational 统一过程(RUP)的最佳工具与实践。
访问 UML 资源中心,获得关于统一建模语言(Unified Modeling Language,UML)的入门知识、技术资源和最佳实践。
访问 IBM developerWorks 中国网站 Rational 专区,获得关于 IBM Rational 软件交付平台(Rational Software Delivery Platform)产品的技术资源和最佳实践。
订阅 Rational Edge 中文版,获取软件开发领域的最佳实践。
获得产品和技术
下载最新的 IBM Rational Method Composer 试用版。
下载更多免费的 IBM Rational 试用版软件,了解 IBM Rational 软件的最新特性。
获取更多 IBM 试用版软件,并熟练掌握来自 DB2®、Lotus®、Tivoli®,以及 WebSphere® 的开发工具和中间件产品,用这些试用版软件开发您的下一个项目。这些试用版软件可以免费直接从 developerWorks 下载。
讨论
参加 Rational 大学,与 IBM Rational 专家一起分享 Rational 产品最佳实践。
查看 developerWorks 博客 并加入 developerWorks 社区。
分享到:
评论

相关推荐

    《数据结构》(02331)基础概念

    内容概要:本文档《数据结构》(02331)第一章主要介绍数据结构的基础概念,涵盖数据与数据元素的定义及其特性,详细阐述了数据结构的三大要素:逻辑结构、存储结构和数据运算。逻辑结构分为线性结构(如线性表、栈、队列)、树形结构(涉及根节点、父节点、子节点等术语)和其他结构。存储结构对比了顺序存储和链式存储的特点,包括访问方式、插入删除操作的时间复杂度以及空间分配方式,并介绍了索引存储和散列存储的概念。最后讲解了抽象数据类型(ADT)的定义及其组成部分,并探讨了算法分析中的时间复杂度计算方法。 适合人群:计算机相关专业学生或初学者,对数据结构有一定兴趣并希望系统学习其基础知识的人群。 使用场景及目标:①理解数据结构的基本概念,掌握逻辑结构和存储结构的区别与联系;②熟悉不同存储方式的特点及应用场景;③学会分析简单算法的时间复杂度,为后续深入学习打下坚实基础。 阅读建议:本章节内容较为理论化,建议结合实际案例进行理解,尤其是对于逻辑结构和存储结构的理解要深入到具体的应用场景中,同时可以尝试编写一些简单的程序来加深对抽象数据类型的认识。

    【工业自动化】施耐德M580 PLC系统架构详解:存储结构、硬件配置与冗余设计

    内容概要:本文详细介绍了施耐德M580系列PLC的存储结构、系统硬件架构、上电写入程序及CPU冗余特性。在存储结构方面,涵盖拓扑寻址、Device DDT远程寻址以及寄存器寻址三种方式,详细解释了不同类型的寻址方法及其应用场景。系统硬件架构部分,阐述了最小系统的构建要素,包括CPU、机架和模块的选择与配置,并介绍了常见的系统拓扑结构,如简单的机架间拓扑和远程子站以太网菊花链等。上电写入程序环节,说明了通过USB和以太网两种接口进行程序下载的具体步骤,特别是针对初次下载时IP地址的设置方法。最后,CPU冗余部分重点描述了热备功能的实现机制,包括IP通讯地址配置和热备拓扑结构。 适合人群:从事工业自动化领域工作的技术人员,特别是对PLC编程及系统集成有一定了解的工程师。 使用场景及目标:①帮助工程师理解施耐德M580系列PLC的寻址机制,以便更好地进行模块配置和编程;②指导工程师完成最小系统的搭建,优化系统拓扑结构的设计;③提供详细的上电写入程序指南,确保程序下载顺利进行;④解释CPU冗余的实现方式,提高系统的稳定性和可靠性。 其他说明:文中还涉及一些特殊模块的功能介绍,如定时器事件和Modbus串口通讯模块,这些内容有助于用户深入了解M580系列PLC的高级应用。此外,附录部分提供了远程子站和热备冗余系统的实物图片,便于用户直观理解相关概念。

    某型自动垂直提升仓储系统方案论证及关键零部件的设计.zip

    某型自动垂直提升仓储系统方案论证及关键零部件的设计.zip

    2135D3F1EFA99CB590678658F575DB23.pdf#page=1&view=fitH

    2135D3F1EFA99CB590678658F575DB23.pdf#page=1&view=fitH

    agentransack文本搜索软件

    可以搜索文本内的内容,指定目录,指定文件格式,匹配大小写等

    Windows 平台 Android Studio 下载与安装指南.zip

    Windows 平台 Android Studio 下载与安装指南.zip

    Android Studio Meerkat 2024.3.1 Patch 1(android-studio-2024.3.1.14-windows-zip.zip.002)

    Android Studio Meerkat 2024.3.1 Patch 1(android-studio-2024.3.1.14-windows.zip)适用于Windows系统,文件使用360压缩软件分割成两个压缩包,必须一起下载使用: part1: https://download.csdn.net/download/weixin_43800734/90557033 part2: https://download.csdn.net/download/weixin_43800734/90557035

    4-3-台区智能融合终端功能模块技术规范(试行).pdf

    国网台区终端最新规范

    4-13-台区智能融合终端软件检测规范(试行).pdf

    国网台区终端最新规范

    【锂电池剩余寿命预测】Transformer-GRU锂电池剩余寿命预测(Matlab完整源码和数据)

    1.【锂电池剩余寿命预测】Transformer-GRU锂电池剩余寿命预测(Matlab完整源码和数据) 2.数据集:NASA数据集,已经处理好,B0005电池训练、B0006测试; 3.环境准备:Matlab2023b,可读性强; 4.模型描述:Transformer-GRU在各种各样的问题上表现非常出色,现在被广泛使用。 5.领域描述:近年来,随着锂离子电池的能量密度、功率密度逐渐提升,其安全性能与剩余使用寿命预测变得愈发重要。本代码实现了Transformer-GRU在该领域的应用。 6.作者介绍:机器学习之心,博客专家认证,机器学习领域创作者,2023博客之星TOP50,主做机器学习和深度学习时序、回归、分类、聚类和降维等程序设计和案例分析,文章底部有博主联系方式。从事Matlab、Python算法仿真工作8年,更多仿真源码、数据集定制私信。

    基于android的家庭收纳App的设计与实现.zip

    Android项目原生java语言课程设计,包含LW+ppt

    大学生入门前端-五子棋vue项目

    大学生入门前端-五子棋vue项目

    二手车分析完整项目,包含源代码和数据集,包含:XGBoost 模型,训练模型代码,数据集包含 10,000 条二手车记录的数据集,涵盖车辆品牌、型号、年份、里程数、发动机缸数、价格等

    这是一个完整的端到端解决方案,用于分析和预测阿联酋(UAE)地区的二手车价格。数据集包含 10,000 条二手车信息,覆盖了迪拜、阿布扎比和沙迦等城市,并提供了精确的地理位置数据。此外,项目还包括一个基于 Dash 构建的 Web 应用程序代码和一个训练好的 XGBoost 模型,帮助用户探索区域市场趋势、预测车价以及可视化地理空间洞察。 数据集内容 项目文件以压缩 ZIP 归档形式提供,包含以下内容: 数据文件: data/uae_used_cars_10k.csv:包含 10,000 条二手车记录的数据集,涵盖车辆品牌、型号、年份、里程数、发动机缸数、价格、变速箱类型、燃料类型、颜色、描述以及销售地点(如迪拜、阿布扎比、沙迦)。 模型文件: models/stacking_model.pkl:训练好的 XGBoost 模型,用于预测二手车价格。 models/scaler.pkl:用于数据预处理的缩放器。 models.py:模型相关功能的实现。 train_model.py:训练模型的脚本。 Web 应用程序文件: app.py:Dash 应用程序的主文件。 callback

    《基于YOLOv8的船舶航行违规并线预警系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    《基于YOLOv8的工业布匹瑕疵分类系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    CodeCount.exe

    此为代码审查工具 可查 文件数,字节数,总行数,代码行数,注释行数,空白行数,注释率等

    商业数据分析与Python实现:企业破产概率及抽样技术解析(复现论文或解答问题,含详细可运行代码及解释)

    内容概要:本文档涵盖了一项关于企业破产概率的详细分析任务,分为书面回答和Python代码实现两大部分。第一部分涉及对业务类型和破产状态的边际分布、条件分布及相对风险的计算,并绘制了相应的二维条形图。第二部分利用Python进行了数据处理和可视化,包括计算比值比、识别抽样技术类型、分析鱼类数据集以及探讨辛普森悖论。此外,还提供了针对鱼类和树木数据的统计分析方法。 适合人群:适用于有一定数学和编程基础的学习者,尤其是对统计学、数据分析感兴趣的大学生或研究人员。 使用场景及目标:①帮助学生掌握统计学概念如边际分布、条件分布、相对风险和比值比的实际应用;②教授如何用Python进行数据清洗、分析和可视化;③提高对不同类型抽样技术和潜在偏见的理解。 其他说明:文档不仅包含了理论知识讲解,还有具体的代码实例供读者参考实践。同时提醒读者在完成作业时需要注意提交格式的要求。

    MCP快速入门实战,详细的实战教程

    MCP快速入门实战,详细的实战教程

    python,playwright基础

    python,playwright基础

    氖星生命体SDK1.8

    氖星生命体SDK是JAVA开发的代码。它能输出多种情绪和意图,让机器人、AI玩具和其他硬件具备人工生命,并在意图驱动下运行。

Global site tag (gtag.js) - Google Analytics