计算机软件项目管理讲课课件_第1页
计算机软件项目管理讲课课件_第2页
计算机软件项目管理讲课课件_第3页
计算机软件项目管理讲课课件_第4页
计算机软件项目管理讲课课件_第5页
已阅读5页,还剩165页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件项目管理主讲人:张小平2007年7月软件项目管理主讲人:张小平2007年7月1

目录第一章导论第二章软件项目需求管理第三章软件项目成本估算第四章软件项目进度管理第五章软件项目配置管理第六章软件项目质量管理目录2第一章导论1.软件工程软件:是与一个系统,特别是一个计算机系统有关的程序。软件工程:是一类求解软件的工程。它应用计算机科学、数学、管理科学等原理,借鉴传统的原理、方法,创建软件,以达到提高质量、降低成本的目的,使计算机设备的能力借助于软件成为对人类有用的东西。解释:工程科学用于制定规范、设计模式、评价成本及确定权衡;计算机科学、数学用于构造模型和算法;管理科学用于计划、资源、质量、成本等管理。(1)软件工程目标软件工程的目标:是“生产正确、可用及具经济效益的产品”。(2)软件工程活动

软件工程的活动是指生产一个最终满足需求且达到工程目标的软件产品所需要的步骤,主要包括问题定义、可行性研究、需求分析、设计、实现、确认、支持等。第一章导论1.软件工程3软件生产发展过程20世纪50,60年代:程序设计时代20世纪60,70年代:程序系统时代20世纪70,80年代:软件工程时代20世纪80年代至今软件生产发展过程20世纪50,60年代:程序设计时代42项目管理(1)管理

管理:是使事物的发展从混乱无序走向有序有效发展的方法。是一种有生命力的并能实现复杂的企业目标的方法。(2)项目

项目:是指在一定约束条件(费用、时间、质量、资源等)下具有特定目标的一项一次性任务。

项目:是新企业、新产品、新系统和新技术的总称。

特点:一次性(单件性)、目标性(成果性目标和约束性目标)和可管理性(环境变化与效益的关系)。

项目的生命周期:启动、计划、实施和结束。2项目管理5(3)项目管理

PMI的定义:在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求。

项目管理过程:初使过程、计划过程、执行过程、控制过程和关闭过程。

项目管理任务:协调并完成项目对范围、时间、成本、风险及质量这些相互矛盾的任务的要求,确保能够满足需求和达到预期目标。项目管理的特点:1)综合性、2)创造性、3)时间性

项目管理的制约因素:

1)范围、2)时间、3)成本、4)质量、5)组织及客户满意度。(3)项目管理6(4)项目管理知识体系以欧洲为首的体系-国国际项目管理协会IPMA(InternationalProjectManagementAssociation)项目管理专业人员取证分为A、B、C、D四级A:工程主任级证书B:项目经理级证书C:项目经理工程师级证书D:项目管理技术员级证书

以美国为首的体系-美国项目管理学会PMI该知识体系把项目管理分为9个知识领域:集成管理、范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、风险管理、采购管理。

(4)项目管理知识体系73软件项目管理(1)软件项目产品的特点1)抽象性2)缺陷检测的困难性3)高度的复杂性4)缺乏统一的规则(2)软件项目管理的必要性1)软件失控项目软件项目在实施中,较大地突破了项目的主要约束指。2)软件项目失控的原因需求不明确、计划和估算失误、盲目采用新技术、管理方法、软件性能、团队组织、人际因素3软件项目管理8

(3)软件项目管理1)软件项目管理的定义

在软件项目活动中运用一系列知识、技能、工具和技术,以满足软件需求方的整体要求。2)软件项目管理的过程启动软件项目

制定项目计划跟踪及控制项目计划评审项目计划编写管理文档(3)软件项目管理93)软件项目管理的内容软件项目需求管理软件项目估算与进度管理软件项目配置管理软件项目风险管理软件项目质量管理软件项目资源管理3)软件项目管理的内容10第二章软件项目需求管理1.软件需求(1)软件需求概念定义:软件需求是系统或软件必须达到的目标和能力。1997年版IEEE软件工程标准词汇表需求定义如下:用户解决问题或达到目标所需的条件和能力。系统或系统部件要满足合同、标准、规范或其他正式文档所需具有的条件或能力一种反映上面第一点或第二点所描述的条件或能力的文档说明以下五项内容确定一组完整的软件需求:1)系统的输入;2)系统的输出;3)系统的功能;4)系统的属性;5)系统环境的属性第二章软件项目需求管理1.软件需求11(2)软件需求在软件项目中的作用项目计划过程跟踪控制过程变更控制过程系统构建过程软件需求过程文档编制过程系统测试过程(2)软件需求在软件项目中的作用项目计划过程跟踪控制过程变更122.需求工程(1)需求工程产生与发展定义:需求工程是一个包括创建和维护需求文档所必需的所有活动的过程,是将用户非形式化的软件需求转变为形式化的需求规格说明的过程。特点:

软件需求不再仅限于软件开发的最初阶段,而是贯穿于软件项目开发的整个生命周期。是软件工程的子领域。另一个定义:需求工程是应用已证实有效的技术、方法确定用户需求,进行需求分析,帮助分析人员理解问题并定义目标系统的所有外部特征的一门科学。2.需求工程13发展:1)对象化是指需求模型及其构造方法的对象化。2)形式化是具有严格数学基础的描述系统特征的方法,具有准确、无二义性的特点,有助于验证有效性和完整性。3)自动化随着软件工程的自动化程度的提高,需求工程逐渐进入自动化。发展:14(2)需求工程研究内容需求工程的目标两个主要任务:1)通过对问题及其环境的理解、分析和综合,建立分析(系统)模型;2)在完全弄清用户对软件系统的确切要求的基础上,用SRS(SoftwareRequirementSpecification)把用户的需求表达出来。需求工程的层次分解:需求工程分为需求开发和需求管理。

需求工程需求开发需求管理需求获取需求分析规格说明需求验证变更管理版本控制需求跟踪需求状态(2)需求工程研究内容需求工程需求开发需求管理需求获取需求分153.需求管理需求管理的必要性1)需求供求双方固有的矛盾

软件专业人员的技术性导致需求供求双方达成共识困难。2)需求具有易变性难以表达性软件项目中40%-60%的问题都是在需求分析阶段埋下的祸根。

软件中潜在的缺陷需求缺陷比例最大缺陷来源潜在缺陷剩余缺陷排除效率(%)需求0.20.04677设计0.250.037585编码0.350.017595建档0.120.02480修复0.080.02470合计10.14985.130.87%3.需求管理软件中潜在的缺陷需求缺陷比例最大缺陷来源16

3)需求错误出现的高频性和修复的高昂成本需求的错误,如果在软件项目进行到后期才发现,修复费用是非常可怕的,甚至会超出项目本身的费用。在维护阶段修复的成本是需求阶段修复成本的100-200倍。需求阶段设计阶段编码阶段单元测试阶段集成测试阶段维护阶段0.1-0.20.512520软件缺陷修复成本3)需求错误出现的高频性和修复的高昂成本需求阶段设计17

需求管理的目标和原则1)需求管理的目标

①使软件需求受控,并建立供软件工程和管理使用的需求基线。②使软件计划、产品和活动与软件需求保持一致。2)需求管理的原则需求管理遵循的五条原则:①需求一定要分类管理②需求必须分优先级③需求必须文档化④需求一旦变化,就必须对需求变更的影响进行评估⑤需求管理必须与需求工程的其他活动紧密整合需求管理的目标和原则18

3)需求管理活动

需求管理在需求开发的基础上进行的,贯穿于整个软件项目过程,需求管理内容:A.需求识别;B.变更管理过程;C.需求跟踪;D.CASE工具选择。需求管理是一个对系统需求变更和控制的过程。需求管理活动需求管理活动活动的任务变更控制建议需求变更并分析其影响,做出是否变更的决策版本控制确定单个需求和SRS的版本需求跟踪定义对于其他需求及系统元素的联系链需求状态定义并跟踪需求的状态3)需求管理活动需求管理活动活动的任务19软件项目估算

估算是指通过预测构造软件项目所需工作量的过程。(1)估算的意义

软件项目估算包括工作量估算和成本估算两个方面。以成本估算笼统的表示。一个成功的项目“应该在工程允许的范围内满足成本、进度和质量目标的要求,而不需要对它的进度或预算进行增补”。软件项目工作量估算的失真,将导致软件成本上升,开发周期延长,从而使项目管理失效。(2)估算的作用:1)初步的估算用于确定软件项目的可行性。2)详细的估算用于指导项目计划的制定。第三章软件项目成本估算软件项目估算第三章软件项目成本估算20(3)估算的时机

软件产品的生命周期的5个阶段:计划软件产品、开发软件产品、验证软件产品、使用软件产品和淘汰软件产品。10个子阶段:客户需求、产品定义、系统设计、系统实现、系统测试、系统评审、系统运行、系统维护、系统升级和系统变更。软件产品生命周期计划软件产品开发软件产品验证软件产品使用软件产品淘汰软件产品客户需求产品定义系统设计系统实现系统测试系统评审系统运行系统维护系统升级更换系统E1E2E3E4E5软件估算提供初步信息权衡产品的可行性产品的完整体系结构资源消耗达到高峰,初步软件产品可测试对估算工作的评价,为以后项目积累经验(3)估算的时机软件产品生命周期计划软件产品开发软件产品验证21(4)软件规模软件规模:软件的程序量,是软件工作量的主要影响因素。两种软件度量标准:代码行(LOCLinesofCode);功能点(FPFunctionPoints)。1)代码行代码行分为无注释的源代码行(NCLOCNon-CommentedSourceLinesOfCode)和注释代码行(CLOCCommentedSourceLinesOfCode)。源代码总行数(LOC)=NCLOC+CLOC,KLOC=1000xLOC软件规模:KDSI(Kilo-ThousandsofDeliveredSourceInstructions):千行代码指令。

代码行(1LOC)价值和人月均代码行数可以体现一个软件生产组织的生产能力。(4)软件规模22

2)功能点是在系统需求阶段基于系统功能的一种(宏观)规模估算方法。通过研究初始应用需求来确定各种输入、输出、查询、外部文件和内部文件的数目,从而确定功能点数量。未调整(源)的功能点数(UFCUnadjustedFunctionPointsCount)的计算步骤:①计算所需要的输入、输出、查询、外部文件和内部文件数量;②对项目的复杂性划分为:简单、一般、复杂三种情况。UFC=∑((功能点中各项数量)×(功能点中各项复杂性权重))功能点计算步骤:①非功能性技术复杂度因子(TCFTechnicalComplexityFactor):有14个组成部分(A1~A14)每部分对应6个级别。TCF=0.65+0.01×∑Ai(0.65~1.35)(Ai=0~5)(i=1~14)

②功能点:FP=UFC×TCF功能点有助于在软件项目的早期做出规模估算。2)功能点23(5)软件生产率影响因素

软件生产率因素:影响每个人月平均完成代码数量的因素。软件生产率因素受到软件产品类型(技术)、软件项目规模(代码量)和软件变更的程度影响。环境因素对生产率的影响也较为显著,如开发环境面积、安静程度、私密程度、受干扰程度等。

(5)软件生产率24规模(kdsi)产品类型<10(小)10-50(中)>50(大)语言1.83.94.0控制1.61.82.4通信1.01.62.0变更或新增的百分比产品类型<20%20%-40%>40%语言3.06.06.6控制1.52.32.3通信1.41.81.9软件规模和产品类型对生产率的影响软件变更和产品类型对生产率的影响生产率因素生产率因素从IBM500多个System/370项目的数据中总结的相关生产率因素表:可见:大型语言编译器的生产率是小型数据通信程序的4倍(4.0/1.0)。新增的或大部分经过修改的语言程序的生产率是修改较小的数据通信程序的4.7倍(6.6/1.4)。规模(kdsi)产品类型<10(小)10-50(中)>50(25生产率数据的获取步骤如下:1)选择一些最近完成的,并且与待完成项目相似的项目。2)获得各项目的LOC数据。3)对于更改过的项目,记录更改代码所占比例,仅计算新增或更改部分KOC数量。4)计算投入到每个项目的人员数。5)计算各个项目的软件生产率,即LOC/PM(每个人月生产代码的数量),进而求出平均值作为类似项目的典型软件生产率。生产率数据的获取26(6)软件项目成本估算1)成本估算方法:开发成本=工作量×劳动力成本;工作量与系统规模和生产效率有关。

考虑因素:材料、人力、实施、固定、可变等成本。系统免维护期结束成本=开发成本+维护成本2)算法模型数学模型:工作量=a0+a1x1+a2x2+…+anxn(成本驱动因子的若干变量的函数)专家判定、求中值或平均值、召开小组会议、Delphi技术、WidebandDelphi技术

(6)软件项目成本估算27软件部分:库存情况更新开发阶段任务单元人日小计规划和需求需求定义开发计划516产品设计产品设计初步用户手册测试计划63110详细设计详细PDL描述数据定义测试数据和过程用户手册442212编程及单元测试编码单元测试结果61016集成及测试编制文档组装及测试459总计53任务单元法样(自底向上)例软件部分:库存情况更新开发阶段任务单元人日小计规划和需求需求28(7)COCOMO(ConstructiveCOstModel,构造性成本模型)模型1)原始COCOMO模型COCOMO模型包括:基本、中级和详细模型三个子模型。COCOMO模型是一个采用自底向上的方法进行估算的模型。

E=aSb×EAF

E是以人月为单位的工作量,S是以千行源代码(KLOC)计数的程序规模,EAF(EffortAdjustmentFactor)是一个工作量调整因子,EAF在基本模型中取值1,a和b是两个随开发模式而改变的因子。三种开发模式:有机式(Organic),半分离式(Semidetached),嵌入式(Embedded)。(7)COCOMO(ConstructiveCOst29

①基本COCOMO模型工作量的计算公式:E=aSb

E(PM)工作量:(1PM=19人日=152人时(8时/日)=1/12人年),S(KLOC)程序规模,a、b是随开发模式而改变的因子。开发时间的计算公式:t=cEd(t以月计)c、d是随开发模式而改变的因子。开发模式ab有机式2.41.05半分离式3.01.12嵌入式3.61.20三种开发模式在基本COCOMO模型中的取值(通过统计63个历史项目的历史数据,得到如下计算公式。)开发模式cd有机式2.50.38半分离式2.50.35嵌入式2.50.32开发时间参数①基本COCOMO模型开发模式30②中级COCOMO模型在基本COCOMO模型的基础上,考虑了软件开发环境的因素,引入15个成本驱动量(附加预测量),分为四大类:产品、计算机、人员、项目。工作量计算公式:

E=aSb×EAF

EAF是工作量调整因子。调整前的工作量aSb称名义工作量。

15个成本驱动量,分为四类:产品、计算机、人员、项目。每个有6个等级,即“很低”、“低”、“一般”、“高”、“很高”、“非常高”。每个成本驱动量对应一个等级有一个取值。

EAF=∏(15个成本驱动量的评分值)部件估算(自底向上):E=∑EiEi是第i个部件工作量估算值。总体类型工作量进度有机式E=2.4XS1.05T=2.5XE0.38半分离式E=3.0XS1.12T=2.5XE0.35嵌入式E=3.6XS1.20T=2.5XE0.32②中级COCOMO模型总体类型工作量进度有机式E=231

③详细COCOMO模型在中级COCOMO模型的基础上,进一步提高估算精度,15个成本驱动因子被分成不同的层次且在软件生存周期的不同阶段被赋予不同的值。改动内容:a.名义工作量和开发时间的计算公式和中级COCOMO模型相同;b.阶段敏感的成本驱动因子。把软件开发划分成四个阶段,即需求计划和产品设计(RPD)、详细设计(DD)、编码和单元测试(CUT)、集成测试(IT)。c.三层次的产品分级结构。为软件产品提供了一个模块—子系统—系统的三层分解结构。随各模块的不同而变化的因素(4个)放在模块级处理;不经常变化的因素(11个)放在子系统级处理;系统级则处理与软件项目总体规模等相关的问题。

③详细COCOMO模型32详细COCOMO模型的估算过程:a.计算模块的规模将系统按照模块-子系统-系统分层,把软件开发分为四个阶段,产品设计(RPD)、详细设计(DD)、编码和单元测试(CUT)、集成测试(IT);

利用某种规模估算技术,计算每一模块的规模;修改后的模块规模=(原模块的LOC×AAF)/100AAF是调节因子AAF=0.4×设计修改的百分比+0.3×编程修改的百分比+0.3×集成修改的百分比b.计算名义生产率名义工作量和总规模:E=aSb总规模(S)=∑各模块规模(Si)名义生产率=名义工作量/总规模c.模块的名义工作量=(该模块的规模×工作量阶段分布百分数)/名义生产率。(工作量阶段分布百分数:通过工作量在四个阶段的分布表对应查询得到)详细COCOMO模型的估算过程:33d.计算每一个模块在每一个阶段的工作量

模块在各阶段的工作量=模块的名义工作量×模块各阶段调节因子(EAF)利用模块级驱动因子表,EAF=∏(各模快在每一个阶段的各驱动因子)e.计算每一个子系统各阶段的名义工作量子系统的名义工作量=∑(各模块四个阶段的工作量)f.根据子系统级驱动因子表,求子系统工作量调节因子子系统各阶段的工作量=子系统的名义工作量×子系统相应阶段的调节因子(EAF)利用子系统级驱动因子表,EAF=∏(子系统在每一个阶段的各驱动因子)g.总工作量=∑(子系统四个阶段的工作量)2)COCOMOII主要变化:(反映了软件工程技术的进步)①使用三个螺旋式的生命周期的模型,应用组合模型、早期设计模型和后体系结构模型。将未来软件市场划分为:基础软件、系统集成、程序自动化生成、应用集成、最终用户编程五个部分。②使用五个规模因子(定标因素)计算项目规模经济性的幂指数。③删除成本驱动因素VIRT、TURN、VEXP、LEXP、MODP。d.计算每一个模块在每一个阶段的工作量34

④新增成本驱动因素DOCU、RUSE、PVOL、PEXP、LTEX、PCON、SITE。⑤改变了原有成本驱动因素的赋值,以适应当前的软件测试技术。应用组合模型:用原型解决人机交互、系统接口、技术成熟度等具有潜在高风险的内容。通过计算屏幕、报表、第三代语言组件的对象点数确定规模测量。

根据计算屏幕、报表、第三代语言组件对象中包含的视图数(见《屏幕对象点和报告对象点的复杂度》表),确定对象点的权重:总对象点数=∑各对象点数×权重(见《对象点的复杂度权重》表)E=NOP/PRODNOP=总对象点数×(100-a)/100NOP为新对象点数,PROD为生产率,E工作量。PROD:根据开发人员的经验、能力和ICASE成熟度和能力,确定生产率(见《基于开发经验和ICASE成熟度和能力的平均生产率》表)。④新增成本驱动因素DOCU、RUSE、PVOL、PE35早期设计模型和后体系结构模型:

通过源代码行或功能点数计算软件工作量和进度,使用5个规模度量因子(见《COCOMOII定标因素》表)和17个成本驱动因素(见《后体系结构成本驱动变量》表)进行调整。

E=A×KLOCB×EAFA通常取值:2.55B=1.01+0.01∑Wii=1-5EAF=∏(17个后体系结构成本驱动变量)

(早期设计模型为7个成本驱动变量-产品复杂度、复用、平台难度、人员经验、分析员能力、软件工具和开发进度表,是根据17个后体系结构成本驱动变量对应值进行合并得到)。Wi为规模度量因子或定标因子,EAF为工作量调整因子。早期设计模型和后体系结构模型:36例子:项目:有一物价信息管理系统硬件预算完成后,软件估算如下(使用类中级COCOMO模型计算)总体类型工作量进度有机式E=2.4XS1.05T=2.5XE0.38半分离式E=3.0XS1.12T=2.5XE0.35嵌入式E=3.6XS1.20T=2.5XE0.32例子:总体类型工作量进度有机式E=2.4XS1.05T37门户网站政务公开:法规、机构设置、办事指南等1价格播报:物价查询、物价公报、分析预测1价格服务:投诉、咨询、供求1监测上报1农村价格监督监测服务网1药品医疗收费网1汽车、摩托车专用网2房地产、物业专用网2中心数据库建立物价收费库2建立商品类别2建立商品编码3物价库管理1指数维护、权数维护1组织结构与库权限的关联1(1)软件功能点计算:系统功能点详表门户网站政务公开:法规、机构设置、办事指南等1价格播报:物价38物价业务系统数据接收1数据审核1数据入库1数据查询1价格监督2信息下发1物价分析决策支持系统综合指数计算2综合指数计算走势曲线2价格计算1价格走势曲线1价格统计1预警预测2最高比最低比2物价业务系统数据接收1数据审核1数据入库1数据查询1价格监督39综合办公系统通知通告1领导办公1公文管理1交办待办督办1文档管理1价格上报、采集建立上报、收费地区1建立上报点及收费单位2自动建立数据模板5数据管理5数据查询1自动语音应答系统30自动语音投诉2功能点合计90综合办公系统通知通告1领导办公1公文管理1交办待办督办1文档40序号影响工作量因素(成本驱动量)Fi情况取值1软件可靠性(产品)极高1.402数据库规模(产品)40G字节1.163产品复杂性(产品)用于网络数据库处理1.224执行时间约束(计算机)有一定的实时性要求1.115存储约束(计算机)正常使用1.006环境变更率(计算机)系统升级、策略变更1.157环境周转时间(计算机)正常1.008系统分析员能力(人员)高级程序员1.009应用经验(人员)三年熟悉程度1.0010程序员的能力(人员)一般程序员1.0011环境知识(人员)正常1.0012程序语言知识(人员)正常1.0013程序设计技术(项目)正常1.0014使用软件工具(项目)基于SQL开发1.1015进度约束(项目)两个月1.10(2)工作量因素取值表:序号影响工作量因素(成本驱动量)Fi情况取值1软件可靠性(产41开发成本:根据程序的功能点数及影响工作量因素Fi取值可以计算出:软件规模(KLOC)=90×150/1000=13.5(千行)其中:每功能点估计150LOC。根据:公式E=aSb×EAFEAF=∏Fii=1-15

计算如下:E=2.4×13.51.05×∏Fi=49.22

×3.06=150.61(人/月)

开发时间的计算公式:t=cEdt=2.5×150.610.38=16.8083(月)每位开发人员每月平均开发成本3000元计,则该项目的开发成本为:150.61

×3000=451830(元)开发成本:421.软件项目进度管理(1)制定项目计划

软件项目计划:定义工作并确定工作的完成方式,对主要任务及需要的时间和资源进行估计,定义管理评审和控制的框架。第四章项目进度管理1.软件项目进度管理第四章项目进度管理43(2)进度安排进度安排的整体过程1)根据项目总体进度目标,编制人员计划。2)将各阶段所需要的资源和可以取得的资源进行比较,确定各阶段的初步进度,然后确定整个项目的初步进度。3)对初步进度计划进行评审,确保该计划满足要求。(3)进度中的并行性软件项目的并行性对进度的要求:因为并行任务同时发生,所以进度计划必须确定各任务之间的从属关系,各任务先后次序和衔接以及各个任务的持续时间。进度安排的方法常用的有甘特图和网络图。需求分析需求评审概要设计测试计划测试过程(2)进度安排需求分析需求评审概要设计测试计划测试过程441)甘特图(GanttChart)

是各种任务活动与日历表的对照表。2)网络图①网络图定义:设G=(V,E,g)是一个n阶无回路的有向加权图,其中g是E到非负实数集的函数。若G中存在两个V的不相交非空子集X,Y,其对任意vi∈X,没有一条有向边以vi为终点;对任意vi∈Y,没有一条有向边以vi为起点,则称G是一个网络图,X,Y中的顶点分别称为G的发点、收点。②PERT图tvjvi

定义:设G=(V,E,g)是一个网络图,若G中只有一个发点和一个收点,其中函数表示为时间函数,则网络图G常称为PERT图(计划评审图)。在PERT图中,网络图表示软件项目计划,图中的有向边表示软件项目的任务,有向边的起点和终点分别表示软件任务的开始和结束,有向边的权表示任务的持续时间。任务第1月第2月第3月第4月第5月需求分析规格说明软件设计软件实现单元测试1)甘特图(GanttChart)任务第1月第2月45③路径与关键路径路径:在网络图中,从发点开始,按照各个任务的顺序,连续不断地到达收点的一条通路称为路径。在所有路径中,权最大的路径称为关键路径④PERT图的关键路径设G是一个PERT图,G中从发点到收点的所有路径中,权最大的路径(即:完成各个任务需要时间最长的路径)称为PERT图的关键路径。⑤关键任务组成关键路径的任务称为关键路径。③路径与关键路径46⑥任务持续时间为完成某一软件任务所需要的时间,用Tij表示,指节点i和节点j之间的有向边表示的任务持续的时间。⑦任务的最早开始时间、最晚开始时间及缓冲时间。设G=(V,E,g)是一个n阶PERT图,其中:V={v1,v2,…,vn},且v1,v2,…,vn分别为发点和收点,则对任意vi(I=1,2,…,n),分为以下两种情况。⑥任务持续时间47任务最早开始时间:vi到vj的所有路径的权中,最大的权称为以vi为起点的任务的最早开始时间,记为:E(vi)。E(vi)viE(v1)=0E(vk)TkiE(vi)=MAX(E(vk)+Tki),i{2,3,…,n}vk式中,vk是vj的前驱节点,E(vk)指vk的最早开始时间,Tki指vk和vi之间任务持续的时间。任务最晚结束时间:L(vj)vjL(vn)=TL(vi)TijL(vi)=MIN(L(vj)-Tij),i{1,2,3,…,n-1}viL(vi)是以vi为终点的任务的最晚结束时间,L(vj)是以vj为终点的任务的最晚结束时间,vj是vi的后继,Tij是vi和vj之间任务持续的时间。任务最早开始时间:vi到vj的所有路径的权中,最大的权称为以48.任务最晚开始时间=任务最晚结束时间—任务持续时间.缓冲时间=任务最晚开始时间—任务最早开始时间定理:在PERT图的关键路径中,个任务的缓冲时间均为0。.任务最晚开始时间=任务最晚结束时间—任务持续时间49⑥网络优化时间优化、时间-费用优化⑦用网络图安排进度的步骤网络举例:G(10,10)编号最早时间最晚时间缓冲时间软件项目任务描述前驱任务任务持续时间(周)A需求分析1B重新设计现有部分A5C设计新增部分A3D开发整体计划C2E修改现有代码B3F增补新代码C6G单元测试EF1H集成测试G1I更新文档D2J验收测试HI1123465789A(0,0)B(1,2)C(1,1)D(4,8)E(6,7)I(6,10)H(11,11)J(12,12)F(4,4)⑥网络优化G(10,10)编号最早时间最晚时间缓冲时间软件项501.配置管理概念(1)基本概念软件配置管理的关键任务是控制变更活动。变更是软件过程的一项基本活动,需求变更驱动设计变更,设计变更驱动代码变更,测试活动也将导致变更,有时甚至是原始需求的变更。概念:1)软件配置管理中的软件是指由逻辑和功能特性构建的信息。2)配置配置由部件表和部件分解图组成。部件分解图定义了基线中包含的所有要素以及如何将它们安装在一起。3)标识标识产品的结构、产品的构建及其类型。

第五章软件项目配置管理1.配置管理概念第五章软件项目配置管理51

4)软件配置项SCI(SoftwareConfigurationItem)是为了配置管理的目的而作为一个单位来看待的软件要素的集合。5)版本版本是一个基线或一个软件配置项的特征。6)基线是开发过程的里程碑。7)控制通过基线,控制软件产品8)状态统计记录并报告构件和修改请求的状态。4)软件配置项52

9)审核确定产品的完整性并维护构件间的一致性。10)生产对产品的生产进行优化管理。11)过程管理12)小组协作13)配置委员会9)审核53(2)软件配置管理定义

配置管理CM(ConfigurationManagement):是在系统生命周期中对系统中的配置项进行标识和定义的过程。同时确保配置项的完整性和正确性。

软件配置管理SCM(SoftwareConfigurationManagement):是应用于由软件组成的系统的配置管理。通过一套工程规范,保证当前状态是已知的和可重复的。

软件配置管理是一套规范、高效的软件开发基础结构。SCM对开发过程进行有效地管理和控制,完整、明确地记载开发过程中的历史变更,形成规范化的文档,不仅使日后的维护和升级得到保证,而且更重要的是,这还会保护宝贵的代码资源,积累软件财富,提高软件重用率,加快投资回报。SCM是通往ISO9000和SEICMM标准的一块基石。(2)软件配置管理54配置管理系统应该具备以下基本主要功能:1)并行开发支持:因开发和维护的原因,要求能够实现开发人员同时在同一个软件模块上工作,同时对同一个代码部分作不同的修改,即使是跨地域分布的开发团队也能互不干扰,协同工作,而又不失去控制。2)修订版管理:跟踪每一个变更的创造者、时间和原因,从而加快问题和缺陷的确定。3)版本控制:能够简单、明确地重现软件系统的任何一个历史版本。4)产品发布管理:管理、计划软件的变更,与软件的发布计划、预先定制好的生命周期或相关的质量过程保持一致;项目经理能够随时清晰地了解项目的状态。5)建立管理:基于软件存储库的版本控制功能,实现建立(build)过程自动化。6)过程控制:贯彻实施开发规范,包括访问权限控制、开发规则的实施等。7)变更请求管理:跟踪、管理开发过程中出现的缺陷(Defect)、功能增强请求(RFE)或任务(Task),加强沟通和协作,能够随时了解变更的状态。8)代码共享:提供良好的存储和访问机制,开发人员可以共享各自的开发资源。配置管理系统应该具备以下基本主要功能:55软件配置管理的内容简述:1)软件结构及配置管理包括:软件配置项的管理、软件结构和配置信息管理、装配关系、配置关联、软件结构完整结构描述等;2)软件生命周期管理包括:保留、跟踪软件生命周期整个过程中所有历史记录,定义软件从一个状态转换到另一个状态时必须经过的处理步骤、构造软件设计或变更流程(指定任务、审批和通知相关人员等);3)软件文档及信息的存储管理机制包括:存储、检索、共享、安全、发布、变更等机制。(3)软件配置管理过程四步:1)计划配置管理;2)开发CM方案;3)配置控制;4)状态审计软件配置管理的内容简述:56(4)配置管理功能软件配置管理是指涉及组织和管理各种软件产品及文档、控制其变化的一系列活动。四个主要功能:配置标识、配置控制、配置状态报告及配置审核。软件配置项是在软件生存周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的文档、程序及其数据集合中的任何一个元素。例如

:产品概念说明、软件项目计划、软件需求规格说明书、软件设计说明书、源代码、数据库描述、软件配置管理程序、软件发布过程、软件测试文档、用户文档和维护文档等。(4)配置管理功能571.质量管理的概念(1)软件质量评价软件质量的六个特性:

功能性、可靠性、易用性、效率、可维护性和可移植性。1)功能性:系统功能性是软件满足明确和隐含的需求的功能和相关的属性。2)可靠性:可靠性是在规定时间和条件下,软件维护其性能水平的能力。系统按照用户需求和设计者的相应设计,执行其功能的正确程度。3)易用性:易用性是以一组规定或潜在的用户为软件使用对象,对系统使用的相关评价的一组属性,包括易理解性、易学习性、易操作性。4)效率:系统效率是以在规定的条件下,软件的性能水平与所使用资源量之间有关的一组属性。

第六章软件项目质量管理1.质量管理的概念第六章软件项目质量管理58

5)可维护性:系统的可维护性是与进行指定的修改所需的努力有关的一组属性。6)可移植性:系统的可移植性是与软件从一环境移动到另一环境的能力有关的一组属性。2.软件产品质量与过程质量

传统的质量管理:关注产品最终的产品质量,依赖的是软件测试一类的质量检测方法。认为经过测试的产品,就符合产品质量要求。过程质量:建立产品的缺陷数与生产过程的关系,以降低产品缺陷数作为过程改进的目标,并一直进行到工程成为可以重复的为止,也即过程的结果成为可以预期的为止。3.软件质量保证(SQA)目标:

通过适当的监控系统及其开发过程来保证软件质量。确保软件及其开发过程与已定的标准和规程要求完全一致。确保能及时发现产品、过程和标准的任何不足并提醒管理者注意,以便及时弥补。

5)可维护性:系统的可维护性是与进行指定的修改所需的努594.软件测试(1)软件测试的概念软件测试是指为了寻找软件缺陷而执行程序的过程。测试的目的是尽可能发现软件的缺陷,而不是证明软件正确。软件测试的过程包括:测试计划、测试的组织、测试用例的设计与开发、测试的执行与报告。(2)软件测试类型1)单元测试;2)集成测试-自底向上和自顶向下;3)功能测试-黑盒测试;4)回归测试-对修复的软件进行重新测试;5)验收及安装测试;6)Beta测试;7)配置测试;8)兼容性测试;9)语言测试;10)易用性测试-交互适应性、实用性和有效性-又称用户界面测试。4.软件测试60(3)测试的原则1)软件测试需要由专业人员完成2)测试贯穿项目的全过程-分阶段交付,分阶段测试。3)打破对测试的过分依赖-测试是考察软件质量的手段,而不是保证软件质量的手段。4)为软件测试提供适当的资源-费用、时间、人员、计划等。5)注意“杀虫剂”现象-设计不同的测试用例。(3)测试的原则61(4)测试用例的开发1)测试覆盖技术打印2)单元测试中的路径选择3)功能测试中的路径覆盖

预览打印5.软件缺陷跟踪缺陷跟踪包括记录和跟踪缺陷,缺陷跟踪是从缺陷的发现开始,一直到缺陷改正为。

缺陷来源于软件评审、测试的成果和其他缺陷来源。

(4)测试用例的开发625.软件缺陷预防(1)问题的提出由于软件缺陷预防在软件项目管理中的重要性,被CMM列为优化过程中。软件缺陷预防的理由:1)在过程中,随着时间的推移,寻找和修复缺陷的成本会成指数地增长;2)即使在过程的初期,预防缺陷的代价通常也比发现和修复它们的代价低。(2)缺陷预防的原则重点:错误原因的分析和缺陷预防方法。软件缺陷预防的基本思想与目标是:确保错误在被标识并被解决后不会再一次发生。5.软件缺陷预防636.ISO9000:2000质量认证体系(1)ISO9000的概念1947年成立的ISO(InternationalOrganizationforStandardization)是由世界上100多个国家的国家标准化团体组成的国际标准化组织,国家技术监督局代表中国参加,它通过2856个技术机构开展活动。ISO负责除电工、电子以外的所有领域的标准化活动。电工、电子领域的标准化活动由国际电工委员会(IEC)(InternationalElectrotechnicalCommission)负责,国家技术监督局代表中国参加。ISO和IEC作为一个整体,有1000多个专业委员会和分委员会,3000多个工作组,每年制订和修订1000多个国际标准。6.ISO9000:2000质量认证体系64ISO的国际标准编号的格式:ISO+标准号+[-分标准号]+:+发布年号。ISO9000不是一个标准,而是涉及质量保证与质量管理活动的一族标准(20项)的总称。由质量管理和质量保证委员会、质量体系分技术委员会制定。在ISO9000:1994中与软件企业关系最密切的是:《ISO9001:1994质量体系-设计、开发、生产、安装和服务的质量保证模式》《ISO9000-3:1994质量管理和质量保证标准第三部分:ISO9001:1994在计算机软件开发、供应、安装和维护中的指南》ISO的国际标准编号的格式:ISO+标准号+[-分标准号]+65

ISO9001:1994标准从20个方面全面定义了质量体系要素,规定了质量体系的要求。如果产品开发、生产者或供应方达到了这些要求,就表明具备了质量保障能力。

ISO9001:1994标准从20个方面全面66ISO9000认证适用行业1农业、渔业21航空、航天2采矿业及采石业22其他运输设备3食品、饮料和烟草23其他未分类的制造业4纺织品及纺织产品24废旧物质的回收5皮革及皮革制品25发电及供电6木材及木制品26气的生产与供给7纸浆、纸及纸制品27水的生产与供给8出版业28建设9印刷业29批发及零售汽车、摩托车、个人及家庭用品的修理10焦碳及精练石油制品30宾馆及餐馆11核燃料31运输、仓储及通讯12化学品、化学制品及纤维32金融、房地产、出租服务13医药品33信息技术14橡胶和塑料制品34科技服务15非金属矿物制品35其他服务16混凝土、水泥、石灰、36公共行政管理石膏及其他17基础金属及金属制品37教育18机械及设备38卫生保健与社会公益事业19电子、电器及光电设备39其他社会服务20造船

ISO9000认证适用行业67(2)ISO9000标准的八项质量管理原则一般地讲企业活动由三方面组成:经营、管理和开发。在管理上又主要表现为行政管理、财务管理、质量管理。ISO9000族标准主要针对质量管理,同时涵盖了部分行政管理和财务管理的范畴。

标准的2000年版总结了1987年以来该标准推广应用的经验和理论,考虑了大多数质量奖的有关内容。因此,在建立质量体系的过程中,应注重贯彻以下质量管理原则。(2)ISO9000标准的八项质量管理原则68质量管理原则:1)以顾客为关注焦点-理解顾客当前和未来的需求,满足要求并超越期望。2)领导作用-营造组织员工充分参与实现组织目标的内容环境。3)全员参与-全员充分参与才能为组织带来收益。4)过程方法-将活动和资源作为过程管理。5)管理的系统方法-将相互关联的过程作为系统加以识别、理解和管理。6)持续改进-目的是增加顾客和其他相关方满意的机会。7)基于事实的决策方法-建立在数据和信息分析的基础上的决策。8)与供方互利的关系-互利的关系可增强双方创造价值的能力。质量管理原则:692000年12月15日,ISO9000:2000簇标准(第三版)正式发布实施,其核心标准有四个:ISO9000:2000质量管理体系——基础和术语;ISO9001:2000质量管理体系——要求;ISO9004:2000质量管理体系——业绩改进指南;ISO19011:2000质量管理体系——质量和环境管理体系审核指南与1994年版标准相比,在多方面得到了改进,强化了对软件行业的适用性。在ISO9000:2000《基础和术语》标准规定,适用于以下四类通用产品的组织。服务(涉及金融、贸易、饭店、教育等12类68种)软件硬件(如各类产品制造业等)流程性材料(如供电、供水、供气业等)2000年12月15日,ISO9000:2070取得ISO9001认证的意义

在2000版ISO9000系列中,ISO9001是质量管理体系认证的标准,企业通过认证可以证实其有能力稳定地提供满足顾客和适用的法律法规要求的产品,有效地运作体系可以使企业不断改进,获得更好的效益。提高企业管理水平:企业取得ISO9001认证,意味着该企业已在管理、实际工作、供应商和分销商关系及产品、市场、售后服务等所有方面建立起一套完善的质量管理体系。良好的质量管理,有利于企业提高效率、降低成本、提供优质产品和服务,增强顾客满意。提高供方的质量信誉:二十世纪是生产效率的世纪,二十一世纪将是质量的世纪。质量是企业拓展市场的首要战略,因为有了质量信誉就会赢得市场,有了市场就会获得效益。实行质量认证制度后,市场上便会出现认证产品与非认证产品、认证注册企业与非认证注册企业的一道无形界线,凡属认证产品或注册企业,都会在质量信誉上取得优势。指导需方选择供方单位:随着科学技术的不断进步,现代社会产品的结构越来越复杂,仅靠使用者的有限知识和条件,很难判断产品是否符合要求。取得ISO9001认证,可以帮助需方在纷繁的市场中,从获准注册的企业中寻找供应单位,从认证产品中择优选购商品。增强企业市场竞争能力:质量认证制度被世界上越来越多的国家和地区接受,已成为国际惯例。一个企业无论在国内还是在国外,如要得到普遍认可,取得ISO9001的认证证书将是突破壁垒的重要途径,并将成为通向世界的有效护照,使您事半功倍。取得ISO9001认证的意义717.软件能力成熟度模型CMM(CapabilityMaturityModelforSoftware)(1)CMM的提出卡内基.梅隆大学软件工程研究所——SEI,1987年9月开发的一套软件能力成熟度框架和一套软件成熟度问卷,用来评估软件供应商的开发能力。

CMM的理论基础:通过适当定义软件过程,实现过程的透明与规范,从而有效地管理、控制与改进软件的开发与维护过程,确保软件的质量。CMM是评估软件商的能力的依据和过程改进的框架。根据SEI的统计,软件企业在引入CMM管理后,劳动生产率平均增长35%,错误比率平均减少39%,平均成本回报率为5∶1。7.软件能力成熟度模型CMM(CapabilityMa72(2)CMM的基本概念

1)软件过程软件过程:人们用以开发和维护软件及其相关产品(例如:项目计划、设计文档、代码、测试用例、用户手册等)的一组活动、方法、实践和变换。

2)软件过程能力软件过程能力:软件项目开发团队通过执行其软件过程能够实现预期结果的程度。

3)软件过程性能软件过程性能:软件项目开发团队遵循其软件过程所得到的实际结果。(2)CMM的基本概念734)软件过程成熟度软件过程成熟度:一个特定软件过程被明确和有效地定义、管理、测量和控制的程度。

软件过程成熟:通过开发组织运用该软件过程,使得各个开发项目执行该软件过程的纪律性得到增强,并导致软件生产率和质量随着时间的推移而不断得到改进。(3)软件过程的内容和特征1)软件过程的内容按照软件项目的生产、实施和完善三大阶段,软件过程的五个基本的过程活动:软件需求分析、软件设计过程、软件实现过程、软件测试过程、软件维护过程。4)软件过程成熟度74

2)软件过程的特征软件过程可以看作一个软件开发组织针对某一类软件产品为自己规定的工作步骤。应满足可理解性、可见性、可支持性、可接受性、可靠性、健壮性、可维护性、速度等8个性能要求。(4)软件过程成熟度的五个等级成熟度等级是妥善定义的在向成熟软件组织前进途中的平台。每一等级包含一组过程目标。当目标满足时,能使软件过程的一个重要成分稳定。每达到成熟度框架的一个等级,就建立起软件过程的若干不同的成分,导致组织过程能力的增长。2)软件过程的特征75(5)成熟度等级的特征1)等级1-初始级在初始级上组织一般不提供开发和维护软件的稳定环境。成功完全依赖于有一个杰出的经理及一支有经验的、战斗力强的软件队伍。没有稳定的软件过程,依靠个人的能力而不是组织的能力去预测性能(进度、预算、功能性和产品质量等)。2)等级2-可重复级(有纪律的过程)达到等级2的目的是使软件项目的有效管理过程制度化,使得组织能重复在以前项目上所开发的成功实践。项目已设置基本的软件管理控制。项目具有切实可行的计划,项目过程处在项目管理系统的有效控制之下。3)等级3-已定义级(标准一致的过程)在已定义级上,全组织的开发和维护软件的标准过程已文档化,包括软件工程过程和软件管理过程,而且这些过程被集成为一个有机的整体。项目通过剪裁组织的标准软件过程去建立自己定义的软件过程。(5)成熟度等级的特征764)等级4-已管理级(可预测的过程)在已管理级上,组织对软件产品和过程都设置了定量的质量目标。作为组织测量大纲的一部分,对所有的项目都测量其重要的软件过程活动的生产率和质量。软件过程均已配备有妥善定义的和一致的度量,为定量评价项目的软件过程和产品打下基础。5)等级5-优化级(不断改进的过程)在优化级,整个组织集中精力进行不断的过程改进。为了预防缺陷出现,组织有办法识别出弱点并预先针对性地加强过程。4)等级4-已管理级(可预测的过程)77(6)软件过程改进(6)软件过程改进78能力成熟度级别与关键过程域能力成熟度级别与关键过程域79(7)CMM升级到CMMI的研究:自1991年起美国卡耐基梅隆大学软件工程研究所发布SW-CMMv1.0(软件能力成熟度模型)以来,SEI针对不同领域的要求对SW-CMM先后进行改进,并衍生出了一系列成熟度模型。其中比较重要的包括:系统工程能力成熟度模型(SE-CMM),软件采购能力成熟度模型(SA-CMM),集成产品开发能力成熟度模型(IPD-CMM)等。但是这些具有针对性的模型又带来了一些新的问题。软件公司的业务一般都不是单一的,有的公司可能同时从事软件开发、硬件开发、还可以进行软件采购。此时采取多个模型必定会使很多关键过程域,关键实践产生重叠,增加了开发费用。2001年11月SIE推出CMMIV1.1,将以上模型集成,解决了多模型之间的重叠问题。同时SEI发表了针对CMMI的一套评估体系SCAMPISMV1.1,替代CBAIPIandSCESM并打算CMMI取代CMM。已有许多组织开始向CMMI过渡。

(7)CMM升级到CMMI的研究:80

从CMM到CMMI的映射

从CMM到CMMI的映射81映射分析CMMI更加清晰的说明各过程域和类属实践(genericpractice)如何应用实施,并指出如何将工作产品纳入相应等级的配置和数据管理基线,风险管理策略,验证策略等。CMMI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论