Rational统一建模过程的十大要素
为了有效的应用 Rational 统一过程 (RUP),首先要理解它的关键目标,并且弄清楚每一个目标为什么重要,他们是怎么样结合在一起,共同帮助你的开发团队满足涉众需求,生产出优质产品的。
首要的是抓住要点
有天晚上,我的邻居 Randy 过来求助。他正在为周末野营和徒步旅行作准备,但是不知道带些什么东西才好。他知道,我经常领导和参加野外旅行,而且我能够很快的决定在有限的包裹里塞些什么东西,他还记得我曾经给他提过,我有一张我拥有的所有设备和衣服的清单。“那么,我可以借那张清单吗?”他问道。
“当然,但是恐怕帮助不大。”我解释道。你看,在我的外出设备清单中有好几百项,涉及很多种类型的外出,从背包攀登到滑雪,旅行时间从几天的短途旅行到很多天的远征探险。我知道,如果没有相应的指南,Randy 将会陷入冗长的清单之中,以致弄不清,就他相对简单的外出而言,什么才是他真正需要的。
始于要素,逐步递增
因此,我提出看一下 Randy 在他的鼓鼓囊囊的包里面都已经装了那些东西。我们可以看以看,他是否可以少带些什么以减轻负担,或者是还有什么该带的却没有带。过了一会儿,我已经能肯定,他真正缺少的不是别的,而是对野外旅行的理解,也就是说,抓不住野外旅行的要点。
我拿出一张空白的纸,列出以下十个项目:(1)
地图(Map)
指南针(Compass)
太阳镜和防晒油(Sunglasses 和 sunscreen)
额外的食物和水(Extra food 和 water)
额外的衣服(Extra clothing)
头上戴的小灯(Headlamp)
急救箱(First-aid kit)
打火机(Fire-starter)
火柴(Matches)
刀子(Knife)
“你看,Randy 。这就是你真正需要的。如果你从这十大要素出发,那么,无论遇到什么旅行,再来考虑还需要增加哪些内容就变得容易多了。”多年前,我第一次登山时,靠的就是这张清单,现在我仍然使用它,无论我准备的旅行时那种类型、要去多长时间。每一项的膨胀或者压缩取决于旅行本身。始于简短的清单,然后需要时再扩展,这是一种方式; 始于冗长的清单,然后再来决定不采用什么,这是另一种方式。但是两种方式相比,前者显然要容易得多。
把这一课应用到 RUP 中
当我帮助项目组就 RUP 的很多元素进行排序时,常常听到这样的问题:“我怎样对所有这些内容进行排序?而且决定在我的项目里究竟需要哪些要素?”“RUP 包括这么多的信息。它一定是针对大项目的――我真的能在我的小项目使用它吗?”
我断定,这些人真正需要的是“ RUP 的十大要素”,就像我给我的朋友 Randy 的简单的清单一样。这个 RUP 的清单,可以作为任何项目的符合情理的起点,无论小项目、中型项目还是大型项目。这个列表会聚焦在被我称之为“精华或要素”的东西上,可能是 RUP 的,也可能是任何有效软件过程的。
迭代式开发循环模型
在所有成员领悟到提交合格产品所需要的关键过程元素之前,项目往往陷入某个特定主题的细节的沼泽中。然后,当项目拖后时,大家就会怪罪以前被过分强调的某些活动,或者是怪罪大家不理解其用处的某些活动,“嘿,我早就告诉你需求管理(或者是用例、收集项目度量数据、使用配置管理、使用缺陷跟踪工具、召开项目状态会议里面的一个或几个)会放慢我们的进度!你不信!”
有一个“精华或要素”列表让团队成员采用一种更系统、更全面的方式来思考和执行整个软件开发过程。一旦一个过程框架或“构架”到位了,团队成员就能更有效的面对和处理单个的问题域(大部分时间我得承认,需求管理应该在列表的顶部)。同样,一开始就标识显然的问题以及相关的风险,并且确定处理他们的优先级,也是很重要的,这样,团队才能在早期就根据需要采取相应的解决或缓解对策。
RUP 的十大要素
那么,在 RUP 的十大要素中应该包括哪些内容呢?下面是我的意见:
1. 开发前景
2. 达成计划
3. 标识和减小风险
4. 分配和跟踪任务
5. 检查商业理由
6. 设计组件构架
7. 对产品进行增量式的构建和测试
8. 验证和评价结果
9. 管理和控制变化
10. 提供用户支持
让我们逐一的审视这些要素,看一看它们什么地方适合 RUP,找出它们能够成为十大要素的理由。
1. 开发一个前景
有一个清晰的前景是开发一个满足涉众真正需求的产品的关键。
前景抓住了 RUP 需求流程的要点:分析问题,理解涉众需求,定义系统,当需求变化时管理需求。
前景给更详细的技术需求提供了一个高层的、有时候是合同式的基础。正像这个术语隐含的那样,它是软件项目的一个清晰的、通常是高层的视图,能被过程中任何决策者或者实施者借用。它捕获了非常高层的需求和设计约束,让前景的读者能理解将要开发的系统。它还提供了项目审批流程的输入,因此就与商业理由密切相关。最后,由于前景构成了“项目是什么?”和“为什么要进行这个项目?”,所以可以把前景作为验证将来决策的方式之一。
对前景的陈述应该能回答以下问题,需要的话这些问题还可以分成更小、更详细的问题:
月华唐