第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)对开发的影响:说明对开发的影响,如: 为了支持所建议系统的开发,用户需进行的工作; 为了建立一个数据库所要求的数据资源; 为了开发和测验所建议系统而需要的计算机资源; 所涉及的保密与安全问题
(6)对地点和设施的影响:说明对建筑物改造的要求及对环境设施的要求。 (7)对经费开支的影响:扼要说明为了所建议系统的开发,设计和维持运行而 需要的各项经费开支。 5)局限性 说明所建议系统尚存在的局限性以及这些问题未能消除的原因。 6)技术条件方面的可行性 本节应说明技术条件方面的可行性,如: ●在当前的限制条件下,该系统的功能目标能否达到: ● 利用现有的技术,该系统的功能能否实现: ● 对开发人员的数量和质量的要求并说明这些要求能否满足; ● 在规定的期限内,本系统的开发能否完成。 4.可选择的其他系统方案 扼要说明曾考虑过的每一种可选择的系统方案,包括需开发的和可从国内国 外直接购买的,如果没有供选择的系统方案可考虑,则说明这一点。 1)可选择的系统方案1 参照前一部分的提纲,说明可选择的系统方案1,并说明它未被选中的理由。 2)可选择的系统方案2 按类似4.1条的方式说明第2个乃至第n个可选择的系统方案。 5.投资及效益分析 1)支出 对于所选择的方案,说明所需的费用。如果已有一个现存系统,则包括该系 统继续运行期间所需的费用。 (1)基本建设投资:包括采购、开发和安装下列各项所需的费用,如: ●房屋和设施: ● 硬件设备,包括服务器,存储,移动设备等; ● 网络设施: ●环境保护设备: ● 安全与保密设备: ● 操作系统的和应用的软件: 数据库管理软件
(6)对地点和设施的影响:说明对建筑物改造的要求及对环境设施的要求。 (7)对经费开支的影响:扼要说明为了所建议系统的开发,设计和维持运行而 需要的各项经费开支。 5)局限性 说明所建议系统尚存在的局限性以及这些问题未能消除的原因。 6)技术条件方面的可行性 本节应说明技术条件方面的可行性,如: 在当前的限制条件下,该系统的功能目标能否达到; 利用现有的技术,该系统的功能能否实现; 对开发人员的数量和质量的要求并说明这些要求能否满足; 在规定的期限内,本系统的开发能否完成。 4. 可选择的其他系统方案 扼要说明曾考虑过的每一种可选择的系统方案,包括需开发的和可从国内国 外直接购买的,如果没有供选择的系统方案可考虑,则说明这一点。 1)可选择的系统方案 1 参照前一部分的提纲,说明可选择的系统方案 1,并说明它未被选中的理由。 2)可选择的系统方案 2 按类似 4.1 条的方式说明第 2 个乃至第 n 个可选择的系统方案。 ...... 5. 投资及效益分析 1)支出 对于所选择的方案,说明所需的费用。如果已有一个现存系统,则包括该系 统继续运行期间所需的费用。 (1)基本建设投资:包括采购、开发和安装下列各项所需的费用,如: 房屋和设施; 硬件设备,包括服务器,存储,移动设备等; 网络设施; 环境保护设备; 安全与保密设备; 操作系统的和应用的软件; 数据库管理软件
(2)其他一次性支出:包括下列各项所需的费用,如: ●研究(需求的研究和设计的研究): ●开发计划与测量基准的研究: ●数据库的建立: ●己有软件的修改: ●检查费用和技术管理性费用: ●培训费、旅差费以及开发安装人员所需要的一次性支出: ●人员的退休及调动费用等。 (3)非一次性支出:列出在该系统生命期内按月或按季或按年支出的用于运行 和维护的费用,包括: ●设备的租金和维护费用: ● 软件的租金和维护费用: ● 数据通讯方面的租金和维护费用: ●人员的工资、奖金: ● 房屋、空间的使用开支: ● 公用设施方面的开支; ● 保密安全方面的开支: ●其他经常性的支出等。 2)收益 对于所选择的方案,说明能够带来的收益,这里所说的收益,表现为开支费 用的减少或避免、差错的减少、灵活性的增加、动作速度的提高和管理计划方面 的改进等,包括: (1)一次性收益:说明能够用人民币数目表示的一次性收益,可按数据处理、 用户、管理和支持等项分类叙述,如: ●开支的缩减包括改进了的系统的运行所引起的开支缩减,如资源要求的减少, 运行效率的改进,数据进入、存贮和恢复技术的改进,系统性能的可监控, 软件的转换和优化,数据压缩技术的采用,处理的集中化/分布化等: ●价值的增升包括由于一个应用系统的使用价值的增升所引起的收益,如资源 利用的改进,管理和运行效率的改进以及出错率的减少等: ●其他如从多余设备出售回收的收入等。 (2)非一次性收益:说明在整个系统生命期内由于运行所建议系统而导致的按 月的、按年的能用人民币数目表示的收益,包括开支的减少和避免。 (3)不可定量的收益:逐项列出无法直接用人民币表示的收益,如服务的改进
(2)其他一次性支出:包括下列各项所需的费用,如: 研究(需求的研究和设计的研究); 开发计划与测量基准的研究; 数据库的建立; 已有软件的修改; 检查费用和技术管理性费用; 培训费、旅差费以及开发安装人员所需要的一次性支出; 人员的退休及调动费用等。 (3)非一次性支出:列出在该系统生命期内按月或按季或按年支出的用于运行 和维护的费用,包括: 设备的租金和维护费用; 软件的租金和维护费用; 数据通讯方面的租金和维护费用; 人员的工资、奖金; 房屋、空间的使用开支; 公用设施方面的开支; 保密安全方面的开支; 其他经常性的支出等。 2) 收益 对于所选择的方案,说明能够带来的收益,这里所说的收益,表现为开支费 用的减少或避免、差错的减少、灵活性的增加、动作速度的提高和管理计划方面 的改进等,包括; (1)一次性收益:说明能够用人民币数目表示的一次性收益,可按数据处理、 用户、管理和支持等项分类叙述,如: 开支的缩减包括改进了的系统的运行所引起的开支缩减,如资源要求的减少, 运行效率的改进,数据进入、存贮和恢复技术的改进,系统性能的可监控, 软件的转换和优化,数据压缩技术的采用,处理的集中化/分布化等; 价值的增升包括由于一个应用系统的使用价值的增升所引起的收益,如资源 利用的改进,管理和运行效率的改进以及出错率的减少等; 其他如从多余设备出售回收的收入等。 (2)非一次性收益:说明在整个系统生命期内由于运行所建议系统而导致的按 月的、按年的能用人民币数目表示的收益,包括开支的减少和避免。 (3)不可定量的收益:逐项列出无法直接用人民币表示的收益,如服务的改进
由操作失误引起的风险的减少,信息掌握情况的改进,组织机构给外界形象的改 善等。有些不可捉摸的收益只能大概估计或进行极值估计(按最好和最差情况估 计)。 3)收益/投资比 求出整个系统生命期的收益/投资比值。 4)投资回收周期 求出收益的累计数开始超过支出的累计数的时间。 5)敏感性分析 所谓敏感性分析是指一些关键性因素如系统生命期长度、系统的工作负荷量、 工作负荷的类型与这些不同类型之间的合理搭配、处理速度要求、设备和软件的 配置等变化时,对开支和收益的影响最灵敏的范围的估计。在敏感性分析的基础 上做出的选择当然会比单一选择的结果要好一些。 6.社会因素方面的可行性 用来说明对社会因素方面的可行性分析的结果,包括: 1)法律方面的可行性 法律方面的可行性问题很多,如合同责任、侵犯专利权、侵犯版权等方面的 陷阱,软件人员通常是不熟悉的,有可能陷入,务必要注意研究。 2)使用方面的可行性 例如从用户单位的行政管理、工作制度等方面来看,是否能够使用该软件系 统:从用户单位的工作人员的素质来看,是否能满足使用该软件系统的要求等等, 都是要考虑的。 7.结论 在进行可行性研究报告的编制时,必须有一个研究的结论。结论可以是: ●可以立即开始进行: ● 需要推迟到某些条件(例如资金、人力、设备等)落实之后才能开始进行; ● 需要对开发目标进行某些修改之后才能开始进行: 不能进行或不必进行(例如因技术不成熟、经济上不合算等)
由操作失误引起的风险的减少,信息掌握情况的改进,组织机构给外界形象的改 善等。有些不可捉摸的收益只能大概估计或进行极值估计(按最好和最差情况估 计)。 3)收益/投资比 求出整个系统生命期的收益/投资比值。 4)投资回收周期 求出收益的累计数开始超过支出的累计数的时间。 5)敏感性分析 所谓敏感性分析是指一些关键性因素如系统生命期长度、系统的工作负荷量、 工作负荷的类型与这些不同类型之间的合理搭配、处理速度要求、设备和软件的 配置等变化时,对开支和收益的影响最灵敏的范围的估计。在敏感性分析的基础 上做出的选择当然会比单一选择的结果要好一些。 6. 社会因素方面的可行性 用来说明对社会因素方面的可行性分析的结果,包括: 1)法律方面的可行性 法律方面的可行性问题很多,如合同责任、侵犯专利权、侵犯版权等方面的 陷阱,软件人员通常是不熟悉的,有可能陷入,务必要注意研究。 2)使用方面的可行性 例如从用户单位的行政管理、工作制度等方面来看,是否能够使用该软件系 统;从用户单位的工作人员的素质来看,是否能满足使用该软件系统的要求等等, 都是要考虑的。 7. 结论 在进行可行性研究报告的编制时,必须有一个研究的结论。结论可以是: 可以立即开始进行; 需要推迟到某些条件(例如资金、人力、设备等)落实之后才能开始进行; 需要对开发目标进行某些修改之后才能开始进行; 不能进行或不必进行(例如因技术不成熟、经济上不合算等)
4.3项目开发计划 4.3.1项目开发计划的目的与主要内容 随着软件开发规模的不断扩张,软件项目开发己经成为需要团队协作的系统 工程。编制项目开发计划的目的就是用文件的形式,把项目的各项属性、开发过 程中的各项安排记录下来,以便团队根据计划开展和检查项目的开发工作。 项目开发计划最重要的内容有两项,项目定义和实施计划。项目定义对项目 目的、项目范围、产出产品、验收标准、项目期限等重要内容作出界定,而实施 计划是对项目开发过程一个总规划,既是分配开发任务的指导,也是项目过程中 进行进度控制的依据。 4.3.2项目开发计划的编写方法 项目开发计划中涉及到的重要部分以及相应的编写方法如下: 1.项目概述 1)工作内容 简要地说明在本项目的开发中须进行的各项主要工作。 2)团队组织结构 说明项目团队的组织结构。扼要说明参加项目团队各成员的基本情况和承担 的角色。 图4-1是教室管理系统项目组团队组织结构的一个例子,首先给出组织结构 图。 项目经理 分析工程师 分析工程师 分析工程师 开发工程师 开发工程师 开发工程师 文档工程师 集成工程师 图4-1项目组组织结构 再采用列表(表4-1)的方式说明团队成员的基本情况和承担的角色。 表4-1团队成员情况 成员 基本情况 项目角色 李修 本科,三年以上开发经验,负责过多个项目 项目经理,分析工程师
4.3 项目开发计划 4.3.1 项目开发计划的目的与主要内容 随着软件开发规模的不断扩张,软件项目开发已经成为需要团队协作的系统 工程。编制项目开发计划的目的就是用文件的形式,把项目的各项属性、开发过 程中的各项安排记录下来,以便团队根据计划开展和检查项目的开发工作。 项目开发计划最重要的内容有两项,项目定义和实施计划。项目定义对项目 目的、项目范围、产出产品、验收标准、项目期限等重要内容作出界定,而实施 计划是对项目开发过程一个总规划,既是分配开发任务的指导,也是项目过程中 进行进度控制的依据。 4.3.2 项目开发计划的编写方法 项目开发计划中涉及到的重要部分以及相应的编写方法如下: 1. 项目概述 1)工作内容 简要地说明在本项目的开发中须进行的各项主要工作。 2)团队组织结构 说明项目团队的组织结构。扼要说明参加项目团队各成员的基本情况和承担 的角色。 图 4-1 是教室管理系统项目组团队组织结构的一个例子,首先给出组织结构 图。 图 4-1 项目组组织结构 再采用列表(表 4-1)的方式说明团队成员的基本情况和承担的角色。 表 4-1 团队成员情况 成员 基本情况 项目角色 李修 本科,三年以上开发经验,负责过多个项目 项目经理,分析工程师
赵齐 本科,两年以上开发经验,擅长数据库方向 分析工程师,开发工程师 本科,两年以上开发经验,曾负责多个项目的 杨治 开发工程师,集成工程师 后台开发工作 王平 本科,擅长设计,有丰富的用户界面设计经验 分析工程师,文档工程师 顾成 本科,两年以上开发经验,前端开发经验丰富 开发工程师 3)产品 (1)程序:列出须移交给用户的程序的名称、所用的编程语言及存储程序的媒 体形式,逐项说明其功能和能力。 (2)文件:列出须移交用户的每种文件的名称及内容要点。 (3)服务:列出需向用户提供的各项服务,如培训安装、维护和运行支持等, 应逐项规定开始日期、所提供支持的级别和服务的期限。 (4)非移交的产品:说明开发集体应向本单位交出但不必向用户移交的产品(文 件甚至某些程序)。 4)验收标准 对于上述这些应交出的产品和服务,逐项说明或引用资料说明验收标准。 5)项目的计划完成时间和最迟期限 2.实施计划 1)工作任务的分解与人员分工 对于项目开发中需要完成的各项工作,从需求分析、设计、实现、测试直到 维护,包括文件的编制、审批、打印、分发工作,用户培训工作,软件安装工作 等,按层次进行分解,用图示说明工作分解结构,并且用列表的形式列明每项任 务的负责人和参加人员。 在创建工作分解结构时,首先标识完成项目所需的主要或高层的任务,然后 将主要任务分解为较低层次的任务。工作任务结构是随着项目的进展而细化的结 构,在项目的早期只能分解为相对高层的任务结构,当随着项目的进展,信息逐 渐变得可用时,工作分解结构可以被进一步开发。 图4-2是教室管理系统项目工作分解结构的一个示例。其中模块设计、模块 实现和模块测试任务在模块的划分确定之后可以进一步分解为子任务
赵齐 本科,两年以上开发经验,擅长数据库方向 分析工程师,开发工程师 杨治 本科,两年以上开发经验,曾负责多个项目的 后台开发工作 开发工程师,集成工程师 王平 本科,擅长设计,有丰富的用户界面设计经验 分析工程师,文档工程师 顾成 本科,两年以上开发经验,前端开发经验丰富 开发工程师 3)产品 (1)程序:列出须移交给用户的程序的名称、所用的编程语言及存储程序的媒 体形式,逐项说明其功能和能力。 (2)文件:列出须移交用户的每种文件的名称及内容要点。 (3)服务:列出需向用户提供的各项服务,如培训安装、维护和运行支持等, 应逐项规定开始日期、所提供支持的级别和服务的期限。 (4)非移交的产品:说明开发集体应向本单位交出但不必向用户移交的产品(文 件甚至某些程序)。 4)验收标准 对于上述这些应交出的产品和服务,逐项说明或引用资料说明验收标准。 5)项目的计划完成时间和最迟期限 2. 实施计划 1)工作任务的分解与人员分工 对于项目开发中需要完成的各项工作,从需求分析、设计、实现、测试直到 维护,包括文件的编制、审批、打印、分发工作,用户培训工作,软件安装工作 等,按层次进行分解,用图示说明工作分解结构,并且用列表的形式列明每项任 务的负责人和参加人员。 在创建工作分解结构时,首先标识完成项目所需的主要或高层的任务,然后 将主要任务分解为较低层次的任务。工作任务结构是随着项目的进展而细化的结 构,在项目的早期只能分解为相对高层的任务结构,当随着项目的进展,信息逐 渐变得可用时,工作分解结构可以被进一步开发。 图 4-2 是教室管理系统项目工作分解结构的一个示例。其中模块设计、模块 实现和模块测试任务在模块的划分确定之后可以进一步分解为子任务