软件工程概论教学课件作者陶华亭参考课件51+2编程

上传人:E**** 文档编号:91191430 上传时间:2019-06-26 格式:PPT 页数:45 大小:650KB
返回 下载 相关 举报
软件工程概论教学课件作者陶华亭参考课件51+2编程_第1页
第1页 / 共45页
软件工程概论教学课件作者陶华亭参考课件51+2编程_第2页
第2页 / 共45页
软件工程概论教学课件作者陶华亭参考课件51+2编程_第3页
第3页 / 共45页
软件工程概论教学课件作者陶华亭参考课件51+2编程_第4页
第4页 / 共45页
软件工程概论教学课件作者陶华亭参考课件51+2编程_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《软件工程概论教学课件作者陶华亭参考课件51+2编程》由会员分享,可在线阅读,更多相关《软件工程概论教学课件作者陶华亭参考课件51+2编程(45页珍藏版)》请在金锄头文库上搜索。

1、第5章 编程与测试,2 /75,第5章 编程与测试,5.1 开发工具的选择 5.2 程序设计风格 5.3 软件测试的概念 5.4 软件测试的方法 5.5 测试用例设计 5.6 测试过程 5.7 调试,3 /75,5.1 开发工具的选择,不同语言,分别适于编写不同应用特性的软件; 编程语言的选择和编程风格,对编程效率、软件质量有直接影响 除了设计因素外,编程所用的语言的特点及编码风格对程序的可靠性、可读性、可测试性和可维护性有很大影响,4 /75,5.1 开发工具的选择,5.1.1 程序设计语言的分类 5.1.2 程序设计语言的选择,5 /75,5.1.1 程序设计语言的分类,机器语言 汇编语言

2、 高级语言,6 /75,从应用特点分:,基础语言通用语言 结构化语言 专用语言 结构化语言、专用语言属第三代语言,7 /75,从方法论角度,面向过程的语言 面向对象的语言,8 /75,5.1.2 程序设计语言选择,选择开发平台的重要性; 选择开发平台的原则或标准;,9 /75,选择开发平台很重要,编程语言各有特点,分别适合于解决某一类问题,编码之前的一项重要工作就是根据项目特点,选择一种适当的程序设计语言: 涉及到开发成本 涉及到编程效率 涉及到程序质量,10 /75,涉及到开发成本,适宜的开发平台,完成编码时困难最少,能减少测试量,原码易读、易维护; 软件成本大部分在生命周期的测试、维护阶段

3、,所以源代码的易测试性、易维护性不可忽视!,11 /75,涉及到编程实现和程序效率,汇编语言执行速度快,但编码效率低,汇编程序设计既困难又容易出错。 高级语言编程效率高,但程序执行效率低。 实际上,如果用户没有特殊要求,应椐软件特性选择适当的开发平台 也可以考虑混合编程,12 /75,一般应考虑以下因素:,项目的应用领域 科学计算 数据处理、数据库应用 实时处理 软件开发方法 软件执行环境 算法和数据结构的复杂性 软件开发人员的知识,13 /75,总的来说,高级语言明显优于汇编语言,因此,除了在很特殊的应用领域一小部分代码需要用汇编语言书写之外(混合编程),一般都用高级语言书写。 特殊的应用包

4、括: 对程序执行时间和空间都有严格限制的情况; 需要产生特殊的指令序列; 体系结构特殊的微处理机;,14 /75,5.1.2 程序设计语言选择,选择开发平台的重要性; 选择开发平台的原则或标准;,15 /75,选择开发平台的原则或标准,为了易测试、易维护,减少总成本,所选平台应有理想的模块化机制,及可读性好的控制结构和数据结构; 应有良好的独立编译机制。 编译程序应能尽可能多地发现程序中的错误; 上述要求是选择程序设计语言的理想标准,实际中,还必须同时考虑实用方面的各种限制:,16 /75,实用标准或原则:,考虑用户的要求 若系统由用户维护,用户通常要求用他们熟悉的语言 考虑可选的编译程序 运

5、行目标系统的环境中可以提供的编译程序限制了可选语言的范围。 考虑可以得到的软件工具 若某种语言有支持开发的工具(case工具)可以利用,则系统的实现和验证都变得比较容易。 考虑工程规模,17 /75,主要的实用标准:,考虑程序员的技能 虽然程序员学习一种新语言并不困难,但技能培养需要实践和时间。如果和其他标准不矛盾,应选程序员所熟悉的语言。 考虑可移植性 考虑应用领域 所谓的通用程序设计语言,实际上并不适用于所有应用领域。因此,选择语言时应该充分考虑目标系统的应用范围。,18 /75,第5章 编程与测试,5.1 开发工具的选择 5.2 程序设计风格 5.3 软件测试的概念 5.4 软件测试的方

6、法 5.5 测试用例设计 5.6 测试过程 5.7 调试,19 /75,5.2 程序设计风格,源代码的逻辑简明、易读、易懂是编码风格追求的重要标准,为此,应该考虎下述规则: 关于程序内部的文档的规则 关于数据说明 关于语句构造 关于输入输出 效率,20 /75,1. 关于源程序文档化,程序内部文档,包括标识符、注解和程序的视觉组织等,21 /75,标识符,标识符含义要鲜明,有助于阅读理解。 如果使用缩写,缩写规则应该一致,还应该给每个名字加注解。,22 /75,注解,注解是程序员和读者通信的手段,简明的注解是必须的 通常在每个模块开始处有一段序言性的注解,简要描述模块的功能、算法、接口、重要数

7、据以及开发简史。 插在程序中间与一段程序代码有关的注解 用高级语言书写的源程序,不必把每句翻都译成自然语言,应该利用注解提供一些额外的信息。 应该用空格或空行清楚地区分注解和程序。 注解的内容一定要正确,错误的注解反而会妨碍对程序的理解。,23 /75,利用缩进格式布局程序清单,利用适当的阶梯形缩进格式使程序的层次结构清晰明显,提高可读性,24 /75,5.2 程序设计风格,源代码的逻辑简明、易读、易懂是编码风格追求的重要标准,为此,应该考虎下述规则: 关于程序内部的文档的规则 关于数据说明 关于语句构造 关于输入输出 效率,25 /75,2. 关于数据说明,数据结构的组织和复杂程度,是设计期

8、间确定;数据说明的风格却是在写程序时确定的。 为了使数据更容易理解和维护,有一些比较简单的原则应该遵循。,26 /75,比较简单的原则,数据说明的次序应该标准化。有次序就容易查阅,易于测试、调试和维护 多个变量名应按字母顺序排列说明这些变量。 对复杂的数据结构,则应用说明用语言实现这个数据结构的方法和特点。,27 /75,5.2 程序设计风格,源代码的逻辑简明、易读、易懂是编码风格追求的重要标准,为此,应该考虎下述规则: 关于程序内部的文档的规则 关于数据说明 关于语句构造 关于输入输出 效率,28 /75,3. 关于语句构造,软件的逻辑结构是设计期间确定的,而语句的构造却是程序员编写的。 应

9、该遵循的原则是,每个语句都应简单而直接,不能为了提高效率而使程序变得过分复杂。 下述规则有助于使语句简单明了:,29 /75,构造语句的简明规则,不要为了节省空间而把多个语句写在同一行; 尽量避免复杂的条件测试; 尽量减少对“非”条件的测试; 避免大量使用循环嵌套和条件嵌套; 利用括号使逻辑表达式或算术表达式的运算次序清晰直观。,30 /75,5.2 程序设计风格,源代码的逻辑简明、易读、易懂是编码风格追求的重要标准,为此,应该考虎下述规则: 关于程序内部的文档的规则 关于数据说明 关于语句构造 关于输入输出 效率,31 /75,4. 关于输入输出,在设计和编写程序时应该考虑下述有关输入输出风

10、格的规则:,32 /75,有关输入输出风格的规则:,对所有输入数据都进行检验; 检查输入项重要组合的合法性; 保持输入格式简单; 使用数据结束标记,不要要求用户指定数据的数目; 明确提示交互式输入的请求,详细说明可用的选择或边界数值; 当程序设计语言对格式有严格要求时,应保持输入格式一致; 设计良好的输出报表; 给所有输出数据加标志。,33 /75,5.2 程序设计风格,源代码的逻辑简明、易读、易懂是编码风格追求的重要标准,为此,应该考虎下述规则: 关于程序内部的文档的规则 关于数据说明 关于语句构造 关于输入输出 效率,34 /75,5. 关于(资源利用)效率,效率主要指处理机时间和存储器容

11、量两个方面。在进一步讨论这个问题之前应该记住3条原则:,35 /75,3条原则,效率是性能(非功能)要求,因此应该在需求分析阶段确定效率方面的要求。 效率是靠好设计来提高的。 程序的效率和程序的简单程度是一致的,不要牺牲程序的清晰性和可读性来不必要地提高效率。,36 /75,下面从三个方面进一步讨论效率问题,(1) 程序运行时间 (2) 存储器效率 (3) 输入输出的效率,37 /75,(1) 程序运行时间,源程序的效率直接由详细设计阶段确定的算法的效率决定; 但是,写程序的风格也能对程序的执行速度和存储器要求产生影响。,38 /75,(1) 程序运行时间,在把详细设计结果翻译成程序时,总可以

12、应用下述规则: 写程序之前先简化算术的和逻辑的表达式; 仔细研究嵌套的循环,以确定是否有语句可以从内层往外移; 尽量避免使用多维数组; 尽量避免使用指针和复杂的表; 使用执行时间短的算术运算; 不要混合使用不同的数据类型;,39 /75,(1) 程序运行时间,尽量使用整数运算和布尔表达式。 在效率是决定性因素的应用领域,尽量使用有良好优化特性的编译程序,以自动生成高效目标代码。,40 /75,下面从三个方面进一步讨论效率问题,(1) 程序运行时间 (2) 存储器效率 (3) 输入输出的效率,41 /75,(2) 关于存储器效率,考虑计算机操作系统的存储器使用效率; 微处理机中若限制使用最少的存

13、储单元,则要考虑紧缩存储器特性的编译程序,必要时可使汇编语言。 提高执行效率的技术通常也能提高存储器效率。,42 /75,下面从三个方面进一步讨论效率问题,(1) 程序运行时间 (2) 存储器效率 (3) 输入输出的效率,43 /75,(3) 关于输入输出的效率,输入/输出信息简明、易理解,人和计算机之间通信的效率就高。因此,简单清晰同样是提高人机通信效率的关键。 从写程序的角度看,却有些简单的原则可以提高输入输出的效率。 例如: 所有输入输出都应该有缓冲,以减少用于通信的额外开销; 对二级存储器(如磁盘)应选用最简单的访问方法;,44 /75,(3) 关于输入输出的效率,二级存储器的输入输出应该以信息组为单位进行; 如果“超高效的”输入输出很难被人理解,则不应采用这种方法。 这些简单原则对于软件工程的设计和编码两个阶段都适用。,45 /75,end,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号