第4章计划阶段 计划阶段,或者称为可行性与计划研究阶段,是软件工程项目经历的第一个 阶段。在此阶段内,需要确定项目的总体目标和范围,进行可行性分析、制定开 发计划、考虑风险,并完成相应文件的编制。在计划阶段,应该综合考虑与项目 相关的各个因素,做出合理的评估和计划,这样才能够做出正确的决策,项目计 划也才有指导性。在现实中,许多项目在开发过程中计划成为没有价值的文件, 整个开发过程陷入到盲目执行的境地,这都是因为计划无法起到指导性作用造成 的。但是,要制定合理的计划必须建立在对项目的深入理解基础上,但是,由于 项目尚未真正开始,在计划阶段对项目的理解就不可能全面而深入,这就形成了 一个矛盾。为了解决此矛盾,在项目开展过程中,计划并非是一次性完成的。在 计划阶段,将根据对项目的初步了解完成可行性研究、项目计划等工作。随着实 际项目的开展,将可能再次进行可行性评估,而项目计划也会进一步细化,特别 是分阶段对当前要开展的任务进行详细计划,因此形成了一种滚动计划的模式。 4.1计划阶段的主要内容 在计划阶段,需要回答几个关键性问题,包括:“项目是否值得去做”,”项 目能在给定的预算和时间内完成吗?“,”项目如何去做“,”项目中可能遇到的问 题是什么?“。回答这些问题通过一系列步骤进行,计划阶段中包括以下具体事 项: 1.分析项目是否可行 2.确定项目范围和目标 ●确定目标和这些目标的衡量方法 ●选择项目的责任人 ● 确定项目所有的涉及人员和他们的兴趣 ● 根据对项目涉及人员的分析修改目标 ●建立各方通信的渠道 3.分析项目特征 ●分析项目的特征 确定高层次的项目风险
第 4 章 计划阶段 计划阶段,或者称为可行性与计划研究阶段,是软件工程项目经历的第一个 阶段。在此阶段内,需要确定项目的总体目标和范围,进行可行性分析、制定开 发计划、考虑风险,并完成相应文件的编制。在计划阶段,应该综合考虑与项目 相关的各个因素,做出合理的评估和计划,这样才能够做出正确的决策,项目计 划也才有指导性。在现实中,许多项目在开发过程中计划成为没有价值的文件, 整个开发过程陷入到盲目执行的境地,这都是因为计划无法起到指导性作用造成 的。但是,要制定合理的计划必须建立在对项目的深入理解基础上,但是,由于 项目尚未真正开始,在计划阶段对项目的理解就不可能全面而深入,这就形成了 一个矛盾。为了解决此矛盾,在项目开展过程中,计划并非是一次性完成的。在 计划阶段,将根据对项目的初步了解完成可行性研究、项目计划等工作。随着实 际项目的开展,将可能再次进行可行性评估,而项目计划也会进一步细化,特别 是分阶段对当前要开展的任务进行详细计划,因此形成了一种滚动计划的模式。 4.1 计划阶段的主要内容 在计划阶段,需要回答几个关键性问题,包括:“项目是否值得去做”,”项 目能在给定的预算和时间内完成吗?“,”项目如何去做“,”项目中可能遇到的问 题是什么?“。回答这些问题通过一系列步骤进行,计划阶段中包括以下具体事 项: 1. 分析项目是否可行 2. 确定项目范围和目标 确定目标和这些目标的衡量方法 选择项目的责任人 确定项目所有的涉及人员和他们的兴趣 根据对项目涉及人员的分析修改目标 建立各方通信的渠道 3. 分析项目特征 分析项目的特征 确定高层次的项目风险
●考虑用户有关实现方面的需求 ●选择一般的生命周期方法 ●检查估计的资源 4.确定项目产品和活动 ●确定和描述项目产品(或交付物) ●确定任务,分析项目 ●建立项目计划模型 6.确定活动风险 ●识别和量化活动风险 ● 制定风险降低方法和紧急处理手段 ●在考虑风险的基础上调整计划和估计 7.分配资源 ●确定和分配资源 ·在考虑资源约束的情况下修改计划 8.发布计划 上述工作将主要体现在如下三个文件中,我们将在接下来的小节中详细介绍: ● 可行性研究报告 ● 项目开发计划 ● 风险列表 4.2可行性研究 4.2.1进行可行性研究的目的与方法 可行性研究过程,也称为项目论证过程,是指在投入资源进行项目开发之前, 根据实际情况,对该项目是否值得开发,项目是否能在特定的资源和时间条件下 完成作出评估。可行性研究的重点不在于项目如何完成,而在于项目是否值得完 成,是否能够完成。 可行性研究主要需要考虑技术可行性、经济可行性和社会可行性三个方面。 进行可行性研究的过程可大致参考如下几个步骤:
考虑用户有关实现方面的需求 选择一般的生命周期方法 检查估计的资源 4. 确定项目产品和活动 确定和描述项目产品(或交付物) 确定任务,分析项目 建立项目计划模型 6. 确定活动风险 识别和量化活动风险 制定风险降低方法和紧急处理手段 在考虑风险的基础上调整计划和估计 7. 分配资源 确定和分配资源 在考虑资源约束的情况下修改计划 8. 发布计划 上述工作将主要体现在如下三个文件中,我们将在接下来的小节中详细介绍: 可行性研究报告 项目开发计划 风险列表 4.2 可行性研究 4.2.1 进行可行性研究的目的与方法 可行性研究过程,也称为项目论证过程,是指在投入资源进行项目开发之前, 根据实际情况,对该项目是否值得开发,项目是否能在特定的资源和时间条件下 完成作出评估。可行性研究的重点不在于项目如何完成,而在于项目是否值得完 成,是否能够完成。 可行性研究主要需要考虑技术可行性、经济可行性和社会可行性三个方面。 进行可行性研究的过程可大致参考如下几个步骤:
1.明确系统目标与资源限制 2.分析研究现有系统 3.对比新系统与现有系统 4.分析新系统的可能实现方案并进行比较 5.编写可行性研究报告 4.2.2可行性研究报告的编写方法 可行性报告中涉及到的重要部分以及相应的编写方法如下: 1.可行性研究的前提 说明对所建议的开发项目进行可行性研究的前提,如要求、目标、假定、限 制等。任何可行性研究都是建立在一定的前提基础上的。 1)要求 说明对所建议开发的软件的基本要求,包括在功能和性能方面的要求。 在可行性报告中,对功能的表述一般用文字表达,也可以用用例的方式加以 表述。为了进一步刻画功能,可以画交互图或者活动图来体现业务逻辑,也可以 画数据流程图来表示业务逻辑。 在性能表示方面,通过文字描述速度、安全性、与其他系统集成等要求。 如果对项目中有明确的完成期限,也将其列出。 对于整个系统也将说明其输入和输出数据。输入说明系统的输入,包括数据 的来源、类型、数量、数据的组织以及提供的频度;输出如报告、文件或数据, 对每项输出要说明其特征,如用途、产生频度、接口以及分发对象。 2)目标 说明所建议系统的主要开发目标,如: ● 人力与设备费用的减少: ● 处理速度的提高; ● 控制精度或生产能力的提高: ● 管理信息服务的改进: ● 自动决策系统的改进: ●人员利用率的改进。 这些目标都是希望通过开发软件系统所要达成的业务目标。 3)条件、假定和限制 说明对这项开发中给出的条件、假定和所受到的限制,如:
1. 明确系统目标与资源限制 2. 分析研究现有系统 3. 对比新系统与现有系统 4. 分析新系统的可能实现方案并进行比较 5. 编写可行性研究报告 4.2.2 可行性研究报告的编写方法 可行性报告中涉及到的重要部分以及相应的编写方法如下: 1. 可行性研究的前提 说明对所建议的开发项目进行可行性研究的前提,如要求、目标、假定、限 制等。任何可行性研究都是建立在一定的前提基础上的。 1)要求 说明对所建议开发的软件的基本要求,包括在功能和性能方面的要求。 在可行性报告中,对功能的表述一般用文字表达,也可以用用例的方式加以 表述。为了进一步刻画功能,可以画交互图或者活动图来体现业务逻辑,也可以 画数据流程图来表示业务逻辑。 在性能表示方面,通过文字描述速度、安全性、与其他系统集成等要求。 如果对项目中有明确的完成期限,也将其列出。 对于整个系统也将说明其输入和输出数据。输入说明系统的输入,包括数据 的来源、类型、数量、数据的组织以及提供的频度;输出如报告、文件或数据, 对每项输出要说明其特征,如用途、产生频度、接口以及分发对象。 2)目标 说明所建议系统的主要开发目标,如: 人力与设备费用的减少; 处理速度的提高; 控制精度或生产能力的提高; 管理信息服务的改进; 自动决策系统的改进; 人员利用率的改进。 这些目标都是希望通过开发软件系统所要达成的业务目标。 3)条件、假定和限制 说明对这项开发中给出的条件、假定和所受到的限制,如:
● 所建议系统的运行寿命的最小值: ●进行系统方案选择比较的时间: ●经费、投资方面的来源和限制: ● 法律和政策方面的限制: ●硬件、软件、运行环境和开发环境方面的条件和限制: ● 可利用的信息和资源: ● 系统投入使用的最晚时间。 4)进行可行性研究的方法 说明这项可行性研究将是如何进行的,所建议的系统将是如何评价的。摘要 说明所使用的基本方法和策略,如调查、加权、确定模型、建立基准点或仿真等。 5)评价尺度 说明对系统进行评价时所使用的主要尺度,如费用的多少、各项功能的优先 次序、开发时间的长短及使用中的难易程度等。 2.对现有系统的分析 这里的现有系统是指当前实际使用的系统,这个系统可能是计算机系统,也 可能是一个机械系统甚至是一个人工系统。分析现有系统的目的是为了进一步阐 明建议中的开发新系统或修改现有系统的必要性。 1)处理流程和数据流程 说明现有系统的基本的处理流程。此流程可用交互图和活动图表示,也可以 用数据流图表示。 2)工作负荷 列出现有系统所承担的工作及工作量。 3)费用开支 列出由于运行现有系统所引起的费用开支,如人力、设备、空间、支持性服 务、材料等项开支以及开支总额。 4)人员 列出为了现有系统的运行和维护所需要的人员的专业技术类别和数量。 5)设备 列出现有系统所使用的各种设备。 6)局限性 列出本系统的主要的局限性,例如处理时间赶不上需要,响应不及时,数据 存储能力不足,处理功能不够等。并且要说明,为什么对现有系统的改进性维护
所建议系统的运行寿命的最小值; 进行系统方案选择比较的时间; 经费、投资方面的来源和限制; 法律和政策方面的限制; 硬件、软件、运行环境和开发环境方面的条件和限制; 可利用的信息和资源; 系统投入使用的最晚时间。 4)进行可行性研究的方法 说明这项可行性研究将是如何进行的,所建议的系统将是如何评价的。摘要 说明所使用的基本方法和策略,如调查、加权、确定模型、建立基准点或仿真等。 5)评价尺度 说明对系统进行评价时所使用的主要尺度,如费用的多少、各项功能的优先 次序、开发时间的长短及使用中的难易程度等。 2. 对现有系统的分析 这里的现有系统是指当前实际使用的系统,这个系统可能是计算机系统,也 可能是一个机械系统甚至是一个人工系统。分析现有系统的目的是为了进一步阐 明建议中的开发新系统或修改现有系统的必要性。 1)处理流程和数据流程 说明现有系统的基本的处理流程。此流程可用交互图和活动图表示,也可以 用数据流图表示。 2)工作负荷 列出现有系统所承担的工作及工作量。 3)费用开支 列出由于运行现有系统所引起的费用开支,如人力、设备、空间、支持性服 务、材料等项开支以及开支总额。 4)人员 列出为了现有系统的运行和维护所需要的人员的专业技术类别和数量。 5)设备 列出现有系统所使用的各种设备。 6)局限性 列出本系统的主要的局限性,例如处理时间赶不上需要,响应不及时,数据 存储能力不足,处理功能不够等。并且要说明,为什么对现有系统的改进性维护
己经不能解决问题。 3.所建议的系统 本章将用来说明所建议系统的目标和要求将如何被满足。 1)对所建议系统的说明 概括地说明所建议系统,并说明在第1项中列出的那些要求将如何得到满足, 说明所使用的基本方法及根据。 2)处理流程和数据流程 给出所建议系统的处理流程和数据流程。 3)改进之处 按列出的目标,逐项说明所建议系统相对于现存系统具有的改进。 4)影响 说明在建立所建议系统时,预期将带来的影响,包括: (1)对设备的影响:说明新提出的设备要求及对现存系统中尚可使用的设备须 作出的修改。 (2)对软件的影响:说明为了使现存的应用软件和支持软件能够同所建议系统 相适应。而需要对这些软件所进行的修改和补充。 (3)对用户单位机构的影响:说明为了建立和运行所建议系统,对用户单位机 构、人员的数量和技术水平等方面的全部要求。 (4)对系统运行过程的影响:说明所建议系统对运行过程的影响,如: ●用户的操作规程: ●运行中心的操作规程: ●运行中心与用户之间的关系: ● 源数据的处理; ●数据进入系统的过程: ●对数据保存的要求,对数据存储、恢复的处理: ●输出报告的处理过程、存储媒体和调度方法; ●系统失效的后果及恢复的处理办法。 (5)对开发的影响:说明对开发的影响,如: ●为了支持所建议系统的开发,用户需进行的工作: ●为了建立一个数据库所要求的数据资源: ● 为了开发和测验所建议系统而需要的计算机资源: 所涉及的保密与安全问题
已经不能解决问题。 3. 所建议的系统 本章将用来说明所建议系统的目标和要求将如何被满足。 1)对所建议系统的说明 概括地说明所建议系统,并说明在第1项中列出的那些要求将如何得到满足, 说明所使用的基本方法及根据。 2)处理流程和数据流程 给出所建议系统的处理流程和数据流程。 3)改进之处 按列出的目标,逐项说明所建议系统相对于现存系统具有的改进。 4)影响 说明在建立所建议系统时,预期将带来的影响,包括: (1)对设备的影响:说明新提出的设备要求及对现存系统中尚可使用的设备须 作出的修改。 (2)对软件的影响:说明为了使现存的应用软件和支持软件能够同所建议系统 相适应。而需要对这些软件所进行的修改和补充。 (3)对用户单位机构的影响:说明为了建立和运行所建议系统,对用户单位机 构、人员的数量和技术水平等方面的全部要求。 (4)对系统运行过程的影响:说明所建议系统对运行过程的影响,如: 用户的操作规程; 运行中心的操作规程; 运行中心与用户之间的关系; 源数据的处理; 数据进入系统的过程; 对数据保存的要求,对数据存储、恢复的处理; 输出报告的处理过程、存储媒体和调度方法; 系统失效的后果及恢复的处理办法。 (5)对开发的影响:说明对开发的影响,如: 为了支持所建议系统的开发,用户需进行的工作; 为了建立一个数据库所要求的数据资源; 为了开发和测验所建议系统而需要的计算机资源; 所涉及的保密与安全问题