大学计算机基础教程 教学课件 PPT 作者 张素莉 赵洁红 第8章

上传人:E**** 文档编号:89371403 上传时间:2019-05-24 格式:PPT 页数:54 大小:179.50KB
返回 下载 相关 举报
大学计算机基础教程 教学课件 PPT 作者 张素莉 赵洁红 第8章_第1页
第1页 / 共54页
大学计算机基础教程 教学课件 PPT 作者 张素莉 赵洁红 第8章_第2页
第2页 / 共54页
大学计算机基础教程 教学课件 PPT 作者 张素莉 赵洁红 第8章_第3页
第3页 / 共54页
大学计算机基础教程 教学课件 PPT 作者 张素莉 赵洁红 第8章_第4页
第4页 / 共54页
大学计算机基础教程 教学课件 PPT 作者 张素莉 赵洁红 第8章_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《大学计算机基础教程 教学课件 PPT 作者 张素莉 赵洁红 第8章》由会员分享,可在线阅读,更多相关《大学计算机基础教程 教学课件 PPT 作者 张素莉 赵洁红 第8章(54页珍藏版)》请在金锄头文库上搜索。

1、大学计算机文化基础,吉林建筑工程学院城建学院,The City College Of JiLin Architectural And Civil Engineering Institute,二级考试需要掌握的内容,1. 软件工程基本概念,软件生命周戎概念,软件工具与软件开发环境。 2. 结构化分析方法,数据流图,数据字典,软件需求规格说明书。 3. 结构化设计方法,总体设计与详细设计。 4. 软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。 5. 程序的调试,静态调试与动态调试。,第8章 软件工程基础,计算机硬件建立了计算机应用的物质基础,而软件

2、则提供了发挥硬件功能的方法和手段,扩大其应用范围,方便用户使用。,8.1软件工程概述,8.1.1 基本概念 软件是程序、数据及相关文档的集合。其中,程序是软件开发人员根据用户需要开发的、用程序设计语言描述的、适合计算机执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、管理、维护和使用相关的图文材料。,与硬件相比软件具有以下的特点: (1)软件是逻辑实体,而不是物理实体,具有抽象性。 (2)由于磨损和老化,硬件会用就用坏。二理论上软件不会,但是软件有生命周期。 (3)软件本身是复杂的,软件开发是人的智力的高度发挥,不是传统意义上的硬件制造,软件的成本主要在于开发和研制,成本

3、较高。,软件危机与软件工程 软件危机是指在软件的开发和维护过程中所遇到的一系列严重的问题。 软件工程是一门研究软件开发方法和软件管理方法的工程学科。,软件工程的基本原理 1、用分阶段的生命周期计划严格管理。 2、坚持进行阶段评审。 3、实行严格的产品控制。 4、采用现代程序设计技术。 5、结果应该能清楚地审查。 6、开发小组的人员应该少而精。 7、承认不断改进软件工程实践的必要性。,8.1.2软件生命周期及其模型,1、软件生命周期 一个软件从提出、开发实现、使用维护到停止使用的过程为软件的生命周期。 软件的定义:包括了问题定义、可行性研究和需求分析3个阶段。 软件开发:包括了概要设计、详细设计

4、、软件编码、软件测试4个阶段。 软件维护 是个长期的过程,2、软件生命周期模型 常见的软件模型有瀑布模型、快速原型法模型、增量模型等。 (1),2.汇编语言 汇编语言(assembly language)诞生于20世纪50年代中期,是用指令助记符来表示的语言,也称为第二代计算机语言。为了克服机器语言的缺点,人们将机器指令的代码用英文助记符来表示,代替机器语言中的指令和数据。例如用ADD表示加、SUB表示减、JMP表示程序跳转等等,这种指令助记符的语言就是汇编语言又称符号语言。,汇编语言一定程度上克服了机器语言难读难改的缺点,同时保持了其编程质量高,占存储空间少,执行速度快的优点。现今在程序设计

5、中,对实时性要求较高的地方,如过程控制等,仍经常采用汇编语言。但汇编语言面向机器,使用汇编语言编程需要直接安排存储,规定寄存器和运算器的动作次序,还必须知道计算机对数据约定的表示(定点、浮点、双精度)等。这对大多数人员来说,都不是一件简单的事情。此外,该语言还是依赖于机器,不同的计算机在指令长度、寻址方式、寄存器数目、指令表示等都不一样,这样使得汇编程序不仅通用性较差,而且可读性也差。,不论是机器语言还是汇编语言都是面向硬件的具体操作的,直接面向机器的语言,语言对机器的过分依赖,要求使用者必须对硬件结构及其工作原理都十分熟悉,这对非计算机专业人员是难以做到的,对于计算机的推广应用是不利的。它们

6、统称为低级语言。,3.高级语言 计算机事业的发展,促使人们去寻求一些与人类自然语言相接近且能为计算机所接受的语意确定、规则明确、自然直观和通用易学的计算机语言,这种与自然语言相近并为计算机所接受和执行的计算机语言称为高级语言。 所谓高级语言,是由表达各种意义的词和数学公式按照一定的语法规则来编写程序的语言。高级语言之所以高级,就是因为它使程序员可以完全不用与计算机的硬件打交道,可以不必了解机器的指令系统,是面向过程的语言。这样,程序员就可以集中来解决问题本身而不必受机器制约,编程效率大大提高;由于与具体机器无关,因此大大增加了程序的通用性。,机器不能对高级语言编制的程序直接运行,必须经过语言处

7、理程序的翻译或解释后才能被机器接受。因此,高级语言程序的执行速度通常比不上机器语言。,高级语言可分为三类。 (1)面向过程的语言 面向过程的语言致力于用计算机能够理解的逻辑来描述需要解决的问题和解决问题的具体方法、步骤,也称为第三代计算机语言。也就是用这类语言编程时,程序不仅要说明做什么,还要详细地告诉计算机如何做,程序需要详细描述解题的过程和细节。面向过程的语言有FORTRAN、BASIC、PASCAL、C等。,(2)面向问题的语言 面向问题的语言又称非过程化的语言或称第四代计算机语言。用面向问题的语言解题时,不必关心问题的求解算法和求解的过程,只需指出问题是要计算机做什么,数据的输入和输出

8、形式,就能得到所需结果。这种方式,几乎只要将查询的要求套进公式中就行了,并把结果列出来。面向问题的语言看起来不像计算机程序设计语言,倒像是一串查询需求的列表。它是采用快速原型法开发应用软件的强大工具,能够快速地构造应用系统,从而大大地提高了软件开发效率。 面向过程的语言目的在于高效地实现各种算法,需要详细地描述”怎样做”;面向问题的语言目的在于高效、直接地实现各种应用系统,仅需要说明”做什么”。它和与数据库的关系非常密切,能够对大型数据库进行高效处理。,(3)面向对象语言 面向过程语言过分强调求解过程的细节,程序不易重复使用;而面向问题的语言与数据库的关系非常密切,应用范围比较狭窄。为此,在2

9、0世纪80年代推出面向对象语言。面向对象的语言与以往各种语言的根本不同点在于,它设计的出发点就是为了能更直接地描述客观世界中存在的事物(即对象)以及它们之间的关系。 面向对象语言将客观事物看做具有属性和行为的对象,通过抽象找出同一类对象的共同属性和行为,形成类。通过类的继承与多态可以很方便地实现代码重用,这大大地提高了程序的复用能力和程序开发效率。面向对象语言已是程序语言的主要研究方向之一。面向对象的语言有C+、Java、Visual Basic等。,7.2 程序设计方法 编写一个程序,必须掌握一种程序设计语言的开发环境,同时要熟悉问题世界的知识并掌握把问题世界转换为程序世界的方法,通常称为程

10、序设计方法。 程序设计作为一门技术,对程序员而言涉及程序设计方法与程序设计风格两方面内容。将合理、高效的设计方法与良好的程序设计风格相结合,才能使开发出的程序结构清晰,便于维护。,7.2.1程序设计风格 程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路,它极大地影响这软件的质量和可维护性。为了测试和维护程序,方便阅读和跟踪调试程序,程序设计的风格总体而言应该强调简单和清晰。“清晰第一,效率第二”成为当今的程序设计的主导风格。,要形成良好的程序设计风格,主要应注重和考虑下列因素。 1 源程序文档化 源程序文档化应考虑如下几点: (1) 符号名的命名 符号名的命名应具有一定的实际含义,以便

11、于对程序功能的理解。 (3) 视觉组织 为使程序的结构一目了然,可以在程序中利用空格、空行、缩进等技巧使程序层次清晰。,(2) 程序注释 正确的注释可以帮助读者理解程序。程序注释一般分为序言性注释和功能性注释。序言性注释通常位于每个程序的开头部分,它给出程序的整体说明,主要描述的内容可以包括:程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期、修改日期等。功能性注释的位置一般嵌在源程序体之中,主要用来描述其后的语句或程序的功能。正确的注释能够帮助读者理解程序。,2 数据说明的风格 在编写程序时,需要注意数据说明的风格,以便使程序中的数据便于理解和维护,

12、为此应注意以下几点: (1)数据说明的次序规范化 鉴于程序理解,阅读和维护的需要,使数据说明次序固定,可以使数据的属性容易查找,也有利于测试、排错和维护。 (2)说明语句中变量安排有序化 当一个说明语句说明多个变量时,变量按照字母顺序排序为好。 (3)使用注释来说明复杂数据的结构。,3 语句的结构 程序应该简单易懂,语句构造应该简单直接,不应该为提高效率而把语句复杂化。 一行内只写一条语句; 程序编写应优先考虑清晰性; 除非对效率有特殊要求,程序编写要做到清晰第一,效率第二; 首先要保证程序正确,然后才要求提高速度; 避免使用临时变量而使程序的可读性下降; 避免不必要的转移,避免采用复杂的条件

13、语句和尽量减少使用”否定”条件的条件语句; 程序结构模块化,使模块功能尽可能单一化,利用信息隐蔽,确保每一个模块的独立性,尽可能使用库函数; 从数据出发去构造程序,数据结构要有利于程序的简化; 不要修补不好的程序,要重新编写。,4 输入和输出 输入和输出信息是直接与用户相联系的,输入和输出方式和格式应尽可能方便用户的使用。无论是批处理还是交互式输入输出方式,设计和编程时都应该考虑如下原则: 对所有的输入数据都要检验数据的合法性; 检查输入项的各种重要组合的合理性; 输入数据时,格式要简单,以使输入的步骤和操作尽可能简单; 输入数据时,应允许使用自由格式; 应允许使用缺省值;,批量输入数据时,最

14、好使用输入结束标志; 在以交互式输入输出方式进行输入输出时,要在屏幕上使用提示符给出明确提示,数据输入过程中和输入结束时,应在屏幕上给出状态信息; 当程序设计语言对输入格式有严格要求时,应保持输入格式与输入语句的一致性,应给所有的输出加注释,并设计输出报表格式。,7.2.2结构化程序设计,随着软件危机的出现,20世纪70年代提出了“结构化程序设计”的思想和方法。结构化程序设计方法引入了工程和结构化思想,提出了“程序算法数据结构”的说法,使得大型软件的开发和编程都得到了极大的改善。 1结构化程序设计的原则 结构化程序设计方法的主要原则可以概括为自顶向下,逐步求精,模块化,限制使用GOTO语句等几

15、方面:,(1) 自顶向下 程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求细节,应先从最上层总目标开始设计,逐步使问题具体化。 (2) 逐步求精 对复杂问题,应设计一些子目标作过渡,逐步细化。 (3) 模块化 模块化是把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块,化整为零。,(4) 限制使用来GOTO语句 虽然在块和进程的非正常出口处往往需要用GOTO语句,使用GOTO语句可能使程序执行的效率提高,但GOTO语句是有害的,它是造成程序混乱的祸根。程序的质量与GOTO语句的数量成反比。1974年Knuth证实了:

16、 滥用GOTO语句确实有害,应尽量避免; 完全避免使用GOTO语句也不是个明智的做法,有些情况使用GOTO语句,会使程序流程更清楚、效率更高; 下面举例说明“自顶向下, 逐步求精”的程序设计方法。,例7-1 验证“哥德巴赫猜想” 哥德巴赫猜想是数论中的一个著名难题, 是由法国数学爱好者克里斯蒂安哥德巴赫于1742年在给著名数学家欧拉的一封信中提出的。“哥德巴赫猜想”可以表述为:任何一个大于等于4的偶数均可以表示为两个素数之和。尽管这个问题看来如此简明清晰, 但二百多年来, 虽有无数数学家为其呕心沥血、绞尽脑汁, 却始终无人能够证明或者证伪这个猜想 。 求解步骤: 第一步:提出问题,验证哥德巴赫猜想,第二步:设一上限数M,验证从4到M的所有偶数是否能被分解为两个素数之和。 定义一个变量X,初值为4。 每次令其加2,并验证X能否被分解为两个素数之和,直到 X不小于M为止。 第三步:如何验证X是否能被分解为两个素数之和。 从P=2开始; 判别X - P是否仍为素数: 若是,打印该偶数的分解式。 否则,换更大的素数,再继续执行2.。如此循环,直到

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

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

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