【注】:转载http://www.mypm.net/articles/show_article_content.asp?articleID=15024&pageNO=2
1 简介
1.1 目的
软件项目计划的目的是为执行软件工程和管理软件项目制定合理的计划。本过程旨在使软件开发人员及管理人员充分了解软件项目计划过程,使项目管理人员遵照本过程实施项目计划活动、制定软件开发计划及执行相关计划活动。
1.2 适用范围
本过程适用于组织中所有的软件开发项目,从需求阶段开始,至维护阶段完成,贯穿项目的整个生命周期。
1.3 术语表
·WBS:工作分解结构(Work Breakdown Structure, WBS)是一种以分级方式表述项目工作和任务的技术。一个定义良好的WBS不仅体现了项目所采用的软件过程,而且指明了整个生命周期中所要产生的各种工作产品。WBS的建立可以有助于在项目计划期间防止遗漏某些重要的事项和活动,并且保证所需要的活动都能明确识别和关联。
·BCWS:Budgeted Cost of Work Scheduled,项目基准,也叫做计划工作的预算成本(BCWS)
2 过程总体描述
2.1 过程概述
为了对软件项目实施有效的管理,通常将整个项目划分成四个大的阶段,即:立项阶段、计划阶段、开发阶段和交付阶段。从项目管理的要求来说,在立项阶段,对项目做可行性分析;在计划阶段,要进行项目计划,即对项目进行整体计划,计划的结果将作为项目后续开发和管理活动的基础;在项目的开发阶段,为了确保项目能按预定计划、预定成本完成开发任务,需要对其进行跟踪和监控;在项目的交付阶段,项目验收交付后应进行项目总结。
项目计划过程是软件项目管理的一个重要过程。计划又是一个重要的活动,许多过程活动都和它相关,作为一个完整的项目计划,它包括:项目任务书、生命周期模型选用、项目定义的软件过程、软件开发计划制定(产品识别与WBS制定、软件估算、风险管理计划、进度表制定)、软件配置管理计划、软件质量保证计划、测试计划等。在计划阶段,上述的活动是协调一致的,其他计划的制定和开发计划制定同步。
2.2 过程结构描述
3 过程元素描述
3.1 项目定义
3.1.1 工作流程概述
进行项目定义的目的是要确保在项目生命周期的早期打下成功的基础。它包括根据客户需求确定的项目范围建立项目任务书、并且组织起适当的人员。
3.1.2 参与人员
项目经理:编写项目任务书
高层经理:下达任务书、批准任务书、组织项目团
3.1.3 入口准则
已收集完成客户需求并通过评审。
3.1.4 输入
《客户需求说明书》
3.1.5 任务
3.1.5.1 确定项目任务书内容
项目任务书就是对该项目的简要的、理解透彻的描述。它有助于客户和管理人员进行相关的业务决策,并且有助于项目参与人员理解其总的期望和将来项目启动后所要处于的业务环境。
项目任务书必须在客户需求收集完成之后开始起草,在项目启动之前完成。它的内容一般包括:
? 项目的管理和技术目标
? 客户和用户识别
? 软件主要功能的一般描述
? 项目论证,包括商业目标和结果软件系统所期望的收益
? 主要成本、时间表、资源、或其他约束
? 项目的性能目标
? 关键责任
? 与其他项目和组织之间的依赖关系
项目任务书必须经过高层管理者的批准。批准就等于授权允许推进到项目的启动阶段。
项目任务书的书写要求参见《项目任务书模版》。
3.1.5.2 组织适当的人员
有效的项目组胜于所有个体的总和。每一个项目先要组织项目组,识别所有需要的角色,确保不要忽略任何应由软件开发组以外人员来充当的角色。角色应该包括:
? 需求分析员:由客户需求析出其中归于软件的需求。
? 开发人员:根据需求,通过设计和编码实现软件的需求。
? 客户:需求的提出者,也是软件开发的约定者。
? 用户:软件产品的使用者,有时与客户是同一对象。
? 测试人员:对软件产品进行测试,保证满足软件设计要求和客户的需求。
? 质量保证人员:在整个软件生命周期中,监督和检验软件过程与标准的符合性以及软件产品生产规范的符合性。
? 配置管理人员:在整个软件生命周期中,控制软件产品的状态和一致性,确保产品的有序变更和发布。
? 数据库/运行/网络支持:如果需要的话,对项目给予后勤保障。
? 管理者:获得对项目的承诺和支持,以及对项目的总体控制。
接下来要与适当的组进行接触,并与他们协商参与项目计划阶段。要落实每个组都究竟让谁参与该项目。在进行项目估算时,还要对所需的其它资源和支持继续进行沟通和协商。
当分配好人员并组织起项目组时,就要清楚地说明责任,以使每个项目组成员了解项目对他们寄予的期望是什么。
3.1.5.3 确定项目范围
由《客户需求说明书》经过分析得到归于软件的需求,再经过文档化,形成《软件需求规格说明书》。
系统分析活动也应由项目经理先制订计划,计划内容包括:
-
要达到的目标;
-
确定系统分析的任务,包括:确定系统架构、可行性分析、用工程方法和技术语言对《客户需求说明书》的
需求进行重新组织和描述(例如分解成软件部分和硬件部分的需求)等; -
工作阶段及每个阶段应产生的中间工作产品;
-
按历史数据或根据业界标准进行工作量估算和日程安排。
-
将任务分配给项目组成员。
软件需求必须经过正式评审,并且对需求的改动也必须进行正式的控制,控制方式由《软件配置管理过程》的控制。
项目经理按照系统分析计划推进分析活动,直至形成《软件需求规格说明书》并获得正式评审通过。
3.1.5.4 项目任务书文档化
在项目计划进行到这里时,要开始利用软件开发计划模板的《项目任务书模板》对软件开发计划进行文档化,项目任务书是单独的一个文档,但是项目计划可以由《项目任务书》逐步细化衍生出来。在项目任务书的基础上,完成项目计划的制订工作。
3.1.6 出口准则
(1).《项目任务书》得到高层经理批准。
(2). 项目开发组织主要成员已经确定,责任已经清楚。
(3). 形成《软件需求规格说明书》并通过正式评审。
3.1.7 输出(工作产品)
《项目任务书》
《软件需求规格说明书》
3.1.8 资源和能力要求
与客户需求有关的信息资源;
确定项目的主要成员所需要的人力资源;
系统分析所要求的人员能力。
3.1.9 度量
项目经理编制项目任务书所花费的工时。
系统分析所花费的工时。
3.2 选用软件生命周期模型
3.2.1 工作流程概述
结合项目的具体情况,选择适合本项目的软件生命周期模型,以此定义项目开发的过程,并识别各过程应产生的工作产品。
3.2.2 参与人员
项目经理:负责组织项目的软件过程的定义。
SEPG:对项目选择的模型与开发过程进行评审。
高层经理:批准项目选择的软件过程。
3.2.3 入口准则
项目软件需求已经明确
3.2.4 输入
《软件需求规格说明书》
《项目任务书》
《软件生命周期模型选用规程》
3.2.5 任务
(1)根据《软件需求规格说明书》和《项目任务书》中描述的项目实际情况,按照《软件生命周期模型选用规程》选择适合的软件生命周期模型。
(2)对模型定义的各软件过程进行详细描述,描述应包括:过程的入口准则、出口准则、要执行的任务以及产生的工作产品。
(3)选择的模型与开发过程,经SEPG评审后由高层经理批准。根据项目的具体情况,项目的过程描述文件可以不单独成文,而作为项目开发计划文件的组成部分并入开发计划文件。
(4)如项目开发与模型定义的软件过程存在偏差,则应在软件过程描述文件中进行说明,并经SEPG评审后,由高层经理(如需要,还应由客户)进行审批。
上述任务由软件项目经理(以下如无特别说明,均简称项目经理)负责,组织有关人员完成。
3.2.6 出口准则
软件过程描述文件已形成文件,并已通过评审并经批准
3.2.7 输出(工作产品)
项目选用的模型与其软件过程描述文档,(名称一般是《项目软件工程过程描述》)