第5章计算机软件技术基础.ppt

上传人:sccc 文档编号:5913847 上传时间:2023-09-03 格式:PPT 页数:37 大小:777.54KB
返回 下载 相关 举报
第5章计算机软件技术基础.ppt_第1页
第1页 / 共37页
第5章计算机软件技术基础.ppt_第2页
第2页 / 共37页
第5章计算机软件技术基础.ppt_第3页
第3页 / 共37页
第5章计算机软件技术基础.ppt_第4页
第4页 / 共37页
第5章计算机软件技术基础.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《第5章计算机软件技术基础.ppt》由会员分享,可在线阅读,更多相关《第5章计算机软件技术基础.ppt(37页珍藏版)》请在三一办公上搜索。

1、第五章 计算机软件技术基础,计算机硬件(Hardware)是计算机系统的基础,但是没有软件(Software)的计算机是无法工作的。事实上,现在计算机能广泛地应用于各个领域,完全是由于有了丰富的计算机软件,人们为了用计算机解决各类问题,针对性地开发了各种各样的软件。本章将讨论关于计算机软件和计算机软件开发的一些基本问题,从而对计算机软件开发有一个总体的认识,掌握一些重要的基本概念,如什么是软件,什么是软件开发过程等。,5.1 计算机软件系统,5.1.1 软件的概念与特点,软件是计算机系统中与硬件相互依存的另一部分,包括程序、数据及其相关文档的完整集合。软件通常是为某个特定目的而开发的产品。程序

2、:按照事先设计的功能和性能要求执行的计算机指令序列。数据:使程序能够正常操纵信息的数据结构。文档:与程序开发、维护和使用有关的资料。,软件的特点:抽象性 复杂性 维护长期性 高成本性,5.1 计算机软件系统,5.1.2 软件的分类,(1)按软件功能划分 系统软件:能与计算机硬件紧密配合在一起,使计算机系统的各个部件、相关的软件和数据协调、高效地工作。支撑软件:协助用户开发软件的工具性软件,其中包括帮助软件人员开发软件产品的工具,也包括帮助管理人员控制开发进程的工具。应用软件:针对特定领域应用开发,为特定目的服务的软件。,5.1 计算机软件系统,(2)按软件工作方式划分 实时处理软件:对实时过程

3、进行监控的软件。分时软件:允许多个联机用户同时使用计算机。交互式软件:能实现人机通信的软件。批处理软件:把一组输入作业或大量数据以成批处理的方式一次运行,按顺序逐个处理的软件。,(3)按软件服务对象划分 项目软件:也称定制软件,是受某个特定客户(或少数客户)委托,由一个或多个软件开发机构在合同的约束下开发出来的软件。产品软件:由软件开发机构开发出来投入市场或用户群体庞大的软件。,5.1 计算机软件系统,计算机软件系统包括各种各样的软件,这些软件之间的关系不是并列的,而是有一定的层次关系。,5.1.3 计算机软件的层次结构,5.2 程序设计语言,简单来讲,程序设计就是:用计算机语言编写程序。,程

4、序=算法+数据结构,编写计算机程序时使用的语言称为程序设计语言(Programming Language),使用它把人类解决问题的方法用计算机可以识别的形式表示出来。,5.2 程序设计语言,5.2.1 机器语言,机器语言是指由二进制代码按照一定规则组成的命令集合,也称为机器指令集合。机器指令的格式如下:,例如:计算256+16结果的机器代码如下(以十六进制表示):,5.2 程序设计语言,5.2.2 汇编语言,为了解决机器语言难记忆、可读性差的缺点,人们把机器指令中的操作码和操作数用英文助记符和符号地址来表示,这种助记符语言称为汇编语言。,汇编和连接过程,5.2 程序设计语言,5.2.3 高级语

5、言,高级语言是一类程序设计语言的统称,它采用接近人类自然语言和数学表达式的表示方法,并遵循一定的语法规则来编写程序。,实现求整数的绝对值的程序段:,int intVar,result;scanf(“%d”,5.2 程序设计语言,高级语言程序的翻译和执行,5.2 程序设计语言,5.2.4 程序设计语言的构成,数据和操作是构成程序的两个基本要素,任何一种程序设计语言都必须提供表示数据和操作的语法、语义元素。,(1)数据类型 程序设计语言中一般分为基本数据类型和构造数据类型两大类。,基本数据类型是由程序设计语言内置的,其特点是不能再分解为其它的类型。在主流的程序设计语言中一般包括:整数类型、实数类型

6、、字符类型、布尔类型等。构造数据类型是由基本数据类型按照某种方式组合构成的。常见的构造数据类型有:数组类型、记录类型(结构体)、枚举类型、字符串类型、文件类型等。,5.2 程序设计语言,(2)运算符和表达式,运算是程序对数据进行的最基本也是最重要的处理,程序设计中使用表达式完成各种各样的运算。表达式通常包括:常量、变量、运算符和函数调用等构成。例如:给定圆的半径r,求其面积的Java语言表达式是:s=3.14*r*r,(3)语句,程序是对计算机要执行的操作的描述。高级语言源程序的基本组成单位是语句。语句按功能可以分为两类:1.用于描述操作运算,如赋值语句,称为操作运算语句;2.用于控制操作运算

7、的执行顺序,如分支控制语句,称为流程控制语句。,5.2 程序设计语言,(4)控制结构,顺序结构,按照语句出现的先后顺序依次执行。分支结构,根据给定条件判断,决定程序执行的顺序。循环结构,循环(重复)是计算机解题的一个重要特征。,(5)输入/输出,程序的输入是指用户将数据通过输入设备(如键盘等)输入到程序中。程序的输出是指程序把运算结果以用户可以理解的形式输出到输出设备(如显示器、打印机等)。高级程序设计语言中通常以函数或语句的形式提供输入输出操作。现代高级程序设计语言通常都提供通过窗口、文本框、按钮、组合框、图表等图形组件进行输入输出。,5.2 程序设计语言,(6)子程序,子程序就是将需要重复

8、使用的程序段或分解的子问题编写为一个逻辑上独立的子程序,当程序中需要使用子程序时,再对其进行调用。使用子程序的好处是降低了程序的复杂度,使程序的结构清晰,提高了程序设计的效率。一般程序设计语言中有两种子程序:函数(Function)和过程(Procedure),它们的主要区别是函数有返回值,而过程不能有返回值。,5.3 数据结构,5.3.1 什么是数据,数据是对客观事物的描述,对计算机来说,数据的含义非常广泛,如数字、字符、图形、色彩、声音等都是数据。数据元素(Data Element)是组成数据的基本单位。一个数据元素可以由若干个数据项组成,数据项是数据不可分割的最小单位。,例:公司员工数据

9、的存储,5.3 数据结构,5.3.2 什么是数据结构,数据结构研究的不是几个孤立的数据,而是大量的相互关联的数据。数据元素之间的相互关系称为结构。简单来说,数据结构研究的内容包括三个方面:,(1)数据的逻辑结构,数据元素之间的逻辑上的相互关系称为数据的逻辑结构,它描述数据的组织形式。,5.3 数据结构,(2)数据的物理结构,数据在计算机存储器中的存储方式,称为数据的物理结构或存储结构。,顺序存储方式,把逻辑上相邻的数据元素存储在物理上相邻的存储单元中。链式存储方式,每个结点分为数据域和指针域两部分,数据域存储数据元素,指针域存储与该结点具有逻辑关系的结点的地址。索引存储方式,数据元素存放在一个

10、不连续存储区域里。选取一个结点作为索引表,索引表中的第i项表示第i个元素的存储地址。散列存储方式,数据元素均匀地分布在连续的存储区域里,用散列函数计算各结点的存储地址。,5.3 数据结构,(3)数据结构的运算,数据的运算是定义在数据逻辑结构上的操作,如插入、删除、查找、排序、遍历等。每一种数据结构都有一个运算及其规则的集合。,5.3 数据结构,5.3.3 常见数据结构介绍(了解),(1)数组,数组属于线性数据结构,是在计算机内存中使用一组连续的存储单元保存数据类型相同的一组数据,这些数据拥有相同的变量名,称为数组名。,5.3 数据结构,(2)链表,链表(Linked List)是采用链式存储的

11、线性表。线性链表的结点由数据域和指针域两个部分组成,数据域存储数据元素,指针域存储一个指向直接后继结点的指针。,5.3 数据结构,(3)二叉树,二叉树是一种常用的非线性数据结构,其定义为:二叉树是一个结点的集合,该集合或者为空,或者满足下面两个条件:有且仅有一个称为根的结点。其它结点分为两个互不相交的集合T1、T2。T1和T2均为二叉树,并且在T1和T2之间存在顺序关系(T1在T2之前),分别称为根的左子树和右子树。,二叉树的5种基本形态,5.3 数据结构,二叉树的存储结构,5.3 数据结构,遍历二叉树,前序遍历:访问根结点;前序遍历左子树;前序遍历右子树 中序遍历:中序遍历左子树;访问根结点

12、;中序遍历右子树 后序遍历:后序遍历左子树;后序遍历右子树;访问根结点,前序遍历:A B D E F G C 中序遍历:D B F E G A C 后序遍历:D F G E B C A,5.4 算法,5.4.1 算法的基本概念,算法(Algorithm)是指为解决给定问题而需实施的有穷操作步骤的描述。,5.4.2 算法的描述方法,(1)用自然语言描述算法(2)用流程图描述算法(3)使用伪代码描述算法(4)用程序设计语言描述算法,5.4 算法,5.4.3 查找算法(了解),查找(Searching)也称检索,设表F中有n个结点,Ki是记录Ri的关键字,现给定关键字K,在F中寻找关键字与K相同的结

13、点R的过程,叫做查找。,(1)顺序查找,顺序查找是线性表的最简单的查找算法。它是用给定的值与表中的每个结点的关键字逐个进行比较运算,若找到相等的关键字则查找成功,否则查找失败。顺序查找算法的优点是适用范围广,对线性表中结点逻辑次序无关,即不要求按关键字排序。对线性表的物理存储结构也没有要求,顺序存储与链式存储均可。,5.4 算法,(2)折半查找,折半查找的基本思想是:先取表的中间位置的结点关键字与所给定的关键字进行比较,如果相等,则查找成功。如果给定值比该结点的关键字大,则所找结点在表的后半部分;否则所找结点在表的前半部分,然后再把选定的部分表的中间结点的关键字与给定关键字进行比较。如此反复进

14、行,直到查找成功或者查找失败为止。,5.4 算法,例:,5.4 算法,5.4.4 排序算法(了解),排序(Sort)是数据处理中的一种重要运算,它的功能是将一组数据元素(或记录)从任意序列排列成一个按关键字排序的序列。按照排序过程中涉及的存储器的不同将排序分为内部排序和外部排序两类,其中内部排序是指整个排序过程都在内存中进行的排序。,5.4 算法,(1)直接插入排序,算法的基本思想如下:开始时,把第一个记录看成是已经排好序的子序列,这时子序列中只有一个记录;从第二个记录起到最后一个记录,依次将每个记录与前面子序列的记录按关键字比较,确定记录插入的位置;将记录插入到子序列中,子序列记录个数加1,

15、直至子序列长度与待排序列长度相等时结束。,5.4 算法,(1)直接插入排序,5.4 算法,5.4.4 排序算法(了解),(2)冒泡排序,冒泡排序的算法思想是:将第n个记录的关键字与将第n-1个记录的关键字进行比较,若为逆序则将两个记录进行位置的交换,否则保持原来顺序;将第n-1个记录的关键字与将第n-2个记录的关键字进行比较;重复上述排序过程,直到全部关键字均比较一遍;上面三步的比较交换过程称为第一趟排序,其结果是使关键字最小的记录被交换到了第1个记录的位置,完成一趟排序;第二趟排序从第n个记录到第2个记录进行同样的操作,结果是使关键字次小的记录被交换到了第2个记录的位置;依次类推,第i趟排序

16、是从第n个记录到第i个记录依次比较交换。,5.4 算法,(2)冒泡排序,5.5 软件工程简介,5.5.1 软件危机与软件工程,在软件开发、维护过程中出现了一系列严重的问题,造成软件需求与软件生产之间的尖锐的矛盾,称为软件危机。,1990年电气电子工程师协会(IEEE)给出了软件工程的一个定义:“软件工程是把系统化的、规范的、可度量的方法应用于软件开发、运行和维护的过程,也就是把工程化运用于软件工程,并对这样的方法进行研究”。,5.5 软件工程简介,5.5.2 软件生命周期,软件生命周期分为六个步骤:制定计划:确定要开发软件系统的总体目标。需求分析:对要开发软件提出的需求进行分析并给出详细定义。

17、软件设计:设计人员首先进行概要设计,然后进行详细设计,为程序代码的编写打下基础。程序编码:使用程序设计语言把软件设计转换成计算机可以接受的程序代码,也称为软件实现。软件测试:测试是保证软件质量的重要手段。运行与维护:软件交付后就进入它的运行时期,在这个过程中可能由于多方面的原因需要对软件进行修改,称为软件的维护。,5.5 软件工程简介,5.5.3 软件开发模型,软件开发模型也叫软件过程模型,是软件系统开发项目总貌的一种描述,它是从软件项目计划的制定到软件最后停止使用的整个过程的结构框架。到目前为止,已经提出了多种软件生命周期模型,如:瀑布模型、螺旋模型、演化模型、喷泉模型等。,5.5.4 软件

18、开发方法,软件开发方法是关于如何组织软件开发过程的方法,是从宏观上来把握开发全过程,其方法一般描述为一系列的步骤,每个步骤都会有相应的技术来支持,有相应的符号工具来描述。,5.5 软件工程简介,5.5.4 软件开发方法,(1)结构化开发方法,结构化方法是一种传统的系统开发方法,它采用了系统科学的思想方法,从层次的角度,自顶向下地分析和设计系统。,(2)面向对象软件开发方法,面向对象软件开发方法是一种以面向对象思想为指导进行系统开发的一类方法的总称,这种方法以对象为中心,以类和继承为构造机制来抽象现实世界,通过建立模型,最终构建相应的软件系统。,5.5 软件工程简介,5.5.5 软件测试技术,软件测试(Testing)就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。软件测试是为了发现错误而执行程序的过程。,静态测试:通过对被测程序的静态审查,而不是运行程序来发现代码中潜在的错误。动态测试:通过在计算机是运行程序来发现其中的错误。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号