《2022年软件工程和数据库原理复习资料.docx》由会员分享,可在线阅读,更多相关《2022年软件工程和数据库原理复习资料.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选学习资料 - - - - - - - - - 立身以立学为先,立学以读书为本软件工程基本概念运算机软件是包括程序、数据及相关文档的完整集合;软件的特点包括:( 1)软件是一种规律实体;( 2)软件的生产与硬件不同,它没有明显的制作过程;( 3)软件在运行、使用期间不存在磨损、老化问题;( 4)软件的开发、运行对运算机系统具有依靠性,受运算机系统的限制,这导致了软件 移植的问题;( 5)软件复杂性高,成本昂贵;( 6)软件开发涉及诸多的社会因素;软件按功能分为应用软件、系统软件、支撑软件(或工具软件);软件危机主要表现在成本、质量、生产率等问题;软件工程是应用于运算机软件的定义、开发和保护的
2、一整套方法、工具、文档、 实践标准和工序;软件工程包括 3 个要素:方法、工具和过程;软件工程过程是把软件转化为输出的一组彼此相关的资源和活动,包含 4 种基本活动:( 1)P 软件规格说明;( 2)D 软件开发;( 3)C 软件确认;( 4)A 软件演进;软件周期:软件产品从提出、实现、使用保护到停止使用退役的过程;:软件定义、软件开发、运行保护,主要活动阶段是:软件生命周期三个阶段( 1)可行性讨论与方案制定;( 2)需求分析;( 3)软件设计;( 4)软件实现;( 5)软件测试;( 6)运行和保护;软件工程的目标和与原就:目标:在给定成本、进度的前提下,开发出具有有效性、牢靠性、可懂得性
3、、可保护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满意用户需求的产品;基本目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发软件易于移植;需要较低的费用;能按时完成开发,准时交付使用;基本原就:抽象、信息隐藏、模块化、局部化、确定性、一样性、完备性和可验证性;软件工程的理论和技术性讨论的内容主要包括:软件开发技术和软件工程治理;软件开发技术包括:软件开发方法学、开发过程、开发工具和软件工程环境;软件工程治理包括:软件治理学、软件工程经济学、软件心理学等内容;软件治理学包括人员组织、进度支配、质量保证、配置治理、项目方案等;软件工程原就包括抽象、信息隐藏、模块化
4、、局部化、确定性、一样性、完备性和可验证 性;32 结构化分析方法名师归纳总结 - - - - - - -第 1 页,共 6 页精选学习资料 - - - - - - - - - 立身以立学为先,立学以读书为本结构化方法的核心和基础是结构化程序设计理论;需求分析方法有(1)结构化需求分析方法;( 2)面对对象的分析的方法;从需求分析建立的模型的特性来分:静态分析和动态分析;结构化分析方法的实质:着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以 数据流图和数据字典为主要工具 ,建立系统的规律模型;结构化分析的常用工具( 1)数据流图;( 2)数据字典;( 3)判定树;( 4)判定表;数据流
5、图: 描述数据处理过程的工具,是需求懂得的规律模型的图形表示,它直接支持系统功能建模;数据字典: 对全部与系统相关的数据元素的一个有组织的列表,以及精确的、 严格的定义,使得用户和系统分析员对于输入、输出、储备成分和中间运算结果有共同的懂得;判定树: 从问题定义的文字描述中分清哪些是判定的条件,哪些是判定的结论,依据描述 材料中的连接词找出判定条件之间的从属关系、并列关系、 挑选关系, 依据它们构造判定树;判定表: 与判定树相像, 当数据流图中的加工要依靠于多个规律条件的取值,即完成该加 工的一组动作是由于某一组条件取值的组合而引发的,使用判定表描述比较相宜;数据字典是结构化分析的核心;软件需
6、求规格说明书的特点:( 1)正确性;( 2)无岐义性;( 3)完整性;( 4)可验证性;( 5)一样性;( 6)可懂得性;( 7)可追踪性;33 结构化设计方法软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,软件设 计是确定系统的物理模型;软件设计是开发阶段最重要的步骤,途径;是将需求精确地转化为完整的软件产品或系统的唯独从技术观点来看,软件设计包括软件结构设计、数据设计、接口设计、过程设计;结构设计:定义软件系统各主要部件之间的关系;数据设计:将分析时创建的模型转化为数据结构的定义;接口设计:描述软件内部、软件和协作系统之间以及软件与人之间如何通信;过程设计:把系统结
7、构部件转换成软件的过程描述;从工程治理角度来看:概要设计和具体设计;软件设计的一般过程:软件设计是一个迭代的过程;先进行高层次的结构设计;后进行低层次的过程设计;穿插进行数据设计和接口设计;衡量软件模块独立性使用耦合性和内聚性两个定性的度量标准;名师归纳总结 - - - - - - -第 2 页,共 6 页精选学习资料 - - - - - - - - - 立身以立学为先,立学以读书为本在程序结构中各模块的内聚性越强,就耦合性越弱;优秀软件应高内聚,低耦合;软件概要设计的基本任务是:(1)设计软件系统结构;(2)数据结构及数据库设计;(3)编写概要设计文档;(4)概要设计文档评审;模块用一个矩形
8、表示,箭头表示模块间的调用关系;在结构图中仍可以用带注释的箭头表示模块调用过程中来回传递的信息;仍可用带实心圆 的箭头表示传递的是掌握信息,空心圆箭心表示传递的是数据;结构图的基本形式:基本形式、次序形式、重复形式、挑选形式;结构图有四种模块类型:传入模块、传出模块、变换模块和和谐模块;典型的数据流类型有两种:变换型和事务型;变换型系统结构图由输入、中心变换、输出三部分组成;事务型数据流的特点是:接受一项事务, 依据事务处理的特点和性质,挑选分派一个适当的处理单元,然后给出结果;具体设计: 是为软件结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的 表达工具表示算法和数据结构的细节;
9、常见的过程设计工具有:34 软件测试图形工具 (程序流程图) 、表格工具 (判定表)、语言工具 (PDL );软件测试定义: 使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是 否满意规定的需求或是弄清预期结果与实际结果之间的差别;软件测试的目的:发觉错误而执行程序的过程;软件测试方法:静态测试和动态测试;静态测试包括代码检查、静态结构分析、代码质量度量;不实际运行软件,主要通过人工 进行;动态测试:是基本运算机的测试,主要包括白盒测试方法和黑盒测试方法;白盒测试:在程序内部进行,主要用于完成软件内部操作的验证;主要方法有规律掩盖、基本基路径测试;黑盒测试:主要诊断功能不对或遗漏
10、、界面错误、数据结构或外部数据库拜访错误、性能错误、初始化和终止条件错,用于软件确认;主要方法有等价类划分法、边界值分析法、错 误估计法、因果图等;软件测试过程一般按 4 个步骤进行:单元测试、集成测试、验收测试(确认测试)和系统 测试; 35 程序的调试程序调试的任务是诊断和改正程序中的错误,主要在开发阶段进行;程序调试的基本步骤:(1)错误定位;(2)修改设计和代码,以排除错误;(3)进行回来测试,防止引进新的错误;软件调试可分表静态调试和动态调试;静态调试主要是指通过人的思维来分析源程序代码 和排错,是主要的设计手段,而动态调试是帮助静态调试;主要调试方法有:(1)强行排错法;名师归纳总
11、结 - - - - - - -第 3 页,共 6 页精选学习资料 - - - - - - - - - 立身以立学为先,立学以读书为本(2)回溯法;(3)缘由排除法;数据结构与算法 1.1 算法算法:是指解题方案的精确而完整的描述;算法不等于程序,也不等于运算机方法,程序的编制不行能优于算法的设计;算法的基本特点:是一组严谨地定义运算次序的规章,每一个规章都是有效的,是明确 的,此次序将在有限的次数下终止;特点包括:( 1)可行性;( 2)确定性,算法中每一步骤都必需有明确定义,不答应有模棱两可的说明,不答应有 多义性;( 3)有穷性,算法必需能在有限的时间内做完,取能在执行有限个步骤后终止,包
12、括合 理的执行时间的含义;( 4)拥有足够的情报;算法的基本要素:一是对数据对象的运算和操作;二是算法的掌握结构;指令系统:一个运算机系统能执行的全部指令的集合;基本运算和操作包括:算术运算、规律运算、关系运算、数据传输;算法的掌握结构:列举法、归纳法、递推、递归、减斗递推技术、回溯法;算法复杂度:算法时间复杂和算法空间复杂度;算法时间复杂度是指执行算法所需要的运算工作量;算法空间复杂度是指执行这个算法所需要的内存空间;1.2 数据结构的基本概念数据结构讨论的三个方面:( 1)数据集合中和数元素之间所固有的规律关系,即数据的规律结构;( 2)在对数据进行处理时,各数据元素在运算机中的储备关系,
13、即数据的储备结构;( 3)对各种数据结构进行的运算;数据结构是指相互有关联的数据元素的集合;数据的规律结构包含:( 1)表示数据元素的信息;( 2)表示各数据元素之间的前后件关系;数据的储备结构有次序、链接、索引等;线性结构条件:( 1)有且只有一个根结点;( 2)每一个结点最多有一个前件,也最多有一个后件;非线性结构:不满意线性结构条件的数据结构;1.3 线性表及其次序储备结构名师归纳总结 线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置第 4 页,共 6 页- - - - - - -精选学习资料 - - - - - - - - - 立身以立学为先,立学以读书为
14、本是线性的; 在复杂线性表中,由如干数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件;非空线性表的结构特点:( 1)且只有一个根结点 a ,它无前件;( 2)有且只有一个终端点 a ,它无后件;( 3)除根结点与终端结点外,其他全部结点有且只有一个前件,也有且只有一个后件;结点个数 n 称为线性表的长度,当 n=0 时,称为空表;线性表的次序储结构具有以下两个基本特点:( 1)线性表中全部元素的所占的储备空间是连续的;( 2)线性表中各数元素在储备空间中是按规律次序依次存放的;a 的储备地址为:ADR(a )=ADRa + (i-1 ) k,ADR (a )为第一个元素的地址
15、,次序表的运算:插入、删除; 1.4 栈和队列k 代表每个元素占的字节数;栈是限定在一端进行插入与删除的线性表,答应插入与删除的一端称为栈顶,不答应插入与删除的另一端称为栈底;栈依据“先进后出 ”(FILO )或 “ 后进先出 ” (LIFO )组织数据,栈具有记忆作用;用top 表示栈顶位置,用bottom 表示栈底;栈的基本运算: (1)插入元素称为入栈运算; (2)删除元素称为退栈运算; (3)读栈顶元 素是将栈顶元素给一个指定的变量,此时指针无变化;队列是指答应在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表;Rear 指针指向队尾,front 指针指向队头;队列是 “先进先
16、出 ” (FIFO )或 “ 后进后出 ”(LILO )的线性表;队列运算包括(1)入队运算:从队尾插入一个元素;(2)退队运算:从队头删除一个元素;1.5 线性链表数据结构中的每一个结点对应于一个储备单元,这种储备单元称为储备结点,简称结点;结点由两部分组成: (1)用于储备据元素值,用于指向前一个或后一个结点;称为数据域;(2)用于存放指针, 称为指针域,在链式储备结构中,储备数据结构的储备空间可以不连续,各数据结点的储备次序与数据元素之间的规律关系可以不一样,而数据元素之间的规律关系是由指针域来确定的;链式存储方式即可用于表示线性结构,也可用于表示非线性结构;线性链表, HEAD 称为头
17、指针, HEAD=NULL(或 0)称为空表,假如是两指针:左指针(Llink )指向前件结点,右指针(Rlink )指向后件结点;线性链表的基本运算:查找、插入、删除;1.6 树与二叉树树是一种简洁的非线性结构,全部元素之间具有明显的层次特性;在树结构中, 每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称树的根;每一个结点可以有多个后件,称为该结点的子结点;没有后件的结点称为叶子结点;名师归纳总结 在树结构中, 一个结点所拥有的后件的个数称为该结点的度,全部结点中最大的度称为树第 5 页,共 6 页- - - - - - -精选学习资料 - - - - - -
18、 - - - 立身以立学为先,立学以读书为本的度;树的最大层次称为树的深度;二树的基本性质:( 1)在二叉树的第 k 层上,最多有 2 (k 1)个结点;( 2)深度为 m 的二叉树最多有 2 -1 个结点;( 3)度为 0 的结点(即叶子结点)总是比度为 2 的结点多一个;( 4)具有 n 个结点的二叉树,其深度至少为 ? n+1 ,其中 ? n表示取?n 的整数部分;( 5)具有 n 个结点的完全二叉树的深度为 ? n+1 ;( 6)设完全二叉树共有n 个结点;假如从根结点开头,按层序(每一层从左到右)用自然数 1, 2, n 给结点进行编号(k=1,2 n),有以下结论:如 k=1,就结
19、点为根结点,它没有父结点;如 k1,就该结点的父结点编号为 INT (k/2);如 2k n,就编号为 k 的结点左子编号为 2k;否就该结点无左子结点(也无右子结点);如 2k+1 n,就编号为 k 的结点的右子结点编号为2k+1;否就该结点无右子结点;满二叉树是指除最终一层外,每一层上的全部结点有两个子结点,就 k 层上有 2 个结点深 度为 m 的满二叉树有 2 -1 个结点;完全二叉树是指除最终一层外,每一层上的结点数均达到最大值,在最终一层上只缺少右 边的如干结点;二叉树储备结构采纳链式储备结构,对于满二叉树与完全二叉树可以按层 序进行次序储备;二叉树的遍历:( 1)前序遍历( DL
20、R ),第一拜访根结点,然后遍历左子树,最终遍历右子树;( 2)中序遍历( LDR ),第一遍历左子树,然后拜访根结点,最终遍历右子树;( 3)后序遍历( LRD ),第一遍历左子树,然后拜访遍历右子树,最终拜访根结点; 1.7 查找技术次序查找的使用情形:(1)线性表为无序表;(2)表采纳链式储备结构;二分法查找只适用于次序储备的有序表,对于长度为n 的序线性表, 最坏情形只需比较?n 次; 1.8 排序技术排序是指将一个无序序列整理成按值的有序表,对于长度为n 的有序线性表, 最坏情形只需比较?n 次;交换类排序法: (1)冒泡排序法,需要比较的次数为插入类排序法: (1)简洁插入排序法,最坏情形需要 最坏情形需要 O(n )次比较;挑选类排序法: (1)简洁挑选排序法,最坏情形需要 坏情形需要 O(nlog n)次比较;nn-1/2 ;( 2)快速排序法;nn-1/2 次比较;(2)希尔排序法,nn-1/2 次比较;(2)堆排序法,最名师归纳总结 - - - - - - -第 6 页,共 6 页