目录
项目生命周期
从项目开始到项目结束所包含的所有项目阶段的总和
- 项目的独特性使得项目在执行过程中存在着不确定性。
- 为了降低项目的不确定性,以阶段的方式来执行项目。
项目生命周期与产品生命周期
大多数项目生命周期都具有如下特征
- 在初始阶段,经费和人力开销较少;在中间阶段达到最高;当项目接近结束时则快速下降。
- 在项目的初始阶段,项目的不确定性最高。
- 在项目的初始阶段,项目干系人影响项目的最终产品特性的能力最高,这是因为初始阶段的变更成本较小。
- 在项目的后期阶段,变更一般会增加大量的成本,项目干系人影响项目的最终产品特征的能力逐渐变低。
项目阶段
每个项目阶段都以一个或一个以上的交付物的完成为标志。
可交付物是一种可度量、可验证的工作成果,如:可行性报告、详细设计报告、原型或样机。
阶段之间的顺序关系通常是实际的先后关系
在阶段结束时一般以对完成的工作和可交付物的技术和设计评审为标准。
阶段评审目的
判断当前阶段是否满足结束标准并批准进入下一个阶段。
发现当前阶段中存在的问题和错误。
阶段评审内容
当前阶段产生的交付物。
当前阶段项目的执行情况。
阶段与阶段关系的两种基本类型
顺序关系:在顺序关系中,一个阶段只能在前一阶段完成后开始。减少了不确定性,也排除缩短总工期的可能性。
交叠关系:在交叠关系中,一个阶段在前一阶段完成前就开始。阶段交叠可能需要增加额外的资源来并行完成工作,可能会增加风险,造成返工。
信息系统项目典型生命周期模型
瀑布模型:一般将软件开发分为:可行性分析(计划)、需求分析、软件设计、编码、测试、运行维护等几个阶段。
- 从上一项开发活动接受该活动的工作对象作为输入;
- 利用这一输入,实施该项活动应完成的工作内容;
- 给出该项活动的工作成果,作为输出传给下一项开发活动;
- 对该项活动的实施工作成果进行评审。
螺旋模型:是一个演化软件过程模型,将原型实现的迭代特征与线性顺序模型中控制的和系统化的方面结合起来。
迭代方法:是通过一系列重复的循环活动来开发产品;
增量方法:是渐进的增加产品的功能。
适用类型:组织需要管理不断变化的目标和范围,降低项目的复杂性,或产品的部分交付有利于一个 或多个干系人,且不会影响最终或整批次可交付成果的交付。
大型复杂、高风险的项目通常采用迭代方式来实施。
迭代模型:每个阶段都包含不同比例的所有活动。
- 在不同的时间段内工作量不同,几乎所有的工作流在所有的时间段内均有工作量,只是大小不同而已。
- 初始阶段
- 细化阶段
- 构造阶段
- 移交阶段
V模型:明确表明了测试过程中存在的不同级别,并且非常清晰地描述了这些测试阶段和开发阶段的对应关系。
V模型的特点:
- 主要思想是开发和测试同等重要,左侧代表开发活动,而右侧代表测试活动;
- 针对每个开发阶段,都有一个测试级别与之相对应;
- 测试依旧是开发生命周期中的阶段,与瀑布模型不同的是,有多个测试级别与开发阶段对应;
- 适用于需求明确和需求变更不频繁的情形。
原型化模型:创建一个快速原型,满足项目干系人与未来的用户可以与原型进行交互,讨论分析,最终明确需求,在原型的基础上开发出用户满意的产品。
原型具备的特点:
- 实际可行;
- 具有最终系统的基本特征;
- 构造方便、快速、造价低。
原型分类:
- 抛弃型原型;
- 进化型原型。
敏捷开发模型:应对快速变化的需求的一种软件开发能力。以人为核心、迭代、循序渐进的开发方法,强调程序团队与业务专家之间的紧密协作、面对面的沟通、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,更注重软件开发中人的作用。
- 不等于右边可以没有,只是相对不重要!
- 虽然右项也具有价值,但我们认为左项具有更大价值。
项目五大过程组
项目管理通过一系列过程来完成,每个过程都使用相应的工具和技术以接受输入和产生输出。
启动过程:批准项目或阶段的开始。
规划过程:定义项目或阶段的目标及其所需的资源。
执行过程:根据计划来执行任务。
监控过程:通过定期监督和测量项目的进展来判断项目实际的执行情况与计划的差异;如果需要,还应该采取纠正措施。
结束过程:确定项目或阶段可以正式结束。