文档介绍:软件工程
Software Engineering
Date
1
广东工业大学计算机学院
第15章 软件实现
在下列细节设计的基础上,用一种程序设计语言来将设计转换为程序,得到的结果是源程序代码。
程序设计语言14
广东工业大学计算机学院
程序设计效率
效率是一种性能需求。
良好的程序设计是提高效率的根本途径。
要知道代码效率与代码的简单性紧密联系。
Date
15
广东工业大学计算机学院
代码效率
对代码效率影响最大的是算法的效率。编码风格也影响速度和内存 。体现在以下的几个方面:
(1)编码前,简化算术表达式和逻辑表达式。
(2)循环内部的语句和表达式越少越好。
(3)应尽量避免使用多维数组。
(4)应尽量避免使用指针和复杂的列表。
(5)采用效率高的算术运算。
(6)要避免采用混合数据类型。
(7)应当采用占用内存少的数据类型。
Date
16
广东工业大学计算机学院
内存效率
内存效率必须注意考虑操作系统内存管理的分页特征,而根据代码的局域性或通过结构化构造功能域的设计方法才是减少程序在运行时产生频繁的页面置换和提高内存效率的最好办法。
优化算法是内存高效的关键。
Date
17
广东工业大学计算机学院
一般有两类I/O要考虑。
(1)由人支配的I/O。
(2)取决于其他设备的I/O。
可以从以下几个方面来提高I/O效率。
(1)I/O要求的数量应当减至最小,比如将读写文件的功能合并,尽量一次完成。
(2)所有I/O应当缓存,以减少过多中断次数。
(3)对于辅存(如磁盘),应当选择和使用最简单的可接受的存取方法。
(4)辅存设备的I/O,应当是块状的。
I/O效率
Date
18
广东工业大学计算机学院
冗余编程
冗余(redundancy)是改善系统可靠性的一种重要技术。
广义地说,冗余是指所有对于实现系统规定功能来说是多余的那部分资源,包括硬件、软件、信息和时间。
对于一个系统,提供两套或更多的硬件,使之与原始系统并行工作。这种方式称为并行冗余,也称热备用或主动式冗余。
提供多套的硬件资源,但是只有一套资源在运行,只有当它失效时,备用的资源才开始运行。该方式称备用冗余,也称冷备用或被动式冗余。
Date
19
广东工业大学计算机学院
软件容错技术
提高软件质量和可靠性的技术大致可分为两类,
一类是避开错误(fault–avoidance)技术,即在开发的过程中不让差错潜入软件的技术。
另一类是容错(fault–tolerance)技术,即对某些无法避开的差错,使其影响减至最小的技术。
避开错误技术主要体现在提高软件的质量管理,也就是软件工程中所讨论的先进的软件分析和开发技术以及管理技术。
Date
20
广东工业大学计算机学院
软件高可靠性技术
项目
说明
算法模型化
将可以保证正确实现需求规格说明的算法模型化
模拟模型化
为保证在一定资源条件下预定性能的实现,将软件运行时间、内存使用量、执行控制等模型化
程序正确性证明
使用形式符号及数学方法,证明程序的正确性
N个版本的程序
设计法
由N个独立的软件项目组同时开发同一需求规格说明的软件,从N个版本的执行结果的不同点出发,寻求整体的一致性
容错设计
使软件具有抗故障的功能
软件风险分析
及故障树分析
从设计或编码的结构出发,追踪软件开发过程中潜入系统差错的原因
划分接口的规
格说明
在设计的各个步骤,使用规范的接口规格说明,经验证划分接口的实现可能性和完全性能
可靠性模型
使用软件可靠性模型,从软件故障发生频度出发预测可靠性
Date
21
广东工业大学计算机学院
容错软件
四种定义:
(1)规定功能的软件,如果在一定程度上对自身错误(软件错误)具有屏蔽能力,则称此软件为具有容错功能的软件,即容错软件。
(2)规定功能的软件,如果在一定程度上能从错误状态自动恢复到正常状态,则称之为容错软件。
(3)规定功能的软件,程序存在错误而且发生时,仍然能在一定程度上完成预期的功能,则把该软件称为容错软件。
(4)规定功能的软件,如果在一定程度上具有容错的能力,则称之为容错软件。
Date
22
广东工业大学计算机学院
以上四个定义在描述上各有侧重点,但在以下三个方面是共同的:
(1)容错的对象是一个规定功能的软件,这些功能是由需求规格说明定义的。容错是为了保证当错误存在并且发生时,能维持这些功能。
(2)容错的能力总是有一定限度的。这是由于软件错误一般是不可预见的,输入信息的构成又是极为复杂的。因此,即使是容错软件也不