软件过程管理之统一过程(UP)
一、软件过程
软件产品的质量取决于软件开发过程,具有良好软件过程的软件机构能够开发出高质量的软件产品。
软件过程是人们用于开发和维护软件及其相关产品的一系列活动,包括软件工程活动和软件管理活动。
按性质可分为三类:
(1)基本过程类(软件生产直接相关过程)
(2)支持过程类(有关各方按其目标所从事的一系列的支持活动)
(3)组织过程类(指那些与软件生产组织有关的过程)
二、统一过程(UP)
1、UP的产生和理解
软件过程工程(software engineering process,SEP),又称为软件开发过程,定义了开发软件的who,what,when,how。SEP是一个把用户需求转换成软件的过程。
统一软件开发过程( Unified Software Development Process,USDP)是一个源于UML作者的SEP。他通常是指统一过程(UP)。
UP具有三个基本公理
(1)用例和风险驱动;
(2)架构中心
(3)迭代和增量
为了理解UP,我们必须理解迭代。迭代的思想很简单,历史表明:人类发现小问题比大问题容易解决。因此我们把软件开发项目划分成更小的项目,它更容易管理和成功完成。每个小项目是一个迭代。要点是,每个迭代包含正常软件开发项目的所有元素:计划、分析、设计、构造、集成、测试和内部或外部的发布。
每次迭代具有5个核心工作流程
(1)需求——捕获系统应该做什么
(2)分析——精化和结构化需求
(3)设计——在系统架构中实现需求(系统是如何工作的)
(4)实现——构造软件
(5)测试——验证,是否达到期望的工作。
2、UP的结构
UP中的软件生命周期在时间上被分解为四个顺序的阶段。各个阶段如下:
(1)初始阶段(Inception)
初始阶段的目的是为系统建立商业案列并确定项目的边界。在这个阶段中所关注的是整个项目进行中的业务和需求方面的主要风险。初始阶段结束时是第一个重要的里程碑;生命周期目标(Lifecycle Objective)里程碑。生命周期目标里程碑评价项目基本的生存能力。
(2)精化阶段(Elaboration)
精化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中高风险的元素。精化阶段结束时第二个重要的里程碑:生命周期结构(Lifecycle Architecture) 里程碑。生命周期结构里程碑为系统的结构建立了管理基准并使项目小组能够在构建阶段中进行衡量。此刻,要验证详细的系统目标和范围、结构的选择以及主要风险的解决方案。
(3)构建阶段(Construction)
在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。构建阶段结束时是第三个重要的里程碑:初始功能(Initial Operational)里程碑。初始功能里程碑决定了产品是否可以在测试环境中进行部署。此刻,要确定软件、环境、用户是否可以开始系统的运行。这时的产品版本也常被称为“beta”版。
(4)移交阶段(Transition)
移交阶段的重点是确保软件对最终用户是可用的。在发布前要做产品测试,然后基于用户反馈做少量的调整。在移交阶段的终点是第四个里程碑:产品发布(Product Release)里程碑。此时,要确定目标是否实现,是否应该开始另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段结束重合。