软件项目开发流程RUP上
RUP中定义了一些核心概念,
角色:描述某个人或者一个小组的行为与职责。RUP预先定义了很多角色。
活动:是一个有明确目的的独立工作单元。
工件:是活动生成、创建或修改的一段信息。
2. 达成计划
3. 标识和减小风险
4. 分配和跟踪任务
5. 检查商业理由
6. 设计组件构架
7. 对产品进行增量式的构建和测试
8. 验证和评价结果
9. 管理和控制变化
10. 提供用户支持
有一个清晰的前景是开发一个满足涉众真正需求的产品的关键。前景抓住了RUP需求流程的要点:分析问题,理解涉众需求,定义系统,当需求变化时管理需求。前景给更详细的技术需求提供了一个高层的、有时候是合同式的基础。正像这个术语隐含的那样,它是软件项目的一个清晰的、通常是高层的视图,能被过程中任何决策者或者实施者借用。它捕获了非常高层的需求和设计约束,让前景的读者能理解将要开发的系统。它还提供了项目审批流程的输入,因此就与商业理由密切相关。最后,由于前景构成了“项目是什么?”和“为什么要进行这个项目?”,所以可以把前景作为验证将来决策的方式之一。对前景的陈述应该能回答以下问题,需要的话这些问题还可以分成更小、更详细的问题: ? 关键术语是什么?(词汇表) ? 我们尝试解决的问题是什么?(问题陈述) ? 涉众是谁?用户是谁?他们各自的需求是什么? ? 产品的特性是什么? ? 功能性需求是什么?(Use Cases) ? 非功能性需求是什么? ? 设计约束是什么?
“产品的质量只会和产品的计划一样好。” (2) 在RUP中,软件开发计划(SDP)综合了管理项目所需的各种信息,也许会包括一些在先启阶段开发的单独的内容。SDP必须在整个项目中被维护和更新。SDP定义了项目时间表(包括项目计划和迭代计划)和资源需求(资源和工具),可以根据项目进度表来跟踪项目进展。同时也指导了其他过程内容(原文:process components)的计划:项目组织、需求管理计划、配置管理计划、问题解决计划、QA计划、测试计划、评估计划以及产品验收计划。
RUP的要点之一是在项目早期就标识并处理最大的风险。项目组标识的每一个风险都应该有一个相应的缓解或解决计划。风险列表应该既作为项目活动的计划工具,又作为确定迭代的基础。
有一点在任何项目中都是重要的,即连续的分析来源于正在进行的活动和进化的产品的客观数据。在RUP中,定期的项目状态评估提供了讲述、交流和解决管理问题、技术问题以及项目风险的机制。团队一旦发现了这些障碍物(篱笆),他们就把所有这些问题都指定一个负责人,并指定解决日期。进度应该定期跟踪,如有必要,更新应该被发布。(原文:updates should be issued as necessary。)这些项目“快照”突出了需要引起管理注意的问题。随着时间的变化/虽然周期可能会变化(原文:While the period may vary。),定期的评估使经理能捕获项目的历史,并且消除任何限制进度的障碍或瓶颈。
商业理由从商业的角度提供了必要的信息,以决定一个项目是否值得投资。商业理由还可以帮助开发一个实现项目前景所需的经济计划。它提供了进行项目的理由,并建立经济约束。当项目继续时,分析人员用商业理由来正确的估算投资回报率(ROI,即return on investment)。商业理由应该给项目创建一个简短但是引人注目的理由,而不是深入研究问题的细节,以使所有项目成员容易理解和记住它。在关键里程碑处,经理应该回顾商业理由,计算实际的花费、预计的回报,决定项目是否继续进行。
在RUP中,件系统的构架是指一个系统关键部件的组织或结构,部件之间通过接×××互,而部件是由一些更小的部件和接口组成的。即主要的部分是什么?他们又是怎样结合在一起的? RUP提供了一种设计、开发、验证构架的很系统的方法。在分析和设计流程中包括以下步骤:定义候选构架、精化构架、分析行为(用例分析)、设计组件。要陈述和讨论软件构架,你必须先创建一个构架表示方式,以便描述构架的重要方面。在RUP中,构架表示由软件构架文档捕获,它给构架提供了多个视图。每个视图都描述了某一组涉众所关心的正在进行的系统的某个方面。涉众有最终用户、设计人员、经理、系统工程师、系统管理员,等等。这个文档使系统构架师和其他项目组成员能就与构架相关的重大决策进行有效的交流。
在RUP中实现和测试流程的要点是在整个项目生命周期中增量的编码、构建、测试系统组件,在先启之后每个迭代结束时生成可执行版本。在精化阶段后期,已经有了一个可用于评估的构架原型;如有必要,它可以包括一个用户界面原型。然后,在构建阶段的每次迭代中,组件不断的被集成到可执行、经过测试的版本中,不断地向最终产品进化。动态及时的配置管理和复审活动也是这个基本过程元素(原文:essential process element)的关键。
顾名思义,RUP的迭代评估捕获了迭代的结果。评估决定了迭代满足评价标准的程度,还包括学到的教训和实施的过程改进。根据项目的规模和风险以及迭代的特点,评估可以是对演示及其结果的一条简单的纪录,也可能是一个完整的、正式的测试复审记录。这儿的关键是既关注过程问题又关注产品问题。越早发现问题,就越没有问题。(原文:The sooner you fall behind, the more time you will have to catch up.)
RUP的配置和变更管理流程的要点是当变化发生时管理和控制项目的规模,并且贯穿整个生命周期。其目的是考虑所有的涉众需求,尽可能的满足,同时仍能及时的交付合格的产品。用户拿到产品的第一个原型后(往往在这之前就会要求变更),他们会要求变更。重要的是,变更的提出和管理过程始终保持一致。在RUP中,变更请求通常用于记录和跟踪缺陷和增强功能的要求,或者对产品提出的任何其他类型的变更请求。变更请求提供了相应的手段来评估一个变更的潜在影响,同时记录就这些变更所作出的决策。他们也帮助确保所有的项目组成员都能理解变更的潜在影响。
在RUP中,部署流程的要点是包装和交付产品,同时交付有助于最终用户学习、使用和维护产品的任何必要的材料。项目组至少要给用户提供一个用户指南(也许是通过联机帮助的方式提供),可能还有一个安装指南和版本发布说明。根据产品的复杂度,用户也许还需要相应的培训材料。最后,通过一个材料清单(BOM表,即Bill of Materials)清楚地记录应该和产品一起交付哪些材料。关于需求有人看了我的要素清单后,可能会非常不同意我的选择。例如,他会问,需求在哪儿呢?他们不重要吗?我会告诉他我为什么没有把它们包括进来。有时,我会问一个项目组(特别是内部项目的项目组):“你们的需求是什么?”,而得到的回答却是:“我们的确没有什么需求。” 刚开始我对此非常惊讶(我有军方的宇航开发背景)。他们怎么会没有需求呢?当我进一步询问时,我发现,对他们来说,需求意味着一套外部提出的强制性的陈述,要求他们必须怎么样,否则项目验收就不能通过。但是他们的确没有得到这样的陈述。尤其是当项目组陷入了边研究边开发的境地时,产品需求从头到尾都在演化。因此,我接着问他们另外一个问题:“好的,那么你们的产品的前景是什么呢?”。这时他们的眼睛亮了起来。然后,我们非常顺利的就第一个要素(“开发一个前景”)中列出的问题进行了沟通,需求也自然而然的流动着(原文:and the requirements just flow naturally.)。也许只有对于按照有明确需求的合同工作的项目组,在要素列表中加入“满足需求”才是有用的。请记住,我的清单仅仅意味着进行进一步讨论的一个起点。
转载于:https://blog.51cto.com/realzjy/165583
软件项目开发流程RUP上相关推荐
- 软件项目开发流程及配置人员
项目需求汇总分析 架构设计 产品设计 代码编写 项目测试 上线 项目需求汇总分析(调研) 项目经理 在这个阶段,上项目经理应该先要求客户(项目发起人)提供一个项目需求及要求明细的清单. 清楚需求及项目 ...
- 小型软件项目开发流程探讨
一.导言 国内很多项目都是小型项目, 参与人员少(两到五个人), 要快速交付(一两个月) . 要成功完成这种项目, 除了使用成熟且被团队成员熟练使用的技术之外, 有一个良好的开发流程, 也是很必要 ...
- 软件项目开发流程以及人员职责
软件项目开发流程以及人员职责 实行软件工程项目管理: ▲ 项目经理(负责人):项目经理(负责人)对整个项目负完全责任,是指导.控制.管理和规范某个软件和软/硬件系统建设的人,项目经理(负责人)是最终对 ...
- 软件项目开发流程以及人员职责 实行软件工程项目管理: ▲ 项目经理(负责人):项目经理(负责人)对整个项目负完全责任,是指导、控制、管理和规范某个软件和软/硬件系统建设的人,项目经理(负责人)是最终
转载自csdn(danieldaniel19851023的专栏) 软件项目开发流程以及人员职责 实行软件工程项目管理: ▲ 项目经理(负责人):项目经理(负责人)对整个项目负完全责任,是指导.控制.管 ...
- 软件项目开发流程及人员职责
一 软件项目开发流程 概括来说分为一共分了6个过程 项目启动阶段->需求分析阶段->设计阶段->开发阶段->测试阶段->常规文档 1.1 项目启动阶段 A. 产品经理和项 ...
- 项目开发——企业软件项目开发流程《项目开发的流程是怎样的》
软件项目开发流程:需求分析.设计.编码.测试.上线运维 一般而言,软件项目开发流程包括以下步骤: 需求分析:对客户需求进行分析和理解,明确软件项目的目标和功能. 规划阶段:确定项目的范围.时间和预算, ...
- APP软件项目开发流程
经过近APP软件的发展,APP的开发也越来越受到重视,APP开发公司发展火热,各种各样的小程序也如雨后春笋般涌现,并以极其迅速的方式传播于微信群和朋友圈.下面我们分享一下APP软件项目的开发流程,希望 ...
- 一个完整的软件项目开发流程,软件过程,软件生命周期
一.开发流程图 1.需求分析 结构化分析 面向对象分析 2.原型设计 结构化设计 面向对象设计 3.程序开发 结构化开发 面向对象开发 4.程序测试 二.软件生命周期 软件分析 1.问题定义 确定好要 ...
- 一个完整的软件项目开发流程是怎样的呢
原文链接 个人理解 web开发的基本流程就是,产品经理根据客户(申总)拿出来<需求调研>,产品经理进行<业务梳理>看具体要实现那几个页面,都有那些功能等等,然后产品经理就开始用 ...
最新文章
- Linux挂载卸载光盘实践
- golang 实现 while 和 do……while 循环
- 二、制作最小linux系统
- LeetCode 676. 实现一个魔法字典(哈希)
- 将活动工作表生成 PDF,并通过电子邮件发送
- chrome html 读写文件路径,Chrome浏览器支持直接读写本地文件了
- GNU 关闭 MMU 和 Icache 和 Dcache
- VMware虚拟化/云计算
- Android系统(134)--- Android关于OOM的解决方案 ##OOM
- Ansible详解(九)——Ansible配置文件详解
- EDA技术与VHDL设计
- python神器_牛逼啊!一个可以随时随地写Python代码的神器
- 天擎终端安全管理系统未授权访问SQL注入漏洞
- c语言音乐播放器的代码大全,C语言音乐播放器实例代码
- linux的重启ip失效,linux配置ip 重启出错解决方法
- wps2016向程序发送命令_word文档打开,提示“向程序发送命令时出现问题”的原因...
- 最详细的美国旅游签证办理流程
- 【宇麦科技】群晖NAS套件之Drive的安装与使用(一),保姆级教程来喽!
- 2920集五福_2020年支付宝集五福攻略
- python自动求梯度
热门文章
- mac如何修改php.ini,mac 如何修改php.ini
- SQLite添加列的限制
- 网络入侵检测规避工具fragrouter
- Xamarin.Forms XAML控件的公共属性
- mfc edit 超出行数时出现滚动条_千金难买“老鸭头”,是A股唯一可以获利200%的战法,一旦出现,不要犹豫满仓干,后市必定爆涨...
- oracle中spool卸数,Oracle中如何快速的卸载和加载数据?
- java上传png_java图片上传
- seaborn系列 (4) | 分类图catplot()
- 湖南工程师用中文编写操作系统,还发明了甲、乙、丙语言???
- 巨头纷纷看上的中国Robobus又获1亿美元投资