1、软件开发过程软件开发过程 主编主编 马永涛马永涛 机械工业出版社机械工业出版社第第2章章 软件开发的项目管理软件开发的项目管理o 学习目标:学习目标:1)掌握软件开发项目管理基本理论和方法。)掌握软件开发项目管理基本理论和方法。2)掌握软件开发项目管理具体实施方法。)掌握软件开发项目管理具体实施方法。o 项目管理是第二次世界大战后期发展起来的项目管理是第二次世界大战后期发展起来的重大新管理技术之一。虽然在此之前项目管重大新管理技术之一。虽然在此之前项目管理已广泛应用于许多领域,如工程建设项目理已广泛应用于许多领域,如工程建设项目和新产品开发等。但直到第二次世界大战期和新产品开发等。但直到第二次
2、世界大战期间以及战后,它作为管理技术复杂的活动,间以及战后,它作为管理技术复杂的活动,或需要多学科协作的活动的一种特殊工具的或需要多学科协作的活动的一种特殊工具的价值,才完全被认识,其结果使项目管理成价值,才完全被认识,其结果使项目管理成为一种相对来说较新的管理方法,得到迅速为一种相对来说较新的管理方法,得到迅速发展和不断完善。发展和不断完善。2.1项目管理的基本概念和方法项目管理的基本概念和方法 2.1.1项目的定义项目的定义 项目的定义:项目是指一次性的工作,它应在规项目的定义:项目是指一次性的工作,它应在规定的时间内,由为此专门组织起来的人员来完成;定的时间内,由为此专门组织起来的人员来
3、完成;它应有一个明确的预期目标;还要有明确的可利用它应有一个明确的预期目标;还要有明确的可利用的资源范围,它需要运用多种学科的知识来解决问的资源范围,它需要运用多种学科的知识来解决问题;没有或很少有以往的经验可以借鉴。题;没有或很少有以往的经验可以借鉴。2.1.2 项目的特点项目的特点 项目需要多方合作才能完成 通常是为了追求一种新的产物才组织项目 可利用资源预先要有明确的预算 可利用资源一经约定不再接受其他支援 有严格的时间界限,并公之于众 项目的构成人员来自具有不同专业知识背景的不同职能组织项目的产物未来的保全或扩展工作通常由项目参加者以外的人员来进行2.1.3项目管理项目管理 1.项目管
4、理定义项目管理定义项目管理基本定义:项目管理基本定义:项目管理是指在一定的约束条件(如:项目管理是指在一定的约束条件(如:确定的时间范围、固定的资金投入、有限的人力资源、设确定的时间范围、固定的资金投入、有限的人力资源、设备、材料、能源动力资源等)下,以高效率地实现项目业备、材料、能源动力资源等)下,以高效率地实现项目业主的目标(项目的质量、投资利用率、项目完成的进度)主的目标(项目的质量、投资利用率、项目完成的进度)为目的,以项目经理个人负责制为基础和以项目为独立实为目的,以项目经理个人负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的体进行经济核算,并按照项目内
5、在的逻辑规律进行有效的计划、组织、协调、控制等的一系列系统管理活动。计划、组织、协调、控制等的一系列系统管理活动。2.项目管理的特点项目管理是一项复杂的工作项目管理具有创新性项目有其生命周期项目管理需要集权领导和建立专门的项目组织项目负责人(或称项目经理)在项目管理中起着非常重要的作用3.项目管理的主要内容项目管理的主要内容 项目管理内容项目管理内容范围管理范围管理 资源管理资源管理费用管理费用管理沟通管理沟通管理质量管理质量管理项目整体项目整体 管理管理 进度管理进度管理风险管理风险管理2.2软件开发中的项目管理软件开发中的项目管理o 软件行业从二十世纪六十年代始于操作系统的研发,软件行业从
6、二十世纪六十年代始于操作系统的研发,到二十世纪九十年代中期行业快速发展。到二十世纪九十年代中期行业快速发展。o 从原有的作坊式开发到目前团队协作完成,从早期从原有的作坊式开发到目前团队协作完成,从早期的技术力量竞争到现有的项目成本控制竞争,从面的技术力量竞争到现有的项目成本控制竞争,从面向结构到面向对象再到面向服务架构,软件开发项向结构到面向对象再到面向服务架构,软件开发项目管理被提到一个较高的高度,通过项目管理的方目管理被提到一个较高的高度,通过项目管理的方式能有效的经营项目来降低风险、控制成本,确保式能有效的经营项目来降低风险、控制成本,确保项目进度流畅,在有效的时间内保质、保量的完成项目
7、进度流畅,在有效的时间内保质、保量的完成项目的开发工作。项目的开发工作。2.2.1软件开发项目管理的组织模式软件开发项目管理的组织模式 o 软件开发项目管理的组织模式一般设置软件项软件开发项目管理的组织模式一般设置软件项目管理组负责整个项目的各项决策工作。而在目管理组负责整个项目的各项决策工作。而在项目管理组之下又设置几个相关的项目实施小项目管理组之下又设置几个相关的项目实施小组,每个项目小组均要指定相应的负责人,以组,每个项目小组均要指定相应的负责人,以负责和完成具体工作。负责和完成具体工作。1项目经理项目经理o 项目经理是对整个项目负责的人,在整个项项目经理是对整个项目负责的人,在整个项目
8、开发过程中对项目组内所有非技术性重要目开发过程中对项目组内所有非技术性重要事情做出最终决定的人。事情做出最终决定的人。o 主要工作职责:主要工作职责:n计划计划 主要包括:项目范围、项目质量、项目时间、主要包括:项目范围、项目质量、项目时间、项目成本的确认。项目过程项目成本的确认。项目过程/活动的标准化、规范化。活动的标准化、规范化。根据项目范围、质量、时间与成本的综合因素的考虑,根据项目范围、质量、时间与成本的综合因素的考虑,进行项目的总体规划与阶段计划。各项计划应得到上进行项目的总体规划与阶段计划。各项计划应得到上级领导、用户方及项目组成员认可。级领导、用户方及项目组成员认可。n组织组织
9、主要内容:组织项目所需的各项资源。设置主要内容:组织项目所需的各项资源。设置项目组中的各种角色,并分配好各角色的责任与权限。项目组中的各种角色,并分配好各角色的责任与权限。定制项目组内外的沟通计划。安排组内需求分析师、定制项目组内外的沟通计划。安排组内需求分析师、用户联系人等角色与用户的沟通与交流。处理项目组用户联系人等角色与用户的沟通与交流。处理项目组与其它项目干系人之间的关系。处理项目组内各角色与其它项目干系人之间的关系。处理项目组内各角色之间的关系、处理项目组内各成员之间的关系。确认之间的关系、处理项目组内各成员之间的关系。确认用户培训计划,并安排用户培训工作。用户培训计划,并安排用户培
10、训工作。n领导领导 工作主要有:保证项目组目标明确且理解一致。工作主要有:保证项目组目标明确且理解一致。创建项目组的开发环境及氛围。提升项目组士气,创建项目组的开发环境及氛围。提升项目组士气,加强项目组凝聚力。合理安排项目组各成员的工作。加强项目组凝聚力。合理安排项目组各成员的工作。制定项目组需要的招聘或培训人员的计划。定期组制定项目组需要的招聘或培训人员的计划。定期组织项目组成员进行相关技术培训等。及时发现项目组织项目组成员进行相关技术培训等。及时发现项目组中出现的问题。中出现的问题。及时处理项目组中出现的问题。及时处理项目组中出现的问题。n控制控制 工作主要有:保证项目在预算成本范围内按规
11、定工作主要有:保证项目在预算成本范围内按规定的质量和进度达到项目目标。在项目生命周期的各个的质量和进度达到项目目标。在项目生命周期的各个阶段,跟踪、检查项目组成员的工作质量及完成质量等。阶段,跟踪、检查项目组成员的工作质量及完成质量等。定期向领导汇报项目工作进度。对项目进行配置管定期向领导汇报项目工作进度。对项目进行配置管理与规划。控制项目组各成员的工作进度。培养团理与规划。控制项目组各成员的工作进度。培养团队精神。队精神。2系统架构师系统架构师o 系统架构师也可以理解成技术总监。系统架构师是系统架构师也可以理解成技术总监。系统架构师是在部门内所有软件项目中,对技术上所有重要的事在部门内所有软
12、件项目中,对技术上所有重要的事情做出最终决定的人。情做出最终决定的人。o 主要工作职责:主要工作职责:n完成软件项目的总体设计,负责软件组织新产品的开发完成软件项目的总体设计,负责软件组织新产品的开发与集成、新技术体系的构建。与集成、新技术体系的构建。n负责在技术上对所有重要事情做出最终决定的人。负责在技术上对所有重要事情做出最终决定的人。n系统架构师随着开发进程的推进而其职责或关注点不断系统架构师随着开发进程的推进而其职责或关注点不断地变化。地变化。o 3需求分析师需求分析师o 需求分析师是项目前期与用户方打交道最多的需求分析师是项目前期与用户方打交道最多的人,对于用户来说,他可以代表整个项
13、目组,人,对于用户来说,他可以代表整个项目组,对与项目组成员来说他的意见可以代表用户方对与项目组成员来说他的意见可以代表用户方的意见,项目组内所有与用户需求相关的事情的意见,项目组内所有与用户需求相关的事情必需得到他的认可。必需得到他的认可。o 主要工作职责:主要工作职责:n在项目前期根据在项目前期根据需求调研计划需求调研计划等相关信息对用户进等相关信息对用户进行需求调研。行需求调研。n收集整理用户需求,负责编写收集整理用户需求,负责编写用户需求说明书用户需求说明书。n代表项目组与用户沟通与项目需求有关的所有事项。代表项目组与用户沟通与项目需求有关的所有事项。n代表用户与项目组成员沟通项目需求
14、有关的所有事项。代表用户与项目组成员沟通项目需求有关的所有事项。n负责负责用户需求说明书用户需求说明书得到用户的认可与签字。得到用户的认可与签字。n负责将完成的项目模块给用户做演示,并收集对完成模负责将完成的项目模块给用户做演示,并收集对完成模块的意见。块的意见。n完成完成需求变更说明书需求变更说明书,并得到用户的认可与签字。,并得到用户的认可与签字。n并协助系统架构师、系统分析师对需求进行理解。并协助系统架构师、系统分析师对需求进行理解。4系统分析师系统分析师o 系统分析师是项目组中的首席执行官,他涉及项目系统分析师是项目组中的首席执行官,他涉及项目的所有方面,是项目进度的推动者,也是项目成
15、功的所有方面,是项目进度的推动者,也是项目成功的关键人物,对项目成功以否起着重要作用。的关键人物,对项目成功以否起着重要作用。o 主要工作职责:主要工作职责:n协助需求分析师进行需求调研。协助需求分析师进行需求调研。n分析、解析分析、解析用户需求说明书用户需求说明书,将系统需求整理成,将系统需求整理成软件需求规格说明书软件需求规格说明书。n负责解决负责解决软件需求规格说明书软件需求规格说明书被评审后发现的问题。被评审后发现的问题。n在分析系统前,负责向架构设计师解释在分析系统前,负责向架构设计师解释软件需求规格软件需求规格说明书说明书的内容。的内容。n协助架构设计师进行架构设计,并协助其完成协
16、助架构设计师进行架构设计,并协助其完成系统架构说明系统架构说明书书。n根据根据系统架构说明书系统架构说明书对系统进行建模。对系统进行建模。n系统分析及建模完成后,负责将建模成果转化为系统分析及建模完成后,负责将建模成果转化为系统概要设系统概要设计计。n协助数据库设计师按协助数据库设计师按系统概要设计说明书系统概要设计说明书进行数据库逻辑进行数据库逻辑设计和物理设计,完成数据库设计和物理设计,完成数据库CDM及及PDM图,并协助其完成图,并协助其完成数据库设计说明书数据库设计说明书。n协助软件设计师按协助软件设计师按系统概要设计说明书系统概要设计说明书进行进行系统详细设系统详细设计说明书计说明书
17、。n指导软件工程师按指导软件工程师按系统详细设计说明书系统详细设计说明书进行代码实现。进行代码实现。n负责重点代码检查。负责重点代码检查。n协助项目经理进行配置管理,并提供优化改进建议。协助项目经理进行配置管理,并提供优化改进建议。n定期对项目组成员进行技术方面的培训。定期对项目组成员进行技术方面的培训。5数据库设计师数据库设计师o 数据库设计师又称数据库设计师又称DBA,是项目组中唯一能对数,是项目组中唯一能对数据库进行直接的操作的人。对项目中与数据库相关据库进行直接的操作的人。对项目中与数据库相关的所有重要的事做最终决定的人。的所有重要的事做最终决定的人。o 主要工作职责:主要工作职责:n
18、根据根据系统架构说明书系统架构说明书或或系统详细设计说明书系统详细设计说明书与与系统架构师、系统分析师一同进行数据库建模。系统架构师、系统分析师一同进行数据库建模。n根据数据库建模结果,绘制数据库根据数据库建模结果,绘制数据库CDM与与PDM图。图。n根据数据库根据数据库PDM图进行数据库建库。图进行数据库建库。n对数据库进行维护、备份、恢复、同步。对数据库进行维护、备份、恢复、同步。n 负责用户数据的导入导出。负责用户数据的导入导出。n 对数据库进行初始化操作。对数据库进行初始化操作。n 协助软件设计师完成协助软件设计师完成系统详细设计说明书系统详细设计说明书中与数据库相关的部分。中与数据库
19、相关的部分。n 根据根据系统详细设计说明书系统详细设计说明书编写对应的视图、编写对应的视图、存储过程、函数、触发器等。存储过程、函数、触发器等。n 对项目组其它成员进行对项目组其它成员进行SQL方面的指导。方面的指导。n 定期对项目组其它成员进行数据库方面知识的定期对项目组其它成员进行数据库方面知识的培训。培训。n 为测试经理及测试工程师建立测试数据。为测试经理及测试工程师建立测试数据。6软件设计师(模块设计师)软件设计师(模块设计师)o 软件设计师又称模块设计师,协助系统分析师对分软件设计师又称模块设计师,协助系统分析师对分模块进行详细设计,并直接管理和控制该模块的开模块进行详细设计,并直接
20、管理和控制该模块的开发进度,对于本模块中所有重要的事做最终决定的发进度,对于本模块中所有重要的事做最终决定的人。人。o 主要工作职责:主要工作职责:n根据根据系统概要设计说明书系统概要设计说明书编写分模块的编写分模块的系统详细系统详细说明书说明书。n负责对软件工程师讲解负责对软件工程师讲解系统详细设计说明书系统详细设计说明书内容。内容。n协助软件工程师按协助软件工程师按系统详细设计说明书系统详细设计说明书进行代码实进行代码实现。现。n控制本模块的开发进度。控制本模块的开发进度。7软件工程师软件工程师o 软件工程师是最终实现代码的成员。软件工程师是最终实现代码的成员。o 主要工作职责:主要工作职
21、责:n 根据根据系统详细设计说明书系统详细设计说明书完成代码编写工完成代码编写工作。作。n 对自己代码进行复查,并进行简单的自查测试。对自己代码进行复查,并进行简单的自查测试。8测试经理测试经理o测试经理主要工作就是找到项目中存在的不合理、不合格的部测试经理主要工作就是找到项目中存在的不合理、不合格的部份,并要求项目其它成员按其给定的项目质量完成项目。份,并要求项目其它成员按其给定的项目质量完成项目。o主要工作职责:主要工作职责:n独立编写测试计划。独立编写测试计划。n独立编写测试用例。独立编写测试用例。n协调测试团队内部的工作以及与开发团队之间的工作。协调测试团队内部的工作以及与开发团队之间
22、的工作。n完成完成“执行测试执行测试”的工作。的工作。n掌握较深层次的测试方法、测试技术和较复杂的业务流程。掌握较深层次的测试方法、测试技术和较复杂的业务流程。n负责测试过程工具的研究、推广与维护,负责测试数据库维护负责测试过程工具的研究、推广与维护,负责测试数据库维护工作。工作。n负责编写负责编写用户手册用户手册、操作手册操作手册和相关培训教材。和相关培训教材。n负责项目的质量审查。负责项目的质量审查。9测试工程师测试工程师o 测试工程师是项目质量的保证,是最终进行项目测测试工程师是项目质量的保证,是最终进行项目测试的主要成员。试的主要成员。o 主要工作职责:主要工作职责:n在测试经理的安排
23、和指导下,编写测试用例。在测试经理的安排和指导下,编写测试用例。n在测试经理的安排和指导下,完成在测试经理的安排和指导下,完成“执行测试执行测试”的工作。的工作。n在测试经理的指导下,按测试计划进行测试工作。在测试经理的指导下,按测试计划进行测试工作。n按测试用例进行测试工作。按测试用例进行测试工作。n负责被分派项目的质量审计。负责被分派项目的质量审计。n了解项目的基本流程,可以熟练的进行项目中各种流程了解项目的基本流程,可以熟练的进行项目中各种流程的操作。的操作。10配置管理工程师配置管理工程师o 为产品开发团队提供全面的配置管理(为产品开发团队提供全面的配置管理(CM)基础)基础设施和环境
24、工程师。设施和环境工程师。o 主要工作职责:主要工作职责:n负责制定配置管理计划。负责制定配置管理计划。n负责制定和建立配置库。负责制定和建立配置库。n对变更请求进行审查和进行有效控制。对变更请求进行审查和进行有效控制。n进行配置审计。进行配置审计。n报告配置状态报告配置状态n创建部署单元。创建部署单元。11实施经理实施经理o 作为一些较大的项目,在开发实施过程中完成协调作为一些较大的项目,在开发实施过程中完成协调工作的负责人。工作的负责人。o 主要工作职责:主要工作职责:n负责制定项目实施计划。负责制定项目实施计划。n在项目实施计划的约束下,协调项目组相关资源,完成在项目实施计划的约束下,协
25、调项目组相关资源,完成系统实施相关工作(包括系统安装、用户培训、系统上系统实施相关工作(包括系统安装、用户培训、系统上线、系统试运行等)。线、系统试运行等)。n在项目实施阶段,跟踪、检查实施人员的工作质量。在项目实施阶段,跟踪、检查实施人员的工作质量。n负责协助用户进行负责协助用户进行“用户确认测试用户确认测试”和编写和编写确认测试确认测试报告报告等。等。12实施工程师实施工程师o 在一些较大项目中,在项目实施经理的指导下具体在一些较大项目中,在项目实施经理的指导下具体完成协调等工作的工程师。完成协调等工作的工程师。o 主要工作职责:主要工作职责:n在实施经理安排和指导下,执行项目用户现场实施
26、任务。在实施经理安排和指导下,执行项目用户现场实施任务。n参与编写参与编写用户手册用户手册、操作手册操作手册和相关培训教材。和相关培训教材。n参与进行参与进行“用户确认测试用户确认测试”和编写和编写确认测试报告确认测试报告。13界面设计工程师界面设计工程师o 主要由一些美术工程师构成,根据用户的要求完成主要由一些美术工程师构成,根据用户的要求完成软件界面的设计工作。软件界面的设计工作。o 主要工作职责:主要工作职责:n负责完成软件设计师安排的功能界面设计。负责完成软件设计师安排的功能界面设计。n负责对项目整体色彩的调配。负责对项目整体色彩的调配。n向系统分析师提出项目美化的建议。向系统分析师提
27、出项目美化的建议。n为项目提供一套或几套不同样式表及为项目提供一套或几套不同样式表及HTML结构表。结构表。n为项目提供符合项目内容的静态、动态图片。为项目提供符合项目内容的静态、动态图片。n并为软件设计师提供界面指导。并为软件设计师提供界面指导。14产品经理产品经理o 当所开发的项目为产品型项目时设立,可由市场部当所开发的项目为产品型项目时设立,可由市场部成员兼。成员兼。o 主要工作职责:主要工作职责:n对所负责的产品进行策划和管理。对所负责的产品进行策划和管理。n对所负责的产品进行市场调研和分析,及时提出应对措对所负责的产品进行市场调研和分析,及时提出应对措施。施。n负责产品实现的内部管理
28、,保证产品功能的顺利实现以负责产品实现的内部管理,保证产品功能的顺利实现以及时满足市场需求。及时满足市场需求。n负责产品对外宣传与推广,开拓市场,提高产品品牌知负责产品对外宣传与推广,开拓市场,提高产品品牌知名度和认可度。名度和认可度。n配合销售制订产品销售策略,支持市场销售业务。配合销售制订产品销售策略,支持市场销售业务。2.2.2软件开发项目实施过程管理软件开发项目实施过程管理 o 当要开发软件时,首先要成立项目组,并结当要开发软件时,首先要成立项目组,并结合项目的大小、难易程度的不同,设立以之合项目的大小、难易程度的不同,设立以之相对应的岗位和制定相应的工作职责。同时,相对应的岗位和制定
29、相应的工作职责。同时,还要重视开发过程管理。还要重视开发过程管理。o 软件开发过程中,项目管理要重视实施过程软件开发过程中,项目管理要重视实施过程的管理工作,它也体现在软件开发过程中各的管理工作,它也体现在软件开发过程中各阶段相应的文档资料具体管理工作,需要为阶段相应的文档资料具体管理工作,需要为各项工作制定文档交验人、时间、命名约定各项工作制定文档交验人、时间、命名约定等相关内容要求。等相关内容要求。1)立项o 文档交验人:文档交验人:项目配置负责人。o 文档交验时间:文档交验时间:项目立项成功后一周内。o 命名约定:命名约定:项目简称-文档主题,如(软件开发项目-项目审批表)。2)阶段评审
30、o 文档交验人:文档交验人:阶段评审组织者。o 文档交验时间:文档交验时间:阶段评审后两天内。o 命名约定:命名约定:项目简称-文档主题,如(软件开发项目-软件需求说明书)。3)变更控制o 文档交验人:文档交验人:项目配置负责人。o 文档交验时间:文档交验时间:变更得到批准后两天内。o 命名约定:命名约定:项目简称-文档主题xxxx-xx-xx,如(软件开发项目-项目组成员变化申请表 年-月-日)。4)结项o 文档交验人:文档交验人:项目配置负责人。o 文档交验时间:文档交验时间:项目完成结项手续前。o 命名约定:命名约定:项目简称-文档主题,如(软件开发项目-项目开发总结报告)。5)计划与控
31、制o 文档交验人:文档交验人:项目配置负责人。o 文档交验时间:文档交验时间:计划通过评审后一天内;周例会后一天内。o 命名约定:命名约定:项目简称-文档主题,如(软件开发项目-设计阶段状态报告),或项目简称-文档主题xxxx-xx-xx,如(软件开发项目-周例会纪要 年-月-日)。6)配置管理o 配置管理的工作产品可以糅合在项目开发计划中,因此,可能没有特别文档。7)需求分析需求分析o 文档交验人:文档交验人:项目配置负责人。o 文档交验时间:文档交验时间:工作产品通过评审后两天内。o 命名约定:命名约定:项目简称-文档主题,如(软件开发项目-需求规格说明书)。8)分析设计分析设计o 文档交
32、验人:文档交验人:项目配置负责人。o 文档交验时间:文档交验时间:工作产品通过评审后两天内。o 命名约定:命名约定:项目简称-文档主题,如(软件开发项目-详细设计说明书)。9)编码o 文档交验人:文档交验人:项目配置负责人。o 文档交验时间:文档交验时间:工作产品通过评审后两天内。o 命名约定:命名约定:项目简称-文档主题,如(软件开发项目-模块开发卷宗)。10)单元集成测试o 文档交验人:文档交验人:项目配置负责人。o 文档交验时间:文档交验时间:工作产品通过评审后两天内。o 命名约定:命名约定:项目简称-文档主题,如(软件开发项目-系统测试用例)。11)部署o 文档交验人:文档交验人:项目
33、配置负责人。o 文档交验时间:文档交验时间:工作产品通过评审后两天内。o 命名约定:命名约定:项目简称-文档主题,如(软件-用户手册)。12)过程和产品质量保证o 文档交验人:文档交验人:项目QA负责(接口)人员。o 文档交验时间:文档交验时间:工作产品通过认可后两天内。o 命名约定:命名约定:QA-项目简称-文档主题,如(QA-软件开发项目-需求阶段评估报告)。13)同行评审o 文档交验人:文档交验人:项目配置负责人。o 文档交验时间:文档交验时间:同行评审后两天内。o 命名约定:命名约定:项目简称-文档主题,如(软件开发项目-需求规格说明书同行评审记录)。14)验收测试o 文档交验人:文档
34、交验人:项目验收测试负责人。o 文档交验时间:文档交验时间:测试通过认可后两天内。o 命名约定:命名约定:项目简称-文档主题,如(软件开发项目-系统验收测试)。15)项目考核记录o 文档交验人:文档交验人:项目QA负责(接口)人员。o 文档交验时间:文档交验时间:考核通告公布后一天内。o 命名约定:命名约定:项目简称-文档主题,如(软件开发项目-项目考核记录表)。2.2.3 软件开发项目立项管理工作软件开发项目立项管理工作o 在软件开发项目实施过程中,主要涉及的工在软件开发项目实施过程中,主要涉及的工作有:项目立项、项目管理等主要工作,以作有:项目立项、项目管理等主要工作,以下就所要做的工作进
35、行讨论,这些工作需要下就所要做的工作进行讨论,这些工作需要撰写相应的文档资料,并进行评审,通过评撰写相应的文档资料,并进行评审,通过评审来对整个开发过程进行有效的控制。审来对整个开发过程进行有效的控制。1立项立项o 立项基本工作主要包括编写立项基本工作主要包括编写软件开发项目软件开发项目立项审批表立项审批表,并完成项目评审及确定是否,并完成项目评审及确定是否立项。立项。(1)编写)编写软件开发项目立项审批表软件开发项目立项审批表 项目项目组成立后,经过初步的调查研究后进行编写组成立后,经过初步的调查研究后进行编写软件开发项目立项审批表软件开发项目立项审批表,通过评审并,通过评审并立项,项目才能
36、真正开始实施立项,项目才能真正开始实施(2)评审)评审 项目组提交项目组提交软件开发项目立项审批表软件开发项目立项审批表并完成评审工作。并完成评审工作。o 项目组撰写项目组撰写软件开发项目立项审批表软件开发项目立项审批表以及相关以及相关表格后,应提交组织项目实施主管部门进行评审,表格后,应提交组织项目实施主管部门进行评审,评审前应将评审前应将软件开发项目立项审批表软件开发项目立项审批表等资料提等资料提交相关评审人员,组织相关人员(主要由软件开发交相关评审人员,组织相关人员(主要由软件开发组织的主管领导、技术总监、专业技术人员、管理组织的主管领导、技术总监、专业技术人员、管理咨询专家等组成)对该
37、项目进行评审,以决定是否咨询专家等组成)对该项目进行评审,以决定是否立项,并要提交评审报告书。立项,并要提交评审报告书。2.2.4 软件开发项目计划的制定与管理软件开发项目计划的制定与管理 o 当项目立项通过评审后,首先要做的就是制定项目当项目立项通过评审后,首先要做的就是制定项目计划书和对其进行评审。计划书和对其进行评审。1软件开发计划制定软件开发计划制定o 软件计划阶段是软件开发第一阶段,根据瀑布模型软件计划阶段是软件开发第一阶段,根据瀑布模型开发方法的特点,其开发过程是分阶段进行的,各开发方法的特点,其开发过程是分阶段进行的,各个阶段的工作是顺序开展的,每一个阶段的工作成个阶段的工作是顺
38、序开展的,每一个阶段的工作成果(工件)将做为下一个阶段工作的基础。因此,果(工件)将做为下一个阶段工作的基础。因此,每个阶段的工作均是至关重要的,特别是前期的工每个阶段的工作均是至关重要的,特别是前期的工作就更加重要。作就更加重要。(1)制订软件开发项目计划的方法与策略)制订软件开发项目计划的方法与策略o 制订软件项目计划的目的在于建立并维护软制订软件项目计划的目的在于建立并维护软件项目各项活动的计划,软件项目计划其实件项目各项活动的计划,软件项目计划其实就是一个用来协调软件项目中其它所有计划,就是一个用来协调软件项目中其它所有计划,指导项目组对项目进行执行和监控的文件。指导项目组对项目进行执
39、行和监控的文件。一个好的软件项目计划可为项目的成功实施一个好的软件项目计划可为项目的成功实施打下坚实的基础。打下坚实的基础。o 制订软件项目计划要讲究方法和策略,以下介绍其方法与基本策略。o 注重项目计划的层次性注重项目计划的层次性 软件项目计划的层次及其关系如图2-1所示。高级计划N级计划低级计划图21软件项目计划的层次关系高级计划N级计划低级计划图21软件项目计划的层次关系o 高级计划是指项目的早期计划。高级计划应当是一高级计划是指项目的早期计划。高级计划应当是一个较粗的计划,主要是进行项目的阶段划分,确定个较粗的计划,主要是进行项目的阶段划分,确定重大的里程碑,所需相关的资源,包括人力资
40、源、重大的里程碑,所需相关的资源,包括人力资源、设备资源、资金资源,即所谓的人、财、物三个要设备资源、资金资源,即所谓的人、财、物三个要素。素。o 软件开发阶段交替之前,应做好下一阶段的详细计软件开发阶段交替之前,应做好下一阶段的详细计划,可称之为二级计划。详细计划要确定各项任务划,可称之为二级计划。详细计划要确定各项任务的负责人,开始时间,结束时间,任务之间的依赖的负责人,开始时间,结束时间,任务之间的依赖关系,设备资源,小的事件点(即里程碑)。关系,设备资源,小的事件点(即里程碑)。o 如果项目规模相对较大,可以有多级的计划,比如如果项目规模相对较大,可以有多级的计划,比如说,一个项目组可
41、能分为几个开发组,二级计划是说,一个项目组可能分为几个开发组,二级计划是各开发组制订的适合的自己小组的计划。如果开发各开发组制订的适合的自己小组的计划。如果开发组还分了小组,可以有小组的三级计划。组还分了小组,可以有小组的三级计划。o 重视与用户的沟通重视与用户的沟通 与用户的沟通是很重要的。不必害怕用户知道我们的开发计划,特别是项目进度情况,应当和用户共享这些信息。o 该详细的详细该简略的简略该详细的详细该简略的简略 软件项目计划就如同软件项目本身一样有它特殊性,一个三五个人花两三个月就可以完工的小项目,可能项目计划就四五页纸,包括一个WBS(工作分解结构)和一个Gantee图(甘特图)。一
42、个需要五六十个人甚至上百人,要花上半年或更长时间的大型软件项目则会有更多的项目计划内容。我们得按照项目的的特定情况量体裁衣。o 制订的项目计划要现实制订的项目计划要现实 项目经理和系统分析员做出来的项目计划最终要能够被项目组成员所实现。制订项目计划仅靠“个人经验”是不够的,不可能面面俱到。o 运用过程化的思想指导开发运用过程化的思想指导开发 o 利用成熟的项目管理工具利用成熟的项目管理工具(2)软件项目开发计划书的基本内容 软件项目开发计划书一般应该包括以下内容:o引言引言o项目概述项目概述 o项目组织和资源项目组织和资源 o实施计划实施计划 o专题计划要点专题计划要点 o评审计划评审计划 o
43、质量保证计划质量保证计划 o培训计划培训计划 o系统安装计划系统安装计划 2.提交提交软件开发项目计划书软件开发项目计划书并进行评审并进行评审o 项目组撰写项目组撰写软件开发项目计划书软件开发项目计划书后,应提交组后,应提交组织项目实施主管部门进行评审,评审前应将织项目实施主管部门进行评审,评审前应将软件软件开发项目计划书开发项目计划书提交相关评审人员,组织相关人提交相关评审人员,组织相关人员(主要由开发组织的主管领导、技术总监、专业员(主要由开发组织的主管领导、技术总监、专业技术人员、咨询专家等组成)对该项目计划书进行技术人员、咨询专家等组成)对该项目计划书进行评审,以决定该计划是否可行,决
44、定是否通过该项评审,以决定该计划是否可行,决定是否通过该项目计划,以及确定是否能进行下一阶段的工作。评目计划,以及确定是否能进行下一阶段的工作。评审结果并要提交评审报告书。审结果并要提交评审报告书。2.2.5软件配置管理软件配置管理o 近年来,国际上软件业按照近年来,国际上软件业按照ISO9000体系框体系框架和要素的要求,紧密结合软件的特点,制定架和要素的要求,紧密结合软件的特点,制定出在软件设计、开发、供应、维护等各个方面出在软件设计、开发、供应、维护等各个方面的国际标准来提高对软件开发工作的管理水平,的国际标准来提高对软件开发工作的管理水平,有效地控制产品质量。有效地控制产品质量。o 根
45、据根据质量管理和质量保证标准第三部分:质量管理和质量保证标准第三部分:GB/T19001-ISO9001在软件开发、供应在软件开发、供应和维护中的使用指南和维护中的使用指南中规定,质量体系包括中规定,质量体系包括一系列的支持活动要素,同时这些支持活动也一系列的支持活动要素,同时这些支持活动也为质量体系的实施提供保证。为质量体系的实施提供保证。o 软件开发是一项规模较大的系统工程,软件相对来软件开发是一项规模较大的系统工程,软件相对来说规模都较大,因而,在开发的项目管理工作中应说规模都较大,因而,在开发的项目管理工作中应进行配置管理,配置管理在软件的开发工作中显得进行配置管理,配置管理在软件的开
46、发工作中显得很重要。软件配置管理简称很重要。软件配置管理简称SCM(Software Configuration Management的缩写),是的缩写),是在团队开发中,标识、控制和管理软件变更的一种在团队开发中,标识、控制和管理软件变更的一种管理。配置管理的使用取决于项目规模和项目的复管理。配置管理的使用取决于项目规模和项目的复杂性以及项目风险高低等具体情况。杂性以及项目风险高低等具体情况。o 国家计算机软件配置管理标准国家计算机软件配置管理标准GB/T12505-90对软件开发配置管理进行相关的规定,作为软件开对软件开发配置管理进行相关的规定,作为软件开发组织应严格执行该标准,同时要结合
47、软件开发的发组织应严格执行该标准,同时要结合软件开发的特点制订出本组织的标准及质量要求。特点制订出本组织的标准及质量要求。1配置管理在软件开发中的作用配置管理在软件开发中的作用o 在质量体系的诸多支持活动中,配置管理处在在质量体系的诸多支持活动中,配置管理处在支持活动的中心位置,它有机地把其它支持活支持活动的中心位置,它有机地把其它支持活动结合起来,形成一个整体,相互促进,相互动结合起来,形成一个整体,相互促进,相互影响,有力地保证了质量体系的实施。影响,有力地保证了质量体系的实施。缺乏软件配置管理给软件开发带来的问题缺乏软件配置管理给软件开发带来的问题o 针对以上问题,国内很多软件开发企业已
48、经逐渐认识到针对以上问题,国内很多软件开发企业已经逐渐认识到配置管理的重要性,意识到只有认真加强管理和控制,配置管理的重要性,意识到只有认真加强管理和控制,才能提高软件的质量和开发效益。才能提高软件的质量和开发效益。存在问题存在问题开发人员之间开发人员之间沟通不够沟通不够测试工作测试工作不规范不规范开发管理松散开发管理松散文档与程序文档与程序严重脱节严重脱节软件测试软件测试开发周期过长开发周期过长2软件配置管理应提供的功能软件配置管理应提供的功能o 在在ISO9000.3中,对配置管理系统的功能作了如中,对配置管理系统的功能作了如下描述:下描述:唯一的标识每个软件(工件)项的版本;唯一的标识每
49、个软件(工件)项的版本;标识共同构成一完整产品的特定版本的每一软件(工件)标识共同构成一完整产品的特定版本的每一软件(工件)项的版本;项的版本;控制由两个或多个独立工作的人员同时对一给定软件(工控制由两个或多个独立工作的人员同时对一给定软件(工件)项的更新;件)项的更新;控制由两个或多个独立工作的人员同时对一给定软件(工控制由两个或多个独立工作的人员同时对一给定软件(工件)项的更新;件)项的更新;按要求在一个或多个位置对复杂产品的更新进行协调;按要求在一个或多个位置对复杂产品的更新进行协调;标识并跟踪所有的措施和更改,这些措施和更改是在从开标识并跟踪所有的措施和更改,这些措施和更改是在从开始直
50、到发行期间,由于更改请求或问题引起的。始直到发行期间,由于更改请求或问题引起的。o3版本管理版本管理o软件配置管理分为版本管理、问题跟踪和建立管理三个部分,软件配置管理分为版本管理、问题跟踪和建立管理三个部分,其中版本管理是基础。版本管理应完成以下主要任务:其中版本管理是基础。版本管理应完成以下主要任务:建立项目;建立项目;重构任何修订版的某一项或某一文件;重构任何修订版的某一项或某一文件;利用加锁技术防止覆盖;利用加锁技术防止覆盖;当增加一个修订版时要求输入变更描述;当增加一个修订版时要求输入变更描述;提供比较任意两个修订版的使用工具;提供比较任意两个修订版的使用工具;采用增量存储方式;采用