十二、MSF 过程模型
u 什么是过程模型?
过程模型建立了工程中各种活动的顺序,从这方面看,它体现了一个工程项目中整个生命周期。当前各种工程项目中都有各自的过程。MSF过程模型起始于微软开发软件应用程序的过程。它经过演化,与一些其他流行的过程模型中最为有效的原理相结合,形成一个模型。MSF过程模型可以跨越所有的工程类型,例如基于阶段类型的、里程碑驱动的、基于迭代模型等类型的工程。
MSF过程模型可以应用到传统的软件开发环境中,但同样的,它也可以适用于电子商务、分布式WEB等企业解决方案的开发和部署中。
u 瀑布模型
这种模型使用里程碑作为整个过程管理中的转换或评估点。在瀑布模型中,每一个任务在下一个任务开始前,必须完成。也就是说必须将当前阶段的任务完成后,才可以进行下一阶段的任务。
瀑布模型虽然是一种比较“老”的过程模型,但它也有它的适用场景。瀑布过程模型对于那种在一开始就能非常清楚地描绘出项目的需求,并且需求不会发生变化的项目中是最为适合的过程模型。这种模型中,每个阶段之间固定的转换点可以促进计划的跟踪和责任的分配。
由此看来,并不是模型越新、越精巧越好。每一种过程模型都有它的优点和适用的项目场景。因此在选择或决策项目的过程管理模型时,必须充分认识到这一点,适合的才是最好的。否则很容易判断失误,造成项目的失败。
u 螺旋模型
螺旋模型的焦点集中在需要对项目需求进行持续不断的精练和对项目连续不断的评估上。螺旋模型是一种非常简单的过程模型,它没有所谓的里程碑,它就是对软件按周期不断地重复构建。
螺旋模型对很小的项目进行快速软件开发时非常有效。这个模型激励开发团队和用户之间的协同合作,因为用户提供对项目的所有阶段的反馈和认可。
由于螺旋过程模型没有包含明确的过程检查点,因此它的开发过程可能非常混乱。但对于小型的、简单的项目来说,这个问题不大,这也是这个模型适用于小型项目的原因之一。
u MSF过程模型概览
MSF过程模型将上述瀑布模型和螺旋模型的最优秀的原理结合起来组成一体。
瀑布模型中由于有基于里程碑的计划,因此它有可以预测项目的未来优点;而螺旋模型则有快速反馈和有创造力的优点。MSF过程模型继承了它们的优点。
u MSF过程模型的特点
l 基于阶段和里程碑的方法
里程碑在MSF中是一个中心主题,MSF中用里程碑来计划和监控项目的进程。
MSF中的里程碑分为“主里程碑”和“中间里程碑”。主里程碑是项目阶段的转换点。MSF中主里程碑有“远景/范围认可”、“项目计划认可”、“范围完成”、“发布就绪认可”、“部署成功”。中间里程碑是指两个主里程碑之间的小的工作目标指示物或工作成果。
l 迭代的方法
在“迭代开发”是MSF中一个重复发生的主题。代码、文档、设计、计划和其他的工作成果都是以迭代的形式出现的。
MSF建议一个解决方案可以先构建、测试、开发出一个核心的功能。然后,其他的功能特征可以被加入,这就是通常所说的发布策略。对于一些小的工程来说,它通常只需一个版本。然而,微软推荐把它们分成多个版本,从而可以找到改进的机会。
版本发布没有必要按顺序进行,成熟的软件产品经常会有多个版本重叠的发布周期。版本发布之间的间隔时间,根据项目的规模、类型、用户要求和策略的不同而不同。
l 整合了构建和部署的方法
一个解决方案在没有完全被部署到生产环境中之前,是没有办法提供价值的。由于这个原因,MSF认为只有在开发完成后成功部署并交付价值以后,才开始下一个迭代过程。
u MSF过程模型各阶段的工作成果
l 构思阶段
1. 目标:创建一个关于项目的目标、限定条件和解决方案的架构
2. 团队的工作重点
a) 确定业务问题和机会
b) 确定所需的团队技能
c) 收集初始需求
d) 创建解决问题的方法
e) 确定目标、假设和限定条件
f) 建立配置与变更管理
3. 交付成果
a) 远景/范围文档
b) 项目结构文档
c) 初始风险评估文档
l 计划阶段
1. 目标:创建解决方案的体系结构和设计方案、项目计划和进度表
2. 团队重点
a) 尽可能早地发现尽可能多的问题
b) 知道项目何时收集到足够的信息以向前推进
3. 交付成果
c) 功能规格说明书
d) 主项目计划
e) 主项目进度表
l 开发阶段
1. 目标:完成功能规格说明书中所描述的功能、组件和其他要素
2. 团队主要工作
a) 编写代码
b) 开发基础架构
c) 创建培训课程和文档
d) 开发市场和销售渠道
3. 交付成果
a) 解决方案代码
b) 构造版本
c) 培训材料
d) 文档(包括部署过程、运营过程、技术支持、疑难解答等文档)
e) 营销材料
f) 更新的主项目计划、进度表和风险文档
l 稳定阶段
1. 目标:提高解决方案的质量,满足发布到生产环境的质量标准
2. 团队的工作重点
a) 提高解决方案的质量
b) 解决准备发布时遇到的突出问题
c) 实现从构造功能到提高质量的转变
d) 使解决方案稳定运行
e) 准备发布
3. 交付成果
a) 试运行评审
b) 可发布版本(包括源代码、可执行文件、脚本、安装文档、最终用户帮助、培训材料、运营文档、发布说明等)
c) 测试和缺陷报告
d) 项目文档
l 部署阶段
1. 目标:把解决方案实施到生产环境之中
2. 团队的工作重点
a) 促进解决方案从项目团队到运营团队的顺利过渡
b) 确保客户认可项目完成
3. 交付成果
a) 运营及支持信息系统
b) 所有版本的文档、装载设置、配置、脚本和代码
c) 项目收尾报告
从上面的总结中可以看到,MSF中的里程碑式过程管理方面还是很值得学习的。它通过一步一步地达到预先设定的目标,从而使整个软件过程变得可控。同时也会及时的发现项目中潜在的危险因素,便于风险的管理。它把软件过程分为几个阶段以后,可以针对某一阶段中存在的问题进行定位、分析和解决,为提高软件开发的成功率提供了有效保障。
同时,也可以看到该过程管理模型中对过程划分得比较细。可以根据项目的规模和类型对这个过程管理模型进行简化。使之更加适合于我们公司的软件开发过程。
---MSF过程模型总结完毕