04(15分)软件技术基础(包含数据结构、软件工程、数据库hqn.docx
《04(15分)软件技术基础(包含数据结构、软件工程、数据库hqn.docx》由会员分享,可在线阅读,更多相关《04(15分)软件技术基础(包含数据结构、软件工程、数据库hqn.docx(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、4.1数数据结构构与算法法1.1 算法 算法:是是指解题题方案的的准确而而完整的的描述。 算法不等等于程序序,也不不等计算算机方法法,程序序的编制制不可能能优于算算法的设设计。 算法的基基本特征征:是一一组严谨谨地定义义运算顺顺序的规规则,每每一个规规则都是是有效的的,是明明确的,此此顺序将将在有限限的次数数下终止止。特征征包括: (1)可可行性; (2)确确定性,算算法中每每一步骤骤都必须须有明确确定义,不不充许有有模棱两两可的解解释,不不允许有有多义性性; (3)有有穷性,算算法必须须能在有有限的时时间内做做完,即即能在执执行有限限个步骤骤后终止止,包括括合理的的执行时时间的含含义; (4
2、)拥拥有足够够的情报报。 算法的基基本要素素:一是是对数据据对象的的运算和和操作;二是算算法的控控制结构构。 指令系统统:一个个计算机机系统能能执行的的所有指指令的集集合。 基本运算算和操作作包括:算术运运算、逻逻辑运算算、关系系运算、数数据传输输。 算法的控控制结构构:顺序序结构、选选择结构构、循环环结构。 算法基本本设计方方法:列列举法、归归纳法、递递推、递递归、减减斗递推推技术、回回溯法。 算法复杂杂度:算算法时间间复杂度度和算法法空间复复杂度。 算法时间间复杂度度是指执执行算法法所需要要的计算算工作量量。 算法空间间复杂度度是指执执行这个个算法所所需要的的内存空空间。 1.2 数据结结
3、构的基基本基本本概念 数据结构构研究的的三个方方面: (1)数数据集合合中各数数据元素素之间所所固有的的逻辑关关系,即即数据的的逻辑结结构; (2)在在对数据据进行处处理时,各各数据元元素在计计算机中中的存储储关系,即即数据的的存储结结构; (3)对对各种数数据结构构进行的的运算。 数据结构构是指相相互有关关联的数数据元素素的集合合。 数据的逻逻辑结构构包含: (1)表表示数据据元素的的信息; (2)表表示各数数据元素素之间的的前后件件关系。 数据的存存储结构构有顺序序、链接接、索引引等。 线性结构构条件: (1)有有且只有有一个根根结点; (2)每每一个结结点最多多有一个个前件,也也最多有有
4、一个后后件。 非线性结结构:不不满足线线性结构构条件的的数据结结构。13 线性表表及其顺顺序存储储结构 线性表由由一组数数据元素素构成,数数据元素素的位置置只取决决于自己己的序号号,元素素之间的的相对位位置是线线性的。 在复杂线线性表中中,由若若干项数数据元素素组成的的数据元元素称为为记录,而而由多个个记录构构成的线线性表又又称为文文件。 非空线性性表的结结构特征征: (1)且且只有一一个根结结点a11,它无无前件; (2)有有且只有有一个终终端结点点an,它它无后件件; (3)除除根结点点与终端端结点外外,其他他所有结结点有且且只有一一个前件件,也有有且只有有一个后后件。结结点个数数n称为为
5、线性表表的长度度,当nn=0时时,称为为空表。 线性表的的顺序存存储结构构具有以以下两个个基本特特点: (1)线线性表中中所有元元素的所所占的存存储空间间是连续续的; (2)线线性表中中各数据据元素在在存储空空间中是是按逻辑辑顺序依依次存放放的。 ai的存存储地址址为:AADR(ai)=ADDR(aa1)+(i-1)kk,,AADR(a1)为第一一个元素素的地址址,k代代表每个个元素占占的字节节数。 顺序表的的运算:插入、删删除。 (详见见14-166页) 14 栈和队队列 栈是限定定在一端端进行插插入与删删除的线线性表,允允许插入入与删除除的一端端称为栈栈顶,不不允许插插入与删删除的另另一端
6、称称为栈底底。 栈按照“先进后后出”(FIILO)或或“后进先先出”(LIIFO)组组织数据据,栈具具有记忆忆作用。用用topp表示栈栈顶位置置,用bbotttom表表示栈底底。 栈的基本本运算:(1)插插入元素素称为入入栈运算算;(22)删除除元素称称为退栈栈运算;(3)读读栈顶元元素是将将栈顶元元素赋给给一个指指定的变变量,此此时指针针无变化化。 队列是指指允许在在一端(队队尾)进进入插入入,而在在另一端端(队头头)进行行删除的的线性表表。Reear指指针指向向队尾,ffronnt指针针指向队队头。 队列是“先进行行出”(FIIFO)或或“后进后后出”(LIILO)的的线性表表。 队列运算
7、算包括(11)入队队运算:从队尾尾插入一一个元素素;(22)退队队运算:从队头头删除一一个元素素。 循环队列列:s=0表示示队列空空,s=1且ffronnt=rrearr表示队队列满 15 线性链链表 数据结构构中的每每一个结结点对应应于一个个存储单单元,这这种存储储单元称称为存储储结点,简简称结点点。 结点由两两部分组组成:(11)用于于存储数数据元素素值,称称为数据据域;(22)用于于存放指指针,称称为指针针域,用用于指向向前一个个或后一一个结点点。 在链式存存储结构构中,存存储数据据结构的的存储空空间可以以不连续续,各数数据结点点的存储储顺序与与数据元元素之间间的逻辑辑关系可可以不一一致
8、,而而数据元元素之间间的逻辑辑关系是是由指针针域来确确定的。 链式存储储方式即即可用于于表示线线性结构构,也可可用于表表示非线线性结构构。 线性链表表,HEEAD称称为头指指针,HHEADD=NUULL(或或0)称称为空表表,如果果是两指指针:左左指针(LLlinnk)指指向前件件结点,右右指针(RRlinnk)指指向后件件结点。 线性链表表的基本本运算:查找、插插入、删删除。 16 树与二二叉树 树是一种种简单的的非线性性结构,所所有元素素之间具具有明显显的层次次特性。 在树结构构中,每每一个结结点只有有一个前前件,称称为父结结点,没没有前件件的结点点只有一一个,称称为树的的根结点点,简称称
9、树的根根。每一一个结点点可以有有多个后后件,称称为该结结点的子子结点。没没有后件件的结点点称为叶叶子结点点。 在树结构构中,一一个结点点所拥有有的后件件的个数数称为该该结点的的度,所所有结点点中最大大的度称称为树的的度。树树的最大大层次称称为树的的深度。 二叉树的的特点:(1)非非空二叉叉树只有有一个根根结点;(2)每每一个结结点最多多有两棵棵子树,且且分别称称为该结结点的左左子树与与右子树树。 二叉树的的基本性性质: (1)在在二叉树树的第kk层上,最最多有22k-11(k1)个个结点; (2)深深度为mm的二叉叉树最多多有2m-1个个结点; (3)度度为0的的结点(即即叶子结结点)总总是比
10、度度为2的的结点多多一个; (4)具具有n个个结点的的二叉树树,其深深度至少少为llog22n+1,其其中llog22n表表示取llog22n的整整数部分分; (5)具具有n个个结点的的完全二二叉树的的深度为为loog2nn+11; (6)设设完全二二叉树共共有n个个结点。如如果从根根结点开开始,按按层序(每每一层从从左到右右)用自自然数11,2,.n给结点进行编号(k=1,2.n),有以下结论: 若k=1,则则该结点点为根结结点,它它没有父父结点;若k1,则则该结点点的父结结点编号号为INNT(kk/2); 若2kkn,则则编号为为k的结结点的左左子结点点编号为为2k;否则该该结点无无左子结
11、结点(也也无右子子结点); 若2kk+1n,则则编号为为k的结结点的右右子结点点编号为为2k+1;否否则该结结点无右右子结点点。 满二叉树树是指除除最后一一层外,每每一层上上的所有有结点有有两个子子结点,则则k层上上有2kk-1个个结点深深度为mm的满二二叉树有有2m-11个结点点。 完全二叉叉树是指指除最后后一层外外,每一一层上的的结点数数均达到到最大值值,在最最后一层层上只缺缺少右边边的若干干结点。 二叉树存存储结构构采用链链式存储储结构,对对于满二二叉树与与完全二二叉树可可以按层层序进行行顺序存存储。 二叉树的的遍历: (1)前前序遍历历(DLLR),首首先访问问根结点点,然后后遍历左左
12、子树,最最后遍历历右子树树; (2)中中序遍历历(LDDR),首首先遍历历左子树树,然后后访问根根结点,最最后遍历历右子树树; (3)后后序遍历历(LRRD)首首先遍历历左子树树,然后后访问遍遍历右子子树,最最后访问问根结点点。 17 查找技技术 顺序查找找的使用用情况: (1)线线性表为为无序表表; (2)表表采用链链式存储储结构。 二分法查查找只适适用于顺顺序存储储的有序序表,对对于长度度为n的的有序线线性表,最最坏情况况只需比比较loog2nn次。 18 排序技技术 排序是指指将一个个无序序序列整理理成按值值非递减减顺序排排列的有有序序列列。 交换类排排序法:(1)冒冒泡排序序法,需需要
13、比较较的次数数为n(n-11)/22; (22)快速速排序法法。 插入类排排序法:(1)简简单插入入排序法法,最坏坏情况需需要n(n-11)/22次比较较;(22)希尔尔排序法法,最坏坏情况需需要O(n1.5)次次比较。 选择类排排序法:(1)简简单选择择排序法法, 最坏情况况需要nn(n-1)/2次比比较;(22)堆排排序法,最最坏情况况需要OO(nllog22n)次次比较.4.2软软件工程程基础 31 软件工工程基本本概念 计算机软软件是包包括程序序、数据据及相关关文档的的完整集集合。 软件的特特点包括括: (1)软软件是一一种逻辑辑实体; (2)软软件的生生产与硬硬件不同同,它没没有明显
14、显的制作作过程; (3)软软件在运运行、使使用期间间不存在在磨损、老老化问题题; (4)软软件的开开发、运运行对计计算机系系统具有有依赖性性,受计计算机系系统的限限制,这这导致了了软件移移植的问问题; (5)软软件复杂杂性高,成成本昂贵贵; (6)软软件开发发涉及诸诸多的社社会因素素。 软件按功功能分为为应用软软件、系系统软件件、支撑撑软件(或或工具软软件)。 软件危机机主要表表现在成成本、质质量、生生产率等等问题。 软件工程程是应用用于计算算机软件件的定义义、开发发和维护护的一整整套方法法、工具具、文档档、实践践标准和和工序。 软件工程程包括33个要素素:方法法、工具具和过程程。 软件工程程
15、过程是是把软件件转化为为输出的的一组彼彼此相关关的资源源和活动动,包含含4种基基本活动动: (1)PP软件件规格说说明; (2)DD软件件开发; (3)CC软件件确认; (4)AA软件件演进。 软件周期期:软件件产品从从提出、实实现、使使用维护护到停止止使用退退役的过过程。 软件生命命周期三三个阶段段:软件件定义、软软件开发发、运行行维护,主主要活动动阶段是是: (1)可可行性研研究与计计划制定定; (2)需需求分析析; (3)软软件设计计; (4)软软件实现现; (5)软软件测试试; (6)运运行和维维护。 软件工程程的目标标和与原原则: 目标:在在给定成成本、进进度的前前提下,开开发出具具
16、有有效效性、可可靠性、可可理解性性、可维维护性、可可重用性性、可适适应性、可可移植性性、可追追踪性和和可互操操作性且且满足用用户需求求的产品品。 基本目标标:付出出较低的的开发成成本;达达到要求求的软件件功能;取得较较好的软软件性能能;开发发软件易易于移植植;需要要较低的的费用;能按时时完成开开发,及及时交付付使用。 基本原则则:抽象象、信息息隐蔽、模模块化、局局部化、确确定性、一一致性、完完备性和和可验证证性。 软件工程程的理论论和技术术性研究究的内容容主要包包括:软软件开发发技术和和软件工工程管理理。 软件开发发技术包包括:软软件开发发方法学学、开发发过程、开开发工具具和软件件工程环环境。
17、 软件工程程管理包包括:软软件管理理学、软软件工程程经济学学、软件件心理学学等内容容。 软件管理理学包括括人员组组织、进进度安排排、质量量保证、配配置管理理、项目目计划等等。 软件工程程原则包包括抽象象、信息息隐蔽、模模块化、局局部化、确确定性、一一致性、完完备性和和可验证证性。 32 结构化化分析方方法 结构化方方法的核核心和基基础是结结构化程程序设计计理论。 需求分析析方法有有(1)结结构化需需求分析析方法; (22)面向向对象的的分析的的方法。 从需求分分析建立立的模型型的特性性来分:静态分分析和动动态分析析。 结构化分分析方法法的实质质:着眼眼于数据据流,自自顶向下下,逐层层分解,建建
18、立系统统的处理理流程,以以数据流流图和数数据字典典为主要要工具,建立系系统的逻逻辑模型型。 结构化分分析的常常用工具具 (1)数数据流图图; (22)数据据字典; (3)判判定树; (44)判定定表。 数据流图图:描述述数据处处理过程程的工具具,是需需求理解解的逻辑辑模型的的图形表表示,它它直接支支持系统统功能建建模。 数据字典典:对所所有与系系统相关关的数据据元素的的一个有有组织的的列表,以以及精确确的、严严格的定定义,使使得用户户和系统统分析员员对于输输入、输输出、存存储成分分和中间间计算结结果有共共同的理理解。 判定树:从问题题定义的的文字描描述中分分清哪些些是判定定的条件件,哪些些是判
19、定定的结论论,根据据描述材材料中的的连接词词找出判判定条件件之间的的从属关关系、并并列关系系、选择择关系,根根据它们们构造判判定树。 判定表:与判定定树相似似,当数数据流图图中的加加工要依依赖于多多个逻辑辑条件的的取值,即即完成该该加工的的一组动动作是由由于某一一组条件件取值的的组合而而引发的的,使用用判定表表描述比比较适宜宜。 数据字典典是结构构化分析析的核心心。 软件需求求规格说说明书的的特点: (1)正正确性; (2)无无岐义性性; (3)完完整性; (4)可可验证性性; (5)一一致性; (6)可可理解性性; (7)可可追踪性性33 结构化化设计方方法 软件设计计的基本本目标是是用比较
20、较抽象概概括的方方式确定定目标系系统如何何完成预预定的任任务,软软件设计计是确定定系统的的物理模模型。 软件设计计是开发发阶段最最重要的的步骤,是是将需求求准确地地转化为为完整的的软件产产品或系系统的唯唯一途径径。 从技术观观点来看看,软件件设计包包括软件件结构设设计、数数据设计计、接口口设计、过过程设计计。 结构设计计:定义义软件系系统各主主要部件件之间的的关系。 数据设计计:将分分析时创创建的模模型转化化为数据据结构的的定义。 接口设计计:描述述软件内内部、软软件和协协作系统统之间以以及软件件与人之之间如何何通信。 过程设计计:把系系统结构构部件转转换成软软件的过过程描述述。 从工程管管理
21、角度度来看:概要设设计和详详细设计计。 软件设计计的一般般过程:软件设设计是一一个迭代代的过程程;先进进行高层层次的结结构设计计;后进进行低层层次的过过程设计计;穿插插进行数数据设计计和接口口设计。 衡量软件件模块独独立性使使用耦合合性和内内聚性两两个定性性的度量量标准。 在程序结结构中各各模块的的内聚性性越强,则则耦合性性越弱。优优秀软件件应高内内聚,低低耦合。 软件概要要设计的的基本任任务是: (1)设设计软件件系统结结构; (22)数据据结构及及数据库库设计; (3)编编写概要要设计文文档; (44)概要要设计文文档评审审。 模块用一一个矩形形表示,箭箭头表示示模块间间的调用用关系。 在
22、结构图图中还可可以用带带注释的的箭头表表示模块块调用过过程中来来回传递递的信息息。还可可用带实实心圆的的箭头表表示传递递的是控控制信息息,空心心圆箭心心表示传传递的是是数据。 结构图的的基本形形式:基基本形式式、顺序序形式、重重复形式式、选择择形式。 结构图有有四种模模块类型型:传入入模块、传传出模块块、变换换模块和和协调模模块。 典型的数数据流类类型有两两种:变变换型和和事务型型。 变换型系系统结构构图由输输入、中中心变换换、输出出三部分分组成。 事务型数数据流的的特点是是:接受受一项事事务,根根据事务务处理的的特点和和性质,选选择分派派一个适适当的处处理单元元,然后后给出结结果。 详细设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 04 15 软件技术 基础 包含 数据结构 软件工程 数据库 hqn
限制150内