字号: 小 中 大 |
推荐给好友
上一篇 |
下一篇
一图胜千言:RUP核心概念解析
发布: 2008-5-20 16:32 |
作者: 网络转载 |
来源:
网络转载 |
查看: 114次 | 进入软件测试论坛讨论
领测软件测试网
3.4、阶段和迭代:提供不同级别的决策时机
尽早解决重大风险,是软件工程管理中的一条重要原则。正如Tom Glib所说:“如果我们不主动化解风险,那么它们会自己找上门来。”[2]心存侥幸是很危险的。
RUP是风险驱动的。它将整个开发生命周期分为4个阶段:初始阶段、细化阶段、构造阶段、移交阶段。初始阶段着重化解业务风险,并确保所有涉众对项目达成一致的认识。细化阶段主要化解技术风险,要定义并创建可执行的系统架构。相对而言,当决定开始构造阶段的时候,风险已经比较小了。当然,风险是动态变化的,构造阶段和移交阶段照样会有这样那样的风险存在。
RUP的每个阶段又可分为一到多个迭代周期。采用迭代式开发,意味着有持续不断的反馈;反馈是决策的基础,也是化解风险的基础。迭代式开发的一个主要目的就是尽早降低风险,通过每次迭代中分析、按重要性排序并解决主要风险,来达到尽早化解风险的目的。
这个根据持续反馈来进行决策的时机,叫做里程碑(milestone)。里程碑有2种,阶段结束对应的里程碑叫做主要里程碑(major milestone);迭代结束对应的里程碑叫做次要里程碑(minor milestone)。可以说,阶段和迭代,为开发团队提供了不同级别的决策时机。
上图清晰的表达了上述分析的思想。里程碑分为主要里程碑和次要里程碑2种;阶段可以包含多次迭代;每个阶段必然有一个主要里程碑标识结束,每个迭代必然以一个次要里程碑标识结束。
迭代的具体进行,是要靠角色执行相关活动。上图中的迭代和活动的多对多关系,精彩地反映了迭代开发的特点——每次迭代都执行多个(甚至全部)开发活动。
3.5、配置和变更管理支持迭代式的基于基线的开发
迭代式开发意味着每个后继迭代,都以前一个迭代为基础,不断地进化和完善系统,直至完成最终产品。历史上有一段时期,为了强调这一点,RUP曾特意宣传“迭代和增量开发”。
建立并管理基线(baseline),为迭代式开发提供了有力支持。基线的要点有二:一是要通过评审,二是要受配置和变更管理控制。IEEE对于基线的完整定义是:已经通过正式复审和批准的某规约或产品,它因此可以作为进一步开发的基础,并且只能通过正式的变更控制过程进行改变。
配置和变更管理完成建立并管理基线的任务。置于配置和变更管理之下的工件,称为配置项(configuration item)——因此下图把配置项建模为工件的子类。而基线就是有多个配置项组成的瞬时快照——因为受配置和变更管理控制是基线的必要条件。
上面讨论了“工件-配置项-基线”这些静态概念,下面再讨论一下相关动态概念。任何工件,都有可能发生变更;正如并不是所有工件都是配置项一样,变更也不一定都受控,比如,用于讨论的临时设计就不必受控。只有配置项的变更,才是需要受配置和变更管理控制的。到底哪些工件应当受控,是根据实践情况决定的,应当在规范性和灵活性之间权衡考虑。
3.6、发布是什么,发布不是什么
发布(release)是软件产品的一个稳定的、可执行的版本,它包括了发布说明、用户手册等相关工件。
单纯的文档或者不能执行的软件版本,并不是发布。
发布是某个迭代周期的成果,但是并非每个迭代周期都用发布。
图中表达得很明白,发布是特殊的基线。这意味着发布不是单一的工件,而是工件集;而且发布的工件都应当置于配置管理的控制之下,这是因为你必须标识和跟踪这些工件,开发团队或者用户的很多活动都和它们相关。
4、总结
UML已经广泛用于软件开发活动,可视化表达使得理解和解决问题变得容易。本文是UML的另一个应用,它被用来明确概念之间的关系,希望对大家有所启发。
文章来源于领测软件测试网 https://www.ltesting.net/