计算机软件项目管理讲课

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

软件项目管理主讲人:张小平2007年7月目录第一章导论第二章软件项目需求管理第三章软件项目成本估算第四章软件项目进度管理第五章软件项目配置管理第六章软件项目质量管理第一章导论1.软件工程软件:是与一个系统,特别是一个计算机系统有关的程序。软件工程:是一类求解软件的工程。它应用计算机科学、数学、管理科学等原理,借鉴传统的原理、方法,创建软件,以达到提高质量、降低成本的目的,使计算机设备的能力借助于软件成为对人类有用的东西。解释:工程科学用于制定规范、设计模式、评价成本及确定权衡;计算机科学、数学用于构造模型和算法;管理科学用于计划、资源、质量、成本等管理。(1)软件工程目标软件工程的目标:是“生产正确、可用及具经济效益的产品”。(2)软件工程活动软件工程的活动是指生产一个最终满足需求且达到工程目标的软件产品所需要的步骤,主要包括问题定义、可行性研究、需求分析、设计、实现、确认、支持等。软件生产发展过程20世纪50,60年代:程序设计时代20世纪60,70年代:程序系统时代20世纪70,80年代:软件工程时代20世纪80年代至今2项目管理(1)管理管理:是使事物的发展从混乱无序走向有序有效发展的方法。是一种有生命力的并能实现复杂的企业目标的方法。(2)项目项目:是指在一定约束条件(费用、时间、质量、资源等)下具有特定目标的一项一次性任务。项目:是新企业、新产品、新系统和新技术的总称。特点:一次性(单件性)、目标性(成果性目标和约束性目标)和可管理性(环境变化与效益的关系)。项目的生命周期:启动、计划、实施和结束。(3)项目管理PMI的定义:在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求。项目管理过程:初使过程、计划过程、执行过程、控制过程和关闭过程。项目管理任务:协调并完成项目对范围、时间、成本、风险及质量这些相互矛盾的任务的要求,确保能够满足需求和达到预期目标。项目管理的特点:1)综合性、2)创造性、3)时间性项目管理的制约因素:1)范围、2)时间、3)成本、4)质量、5)组织及客户满意度。(4)项目管理知识体系以欧洲为首的体系-国国际项目管理协会IPMA(InternationalProjectManagementAssociation)项目管理专业人员取证分为A、B、C、D四级A:工程主任级证书B:项目经理级证书C:项目经理工程师级证书D:项目管理技术员级证书以美国为首的体系-美国项目管理学会PMI该知识体系把项目管理分为9个知识领域:集成管理、范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、风险管理、采购管理。3软件项目管理(1)软件项目产品的特点1)抽象性2)缺陷检测的困难性3)高度的复杂性4)缺乏统一的规则(2)软件项目管理的必要性1)软件失控项目软件项目在实施中,较大地突破了项目的主要约束指。2)软件项目失控的原因需求不明确、计划和估算失误、盲目采用新技术、管理方法、软件性能、团队组织、人际因素(3)软件项目管理1)软件项目管理的定义在软件项目活动中运用一系列知识、技能、工具和技术,以满足软件需求方的整体要求。2)软件项目管理的过程启动软件项目制定项目计划跟踪及控制项目计划评审项目计划编写管理文档3)软件项目管理的内容•软件项目需求管理•软件项目估算与进度管理•软件项目配置管理•软件项目风险管理•软件项目质量管理•软件项目资源管理第二章软件项目需求管理1.软件需求(1)软件需求概念定义:软件需求是系统或软件必须达到的目标和能力。1997年版IEEE软件工程标准词汇表需求定义如下:•用户解决问题或达到目标所需的条件和能力。•系统或系统部件要满足合同、标准、规范或其他正式文档所需具有的条件或能力•一种反映上面第一点或第二点所描述的条件或能力的文档说明以下五项内容确定一组完整的软件需求:1)系统的输入;2)系统的输出;3)系统的功能;4)系统的属性;5)系统环境的属性(2)软件需求在软件项目中的作用项目计划过程跟踪控制过程变更控制过程系统构建过程软件需求过程文档编制过程系统测试过程2.需求工程(1)需求工程产生与发展定义:需求工程是一个包括创建和维护需求文档所必需的所有活动的过程,是将用户非形式化的软件需求转变为形式化的需求规格说明的过程。特点:软件需求不再仅限于软件开发的最初阶段,而是贯穿于软件项目开发的整个生命周期。是软件工程的子领域。另一个定义:需求工程是应用已证实有效的技术、方法确定用户需求,进行需求分析,帮助分析人员理解问题并定义目标系统的所有外部特征的一门科学。发展:1)对象化是指需求模型及其构造方法的对象化。2)形式化是具有严格数学基础的描述系统特征的方法,具有准确、无二义性的特点,有助于验证有效性和完整性。3)自动化随着软件工程的自动化程度的提高,需求工程逐渐进入自动化。(2)需求工程研究内容需求工程的目标两个主要任务:1)通过对问题及其环境的理解、分析和综合,建立分析(系统)模型;2)在完全弄清用户对软件系统的确切要求的基础上,用SRS(SoftwareRequirementSpecification)把用户的需求表达出来。需求工程的层次分解:需求工程分为需求开发和需求管理。需求工程需求开发需求管理需求获取需求分析规格说明需求验证变更管理版本控制需求跟踪需求状态3.需求管理需求管理的必要性1)需求供求双方固有的矛盾软件专业人员的技术性导致需求供求双方达成共识困难。2)需求具有易变性难以表达性软件项目中40%-60%的问题都是在需求分析阶段埋下的祸根。软件中潜在的缺陷需求缺陷比例最大缺陷来源潜在缺陷剩余缺陷排除效率(%)需求0.20.04677设计0.250.037585编码0.350.017595建档0.120.02480修复0.080.02470合计10.14985.130.87%3)需求错误出现的高频性和修复的高昂成本需求的错误,如果在软件项目进行到后期才发现,修复费用是非常可怕的,甚至会超出项目本身的费用。在维护阶段修复的成本是需求阶段修复成本的100-200倍。需求阶段设计阶段编码阶段单元测试阶段集成测试阶段维护阶段0.1-0.20.512520软件缺陷修复成本需求管理的目标和原则1)需求管理的目标①使软件需求受控,并建立供软件工程和管理使用的需求基线。②使软件计划、产品和活动与软件需求保持一致。2)需求管理的原则需求管理遵循的五条原则:①需求一定要分类管理②需求必须分优先级③需求必须文档化④需求一旦变化,就必须对需求变更的影响进行评估⑤需求管理必须与需求工程的其他活动紧密整合3)需求管理活动需求管理在需求开发的基础上进行的,贯穿于整个软件项目过程,需求管理内容:A.需求识别;B.变更管理过程;C.需求跟踪;D.CASE工具选择。需求管理是一个对系统需求变更和控制的过程。需求管理活动需求管理活动活动的任务变更控制建议需求变更并分析其影响,做出是否变更的决策版本控制确定单个需求和SRS的版本需求跟踪定义对于其他需求及系统元素的联系链需求状态定义并跟踪需求的状态1.软件项目估算估算是指通过预测构造软件项目所需工作量的过程。(1)估算的意义软件项目估算包括工作量估算和成本估算两个方面。以成本估算笼统的表示。一个成功的项目“应该在工程允许的范围内满足成本、进度和质量目标的要求,而不需要对它的进度或预算进行增补”。软件项目工作量估算的失真,将导致软件成本上升,开发周期延长,从而使项目管理失效。(2)估算的作用:1)初步的估算用于确定软件项目的可行性。2)详细的估算用于指导项目计划的制定。第三章软件项目成本估算(3)估算的时机软件产品的生命周期的5个阶段:计划软件产品、开发软件产品、验证软件产品、使用软件产品和淘汰软件产品。10个子阶段:客户需求、产品定义、系统设计、系统实现、系统测试、系统评审、系统运行、系统维护、系统升级和系统变更。软件产品生命周期计划软件产品开发软件产品验证软件产品使用软件产品淘汰软件产品客户需求产品定义系统设计系统实现系统测试系统评审系统运行系统维护系统升级更换系统E1E2E3E4E5软件估算提供初步信息权衡产品的可行性产品的完整体系结构资源消耗达到高峰,初步软件产品可测试对估算工作的评价,为以后项目积累经验(4)软件规模软件规模:软件的程序量,是软件工作量的主要影响因素。两种软件度量标准:代码行(LOCLinesofCode);功能点(FPFunctionPoints)。1)代码行代码行分为无注释的源代码行(NCLOCNon-CommentedSourceLinesOfCode)和注释代码行(CLOCCommentedSourceLinesOfCode)。源代码总行数(LOC)=NCLOC+CLOC,KLOC=1000xLOC软件规模:KDSI(Kilo-ThousandsofDeliveredSourceInstructions):千行代码指令。代码行(1LOC)价值和人月均代码行数可以体现一个软件生产组织的生产能力。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功能点有助于在软件项目的早期做出规模估算。(5)软件生产率影响因素软件生产率因素:影响每个人月平均完成代码数量的因素。软件生产率因素受到软件产品类型(技术)、软件项目规模(代码量)和软件变更的程度影响。环境因素对生产率的影响也较为显著,如开发环境面积、安静程度、私密程度、受干扰程度等。规模(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)。生产率数据的获取步骤如下:1)选择一些最近完成的,并且与待完成项目相似的项目。2)获得各项目的LOC数据。3)对于更改过的项目,记录更改代码所占比例,仅计算新增或更改部分KOC数量。4)计算投入到每个项目的人员数。5)计算各个项目的软件生产率,即LOC/PM(每个人月生产代码的数量),进而求出平均值作为类似项目的典型软件生产率。(6)软件项目成本估算1)成本估算方法:开发成本=工作量×劳动力成本;工作量与系统规模和生产效率有关。考虑因素:材料、人力、实施、固定、可变等成本。系统免维护期结束成本=开发成本+维护成本2)算法模型数学模型:工作量=a0+a1x1+a2x2+…+anxn(成本驱动因子的若干变量的函数)专家判定、求中值或平均值、召开小组会议、Delphi技术、WidebandDelphi技术软件部分:库存情况更新开发阶段任务单元人日小计规划和需求需求定义开发计划516产品设计产品设计初步用户手册测试计划63110详细设计详细PDL描述数据定义测试数据和过程用户手册442212编程及单元测试编码单元测试结果61016集成及测试编制文档组装及测试459总

1 / 85
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功