软件项目管理的主要内容.pptx

上传人(卖家):最好的沉淀 文档编号:7582700 上传时间:2024-03-30 格式:PPTX 页数:78 大小:7.49MB
下载 相关 举报
软件项目管理的主要内容.pptx_第1页
第1页 / 共78页
软件项目管理的主要内容.pptx_第2页
第2页 / 共78页
软件项目管理的主要内容.pptx_第3页
第3页 / 共78页
软件项目管理的主要内容.pptx_第4页
第4页 / 共78页
软件项目管理的主要内容.pptx_第5页
第5页 / 共78页
点击查看更多>>
资源描述

1、第第2 2章软件项目管理章软件项目管理l 软件项目管理的概念l 软件度量l 软件项目计划l 项目进度安排与跟踪l 软件质量管理l 软件配置管理12.1 软件项目管理的概念软件项目管理的概念项目:以一套独特而相互联系的任务为前提,有项目:以一套独特而相互联系的任务为前提,有效的利用资源,为实现一个特定目标所作的工作。项目的成功受以下几个因素的制约:技术范围、成本、进度、用户满意度、人员等。项目管理的职责:确保项目目标的实现,即在预 算内按时完成质量合格的产品。软件项目管理:是对传统项目管理进行软件工程 化的一种扩展与拓延,是它在软件工程的任何技术活动 之前开始,并持续贯穿于整个软件定义、开发和支

2、持阶 段的庇护性活动,是决定一个产品或项目能否成功最重 要的指标之一。24 4个个P(People、Product、Process、Project)对软件项目管理有实质性的影响:对软件项目管理有实质性的影响:人员人员必须被组织成有效的必须被组织成有效的开发团队开发团队。产品产品需求被划分成较小的组成部分,便于需求被划分成较小的组成部分,便于分配给分配给软件开发小组。软件开发小组。开发开发过程过程应根据人员和产品选择合应根据人员和产品选择合适的开发模型适的开发模型。项项 目目必须被组织成必须被组织成便于控制和管理的方式,使有便于控制和管理的方式,使有计划的进行。计划的进行。3人员:人员:人员是一

3、个成功软件项目中最重要的因素。人员是一个成功软件项目中最重要的因素。可分为可分为5 5类:类:(1)高级管理者:负责定义级管理者:负责定义业务问题,影响着项目。业务问题,影响着项目。(2)(2)技术管理者:组织、激励和控制开发人员。技术管理者:组织、激励和控制开发人员。(3)(3)开发人员:负责开发一个产品或开发人员:负责开发一个产品或应用所需的技应用所需的技术。(4)(4)客户客户(customer):负责说明待开发的软件需负责说明待开发的软件需求。(5)5)最终用户最终用户(user):直接使用发布的软件。直接使用发布的软件。4每一个软件项目都有上述的人员参与。必须被组织成有效的小组,最大

4、限度的发辉每个人的技术和能力,激励他们 进行高质量的工作,并协调他们实现有效的通信。Constantine 提出4个“组织范型”:(1)封闭式范型:传统的控制层次,垂直通信,难以创新。(2)随机式范型:小组管理较松散,依赖于成员 个人的主动性。不适合“有次序地完成”。(3)开放式范型:具有封闭式范型的控制性,又包含随机 式范型的创新性。式范型的创新性。适合于解决复杂问题。可能不像其他类型 小组那么有效率。小组那么有效率。(4)同步式范型:依赖于问题的自然划分,小组成员各自解决问题的独立部分。解决问题的独立部分。主动通信差主动通信差。建立一个有凝聚力的小组,要有团队精神。5产品:产品:进行项目计

5、划之前,应该进行项目计划之前,应该首先定义产品的首先定义产品的目的目的和和范范 围围,考虑可选的解决方案,标识技术和管理的约束考虑可选的解决方案,标识技术和管理的约束。无这些。无这些 信息,就不可能进行合理信息,就不可能进行合理的、准确的成本估算、有效的的、准确的成本估算、有效的 风险评估、适当的项目任务划分、可管理的项目进风险评估、适当的项目任务划分、可管理的项目进度安度安排。“目的目的”指从用户的角度标识指从用户的角度标识出该产品的总体目标而出该产品的总体目标而不考虑这些目标如何实现。“范围范围”指标识出与产品相关的主要数据、功能和行指标识出与产品相关的主要数据、功能和行为。确定了目的和范

6、围,就可以确定了目的和范围,就可以根据产品交付的期限、预根据产品交付的期限、预算的限制、可用的人员、技术接口及各种其他因素,选 择最好的解决方案途径。6过程过程根据以下条件选择一个合适的软件根据以下条件选择一个合适的软件过程模型:过程模型:(1)(1)开发人员及需要该产品的开发人员及需要该产品的用户用户(2)(2)产品本身的特征产品本身的特征(3)(3)项目组的工作环境项目组的工作环境采用如下的框架活动集合:采用如下的框架活动集合:客户交流、计划、风险分析、工程实施、客户交流、计划、风险分析、工程实施、构造及发构造及发布、用户评估。这些活动可被修改以适应不同软件项目 的特征和项目组的需求。每个

7、活动可被分解为更详细的工作任务。工作任务。如客户交流活动可能需要下列如客户交流活动可能需要下列任务:任务:7(1)(1)列出需要澄清问题的清单列出需要澄清问题的清单(2)(2)安排与用户进行讨安排与用户进行讨论的会议论的会议(3)(3)评审用户要求评审用户要求及范围的陈述及范围的陈述(4)(4)研究推荐的解决方案研究推荐的解决方案(5)(5)为正式的会议准备工作文档为正式的会议准备工作文档(6)(6)共同制订能反映软件的数据、共同制订能反映软件的数据、功能和行为特功能和行为特征的规约,形成软件范围的文档征的规约,形成软件范围的文档(7)(7)评审文档评审文档(8)(8)根据需求修改文档根据需求

8、修改文档庇护性活动贯穿于整个过程。庇护性活动贯穿于整个过程。8项目项目有计划的控制软件项目,有计划的控制软件项目,BoehmBoehm提出了一种方法提出了一种方法,强调项目目标、里程碑、进度、责任、管理和技术方强调项目目标、里程碑、进度、责任、管理和技术方 法以及需要的资源,称之为法以及需要的资源,称之为W WsH2sH2原则。通过下面一系列原则。通过下面一系列 的提问和回答,可以导出项目的关键特征并产生项目计的提问和回答,可以导出项目的关键特征并产生项目计 划的大纲:划的大纲:(1)1)为什么为什么(Why)该系统被开发该系统被开发?值得吗值得吗?(2)将做什么(What)?什么时候(Whe

9、n)做?建立项目进度,标识关键的项建立项目进度,标识关键的项目任务和里程碑。目任务和里程碑。(3)(3)某功能由谁某功能由谁(Who)负责负责?开发人员的角色和责任。开发人员的角色和责任。(4)(4)哪里需要哪里需要(Where)?客户、用户和其他投资者也有客户、用户和其他投资者也有责任。责任。(5)5)工作将如何工作将如何(How)进行进行?定义项目的管理和技术定义项目的管理和技术策略。策略。(6)(6)资源需要多少资源需要多少(How much)?)?9开发人员、小组、角色、任务、开发人员、小组、角色、任务、工作产品、进度表工作产品、进度表(UML类图类图)之间的关系之间的关系软件项目管理

10、中的主要元素及之间的关系软件项目管理中的主要元素及之间的关系开发人员开发人员本分配到分配到1 1*工作产品工作产品角角 色色本.幸任任*分配到分配到1 1,进进 度度 表表分配到分配到映射到映射到小小 组组产生产生务务10111软件项目管理的主要内容:软件项目管理的主要内容:定义问题定义问题(确定新系统的作用域确定新系统的作用域-目标目标)确认项目的可行性确认项目的可行性建立项目的进度计划 建立项目的质量保证体系建立项目的质量保证体系 建立项目配置管理体系和准则建立项目配置管理体系和准则项目版本变更管理跟踪、监控项目的进展风险管理团队建设团队建设(人员管理,包括绩效评估等人员管理,包括绩效评估

11、等)112.22.2 可行性研究可行性研究1、可行性研究的任务和目的可行性研究的任务和目的GBGB 8566-888566-88 计算机软件开发规范中指出:计算机软件开发规范中指出:可行性研究的主要任务是了解客户的要求及现可行性研究的主要任务是了解客户的要求及现实环实环境,从技术、经济和社会因素等方面研究境,从技术、经济和社会因素等方面研究并论证本软件并论证本软件 项目的可行性,编写可行性研究报告供项目管理人员评项目的可行性,编写可行性研究报告供项目管理人员评 审,以便作出是否开发软件项目审,以便作出是否开发软件项目的决策。的决策。12技术可行性技术可行性度量一个系统解决方案的实用性度量一个系

12、统解决方案的实用性及技术资源的可用及技术资源的可用 性。性。考虑的问题:考虑的问题:(1)(1)开发风险分析开发风险分析(2)(2)资源分析资源分析(3)(3)相关技术的发展相关技术的发展(现有技术能否实现新系现有技术能否实现新系统、统、技术难点、建议采用技术的先技术难点、建议采用技术的先进进性性)13经济可行性经济可行性主要内容:主要内容:成本成本/效益分析效益分析不可能得到精确的分析结果不可能得到精确的分析结果.系统成本:系统成本:购置并安装软硬件机有关设备的费购置并安装软硬件机有关设备的费用 估算系统安装、运行和维护费用系统安装、运行和维护费用人员培训费用人员培训费用.系统效益系统效益

13、包括经济效益和社会效包括经济效益和社会效益益经济效益:可通过直接的或统经济效益:可通过直接的或统计的方法估算计的方法估算 社会效益:定性的方法估算社会效益:定性的方法估算软件开发费用软件开发费用14社会因素可行性社会因素可行性政策、法律、使用、环境政策、法律、使用、环境等等2 2、可行性研究的步骤、可行性研究的步骤(1)(1)复查确认系统目标、规复查确认系统目标、规模模(2)(2)研究现行系统的研究现行系统的工作流程工作流程(3)(3)导出目标系统高层逻导出目标系统高层逻辑模型辑模型(4)(4)导出和评价供选择的方案导出和评价供选择的方案(5)推荐可行的方案(6)(6)编写可行性研究报告,送编

14、写可行性研究报告,送审审153、可行性研究报告的编写提示(1)(1)引言:编写目的、背景引言:编写目的、背景、定义定义、参考资料;、参考资料;(2)2)可行性研究的前提:要求、目标、条件、假可行性研究的前提:要求、目标、条件、假定和限制、进行可行性研究的方法、评价尺度定和限制、进行可行性研究的方法、评价尺度;(3)对现有系统的分析:工作流程、工作负荷、对现有系统的分析:工作流程、工作负荷、费用开支、人员、设备、局限性;(4)所建议的系统:说明、数据流程和处理流程、改进之处、影响、局限性、技术条件的可行性;(5)(5)可选择的其它系统方案;可选择的其它系统方案;(6)投资及收益分析:支出、收益、

15、收益/投资比、投资回收期等;投资回收期等;(7)社会条件方面的可行性(法律、使用)。16人 员:2 2名系统分析员名系统分析员(450(450小时小时/名,名,4545美元美元/小小时时)5 5名系统开发人员名系统开发人员(275(275小时小时/名,名,3 36 6美元美元/小小时时)1 1名数据通讯专家名数据通讯专家(60(60小时小时/名,名,4242美元美元/小时小时)1 1名数据库管理员名数据库管理员(30(30小时小时/名,名,4242美美元元/小小时时)2 2名技术写作者名技术写作者(120(120小时小时/名,名,2525美元美元/小时小时)1 1名秘书名秘书(160(160小

16、时小时/名,名,1515美元美元/小时小时)2 2名在转换期间数据输入人员名在转换期间数据输入人员(40(40小时小时/名,名,1212美元美元/小时小时)$40,500$40,500$49,500$2,520$2,520$1,260$1,260$6,000$6,000$2,400$2,400$960例:例:一个软件系统的开发费用一个软件系统的开发费用(一次一次):):17培训:培训:三天的开发人员内部培训课程三天的开发人员内部培训课程3030个用户,三天的内部培训个用户,三天的内部培训课程课程复印复印磁盘、纸张等消耗品磁盘、纸张等消耗品购买硬件、软件:购买硬件、软件:2020台工作站台工作站

17、Windows软件软件2020台工作站内存升台工作站内存升级级网络软件网络软件2020台工作站办公软件产品台工作站办公软件产品系统开发总费用系统开发总费用(成本成本)$7,000$7,000$10,000$10,000$500$650$1,000$8,000$17,500$17,500$20,000$20,000$167,790$167,79018网络管理员网络管理员(300(300小时小时/年,年,5050美美元元/小小时时)购买硬件、软件升级:购买硬件、软件升级:硬件硬件软件软件物资和杂项物资和杂项每年总运行费用每年总运行费用一个系统的年运行费用一个系统的年运行费用(每年每年):):人员:

18、人员:维护程序员维护程序员/分析员分析员(250250小时小时/年年,4242美元美元/小时小时)$10,500$10,500$15,000$15,000$5,000$6,000$6,000$3,500$3,500$40,000$40,000192.32.3 软件度量软件度量软件度量(metrics)域分为过程度量、项目度量和产品度量。对过程、项目及产品产品度量。对过程、项目及产品的特的特定属性进行度量定属性进行度量 产生指导管理及技术动作的指标,使得产生指导管理及技术动作的指标,使得管理者和开发管理者和开发者能够:改善软件过程辅助软件项目计划 跟踪及控制软件项目的进展跟踪及控制软件项目的进展

19、 评价软件产品的质量评价软件产品的质量20软件度量的方式:软件度量的方式:直接度量直接度量间接度量间接度量 软件工程过程的软件工程过程的直接度量直接度量包括所投包括所投入的成本和工作入的成本和工作量。量。软件产品的软件产品的直接度量直接度量包括产包括产生的代生的代码行数码行数(LOC)、执行速度、存储量大小、在某种时间周期中执行速度、存储量大小、在某种时间周期中所报告所报告 的错误数。的错误数。软件产品的间接度量包括功能性、复杂性、效率、可靠性、可维护性和许多其它的质量特性。211.1.过程和项目的度量过程和项目的度量过程度量:过程度量:使一个组织从战略上考察已有过程的功效,如开发使一个组织从

20、战略上考察已有过程的功效,如开发范型、工程任务的划分、工型、工程任务的划分、工作产品、里程碑等,使管理者作产品、里程碑等,使管理者 评估那些部分起了作用。度量数据的收集评估那些部分起了作用。度量数据的收集跨越所有的项目,跨越所有的项目,经历较长的时间,目的是改善软件过程。间接的度量一个软件过程的功效:间接的度量一个软件过程的功效:软件发布之前发现的错误数软件发布之前发现的错误数交付给用户后报告的缺陷数交付给用户后报告的缺陷数花费的工作量、时间、成本花费的工作量、时间、成本与进度计划是否一致22个体软件过程(如PSP)提供了表格、脚本、标准以帮助开发人员估算、计划以及度量、跟踪自己工作的方法。过

21、程度量对于一个组织(如企业)提高其总体的过程成 熟度能提供很大的帮助。如一个产品中,需求规约缺陷占了了25.5%,25.5%,原因如图所示。原因如图所示。规约缺陷选择了错误的用户进行调研用户给出错误信息不够充分的调研使用过时的信息-不正确 变更鱼骨图显示了某一类缺陷产生的原因通过分析一个完整通过分析一个完整的鱼骨图可以导出能的鱼骨图可以导出能 改进软件过程以降低改进软件过程以降低 错误和缺陷率的频率。错误和缺陷率的频率。二义性遗漏23项目度量:项目度量:是战术的,使项目管理者能够以实时的方式改进项目的工作流程及技术方法,如软件项目的工作量及时间的估算。的估算。项目度量的基础是历史项目中收集的数

22、据。随着项 目的进展,所花费的工作量及时间和预算的值进行比较,从而控制项目的进展。从而控制项目的进展。另外,可根据文档的页数、评审的时间、功能点及 源代码行数来度量软件的生产率。24项目度量可在项目进行的基础上评估产品的质量,项目度量可在项目进行的基础上评估产品的质量,以指导在必要时修改技术方法指导在必要时修改技术方法以改进质量。以改进质量。软件项目度量建议每个项目都应该测量:输入:完成工作所需要的资源输入:完成工作所需要的资源(如人员、环境如人员、环境);输出:软件工程过程中产生的工作产品;输出:软件工程过程中产生的工作产品;结果:最终产品的有效结果:最终产品的有效性。性。项目度量集成起来产

23、生对整个软件组织公用的项目度量集成起来产生对整个软件组织公用的过程过程度量。252.2.软件度量的方法软件度量的方法(1)(1)面向规模的度量面向规模的度量是对软件和软件开发过程的直接度量。是对软件和软件开发过程的直接度量。可以建立一个面向规模的数据表格可以建立一个面向规模的数据表格来记录项目的某来记录项目的某些信息。该表格列出了在过去几年完成的每一个软件开些信息。该表格列出了在过去几年完成的每一个软件开 发项目和关于这些项目的相应面向发项目和关于这些项目的相应面向规模的数据。规模的数据。26基于所生产软件的基于所生产软件的“规模规模”,”,使用代码行作为其他使用代码行作为其他 计算的规范化因

24、子。计算:计算的规范化因子。计算:每千行代码每千行代码(KLOC)的错的错误数误数。每每KLOCKLOC 的缺陷数。的缺陷数。每个每个LOC的花费成本。的花费成本。每每KLOC 的文档页数的文档页数每人月的错误数。每人月的错误数。每人月的代码行。每人月的代码行。每页文档的成本。每页文档的成本。27项目碧支 凤红读的持:易 对:LO位释理有计 月 假 C依赖于本多较种砧算语言,不适文档模製以用于非错误 它为关 村程化缺陷 键的输语言,人员入。在BET众析 与 设 计宪成之前难以估算。155608528可制作一个如下的表:可制作一个如下的表:(2)(2)面向功能的度量面向功能的度量“功能”不能直接

25、测量,利用其他的测量数据间接 地导出。Albrecht 提出来的一种称为功能点的度量。用下表计算下表计算5 5个信息域的值:个信息域的值:29其中:其中:用户输入数:每个用户向系统提供的不同应用户输入数:每个用户向系统提供的不同应用用的输入数据的输入数据。用户输出数:系统向每个用户提供的信息,用户输出数:系统向每个用户提供的信息,如如报表、屏幕信息、出错信息报表、屏幕信息、出错信息等。等。用户查询数:每个不同的询问每个不同的询问/响应的交互操响应的交互操作作。文件数:可以是数据库的一部分或是可以是数据库的一部分或是一个一个独立的文件。独立的文件。外部接口数:与系统中其他设备通过外部接口数:与系

26、统中其他设备通过外部接口外部接口读写信息的次数。读写信息的次数。“简单、平均、复杂简单、平均、复杂”中的常量值是加权因子,中的常量值是加权因子,根据经验确定。根据经验确定。30利用以下公式计算功能点利用以下公式计算功能点(FP):FP=总计数值(0.65+0.01Fi)其中其中Fi(i=114)是回答是回答1414个方面问题而得到的复个方面问题而得到的复 杂度调整值度调整值(值域为值域为05),05),如输入、输出、查询及如输入、输出、查询及内内 部处理复杂吗处理复杂吗?代码复用吗代码复用吗?有分布处理吗等等有分布处理吗等等(详见详见 p64)p64)。计算出功能点。就可进行以下度计算出功能点

27、。就可进行以下度量量:每个功能点的错误每个功能点的错误数。数。每个功能点的缺陷数。每个功能点的缺陷数。每个功能点的成本。每个功能点的成本。每个功能点的文档页数。每个功能点的文档页数。每人月完成的功能点数。每人月完成的功能点数。31代码行和功能点度量之间的关系依赖于实现软件所 采用的程序设计语言及设计的质量。下面给出了在不同的 程序设计语言中建造一个功能点所需的平均代码行数的统 计:程序设计语言程序设计语言 LOC/FP汇编语言汇编语言 320C 128FORTRAN 106Pascal 90C+64Java 46Visual BASIC 32Power Builder 16SQL 12323

28、3、软件质量度量软件质量度量软件工程的目标是产生高质量的系统或产品。质量依赖于描述问题的需求、建模、设计、编码、测试。质量度量贯穿于软件工程的全过程中以及软件交付用 户使用之后。应评估分析与设计模型、源代码、测试案户使用之后。应评估分析与设计模型、源代码、测试案例 的质量。的质量。33在软件交付之前得到的度量数据可作为判断设计和测试质量好坏的依据。这一类度量包括程序复杂性、有测试质量好坏的依据。这一类度量包括程序复杂性、有 效的模块性和总的程序规模。效的模块性和总的程序规模。在软件交付之后的度量数据在软件交付之后的度量数据则把注意力集中于还未则把注意力集中于还未 发现的缺陷数和系统的可维护性方

29、发现的缺陷数和系统的可维护性方面。面。McCall 提出了影响软件质量的11个因素(详见P367),其中重要的有以下几点其中重要的有以下几点:正确性:软件完成所需功能的程度,最正确性:软件完成所需功能的程度,最常用常用“缺陷数缺陷数/kLoc”来测量。来测量。34可维护性:遇到错误时程序能被修改的容易程度、环境变化时程序能被适应的容易程度、环境变化时程序能被适应的容易程度、用户希望改变需求时程序能被增强的容易程度,一种最简单的测量方法是计算平均修改时间均修改时间(MTTC)(MTTC)。完整性:完整性:测量系统在测量系统在安全方面的抗攻击性。安全方面的抗攻击性。完整性完整性=2(1-=2(1-

30、威胁威胁)(1-1-安全性安全性)其中威胁是某个特定类型的攻其中威胁是某个特定类型的攻击在给定时击在给定时间内发生的可能性。安间内发生的可能性。安全性是某个特定类全性是某个特定类 型的攻击将被击退的可能性。型的攻击将被击退的可能性。可用性:可用性:用户友好性。用户友好性。另外还有可靠性、效率、可测试性、可移植性、可可靠性、效率、可测试性、可移植性、可复复 用性等等。用性等等。352.4 软件项目计划软件项目计划项目计划既指出了项项目计划既指出了项目组织未来努力的方向和奋斗目组织未来努力的方向和奋斗 目标,又是当前行动的准则。目标,又是当前行动的准则。针对不同工作目标,软件项目计针对不同工作目标

31、,软件项目计划有:划有:项目实施计划项目实施计划(软件开发计划软件开发计划)这是软件开发的 综合性计划,通常应包括任务、进度、人力、环境综合性计划,通常应包括任务、进度、人力、环境、资、资 源、组织等多个方面。源、组织等多个方面。质量保证计划质量保证计划 把软件开发的质量要求把软件开发的质量要求具体规定具体规定为每个开发阶段可以检查的质量保证为每个开发阶段可以检查的质量保证活动。活动。软件测试计划 规定测试活动的任务、测试方法、进度、资源、人员职进度、资源、人员职责等。责等。36文档编制计划 规定所开发项目应编制的文档种规定所开发项目应编制的文档种 类、内容、进度、人员职责等。用户培训计划 规

32、定对用户进行培规定对用户进行培训的目标、要训的目标、要 求、进度、人员职责等。综合支持计划综合支持计划 规定软件开发过程中所需规定软件开发过程中所需要的支要的支 持,以及如何获取和利用这些支持持,以及如何获取和利用这些支持。软件发布计划软件发布计划 软件开发项目完软件开发项目完成后,如何提交成后,如何提交给用户。给用户。这里,主要针对综合计划来这里,主要针对综合计划来介绍介绍。37项目管理是一个创造的过程,项目早期的不确定性项目管理是一个创造的过程,项目早期的不确定性 因素,使计划不可能在启动阶段就全部一次完成,需逐,使计划不可能在启动阶段就全部一次完成,需逐 步展开和不断修正,这又取决于计划

33、执行情况的反馈开和不断修正,这又取决于计划执行情况的反馈与与 及时的信息交流。制订项目基准计划(Baseline Plan)的步骤:定义项目目标,确定软件范定义项目目标,确定软件范围围 把项目按项目范围分解为多个把项目按项目范围分解为多个任务任务 确定对应每个任务必须执行的确定对应每个任务必须执行的活动活动 将每个任务分配给一个小组,并为每个开发将每个任务分配给一个小组,并为每个开发者分配角色和职责分配角色和职责 用用Gantt图或图或PERT图表示出项图表示出项目的进度目的进度381 1、软件项目估算、软件项目估算项目计划的一个重要的前提是项目估算(有时在可行 性研究阶段完成究阶段完成),)

34、,一般以团队的历史经验为基础,让团一般以团队的历史经验为基础,让团 队中的一线人员参与估算,才能保证项目计划的可行性。成本及工作量的估算不是一门精确的科学,有几种选成本及工作量的估算不是一门精确的科学,有几种选择:基于已完成的类似项目进行估算;使用分解技术以生成项目成本及工作量的估算;使用一个或多个经验模型;(1)(1)分解技术分解技术分解技术采用“分而治之”的策略进行软件项目估算。将项目分解成若干主要功能及相关的软件过程活动,通 过逐步求精的方式进行成本及工作量估算。具体方法为:39划分主要的软件功能划分主要的软件功能,接着估算:接着估算:Loc的数量的数量 对于对于FP,估算每个信息域估算

35、每个信息域特征(输入、输出、数 据文件、查询、外部接口文件、查询、外部接口)及及1414个个复杂度调整值复杂度调整值 实现每个功能所需的人月数实现每个功能所需的人月数 每个软件过程活动所需每个软件过程活动所需人月数人月数基本的估算方法:基本的估算方法:自顶向下估算:自顶向下估算:总成本 按阶段、步骤、工作单元自底向上估算:自底向上估算:先划分,分别估算每个子任务所需的工作先划分,分别估算每个子任务所需的工作量量,然后然后2 2。40差别估算法:差别估算法:与类似项目比较,估算每个不同之处对成本的影响。还有专家估算法等等。还有专家估算法等等。(2)(2)经验估算模型经验估算模型经验估算模型可用于

36、补充分解技术,并提供一种潜在经验估算模型可用于补充分解技术,并提供一种潜在 有价值的估算方法。该模型是基于经验有价值的估算方法。该模型是基于经验(历史数历史数据据)的,可以用下面的形式表示:的,可以用下面的形式表示:=f(vn)其中口是要估算的值(如工作量、成本、项目持续时 间)之 一,v 是选择出来的独立参数(如被估算的Loc 或FP)。41由经验导出的公式,最著名的是由经验导出的公式,最著名的是COCOMOCOCOMO 模型模型,构造,构造型成本模型型成本模型(COnstructive COst MOdel)。初期的模型广初期的模型广泛的使用于软件成本估算,发展到反映不同阶段的成的使用于软

37、件成本估算,发展到反映不同阶段的成本。本。初始模型的分类:初始模型的分类:基基 本本COCOMO模模 型型是静态单变量模型,用源代码行数(LOC)为自变量的经验函数计算软件开发工作量。经验函数计算软件开发工作量。中中 间间COCOMOCOCOMO 模模 型型该模型在用型在用LOC为自变量的函数计算软为自变量的函数计算软件开发工作量件开发工作量 的基础上,用涉及产品、硬件、人员、项目等方面的影响因素调整工作量估算。因素调整工作量估算。详详 细细COCOMO模模 型型该模型包括中间该模型包括中间COCOMOCOCOMO模型的所有特性,模型的所有特性,但用上述各但用上述各 种影响因素调整工作量估算时

38、,还要考虑对软件工程过程种影响因素调整工作量估算时,还要考虑对软件工程过程 中每一步骤中每一步骤(分析、设计分析、设计等等)的影的影响。响。42模型的扩展:模型的扩展:COCOCOM使用对象点、功能点、源代码行作为不同层次模型的参数。次模型的参数。对象点对象点只是一种间接软件测量数,使用以下计数:只是一种间接软件测量数,使用以下计数:用户界面上的屏幕数用户界面上的屏幕数 报表数报表数 建立应用软件需要的构建立应用软件需要的构件数件数。每个对象实例每个对象实例(如一如一个屏幕或一个报表个屏幕或一个报表)给出三个复给出三个复杂度权数度权数(简单、中等简单、中等、复杂、复杂),),如一个屏幕的权简单

39、为如一个屏幕的权简单为1,1,中等为中等为2,2,复杂为复杂为3 3。通过以下公式计算总对象点数:通过以下公式计算总对象点数:432(初始的对象实例数加权因子初始的对象实例数加权因子)=)=总的对象点总的对象点(NOP)当应用基于构件的开发时,对象点当应用基于构件的开发时,对象点计数调整为:计数调整为:NOP=NOP(100-%复用复用)/100)/100 进而计算:生产率进而计算:生产率=NOPNOP/人人月月针对不同级别的开发者经验和开发环境成熟度,针对不同级别的开发者经验和开发环境成熟度,给出对象点的生产率:对象点的生产率:项目工作量项目工作量=NOPNOP/生产率生产率非常高非常高50

40、50非常低非常低4额定额定1313高2525低7442 2、项目进度安排、项目进度安排项目计划中的一个重要内容是建立进度表,该表对项目进度进行科学度量、调整项目计划起很重要的作用。在众多进度进行科学度量、调整项目计划起很重要的作用。在众多软件项目中,缺乏合理的进度安排是造成项目泄后的最主软件项目中,缺乏合理的进度安排是造成项目泄后的最主要要 原因。进度安排为项目管理者和开发者建立了一张行路图。原因。进度安排为项目管理者和开发者建立了一张行路图。(1)(1)进度安排的指导原则:进度安排的指导原则:划分:项目分解成若干易于管理的任务。如何进行任务的分解呢的分解呢?可从两个方面获得帮助:可从两个方面

41、获得帮助:软件开发模型:模型帮助将整个项目进行阶段性的划软件开发模型:模型帮助将整个项目进行阶段性的划 分,这些阶段可以做计划中很重要分,这些阶段可以做计划中很重要的里的里程碑。程碑。软件开发需求:开发模型只给项目计划软件开发需求:开发模型只给项目计划提供了个框架,提供了个框架,需求的整理与规格化,是细化项目计划的基础。45。相互依赖性:各个被划分的活动或任务之间的相互关系 必须是确定的。有些任务必须顺序进行,有些可以并发进 行。时间分配:时间分配:必须为每个被调度的任务分配一定数量的工作单位(如,人天、人月),并指定开始和结束日期。工作量确认:每个项目都有预定数量的人员参与。在进行时间分配时

42、,必须确保在任意时段中分配给任务的人员 数量不会超过项目组中的人员总量。定义的责任定义的责任:每个被调度的任务都应该指定某个特定:每个被调度的任务都应该指定某个特定的的小组成员来负责。定义的结果:每个被调度的任务都应该有一个定义好的输出结果,输出结果通常是一个工作产品或某个工作产品 的一部分。定义的里程碑:每个任务或任务组都应该与一个项目里程碑相关联。当一个或多个工作产品经过质量评审并且得 到认可时,标志着一个里程碑的完成。46(3)(3)进度表进度表(图图)甘特图甘特图(Gantt(Gantt Chart)Chart)也称时间表,所有的项目任务都在左边的也称时间表,所有的项目任务都在左边的栏

43、目中列出。栏目中列出。水平条表示每个任务的持续时间,当同一时间段平条表示每个任务的持续时间,当同一时间段中存在多中存在多 个水平条时,表示任务之间存在并发。PERT(Program Evaluation Review Technique)图图也称任务网络图,表示一个项目的任务流程,刻画了 各项任务、任务之间的依赖关系及任务的持续时间。它的 最简单形式可当作宏观进度表使用。(2)(2)工作量分配工作量分配(指导原则指导原则)需求分析需求分析10%25%10%25%设计设计20%25%测试测试30%40%30%40%编码编码15%20%计划计划2%3%2%3%47IDTask NameStantF

44、inishDurationDec 200311 12131415 1617 1819 20 212223241Task 12003-12-112003-12-122d2Task 22003-12-152003-12-162d3Task 32003-12-152003-12-195d3.SubTask 3.12003-12-152003-12-162d3.2SubTask 3.22003-12-172003-12-193d4Task 42003-12-222003-12-232dGantt图Gantt图可清晰的表达每个任务活动的进展以及并发活动。水平条的颜色既可以表示概要任务和详细任务的分解,也

45、可以表示任务完成的情况。用一个特定的符号(如黑菱形)表示一个活动的结束(里程碑),以便检查阶段成果和最后 成果。48Task22 2dDec 15 Dec 16Task1 Task41 2d 4 2dDec 11 Dec 12 Dec 22 Dec 23Task33 5dDec 15 Dec 19PERT图PERT图另一个重要的用途是用来判断关键路径,关键路径表明了完成该项目可能需要的最小路径表明了完成该项目可能需要的最小时间,并能识别最时间,并能识别最有可能成为瓶颈的活动,该路径上的活动是项目负责人或小组长抓的主要工作。非关小组长抓的主要工作。非关键路径上的活动延迟,不会导键路径上的活动延迟

46、,不会导致项目总体进度偏离。致项目总体进度偏离。下图是一个项目的总的下图是一个项目的总的PERTPERT图。图。49详细设计 设计走查 编码编码 编码走查测试计划 测试过程 测试评审50说明:考虑进度表中的变化:考虑进度表中的变化:建立进度表时,项目分解为哪些任务以及任务持续的 时间往往根据历史数据估算而来,项目进展过程中未预料到的事件,如需求的变化或较晚发现的设计缺陷,都会打到的事件,如需求的变化或较晚发现的设计缺陷,都会打乱进度表,因此在进度表中为将来可能的变化留有余地。进度表可有不同的抽象层次:高层进度表反映整个项目的进度,应包括所有可交付 产品的期限,底层进度表是任务和时间的分解。可制

47、作短 期内的进度表,其余部分在项目进行过程中完成。底层进 度表可用于指导每个小组的进度。每个里程碑可以附带一个标识进度值的百分比,用来 说明项目完成了多少,如:30%。51项目终结项目终结项目开展阶段管理活动图项目开展阶段管理活动图(UML 活动图活动图)2.52.5 项目进度的跟踪项目进度的跟踪收集状况信息并与进度表比较收集状况信息并与进度表比较 风险管理风险管理项目再计划项目再计划项目启动项目启动521、项目启动 进行项目计划2、项目开展 项目的监督与跟踪(1)(1)收集状况信息的方式收集状况信息的方式 定期报告:非正式的会议和交流,报告工作产品、进度误差等需要及早沟通的信息。进度误差等需

48、要及早沟通的信息。里程碑的监督与验证里程碑的监督与验证:里程碑可以是事件,也可以:里程碑可以是事件,也可以是工作产品,验证是否在预定时间内完成。项目检查:正式会议,所有开发人员交换活动进展 状况,比较各项任务实际开始日期与计划开始日期。代码检查:同事之间的正式代码检查。原型示范:原型是为了验证需求或为了评估技术和 功能而部分实现的系统,可用来估算初始进度。53度量:主要是修正错误数目的度量,即还需要付出多度量:主要是修正错误数目的度量,即还需要付出多少努力的估量。少努力的估量。(2)(2)项目再计划项目再计划根据项目的变化动态更新项目计划,应对一些新的需求、新的变化、突发因素做出响应,或解决问

49、题以适 应计划,或调整计划以保证最后按时交付产品。(3)(3)风险管理风险管理风险是一些不利因素实际发生的可能性。如:人员 跳槽,管理层变更,硬件缺乏,需求变化,描述延迟,低估了系统的规模,工具性能差,技术变更,产品竟争 等等。54风险管理的活动有:风险识别:确定风险的类型风险识别:确定风险的类型(管理、技术管理、技术)。风险分析:评估风险风险分析:评估风险出现的可能性及其后果。出现的可能性及其后果。风险规划:制定避免或风险规划:制定避免或降低风险的策略。降低风险的策略。风险控制:定期进行风险评估,及时修正缓解风风险控制:定期进行风险评估,及时修正缓解风险的计划。计划。3 3、项目总结项目总结

50、用户验收:根据项目协议中规定的验收标准对系统进行 评价,并通过场景演示,测试系统功能性和非功能性需求。安装安装:在目标环境下安装、:在目标环境下安装、运行系统并提交文档。运行系统并提交文档。总结总结:总结经验教训,建立团队工:总结经验教训,建立团队工作效率的历史档案,作效率的历史档案,以便提高个人和团队整体的以便提高个人和团队整体的软件工程能力软件工程能力。552.6 软件质量保证软件质量保证1 1、概述、概述软件质量是软件产品、体系或过程的一组固软件质量是软件产品、体系或过程的一组固有特性满有特性满 足足(顾客和其他相关顾客和其他相关方方)要求的程度要求的程度。软件质量保证软件质量保证(So

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(软件项目管理的主要内容.pptx)为本站会员(最好的沉淀)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|