1. 项目开发管理
[toc]
1.1. 项目开发管理的基础知识[16]
项目范围管理:包括项目启动、范围计划编制、范围定义、范围核实和范围变更控制 5 个部分的内容。
项目成本管理:包括资源计划编制、成本估算、成本预算、成本控制 4 个主要部分内容。
项目时间管理:包括活动定义、活动排序、活动历时估算、进度计划编制、进度控制 5 个部分内容。
配置管理:通过技术和行政手段对产品及其开发过程和生命周期进行控制、规范的一系列措施和过程。在配置管理中,所有的配置项都应列入版本控制的范畴。配置项的状态通常有3种,分别是草稿、正式发布和正在修改。
产品配置:一个产品在其生命周期各个阶段所产生的各种形式和各种版本的文档、计算机程序、部件及数据的集合
文档包括用户文档和系统文档。
1.2. 软件文档管理[16]
按照文档产生和使用的范围,软件文档大致可分为 3 类:开发文档;管理文档;产品文档。
1.3. 软件需求管理[16]
需求属性:每个功能需求和它有关的一些信息。需求的稳定性属于需求属性。
变更管理过程:需求变更的管理过程遵循问题分析和变更描述、变更分析和成本计算、变更实现的顺序
变更控制委员会:变更控制委员会对项目中任何基线工作产品的变更都可以做出决定
为了达到过程能力成熟度模型的第二级,组织机构必须具有6个关键过程域(KPA)。
1.4. 软件过程改进[16]
CMM:软件成熟度模型。能力成熟度模型(Capability Maturity Model,CMM)描述了软件发展的演进过程,从毫无章法、不成熟的软件开发阶段到成熟软件开发阶段的过程。以CMM的架构而言,它涵盖了规划、软件工程、管理、软件开发及维护等技巧,若能确实遵守规定的关键技巧,可协助提升软件部门的软件设计能力,达到成本、时程、功能与品质的目标。CMM在软件开发机构中被广泛用来指导软件过程改进。
软件过程模型的基本概念:软件过程是制作软件产品的一组活动以及结果,这些活动主要由软件人员来完成,软件活动主要有: (1)软件描述。必须定义软件功能以及使用的限制。 (2)软件开发。也就是软件的设计和实现,软件工程人员制作出能满足描述的软件。 (3)软件有效性验证。软件必须经过严格的验证,以保证能够满足客户的需求。 (4)软件进化。软件随着客户需求的变化不断地改进。
1.5. 软件范围管理[15、13]
项目范围管理,包括保证项目顺利完成所需的全部工作过程。其目的是控制项目的全部活动都在需求范围内,以确保项目资源的高效利用。
它主要包括项目启动、范围计划编制、范围定义、范围核实和范围变更控制 5 个部分的内容
产品范围是项目范围的基础,产品的范围定义是信息系统要求的度量,而项目范围的定义是生产项目计划的基础。产品范围描述是项目范围说明书的重要组成部分。
项目范围定义的输入有:①项目章程。②项目范围管理计划。③组织过程资产。④批准的变更申请。
1.6. 软件时间管理[13]
项目时间管理包括使项目按时完成所必须的管理过程。
项目时间管理中的过程包括:活动定义、活动排序、活动的资源估算、活动历时估算、制定进度计划以及进度控制。
为了得到工作分解结构(Work Breakdown Structure,WBS)中最底层的交付物,必须执行一系列的活动,对这些活动的识别以及归档的过程就叫做活动定义。
1.7. 软件配置管理[15]
在配置管理中,所有的配置项都应列入版本控制的范畴。配置项的状态通常有3种,分别是草稿、正式发布和正在修改。
配置项是构成产品配置的主要元素,配置项主要有以下两大类:
(1) 属于产品组成部分的工作成果:如需求文档、设计文档、源代码和测试用例等;
(2) 属于项目管理和机构支撑过程域产生的文档:如工作计划、项目质量报告和项目跟踪报告等。
这些文档虽然不是产品的组成部分,但是值得保存。所以设备清单不属于配置项。
1.8. 系统建议方案[14]
作为一份正式文档,系统建议方案至少应该包含以下内容:
①前置部分。包括标题、目录和摘要。摘要部分以1~2页的篇幅总结整个系统建议方案报告,提供系统方案中的重要事件、地点、任务和原因,以及系统方案是如何实现的等信息。
②系统概述。包括系统建议方案报告的目的、对问题的陈述、项目范围和报告内容的叙述性解释。
③系统研究方法。简要地解释系统建议方案报告中包含的信息是如何得到的,研究工作是如何进行的。
④候选系统方案及其可行性分析。系统阐述每个候选系统方案,并对每个方案进行可行性评价。
⑤建议方案。在对各个候选系统方案进行可行性评价之后,通常会推荐一个解决方案,并且要给出推荐该解决方案的理由。
⑥结论。简要地描述摘要的内容,再次指出系统开发的目标和所建议的系统方案。同时,需要再次强调项目的必要性和可行性,以及系统建议方案报告的价值。
⑦附录。系统分析师认为阅读者可能会感兴趣的所有信息,但这些信息对于理解系统建议方案报告的内容来说不是必要的。
1.9. 联合需求计划[14]
JRP是一个通过高度组织的群体会议来分析企业内的问题并获取需求的过程,它是联合应用开发(JAD)的一部分。
JRP的主要意图是收集需求,而不是对需求进行分析和验证。
实施JRP时应把握以下主要原则:在JRP实施之前,应制定详细的议程,并严格遵照议程进行;按照既定的时间安排进行;尽量完整地记录会议期间的内容;在讨论期间尽量避免使用专业术语;充分运用解决冲突的技能;会议期间应设置充分的间歇时间;鼓励团队取得一致意见;保证参加JRP的所有人员能够遵守实现约定的规则。
1.10. 软件开发环境[12]
软件开发环境应支持多种集成机制。根据功能不同,可以将集成机制分为三个部分: 环境信息库 ,用以存储与系统开发有关的信息,并支持信息的交流与共享;过程控制与消息服务器 ,是实现过程集成和控制集成的基础; 环境用户界面 ,它的统一性和一致性是软件开发环境的重要特征。
用软件开发环境(Software Development Environment)是支持软件产品开发的软件系统。它由软件工具集和环境集成机制构成。
软件工具集来支持软件开发的相关过程、活动和任务年;环境集成机制为工具集成和软件开发、维护和管理提供统一的支持,它通常包括数据集成、控制集成和界面集成。数据集成机制提供了存储或访问环境信息库的统一的数据接口规范;界面集成机制采用统一的界面形式,提供统一的操作方式;控制集成机制支持各开发活动之间的通信、切换、调度和协同工作。
软件开发环境(Software Development Environment,SDE)是指支持软件的工程化开发和维护而使用的一组软件,由软件工具集和环境集成机制构成。 软件开发环境应支持多种集成机制,根据功能的不同,集成机制可以划分为环境信息库、过程控制与消息服务器、环境用户界面三个部分。
- 环境信息库。环境信息库是软件开发环境的核心,用以存储与系统开发有关的信息,并支持信息的交流与共享。环境信息库中主要存储两类信息,一类是开发过程中产生的有关被开发系统的信息,例如分析文档、设计文档和测试报告等;另一类是环境提供的支持信息,如文档模板、系统配置、过程模型和可复用构件等。
- 过程控制与消息服务器。过程控制与消息服务器是实现过程集成和控制集成的基础。过程集成时按照具体软件开发过程的要求进行工具的选择与组合,控制集成使各工具之间进行并行通信和协同工作。
- 环境用户界面。环境用户界面包括环境总界面和由它实行统一控制的各环境部件及工具的界面。统一的、具有一致性的用户界面是软件开发环境的重要特征,是充分发挥环境的优越性、高效地使用工具并减轻用户的学习负担的保证。
1.11. RUP
RUP包括四个阶段:初始阶段、细化阶段、构建阶段、交付阶段。
- 初始阶段的任务是为系统建立业务模型并确定项目的边界。在初始阶段,必须识别所有与系统交互的外部实体,定义系统与外部实体交互的特性。在这个阶段中,所关注的是整个项目的业务和需求方面的主要风险。
- 细化阶段的任务是分析问题领域,建立完善的架构,淘汰项目中最高风险的元素。在细化阶段,必须在理解整个系统的基础上,对架构做出决策,包括其范围、主要功能和诸如性能等非功能需求,同时为项目建立支持环境。
- 在构建阶段,要开发所有剩余的构件和应用程序功能,把这些构件集成为产品,并进行详细测试。从某种意义上说,构建阶段是一个制造过程,其重点放在管理资源及控制操作,以优化成本、进度和质量。构建阶段的主要任务是通过优化资源和避免不必要的报废和返工,使开发成本降到最低;完成所有所需功能的分析、开发和测试,快速完成可用的版本;确定软件、场地和用户是否已经为部署软件作好准备。当基线已经足够完善,可以安装到最终用户实际环境中时,则进入交付阶段。
- 交付阶段的重点是确保软件对最终用户是可用的。交付阶段的主要任务是进行β测试,制作产品发布版本;对最终用户支持文档定稿;按用户的需求确认新系统;培训用户和维护人员;获得用户对当前版本的反馈,基于反馈调整产品,例如,进行调试、性能或可用性的增强等。