软件工程估算PPT课件
《软件工程》PPT课件
第一章第四课时
喷泉模型 软件工程的任务与研究范围 软件开发的原则与开发方法
返回
喷泉模型
瀑布模型要求在软件开发的初期就完全确定软件的需求,这在很多 情况下往往是做不到的.螺旋模型试图克服瀑布模型的这一不足.SM 把软件开发过程安排为逐步细化的螺旋周期序列,每经历一个周期, 系统就细化和完善一些.SM每—螺旋周期由六个步骤组成: <1> 确定任务目标: 根据初始需求分析项目计划,确定任务目标、可选 方案和限制.<2>选择对象:对各种软硬件设备、开发方法、技术、 开发工具、人员、开发管理等对象进行选择:并决定软件是进行研 制、购买还是利用现有的.<3>分析约束条件:软件开发的时间、经 费等限制条件.<4>风险分析:评估目标、对象、约束条件三者之间 的联系,列出可能出.现的问题及问题的严重程度等,把最重要的问 题作为尚未解决的关键问题的风险.<5>制定消除风险的方法:应有 详尽的说明和周密的计划,并估计可能产生的后果.依此来开发软件, 为制订下一周期的计划打下基础.<6>制定下一周期的工作计划:在 第一个螺旋周期,确定目标、选择对象、分析约束,通过风险分析制 订消除风险的方法,初步开发原型1,制定系统生存周期计划.
软件工程的任务与研究范围
•软件产品的特点 •软件工程的研究内容与方法 •软件工具与软件支撑环境 •软件管理
软件开发的原则与方法
•软件开发的原则 • 自顶向下与模块结构 •软件开发的方法 •1.非自动形式的系统开发方法 •〔1〕系统流程图〔2〕结构分析法〔3〕结构化设计法 •〔4〕数据结构法〔5〕层次输入——处理——输出方法<HIPO法> • 2.半自动形式的系统开发方法 •〔1〕软件需求工程法〔2〕问题说明语言与分析法 • 3. 自动形式的系统开发方法 〔HOS方法〕:由计算机自动确定规 范、自动分析、自动编程、自动执行与模拟,以规范语言AXES、资 源分配工具RTA为工具.能自动进行分析、设计,工作量少、设计规范, 也能自动进行修改和维护.该方法适用于系统分析和设计.
某软件项目估算培训教材.ppt
项目工作量的估算(Effort)
➢代码行(KLOC)---->工作量(人月)
➢方法2:COCOMA,一种基于代码行的工 作量估算法
E——工作量(人月) S——千源代码行(KLOC) EAF——Effort Adjustment Factor,工作量调整因子 a,b——随开发模式而变化的因子
项目工作量的估算(Effort)
1.21 1.10 1.00 0.90
1.14 1.07 1.00 0.95
1.24 1.10 1.00 0.91 0.82
1.24 1.10 1.00 0.91 0.83
1.23 1.08 1.00 1.04 1.10
项目工作量的估算(Effort)
➢详细COCOMA模型 ➢E=a(KLOC)b ×EAF
❖ 对于一个陌生的领域,这种复杂性和不确定性 会被放大。
❖ 软件规模越大,复杂性越高、不确定性就越大 ❖ 对当前项目的理解程度,缺乏理解,估算甚至
无从下手 ❖ 是否有足够历史数据,没有历史数据,就缺乏
参照物
软件项目估算
• 软件项目估算主要包括三个方面:
1. 规模和工作量的估算 • 确定每个软件功能所执行的一系列软件工 程任务 ,以及每项任务花费的时间
2.8 1.20
项目工作量的估算(Effort)
➢EAF
成本驱动量
描述
产 品
RELY DATA CPLX
必要的软件可靠性要求 数据库规模 产品复杂性
计 算 机
TIME STOR VIRT TURN
执行时间限制 主存限制 虚拟计算机可变性 计算机响应时间
ACAP 分析员能力
人 员
AEXP PCAP VEXP
软件估算ppt
估算方法-功能点
代码需要设计为可复用的吗? 安装方便吗? 操作方便吗?(如启动、备份、恢复等是否高效) 系统是否需要为不同的组织进行设计、开发、安装 在多个地方吗? 系统是否专门设计成适应并支持变化吗?
TPCA SEPG
2019/4/25
37
估算方法-功能点
• 面向功能的软件估算,通过对软件所提供的功
能的度量作为规范化值。 • “功能“不能直接度量,所以引入功能点,允 许以标准单位对软件规模进行度量。 • 说明
功能点是度量软件的一种单位,如同小时用于度量
时间,公里度量距离,属于序数单位。 完全从功能角度出发,与语言等具体技术无关。 提供跟踪和监控项目范围的变化。
估算方法-功能点
信息流动
• 信息从系统边界之外进入 系统
EI: External Inputs ILF:Internal Logical File
TPCA SEPG
2019/4/25
21
估算方法-功能点
信息流动(续)
• 信息从系统边界内 部流向外部
EO: External Outputs
2019/4/25 32
TPCA SEPG
估算方法-功能点
文件类型参照(FTRs)
• 一个FTR表示被一个事务引用的文件类型,它同 时一定是一个内部逻辑文件或外部接口文件 • 例如:
一个外部输入更新一个内部逻辑文件,但是同时引 用一个 “安全性文件”以保证某个用户具有适当 的权限,此时存在两个FTR’s
注:进度和费用可以依据工作量和工资得到
TPCA SEPG 2019/4/25 16
软件项目估算方法
估算方法-概述
软件工程中的软件项目估算教程
制作人: 时间:202X年X月
目录
第1章 简介 第2章 项目估算的基本概念 第3章 项目估算工具与技术 第4章 项目估算实践与案例分析 第5章 项目估算的挑战与解决方案 第6章 总结与展望
●01 第1章 简介
项目估算概述
项目估算是软件工程中非常重要的一环,涉及项目的成 本、时间和资源预测。准确的估算有助于制定合理计划,
专家判断法
依赖专家经验判断 适用于小型项目
类比估算法
参数化估算法
基于类似项目的历史数据 用于大型项目估算
根据参数模型进行估算 适用于复杂项目
自下而上估算法
从细化任务开始估算 适用于详细项目计划
结尾
软件项目估算是软件工程中的关键环节,通过本教程,希望 您能更深入了解项目估算的重要性和方法,提升项目管理能
自动化估算
借助人工智能和大数据技术,实现软件项目估算的自动化
数据驱动决策
基于数据分析结果,提供决策支持,优化项目规划和执行
敏捷方法应用
采用敏捷开发模式,灵活应对项目需求的变化
软件项目估算的价值
软件项目估算是软件工程中的重要环节,它能够帮助管理者、 开发人员和利益相关者更好地理解和规划项目,确保项目按 时交付、在预算内完成,并达到高质量的标准。因此,深入 学习和实践软件项目估算,对提升软件工程水平和项目管理
数据分析工具
Excel - 数据处理和分析 SPSS - 统计分析 Tableau - 数据可视化
敏捷估算方法
游戏形式促进团队合作 通过投票提高估算准确性 专家逐轮评估确定估算值
机器学习应用
分析大量项目数据 预测项目成本、时间和资源需 求 提高估算准确性和效率
总结
软件工程基础第12章PPT课件
▪软件质量的特性:
➢功能性
➢可靠性
➢易使用性
➢效率
17
第17页/共21页
12.6.2 软件质量保证措施
• 软件质量保证是软件工程管理的重要内容。
包括以下措施: ❖应用好的技术方法 ❖测试软件 ❖进行正式的技术评审 ❖标准的实施 ❖ ❖程序正确性证明Байду номын сангаас❖记录、保存和报告软件过程信息
18
第18页/共21页
• 1. 计算最早时刻
• 2. 计算最迟时刻
• 3. 关键路径
12
• 4. 机动时间
第12页/共21页
对图12.1所示的工程中各项任务的进度安排, 可用Gantt图画出:
13
第13页/共21页
1. 开发人员12.4 人员组织 2. 组织机构 • 按课题划分的模式(Project Format) • 按职能划分的模式(Functional Format) • 矩阵形模式(Matrix Format) • 程序设计小组的组织形式有3种:
数为 3。
10
第10页/共21页
12.3 进度计划 12.3.1 Gantt 图
11
第11页/共21页
12.3.2 工程网络技术
• 工程网络技术又 称 PERT(Program Evaluation and Review Te c h n i q u e ) 技 术 , 利用PERT图制定 进度计划。
12.7 软件工程标准与软件文档
12.7.1 软件工程标准
• 1. • 2.软件工程标准的分类 ➢FIPS 135是美国国家标准局发布的《软件文档管理指南》 ➢NSAC-39是美国核子安全分析中心发布的《安全参数显示系统
软件工程估算
软件工程估算什么是软件工程估算?软件工程估算是软件开发过程中的一项重要任务,它旨在预测软件项目的成本、风险和进度。
估算可以帮助项目经理和开发团队制定合理的计划,为项目的成功实施提供依据。
为什么需要软件工程估算?软件工程估算的作用在于提供决策支持和项目管理依据。
通过估算,我们可以预测软件项目的成本和工期,帮助决策者做出合理的决策。
估算结果还可用于项目资源的分配和进度控制,确保软件项目按时按质地完成。
软件工程估算的方法在软件工程估算中,常用的方法包括:1. 参数估算:根据历史数据和经验,将软件开发过程划分为不同的活动,并根据活动的属性和规模,通过参数计算得出估算结果。
2. 类比估算:将正在进行的项目与之前的类似项目进行比较,通过类比的方式得出估算结果。
这种方法适用于没有可供参考的历史数据的项目。
3. 自上而下估算:从项目整体的角度出发,根据项目的总体要求和规模,逐步细化到子任务的估算。
这种方法适用于项目要求已经明确且可细化的情况。
4. 自下而上估算:由具体的任务和工作量出发,逐级汇聚得出项目的估算结果。
这种方法适用于项目要求尚未明确,且需要逐步细化的情况。
不同的估算方法适用于不同的项目情况,项目经理需要根据具体情况选择合适的方法。
软件工程估算中的风险软件工程估算过程中存在一定的风险,主要包括以下几个方面:1. 项目需求变更:项目需求的变更可能导致估算结果不准确,需要及时调整估算。
2. 技术难题:如果项目中存在技术难题,可能导致开发进度延误和成本增加。
3. 人员变动:团队成员的变动可能对估算结果产生影响,特别是核心人员的离职或请假。
4. 外部环境变化:外部环境的变化,如供应商的突然倒闭或政策变动,可能导致项目成本和进度的变化。
为了降低风险,项目经理需要及时跟踪项目的进展和变化,并灵活调整估算。
软件工程估算的工具为了支持软件工程估算,有许多工具可供使用,包括:1. 估算软件:这类软件可以根据输入的项目属性和规模,自动估算结果,并根据历史数据进行校准。
软工概论-第20章软件项目估算ppt课件
精品课件
23
基于用例的估算
用户界面LOC=6*560+((10/12-1)+(6/51))*0.3*560=3365.6
工程子系统LOC=10*3100 +((20/16-1)+(8/81))*0.3*3100=31232.5
基础设施LOC=5*1650+((6/10-1)+(5/61))*0.3*1650=7969.5
Software 软件
Project
项目
Plan
计划
精品课件
6
了解范围 ..……
了解客户的需求 了解商业环境 了解项目边界 了解客户的动机 了解可能变更的路径 了解 ...
即使当你了解了这些 也不能保证什么!
精品课件
7
什么是范围?
软件范围 描述了
将要交付给最终用户的功能和特性; 输入和输出数据; 作为使用软件的结果呈现给用户的“内容” ; 界定系统的性能、约束条件、接口和可靠性。
精品课件
3
项目计划任务集-2
估算成本和工作量
分解问题 使用规模、功能点、过程任务或用例等方法进行两种
以上的估算 调和不同的估算
制定项目进度计划
计划的具体制定过程见第21章。
• 建立一组有意义的任务集 • 定义任务网络 • 使用进度计划工具制定时间表 • 定义进度跟踪机制
精品课件
4
估算
empirically derived
经验常数
通常以人月为 单位来表示所 需的工作量
either a constant or
usually LOC but 通常是LOC may also be 或功能点估 function point 算变量
2024年度软件工程ppt课件完整版
2024/3/24
40
遗留系统现代化改造
遗留系统分析
分析遗留系统的结构、功能和性能等问题。
现代化改造策略
制定针对遗留系统的现代化改造策略,如重 构、替换或集成等。
改造实施与测试
实施改造策略,并对改造后的系统进行测试 以确保其正确性。
2024/3/24
版本迁移与数据迁移
将旧版本的数据迁移到新版本,确保数据的 完整性和一致性。
。
评审测试用例
组织相关人员对测试用例进行 评审,确保测试用例的准确性
和完整性。
执行测试用例
按照测试用例的步骤和预期结 果,执行测试用例并记录测试
结果。
缺陷管理
对发现的缺陷进行记录、跟踪 和修复,确保软件质量。
2024/3/24
25
缺陷跟踪与修复
缺陷记录
详细记录缺陷的描述、重现步 骤、严重程度等信息。
同时引入了风险管理机制。
螺旋模型的主要阶段包括:制 定计划、风险分析、工程实施
和客户评估。
2024/3/24
螺旋模型的优点在于其强调风 险分析和迭代开发,能够及时 发现并解决问题,降低项目风 险。
螺旋模型的缺点在于其需要较 高的项目管理能力和技术水平 ,且可能因为过度关注风险而 忽略其他重要因素。
11
控。
2024/3/24
评估变更影响
对变更请求进行评估, 分析变更对系统范围、 进度和成本等方面的影
响。
处理变更请求
根据评估结果决定是否 接受变更请求,并与相
关干系人进行沟通。
17
更新文档和计划
将批准的变更请求更新 到需求规格说明书中, 并调整项目计划和资源
安排。
04 系统设计与实现
项目管理--软件成本估算概述.ppt
COCOMO模型 (COnstructive COst MOdel)
结构型成本估算模型是一种精确、易于使用 的成本估算方法。在该模型中使用的基本量 有以下几个: DSI(源指令条数)定义为代码的源程序行 数。若一行有两个语句,则算做一条指令。 它包括作业控制语句和格式语句,但不包括 注释语句。KDSI=1000DSI。
中间COCOMO模型则在用LOC为自变量的函 数计算软件开发工作量(此时称为名义工作 量)的基础上,再用涉及产品、硬件、人员、 项目等方面属性的影响因素来调整工作量的 估算。 详细COCOMO模型包括中间CO COMO模型 的所有特性,但用上述各种影响因素调整工 作量估算时,还要考虑对软件工程过程中每 一步骤(分析、设计等)的影响。
专家判定技术
由多位专家进行成本估算 单独一位专家可能会有种种偏见,譬如有乐观的、 悲观的、要求在竞争中取胜的、让大家都高兴的 种种愿望及政治因素等。 最好由多位专家进行估算,取得多个估算值。 有多种方法把这些估算值合成一个估算值。
一种方法是简单地求各估算值的中值或平均值。 其优点是简便。缺点是可能会由于受一、二个 极端估算值的影响而产生严重的偏差。 一种方法是召开小组会,使各位专家们统一于 或至少同意某一个估算值。优点是可以摈弃蒙 昧无知的估算值,缺点是一些组员可能会受权 威或政治因素的影响。
Deiphi技术
标准Deiphi技术 ① 组织者发给每位专家一份软件系统规格说明 书和一张记录估算值的表格,请他们进行估算。 ② 专家详细研究软件规格说明书的内容,对该 软件提出三个规模的估算值,即: ai(最小) mi(可能) bi(最大) 无记名地填写表格
在填表的过程中,专家互相不进行讨论但可以向组织 者提问。 ③ 组织者对专家们填在表格中的答复进行整理: a. 计算各位专家估算的期望值 Ei; b. 对专家的估算结果分类摘要。 专家对此估算值另做一次估算。 ④ 在综合专家估算结果的基础上,组织专家再次无 记名地填写表格。 比较两次估算的结果。若差异很 大,则要通过查询找出差异的原因。
软件项目费用构成及概算方法 ppt课件
二、国内外研究状况--估算方法
贝叶斯分析技术:是允许调查人员根据样本和专家判断的预先信息采用 逻辑相容的方法产生推论,COCOMOII就采用了该技术。
注:L是源代码行数(以KLOC计) 一般将一条机器指令作为一行源代码,如果是汇编语言或者高级
语言程 序,应转换成机器指令源代码行数来考虑。
2021/3/30
18
二、国内外研究现状--模型介绍
Putnam模型: 1978年Putnam提出一种动态多变量模型
――Putnam模型,该模型假定间联
件有关(办法对当时的计算机机时费规定为:ALLLE,3元/小时,IBM PCAT,10元/小时......)
R――是一个比例因子,包括经营管理、固定资产折旧、资料、差旅费 用等综合考虑。软件的质量因素、难易程度也在R的取值中考虑设定。当时 规定的R取值为20%左右。
2021/3/30
21
二、国内外研究现状--国内
19
Ck--是技术状态常数,它反映出“妨碍程序员进展
二、国内外研究现状--模型介绍
COCOMO模型(COnstructive COst MOdel) 最初是在1981年由Barry Boehm提出,软件开发工作量被表示成
估计的代码行数的非线性函数: 是一种精确、易于使用的成本估算方法。 在八十年代成为最通用的参数成本估算模型之一。
软件项目费用概算与成本估算
熊瑞萍 副研究员 广东软件行业协会 副秘书长 广东省Linux应用软件专门委员会 秘书长
第7章软件工程项目估算及详细计划
缺点:
基于过程的估算——自底向上法
该方法是按组件或子功能划分,先对每个组件的工作量 估算,然后总计得到整个项目的规模和工作量。
优点:
估算各个部分准确性高;能提高参与人的责任心;
缺点:
缺少各个子任务之间相互联系所需的工作量,还缺少许多 与软件开发有关的系统级工作量(配臵管理、质量管理、
项目管理等)。所以往往估算值偏低,必须用其他方法进
基于过程的估算——自顶向下法
首先对整个系统进行总工作量估算(根据立项报告或合 同等),再将过程分解为相对较小的活动或任务,再估 算每个任务的规模及完成任务所需的工作量,总工作量 逐步分解到各组成部分的工作量,并考虑开发软件所需 资源、人员、质量保证、系统安装等的工作量。 优点:
估算工作量小,速度快。 对项目中的特殊困难估计不足,估算出来的工作量盲目性 大,有时会遗漏被开发软件的某些部分。
FP法(续)
功能点转化为代码行: C——128LOC/FP C++——53LOC/FP VB——29LOC/FP Java——46LOC/FP VC++——34LOC/FP PL/SQL——13LOC/FP
在转化为代码行数之后,就可以使用IBM模型,对工作量、人员
数量、项目周期等进行估算。IBM模型具体计算公式如下:
和准确度。
用好类比法的前提条件之一是公司要建立起较好的项目
后评价与分析机制
类比法——应用前提
对以前项目规模和工作量的度量是准确的(这一
点是国内大部分软件企业的软肋,做的大都不到 位);
至少有一个以前的项目类型与新项目类似; 新项目的开发周期、使用的开发方法、开发工具
软件工程估算
基于LOC估算的实例
考察一个为机械零件计算机辅助设计应用 而开发的软件包。P342-343
图17-2 LOC方法的估算表
基于FP估算的实例
基于FP估算时,问题分解关注的不是软 件功能,而是信息域的值。项目计划人员 分别对软件的外部输入、外部输出、外部 查询、内部逻辑文件和外部接口文件进行 估算。
软件项目估算
几乎在所有基于计算机的系统中,软件都 是最昂贵的万分。对于复杂的定制的系统, 如果成本估算误差很大,就会使赢利变成 亏损。对于开发者来说,成本超支可能是 灾难性的。
软件项目估算
为得出可靠的成本和工作量估算,有很多选择: 1.把估算推迟到项目的后期进行。 2.根据已经完成的类似项目进行估算。 3.使用比较简单的分解技术,生成项目的成本和 工作量估算。 4.使用一个或多个经验模型来进行软件成本和工 作量的估算。 每种可行的软件成本估算方法,其效果的好坏 取决于估算使用的历史数据。如果没有历史数据, 成本估算也就建立在一个很不稳定的基础上。
分解技术
软件项目估算是一种解决问题的形式,在 多数情况下,要解决的问题非常复杂,不 能作为一个整体考虑。因此,要对问题进 行分解,把它分解成一组较小的问题,再 定义它们的特性。
软件规模估算
软件项目估算的准确性取决于许多因素:(1)计 划人员估算待开发产品规模的正确程度;(2)把规 模估算转换成人员工作量、时间及成本的能 力;(3)项目计划反映软件团队能力的程度;(4)产 品需求的稳定性和支持软件工程工作的环境。 考虑软件规模的估算问题。由于项目估算的准 确程度取决于待完成工作的规模估算,因此,规 模估算是项目计划人员面临的第一个主要挑战。 在项目计划中,规模是指软件项目的可量化的结 果。如果采用直接的方法,规模可以用代码行 (LOC)来测量。如果选择间接的方法,规模可以 用功能点(FP)来表示。
需求与软件估算技术78页PPT
谢谢!
36、自己的鞋子,自己知道紧在哪里。——西班牙
37、我们唯一不会改正的缺点是软弱。——拉罗什福科
xiexie! 38、我这个人走得很慢,但是我从不后退。——亚伯拉罕·林肯
39、勿问成功的秘诀为何,且尽全力做你应该做的事吧。——美华纳
Hale Waihona Puke 40、学而不思则罔,思而不学则殆。——孔子
需求与软件估算技术
36、“不可能”这个字(法语是一个字 ),只 在愚人 的字典 中找得 到。--拿 破仑。 37、不要生气要争气,不要看破要突 破,不 要嫉妒 要欣赏 ,不要 托延要 积极, 不要心 动要行 动。 38、勤奋,机会,乐观是成功的三要 素。(注 意:传 统观念 认为勤 奋和机 会是成 功的要 素,但 是经过 统计学 和成功 人士的 分析得 出,乐 观是成 功的第 三要素 。
2023修正版软件工程估算[1]
软件工程估算软件工程估算1. 背景介绍软件工程估算是软件开发过程中非常重要的一环,它通过对软件项目的需求、规模、复杂度等进行评估和估计,以确定项目的时间、人力和成本等资源需求。
正确的估算可以帮助项目管理者和开发团队合理规划和安排资源,并最大程度地提高开发的效率和质量。
2. 软件工程估算的方法2.1. 功能点估算功能点估算是一种常用的软件工程估算方法,它基于对软件系统功能点数量的估计来评估项目的规模和工作量。
功能点估算通常分为两个阶段:需求阶段和设计阶段。
在需求阶段,开发团队通过对需求文档的分析,确定软件系统的功能点,并结合数据字典、用例图等工具进行量化和分类。
在设计阶段,开发团队将功能点进一步细化,评估每个功能点的复杂度。
在功能点估算中,通常使用以下公式进行计算:plntext工作量 = 功能点数量×人均工作量其中,人均工作量可以根据历史数据和经验进行估计。
2.2. 基于类比的估算基于类比的估算是一种相对简单和直观的软件工程估算方法,它通过将当前项目与之前已完成的类似项目进行比较,利用历史数据进行估算。
在基于类比的估算中,需要选择合适的参考项目进行比较,通常需要考虑项目的规模、复杂度、技术难度等因素。
通过对参考项目的工作量和成本进行分析,可以得出一个估算值,并根据当前项目的特点进行调整。
基于类比的估算方法可以借助一些工具和技术,如专家判断、统计分析等。
3. 软件工程估算的挑战3.1. 不确定性软件工程估算涉及到一系列的不确定因素,例如需求变更、技术难题、人力调整等。
这些不确定因素对估算结果的准确性和稳定性造成了挑战。
在估算过程中,需要预留一定的调整余地,考虑到不确定因素的可能性和影响程度。
同时,及时跟踪和监控项目的进展和变化,及时进行调整和优化。
3.2. 缺乏历史数据软件工程估算需要依赖历史数据进行参考和比较,但是在某些情况下,缺乏可靠的历史数据,这给估算带来了困难。
为了解决这个问题,可以采用其他项目数据的适当转换和调整,或者借助专家意见和判断进行估算。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
估算
❖ 如果有经验并遵循系统化的方法,使用 可靠的历史数据进行估算,利用至少两种 不同的方法创建估算数据点,制定现实的 进度表并随着项目的进展不断进行调整, 则可以确信已经为项目做了最好的估算。
估算
❖软件项目管理从一组统称为项目策划的活 动开始。在项目可以开始前,项目经理和 软件团队必须估算将要完成的工作、所需 的资源,以及从开始到完成所需要的时间。 这些活动一旦完成,软件团队就要制定项 目碑,确定每一项任务 的负责人,详细指明对项目进展影响很大 的任务间的相互依赖关系。
软件范围和可行性
❖软件范围描述了将要交付给最终用户的功 能和特性、输入和输出的数据、使用软件 时要呈现给用户的“内容”,以及界定系 统的性能、约束条件、接口和可靠性。定 义范围可以使用两种方法: 1、在与所有共利益者交流之后,写出对 软件范围的叙述性描述。 2、由最终用户开发一组用例。
软件范围和可行性
可复用软件资源
❖基于构件的软件工程强调可复用性,即创 建并复用软件构造块,这种构造块通常被 称为构件。为了容易引用,必须对这些构 件进行分类;为了容易应用,必须使这些 构件标准化;为了容易集成,必须对这些 构件进行确认。
可复用软件资源
❖[BEN92]建议在制定计划时应该考虑以 下四种软件资源。
软件工程
第17章 估算
主要内容
❖对估算的观察 ❖项目策划过程 ❖软件范围和可行性 ❖资源 ❖软件项目估算 ❖分解技术 ❖经验估算模型 ❖面向对象项目的估算 ❖小结
估算
❖软件的真实需求已经确定;共利益者们都 已就绪;软件工程师准备开始;项目将要 启动。但是如何进行下去呢?软件项目计 划包括五项主要活动——估算、进度安排、 风险分析、质量管理计划和变更管理计划。 本章考虑估算——尝试确定构造一个特定 的基于软件的系统或产品所需要花费的资 金、工作量、资源及时间。
估算
❖软件项目经理——利用从共利益者和软件工程 师那里获得的信息以及从以往项目收集的软件度 量数据。 ❖估算首先要描述产品的范围。然后,将问题分 解为一组较小的问题,再以历史数据和经验为指 南,对每个小问题进行估算。在进行最终的估算 之前,要考虑问题的复杂度和风险。 ❖工作产品是生成一个简单的表,描述要完成的 任务、要实现的功能,以及完成每一项所需的成 本、工作量和时间。
资源
图17-1 项目资源
人力资源
❖计划人员首先评估软件范围,并选择完成开 发所需的技能,还要指定组织中的职位和专 业。对于一些比较小的项目,只要向专家做 些咨询,也许一个人就可以完成所有的软件 工程任务。而对于一些较大的项目,软件团 队的成员可能分散在很多不同的地方,因此, 要详细说明每个人所处的位置。 ❖只有在估算出开发工作量后,才能确定软件 项目需要的人员数量。
对估算的观察
❖估算是一门艺术,更是一门科学,这项重要 的活动不能以随意的方式来进行。现在已经 有了估算时间和工作量的实用技术。过程度 量和项目度量为定量估算从历史角度提供了 依据和有效的输入。当建立估算和评审估算 时,过去经验的辅助作用是不可估量的。由 于估算是所有其他项目策划活动的基础,而 且项目计划又提供了通往成功的软件工程的 路线图。因此,没有估算就着手开发,将陷 入盲目性。
对估算的观察
❖对软件工程工作的资源、成本及进度进行估算 时,需要经验,需要了解有用的历史信息,还要 有当只存在定性的信息时进行定量预言的勇气。 估算具有与生俱来的风险,正是这种风险导致了 不确定性。 ❖历史信息的有效性对估算的风险有很大影响。 通过回顾过去,能够仿效做过的工作,并改进出 现问题的地方。如果能取得对以往项目的全面的 软件度量,做估算就会有更大的保证,合理安排 进度以避免重走过去的弯路,总体风险也会降低。
❖一旦确定了软件范围,人们自然会问: 我们能够开发出满足范围要求的软件吗? 这个项目可行吗?软件工程师常常匆忙越 过这些问题,不料竟会一开始就注定要陷 入这个项目的泥潭中。
资源
❖项目策划的第二个任务是对完成软件开发工 作所需的资源进行估算。图17-1描述了三类 主要的软件工程资源——人员、可复用的软 件构件及开发环境。对每一类资源,都要说 明以下四个特征:资源的描述、可用性说明、 何时需要资源、使用资源的持续时间。最后 两个特性可以看成是时间窗口。对于一个特 定的时间窗口,必须在开发初期就建立资源 的可用性。
❖在开始估算之前,首先要对范围陈述中 描述的功能进行评估,在某些情况下,还 要进行细化,以提供更多的细节。由于成 本和进度的估算都是面向功能的,因此某 种程度上的功能分解常常是有用的。性能 方面的考虑包括处理时间和响应时间的需 求。约束条件则标识了外部硬件、可用存 储,或其他现有系统对软件的限制。
软件范围和可行性
对估算的观察
❖估算的风险取决于对资源、成本及进 度的定量估算中存在的不确定性。如 果对项目范围不太了解,或者项目需 求经常改变,不确定性和估算风险就 会非常高。计划人员,尤其是客户, 都应该认识到经常改变软件需求意味 着在成本和进度上的不稳定性。
项目策划过程
❖软件项目策划的目标是提供一个能使管理 人员对资源、成本及进度做出合理估算的 框架。此外,估算应该尝试定义“最好的 情况”和“最坏的情况”,使项目的结果 能够限制在一定范围内。项目计划是在计 划任务中创建的,尽管它具有与生俱来的 不确定性,软件团队还是要根据它着手开 发。因此,随着项目的进展,必须不断地 对计划进行调整和更新。
估算
❖很多技术工作者宁愿从事技术工作,而不愿花 费时间制定计划。很多技术管理者没有接受过充 分的技术管理方面的培训,对他们的计划能够改 善项目成果缺乏信心。这两部分人都不想制定计 划,因此就经常不制定计划。 ❖但是没有很好地制定计划是一个项目犯的最严 重的错误之一……有效的计划是必需的,可以在 上游以较低的成本解决问题,而不是在下游以较 高成本解决问题。一般的项目要将80%的时间 花费在返工上——改正在项目早期所犯的错误。