1 / 38

软 件 工 程

软 件 工 程. 第 5 章  软件项目计划. 第 5 章  软件项目计划. 5.1 对估算的观察 5.2 项目计划目标 5.3 软件范围 5.4 资源 5.5 软件项目估算 5.6 分解技术 5.7 经验估算模型 5.8 自行开发或购买的决策 5.9 自动估算工具 5.10 小结. 5.1 对估算的观察. 项目复杂性对计划中固有的不确定性具有重大影响。 项目规模是另一个影响估算准确性的因素。 风险是由为资源、成本及进度建立的定量估算中存在的不确定性来测量的。. 5.2 项目计划目标.

selma
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. 软 件 工 程 第5章  软件项目计划

  2. 第5章  软件项目计划 5.1 对估算的观察 5.2 项目计划目标 5.3 软件范围 5.4 资源 5.5 软件项目估算 5.6 分解技术 5.7 经验估算模型 5.8 自行开发或购买的决策 5.9 自动估算工具 5.10小结

  3. 5.1 对估算的观察 项目复杂性对计划中固有的不确定性具有重大影响。 项目规模是另一个影响估算准确性的因素。 风险是由为资源、成本及进度建立的定量估算中存在的不确定性来测量的。

  4. 5.2 项目计划目标 软件项目计划的目标是提供一个框架,使得管理者能够对资源、成本及进度进行合理的估算。估算是软件项目开始时在一个限定的时间框架内所做的,并随着项目的进展而不断更新。 项目计划的目标是通过一个信息发现的过程实现的,该过程最终导致能够进行合理的估算。

  5. 5.3 软件范围 确定软件范围是软件项目计划的第一个活动。 软件范围描述了将被处理的数据和控制、功能 、性能、约束条件、接口、可靠性。一个软件 范围的陈述必须是有边界的。

  6. 功能、性能及约束 必须放在一起评估

  7. 软件会与基于计算机的系统的其他组成成分之间进行交互。计划者考虑每一个接口的性质和复杂性,以确定它们对开发资源、成本及进度的影响。接口的概念是指:软件会与基于计算机的系统的其他组成成分之间进行交互。计划者考虑每一个接口的性质和复杂性,以确定它们对开发资源、成本及进度的影响。接口的概念是指: (1)运行软件的硬件(如处理器、外设)及不直接由软件控制的设备(如机器、显示器) (2)已有的且必须与新软件连接的软件(如数据库访问例程、可复用软件构件、操作系统)

  8. 接口的概念 (3)通过键盘或其他I/O设备使用软件的人 (4)在软件之前或之后共同作为一个顺序操作系列的程序,在每种情况下,通过接口传送的信息必须能被清楚地理解。

  9. 5.4 资源 人员 可复用构件 硬件/软件工具 项目资源 软件计划的第二个任务是估算完成软件开发工作所需的资源

  10. 5.4.2 可复用软件资源 四种软件资源分类是: • 可直接使用的构件 • 具有完全经验的构件 • 具有部分经验的构件 • 新构件

  11. 5.4.3 环境资源 • 支持软件项目的环境,通常被称为软件工程环境(software engineering environment,SEE),集成了硬件及软件两大部分

  12. 5.5 软件项目估算 为得到可靠的成本及工作量估算,有以下几种选择: • 1.将估算拖延到项目的最后阶段 • 2.基于已经完成的类似的项目进行估算 • 3.使用简单的“分解技术”来进行项目成本及工作量的估算 • 4.使用一个或多个经验模型进行软件成本及工作量的估算

  13. 经验估算模型可用下面形式表示: d=f(vi) 其中:d是要估算的值(如工作量、成本、项目持续 时间) Vi是选择出来的独立参数(如被估算的LOC或FP)

  14. 5.6 分解技术 软件项目估算是一种解决问题的形式。在大多数情况下,如果将待解决的问题(即为软件项目建立一个成本及工作量估算)作为一个整体来考虑则太过复杂了。因此,我们要分解问题,把问题重新划分成一组较小的(也更易管理的)问题。

  15. 5.6.1软件规模估算 软件项目估算的准确性取决于若干因素: (1)计划者适当地估算待建造产品的规模的程度 (2)把规模估算转换成人的工作量、时间、及成本的能力 (3)项目计划反映软件项目组能力的程度 (4)产品需求的稳定性及支持软件工程工作的环境

  16. 四种估算问题规模的方法: • “模糊逻辑”法 • 功能点法 • 标准构件法 • 修改法

  17. 5.6.2 基于问题的估算 估算变量(规模)的期望值—EV 乐观值(Sopt)、可能值(Sm)、及悲观值(Spess)估算的加权平均值来计算: EV=(Sopt+4Sm+Spess)/6 其中给予“可能值”估算以最大的权重,并遵循β概率分布。

  18. 5.6.3一个基于LOC估算的例子

  19. 5.6.4一个基于FP估算的例子

  20. 最后,得出FP的估算值: FPestimated=总计数值×[0.65+0.01×ΣFi] FPestimated=375

  21. 5.6.5 基于过程的估算 估算一个项目的最常用的技术是基于使用的过程进行估算,即,将过程分解为相对较小的活动或任务,再估算完成每个任务所需的工作量。

  22. 5.6.6 一个基于过程估算的例子

  23. 估算之间差别很大的两个原因: 1.项目的范围未能被充分理解,或被计划者误解 2.基于问题的估算技术中所使用的生产率数据对于该应用是不合适的,或是太陈旧了(因为它已经不能正确地反映组织的情况),或是被误用了

  24. 5.7.1 估算模型的结构 一个典型的估算模型是通过对以前的软件项目中收集到的数据进行回归分析而导出的。其总体结构具有下列形式: E=A+B×(ev)C A、B和C是由经验导出的常数 E是以人月为单位的工作量,而ev则是估算变量(LOC或FP)

  25. 在文献中提出了许多面向LOC的估算模型: • E= 5.2×(KLOC)0.91 Walston-Felix模型 • E=5.5+0.73×(KLOC)1.16Bailey-Basili模型 • E=3.2×(KLOC)1.05 Boehm的简单模型 • E=5.288×(KLOC)1.047 Doty模型,在KLOC >9的情况下

  26. 同样,也提出了许多面向FP的估算模型。主要包括:同样,也提出了许多面向FP的估算模型。主要包括: • E=-13.39+0.0545FP Albrecht和Gaffney模型 • E=60.62×7.728×10-8FP3 Kemerer模型 • E=585.7+5.12FP Maston、Barnett和 Mellichamp模型

  27. 5.7.2 COCOMO模型(构造性成本模型) COCOMO模型着重于应用组装模型、早期设计阶段模型和体系结构后阶段模型这三个领域。

  28. 5.7.3 软件方程式 • 估算模型具有以下形式: • E=[LOC×B0.333/P]3×(1/t4) • E为以人月或人年为单位的工作量 • t为以月或年表示的项目持续时间 • B为“特殊技能因子” • P为“生产率参数”

  29. P 反映了: • 总体的过程成熟度及管理水平 • 良好的软件工程实践被使用的程度 • 使用的程序设计语言的级别 • 软件环境的状态 • 软件项目组的技术及经验 • 应用的复杂性

  30. 最小开发时间被定义为: • tmin=8.14(LOC/PP)0.43,以月表示,对于tmin>6个 月的情况(5.4a) • E=180Bt3,以人月表示,对于E≥20的情况(5.4b) 注意等式(5.4b)中的t是以年表示的。

  31. 对软件使用等式(5.4)时,P=12000(对科学计算软件的推荐值):对软件使用等式(5.4)时,P=12000(对科学计算软件的推荐值): • tmin=8.14(33,200/12,000)0.43 • tmin=12.6个月 • E=180×0.28×(1.05)2 • E=58个人月

  32. 5.8 自行开发或购买的决策 1.建立所需软件的功能及性能规约,定义任何可能的可测量特性。 2.估算内部开发的成本及交付日期 3a.选择三到四个最符合你的需求的候选软件 3b.选择能够有助于建造所需软件的可复用软件构件

  33. 5.8 自行开发或购买的决策 4.建立一个比较矩阵,对关键功能进行仔细比较。或者,进行基准测试,以比较候选软件。 5.根据以前产品的质量、开发商的支持、产品的方向、以及其名声,来评估每个候选软件包或构件。 6.联系该软件的其他用户并询问其意见。

  34. 5.8.1 创建决策树 前述步骤可以使用统计技术如决策树分析来进行扩充。 沿决策树的任一分支进行计算,得到成本的预期值如下: 预期成本=Σ(路径概率)ⅰ×(估算的路径成本)i 其中,i是决策树的某个路径。

  35. 5.8.2 外包 • 在概念上,外包是非常简单的。软件工程活动被承包给第三方厂商,他们能够以较低的成本和较高的质量来完成这项工作。公司内部需要做的软件工作已经降至仅仅是合同管理活动

  36. 5.9 自动估算工具 完成6个功能: 1.项目规模估计 2.选择项目活动 3.预测人员层次 4.预测软件工作量 5.预测软件成本 6.预测软件进度

  37. 5.10小结 • 软件项目计划者在项目开始之前必须先估算三件事:需要多长时间、需要多少工作量、以及需要多少人员。此外,计划者必须预测所需要的资源(硬件及软件)和包含的风险。

More Related