软件工程第2章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.2 软件规模估计
2.2.1 基于LOC的估计 2.2.2 基于FP的估计
2.2.1
基于LOC的估计
基于LOC的估计是根据历史数据或者凭经验与直观判断, 得到一个估计的期望值,这个值又称为三点值,即由三个不同 尺寸值加权平均所得,公式如下:
Sopt 4Sm Spress EV 6
其中Sopt为乐观尺寸,Sm为最可能尺寸,Spress为保守尺寸。 例:某一设计的LOC估计范围为: 乐观值:4600 最可能值:6900 保守值:8600 其基于LOC的估计期望值为 EV=(4600+46900+8600)/6=6800
2.5 人员组织
2.5.1 项目组织机构 2.5.2 程序设计小组的组织
2.5.3 主程序员组
2.5.1
项目组织机构
1、广义组织机构图
2、组织图制作准则
1)合并广义图中相邻的功能,将人员配备少于2FSP的功能合并到相邻的功 能,除非:第一,它代表下属功能的管理;第二,它至少配备0.5FSP以上。 2)如果一个功能有7FSP以上,把它分解成一个管理者和一系列附属功能。 3)把任何管理者的控制面体质在7以下。 4)如果上述准则与经验常识冲突,则使用经验常识。
2.1.2 面向尺寸的特征量
面向尺寸的特征量是在正常的质量与生产率度量的前提下,用 已产生的软件编码的尺寸导出的特征量。
表2.1 面向尺寸的特征量
项目 项目1 项目2 项目3 ┇ 行 12100 27200 20200 工作量 人民币(万元) 文档页数 错误数 24 62 43 16.8 44.0 31.4 ┇ 365 1224 1050 134 321 256 缺陷数 29 86 64 人员数 3 5 6 ┇
2.3 软件成本估计
2.3.1 参数方程法 2.3.2 COCOMO模型
2.3.1
参数方程法
1、静态单变量模型 Walston和Felix模型: E=5.2L0.9 其中E是以人-月为单位的工作量,L是交付源码的千行数。 Doty Associates模型:
MM=5.258I1.057
面向FP模型: E=-13.39+0.0545FP E=60.627.72810-8FP3 E=585.7+15.12FP
2.4 软件项目的调度
2.4.1 项目进度确定 2.4.2 项目调度的技术
2.4.1
项目进度确定
1、COCOMO模型估算 有组织方式: 半独立方式: 嵌 入 式: T=2.5(MM)0.38 T=2.5(MM)0.35 T=2.5(MM)0.32
例:某程序的规模为32000条应交付的源指令,由已开发过类似程序 的内部分析员和程序员承担。该项目属于有组织方式,估算如下: 工作量:MM=2.4(32)1.05=91人-月
2、五类常见特征量: 软件规模:通常以程序的行数、千行数或功能点表示。 开发成本:软件开发与维护所需的资金数(RMB或$)。 开发期限:从开始设计到交付使用所需的时间。 开发工作量:通常以人-月或人-年表示。 软件质量:指开发过程中已检测的缺陷数和产品安装后平 均无故障运行时间。 3、指示器:一个指示器是由一个特征量或一组特征量构成, 能够提供软件开发过程、软件项目或产品自身状态的指示。
20 12 16 4 2
24 15 22 4 2
30 22 28 5 3
24 16 22 4 2
4 5 4 10 7
96 80 88 40 14 318
FP= count-total(0.65+0.01Fi)=372,其中Fi=52
2、分析模型方法
从某一系统的分析模型(数据流程图)得出信息域的值, 然后计算FP特征量。
2)事件最迟时间LET:在不影响工程进度的前提下,该事件可以发生的 最晚时间(图中圆圈内右下角数字为LET)。计算规则如下: 考虑离开该事件的所有作业; 从每个作业结束事件的最迟时间中减去该作业的持续时间; 选取上述差中的最小值作为该事件的最迟时间LET。 例:对于上图中的事件8最迟时间为: LET=min{21-6,20-0}=15 3)机动时间:某一作业可以晚发生或延长期限而不影响整个工期的时间 (写在图中代表该作业箭头下的括号内)。计算方法如下: 机动时间=(LET)结束-(EET)开始-持续时间 例:作业2-4的(LET)结束为6, (EET)开始为2,持续时间3小时, 机动时间=6-2-3=1小时 4)关键路径:网络图中事件最早时间和最迟时间相同的路径。例如上图 中的关键路径为:1-2-3-4-6-8-10-11。
(1)该系统需要可靠的后备及恢复吗? (2)要求数据通讯吗? (3)有分布处理功能吗? (4)性能是关键的吗? (5)该系统将运行在一个现存的重负载的操作环境吗? (6)该系统需要在线数据输入吗? (7)在线数据输入要求输入事务是多屏幕或多个操作的吗? (8)主文件是在线更新的吗? (9)输入、输出、文件和查询是复杂的吗? (10)内部处理是复杂的吗? (11)设计的编码是可再使用的吗? (12)转换和安装包括在设计中了吗? (13)该系统的设计是准备在不同组织的多处安装的吗? (14)该应用的设计是为了方便修改和用户容易使用的吗? 在标度0~5之间确定因子的值
2.2.2
基于FP的估计
1、粗略估计方法 此方法首先要获得估计信息域的估计计数值、加权因子、 FP计数值以及总计计数值。 然后利用公式FP=count-total(0.65+0.01Fi)计算功能点 数量。
表2.4 信息域值 乐观 可能 估计信息域的值 保守 估计计数 权值 FP计数
输入数量 输出数量 查询数量 文件数量 外部接口数量 计数总计
1)事件最早时间EET:该事件可以发生的最早时间(图中圆圈内右上角 数字为EET)。计算规则如下:
考虑进入该事件的所有作业; 对于每个作业都计算它的持续时间与起始事件的EET之和; 选取上述和中的最大值作为该事件的最早时间EET。 例:对于上图中的事件4有两个作业(2-4和3-4),已知事件2的最早时间为2, 作业2-4的持续时间3小时,二者和为2+3;事件3的最早时间为6,作业3-4的持 续时间为0(这是一个虚作业),和为6+0,按照上述三条原则,事件4的最早间 为: EET=max{2+3,6+0}=6
表2.7 工作量及进度的阶段分布(有组织方式)
产品规模 阶 段 工 作 量 小型(2KDSI) 中等(8KDSI) 中大(32KDSI) 大型(128KDSI)
规化和需求
产品设计 程序设计 详细设计 编程单元测试 集成测试
6%
16 68 26 42 16
6%
16 65 25 40 19
6%
16 62 24 38 22
生产率:32000DSI/91人-月=352DSI/人-月
项目期限:T=2.5(91)0.38=14个月 平均人员配备:91人-月/14个月=6.5FSP 其中DSI为应用交付的源指令数,FSP为等价全时软件人员数。
2、工作量与进度的阶段分布
主要讨论一个Fra Baidu bibliotek件项目在不同阶段的工作量、时间及人员数目。
MM=2.8(KLOC)1.20
2、中级COCOMO模型
也有三种方式,并引入了15个开发成本因子,公式基本形式如下:
MM=C.KLOCa. fi
i 1 15
C和a分别代表基本模型中的系数和指数,fi是成本因素,包括产 品因素、计算机因素、人员因素、项目因素等。当fi=1时,中级 模型变为基本模型。 例题:一个嵌入式软件项目,估计有10000条可交付的源指令, 成本因子的乘积为1.35,其工作量为: MM=2.8(10)1.201.35=59人-月
2、动态多变量模型
LOC 3 B.( ) P E t4
又叫Putnam模型,其中E为工作量,单位为人-月,t为项 目期限,单位为月,B为特殊技术因子,P为生产率参数。 该模型的工作量与开发时间的4次方成反比,因此应合理 确定开发最小时间,公式如下:
tmin=8.14(LOC/P)0.43
2.3.2
COCOMO模型
全称为可构造的成本模型(Constructive Cost Model), 简称COCOMO模型 1、基本COCOMO模型
有组织方式。相对较小和简单的软件项目并由小的开发队伍进行。 MM=2.4(KLOC)1.05 半独立方式。中等规模和复杂程度的软件项目,开发队伍有经验。 MM=3.0(KLOC)1.12 嵌入方式。须在一组严格的硬件、软件和操作约束之内进行开发。
2.5.2
程序设计小组的组织
程序设计小组人数不宜太多,以2-8名为宜。因为如果人数太多,则 每个组员所负责开发的程序单元与系统其他部分的界面将是复杂的。 小型的程序设计小组通常采用非正式的组织方式,在这样的小组中, 由全体讨论决定应该完成的工作,并且根据每个人的能力和经验分配适当 的任务。
2.4.2
1、时间条图
项目调度技术
又称Gantt图或横道图,是一个二维图形,横轴表示项目活 动所用时间,纵轴表示项目活动的类别。
优点:能清楚表明各活动的进度情况和工程的工期。 缺点:不能清楚表明工程的关键路径和各工序间的依赖关系。
2、工程网络图
又叫PERT图, 该图是一个有向图, 由节点和有向边组 成。节点表示事件, 有向边表示作业。
由上表可以推导出一些常用的面向尺寸的特征量: 错误数/KLOC 缺陷数/KLOC 元数/LOC LOC/人-月 错误数/人-月 其中元数/LOC和LOC/人-月代表了软件开发成本和软件的生产率。
2.1.3 面向功能的特征量
面向功能的特征量是使 用应用程序交付的功能度 的度量作为规范化值。一 般使用功能点作为面向功 能的特征量的度量。 功能点是根据软件信息 域内的直接度量的量和对 软件复杂程度的估计值计 算出来的。 功能点FP=count-total(0.65+0.01Fi) 根据功能点可以得到一些面向功能的特征量: 错误数/FP 缺陷数/FP 文档页数/FP FP/人-月
第二章 软件工程管理技术
2.1 软件特征量 2.2 软件规模估计 2.3 软件成本估计
2.4 软件项目的调度 2.5 人员组织 2.6 软件质量管理
2. 1 软件特征量
2.1.1 特征量和指示器 2.1.2 面向尺寸的特征量 2.1.3 面向功能的特征量
2.1.1 特征量和指示器
1、特征量的定义(IEEE):一个系统、部件或者过程的 一个给定属性的程度的定量度量。
加权因子 度量参数 用户输入数 用户输出数 用户查询数 文 件 数 外部接口数 总 计 计数 2 9 9 3 2 简单 3 4 3 7 5 一般 4 5 4 10 7 复杂 6 7 6 15 10 =6 =36 =27 =21 =10 100
FP= count-total(0.65+0.01Fi)=107,其中Fi=42
3、插值法估算
当某个软件项目的设计规模不能在表中直接查到时,需要使用插值法 求解。假如(x0,y0)和(x1,y1)是平面坐标系的两点,令(x,y)位于(x0,y0) 和(x1,y1)的连线上。当x0≤x≤x1时,
x x0 y y0 ( y1 y 0) x1 x0
例:设某项目规模为12800DSI,求其程序设计阶段的工作量与进度。 1)先求总工作量与进度: MM=2.4(12.8)1.05=35人-月 T=2.5(35)0.38=9.7个月 2)用插值公式求解编程阶段的工作量和进度百分比m和t。 m=65+((12.8-8)/(32-8))(62-65)=64.4 t=59+((12.8-8)/(32-8))(55-59)=58.2 3)计算编程阶段工作量、进度及人员数。 工作量:0.64 35pm=22pm 进 度:0.582 9.7m=5.6m FSP:22pm/5.6m=4.0FSP
6%
16 59 23 36 25
合
进 度
计
100%
10% 19 63 18 100%
100%
11% 19 59 22 100%
100%
12% 19 55 26 100%
100%
13% 19 51 30 100%
规化和需求 产品设计 程序设计 集成测试 合 计
例:求上例中程序设计阶段的工作量、进度及人员数 工作量:0.62 91pm=56pm 进 度:0.55 14个月=7.7个月 FSP:56pm/7.7m=7.3FSP