承诺:
任命一项目软件监督员(project software manager)负责协调各方面的责任并制订开发计划。
C1. 为软件项目制订计划需要遵循一个标准的组织方针。该方针规定:
1. 以软件的最终需求为基础。
2. 各项责任需要在项目负责人(project manager)、项目软件监督员、和其他软件负责人(software
manager)间协调。
3. 需要同其他工程组参与时,要同他们协商并将过程写入文档。
4. 相关组对软件项目提出意见。
5. 当项目相关责任涉及到机构外人员或小组时需要更高层领导的审核。
6. 项目软件开发计划需要管理并控制(managed and controlled)。
前提条件:
A1. 有关项目软件订立一个文档化并得到一致认可的工作说明(statement of work)。
1. 说明要包括从责任到目标到资源乃至时间表等所有相关内容。
2. 该说明要经由项目负责人、项目软件监督员、其他软件负责人、以及相关组一起审核。
3. 该工作说明需要管理并控制。
A2. 制订软件开发计划的各项责任要落实到个人。
1. 项目软件监督员需亲自或指定相关人员协调计划的制订工作。
2. 软件工作产品及各项活动的职责需按可跟踪和可记录的方式划分并分配给各软件负责人。
A3. 为订立计划提供足够的资源和资金。
1. 各领域专家应尽可能参与。
2. 要有订立计划活动的支持工具。
A4. 相关人员(包括软件负责人和软件工程师)需要做软件评估和计划方面的培训。
执行动作:
AC1. 软件过程组要参与项目提案小组。
1. 涉及的内容包括提案的准备和提交、各项说明的讨论和提交、以及项目相关职责发生变动时的协商。
2. 过程组审核项目提案的各项承诺。
AC2. 软件项目计划需在整个项目计划的早期阶段订立并同时进行。
AC3. 软件工程组同其他相关组一起贯穿项目始终参与计划的制订(和修改),并负责审核项目级的计划。
AC4. 对机构外个人或组所做的承诺需按照标准化的过程同高层管理者一起审核。
AC5. 软件生命周期中可管理的预定义阶段需标识并确定。
AC6. 项目软件开发计划需要按照标准化过程制订。
1. 软件开发计划需基于:客户标准、项目标准、产品说明、以及客户需求。
2. 其他工程组和软件相关组参与软件工程组活动的计划需相互协商、有关支出需预算、达成一致时需文档化。
3. 软件工程组参与其他工程组和软件相关组活动的计划需相互协商、有关支出需预算、达成一致时需文档化。
4. 制订的软件开发计划需要由项目负责人、项目软件监督员、各软件负责人及相关组审核。
5. 软件开发计划需要管理和控制。
AC7. 软件项目计划要文档化。计划内容包括:
1. 项目的目的、范围、目标以及成果。
2. 所遵循的软件生命周期模型。
3. 为开发和管理软件所选择的规程、方法和标准的标识。
4. 各软件工作产品的标识。
5. 各软件工作产品的大小以及变动情况。
6. 项目各项支出和成本的估算。
7. 关键计算机资源使用的估算。
8. 软件项目的时间表,包括重要阶段的识别和检查。
9. 各种项目软件风险的识别和评估。
10. 有关软件工程各种设施和支持工具的计划。
AC8. 建立和维护对软件项目的控制所需要的软件工作产品需要标识。
AC9. 按照文档化过程推导出对软件工作产品大小(或变动)的估算。
1. 所有主要的软件工作产品和活动的大小要估算。
2. 为达到估算的目标需要将工作产品分解到合适的粒度。
3. 尽量使用历史上已有的数据。
4. 有关大小估算的假设要文档化。
5. 大小估算要文档化、得到审核、并取得一致。
AC10. 按标准化过程导出对项目支出和成本的估算。
1. 应基于工作产品大小估算(及变动大小)作支出和成本的估算。
2. 应尽量使用目前或历史的生产率数据用于估算,相应的数据源及原由要文档化。数据可以来自机构内的其他项目,并且要考虑到生产工作产品的关键支出和成本。
3. 对成本、人员、和支出的估算应基于历史数据。如使用来自相同项目的数据,并确定时间段和预算所估算值在生命周期各阶段间的分布。
4. 估算值及所依据的假设要文档化、得到审核、并取得一致。
AC11. 按照标准化过程导出对关键计算机资源使用的估算。
1. 识别所需的关键资源。
2. 所作估算要相应于工作产品的大小、处理负载、以及通信量。
3. 所作估算要文档化、得到审核、并取得一致。
AC12. 按照标准化过程确定项目软件的时间表。
1. 时间表应基于工作产品的大小(变动大小)、以及软件支出和成本。
2. 时间表应基于已有项目的经验。
3. 时间表应包括关键阶段(milestone)的日期、关键依赖的日期以及其他有关约束。
4. 时间表中的活动应有适当的时间段、关键阶段要有适当间隔以确保进度测定的准确性。
5. 有关时间表的假设要文档化。
6. 时间表要文档化、得到审核、并取得一致。
AC13. 有关成本、资源、时间表、以及技术应用的软件风险要标识、评估、并文档化。
1. 按照潜在影响分析风险并确定优先级。
2. 识别风险的偶然性。
AC14. 制订有关工程设施和支持工具的计划。
1. 功能需求的估算应基于工作产品的估算及其他相关特性。
2. 为获得或开发这些设施和工具有关的职责要分配,相关承诺要协商。
3. 该计划要经由相关组审核。
AC15. 软件计划有关的数据要记录在案。
1. 记录所有的估算值,以及为重建这些估算值和评测其合理性所需的所有相关信息。
2. 计划数据要管理并控制。
度量分析:
M1. 测量主要被用于确定软件计划活动所处的状态。
验证:
V1. 同高层管理者一起周期性检查软件项目计划活动。
1. 技术、成本、人员和时间表的效能要审核。
2. 底层不能解决的问题和矛盾要处理。
3. 软件项目风险要解决。
4. 各项任务需分配、审核并跟踪直至任务完成。
5. 每次会议的总结性报告要准备好并分发给相关组和个人。
V2. 项目负责人周期性或当重要事件发生时审核项目软件的计划活动。
1. 有关组要派代表。
2. 基于工作说明和需求审核计划活动的状态和当前结果。
3. 各组间的依赖关系需要处理。
4. 底层不能解决的问题和矛盾需要处理。
5. 风险要审核。
6. 任务项要分配、审核并跟踪。
7. 会议的总结性报告要分发。
V3. 软件质量保证组要审核并审计计划活动和工作产品,同时汇报结果。审核内容包括:
1. 软件估算和计划活动。
2. 项目承诺的制定和审核活动。
3. 软件开发计划的准备活动。
4. 软件开发计划所采用的标准。
5. 软件开发计划的内容。