软件工程复习——第十三章

1)估算软件规模(重点)

a.代码行技术

每个人都估计程序的 最小规模 (a) 最大规模 (b) 最可能的规模 (m) ,分别算出这三种规模的平均值 a,b m 之后,再用下式计算 程序规模 的估计值:

用代码行技术度量软件规模时,当程序较小时常用的单位是 代码行数 (LOC) ,当程序较大时常用的单位是 千行代码数 (KLOC)

b.功能点技术

功能点技术定义了信息域的 5 个特性 ,分别是输入项数 ( Inp ) 、输出项数 (Out) 、查询数 ( Inq ) ,主文件数 ( Maf ) 和外部接口数 ( Inf )

计算步骤:

1)计算未调整的功能点数UFP(Unadjusted Function Points)

首先,把产品信息域的每个特性 ( Inp Out Inq Maf Inf ) 都分类成 简单级 (simple) 、平均级 (average) 或复杂级 (complex) 。根据其等级,为每个特性都分配一个功能点数。
然后,用下式计算未调整的功能点数 UFP

  UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf。其中,ai(1≤i≤5)是信息域特性系数,其值由相应特性的复杂级别决定。

(2)计算技术复杂性因子TCF(Technical Complexity Factors)

这一步将度量 14 种技术因素 对软件规模的影响程度。在表 13.2 中列出了全部技术因素,并用 F i (1≤i≤14) 代表这些因素。根据软件特点,为每个因素分配一个从 0 5 的值。
0: 无影响; 1 :偶然; 2 :适中; 3 :普通; 4 :重要; 5 :极重要
然后,用下式计算技术因素对软件规模的 综合影响程度 DI (Degree of Influence)

技术复杂性因子 TCF 由下式计算:

TCF=0.65+0.01×DI


3)计算功能点数FP

功能点数 FP 由下式计算:

  FP=UFP(未调整的功能点数)×TCF(技术复杂性因子)

功能点数与所用的 编程语言无关 ,因此,功能点技术比代码行技术 更合理一些 。但是,在判断信息域特性复杂级别及技术因素的影响程度时,存在相当大的 主观因素

2)工作量估算(重点)

a.静态单变量模型

E=A+B×(ev)C

p 其中, A B C 是由经验数据导出的常数, E 是以人月为单位的工作量, ev 是估算变量 (LOC FP)

b.动态多变量模型

E=〔LOC×B0.333/P〕3×(1/t)4

其中, E 是以人月或人年为单位的工作量;
t 是以月或年为单位的项目持续时间;
B 特殊技术因子 (specialskills factor)
P生产率参数(productivity parameter)

c.COCOMO II模型

p 其中 E 是开发工作量 ( 以人月为单位 ) a b 是模型系数, KLOC 是估计的代码行数 ( 以千行为单位 ) f i ( i =1 17) 是成本因素。

3)进度计划(重点)

a.甘特图

优点:
直观简明 容易掌握 容易绘制
缺点
不能显式地描绘各项作业彼此间的依赖关系;
进度计划的关键部分不明确,难于判定哪些部分应当是主攻和主控的对象;
计划中有潜力的部分及潜力的大小不明确,往往造成潜力的浪费。

b.工程网络



工程网络是制定进度计划时另一种常用的图形工具,它同样能描绘任务分解情况以及每项作业的开始时间和结束时间,此外,它还显式地描绘各个作业彼此间的依赖关系。因此,工程网络是系统分析系统设计的强有力的工具。

在图 13.2 中还有一些虚线箭头,它们表示 虚拟作业 (dummyactivities) ,也就是事实上并不存在的作业。引入虚拟作业是为了显式地表示作业之间的 依赖关系
注意,虚拟作业既不消耗资源也不需要时间。

c.估算工作进度——在工程网络上增加信息

首先,把每个作业估计 需要使用的时间 写在表示该项作业的箭头上方。注意,箭头长度和它代表的作业持续时间没有关系,箭头仅表示依赖关系,它上方的数字才表示作业的持续时间。
其次,为每个事件计算下述两个统计数字: 最早时刻 EET 最迟时刻 LET 。这两个数字将分别写在表示事件的圆圈的右上角和右下角,如图 13.3 左下角的符号所示。

事件的最早时刻 EET 是该事件可以发生的最早时间。
通常工程网络中 第一个事件的最早时刻 定义为零,其他事件的最早时刻在工程网络上从左至右按事件发生顺序计算。
计算最早时刻 EET 使用下述三条简单规则:
考虑进入该事件的所有作业;
对于每个作业都计算它的持续时间与起始事件的 EET 之和;
选取上述和数中的最大值作为该事件的最早时刻 EET

事件的 最迟时刻 是在不影响工程竣工时间的前提下,该事件最晚可以发生的时刻。
按惯例, 最后一个事件 ( 工程结束 ) 的最迟时刻就是它的最早时刻。其他事件的最迟时刻在工程网络上从右至左按逆作业流的方向计算。
计算最迟时刻 LET 使用下述三条规则:
考虑离开该事件的所有作业;
从每个作业的结束事件的最迟时刻中减去该作业的持续时间;
选取上述差数中的最小值做为该事件的最迟时刻 LET

关键路径:在图中用粗线表示 必须准时完成

机动时间:

机动时间=(LET)结束-(EET)开始-持续时间



----------以下内容朴勇明确说不考了----------------


4)人员组织

民主制程序员组——基本概念:无私编程

主程序员组

现代程序员组——实际的主程序员应该由两个人来担任:一个技术负责人(teamleader),负责小组的技术活动;一个行政负责人(team manager),负责所有非技术的管理决策。

分散决策——结合二者


5)质量保证

软件质量就是软件与明确地和隐含地定义的需求相一致的程度

影响软件质量的三种倾向:

产品运行(productoperation),产品修改(productrevision)和产品转移(producttransition)

主要措施

基于非执行的测试 ( 复审 / 评审 ) 、基于执行的测试 ( 测试 ) 程序正确性证明。

正式技术复审实际上是一类复审方法,包括走查(Walkthrough)和审查(Inspection)等具体方法。

走查:参与者驱动法、文档驱动法

审查:综述、准备、审查、返工、跟踪


6)软件配置管理

软件配置管理是在软件项目启动时就开始,并且一直持续到软件退役后才终止的一组跟踪和控制活动。

软件配置管理的目标是,使 变化更容易被适应 ,并且在必须变化时减少所需花费的工作量。

软件配置管理主要有五项任务:标识、版本控制、变化控制、配置审计和报告。

7)能力成熟度模型(随便看看吧。。。)

8)风险管理

主要目标:预防风险

采用建立风险条目检查表的方法,人们可以集中精力识别下列已知的和可预测的风险。

风险有两个显著特点。
不确定性 :标志风险的事件可能发生也可能不发生,也就是说,没有 100% 发生的风险 (100% 发生的风险是施加在软件项目上的约束 )
损失 :如果风险变成了现实,就会造成不好的后果或损失。

风险分类:

1. 按照风险的影响范围分类
项目风险
技术风险
商业风险
2. 按照风险的可预测性分类
已知风险
可预测的风险
不可预测的风险

风险预测 ( 也称为风险估算 ) 试图从两个方面来评估每个风险: 风险变成现实的可能性或概率 ,以及当风险变成现实时所 造成的后果 。四个方面:性能、支持、成本、进度 四个等级:可忽略的、轻微的、严重的和灾难性的。

如果 性能下降、成本超支、支持困难或进度延迟 ( 或这 4 种因素的组合 ) 超过了预先定义的限度,则因风险过大项目将被迫终止。

一个有效的策略应该包括下述三方面的内容:风险避免 ( 或缓解 ) ;风险监控;风险管理和意外事件计划。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值