admin 管理员组

文章数量: 1184232


2024年12月31日发(作者:垫导轨和垫滑块)

大学计算机基础第五章

第五章 软件技术基础

1. 程序设计语言

(1) 机器语言和汇编语言

由计算机硬件系统可以识别的指令组成的语言称为机器语言。汇编语言是将机器

指令映射为一些可以被人读懂的助记符。由于计算机只能识别机器语言,所以汇

编语言通常需要通过汇编程序翻译为机器语言。汇编语言的翻译软件称为汇编程

序,它可以将程序员写的助记符直接转换为机器指令,然后由计算机去识别和执

行。用机器语言编写的程序是计算机可以直接执行的程序。

用机器语言编写的程序,代码长度短,执行效率高。但是,这种语言的缺点也很

明显。最主要的是编写机器语言程序必须要熟知CPU 的指令代码,编写程序既

不方便,又容易出错,调试查错也非常困难。而且编写的程序只能在特定的机器

上运行,没有通用性。

(2) 高级语言

高级语言源程序翻译为指令代码有两种做法:编译或者解释。编译通过编译程序

来完成。解释则是通过解释程序完成。解释的结果产生可以直接执行的指令。编

译的结果是得到目标程序。目标程序也是要经过连接才会得到可执行程序目前应

用比较广泛的几种高级语言由FORTRAN/BASIC/PASCAL/C等。

(3) 面向对象的语言

(4) 未来的语言

2、语言处理程序语言处理程序是把源程序翻译成机器语言的程序,可分为三种:

汇编程序、编译程序和解释程序。

(1) 汇编程序把汇编语言源程序翻译成机器语言程序的程序称为汇编程序,翻

译的过程称为汇编。汇编程序在翻译源程序时,总是对源程序从头到尾一个符号

一个符号地进行阅读分析,一般用两遍扫描完成对源程序的加工转换工作。汇编

语言在翻译的同时,还对各种形式的错误进行检查和分析,并反馈给用户,以便

修改。反汇编程序也是一种语言处理程序,它的功能与汇编程序相反,它能把机

器语言程序转换成汇编语言程序。

(2) 编译程序编译程序是把高级语言源程序(如Fortran、Pascal、C 等)翻译

成目标程序(机器语言程序)的一种程序,翻译的过程称为编译。

(3) 解释程序解释程序也是一种对高级语言源程序进行翻译处理及的程序。但

其处理方式是边读取、边翻译、边执行,解释过程不产生目标程序。解释程序将

源程序一句一句读入,对每个语句进行分析和解释,有错误随时通知用户,无错

误就按照解释结果执行所要求的操作。程序的每次运行都要求源程序与解释程序

参加。

各种程序设计语言均包括以下四个成分:①数据成分。用以描述程序中所涉及

的数据。②运算成分。用以描述程序中所包含的运算。③控制成分。用以表达程

序中的控制构造。④传输成分。用以表达程序中数据的传输。

3. 计算机程序的执行(1) 编辑程序 (2)编译程序 (3)链接程序 (4)运行

程序

4. 程序设计的步骤:程序说明、程序设计、程序定稿、编写代码、测试程序

结构化程序设计的原则:采用自顶向下、逐步求精的方法程序结构 模块化把一

个大型的程序按照功能分解为若干相对独立的、较小的子程序(即模块), 并把这

些模块按层次关系进行组织。 限制使用 goto 语句 严格遵循每个程序段“只有一

个入口和一个出口”的原则。

5. 结构化基本结构:顺序结构、选择结构、循环结构

6. 结构化程序的描述工具1)程序流程图 2)N-S图 3)伪码

7. 面向对象的程序设计

对象:在现实生活中,所有东西都是对象,例如某一辆车就是一个对象,指

具体的一辆车,某个人也是一个对象,指具体的一个人。对象既可以很简单,也

可以很复杂,复杂的对象可以由若干简单的对象构成。

任何对象都有两个共同的特点:对象的属性和对象的操作。一个对象通常由

对象名、属性和操作组成。

属性:属性是用来描述对象的状态,对象的状态又称为对象的静态属性,包

括对象内部所包含的信息,每个对象都具有自己专有的内部信息,这些信息说明

了对象所处的状态

封装:封装就是把对象的属性和操作结合成一个不可分割的整体,在这个整

体中一些属性(操作)是被保护的,以防外界的干扰和误操作,另一些属性(操作)

是公共的, 它们作为接口供外界使用。封装的结果就是使一个对象形成接口和

实现两个部分。对于用户来说,接口是可见的,实现是不可见的。封装是面向对

象方法重要的机制, 其目的是有效地实现信息隐藏原则。

类:是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都

是这个类的一个实例。例如,人就是一个类(不是指具体的某个人),而具体的一

个人就是人类的一个实例(对象)。再比如,定义了一个名为“球”的类,那么,

足球、排球、篮球就是“球”类的一个个实例。

继承:继承是表达类之间相似性的一种机制,即在已有的类的基础之上增加

构造新的类,前者称为父类(或超类),后者称为子类。子类除自动拥有父类的全

部属性和操作外,还可以进一步定义新的属性和操作。如果子类只从一个父类继

承,则称为单一继承;如果子类从一个以上父类继承,则称为多重继承。

消息:对象间的相互合作需要一个机制协助进行,这样的机制称为“消息”。

也就是说,消息是向对象发出的服务请求,是对象和对象之间进行通信的手段。

一个对象通过向另一个对象发送消息来请求服务,接收到消息的对象经过解释,

然后给予响应。这种通讯机制叫做消息传递。消息要素通常包括:发送对象、接

受对象、操作和适当的参数。

多态性:对象在收到消息时要予以响应,不同的对象收到同一消息可产生完

全不同的结果,这一现象叫做多态性。多态性增强了软件的灵活性和重用性。多

态性与继承性相结合使软件具有更广的重用性和可扩充性。

8.面向对象方法的优点:

(1)与人类习惯的思维方式一致 (2)稳定性好 (3)可重用行好 (4)易于开

发大型软件产品 (5)可维护性好

9. 指令指令是计算机能够识别和执行的命令。

指令是计算机可以识别的命令。计算机可以识别的只有二进制代码。所以,指令

也就是计算机可以识别的二进制代码。所以每一条指令都会告诉计算机做什么:

做加法、做减 法,还是把数据从存储器调入CPU,等等。指令一般包含两个部

分:指令的操作码,指令的操作数。

10. 算法的定义:算法是一组明确的可执行步骤的有序集合。

算法的5个特征:(1) 有穷性 一个算法必须保证执行有限步之后结束(2) 确

定性 算法的每一步骤必须有确切的定义(3) 可行性 (4) 输入 (5) 输出

11. 算法设计的基本方法:列举法、归纳法、递归法、减半递推法、回溯法

12. 算法时间复杂度:算法中包含简单操作的次数

13. 算法空间复杂度:算法运行过程中临时占用存储空间的大小。一般以数量级

的形式给出

14.数据结构的基本概念

a) 数据:数据是描述客观事物的数值、字符以及所有其它能输入到计算机中,

且能被计算机处理的各种符号的集合。简言之,数据就是计算机化的信息(或存

储在计算机中的信息

b) 数据元素:数据元素是组成数据的基本单位,是数据集合的个体,在计算

机中通常作为一个整体进行考虑和处理。

c) 数据项:数据元素的最小单位是数据项。

d) 数据对象:数据对象是性质相同的数据元素的集合,是数据的一个子集。

e) 数据对象:数据对象是一组性质相同的值集合以及定义在这个值集合上的

一组操作的总称。

f) 数据处理:数据处理是指对数据集合中的各元素以各种方式进行处理,包

括对数据的插入、删除、查找、更新、排序等基本运算。

数据结构:相互有关联的数据元素的集合。

数据结构的3种结构:(1)线性结构 结构中数据结构之间存在一个对一个

的关系。(2)树形结构 结构中数据元素之间存在一个对多个的关系 (3)图形

结构或网状结构 多个对多个 树形结构和图形结构统称非线性结构。

15.数据的存储结构:顺序存储结构、链式存储结构、索引存储结构、散列存储

结构。

16. 栈、队列、树和二叉树具体从书上看。

17. 软件危机是指在软件的开发和维护过程中所遇到的一系列严重问题。

软件危机主要体现在以下几个方面:① 软件开发的实际成本和进度估计不准确

② 开发出来的软件常常不能使用户满意③ 软件产品的质量不高,存在漏洞,需

要经常打补丁④ 大量已有的软件难以维护⑤ 软件缺少有关的文档资料⑥ 软件

的开发和维护成本不断提高,直接威胁计算机应用的扩大⑦ 软件生产技术进步

缓慢,跟不上硬件的发展和人们需求的增长。

18. 软件工程

是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与

维护软件的学科。研究软件工程的主要目的就是在规定的时间、规定的开发费用

内开发出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、

可移植、易维护等)。为了消除软件危机,人们通过认真研究解决软件危机的方

法认识到软件工程是引导软件开发走向工程科学的途径,形成了软件工程的概

念。

19. 软件工程包括3个要素:方法、工具和过程

方法是完成软件工程项目的技术手段。工具支持软件的开发、管理、文档生成;

过程支持软件开发的各个环节的控制、管理。

20. 软件生命期:

软件的生命期是指从概念的形成、问题的提出直到所开发的软件在充分使用之后

完全失去使用价值为止的这个过程。大体分为3个时期,即软件定义时期、软件

开发时期和软件维护时期。定义时期:问题定义、可行性研究、需求分析(写出

需求分析书及用户手册的初稿)

软件开发时期:概要设计阶段、详细设计阶段、编码阶段、测试阶段。软件维

护阶段:软件维护阶段是软件生命其中最长也是最后一个阶段,起主要任务是通

过软件的运行,发现和排除软件中存在的错误,并根据运行环境的变换, 对软

件进行改进和扩充。

21. 软件工程的目标与原则;①抽象(通常采用分层次抽象,即自顶向下、逐层

细化的办法, 以便控制软件开发过程的复杂性。)②信息隐蔽(采用封装技术,

将程序模块的内部实现细节掩藏起来,是模块接口尽量简单)③模块化 ④局部

化 ⑤确定性 ⑥一致性 ⑦完备性以及可验证性。

22. 软件开发工具:数据流图、实体联系图、面向对象开发工具、CASE工具。

(1) 数据流图表示不是程序流程图 程序流程图是从对数据进行加工的角度描

述系统的, 其箭头是控制流,表示的是对数据进行加工的次序,它用于描述怎

样解决问题;数据流图则是从数据的角度来描述系统的,其箭头是数据流,表示

的是数据流动的方向,它用于描述的是什么问题。

(2) 数据字典是对所有与系统相关的数据元素的一个有组织的列表以及精确、

严格的定义。概括地说,数据字典的作用是对数据流图中出现的被命名的图形元

素的确切解释。

(3) 实体联系图简称ER图,主要包括实体、联系和属性等3个基本成分。矩

形框表示实体,菱形表示联系,椭圆表示属性。

23. 软件测试目的是为了发现错误而执行程序的过程,软件测试就是要通过预先

设计好的若干测试用例来发现程序中的问题。

24. 软件测试的方法:白盒测试方法和黑盒测试方法。白盒测试方法也称为结构

测试或逻辑驱动测试。它是根据软件产品的内部工作过程,检查内部成分,以确

认每种内部操作符合设计规格要求。白盒测试的基本原则是:保证所测模块中每

一独立路径至少执行一次;保证所测模块所有判断的每一分支至少执行一次;保

证所测模块每一循环都在边界条件和一般条件下至少各执行一次;验证所有内部

数据结构的有效性。黑盒测试也称为功能测试或数据驱动测试,黑盒测试完全不

考虑程序内部的逻辑结构和内部特性,只依据程序的需求和功能规格说明,检查

程序的功能是否符合它的功能说明。黑盒测试只检查程序功能是否按照需求规格

说明书的规定正常使用,程序是否能适当的接收输入数据而产生正确的输出信

息,并且保持外部信息的完整性。黑盒测试主要用于软件确认测试。主要包括等

价类划法、边界值分析法和错误推测法等。

25. 软件测试的步骤:模块测试、组装测试、确认测试、系统测试。

26. 程序的调试

任务是诊断和改正程序中的错误,它与软件测试不同,软件测试是尽可能多的发

现软件中的错误。先要发现软件的错误然后借助于一定的调试工具去找出软件错

误的具体位置,软件测试贯穿于整个软件生命期,调试主要在开发期。

27. 调试的基本步骤:错误定位、修改设计代码,以排除错误、进行回归测试,

防止引进新的错误。

28. 调试的方法:(1)强行排除法 (2)回溯法 (3)原因排除法


本文标签: 数据 软件 程序 对象 结构