当前位置:首页 > 软件工程导论复习重点总结--很全(第六版)
13.1.1 代码行技术
估算方法:
由多名有经验的软件工程师分别做出估计。
每个人都估计程序的最小规模(a)、最大规模(b)和最可能的规模(m), 分别算出这3种规模的平均值之后,再用下式计算程序规模的估计值:
单位:
LOC或KLOC。 代码行技术的优点:
代码是所有软件开发项目都有的“产品”,而且很容易计算代码行数; 有大量参考文献和数据 。 代码行技术的缺点:
源程序仅是软件配置的一个成分,由源程序度量软件规模不太合理; 用不同语言实现同一个软件所需要的代码行数并不相同; 不适用于非过程性语言。
13.1.2 功能点技术
功能点技术依据对软件信息域特性和软件复杂性的评估结果,估算软件规模。 这种方法用功能点(FP)为单位度量软件规模。 1. 信息域特性
输入项数(Inp)、输出项数(Out)、查询数(Inq)、主文件数(Maf)、外部接口数(Inf) 每个特征根据其复杂程度分配一个功能点数,即信息域特征系数a1,a2,a3,a4,a5 2. 估算功能点的步骤
(1) 计算未调整的功能点数UFP
UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf
(2) 计算技术复杂性因子TCF
技术因素对软件规模的综合影响程度DI:
技术复杂性因子TCF由下式计算:
TCF = 0.65 + 0.01 × DI
因为DI的值在0~70之间,所以TCF的值在0.65~1.35之间。 (3) 计算功能点数FP
FP = UFP × TCF
功能点技术优点:与所用的编程语言无关,比代码行技术更合理。 功能点技术缺点:在判断信息域特性复杂级别和技术因素的影响程度时主观因素较大,对经验依赖性较强。
13.2 工作量估算
13.2.1 静态单变量模型
bE?a?KLOC??fiev是估算变量(KLOC或FP)。
E = A + B × (ev) C 1713.2.2 动态多变量模型
i?1动态多变量模型也称为软件方程式,该模型把工作量看作是软件规模和开发时间这两个变量
的函数。
E=(LOC×B0.333/P)3×(1/t)4
13.2.3 COCOMO2模型(构造性成本模型)
3个层次的估算模型: 应用系统组成模型:这个模型主要用于估算构建原型的工作量,模型名字暗示在构建原型时大量使用已有的构件。
早期设计模型:这个模型适用于体系结构设计阶段。
后体系结构模型:这个模型适用于完成体系结构设计之后的软件开发阶段。
COCOMO2使用的5个分级因素:项目先例性、开发灵活性、风险排除度、项目组凝聚力、过程成熟度
13.3 进度计划
13.3.1 估算开发时间
Brooks规律:向一个已经延期的项目增加人力,只会使得它更加延期。
13.3.2 Gantt图
Gantt图的主要优点:
Gantt图能很形象地描绘任务分解情况,以及每个子任务(作业)的开始和结束时间。 具有直观简明和容易掌握、容易绘制的优点。 Gantt图的3个主要缺点:
不能显式地描绘各项作业彼此间的依赖关系;
进度计划的关键部分不明确,难于判定哪些部分应当是主攻和主控的对象; 计划中有潜力的部分及潜力的大小不明确,往往造成潜力的浪费。
13.3.3 工程网络
工程网络是系统分析和系统设计的强有力的工具。
13.3.4 估算工程进度
计算最早时刻EET使用下述3条简单规则: 考虑进入该事件的所有作业;
对于每个作业都计算它的持续时间与起始事件的EET之和; 选取上述和数中的最大值作为该事件的最早时刻EET。 计算最迟时刻LET使用下述3条规则:
考虑离开该事件的所有作业;
从每个作业的结束事件的最迟时刻中减去该作业的持续时间; 选取上述差数中的最小值作为该事件的最迟时刻LET。
13.3.5关键路径
关键事件:EET=LET
13.3.5 机动时间=(LET)结束-(EET)开始-持续时间
=右下角-左上角-持续时间
13.4 人员组织
13.4.1 民主制程序员组
如果小组内有n个成员,则可能的通信信道共有n(n-1)/2条。
13.4.2 主程序员组
主程序员组的两个重要特性:专业化、 层次性
13.4.3 现代程序员组
13.5质量保证
13.5.1 软件质量
13.5.2 软件质量保证措施
13.6 软件配置管理
基于非执行的测试(复审或评审),主要用来保证在编码之前各阶段产生的文档的质量; 基于执行的测试(软件测试),需要在程序编写出来之后进行,它是保证软件质量的最后一道防线;
程序正确性证明,使用数学方法严格验证程序是否与对它的说明完全一致。 1. 技术复审的必要性
2. 走查:参与者驱动法、文档驱动法
3. 审查:综述 准备 审查 返工 跟踪 4. 程序正确性证明
软件配置管理是在软件的整个生命期内管理变化的一组活动。
具体地说,这组活动用来:①标识变化;②控制变化;③确保适当地实现了变化;④向需要知道这类信息的人报告变化。 软件配置管理的目标:使变化更正确且更容易被适应,在必须变化时减少所需花费的工作量。
13.6.1 软件配置
1.软件过程的输出信息(软件配置项): 计算机程序(源代码和可执行程序);
描述计算机程序的文档(供技术人员或用户使用); 数据(程序内包含的或在程序外的) 2. 基线
基线就是通过了正式复审的软件配置项。
13.6.2 软件配置管理过程
软件配置管理主要有5项任务:
1. 标识软件配置中的对象:基本对象、聚集对象 2. 版本控制 3. 变化控制 4. 配置审计 5. 状态报告
13.7 能力成熟度模型
1. 初始级
软件过程的特征是无序的,有时甚至是混乱的。 2. 可重复级
软件机构建立了基本的项目管理过程(过程模型),可跟踪成本、进度、功能和质量。 3. 已定义级
软件机构已经定义了完整的软件过程(过程模型),软件过程已经文档化和标准化。 4. 已管理级
软件机构对软件过程(过程模型和过程实例)和软件产品都建立了定量的质量目标,所有项目的重要的过程活动都是可度量的。 5. 优化级
软件机构集中精力持续不断地改进软件过程。这一级的软件机构是一个以防止出现缺陷为目标的机构,它有能力识别软件过程要素的薄弱环节,并有足够的手段改进它们。
共分享92篇相关文档