软件工程(十四)

来源:互联网 发布:顶贴软件 编辑:程序博客网 时间:2024/04/28 01:45

实现

编码和测试统称为实现。
编码:把软件设计结果翻译成程序,是对设计的进一步具体化。
选择的语言
编码风格
测试:检测程序并改正错误的过程。
单元测试
综合测试

编码
选择程序设计语言
计算机程序设计语言基本上可以分为两大类:
1. 汇编语言;
2. 高级语言。

适宜的语言优点:
(1)减少测试量
(2)阅读容易,维护方便容易
(3)编码困难减少
考虑重点:
- 测试
- 维护

从应用特点看,高级语言可分为:
1)基础语言
如BASIC、FORTRAN、COBOL、ALGOL等
2)结构化语言
如ALGOL、PL/1、PASCAL、C、ADA等
3)专用语言
如APL、BLISS、FORTH、LISP、PROLOG等

选择一种编程语言的理论标准:
1)有理想的模块化机制(框架机制);
2)可读性好的控制结构和数据结构;
3)便于调试和提高软件可靠性;
4)编译程序发现程序错误的能力强;
5)有良好的独立编译机制。

选择语言时除了考虑理论上的标准,还必须同时考虑主要的实用标准:
(1)系统用户要求
(2)可以使用的编译程序
(3)可以得到的软件工具
(4)工程规模
(5)程序员知识
(6)软件可移植性要求
(7)软件的应用领域

编码风格
源代码的逻辑简明清晰、易读易懂是好程序的标准之一。
编码遵循的原则:

1.程序内部的文档
选取含义鲜明的名字,如果使用缩写,缩写规则要一致,并给每个名字加注释;
通常在每个模块开始处要有一段注释,描述模块功能、算法、接口特点等;
程序清单布局应利用适当的阶梯形式,使程序的层次结构清晰明显。

程序内部的文档包括恰当的标识符、适当的注解和程序的视觉组织等。

2.数据说明
数据说明的次序应该标准化,如按数据类型确定说明的次序(容易查阅、能够加速测试、调试和维护的过程);
多个变量名在一个语句中说明时,应该按字母顺序排列这些变量;
如果设计时使用了复杂的数据结构,应该用注释说明实现该数据结构的方法和特点。

3.语句构造
构造语句的原则:每个语句都应该简单而直接,不能为了提高效率而程序变得过分复杂。
(1)不要为了节省空间而把多个语句写在同一行
(2)尽量避免复杂的条件测试
(3)尽量减少对“非”条件的测试
(4)避免大量使用循环嵌套和条件嵌套
(5)利用括号使逻辑表达式或算术表达式的运算次
序清晰直观。
4.输入/输出
(1)对所有输入数据进行检验
(2)检查输入项重要组合的合法性
(3)保持输入格式简单
(4)使用数据结束标记,不要要求用户指定数据的数目
(5)明确提示交互式输入的请求,详细说明可用的选择或边界数据
(6)设计良好的输出报表
(7)给所有输出数据加标志
5.效率
A.程序运行时间
B.存储器效率
C.输入/输出效率

软件测试基础
软件测试的目标
有关测试的一些规则(G.Myers):
(1)测试是为了发现程序中的错误而执行程序的过程;
(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;
(3)成功的测试是发现了至今为止尚未发现的错误的测试。

软件测试准则
1)所有测试都应该能追溯到用户需求(从用户的角度);
2)应该远在测试前就制定出测试计划;
3)把Pareto原理应用到软件测试中;
Pareto原理:测试发现的错误中80%
很可能是由程序20%的模块造成的
4)应该从“小规模”测试开始,并逐步进行“大规模”测试;
5)穷举测试是不可能的
穷尽测试:包含所有可能情况的测试称为穷尽测试。
6)为了达到最佳测试效果,应该由独立的第三方从事测试工作。

测试方法
黑盒测试:
如果已经知道软件应该具有的功能,可以通过测试来检验是否每个功能都能正常使用,这种测试称黑盒测试。也称功能测试。
白盒测试(也称结构测试):
如果知道软件内部工作过程,可以通过测试来检验软件内部动作是否按照规格说明书的规定正常进行,这种测试称为白盒测试。

软件测试的步骤
1.模块测试
模块测试又称单元测试,它把每个模块作为单独的实体来测试。
2.子系统测试
子系统测试是把经过单元测试的模块放在一起形成一个子系统来测试。
3.系统测试
系统测试是把经过测试的子系统装配成一个完整的系统来测试。
4.验收测试
验收测试把软件系统作为单一的实体进行测试(利用用户的实际数据测试)。
5.平行运行
平行运行是同时运行新开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果。


欢迎关注我的微信个人订阅号
这里写图片描述
每天多学一点0.0

0 0
原创粉丝点击