第六章 工作量估计和进度安排
- 自底向上估计工作量的具体步骤
- 1.确定系统中的程序,并将它们分为简单、中等复杂或复杂(S/M/C)。尽量使用提供的定义或其他项目使用的定义。
- 2.如果存在项目特定的基线,从基线中获得构建S/M/C程序所需的平均工作量。
- 3.如果项目特性的基线不存在,使用项目类型、技术、语言和其他属性来查找过程数据库中类似的项目。使用来自这些项目的数据来定义S/M/C程序的构建工作量。
- 4.如果在过程数据库中没有类似的项目,并且不存在项目特性的基线(即,这个项目涉及到一个新领域或技术),使用通用过程能力基线中S/M/C程序的平均构建工作量。
- 5.使用项目特定的因素来进一步改进S/M/C程序的构建工作量。
- 6.使用S/M/C程序的构建工作量和程序被调用的总次数来获得 总的构建工作量。
- 7.使用能力基线或过程数据库中类似项目中的工作量分布数据来估计其他任务的工作量和总工作量。
- 8.基于项目特定的因素重新改进估计。
- 自顶向下的估计方法步骤
- 1. 获得按照功能点计算的软件规模估计
- 2. 使用类似项目的PCB数据或PDB数据中生产率数据确定项目的生产率级别
- 3. 从生产率和规模估计获得整体的工作量估计
- 4. 使用从PCB获得的工作量分布数据估计各阶段的工作量
- 5. 修正估计,将项目特定因素考虑进去
- 简述项目功能点如何估计
- (1)计算未调整的功能点UFP(unadjusted function points),通过检查和分析软件需求,确定所需的输入、输出、查询、数据文件和界面等5类系统元素的数量和复杂度,然后根据这些数量和复杂度计算各条目的功能点和整个软件的功能点。
- (2)计算技术复杂度因子TCF(Technical Complexity Factor),对14个因子的评估,并将各评估值相加,即可获得技术复杂度因子TCF∈[0,70]
- (3)计算功能点:FP = UFP * (0.65+0.01*TCF)
- (4)如果需要,进行功能点与代码行的转换
- 制定进度计划的步骤是什么?
- (1)定义活动—列出为完成项目的各项须交付任务需执行的各具体项目活动(可跟WBS分解结合进行)
- (2)排序活动—确定各项目活动间的相互关系
- (3)估算活动资源—估算一个项目团队应该使用多少资源(人、设备和原料)来执行项目活动
- (4)估算活动工期—估算要完成各项目活动所需的时间
- (5)制定进度计划—分析活动排序、活动工期和资源需求,创建项目进度表
- (6)控制进度—控制和管理项目进度的变更。包括进度基准(更新)、请求变更、绩效衡量、推荐的纠正措施。
- 如果提供案例描述,简述利用COCOMO模型进行项目工作量估计的基本思路。
- (1) 估计未调整的功能点数
- (2) 计算技术复杂度因子,调整后得出调整后的功能点数
- (3) 将功能点数折算成千行代码行数
- (4) 分析案例描述,将项目进行分类(有机类、半分离类、嵌入式类)
- (5) 查找对应类别的模型系数,将千行代码行数和模型系数a,b,c,d代入基本COCOMO模型即可进行工作量估计
- (6) 如果使用中级COCOMO模型,需要在估计工作量调整因子EAF的基础上,将千行代码行数,模型系数a,b,c,d以及EAF代入中级COCOMO模型即可进行工作量估计
- 常用的工作量估计方法包括________和__________。
- 答案:自底向上的估计方法、自顶向下的估计方法
- 如何评估工作量估计方法的有效性?
- 答案:使用估计工作量与实际工作量进行比较。
- 通常的自顶向下的工作量估计方法估计的基本思想是什么?
- 答案:先进行整体工作量估计,然后根据工作量分布获得各阶段工作量。在进行整体工作量估计的时候,利用生产率=规模(FP)/工作量(人月),从PCB中获得生产率基线,再通过软件规模估计方法估计功能点,即可推出估计的总体工作量。
- 常用_______和________表达软件规模。
- 答案:代码行,功能点。