(项目管理)软件项目管理规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件项目管理规范
一、软件项目管理的定义
软件项目管理是软件工程和项目管理的交叉学科,软件项目管理的概念涵盖了管理软件产品开发所必须的知识、技术及工具。根据美国项目管理协会PMI对项目管理的定义可以将软件项目管理定义为:在软件项目活动中运用一系列知识、技能、工具和技术,以满足软件需求方的整体要求。
软件工程的活动包括问题定义、可行性研究、需求分析、设计、实现、确认、支持等,所有这些活动都必须进行管理,软件项目管理贯穿于软件工程的演化过程之中,如图1所示。
图1 软件工程的演化过程
二、软件项目管理的过程
为保证软件项目获得成功,必须清楚其工作范围、要完成的任务、需要的资源、需要的工作量、进度的安排、可能遇到的风险等。软件项目的管理工作在技术工作开始之前就应开始,而在软件从概念到实现的过程中继续进行,且只有当软件开发工作最后结束时才终止。管理的过程分为如下几个步骤:
(1)启动软件项目
启动软件项目是指必须明确项目的目标和范围、考虑可能的解决方案以及技术和管理上的要求等,这些信息是软件项目运行和管理的基础。
(2)制定项目计划
软件项目一旦启动,就必须制定项目计划。计划的制定以下面的活动为依据。
●估算项目所需要的工作量
●估算项目所需要的资源
●根据工作量制定进度计划,继而进行资源分配
●做出配置管理计划
(3)跟踪及控制项目计划
在软件项目进行过程中,严格遵守项目计划,对于一些不可避免的变更,要进行适当的控
制和调整,但要确保计划的完整性和一致性。
(4)评审项目计划
对项目计划的完成程度进行评审。并对项目的执行情况进行评价。
(5)编写管理文档
项目管理人员根据软件合同确定软件项目是否完成。项目一旦完成,则检查项目完成的结果和中间记录文档,并把所有的结果记录下来形成文档而保存。
三、软件项目管理的内容
软件项目管理的内容涉及上述软件项目管理过程的方方面面,概括起来主要有如下几项。
(1)软件项目需求管理
软件需求是软件工程过程中的重要一环,是软件设计的基础,也是用户和软件工程人员之间的桥梁。简单地说,软件需求就是确定系统需要做什么,严格意义上,软件需求是系统或软件必须达到的目标与能力。
1、目标
需求管理是一种获取、组织并记录软件需求的系统化方案,同时也是一个使客户与项目开发组对不断变更的软件需求达成并保持一致的过程。在需求管理中,软件工程组的工作是采取适当的措施来保证分配的需求,即要将分配的需求文档化,控制需求的变化,负责项目实施过程中需求的实现情况。需求管理的目的是在客户和处理客户需求的软件项目组之间建立对客户需求的共同理解。需求管理的目标有两个:
●使软件需求受控,并建立供软件工程和管理使用的需求基线。
●使软件计划、产品和活动与软件需求保持一致。
在需求管理过程,为实现第一个目标,必须控制需求基线的变动,按照变更控制的标准和规范的过程进行需求变更控制和版本控制;为实现第二个目标,必须就变更和软件项目各小组达成共识,对软件项目计划做出调整,其中包括人员的安排、用户的沟通、成本的调整、进度的调整等。
2、原则
为进行有效的需求管理,一般要遵循如下五条原则:
●需求一定要分类管理
进行软件项目管理的时候,一定要将软件需求分出层次。不同层次需求的侧重点、描述方式、管理方式是不同的。
●需求必须分优先级
在软件项目中,如果出现过多的需求,通常会导致项目超出预算和预定进度,最终导致软件项目的失败,因而需求的优先级可能比需求本身更加重要。
●需求必须文档化
需求必须有文档记录。该文档必须是正确的、最新的、可管理的、可理解的,是经过验证的,是在受控的状态下变更的。
●需求一旦变化,就必须对需求变更的影响进行评估
无论需求变化的程度如何,只要需求变化了就必须进行评估,这是基本的原则。
●需求管理必须与需求工程的其他活动紧密整合
进行需求管理一定不能脱离需求工程,需求工程包括了需求获取、需求分析、需求描述、需求验证、需求管理,因而需求管理必须与前面的几个需求阶段保持密切相关。
3、需求管理活动
需求管理在需求开发的基础上进行,贯穿于整个软件项目过程,是软件项目管理的一部分。在软件项目进行的过程中,无论正处于哪个阶段,一旦有需求错误出现或任何有关需求的变更出现,都需要需求管理活动来解决。需求管理是一个对系统需求变更了解和控制的过程。初始需求导出的同时就启动了需求管理规划,一旦形成了需求文档的草稿版本,需求活动就开始了。需求活动的具体内容如表1所示。
表1 需求管理活动
4、需求管理质量保证
●需求验证过程
需求验证很重要,如果在构造设计开始之前,通过验证基于需求的测试计划和原型测试来验证需求的正确性及其质量,就能大大减少项目后期的返工现象。需求验证可按以下步骤进行:审察需求文档编写用户手册确定合格的标准
●验证的内容
在需求验证过程中,要对需求文档中定义的需求执行多种类型的检查。
有效性检查----对于每项需求都必须证明它是正确有效的,确实能解决用户面对的问题。
一致性检查----在需求文档中,需求不应该冲突,即对同一个系统功能不应出现不同的描述或相互矛盾的约束。
完备性检查----需求文档应该包括所有系统用户想要的功能和约束。
现实性检查----检查需求以保证能利用现有技术实现。
可检验性检查----描述的需求能够实际测试。
可跟踪性检查----需求的出处被清晰地记录,每一系统功能都能被跟踪到要求它的需求集合,每一项需求都能追溯到特定用户的要求。
可调节性检查----需求变更能够不对其他系统带来大规模的影响。
可读性检查----需求说明能否被系统购买者和最终用户读懂。
●需求评审
需求分析完成后,应由用户和系统分析员共同进行需求评审。鉴于需求规格说明是软件设计的基础,需求评审需要有客户方和承包商方的人员共同参与,检查文档中的不规范之处和遗漏之处。
(2)软件项目估算与进度管理
1、软件项目估算
软件项目估算包括工作量估算和成本估算两个方面。软件估算作为软件项目管理的一项重要内容,是确保软件项目成功的关键因素。估算是指通过预测构造软件项目所需要的工作量的过程。初步的估算用于确定软件项目的可行性,详细的估算用于指导项目计划的制定。
2、软件规模
●工作分解结构
对软件项目进行估算遇到的第一个问题就是软件规模,即软件的程序量。软件规模是软件工作量的主要影响因素。软件项目的设计有一个分层结构,这一分层结构就对应着工作分解结构(WBS,Work Breakdown Structure),它将软件过程和软件产品结构联系起来。图2是一个典型的WBS结构。