【软件工程】软件工程知识点提纲8
- 1. 软件规模的度量和估算
-
- 1.1 代码行技术
- 1.2 功能点技术
- 2. 软件工作量估算
-
- 2.1 分解技术
- 2.2 经验模型
- 3. 工作量估算
- 4. 进度计划
-
- 4.1 估算开发时间
- 4.2 Gantt图
- 4.3 工程 络
- 4.4 估算工程进度
- 4.5 关键路径
- 4.6 机动时间
- 5. 软件人员组织
- 6. 软件质量保证
- 7. 软件配置管理
1. 软件规模的度量和估算
代码行技术、功能点技术
1.1 代码行技术
为了使得对程序规模的估计值更接近实际值,可以由多名有经验的软件工程师分别做出估计。
每个人都估计程序的最小规模(a)、最大规模(b)和最可能的规模(m),分别算出这3种规模的平均值a ?、b ?、和m ?之后,再用下式计算程序规模的估计值:
L=(a ?+b ?+4m ?)/6
1.2 功能点技术
- 信息域特点
- 输入项数(Inp):用户向软件输入的项数,这些输入给软件提供面向应用的数据。
- 输出项数(Out):软件向用户输出的项数,它们向用户提供面向应用的信息。
- 查询数(Inq):查询即是一次联机输入,它导致软件以联机输出方式产生某种即时响应。
- 主文件数(Maf):逻辑主文件的数目。
- 外部接口数(Inf):机器可读的全部接口的数量,用这些接口把信息传送给另一个系统。
- 估算功能点的步骤
- 计算功能点数FP
FP=UFP×TCF
2. 软件工作量估算
分解技术、经验模型
2.1 分解技术
纵向为分解模块
横向为交流、计划、风险分析、设计、编程、测试等模块,单位为人月
因此,b的取值范围为1.01~1.26。
4. 进度计划
4.1 估算开发时间
- Walston_Felix模型
T=2.5E^0.35- 原始的COCOMO模型
T=2.5E^0.38- COCOMO2模型
T=3.0E^(0.33+0.2×(b-1.01))- Putnam模型
T=2.4E^(1/3)
E是开发工作量(以人月为单位)
T是开发时间(以月为单位)
4.2 Gantt图
例子:油漆工刷墙
首先刮掉旧漆,然后刷上新漆,最后清除溅在窗户上的油漆。一共分配了15名工人去完成这项工作,然而工具却很有限:只有5把刮旧漆用的刮板,5把刷漆用的刷子,5把清除溅在窗户上的油漆用的小刮刀。
思路:由5名工人用刮板刮掉第1面墙上的旧漆(这时其余10名工人休息),当第1面墙刮净后,另外5名工人立即用刷子给这面墙刷新漆(与此同时拿刮板的5名工人转去刮第2面墙上的旧漆),一旦刮旧漆的工人转到第3面墙而且刷新漆的工人转到第2面墙以后,余下的5名工人立即拿起刮刀去清除溅在第1面墙窗户上的油漆……。这样安排使每个工人都有活干,因此能够在较短的时间内完成任务。
假设木板房的第2、4面墙的长度比第1、3面墙的长度长一倍,此外,不同工作需要用的时间长短也不同,刷新漆最费时间,其次是刮旧漆,清理油漆需要的时间最少。下表列出了估计每道工序需要用的时间。可以使用Gantt图描绘上述流水作业过程:
在时间为零时开始刮第1面墙上的旧漆,两小时后刮旧漆的工人转去刮第2面墙,同时另5名工人开始给,1面墙刷新漆,每当给一面墙刷完新漆之后,第3组的5名工人立即清除溅在这面墙窗户上的漆。从下图可以看出,12小时后刮完所有旧漆,20小时后完成所有墙壁的刷漆工作,再过2小时后清理工作结束。因此全部工程在22小时后结束,如果用前述的第一种做法,则需要36小时。
上图事件2既是作业1—2(刮第1面墙上的旧漆)的结束,又是作业2—3(刮第2面墙上旧漆)和作业2—4(给第1面墙刷新漆)的开始。也就是说,只有第1面墙上的旧漆刮完之后,才能开始刮第2面墙上旧漆和给第1面墙刷新漆这两个作业。工程 络显式地表示了作业之间的依赖关系。
上图中还有一些虚线箭头,它们表示虚拟作业,也就是事实上并不存在的作业。例如,事件4既是给第1面墙刷新漆结束,又是给第2面墙刷新漆开始(作业4—6)。但是,在开始给第2面墙刷新漆之前,不仅必须已经给第1面墙刷完了新漆,而且第2面墙上的旧漆也必须已经刮净(事件3)。也就是说,在事件3和事件4之间有依赖关系,或者说在作业2—3(刮第2面墙上旧漆)和作业4—6(给第2面墙刷新漆)之间有依赖关系,虚拟作业3—4明确地表示了这种依赖关系。注意,虚拟作业既不消耗资源也不需要时间。
4.4 估算工程进度
先将每个作业分成开始和结束,连接关系,以最大值依赖关系顺序计算最早时刻,以最小值依赖关系逆序计算最迟时刻)
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!