问题定义 (目标与范围说明书) 定义 可行性研究 时期 (可行性研究报告) 需求分析 (需求规格说明书) 总体设计 总体设计文档) 开发 详细设计 (详细设计文档) 时期 (程序) (测试报告 组护 时期 维护 维护报告)
问题定义 编 码 需求分析 总体设计 可行性研究 维 护 测 试 开发 时期 维护 时期 定义 时期 (目标与范围说明书) (可行性研究报告) (维护报告) (测试报告) (程序) (总体设计文档) (需求规格说明书) 详细设计 (详细设计文档)
第7章实现 7.1编码 72软件测试基础 7.3单元测试 7.4集成测试 75确认测试 7.6白盒测试技术 77黑盒测试技术 7.8调试 7.9软件可靠性
第7章 实现 7.1 编码 7.2 软件测试基础 7.3 单元测试 7.4 集成测试 7.5 确认测试 7.6 白盒测试技术 7.7 黑盒测试技术 7.8 调试 7.9 软件可靠性
通常把编码和测试统称为实现。 ①编码:把详细设计结果翻译成用某种程序语言书写的程 序 ②软件测试:是保证软件质量的关键步骤,是对软件规格说 明、设计和编码的最后复审 分2个阶段 编码与单元测试:编写一个模块,对它做测试, 编写者和测试者同一个人。 综合测试:编码与单元测试结束后,进行的集成测试, 是一个独立阶段,由专门的测试人员进行测试。 测试的目标:是发现软件中的错误; 调试的目的:是通过测试发现错误后,诊断和改正错误
通常把编码和测试统称为实现。 ① 编码:把详细设计结果翻译成用某种程序语言书写的程 序。 ② 软件测试:是保证软件质量的关键步骤,是对软件规格说 明、设计和编码的最后复审。 分2个阶段: •编码与单元测试:编写一个模块,对它做测试, 编写者和测试者同一个人。 •综合测试:编码与单元测试结束后,进行的集成测试, 是一个独立阶段,由专门的测试人员进行测试。 测试的目标:是发现软件中的错误; 调试的目的:是通过测试发现错误后,诊断和改正错误
7.1编码 7.1.1选择程序设计语言 机器语言,几乎不使用。 汇编语言,特殊场合使用 高级语言,明显优于汇编语言。 除以下特殊情况需要用汇编语言书写外,其他程序一律用高级语言书写。 1)除了很特殊的应用领域 ①对程序执行时间和使用空间都有很严格限制的情况; ②需要产生任意的,甚至非法的指令序列(高级语言没有此功能) ③体系结构很特殊的微处理机(不能使用高级语言); 2)大型系统中执行时间非常关键的(或直接依赖于硬件的)一小部分 代码
➢机器语言,几乎不使用。 ➢汇编语言,特殊场合使用。 ➢高级语言,明显优于汇编语言。 除以下特殊情况需要用汇编语言书写外,其他程序一律用高级语言书写。 1)除了很特殊的应用领域 ① 对程序执行时间和使用空间都有很严格限制的情况; ② 需要产生任意的,甚至非法的指令序列(高级语言没有此功能); ③ 体系结构很特殊的微处理机(不能使用高级语言); 2)大型系统中执行时间非常关键的(或直接依赖于硬件的)一小部分 代码。 7.1 编码 7.1.1 选择程序设计语言
程序设计语言的划代: 划代 语言 特点 级别 IGL 机器语言 程序不直观,编程出错率高 运行效率高 比机器语言直观,减少了出错率低级 2GL汇编语言 与机器码一样长 特殊情况下才使用 BASIC 利用类英语的语句和命令 3GL PASCAL 条语句相当于5-10条机器码 C、C++ 等 要规定详细的算法过程 数据库查询语言 与自然语言接近 高级 4GL程序生成器 条语句相当于30-50条机器码 图形语言 非过程化问题定义 运行开销大,效率低
程序设计语言的划代: 划代 语言 特点 级别 1GL 机器语言 程序不直观,编程出错率高 运行效率高 低级 2GL 汇编语言 比机器语言直观,减少了出错率 与机器码一样长 特殊情况下才使用 3GL BASIC PASCAL C、C++等 利用类英语的语句和命令 一条语句相当于5-10条机器码 要规定详细的算法过程 高级 4GL 数据库查询语言 程序生成器 图形语言 与自然语言接近 一条语句相当于30-50条机器码 非过程化问题定义 运行开销大,效率低
选择语言的理想标准: ◆为了使程序容易测试和维护以减少软件的总成本, 所选用的高级语言应该有理想的模块化机制,以 及可读性好的控制结构和数据结构; ◆为了便于调试和提高软件可靠性,语言特点应该 使编译程序能够尽可能多地发现程序中的错误; ◆为了降低软件开发和维护的成本,选用的高级语 言应该有良好的独立编译机制
单击此处编辑母版标题样式 • 单击此处编辑母版副标题样式 选择语言的理想标准: ◆为了使程序容易测试和维护以减少软件的总成本, 所选用的高级语言应该有理想的模块化机制,以 及可读性好的控制结构和数据结构; ◆为了便于调试和提高软件可靠性,语言特点应该 使编译程序能够尽可能多地发现程序中的错误; ◆为了降低软件开发和维护的成本,选用的高级语 言应该有良好的独立编译机制
选择语言的主要实用标准: 1)系统用户的要求。如果系统由用户负责维护,用户希望 用他们熟悉的语言写程序。 2)可以使用的编译程序?(好坏) 3)可以得到的软件工具(多少) 4)工程规模(大小) 5)程序员的知识,采用程序员所熟悉的语言。 6)软件可移植性要求。系统用各种不同的计算机或预期寿 命很长,应选择标准化程度高、可移植性好的语言 7)软件的应用领域。各种语言往往使用于不同的应用领域
选择语言的主要实用标准: 1)系统用户的要求。如果系统由用户负责维护,用户希望 用他们熟悉的语言写程序。 2)可以使用的编译程序?(好坏) 3)可以得到的软件工具(多少) 4)工程规模(大小) 5)程序员的知识,采用程序员所熟悉的语言。 6)软件可移植性要求。系统用各种不同的计算机或预期寿 命很长,应选择标准化程度高、可移植性好的语言。 7)软件的应用领域。各种语言往往使用于不同的应用领域
语言适用的主要应用领域 类型 可选语言 科学工程计算 Fortran. Pascal. PL/1 商用数据处理 COBOL 实时软件 汇编语言,Ada 系统软件 汇编语言,C,Ada 智能软件 LISP PROLOG 网络编程 JAVA
语言适用的主要应用领域 类型 可选语言 科学工程计算 Fortran,Pascal,PL/1 商用数据处理 COBOL 实时软件 汇编语言,Ada 系统软件 汇编语言,C, Ada 智能软件 LISP,PROLOG 网络编程 JAVA
7.12编码风格 风格:书写源程序的习惯,程序代码的逻辑结 构,习惯的编程技术。(习惯的变量命名方法) 程序读者有2个(机器和人),强调风格主要针对 于人的可读性,可理解性。 源程序代码的逻辑简明清晰、易读易懂是好程 序的一个重要标准。为了做到这一点,应该遵循下 述原则
7.1.2 编码风格 风格:书写源程序的习惯,程序代码的逻辑结 构,习惯的编程技术。(习惯的变量命名方法) 程序读者有2个(机器和人),强调风格主要针对 于人的可读性,可理解性。 源程序代码的逻辑简明清晰、易读易懂是好程 序的一个重要标准。为了做到这一点,应该遵循下 述原则
1.程序内部的文档 包括标识符、适当的注解、程序的视觉组织。 标识符:包括模块名、函数名、变量名、常量名、 子程序名等。 1)恰当的标识符 (1)采用有实际意义的变量名 ◆有实际意义的名字能帮助理解和记忆 例如: Totalsum空格总数,Sum每行空格数目 可以把D=ST写成, DISTANCE= SPEEDXTIME(见名知意) ◆变量名一般情况下取4-12个字符为宜; 最好事先能对变量名的选择约定统一的标准, 以后阅读就会方便。 这一技巧对过程名、函数名、类名、对象名等同样适用
1.程序内部的文档 包括标识符、适当的注解、程序的视觉组织。 标识符:包括模块名、函数名、变量名、常量名、 子程序名等。 1)恰当的标识符 (1) 采用有实际意义的变量名 ♣ 有实际意义的名字能帮助理解和记忆; 例如:TotalSum空格总数,Sum每行空格数目 可以把D=S*T写成,DISTANCE=SPEED*TIME(见名知意) ♣ 变量名一般情况下取4~12个字符为宜; ♣ 最好事先能对变量名的选择约定统一的标准, 以后阅读就会方便。 这一技巧对过程名、函数名、类名、对象名等同样适用