大学计算机基础第五章
第五章 软件技术基础
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)可维护性好
(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. 软件工程
18. 软件工程
是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来开发与维护软件的学科。研究软件工程的主要目的就是在规定的时间、规定的开发费用内开发出满足用户需求的高质量的软件系统(高质量是指错误率低、好用、易用、可移植、易维护等)。为了消除软件危机,人们通过认真研究解决软件危机的方法认识到软件工程是引导软件开发走向工程科学的途径,形成了软件工程的概念。
19. 软件工程包括3个要素:方法、工具和过程
19. 软件工程包括3个要素:方法、工具和过程
方法是完成软件工程项目的技术手段。工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。
20. 软件生命期:
软件的生命期是指从概念的形成、问题的提出直到所开发的软件在充分使用之后完全失去使用价值为止的这个过程。大体分为3个时期,即软件定义时期、软件开发时期和软件维护时期。定义时期:问题定义、可行性研究、需求分析(写出需求分析书及用户手册的初稿)
软件开发时期:概要设计阶段、详细设计阶段、编码阶段、测试阶段。软件维护阶段:软件维护阶段是软件生命其中最长也是最后一个阶段,起主要任务是通过软件的运行,发现和排除软件中存在的错误,并根据运行环境的变换, 对软件进行改进和扩充。
软件开发时期:概要设计阶段、详细设计阶段、编码阶段、测试阶段。软件维护阶段:软件维护阶段是软件生命其中最长也是最后一个阶段,起主要任务是通过软件的运行,发现和排除软件中存在的错误,并根据运行环境的变换, 对软件进行改进和扩充。
21. 软件工程的目标与原则;①抽象(通常采用分层次抽象,即自顶向下、逐层细化的办法, 以便控制软件开发过程的复杂性。)②信息隐蔽(采用封装技术,将程序模块的内部实现细节掩藏起来,是模块接口尽量简单)③模块化 ④局部化 ⑤确定性 ⑥一致性 ⑦完备性以及可验证性。
22. 软件开发工具:数据流图、实体联系图、面向对象开发工具、CASE工具。
(1) 数据流图表示不是程序流程图 程序流程图是从对数据进行加工的角度描述系统的, 其箭头是控制流,表示的是对数据进行加工的次序,它用于描述怎样解决问题;数据流图
则是从数据的角度来描述系统的,其箭头是数据流,表示的是数据流动的方向,它用于描述的是什么问题。
(2) 数据字典是对所有与系统相关的数据元素的一个有组织的列表以及精确、严格的定义。概括地说,数据字典的作用是对数据流图中出现的被命名的图形元素的确切解释。
(3) 实体联系图简称ER图,主要包括实体、联系和属性等3个基本成分。矩形框表示实体,菱形表示联系,椭圆表示属性。
23. 软件测试目的是为了发现错误而执行程序的过程,软件测试就是要通过预先设计好的若干测试用例来发现程序中的问题。
24. 软件测试的方法:白盒测试方法和黑盒测试方法。白盒测试方法也称为结构测试或逻辑驱动测试。它是根据软件产品的内部工作过程,检查内部成分,以确认每种内部操作符合设计规格要求。白盒测试的基本原则是:保证所测模块中每一独立路径至少执行一次;保证所测模块所有判断的每一分支至少执行一次;保证所测模块每一循环都在边界条件和一般条件下至少各执行一次;验证所有内部数据结构的有效性。黑盒测试也称为功能测试或
数据驱动测试,黑盒测试完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求和功能规格说明,检查程序的功能是否符合它的功能说明。黑盒测试只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当的接收输入数据而产生正确的输出信息,并且保持外部信息的完整性。黑盒测试主要用于软件确认测试。主要包括等价类划法、边界值分析法和错误推测法等。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论