软件项目开发计划_第1页
软件项目开发计划_第2页
软件项目开发计划_第3页
软件项目开发计划_第4页
软件项目开发计划_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

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

文档简介

工程分解目的——明确工程所包含的各项工作工程分解的结果——WBS〔任务分解结构〕图,它是一个分级的树型结构工程分解意义——WBS〔任务分解结构〕图是实施工程、创造最终产品或效劳所必须进行的全部活动的一张清单,也是进度方案、人员分配、预算方案的根底提高估算本钱、时间和资源的准确性,使工作变得更细化,分工更明确。WBS——WorkBreakdownStructure16.1软件工程任务分解WBS分解类型基于可交付成果的划分上层一般为可交付成果为导向下层一般为可交付成果的工作内容基于工作过程的划分上层按照工作的流程分解下层按照工作的内容划分16.1软件工程任务分解基于可交付成果的划分——WBS举例:信息网络工程信息网络工程结构化布线网络平台建设布线设计采购布线验收方案设计采购网络平台实施验收0级1级2级16.1软件工程任务分解基于工作过程的划分——WBS举例:网络系统工程网络系统培训设备准备设备采购设备验收交接网络系统设计布线设计平台设计工程实施布线实施网络集成软件开发软件需求确定系统设计编码测试0级1级2级16.1软件工程任务分解WBS表达形式——层次结构图和清单列表〔锯齿列表〕

图形显示

清单列表

1.0系统

1.1元素A1.1.1任务

1.1.2任务

1.2元素B1.0系统1.1元素A1.2元素B1.1.1任务1.1.2任务16.1软件工程任务分解WBS工作编码

——由高层向下层用多位码编排,要求每项工作有唯一的编码。1000110011101111111211131120112111221123120016.1软件工程任务分解WBS工作编码举例:企业经营评价系统工程网络1430软件1410硬件1420系统开发1400测试1500实施1600系统设计1300问题界定1100企业经营评价系统项目1000系统分析1200文档1440包装软件1411培训1610验收1630系统转换1620定制软件14120级1级2级3级16.1软件工程任务分解工程工作分解结构表项目名称:项目负责人:单位名称:制表日期:工作分解结构任务编码任务名称主要活动描述负责人1000

1100

1200

1x001x101x111x12

项目负责人审核意见:

签名:日期:16.1软件工程任务分解WBS分解本卷须知WBS分解的规模和数量因工程而异收集与工程相关的所有信息参看一下类似的工程的WBS,与相关人员讨论可以参照相关模板最低层是可控的和可管理的,但是防止不必要的过细,最好不要超过7层,软件工程推荐分解到40小时的任务每个Workpackage必须有一个提交物16.1软件工程任务分解定义任务完成的标准每个WBS必须有利于责任分配可以准备WBS的字典最后与相关人员进行评审16.1软件工程任务分解案例讨论假设您要在自己的家里举行一次生日宴会,请按WBS为你制定一份工作的分解方案?假设贵公司进行成立10周年庆典活动,如果请你负责此次活动,你将如何分析此次活动所应包含的工作?16.1软件工程任务分解16.2软件工程估算的概念1、什么是软件工程估算指预测构造软件工程所需要的工作量以及任务经历时间的过程。软件工程估算包括规模〔即工作量〕估算本钱估算进度估算。初步的估算用于确定软件工程的可行性;详细的估算用于指导工程方案的制定。16.2软件工程估算的概念2、软件工程估算遇到的问题预算及进度的现实性缺乏确凿的证据;在设计阶段进行实际的软硬件权衡分析时没有可靠的依据,导致软件本钱大幅度增长;工程经理在确定各开发阶段及活动需要的时间和工作量时没有可靠的依据,使得工程经理无法确定软件开发工作是否在按方案执行。16.2软件工程估算的概念3、软件工程估算的时机软件工程估算的时间点〔1〕客户需求时间点E1的估算可以为软件组织提供初步信息,决定将开发的软件是否对本组织有利。〔2〕产品定义时间点E2的估算有助于软件组织在进入产品开发之前再次权衡产品的可行性。〔3〕系统设计时间点E3的估算主要考虑如何将设计好的系统开发出来及有没有被无视的问题,不会决定是否终止工程,但会影响以后各阶段资源的分配。〔4〕系统实现初步的软件产品可用于系统测试,前面各项活动消耗的资源和软件工作可以获得,从而对原有估算进行调整。〔5〕系统运行所有不确定因素成为量,估算工作是对估算过程的评价。16.3软件工程规模估算软件规模即软件的程序量。软件规模是软件工作量的主要影响因素。对软件规模的估计要从软件的分解开始。软件的分层结构对应工作分解结构〔WBS〕。

软件工程规模的估算是指从软件工程范围中抽出软件功能,确定每个软件功能所必须执行的一系列软件工程任务。软件工程规模估算的概念16.3软件工程规模估算软件工程规模估算过程在技术允许的条件下,应从最详细的WBS开始;精确定义度量的标准;估计底层每一模块的规模,汇总以得到总体估计;适当考虑偶然因素的影响。软件工程规模度量方法LOC估算法FP估算法PERT估算法16.3软件工程规模估算1LOC估算法LOC---LinesOfCode,代码行,指源代码的总行数。LOC可分为:无注释的源代码行(Non-CommentedSourceLinesofCode,NCLOC)注释的代码行(CommentedSourceLinesofCode,CLOC)LOC=NCLOC+CLOC常用千代码行〔KLOC〕表示程序长度。

16.3软件工程规模估算计算方法:其中,a为最小规模、m为最可能的规模、b为最大规模,多个专家给出估计值,然后分别算出均值。特点:可以根据经验进行估计,相应的工具较多但根据高层需求说明估计较困难源程序仅是软件配置的一个成分,用它代表整体不太合理不同语言实现的软件所需的代码行数不同16.3软件工程规模估算2FP估算法FP----FunctionPoint,功能点基于系统功能的一种规模估算方法,通过研究初始应用需求来确定各种输入、输出、查询、外部文件和内部文件的数目,从而确定功能点的数量。估算方法:首先计算未调整的功能点数UFC〔UnadjustedFunctionPointCount〕16.3软件工程规模估算UFC的计算步骤〔1〕计算所需要的输入、输出、查询、外部文件、内部文件的数量;〔2〕对各功能项估计复杂性,大致划分成简单、一般和复杂3种情况,求出功能项的加权和,即UFC。16.3软件工程规模估算未调整的功能点〔UFC〕功能项权重简单一般复杂输入346输出457查询346外部文件71015内部文件5710功能点的复杂度权重16.3软件工程规模估算FP的计算依据UFC和计算复杂因子TFC〔TechnicalComplexityFactor〕的乘积计算FP。16.3软件工程规模估算技术复杂度因子〔TFC〕的组成名称对系统的重要程度无影响影响很小有一定影响重要比较重要很重要F1可靠的备份和恢复345F2分布式函数012345F3大量使用的配置012345F4操作简便性012345F5复杂界面012345F6重用性012345F7多重站点012345F8数据通信012345F9性能012345F10联机数据输入012345F11在线升级012345F12复杂数据处理012345F13安装简易性012345F14易于修改性01234516.3软件工程规模估算FP的计算功能点FP由未UFC与技术复杂度因子TCF相乘而得。

FP=UFC×TCF

TCF的计算

TCF

=0.65+0.01×(SUM(Fi))

16.3软件工程规模估算功能点度量有助于在软件工程的早期作出规模估计,但无法自动度量。一般在早期的估计使用功能点,然后依据经验将功能点转化为代码行,再使用代码行继续进行估计。使用情况:估计新的软件开发工程;应用软件包括很多输入输出和文件活动;拥有经验丰富的功能点估计专家;拥有充分的数据资料,可以相当准确地将功能点转换为LOC.16.3软件工程规模估算3PERT估算法PERT----ProgramEvaluationonReviewTechnique,方案评审技术20世纪50年代末由美国海军开发北极星潜艇系统时为协调3000多个承包商和研究机构而开发的、用于工程进度方案的一种技术。其理论根底是假设工程持续时间以及整个工程完成时间是随机的,且服从某种概率分布。PERT可以估计整个工程在某个时间内完成的概率。16.3软件工程规模估算3PERT估算法简单的PERT规模估算技术是假设软件规模满足正态分布。只需估算两个量:最低规模和最大规模。期望规模:E=〔a+b〕/2标准偏差:σ=〔b-a〕/6

16.3软件工程规模估算软件生产率1.影响因素估计出软件工程的代码数量之后,需要将其转换为人月数。估算人月数需要分析影响每个人月平均完成代码数量的因素,即确定软件生产率。

16.3软件工程规模估算软件规模和产品类型对生产率的影响规模产品类型<1010~50>50语言1.83.94.0控制1.61.82.4通信1.01.62.0软件生产率软件生产率取决于产品类型、工程规模和软件变更的程度。16.3软件工程规模估算软件生产率软件变更和产品类型对生产率的影响变更或新增的百分比产品类型<20%20%~40%>40%语言3.06.06.6控制1.52.32.3通信1.41.81.916.3软件工程规模估算软件生产率2.生产率数据的获取〔1〕选择最近完成的,在规模、语言、应用类型、团队开发经验等方面与待完成工程相似的工程;〔2〕获得各个工程的LOC数据,各工程使用相同的计数方法;〔3〕对于更改正的程序,记录更改代码所占比例;〔4〕计算投入到每个工程上的人员数量,包括设计、实现、测试、文档人员;〔5〕计算各个工程的软件生产率,LOC/PM,进而求出平均值作为类似工程的典型软件生产率。16.4软件工程本钱估算

本钱估算是对完成软件工程所需费用的估计和方案,是软件工程方案中的一个重要成分。

理想的本钱估算是根据历史标准估算,但由于软件工程和方案变化多端,把今后活动与现实比照几乎不可能,并且在大型工程中,还应考虑今后几年的员工工资结构和管理费用是否会发生变化。16.4软件工程本钱估算1本钱估算方法1、算法模型算法模型提供一个或多个数学算法,将软件本钱估算值看成主要技术驱动因素的假设干变量的函数。〔1〕线性模型工作量=a0×a1x1×…..×anxnX1,……Xn,是本钱驱动因素变量,a1,….an是一组经过选择的能使本模型与一组观察数据点之间的拟合度最正确的系数。开发本钱=工作量×某一衡定本钱

16.4软件工程本钱估算1本钱估算方法〔2〕乘积模型工作量=a0×a1x1×…..×anxnX1,……Xn,a1,….an含义与线性模型相同。〔3〕解析模型工作量=f〔x1,…..,xn〕X1,……Xn,是本钱驱动因素变量。f是一非线性或非乘积的数学模型。16.4软件工程本钱估算1本钱估算方法〔4〕表格模型用表格表示的本钱驱动因素变量与软件开发工作量之间的及本钱驱动因素变量与用来调节工作量估算值的因子之间的关系。〔5〕复合模型是线性、乘积、解析、表格模型的结合,对本钱估算值的每一局部使用最恰当的函数形式,以此来描述本钱驱动变量与软件开发工作量之间的关系。16.4软件工程本钱估算1本钱估算方法2、专家判定就是与一位或多位专家商讨,专家根据自己的经验和对工程的理解对工程的本钱作出估算。最好由多位专家进行估算,并需要采取某种方法合成一个最终的估算值。〔1〕求中值和平均值方法简单,但易于受到极端估算值的影响产生偏差。〔2〕召开小组会议小组讨论,统一或同意某一估算值。能去掉一些极端的估算,但易于受权威人士或能言善变人士的影响。16.4软件工程本钱估算1本钱估算方法〔3〕Delphi技术1948年Rand公司产生的一种预测未来事件的技术,随后作为在联合规划和本钱估算中使专家意见一致的方法。步骤:协调员给每位专家一份软件规格说明和一张记录估算值的表格;专家无记名填写表格,可以向协调员提问,但相互间不能讨论;协调员对专家添在表上的估算进行小结,据此给出估算迭代表,要求专家进行下一轮估算。迭代表上只标明自己的估计,其他估计匿名;专家重新无记名填写表格。该步骤适当的重复屡次,整个过程不得小组讨论。16.4软件工程本钱估算1本钱估算方法〔3〕Delphi技术16.4软件工程本钱估算1本钱估算方法〔4〕WidebandDelphi技术将小组会议和Delphi技术结合。步骤:协调员给每位专家一份软件规格说明和一张记录估算值的表格;专家开会讨论软件产品和任何估算相关的问题;专家无记名填写表格;协调员汇总结果,将结果以估算迭代表形式返回给各个专家,迭代表样式与Delphi技术相同,但不包含书面理由;召开小组会讨论上次估计结果,自愿修改个人估计;如此反复,直到各个专家的估计逐渐接近,到达一个可以接受的范围。16.4软件工程本钱估算1本钱估算方法〔4〕WidebandDelphi技术WidebandDelphi估算过程16.4软件工程本钱估算1本钱估算方法3、类比就是把当前工程和以前作过的类似工程比较,通过比较获得其工作量的估算值。该方法的前提是确定比较因子,即提取软件工程的特性因子作为比较的根底。常见因子有软件开发方法、功能需求文档数及接口数等。类比估算可以在整个工程级和子系统级上进行。类比方法的优点在于估算值是根据某个工程的实际经验得出,可以对这一经验进行研究推断新工程的某些不同之处以及对本钱可能产生的影响。缺点是无法弄清以前工程在多大程度上代表新工程的特征。16.4软件工程本钱估算1本钱估算方法4、自顶向下就是从软件工程的整体出发,根据将要开发的软件工程的总体特性,结合以前完成工程积累的经验,推算出工程的总本钱或工作量,然后按比例分配到各个组成局部中去。优点在于其对系统级的重视。缺点在于难以识别低级别上的技术性困难,并且由于考虑不细致,有时会遗漏所开发软件某些局部。16.4软件工程本钱估算1本钱估算方法5、自底向上就是把待开发的软件逐步细化,直到能明确工作量,由负责该局部的人给出工作量的估算值,然后把所有局部相加,得到总工作量。与自顶向下互补,需要更多精力。优点是较为准确,缺点是易于忽略许多与软件开发有关的系统级本钱,如系统集成、配置管理、质量保证等,所以给出的总估算值偏低。常见的方法:任务单元法。16.4软件工程本钱估算1本钱估算方法任务单元法方案样例软件部分:库存情况更新开发者:Wward日期:2/8/82阶段任务单元人日小计规划和需求需求定义开发计划516产品设计产品设计初步用户手册测试计划63110详细设计详细PDL描述数据定义测试数据和过程用户手册442212编程及单元测试编码单元测试结果61016集成及测试编制文档组装及测试459总计5316.4软件工程本钱估算2本钱估算模型1、模型分类根据模型中变量的依存关系:静态模型与动态模型根据根本变量的多少:单变量模型和多变量模型预测量:被引入到模型中对软件开发过程进行预测的变量。选择和处理预测量是软件估算工作的核心。16.4软件工程本钱估算〔1〕静态单变量模型用同一个根本公式通过同一个预测量来估算所需要的值。C=aLbC:待估算的量,L:预测量,a,b:根据经验得到的参数实例:SEI模型E=1.4L0.93;DOC=30.4L0.9;D=4.6L0.26L:预测的源代码行数,E:工作量,DOC:文本量,D:时间

2本钱估算模型1、模型分类16.4软件工程本钱估算〔2〕静态多变量模型静态多变量模型仍然基于C=aLb公式,但还取决于几个能代表软件开发环境的各种因素的变量,如软件开发方法、用户需求变化情况、内存限制、实际时间等。实例:Boehm开发的COCOMO模型〔3〕动态多变量模型通过多个变量的相互作用对软件过程作出估算。实例:Putnam提出的模型2本钱估算模型1、模型分类16.4软件工程本钱估算静态单变量模型:〔1〕Walston-Felix模型〔2〕Bailey_Basili模型2本钱估算模型2、已有模型16.4软件工程本钱估算静态单变量模型:〔3〕Boehm简单模型〔4〕Doty模型(KLOC>9时适用)2本钱估算模型2、已有模型16.4软件工程本钱估算静态单变量模型:〔5〕Albrecht&Gaffney模型〔6〕Maston,Barnett和Mellichamp模型2本钱估算模型2、已有模型16.4软件工程本钱估算动态多变量模型:从4000多个当代软件工程中收集的生产率数据推导出来2本钱估算模型2、已有模型其中,E是人月或人年为单位的工作量t是以月或年为单位的工程持续时间B是特殊技术因子,随着对测试、质量保证等增加缓慢增加P是生产率参数16.4软件工程本钱估算

3COCOMOⅡ模型COCOMO模型于1981年由Boehm利用加利福尼亚的一个咨询公司的大量工程数据推导出的本钱模型。为适应软件业界的开展,1994年推出COCOMOII。COCOMO模型是一个分层次的系列软件本钱估算模型,包括根本级、中级、详细模型三个子模型。主要采用自底向上的方法进行估算。(ConstructiveCostModel,构造性本钱模型)原始的COCOMO模型都采用相同的形式:E=aSb×EAFS:KLOC计数的软件规模,EAF:工作量调整因子(EffortAdjustmentFactor)∏fia,b:随开发模式〔有机式、半别离式、嵌入式〕变化的因子16.4软件工程本钱估算开发模式ab有机式2.41.05半分离式3.01.12嵌入式3.61.20〔1〕根本COCOMO模型把工作量作为软件程序规模的函数来计算:

E=aSb

S:KLOC计数的软件规模,

a,b:取值如下表。开发时间

t=cEd

c,d:随开发模式改变的因子,取值如下表。开发模式cd有机式2.50.38半分离式2.50.35嵌入式2.50.3216.4软件工程本钱估算〔1〕根本COCOMO模型使用COCOMO模型必须首先确定软件开发模式和软件规模。优点简单易用;缺点不准确,没有考虑开发环境的因素。16.4软件工程本钱估算〔2〕中级COCOMO模型中级COCOMO模型考虑开发环境的因素,引入15个附加预测量,成为本钱驱动量。E=aSb×EAFa,b取值:开发模式ab有机式3.21.05半分离式3.01.12嵌入式2.81.2016.4软件工程本钱估算〔2〕中级COCOMO模型EAF取值:

成本驱动量描述取值很低低一般高很高非常高产品RELY必要的软件可靠性要求0.750.881.001.151.40DATA数据库规模0.941.001.081.16CPLX产品复杂性0.700.851.001.151.301.65计算机TIME执行时间限制1.001.111.30STOR主存限制1.001.061.211.66VIRT虚拟计算机可变性0.871.001.151.301.56TURN计算机响应时间0.871.001.071.15人员ACAP分析员能力1.461.191.000.860.71AEXP应用经验1.291.131.000.910.82PCAP程序员能力1.421.171.000.860.70VEXP虚拟机经验*1.211.101.000.90LEXP编程语言经验1.141.071.000.95项目MODP现代编程经验1.241.101.000.910.82TOOL软件工具使用1.241.101.000.910.83SCED规定的开发进度表1.231.081.001.041.1016.4软件工程本钱估算〔2〕中级COCOMO模型开发时间估算与根本COCOMO模型相同。中级COCOMO模型提供了一个把握工程环境因素的途径,大多数的工程管理考虑的问题可以用其中15个本钱驱动变量来代表。中级COCOMO模型还可以进行部件级估算。16.4软件工程本钱估算〔3〕详细COCOMO模型为提高估算精度,提出该模型。详细COCOMO模型的工作量和开发时间的计算公式和中级COCOMO模型相同,不同之处在于本钱驱动量被分成不同层次且在软件开发的不同阶段被赋予不同的值。引入两种功能:阶段敏感的本钱驱动因素:需求方案和产品设计、详细设计、编码和单元测试、集成测试三层次的产品分级结构:模块、子系统、系统16.4软件工程本钱估算〔3〕详细COCOMO模型估算过程:计算模块规模;计算名义生产率;计算每个模块在每一阶段的名义工作量;模块的名义工作量=〔模块规模×工作量阶段分布百分数〕/名义生产率计算每一模块在每一阶段的工作量=名义工作量×调节因子;计算每一子系统各阶段的名义工作量=各个模块在各阶段工作量之和;计算每一子系统各阶段的工作量=名义工作量×各阶段调节因子求出总的工作量=每一子系统各阶段工作量之和16.4软件工程本钱估算COCOMOII模型主要变化:使用三个螺旋式的生命周期模型:用于估算早期原型工作量的应用组合模型、早期设计模型、后体系结构模型。支持五种工程:根底软件、系统集成、程序自动化生成、应用集成、最终用户编程。使用五个规模因子计算工程规模经济性的幂指数,代替原理的根本、中级、详细分级方法;删除局部本钱驱动因素:虚拟计算机可变性〔VIRT〕、计算机响应时间〔TURN)、虚拟机经验〔VEXP〕、编程语言经验〔LEXP〕、现代编程经验〔MODP〕新增本钱驱动因素:DOCU〔文档编制〕、RUSE〔要求重复使用〕、PVOL〔平台兼容性〕、PEXP〔平台经验〕、LTEX〔语言和工具经验〕、PCON〔人员连续性〕、SITE〔多站点开发〕;改变原有本钱驱动模型的赋值,以适应当前的软件测试技术。16.4软件工程本钱估算4Putnam模型一种自顶向下的宏观估算模型,Putnam模型假设软件工程的工作量分布类似于Rayleigh曲线。1、Rayleigh曲线按照一条典型的Rayleigh曲线来配备人员,在工程开展期间缓慢上升,而在验收时急剧下降。Putnam把该结构引入软件工程的开发中,用Norden-Rayleigh曲线把人力表述为时间的函数,在软件工程的不同生命周期阶段分别使用不同的曲线。16.4软件工程本钱估算4Putnam模型2、Putnam模型的方程〔1〕软件方程S=C×E1/3×t4/3其中,S是以LOC为单位的源代码行数C是技术因子E是以人年为单位的工作量t是以年为单位的消耗时间〔直到产品交付所用时间〕C的取值:复合本钱驱动因子,取决于:总体过程成熟度和管理实践、切实可行的软件工程实践的施行程度、使用的编程语言的层次、软件环境状况、软件小组的技术和经验、应用软件的复杂性等。16.4软件工程本钱估算4Putnam模型2、Putnam模型的方程〔2〕人力增加方程D=E/t3其中,D是被称为人员配备加速度的一个常数把软件方程和人员配备方程联立可以得到工作量计算方程:E=S9/7×D4/7/C9/7另外一个形式:E=S3/(C3×t4)16.4软件工程本钱估算4Putnam模型3、软件工具SLCMSLCM----SoftwareLifeCycleManagement,软件生命周期管理软件是一个以Putnam模型为根底的专用软件费用估算工具美国弗吉尼亚的定量软件管理集团设计16.4软件工程本钱估算5本钱估算步骤1.建立目标帮助建立本钱估算目标的主要因素是软件工程当前所处的生命周期阶段,它大致对应于对软件工程的认识程度和根据本钱估算值而做的承诺程度。16.4软件工程本钱估算5本钱估算步骤2.规划需要的数据和资源把估算看作一个小型工程,初期制定工程方案。具体方法:目的、产品和进度、责任、过程、需要的资源、假定。3.确定软件需求对于估算来说,软件需求说明书的价值由其可检验的程度决定。4.拟定可行的细节尽可能做到软件估算目标所要求的细节。16.4软件工程本钱估算本钱估算步骤5.运用多种独立的技术和原始资料防止任何单一方法的缺点且充分利用其优点。6.比较迭代各个估算值对各估算值比较,分析得到不同估算值的原因,找出可以改进估算的地方,提高估算的准确度。7.随访跟踪收集实际本钱及其进展的数据并将它们与估算值进行比较。16.4软件工程本钱估算6本钱模型的评价1.评价准那么定义、正确性、客观性、复杂性、构造性、…..2.现有模型存在的问题主观因素的存在估算模型样本的有限性Norden-Rayleigh曲线〔基于硬件工程,建立在观测根底上〕估算模型的某些前期假定有悖于软件工程模型之间有矛盾的地方软件工程规模与其工作量的关系问题16.5软件工程进度估算1、基于规模的进度估算〔1〕定额估算法T=Q/(R×S)其中,T表示活动的持续时间,可以用小时、日、周表示Q表示活动的工作量,可以用人月、人天表示R表示人力或设备的数量,可以用人或设备数表示S表示开发〔生产〕效率,以单位时间完成的工作量表示适用于规模比较小的工程16.5软件工程进度估算1、基于规模的进度估算〔2〕经验导出模型D=a×Eb其中,D表示月进度E表示人月工作量a是2---4的参数,b是1/3左右的参数,它们是依赖于工程自然属性的参数。

16.5软件工程进度估算1、基于规模的进度估算已有模型〔1〕Walston_Felix模型〔2〕COCOMO模型

16.5软件工程进度估算1、基于规模的进度估算已有模型〔3〕COCOMO2模型〔4〕Putnam模型

16.5软件工程进度估算2、工程评价技术T=〔O+4M+P〕/6其中,T表示工程历时O是活动〔工程〕完成的最小估算值,最乐观值P是活动〔工程〕完成的最大估算值,最悲观值M是活动〔工程〕完成的最大可能估算值16.5软件工程进度估算3、关键路径法关键路径法----CriticalPathMethod,CPM

杜邦公司开发的技术。是根据指定的网络图逻辑关系进行的单一的历时估算。

步骤:计算每一个活动的单一的、最早和最晚开始和完成日期计算网络图中的最长路径16.6软件工程进度方案进度方案中的概念一种观点:方案是通向工程成功的路线图进度方案是工程方案的核心1、软件工程进度定义进度是对执行的活动和里程碑制定的工作方案日期表。它决定是否到达预期目的,是跟踪和沟通工程进展状态的依据,也是跟踪变更对工程影响的依据。进度安排有两种前提:交付日期确定使用资源确定16.6软件工程进度方案进度方案中的概念2、软件活动定义软件活动定义是一个过程。通过活动定义这一过程可使工程目标表达出来。注:任务分解是面向提交物的活动定义是面向活动的,是对WBS做进一步分解的结果,以便清楚应该完成的每个具体任务或提交物应该执行的活动。16.6软件工程进度方案进度方案中的概念3、活动之间的关系

A、B两种活动之间的关系主要有4种:开始→结束:表示A活动开始的时候,B活动结束开始→开始:表示A活动开始的时候,B活动也开始结束→结束:表示A活动结束的时候,B活动也结束结束→开始:表示A活动结束的时候,B活动开始

结束→开始是最常见的逻辑关系。16.6软件工程进度方案进度方案中的概念4、活动之间关系的依据决定活动之间关系的依据有4种:强制性依赖关系,也称硬逻辑关系软件逻辑关系,是人为的、主观的,也称指定性相关外部依赖关系:工程活动与非工程活动之间的依赖关系里程碑:作为活动排序的一局部,以确保到达里程碑的要求。16.6软件工程进度方案〔1〕制定工程方案的原那么工程方案在工程开始的时候制定,并随着工程的进展不断开展。开始时由于需求模糊,因此考虑的重点放在需要更多知识的地方以及如何去获取这些知识。〔2〕软件工程方案的要素包括目标、合理的概念设计、工作分解结构、规模估计、工作量估计和工程进度安排。进度方案方法1、制定工程方案16.6软件工程进度方案〔3〕软件工程方案的逻辑要点需求分析:把模糊的需求准确化工程的概念设计:工程方案的根底,定义工作分解结构资源配置和进度安排:必须与需求同步更新需求足够清晰时,进行详细设计,制定实现策略并纳入方案充分理解工程各局部后,确定实施细节并在下次方案更新时形成文档在整个工程周期中,工程方案为各种资源配置提供框架进度方案方法1、制定工程方案16.6软件工程进度方案〔4〕软件工程方案周期

进度方案方法1、制定工程方案16.6软件工程进度方案〔5〕软件工程方案的内容工程的目标:描述做什么,为谁做,何时做,以及工程成功结束的标准工作分解结构WBS:把工程分解为可直接操作的元素资源配置:根据经验和相应的原那么,确定各局部需要的资源进度安排:根据资源配置情况和工程的实际背景,制定工程的进度进度方案方法1、制定工程方案16.6软件工程进度方案进度方案方法2、分阶段交付〔1〕必要性由于用户需求的不断变换,早期只对根本功能进行约定,其余问题的约定推迟。在分阶段交付中,软件功能按照其重要程度的顺序进行交付,最重要的功能先交付。分阶段交付没有缩短软件开发的时间,只是降低后期交付的压力。

16.6软件工程进度方案〔2〕分阶段交付过程分阶段交付要求稳定的体系结构、精心的管理和详细的技术方案,能够消除逾期交付、集成失败、软件特征的逐渐增加及客户、经理与开发人员之间的摩擦。使软件到达可交付的质量水平可以防止问题的积累导致交付软件时问题泛滥成灾。进度方案方法2、分阶段交付16.6软件工程进度方案〔3〕如何分阶段即每个阶段都包含哪些软件特征。好的方法是定义每个阶段的主题,然后就主题和用户进行商榷,再根据主题把软件特征分配到各阶段。阶段主题描述1编辑文本编辑器:文本编辑、保存、打印2基本格式字符和基本段落格式3高级格式所见即所得页面布局、屏幕格式等高级格式4实用程序拼写检查、语法检查等实用程序5集成与其他软件的充分集成字处理程序的分阶段交付主题进度方案方法2、分阶段交付16.6软件工程进度方案1.进度安排的整体过程在确定工程的资源〔总本钱和时间〕后,就需要把其分配到工程的各个开发阶段中,即确定工程的进度。可以参考类似工程的经验数据或者公开发表的数据。Griffin进度分解数据项目阶段工作量(%)概念设计3.49详细设计11.05编码和单元测试23.17集成测试27.82软件验证34.47进度方案方法3、进度安排16.6软件工程进度方案工程进度安排的过程如下:〔1〕根据工程总体进度目标,编制人员方案。〔2〕比较所需资源和可获取资源,确定各阶段的初步进度,然后再确定整个工程的初步进度。〔3〕对初步进度方案进行评审,确保方案满足要求,否那么重复上面的步骤。进度安排的详细程度取决于相应的工作分解结构的详细程度,而工作分解结构又取决于工程当前所处阶段与历史经验。进度方案方法3、进度安排16.6软件工程进度方案〔2〕进度中的并行性软件工程的并行性要求进度方案必须确定各任务之间的附属关系、各任务的先后次序和衔接以及各个任务的持续时间,以保证所有的任务都能够按进度完成。进度方案方法3、进度安排16.6软件工程进度方案〔3〕进度安排的方法1〕甘特图〔横道图,GanttChart〕特点:每一任务的完成不以能否继续下一阶段的任务为标准,而是是否交付相应文档和通过评审;清楚说明方案进度,动态反映进展状况;不能表达各任务之间的依赖关系。进度方案方法3、进度安排16.6软件工程进度方案〔3〕进度安排的方法2〕网络图用网络分析的方法编制的进度方案称为网络图。①网络图设G=〔V,E,g〕是一个n阶无回路的有向加权图,其中g是E到非负实数集的函数。假设G中存在两个V的不相交非空子集X、Y,其中对任意的vi∈X,没有一条有向边以Vi为终点;对任意vi∈Y,没有一条有向边以Vi为起点,那么称G是一个网络图,X、Y中的顶点分别称为G的发点和收点。进度方案方法3、进度安排16.6软件工程进度方案3、进度安排〔3〕进度安排的方法2〕网络图②PERT图设G=〔V,E,g〕是一个网络图,假设G中只有一个发点和一个收点,其中加权函数表示为时间函数,那么网络图G称为PERT图〔方案评审图〕。图中有向边表示软件工程的任务,有向边的起点和终点表示任务的开始和结束,对应的权那么表示任务的持续时间。假设存在从节点i到节点j的有向边,那么称i为j的前驱节点,j为i的后继节点。16.6软件工程进度方案3、进度安排〔3〕进度安排的方法2〕网络图③路径与关键路径

路径:从发点开始,按照各个任务的顺序,连续不断的到收点的一条通路称为路径。

关键路径:在各条路径上,完成各个任务的时间之和最长的路径称为关键路径。④PERT图的关键路径

设G是一个PERT图,G中从发点到收点的所有路径中,权最大的路径称为关键路径。16.6软件工程进度方案3、进度安排〔3〕进度安排的方法

2〕网络图⑤关键任务组成关键路径的任务称为关键任务。编制网络方案的重点是找出关键路径,对各个关键任务优先安排资源,挖掘潜力,采取措施,尽量缩短需要的时间;对于非关键路径上的任务可以在不影响完工时间的条件下,抽取适当资源用在关键任务上。⑥任务持续时间Tij:表示节点i和节点j之间有向边表示的任务的持续时间。方法:一点时间估计法、三点时间估计法〔T=(a+4m+b)/6〕。16.6软件工程进度方案3、进度安排〔3〕进度安排的方法2〕网络图⑦任务最早开始时间、最晚开始时间和缓冲时间〔机动时间〕设G=〔V,E,g〕是一个n阶PERT图,其中V={v1,v2,…..vn},且v1、Vn分别为发点和收点,那么对任意Vi〔i=1,2,…N〕分为以下两种情况:任务最早开始时间:V1到Vi的所有路径的权中,最大的权称为以Vi为起点的任务的最早开始时间,记为E〔Vi〕。从左到右顺序计算。E〔V1〕=0E〔Vi〕=MAX〔E〔Vk〕+Tki〕,i∈2,3….nVk是Vi的前驱节点,Tki指Vk与Vi之间的任务持续时间。任务最晚开始时间:最终提交时间记为T,那么以收点Vn为终点的任务的最晚结束时间为T,从右到左计算所有任务最晚结束时间。L〔Vn〕=TL〔Vi〕=MIN〔L〔Vj〕-Tij〕,i∈1,2,3….n-1Vj是Vi的后继节点,Tij指Vj与Vi之间的任务持续时间。缓冲时间:任务的最晚开始时间和最早开始时间的差值。16.6软件工程进度方案3、进度安排〔3〕进度安排的方法2〕网络图⑧网络优化时间优化根据对方案进度的要求,缩短工程完成时间,两种方式:采取技术措施,缩短关键任务的持续时间;采取组织措施,充分利用非关键任务的总时差,合理调配资源,缩短关键任务的持续时间。时间-费用优化研究如何使工程交付时间短、费用少;或者保证交付时间的条件下,减少费用;或者在限制费用的条件下,交付时间缩短。无论那种方式都需要计算最低本钱日程。

16.6软件工程进度方案3、进度安排〔3〕进度安排的方法2〕网络图⑨用网络图安排进度的步骤把工程分解为一些小的软件任务,确定任务之间的逻辑关系;确定任务持续时间、单位时间内资源需要量等根本数据;绘制网络图,计算网络时间和确定关键路径,得到初始进度方案方案;对初始方案进行调整和完善,得到优化的进度方案方案。16.6软件工程进度方案3、进度安排〔3〕进度安排的方法

温馨提示

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

评论

0/150

提交评论