1 / 70

第十章

第十章. 软件工程管理. 内容. 软件项目管理过程 软件度量的种类、面向规模和面向功能的度量以及质量度量 LOC 估算和 FP 估算的方法、分解技术和工作量估算的方法 软件成本估算的概念,掌握 COCOMO 成本估算的方法 软件进度安排方法及图形工具 软件项目划分的方式、项目组织的模式的原则和条件. 软件工程管理. 启动与范围定义. 软件项目计划制定. 软件项目实施. 评审与评价. 关闭. 软件工程度量. 决定关闭. 制订过程计划. 需求的确定和协商. 实现计划. 确定需求的满足. 建立和维持度量工作. 供应商合同管理. 关闭活动.

hinto
Download Presentation

第十章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第十章 • 软件工程管理

  2. 内容 • 软件项目管理过程 • 软件度量的种类、面向规模和面向功能的度量以及质量度量 • LOC估算和FP估算的方法、分解技术和工作量估算的方法 • 软件成本估算的概念,掌握COCOMO成本估算的方法 • 软件进度安排方法及图形工具 • 软件项目划分的方式、项目组织的模式的原则和条件

  3. 软件工程管理 启动与范围定义 软件项目计划制定 软件项目实施 评审与评价 关闭 软件工程度量 决定关闭 制订过程计划 需求的确定和协商 实现计划 确定需求的满足 建立和维持度量工作 供应商合同管理 关闭活动 确定可交付制品 可行性分析 实现度量过程 性能的评审与评价 度量过程的计划 估算工作量、进度和成本 需求评审和修订过程 监控过程 完成度量过程 分配资源 控制过程 风险管理 制作报表 评价度量 质量管理 计划管理 软件工程管理知识域主题的本体结构

  4. 管理重于技术原则 不能机械照搬原则 充分理解客户原则 人员少而精原则 效率悬殊原则 目标现实原则 定量管理原则 动态估计原则 周密计划原则 10大风险原则 软件悲观原则 知识管理原则 12条软件工程管理基本原则

  5. 软件度量三大原因(NASA) • 理解并且模仿软件工程处理过程和产品 • 在软件的管理中提供帮助 • 指导软件工程过程改进

  6. 理解软件工程过程的推动力

  7. 理解 主要特征 NASA的经验 组织有什么样的软件费用(资源)特征? 开发活动中的工作量分配——设计、编码、测试和其它活动所需的工作量 每行代码的费用 维护的费用 所需的计算机资源 预期的返工数量 例子10-1 组织有什么样的软件错误特征? 开发和维护中发现的错误的类别和数量 软件的缺陷是在什么时候如何发现的 规格说明中发现的错误的类别和数量 综合测试和系统测试中的通过率和不合格率 例子10-2 组织的源代码增长率(或修改率)与以往经验相比,有什么不同? 开发期间源代码的典型增长率 开发和维护期间源代码的典型修改率 例子10-3 开发的软件数量和工程的持续时间、所需的工作量有什么关系?估算的软件规模和其它主要参数的关系? 生成的代码总行数 将进度看作软件规模的一部分 将费用看作软件规模的一部分 生成的文档的总页数 平均的人员规模 例子10-4 实例的软件特征

  8. 各项活动中的工作量分布(例10.1)

  9. 各类错误的分布(例10.2)

  10. 源代码的增长率(例10.3)

  11. 源代码的修改率(例10.3)

  12. 工作量(以人*月计算)=1.48*(源代码的总行数/1000)0.98工作量(以人*月计算)=1.48*(源代码的总行数/1000)0.98 工程持续时间(以月计算)=4.6*(源代码的总行数/1000)0.26 文档的页数=34.7*(源代码的总行数/1000)0.93 平均的维护费用=0.12*(开发费用) 平均的人员规模=0.24*(工作量)0.73 过程关系实例 (例10.4)

  13. 软件工程过程知识的应用 • 估算工程中的因素,例如费用,进度和人员的分配 • 根据估算的计划跟踪工程的成果 • 作为改进未来工程估计的组织模型

  14. 生命周期 阶段 瀑布模型 从实例得出的估算 (99,000行开发代码) 时间进度(%) 工作量 (%) 完成的里程碑 (月/阶段) 人*月 (分配的工作量/阶段) 设计 编码 测试 35 30 35 30 40 30 8.4 7.2 8.4 60 80 60 每个阶段时间进度和工作量的分布

  15. 跟踪代码增长率

  16. 理解/估算/包装范例

  17. 确定程序的范围 • 组织的度量程序应该包括哪些计划? • 软件生命周期应该包括哪些阶段? • 应该选用哪些工程人员;例如,是否必需秘书、发布的支持和两层或更多层的管理?

  18. 度量程序的三个单元

  19. 提供信息的训练 • 提供所有的数据清楚的描述 • 所有术语的清楚而且精确的定义 • 哪一个人负责提供哪个数据 • 什么时候给谁提供数据

  20. 过程改进的范例

  21. 规则1:为度量程序的费用做好预算 • 组织的规模 • 度量程序包括了的工程的数目 • 度量程序的广度(生命周期的组成部分,度量的数目等等)

  22. 软件度量的费用

  23. 规则2:度量的费用不应该超过软件开发或维护努力的2%规则2:度量的费用不应该超过软件开发或维护努力的2% • 开销包括完成表格的费用,参加会谈,参加讲述度量或技术试验的训练会议和协助工程开发的特征化。 • 尽管开始期间的费用可能高达开发预算的5%,执行一个有效的程序的费用通常不超过1%或2%,不管在组织以内的运作中的工程的数目。

  24. 分析单元关键的活动 • 过程研究的学习(决定要度量什么) • 信息分析(例如,数据的分析和模型的合成) • 工程相互作用(清晰度量的目的,训练开发者,给工程提供反馈) • 包装(生产标准、策略、训练计划并且获取分析过程的评价)

  25. 5个核心度量 • 费用 • 错误 • 处理特征 • 工程动态 • 工程特征

  26. 数据 描述 所有工作量 日期 报告周期的结束日期 总工作量 项目过程中的所有小时数 仅开发活动 每个开发活动的小时数 预设计 建立设计 设计的审阅和审查 编写代码 代码的审阅和审查 测试代码单元 调试 集成测试 验收测试 其他 仅维护活动 每类维护的小时数 改正性维护 完善性维护 适应性维护 其他 每个维护活动小时数 隔离 改变性设计 实现 单元测试和系统测试 验收测试和基准测试 其他 由项目人员直接提供的数据

  27. 费用数据收集总结

  28. 核心错误度量 • 发现错误的日期 • 改正错误的日期 • 隔离和改正错误所需的工作量 • 错误的来源 • 错误类型

  29. 规则3:别期望精确度量错误修正的工作量 • 精力集中于技术活动的程序员说不出引入一个具体的变化所需时间的准确数目 • 表格应该允许他们估计在隔离和改正一个错误所花费的近似时间

  30. 数据 描述 所有修改 汇报的数据错误 年,月和日 改正的数据错误 年,月和日 错误源 需求,规格说明书,设计,编码, 先前的改变,其他 错误的类型 初始化,逻辑/控制,接口,数据,计算性 隔离错误的工作量 小时数的近似值 实现改变得工作量 小时数的近似值 仅维护性修改 修改的类型 改正性,完善性,适应性 修改的数据

  31. 错误数据收集总结

  32. 规则4:别期望找到通用的,精确定义的过程度量规则4:别期望找到通用的,精确定义的过程度量 • 将焦点放在软件度量的过程特征范畴使各种各样的软件工程方法和技术的有效性的研究成为可能 • 过程特征使我们知道在度量程序导出模型和关系或指导改进的时候,哪些工程使用了相关的过程,能分为一组

  33. 核心过程度量 • 开发语言的鉴定 • 使用具体的过程或技术的指示(例如,某一种计算机辅助软件工程(CASE)工具) • 度量研究目的的描述

  34. 规则5:别期望找到过程度量的数据库 • 详细的过程描述不能存储在数据库中 • 重要的过程信息经常记录在文件和报告中 • 如果组织正在研究使用不同测试策略的影响,分析人员必须收集使用不同的技术的后果和成果报告的详细信息

  35. 规则6:理解高层次的过程特征 • 在试图收集先进的过程度量数据前,组织必须对核心过程度量有清晰的理解 • SEL的经验显示最重要的过程特征是程序语言的选择

  36. 数据 描述 开发语言 语言名称:使用百分比 语言名称:使用百分比 … 重要过程的特征(有的话加入) 一线的文本描述(例如:“使用Cleanroom”) 研究的目标 简单地描述与项目有关的度量研究的目标和成果 总结核心的过程特征度量

  37. 过程特征数据收集总结

  38. 工程动态度量 • 需求的改变 • 原始编码的改变 • 原始代码的增长 • 工程特征的预言

  39. 数据 描述 需求的改变 基准的需求规格说明书的所有改变的数量和日期 代码的修改 软件构件的修改的每周的统计值 代码的增长 控制库代码的总行数和构件的总数的每两周的统计值 预期的特征 日期 规模 工作量 估计实现的日期和软件规模的每月的记录 设计结束日期 编码结束日期 测试结束日期 系统实现日期 总的构件数 总的代码行数(新的,重用的,修改的) 总的人月数(技术人员,管理人员,支持服务人员) 项目动态数据

  40. 项目动态数据收集的总结

  41. 工程特征度量 • 开发日期 • 总工作量 • 工程规模 • 部件信息 • 软件分类

  42. 数据 描述 日期 阶段开始日期(年,月和日) 结束日期 需求分析 设计 实现 系统测试 验收测试 清除 维护 项目结束 工作量 总的小时数 项目总的小时数 管理人员 技术人员 支持服务人员(例如:分布),如果适用的话 规模 项目规模(代码行数) 其他(计数) 交付的 开发的 可执行的 注释 广泛地修改的 轻微地修改的 重用的 构件的数目 文档的页数 构件信息 构件规模(代码行数) 构件源 总的 可执行的 新的 广泛地修改的 轻微地修改的 重用的 软件分类 商业的/管理的 科学的/工程的 系统支持的 项目特征数据

  43. 工程特征核心度量 • 交付的文件的总行数——所有的逻辑行,包括注释、空白、可执行文件和不可执行文件 • 开发代码总行数——考虑重用因素的总行数 • 可执行的语句——可执行语句总数 • 注释的行数——注释和空白的总行数

  44. SEL收集四类源代码行数据 • 新的——新单元的代码 • 广泛修改——25%或者更多的代码行被修改的重用单元的代码 • 稍微修改——少于25%的代码行被修改的重用单元的代码 • 一字不差的重用——没有修改而重用的单元的代码

  45. 规则7:指定哪个软件将被度量 • 指定那些软件需要进行规模度量是很重要的。 • 例如,适当地从总体报告中排除被丢弃的原型,测试装备和畅销的软件。

  46. 项目特征数据收集总结

  47. 常用的四种估算方法 • 参照已经完成的类似项目,估算待开发项目的成本和工作量。 • 将大的项目分解成若干小的项目,在估算出每个子项目成本和工作量之后,再估算整个项目。 • 将软件项目按软件生存周期分解,分别估算出软件项目在软件开发各个阶段的工作量和成本,然后再把这些工作量和成本汇总,估算出整个项目的工作量和成本。 • 根据实验或历史数据给出软件项目工作量或成本的经验估算公式。

  48. 面向规模的度量 • 用软件项目的代码行(LOC)数表示软件项目的规模是十分自然和直观的。代码行数可以用人工或软件工具直接测量。几乎所有的软件开发组织都保存软件项目的代码行记录。利用代码行数不仅能度量软件的规模,而且还可以度量软件开发的生产率、开发每行代码的平均成本、文档与代码的比例关系、每千行代码存在的软件错误个数等。

  49. 项目 工作量PM 成本 (美元) 代码行 kLOC 文档 页数Pd 错误 Ne 人数 M aaa-01 24 168 000 12.1 365 29 3 ccc-04 62 440 000 27.2 1224 86 5 fff-03 43 314 000 20.2 1050 64 6 软件项目记录

  50. 计算结果 • Pt = 12.1 kLOC / 24 PM = 504 LOC/PM • Ct = 168 000 美元 / 12.1 kLOC = 13.88美元/LOC • Dt = 365 Pd / 12.1 kLOC = 30.16 Pd/kLOC • EQRt = 29 个 / 12.1 kLOC =2.4个/kLOC

More Related