李明杰-二级公共基础知识讲义.doc_第1页
李明杰-二级公共基础知识讲义.doc_第2页
李明杰-二级公共基础知识讲义.doc_第3页
李明杰-二级公共基础知识讲义.doc_第4页
李明杰-二级公共基础知识讲义.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

公共基础在所有的二级考试科目中都占30分。在试卷当中,前十道选择题和前五道填空题均是公共基础内容。公共基础讲义数据结构与算法(约占10分)程序设计基础(约占4分)软件工程基础(约占8分)数据库设计基础(约占8分)第一章 数据结构基础本章内容提要 l 算法:算法的基本概念、算法复杂度l 数据结构的基本概念:什么是数据结构、 数据结构的图形表示、 线性结构与非线性结构l 线性表及其顺序存储结构:线性表的基本概念、 顺序存储结构、插入运算、删除运算l 栈和队列:栈及其基本运算、队列及其基本运算l 线性链表:基本概念、基本运算、循环链表及其基本运算l 树与二叉树:树的基本概念、二叉树及其基本性质、 二叉树的存储结构、二叉树的遍历l 查找技术: 顺序查找、二分法查找l 排序技术:交换类排序法、 插入类排序法、选择类排序法算 法I=1 & 给变量I赋值为1S=0 & 给变量S赋值为0DO WHILE I 4) 数据传输 赋值,输入与输出第二要素:算法的控制结构(决定了算法中各操作的执行顺序)顺序、选择、循环4. 算法设计的基本方法 (计算机解题的过程实际上是在实施某种算法)1) 列举法(列举所有解决方案)根据提出的问题,列举所有可能的情况,并用问题中给定的条件检验哪些是需要的,哪些是不需要的。2) 归纳法(特殊 - 一般)适合于列举量为无限的情况 通过列举少量的特殊情况,经过分析,最后找出一般的关系。3) 递推法(已知 - 未知) 从已知的初始条件出发,逐次推出所要求的各中间结果和最后结果。4) 递归法(逐层分解) 将一个复杂的问题归结为若干个较简单的问题,然后将这些较简单的每一个问题再归结为更简单的问题5) 减半递推法(对问题分而治之) “减半”是指将问题的规模减半,而问题的性质不变。所谓“递推”是指重复“减半”的过程。6) 回溯法复杂应用,找出一个解决问题的线索,然后沿着这个线索逐步多次“探、试”。5. 算法的复杂度(一个算法所要付出的代价)算法的复杂度可分为:时间复杂度和空间复杂度算法的复杂度是衡量算法好坏的量度。1) 时间复杂度概念:指执行算法所需要的计算工作量(即算法的运算次数)。含义:算法执行过程中所需要的基本运算次数。影响计算工作量的主要因素:第一,基本运算次数 第二,问题规模下面的方法不能用来度量算法的时间复杂度:a) 算法程序的长度或算法程序汇总语句(指令)条数b) 算法程序所执行的语句条数c) 算法程序执行的具体时间时间复杂度的具体度量方法:在同一问题规模下,如果算法执行所需的基本运算次数取决于某一特定输入时,可以用以下两种方法来分析算法的工作量:a) 平均性态分析b) 最坏情况复杂性分析2) 空间复杂度概念:空间复杂度是指执行该算法所需要的存储空间(内存空间)一个算法所用的内存空间包括:算法程序所占的存储空间;输入的初始数据所占的存储空间;算法执行过程中的额外空间。注意:a) 如果额外空间量相对于问题规模来说是常数,即额外空间量不随问题规模的变化而变化,则称该算法是原地工作的。b) 为了降低算法的空间复杂度,主要应减少需要处理的数据所占的存储空间以及额外空间,通常采用压缩存储技术。算法作业:(补完提纲)算法概念基本特征基本要素数据的运算和操作控制结构算法设计基本方法算法复杂度时间复杂度空间复杂度考题练习:1. 下列叙述正确的是:A. 算法就是程序 B. 算法强调的是利用技巧提高程序执行效率C. 设计算法时只需考虑结果的可靠性 D. 以上三种说法都不对2. 下面叙述正确的是A. 算法的执行效率与数据的存储结构无关B. 算法的空间复杂度是指算法程序中指令(或语句)的条数C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止D. 以上三种描述都不对3. 下列叙述中正确的是:A. 一个算法的空间复杂度大,则其时间复杂度也必定大B. 一个算法的空间复杂度大,则其时间复杂度必定小C. 一个算法的时间复杂度大,则其空间复杂度必定小D. 上述三种说法都不对4. 算法的空间复杂度是指A. 算法程序中变量的个数B. 算法程序中的指令条数C. 算法程序中各控制变量所占的额外空间D. 算法执行过程中所需要的存储空间历年真题选择题:0609(7)、0704(1)、0804 (5)、0909(4)、1003(2)数据结构目的:提高数据处理的效率(一是提高数据处理的速度;二是尽量节省在数据处理过程中所占用的计算机存储空间)基本概念:数据:在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。数据元素:数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。数据结构的内容:数据的逻辑结构线性结构线性表栈队列非线性结构树形结构图形结构数据的存储结构顺序存储链式存储数据的运算:检索、排序、插入、删除、修改逻辑结构:数据元素之间的逻辑关系,从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。存储(物理)结构:是指数据元素及其关系在计算机内存中的表示,即数据的逻辑结构在计算机存储空间中的存放形式。注意:对于同一个逻辑结构来说,采用不同的存储结构,其数据处理的效率是不同的。因此,在数据处理时,选择适合的存储结构很重要。各数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定相同。由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此,为了表示存放在计算机存储空间中的各数据元素之间的逻辑关系(即前后件关系),在数据结构中,不仅要存放各数据元素的本身,而且还需要存放各数据元素之间的前后件关系的信息。逻辑结构与物理结构的关系(1) 一种逻辑结构可以用不同的物理结构来实现。(2) 逻辑结构决定了算法的设计。(3) 物理结构决定了算法的实现。数据结构的图形表示表示数据结构的常用方法:二元关系表和图形表示。例:一年四季的数据结构可以用图形表示为:数据元素:用中间标有元素值的方框来表示,称为数据结点,简称为结点。元素之间的前后关系:用一条有向线段从前件结点指向后件结点(注意有时可以省略箭头)例:家庭成员数据结构可以表示成为:在数据结构中,没有前件的结点称为根结点没有后件的结点称为终端结点(也称为叶子结点),其它的称为内部结点。数据结构的分类:线性结构与非线性结构根据数据结构中各数据元素之间的前后关系的复杂度,一般将数据结构分成两大类:线性结构和非线性结构。注意:线性结构与非线性结构是在数据的逻辑结构概念下的一种划分方法,与数据的存储结构无关。前面说过,一种数据的逻辑结构根据需要可以表示成多种存储结构,但只要数据的逻辑结构是属于线性结构,则该逻辑结构的任意一种存储结构也都属于线性结构。线性结构的定义如果一个非空的数据结构满足下列两个条件:(1) 有且只有一个根结点(没有前件的结点称为根结点)(2) 每个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构,线性结构又称线性表。线性结构的操作在一个线性结构中插入或删除任何一个结点后还应是线性结构。历年真题:选择:0709(5)、0709(6)、0809(4)、0909(1)线性表(1) 线性表就是线性结构。(2) 线性表的顺序存储结构也称为顺序表。(3) 在顺序表中,所有元素所占的存储空间是连续的,且各数据元素在存储空间中是按逻辑顺序依次存放的,其前后两个元素在存储空间中是紧邻的,且前件元素一定存储在后件元素的前面。(4) 线性表的长度:是指线性表中结点的个数,当n=0里,称为空表。(5) 通常定义一个一维数组来表示线性表的顺序存储空间。用一维数组来存放线性表时,该一维数组的长度不要定义为太短,也不要定义为太长。顺序表(线性表的顺序结构)的插入运算:最坏情况下,N个元素的线性表要移动N次。顺序表的删除运算:最坏情况下,N个元素的线性表要移动N-1次。综上所述:线性表的顺序存储结构对于经常需要变动的大线性表就不合适了,因为插入和删除的效率比较低。栈栈的定义:栈是一种特殊的线性表,即限定在一端进行插入与删除的线性表。栈顶、栈底的定义:在栈中,允许插入和删除的一端称为栈顶,而不允许插入和删除的另一端称为栈底。入栈、退栈的定义:往栈中插入一个元素叫入栈运算(压栈),从栈中删除一个元素称为退栈运算。栈的数据操作原则:先进后出FILO栈具有记忆功能注意:(1)在顺序存储结构下,栈的插入与删除运算都不需要移动表中其他数据元素。(2)在栈中,栈顶指针动态反映了栈中元素的变化情况。栈的存储结构与运算栈的存储结构:在程序设计语言中,与普通线性表一样,用一维数组作为栈S(1:M)的顺序存储结构,其中M为栈的最大容量。栈的基本运算:入栈、退栈和读栈顶元素。在顺序结构下的读栈顶元素是指将栈顶元素赋值给一个指定的变量。(读不是删除,删除一定要先读。在只读的情况下,原来是多少,读后还是多少。)读栈顶元素过程中应注意的问题:(1) 读栈顶元素不删除栈顶元素,只是将它的值赋给一个变量。因此在这个运算中栈顶指针不会改变(2) 当栈顶指针为0时,说明栈为空,读不到栈顶元素。队列队列的定义:队列也是一种特殊的线性表,即允许在一端进行插入,而另一端进行删除的线性表。允许插入的一端叫队尾。(尾指针,rear)允许删除的一端叫队头。(头指针,front)注意:在尾上插入,头上删除队列的数据操作方法是:先进先出在顺序存储结构下,队列的插入与删除运算都不需要移动表中其他数据元素。在实际应用中,队列的顺序存储结构一般采用循环队列的形式,方法是将队列存储空间的最后一个位置绕到第一个位置,就形成逻辑上的环状空间,供队列循环使用。确定循环队列中元素个数的方法如下:设循环队列的容量为M如果rearfront,则循环队列中的元素个数为rear-front如果rear=1)个结点。性质2:深度为M的二叉树最多有2m -1个结点。性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总比度为2的结点多一个。n0=n2+1性质4:具有n个结点的二叉树,其深度至少为log2n+1 。其中log2n表示取log2n的整数部分。性质5:具有n个结点的完全二叉树的深度为log2n+1。性质6:具有n个结点的完全二叉树,它的叶子结点的个数按照如下公式计算: n为偶数时,叶子结点数为n/2个; n为奇数时,叶子结点数为(n+1)/2个。满二叉树与完全二叉树是特殊的二叉树满二叉树的定义:是指除最后一层外,每一层上的所有结点都有两个子结点。(注意不要混淆二叉树与满二叉树的概念)满二叉树的特征:满二叉树上的第k层上有2k-1个结点。完全二叉树的定义:除最后一层之外,每一层上的结点数均达到了最大值,在最后一层上只缺少右边的若干个结点。二叉树的存储结构:在计算机中存储二叉树时,除了可以将满二叉树与完全二叉树按层次进行顺序存储之外,其余二叉树通常采用链式存储结构。 二叉树的遍历 根据根结点的遍历顺序可分为:前序遍历:根、左、右中序遍历:左、根、右后序遍历:左、右、根历年真题:选择:0609(10)、0704(6)、0704(7)、0709(8)、0903(3)、1103(3)填空:0704(1)、0709(4)、0804(2)、0809(1)、0909(1)、1003(3)、1009(3)、1103(2)考题练习:1. 在一棵二叉树上第5层的结点数最多是 A)8 B)16 C)32 D)152. 某二叉树中度为2的结点有18个,则该二叉树中有_个叶子结点。3. 一棵二叉树第六层(根结点为第一层)的结点数最多为_个。4. 在深度为7的满二叉树中,叶子结点的个数为_。5. 有如下边的二叉树,进行后序遍历的结果为_。6. 对如上二叉树进行中序遍历的结果是_。查找技术顺序查找:从线性表的第一个元素开始,依次将线性表中的元素与被查元素进行比较,若相等则表示查找成功,若找不到相等的则查找失败。对于庞大的线性表来说,顺序查找的效率很低。但是在下列两种情况下只能采用顺序查找:第一、线性表是无序表(即表中的元素的排列是无序的),则不管顺序结构还是链式结构,都只能用顺序查找。第二、即使是有序线性表,如果采用链式存储结构,也只能用顺序查找。二分法查找(折半查找)只适用于顺序存储的有序表。优点是:1)二分查找的效率比顺序查找高得多 2)对于长度为n的有序线性表,在最坏的情况下,二分查找只需要比较log2n次,而顺序查找需要比较n次。最坏情况下查找的次数:排序技术排序技术有三大类方法:交换类排序、插入类排序、选择类排序。交换类排序法的定义:是指借助数据元素之间的相互交换进行排序的一种方法。 典型的交换类排序法:冒泡排序和快速排序 典型的插入类排序法:简单插入排序(也称为直接插入排序)和希尔排序 典型的选择类排序法:简单选择排序和堆排序以上排序方法最坏情况下需要排序的次数(时间复杂度)历年真题:选择:0609(8)、0709(7)、0804(6)、0809(3)、0903(4)、1003(1)填空:1009(2)、1103(1)考题练习:1. 对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 A)冒泡排序为n/2 B)冒泡排序为n C)快速排序为n D) 快速排序为n(n-1)/22. 对于长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为 A)log2n B) n/2 C)n D)n+13. 数据结构中,能用二分法进行查找的是 A)顺序存储的有序线性表 B)线性链表 C)二叉链表 D)有序线性表4. 在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为_。 A)63 B)64 C)6 D)75. 对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为( )。习题一一、 选择题1. 算法的时间复杂度是指( )A) 执行算法程序所需要的时间 B)算法程序的长度C) 算法执行过程中所需要的基本运算次数 D)算法程序中的指令条数2. 算法的空间复杂度是指( ) A)算法程序的长度 B)算法程序中的指令条数 C)算法程序所占的存储空间 D)算法执行过程中所需要的存储控件3. 下列叙述中正确的是( ) A)线性表是线性结构 B)栈与队列是非线性结构 C)线性链表是非线性结构 D)二叉树是线性结构4. 数据的存储结构是指( ) A)数据所占的存储空间量 B)数据的逻辑结构在计算机中的表示 C)数据在计算机中的顺序存储方式 D)存储在外存中的数据5. 下列关于队列的叙述中正确的是( ) A)在队列中只能插入数据B)在队列中只能删除数据 C)队列是先进先出的线性表D)队列是先进后出的线性表6. 下列关于栈的叙述中正确的是( ) A)在栈中只能插入数据B)在栈中只能删除数据 C)栈是先进先出的线性表D)栈是先进后出的线性表7. 设有右列二叉树:对此二叉树中序遍历的结构为( ) A)ABCDEF B)DBEAFC C)ABDECF D)DEBFCA 8. 在深度为5的满二叉树中,叶子结点的个数为( ) A)32 B)31 C)16 D)159. 对长度为n的线性表进行顺序查找,在最坏情况下所需要比较次数为( ) A)n+1 B)n C)(n+1)/2 D)n/210. 设树T的度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1。则T中的叶子结点数为( ) A)8 B)7 C)6 D)5二、填空题1. 在长度为n的有序线性表中进行二分查找,需要的比较次数为 ( )。2. 设一棵完全二叉树共有700个结点,则在该二叉树中有( )个叶子结点。3. 设一棵二叉树中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为( )。4. 在最坏情况下,冒泡排序的时间复杂度为( )。5. 在一个容量为15的循环队列中,若头指针front=6,尾指针rear=9,则该循环队列中共有( )个元素。Private Sub cmdAddAll_Click()Dim str As StringDim rs As New ADODB.RecordsetDim rsNew As New ADODB.RecordsetStr=”select ID from Person where Department=” & Me.Department & ” ”Set rs=GetRS(str)While Not rs.EOF With rsNew 添加记录 .AddNew !YearMonth = Me.YearMonth !Person = rs(0) !Type = Me.TypeName !Name = Me.OtherName !Money = Me.Money !Description = Me.Description .Update End With rs.MoveNextWendrsNew.Closers.CloseEnd SubPrivate Sub cmdAddOne_Click()Dim str As StringDim rs AS New ADODB.RecordsetStr = “select * from Salary_Other”Set rs = GetRS(str)With rs 添加记录 .AddNew !YearMonth = Me.YearMonth !Person = Me.ID !Type = Me.TypeName !Name = Me.OtherName !Money = Me.Money !Description = Me.Description .UpdateEnd Withrs.CloseEnd Sub第二章 程序设计基础程序设计方法和风格程序设计的风格强调简单和清晰,程序必须是可以理解的。1. 设计的风格程序设计的根本目标是要降低程序的复杂性和提高程序的可读性。1) 结构要清晰:程序编写要做到清晰第一,效率第二;要求程序是模块化结构的,每个模块内部都由顺序、选择、循环三种基本结构组成。2) 模块化:各模块的功能尽量单一。3) 设计程序时应遵循“简短朴实”的原则。4) 不好的程序宁可重写,也不要去修补。2. 语言应用的风格1) 选择合适的程序设计语言(比如数据库应用的可以用VFP和ACCESS,编写小型软件可选用VB)2) 对一些程序设计语言中的灵活度大,不易理解的语句尽量不用。3. 程序文本的风格1) 程序的层次要分明,在各层之间应采用缩进规则。2) 符号要规范,变量名的命名要遵循“常用从简,专用从繁”的原则。3) 在程序中加必要的注释。注释分序言性注释和功能性注释。4) 在程序中要合理地使用分隔符。4. 输入与输出的风格1) 在需要输入数据时,应该给出必要的提示。2) 要对输入的数据进行检验,以确认其有效性。3) 输入的步骤和操作要简单。4) 要给输出加注释。历年真题:选择:0609(1)、0709(4)结构化程序设计1. 结构化程序设计方法的四条原则是:自顶向下、逐步求精、模块化、限制使用goto语句。1) 自顶向下:总体-细节;全局-局部2) 逐步求精:对复杂程序设计子目标过渡3) 模块化:总目标分成分目标,再分成小目标(模块),上层模块决定做什么,下层模块告诉我们怎么做4) 限制使用goto语句:不滥用、慎使用、清晰性为目标2. 结构化程序的基本特点:以控制结构为单位,只有一个入口和一个出口,使各单位之间的接口比较简单。1) 顺序结构:一种简单的程序设计,最基本、最常用的结构;2) 选择结构:又称为分支结构,包括简单选择和多分支选择结构,可根据条件,判断应该选择哪一条分支来执行相应的语句序列;3) 循环结构:又成为重复结构,可根据给定条件,判断是否需要重复执行某一相同程序段。3. 结构化程序设计的基本原则有:1) 使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑。2) 选用的控制结构只准许一个入口和一个出口。3) 复杂结构应该用嵌套的基本 控制结构进行组合嵌套来实现。4) 程序语句组成容易识别的块,每块只有一个入口和一个出口。5) 语言中所没有的控制结构,应采用前后一致的方法来模拟。6) 严格控制goto语句的使用。程序设计并不等于编程。编程只是程序设计整个过程中的一小步。历年真题:选择:0804(2)、0909(6)、1103(5)填空:0903(3)、1009(4)面向对象的程序设计传统结构化程序设计方法的核心是算法;面向对象的核心是对象。1. 基本概念对象:具有属性(数据)和方法(行为方式)的实体。类:描述的是具有相似性质的一组对象。一个具体对象称为类的实例。方法:允许作用于某个对象上的各种操作。消息:用来请求对象执行某一处理或回答某些信息的要求。继承:类之间的相似性的机制。封装:是一种信息隐藏技术,目的在于将对象的使用者和对象的设计者分开。用户只能见到对象封装界面上的信息,不必知道实现的细节。封装一方面通过数据抽象,把相关的信息结合在一起,另一方面也简化了接口。2. 面向对象方法的优点:1) 与人类习惯的思维方法一致2) 稳定性好3) 可重用性好4) 易于开发大型软件产品5) 可维护性好。3. 对象的基本特点:1) 标识惟一性2) 分类性3) 多态性4) 封装性5) 模块独立性好。历年真题:选择:0704(4)、0709(3)、0809(7)、1009(6)、1103(10)考题练习:1. 下列选项不符合良好程序设计风格的是:A. 源程序要文档化 B.数据说明的次序要规范化C. 避免滥用goto语句 D.模块设计主要保证高耦合、高内聚2. 下面描述中,符合结构化程序设计风格的是:A. 使用顺序、选择和循环三种基本控制结构表示程序的控制逻辑B. 模块只有一个入口,可以有多个出口C. 注重提高程序的执行效率D. 不使用goto语句3. 下列选项中不属于结构化程序设计方法的是:A. 自顶向下 B. 逐步求精 C. 模块化 D. 可复用4. 下面概念中,不属于面向对象方法的是:A. 对象 B. 继承 C. 类 D. 过程调用5. 在面向对象方法中,类的实例称为( )。6. 在面向对象方法中,( )描述的是具有相似属性与操作的一组对象。习题二一、选择题1. 结构化程序设计主要强调的是( )A. 程序的规模 B. 程序的易读性 C. 程序的执行效率 D. 程序的可靠性和可移植性2. 对建立良好的程序设计风格,下面描述正确的是( )A. 程序应简单、清晰、可读性好 B. 符号名的命名只要符合语法C. 充分考虑程序的执行效率 D. 程序的注释可有可无3. 在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送( )A. 调用语句 B. 命令 C. 口令 D. 消息4. 信息隐藏的概念与下述哪一种概念直接相关?A. 软件结构定义 B. 模块独立性 C. 模块类型划分 D. 模块耦合度5. 下面对对象概念描述错误的是( )A. 任何对象都必须有继承性 B. 对象是属性和方法的封装体C. 对象间的通讯靠消息传递 D. 操作是对象的动态属性二、填空题1. 结构化程序设计的三种基本逻辑结构为( )。2. 源程序文档化要求程序应加注释,注释一般分为( )和( )。3. 在面向对象方法中,信息隐藏是通过对象的( )性来实现的。4. 类是一个支持集成的抽象数据类型,而对象是类的( )。5. 在面向对象方法中,类之间共享属性和操作的机制称为( )。#includeusing namespace std;class Rectangle 矩形类 int length,width; public:Rectangle()coutlengthwidth;Setlw(int Nlen,int Nwid )length=Nlen;width=Nwid;Getlen()return length; Getwid()return width;Area()return length*width;void main()Rectangle r; coutr.Getlen() r.Getwid() r.Area()endl; r.Setlw(5,6); coutr.Getlen() r.Getwid() r.Area()endl;#include #includeusing namespace std;class student 学生类 char name10; int score; public:student(char na,int d)strcpy(name,na);score=d;void display()coutname score=90) cout优=80) cout良=70) cout中=60) cout及格endl; else cout不及格endl;void main()student s1(张天明,78),s2(李林,93),s3(马力,50); s1.display(); grade(s1); s2.display(); grade(s2); s3.display(); grade(s3);第三章 软件工程基础软件工程基本概念1. 计算机软件是包括程序、数据及相关文档的完整集合。2. 软件的特点包括:1) 软件是一种逻辑实体2) 软件的生产与硬件不同,它没有明显的制作过程。3) 软件在运行、使用期间不存在磨损、老化问题4) 软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题。5) 软件复杂性高,成本昂贵。6) 软件开发设计诸多的社会因素。3. 软件按功能分为应用软件、系统软件、支撑软件(或工具软件)。4. 软件危机主要表现在成本、质量、生产率等问题。5. 软件工程是在计算机软件定义、开发和维护过程中所使用的一整套方法、工具、文档、实践标准和工序。6. 软件工程包括3个要素:方法、工具和过程。7. 软件工程的核心思想是把软件产品看作是一个工程产品来处理。8. 软件工程过程是把软件转化为输出的一组彼此相关的资源和活动,包含4种基本活动:(1)P软件规格说明; (2)D软件开发;(3)C软件确认; (4)A软件演进。9. 软件生命周期分为三个时期共八个阶段1) 软件定义期:包括问题定义、可行性研究和需求分析三个阶段。2) 软件开发期:包括系统设计、详细设计、编码和测试四个阶段。3) 软件维护期:即运行维护阶段。软件生命周期:软件产品从提出、实现、使用维护到停止使用退役的过程称为软件的生命周期。软件生命周期的瀑布模型研究与计划需求分析设计实现测试运行-维护定义阶段开发阶段维护阶段需求规格说明书概要设计文档详细设计文档测试报告10. 软件工程的目标与原则: 目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可交互性且满足用户需求的产品。 原则:抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。11. 软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。历年真题: 选择:0609(3)、0709(1)、0903(5)、1003(3)、1003(6)、1009(4)、1009(5)填空:0704(4)、0809(3)、1003(4)考题练习:1. 下列描述中正确的是A. 程序就是软件 B. 软件开发不受计算机系统的限制C. 软件既是逻辑实体,又是物理实体 D. 软件是程序、数据与相关文档的集合2. 下列描述中正确的是A. 软件工程只是解决软件项目的管理问题B. 软件工程主要解决软件产品的生产率问题C. 软件工程的主要思想是强调在软件开发过程中需要应用工程化原则。D. 软件工程只是解决软件开发中的技术问题。3. 在软件开发中,下面任务不属于设计阶段的是A. 数据结构设计 B. 给出系统模块结构 C. 定义模块算法 D. 定义需求并建立系统模型4. 下列选项中不属于软件生命周期开发阶段任务的是:A. 软件测试 B. 概要设计 C. 软件维护 D. 详细设计5. 下列叙述中正确的是:A. 软件交付使用后还需要进行维护 B. 软件一旦交付使用就不需要再进行维护C. 软件交付使用后其生命周期就结束 D. 软件维护是修复程序中被破坏的指令 结构化分析方法在系统分析阶段,结构化分析方法用来对系统进行逻辑设计,此时不考虑物理实现的问题、只考虑“做什么”的问题,而系统的物理设计(即“如何做”)的问题留在系统设计阶段用结构化设计方法去做。1. 常见的需求分析方法:(1)结构化需求分析方法; (2)面向对象的分析的方法。2. 结构化分析方法的实质:着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。3. 结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论