




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、全國計算機等級考試目錄第一部分 公共基礎知識第 1 章 算法與數據結構1考點 1 算法1考點 2 數據結構1考點 3 線性表及其順序存儲結構1考點 4 棧和隊列1考點 5 線性鏈表2考點 6 樹與二叉樹2考點 7 查找技術3考點 8 排序技術3第 2 章 程序設計基礎4考點 1 程序設計方法與風格4考點 2 結構化程序設計5考點 3 面向對象的程序設計5第 3 章軟件工程基礎5考點 1 軟件工程基本概念5考點 2 軟件分析方法6考點 3 結構化設計方法7考點 4 軟件測試8考點 5 程序的調試9第 4 章 數據庫設計基礎9考點 1 數據庫系統的基本概念9考點 2 數據庫系統的基本概念10考點
2、3 關系代數12考點 4 數據庫設計與管理12第二部分 二級 C 語言第 1 章 程序設計基本概念14考點 1 程序設計14考點 2 C 程序的結構和格式14考點 3 常量和變量14考點 4 算術表達式15考點 5 賦值表達式16考點 6 自加、自減和逗號運算16第 2 章 順序結構17考點 1 字符型常量與變量17考點 2 putchar 與 getchar 函數17考點 3 printf 函數17考點 4 scanf 函數18考點 5 位運算的含義和應用18第 3 章 選擇結構19考點 1 關系運算符和關系表達式19考點 2 邏輯運算符和邏輯表達式19考點 3 if 語句及其構成的選擇結構
3、19考點 4 switch 語句與 break 語句20第 4 章 循環結構20考點 1 while 循環結構20考點 2 do-while 循環結構21考點 3 for 循環結構21考點 4 嵌套循環語句21第 5 章 函數21考點 1 庫函數21考點 2 函數的調用22考點 3 參數傳遞22考點 4 函數的遞歸調用23考點 5 局部、全局變量和存儲分類23第 6 章 地址與指針23考點 1 變量的地址和指針23考點 2 指針變量的操作24考點 3 函數之間地址的傳遞24第 7 章 數組24考點 1 一維數組的定義及元素的引用. 24考點 2 函數對一維數組及元素的引用. 25考點 3 二維
4、數組的定義25考點 4 二維數組和指針25考點 5 二維數組名和指針數組作為實參. 26第 8 章 字 符串26考點 1 用一維字符數組存放字符串26考點 2 使指針指向字符串26考點 3 字符串的輸入和輸出26考點 4 字符串數組27考點 5 用于字符串處理的函數27第 9 章 編譯預處理和動態存儲分配27考點 1 編譯預處理27考點 2 宏替換27考點 3 文件包含處理28考點 4 動態存儲分配28第 10 章 結構體、共用體和用戶定義類型28考點 1 結構體28考點 2 共用體29考點 3 用戶定義類型29第 11 章 文件29考點 1 文件指針29考點 2 文件的讀寫30第一部分 公共
5、基礎知識第 1 章 算法與數據結構考點 1 算法1什么是算法算法是指對解題方案的準確而完整的描述。計算機程序本質上就是一個算法,它告訴計算機確切的步驟來執行一個指定的任務。(1)算法的基本特征一般來說,算法應具有:可行性、確定性、有窮性、擁有足夠的情報這幾個特征。(2)算法的組成要素通常,一個算法由兩部分組成:一是對數據對象的運算和操作,二是算法的控制結構。2算法的復雜度算法的復雜度是算法規模的度量,一個算法的復雜度高低體現在運行該算法所需要的計算機資源的多少,所需的資源越多,就說明該算法的復雜度越高;反之,所需的資源越少,則該算法的復雜度越低。算法復雜度包括算法的時間復雜度和算法的空間復雜度
6、。考點 2 數據結構1數據結構的概念所謂數據結構是指由某一數據對象及該對象中所有數據成員之間的關系組成的集合。成員之間的關系有很多種,最常見的是前后件關系。2數據的邏輯結構(1)邏輯結構的定義數據的邏輯結構,是指反映數據之間邏輯關系的數據結構。對于電腦上的數據而言,邏輯結構就是能夠用眼睛看到的數據形式,包括在屏幕上看到的文本、圖片、視頻等。(2)邏輯結構的分類根據數據結構中各元素之間前后關系的復雜程度,將數據的邏輯結構分成線性結構和非線性結構。一個非空的線性結構如果滿足以下兩個條件:有且只有一個根結點;每一個結點最多有一個前件,也最多有一個后件。3數據的存儲結構數據的存儲結構也稱為數據的物理結
7、構, 是指數據在計算機中存放的方式,包括數據元素的存儲和關系的存儲。通常,一種數據的邏輯結構根據需要可以表示成多種存儲結構,常用的存儲結構有順序、鏈式存儲結構。考點 3 線性表及其順序存儲結構1線性表的基本概念線性表是由 n 個數據元素組成的有限序列,是最簡單、最常用的數據結構。其中的數據元素有著廣泛的含義,可以是一個單獨的數字或字母,可以是矩陣中的一行或一列向量, 也可以是二維表中的一條記錄。線性表是一種線性結構。數據元素在線性表中的位置,只取決于它們自己的序號,即數據元素之間的相對位置是線性的。2線性表的順序存儲結構一種數據的邏輯結構根據需要可以表示成多種存儲結構。線性表的存儲結構常用的是
8、順序存儲,也稱為順序分配。線性表的順序存儲結構具有以下兩個基本特點:線性表中所有元素所占的存儲空間是連續的;線性表中各數據元素在存儲空間中是按邏輯順序依次存放的。3順序表的插入所謂“順序表”指的是使用順序存儲結構的線性表。在順序表中插入一個新的數據元素,就像是在排隊買票的時候進來了一個插隊的人。4順序表的刪除在順序表中刪除一個數據元素,就像是在排隊買票的時候其中的一個人離開了。在平均情況下,要在線性表中刪除一個元素,需要移動線性表中一半的數據元素。考點 4 棧和隊列1棧及其基本運算(1)什么是棧棧是一種特殊的線性表。在這種特殊的線性表中,其插入和刪除運算都只能在線性表的一端進行。一端是封閉的,
9、不允許插入和刪除數據元素;另一端是敞開的,允許插入和刪除數據元素。在棧中,允許插入和刪除數據元素的一端稱為棧頂,而不允許插入和刪除數據元素的一端稱為棧底。棧頂元素總會是被最后插入的元素,從而也是最先被刪除的元素;棧底元素總是最先被插入的元素,從而也是最后才能被刪除的元素。即棧是按照“先進后出”或“后進先出”的原則組織數據的。棧具有記憶的功能, 支持子程序的調用。通常用指針 top 來指示棧頂位置,用指針 bottom 來指示棧底的位置。往棧中插入一個元素稱為入棧運算,從棧中刪除一個元素稱為退棧運算。通過棧頂指針 top 來反反映棧中元素的動態變化情況。(2)棧的基本運算棧的基本運算有 3 種:
10、入棧、退棧與讀棧頂元素。入棧運算。入棧運算是指在棧頂位置插入一個新元素。這個運算有兩個基本操作:首先將棧頂指針進一(即top 加 1),然后將新元素插入到棧頂指針指向的位置。退棧運算。退棧運算是指取出棧頂元素并賦給指定的變量。這個運算有兩個基本操作:首先將棧頂元素賦值給一個指定的變量,然后將棧頂指針退一(即 top 減 1)。讀棧頂元素。讀棧頂元素是指將棧頂元素賦給一個指定的變量,但是不刪除棧頂元素。因此,在這個運算中,棧頂指針不會改變。當棧頂指針為 0 時,說明棧空,讀不到棧頂元素。2隊列及其基本運算(1)什么是隊列隊列是指允許在表的一端進行插入、而在另一端進行刪除的線性表。允許插入的一端稱
11、為隊尾,通常用一個隊尾指針(rear)指向隊尾元素,隊尾指針總是指向最后被插入的元素;允許刪除的一端稱為排頭(也稱為隊頭),通常也用一個排頭指針(front)指向排頭元素的前一個位置。(2)循環隊列及其運算隊列的順序存儲結構一般采用循環隊列的形式。所謂的循環隊列,就是將隊列的存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環狀空間,供隊列循環使用。入隊運算。入隊運算是指在循環隊列的隊尾加入一個新元素。這個運算有兩個基本操作:首先將隊尾指針進一(即 rear=rera+1),并當 rear=m+1 時置 rear=1;然后將新元素插入到隊尾指針指向的位置。退隊運算。退隊運算是指在循環隊列的排頭
12、位置退出一個元素并賦值給指定的變量。這個運算有兩個基本操作:首先將排頭指針進一(即 front=front+1),并當front=m+1 時置 front=1;然后將排頭指針指向的元素賦給指定的變量。考點 5 線性鏈表1線性鏈表(1)線性鏈表線性表的鏈式存儲結構稱為線性鏈表。在線性鏈表中,存儲空間上的每一個存儲結點都要分成兩部分:一部分用于存儲數據元素的值,稱為數據域;另一部分用于存儲該數據元素的存儲序號(存儲結點的地址,即指向后件結點),稱為指針域。(2)線性鏈表的查找在非空的線性鏈表中查找指定元素的操作:從頭指針指向的結點開始往后沿著指針進行掃描,如果找到要查找的內容,則查找成功; 如果沒
13、有對應的要查找的元素,則查找失敗。為了彌補線性單鏈表的這個缺點,對線性鏈表中的每個結點設置兩個指針,一個稱為左指針(Llink),用以指向其前件結點;另一個稱為右指針(Rlink),用來指向其后件結點。這樣的線性表稱為雙向鏈表。(3)線性鏈表的插入在向線性鏈表中插入一個新元素之前,我們先要給該元素分配一個新結點,其中包括值域和指針域以便用于存儲該元素的值。然后找到插入位置,將插入位置前件的指針指向新結點,將新接點的指針指向插入位置后件的結點。(4)線性鏈表的刪除要從線性表中刪除一個元素,首先將要刪除元素的前后件兩個指針斷開,然后把要刪除結點的前件的指針,指向刪除結點后的數據元素。2循環鏈表循環
14、鏈表與單鏈表唯一的不同,就是最后一個結點的指針域中的值不同。單鏈表的最后一個結點的指針域存放的是一個空指針,而循環鏈表的最后一個結點的指針域存放的是指向第一個結點的指針。考點 6 樹與二叉樹1樹的基本概念樹是一種比較簡單的非線型結構。在樹中所有的數據元素之間具有明顯的層次關系。之所以將這種數據結構命名為“樹”,是因為其結構看上去像一棵倒長著的樹。在樹的圖形表示中,上端的結點是前件,下端的結點是后件。2二叉樹及基本性質(1)二叉樹二叉樹是一種特殊的樹,是一種很有用的非線型結構。所有樹結構上的術語都可以用在二叉樹上。二叉樹具有以下兩個特征: 非空二叉樹只有一個根結點; 每個結點最多有兩棵子樹,且分
15、別稱為該結點的左子樹和右子樹。在二叉樹中,每個結點的度最大為 2,所有的左子樹和右子樹也均是二叉樹。同時,在二叉樹中所有的結點可以沒有左子樹,也可以沒有右子樹。即沒有左子樹又沒有右子樹的結點是葉子結點。(2)滿二叉樹所謂滿二叉樹是指:除最后一層外,每一層上的所有結點都有兩個子結點。這就是說,在滿二叉樹中,每一層上的結點數都達到最大值,即滿二叉樹的第 k 層上有 2k-1 個結點,且深度為m 的滿二叉樹有 2m-1 個結點。(3)完全二叉樹所謂的完全二叉樹是指:除最后一層外, 每一層上的結點數均達到最大值,最后一層上只缺少右邊的若干個結點。完全二叉樹就是去掉最后一層若干個右邊結點的滿二叉樹。(4
16、)二叉樹的基本性質二叉樹的基本性質。二叉樹具有以下幾個基本性質:性質 1:在二叉樹的第 K 層上最多有 2k-1(k1)個結點。性質 2:深度為 m 的二叉樹最多有 2m-1 個結點。性質 3:在任意一棵二叉樹中,葉子結點(即度為0 的結點),總比度為 2 的結點多一個。性質 4:具有 n 個結點的二叉樹,其深度至少為log2n+1。完全二叉樹的兩項特性。完全二叉樹還具有以下兩項特性:性質 5:具有 n 個結點的完全二叉樹,其深度為log2n+1。性質 6:設完全二叉樹共有 n 個結點。如果從根結點開始, 按層序(每一層從左到右)用自然數“1,2,,n”給結點進行編號。3二叉樹的遍歷二叉樹的遍
17、歷是指按照一定的順序訪問二叉樹中的結點,每個結點只被訪問一次。為了保證所有結點被不重不漏地訪問,必須按照一定的順序進行。(1)前序遍歷(DLR)首先訪問根結點,然后遍歷左子樹,最后遍歷右子樹;在遍歷左、右子樹時,也按上述的順序執行。可見前序遍歷二叉樹是一個遞歸的過程。對于二叉樹的前序遍歷,具有如下的規則:對于空的二叉樹,不進行操作返回空值。對于非空的二叉樹的遍歷按下列順序執行:訪問根結點;前序遍歷左子樹;前序遍歷右子樹。(2)中序遍歷(LDR)首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹;在遍歷左、右子樹時,也按上述的順序執行。可見中序遍歷二叉樹也是一個遞歸的過程。對于二叉樹的中序遍歷,具有
18、的規則:對于空的二叉樹,不進行操作返回空值。對于非空的二叉樹的遍歷按下列順序執行:中序遍歷左子樹;訪問根結點;中序遍歷右子樹。(3)后序遍歷(LRD)首先遍歷左子樹,然后遍歷右子樹,最后訪問根結點;在遍歷左、右子樹時,也按上述的順序執行。可見后序遍歷二叉樹同樣也是一個遞歸的過程。對于二叉樹的后序遍歷,具有的規則:對于空的二叉樹,不進行操作返回空值。對于非空的二叉樹的遍歷按下列順序執行:后序遍歷左子樹;后序遍歷右子樹;訪問根結點。考點 7 查找技術查找就是從給定的一個數據結構中,找出指定的數據元素。本節中我們只學習對線性表的查找,常用的查找方法有順序查找和二分法查找。1順序查找順序查找的過程是:
19、從線性表的第一個元素開始,依次將線性表中的數據與要查找的數據進行比較,如果找到了相等的數據,則查找成功, 停止向下查找;如果比較完了線性表中的所有數據元素,沒有找到相等的數據,則查找失敗。2二分法查找二分法查找又稱為折半查找,只能應用于順序存儲的有序表。有序表是指線性表中的元素已經按值非遞減(從整體上看是升序,但相鄰的元素的值可以相同)排列。考點 8 排序技術排序就是將一組無序的數據按照一定的順序排列起來。本節中所指的順序是非遞減順序(整體上呈升序,但相鄰的數據可以相等),基本排序算法主要有交換類排序、插入類排序和選擇類排序 3 大類。1交換類排序交換排序就是借助數據元素之間的互相交換進行排序
20、的方法。常用的交換排序方法有冒泡排序和快速排序。(1)冒泡排序冒泡排序的過程簡單,它的基本思想是通過對相鄰元素進行比較,并根據比較的結果交換位置,從而逐步由任意序列變為有序序列。過程是:先從頭往后掃描、然后從后往頭掃描、再重復上述過程(2)快速排序快速排序就是一種可以通過一次交換而消除多個逆序的排序方法,因此相對冒泡排序法而言,速度要快。2插入類排序插入排序,就是將無序序列中的各個元素依次插入到已經排好序的線性表中。常用的插入排序的方法有簡單插入排序和希爾排序。(1)簡單插入排序簡單插入排序的方法是:在初始序列中, 將只包含第 1 個元素的子序列看成是一個有序序列,然后從第 2 個元素起,依次
21、將每個元素插入到前 1 個有序子序列中。(2)希爾排序希爾排序的基本思想是:將整個無序序列分割成若干個子序列,對每個子序列分別進行簡單插入排序,最后再對全體元素進行一次簡單插入排序。與簡單插入排序的子序列構成方式不同,希爾排序是將原序列中相隔某個增量h 的元素構成一個子序列。在排序過程中逐步減少這個增量,最后當 h 減到 1 時,進行一次插入排序,排序就完成了。增量序列一般取 hi = n/2k (k=1,2,,log2n),其中 n 為待排序序列的長度。希爾排序的效率與所選取的增量序列有關。通過希爾排序法對長度為 n 的線性表進行排序,如果選取了上述增量序列,最壞情況下,需要比較的次數為 O
22、(n1.5)。3選擇類排序常用的選擇排序有兩種,簡單選擇排序和堆排序。(1)簡單選擇排序簡單選擇排序的基本步驟是:在一組n 個數據中選擇出最小值;若它不是這組數據中的第 1 個數據,則將它與這組數據中的第 1 個數據互換位置;對剩下的子表采用同樣的方法,直到子表空為止。(2)堆排序法在學習堆排序之前,我們先來看一下堆的定義,堆的定義如下:具有n 個元素的序列(h1,h2,hn),當且僅當滿足或(i=1,2, ,n/2)時稱之為堆。第 2 章 程序設計基礎考點 1 程序設計方法與風格程序是一組計算機指令的集合,是程序設計的最終成果。程序設計方法所要做的工作是,如何對實際問題進行抽象和歸納以及對程
23、序進行編排,才能使程序的可讀性、穩定性、可維護性、效率等更好。目前,主要有兩種程序設計方法:結構化程序設計和面向對象程序設計。1源程序文檔化符號名的命名:符號名的命名應盡量表達一些實際意義,以增強程序的可讀性。程序注釋:良好的注釋能夠幫助讀者理解程序。注釋一般分為序言性注釋和功能性注釋,以給出程序的整體說明和程序的主要功能。序言性注釋一般位于每一個程序的開頭部分,它給出程序的整體說明;功能性注釋一般嵌在原程序之中。視覺組織:為使程序的結構清晰明了, 可以在程序中利用空行、空格、縮進等技巧使程序層次清晰。2數據說明的方法在編寫程序時,一定要注意數據說明的方法。為使程序中的數據說明易于理解和維護。
24、3語句的結構程序的語句應該簡單易懂,在編寫程序時,應注重:每一行只寫一條語句。程序編寫優先考慮清晰性。一般情況下,在編寫程序時, 要做到清晰第一,效率第二。首先要保證程序的正確性,然后再提高速度。避免使用臨時變量而使程序的可讀性下降。盡可能使用庫函數。避免不必要的轉移。利用信息隱蔽,保證每一個模塊的獨立性。避免使用復雜的條件嵌套語句。避免使用無條件轉移語句。盡量做到模塊功能單一化。不要修補不好的程序,要重新編寫。4輸入和輸出輸入和輸出的方式應盡可能方便用戶的使用。系統能否讓用戶接受,往往取決于輸入和輸出的風格。考點 2 結構化程序設計1結構化程序設計的原則結構化程序設計必須遵守模塊化、自頂向下
25、、逐步求精、限制使用 goto 語句的原則。2結構化程序設計的基本結構與特點結構化程序設計方法是一種程序設計的先進方法。實事證明,在程序設計時,只要使用 3 種程序結構就可以實現所有的結構形式, 它們是順序結構、選擇結構和循環結構。3結構化程序設計原則和方法的應用結構化程序設計的效率較高,但是在實際設計程序時,應要注意:使用程序設計語言中的順序、選擇、循環等有限的控制結構表示程序的控制邏輯。選用的控制結構只允許有一個入口和一個出口。程序語句組成容易識別的語句序列塊,每塊只允許有一個入口和一個出口。復雜結構的程序設計時,僅用嵌套的基本控制結構進行組合嵌套來實現。語言中所沒有的控制結構,應采用前后
26、一致的方法來模擬。嚴格控制 goto 語句的使用,但不是完全不能用。考點 3 面向對象的程序設計面向對象方法,現在已經發展為一種主流的軟件開發方法。它歷經了多年的研究和發展,已經日益成熟和完善,應用也越來越深入和廣泛。1面向對象方法的特點面向對象的程序設計,是在結構化程序設計的基礎上,以更接近人們通常思維的方式來解決問題的一種全新的軟件開發技術。面向對象的程序設計以對象為核心,強調對象的“封裝性”“繼承性”“抽象性”和“多態性”。其本質就是主張從客觀世界固有的事物出發來構造系統,提倡用人類在現實生活中常用的思維方法來認識、理解和描述客觀事物。2面向對象方法的基本概念(1)對象(object)面
27、向對象方法認為:現實世界是由一系列的對象組成的。對象是現實世界中彼此相關并互通信息的實體。每個對象都包含了兩部分的內容:描述對象狀態的數據和描述對象行為。對象是面向對象方法中最基本的概念。因此, 面向對象方法中的對象是由描述該對象屬性的數據以及可以對這些數據施加的所有操作封裝在一起構成的整體。對象可以做的操作表示它的動態行為,在面向對象分析和面向對象設計中,通常把對象的操作也稱為方法或服務。(2)類和實例類是具有共同屬性、共同方法的對象的集合,是關于對象的抽象描述,反應屬于該對象類型的所有對象的性質。(3)消息(Message)消息傳遞是對象間通信的手段,一個對象通過向另一對象發送信息來請求其
28、服務。消息機制統一了數據流和控制流,一個消息由下述3 部分組成:接收消息的對象名稱、消息名、零個或多個參數。(4)繼承(Inheritance)類的繼承:繼承廣義地說,是指能夠直接獲得已有的屬性和特征,而不必重復地定義。繼承的傳遞性:繼承具有傳遞性,如果類 A 繼承類 B,類 B 繼承類 C,則類 A 繼承類C。因此,一個類實際上繼承了它上層的全部基類特性,也就是說,屬于某類的對象除了具有該類定義的特性外,還具有該類上層全部基類定義的特性。單繼承:一個子類只有唯一的一個父類,這種繼承稱為單繼承。多重繼承:一個子類也可以有多個父類,它可以從多個父類中繼承特性。繼承的優點:相似的對象可以共享程序代
29、碼和數據,從而大大減少了程序中的冗余信息,提高軟件的可重用性,便于軟件修改維護。(5)多態性(Polymorphism)多態性:對象根據所接收的消息而做出動作,同樣的消息被不同的對象接收時可導致完全不同的行為,該現象稱為多態性。第 3 章軟件工程基礎考點 1 軟件工程基本概念1軟件的定義與特點(1)軟件的定義一般認為計算機軟件是計算機系統中與硬件相互依存的另一部分,包括程序、數據及相關文檔的完整集合。可見軟件可分為兩個部分:一是機器可執行的程序和數據;二是機器不可執行的,與軟件開發、運行、維護、使用相關的文檔。(2)軟件的特點計算機軟件具有如下的幾個特點:軟件是一種邏輯實體,而不是物理實體,具
30、有抽象性;與硬件的生產不同,軟件沒有明顯的制作過程;軟件在使用期間不存在磨損、老化問題; 對硬件和環境具有依賴性;軟件復雜度高,成本昂貴;軟件開發涉及諸多的社會因素。(3)軟件的分類計算機軟件按功能可分為 3 類:應用軟件、系統軟件、支撐軟件(或稱為工具軟件)。2軟件危機和軟件工程軟件工程概念的出現源自軟件危機。(1)軟件危機“軟件危機”是 20 世紀 60 年代末以后出現的,其泛指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。實際上,幾乎所有的軟件都不同程度地存在這些問題。隨著計算機技術的發展和應用領域的擴大,軟件已經成為計算機科學發展的“瓶頸”。(2)軟件工程為了消除軟件危機,通過
31、認真研究軟件危機的方法,認識到軟件工程是使計算機軟件走向工程科學的途徑,逐步形成了軟件工程概念,開辟了工程學的新興領域軟件工程學。它是采用工程的概念、原理、技術和方法來開發與維護軟件,把經過時間考驗而證明正確的管理技術與當前能夠得到的最好的技術方法結合起來,經濟地開發出高質量的軟件并有效地維護它。3軟件工程過程與軟件生命周期(1)軟件工程過程ISO 9000 定義:軟件工程過程是指把輸入轉化為輸出的一組彼此相關的資源和活動。(2)軟件生命周期軟件生命周期是指軟件產品從提出、實現、使用維護到停止使用退役的整個過程。也就是說,軟件產品從考慮其概念開始,到該軟件產品不能使用為止的整個時期都屬于軟件生
32、命周期。一般包括可行性研究與需求分析、設計、實現、測試、交付使用以及維護等活動。這些階段可以有重復,執行時也可以有迭代。4軟件工程的目標與原則(1)軟件工程的目標軟件工程的目標是:在給定成本、進度的前提下,開發出具有有效性、可靠性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性且滿足用戶需求的產品。為實現軟件工程的目標,軟件工程的理論和技術性研究的內容主要包括軟件開發技術和軟件工程管理兩個方面。(2)軟件工程的原則為了達到上述的軟件工程目標,在軟件開發過程中,必須遵循以下軟件工程的基本原則:抽象、確定性、模塊化、信息隱蔽、局部化、完備性、一致性、可驗證性。5軟件開發工具與軟件開發
33、環境軟件工程技術鼓勵研制和采用各種先進的軟件開發方法、工具和環境。工具和環境的使用進一步提高了軟件的開發效率、維護效率和軟件質量。(1)軟件開發工具軟件開發工具的發展是從單項工具的開發逐步向集成工具發展的,軟件開發工具為軟件工程方法提供了自動的或半自動的軟件支撐環境。(2)軟件開發環境軟件開發環境或稱軟件工程環境是指全面支持軟件開發全過程的軟件工具的集合。計算機輔助軟件工程(CASE)是當前軟件開發環境中富有特色的研究工作和發展方向。考點 2 軟件分析方法軟件開發方法是指軟件開發過程所遵循的方法和步驟,其目的在于有效地得到一些工作產品, 即滿足質量要求的程序和文檔。軟件開發方法包括分析方法、設
34、計方法和程序設計方法。1需求分析與需求分析方法軟件需求是指用戶對目標軟件系統在功能、行為、性能、設計約束等方面的期望。需求分析的任務是發現需求、求精、建模和定義需求的過程。需求分析的目標是創建所需的數據模型、功能模型和控制模型。(1)需求分析的定義1997 年 IEEE 軟件工程標準詞匯表對需求分析定義如下:用戶解決問題或達到目標所需的條件或功能;系統或系統部件要滿足合同、標準、規范或其他正式規定文檔所需具有的條件或功能;一種反映或所描述的條件或功能的文檔說明。(2)需求分析階段的工作需求分析階段的工作主要分為 4 個方面: 需求獲取、需求分析、編寫需求規格說明書、需求評審。(3)需求分析方法
35、常用的需求分析方法有兩種:結構化分析方法。主要包括:面向數據結構的 Jackson 方法(JSD),面向數據流的結構化分析方法(SA),面向數據結構的結構化數據系統開發方法(DSSD)。面向對象的分析方法(OOA)。從需求分析建立的模型的特性來分,需求分析方法又分為靜態分析方法和動態分析方法。2結構化分析方法(1)結構化分析方法的基本概念結構化分析方法是面向數據流、自頂向下、逐步求精、進行需求分析的方法。該方法使用簡單易讀符號,根據軟件內部數據傳遞、變換的關系,自頂向下、逐層分解,描繪出滿足要求的軟件模型。(2)結構化分析的常用工具結構化分析方法利用圖形等結構化的描述方式表達需求,簡明易懂,用
36、它們形成需求說明書中的主要部分。這種方法所用的常用工具有:數據流圖、數據字典、判定樹和判定表。3軟件需求規格說明書軟件需求規格說明書(SRS)是需求分析階段得出的最主要的文檔。它通常用自然語言完整、準確、具體地描述系統的數據要求、功能需求、性能需求、可靠性和可用性要求、出錯處理需求、接口需求、約束、逆向需求以及將來可能提出的要求。軟件需求規格說明書的作用軟件需求規格說明書具有幾個作用:便于用戶、開發人員進行理解和交流;反映出用戶問題的結構,可以作為軟件開發工作的基礎和依據;作為確認測試和驗收的依據。軟件需求規格說明書的內容軟件需求規格說明書是作為需求分析的一部分而制定的可交付文檔。軟件需求規格
37、說明書的特點軟件需求規格說明書是確保軟件質量的有力措施,衡量軟件需求規格說明書質量的標準:正確性、無歧義性、完整性、一致性、可理解性、可驗證性、可修改性和可追蹤性。 考點 3 結構化設計方法1軟件設計的基本概念(1)軟件設計的基礎軟件設計是一個把軟件需求轉化為軟件表示的過程,是軟件工程的重要階段。軟件設計的基本目標是用比較抽象、概括的方式確定目標系統如何完成預定的任務,即軟件設計是確定系統的物理模型。(2)軟件設計的基本原理軟件設計應遵循軟件工程的基本目標和原則,建立適用于在軟件設計中應該遵守的基本原理和軟件設計中的有關概念。模塊化、抽象、信息隱藏和局部化、模塊獨立性。(3)結構化設計方法結構
38、化設計方法是目前采用最為廣泛的一種軟件設計方法,其基本思想是將軟件設計成由相對獨立、單一功能的模塊組成的結構2概要設計概要設計又稱為總體設計或初步設計。軟件概要設計的基本任務是:設計軟件的系統結構。在需求分析階段, 已經把系統分解成層次結構,而在概要設計階段, 需要進一步分解,劃分為模塊以及模塊的層次結構。數據結構及數據庫設計。數據設計是實現需求定義和規格說明過程中提出的數據對象的邏輯表示。編寫概要設計文檔。在概要設計階段, 需要編寫的文檔有:概要設計說明書、數據庫設計說明書、集中測試計劃等。概要設計文檔評審。在概要設計中,對設計部分是否完整地實現了需求中規定的功能、性能等要求,設計方案的可行
39、性,關鍵的處理及內外部接口定義正確性、有效性,各部分之間的一致性等都要進行評審,以免在以后的設計中出現大的問題而返工。2概要設計工具結構圖(SC),也稱程序結構圖,是描述軟件結構的圖形工具,是常用的軟件結構設計工具。模塊用一個矩形表示,矩形內注明模塊的功能和名字;箭頭或直線表示模塊間的調用關系。在結構圖中還可以用帶注釋的箭頭表示模塊調用過程中來回傳遞的信息。常用的結構圖有 4 種模塊類型:傳入模塊、傳出模塊、變換模塊和協調模塊。3面向數據流的設計方法在需求分析階段,主要是分析信息在系統中的加工和流動情況。面向數據流的設計方法的目標是給出設計軟件結構的一個系統化的途徑。(1)數據流類型。典型的數
40、據流類型有兩種:變換型和事務型。(2)面向數據流設計方法的實施要點與設計過程。4設計的準則通過大量設計實踐證明,以下設計準則可以借鑒為設計的指導和對軟件結構圖進行優化。提高模塊獨立性、模塊規模適中、深度、寬度、扇出和扇入適當、使模塊的作用域在該模塊的控制域內、應減少模塊的接口和界面的復雜性、設計成單入口、單出口的模塊和設計功能可預測的模塊。3詳細設計詳細設計的任務就是為軟件結構圖中的每一個模塊確定實現算法和局部數據結構,用某種選定的表達工具表示算法和數據結構的細節。常用的設計工具有以下幾種:(1)圖形工具程序流程圖:程序流程圖是軟件過程的設計表示工具,表達直觀、清晰,易于學習和掌握。N-S 圖
41、:NS 圖是用方框圖來代替傳統的程序流程圖的技術。基本圖形有 5 種。PAD 圖: PAD 圖即問題分析圖( Problem Analysis Diagram)。它是繼程序流程圖和方框圖之后,提出的又一種描述軟件詳細設計的圖形工具。基本圖形有 5 種。(2)表格工具用表格來描述處理動作及相應的各種條件或描述輸入、處理、輸出的過程。(3)語言工具用與程序設計語言很相近的偽碼描述處理過程的細節。過程設計語言(PDL)也稱為結構化的英語和偽碼,它是一種混合語言,采用英語的詞匯和結構化程序設計語言的語法,類似編程語言。考點 4 軟件測試軟件測試就是在軟件投入運行之前,盡可能多地發現軟件中的錯誤。它是對
42、軟件規格說明、設計和編碼的最后復審。通常,軟件測試的工作量往往占軟件開發總工作量的40%以上。1軟件測試的目的軟測試的目的:測試是為了發現錯誤而執行程序的過程;一個好的測試用例是指很可能找到迄今為止尚未發現的錯誤的用例;一個成功的測試是發現了至今尚未發現的錯誤的測試;測試是要以查找錯誤為中心,而不是為了演示軟件的正確功能。2軟件測試的準則要作好軟件測試,必須設計有效的測試方案和好的測試用例。3軟件測試技術和方法軟件測試的方法是多種多樣的。若從是否需要執行被測軟件的角度劃分,可以分為靜態測試和動態測試;若按照功能劃分,可以分為白盒測試和黑盒測試。(1)靜態測試與動態測試靜態測試:靜態測試包括代碼
43、檢查、靜態結構分析、代碼質量度量等。靜態測試主要由人工進行,充分發揮人的邏輯思維優勢,也可以借助軟件工具自動進行。動態測試:動態測試是基于計算機的測試,是為了發現錯誤而執行程序的過程。(2)白盒測試與測試用例設計白盒測試的方法也稱結構測試或邏輯測試。它是根據軟件的內部工作過程,檢查內部成分,以確認每種內部操作是否符合設計要求。白盒測試允許測試人員利用程序內部的邏輯結構及有關信息來設計和選擇測試用例,對程序所有的邏輯路徑進行測試。邏輯覆蓋測試。邏輯覆蓋測試泛指以程序內部的邏輯結構為基礎的測試用例設計書。從覆蓋源程序語句的詳盡程度分析,大致有以下一些不同的覆蓋標準:語句覆蓋、判定覆蓋、條件覆蓋、判
44、斷-條件覆蓋。基本路徑測試。基本路徑測試的思想和步驟是,根據軟件過程性描述中的控制流程確定程序的環路復雜性度量,用此度量定義基本路徑集合,并由此導出一組測試用例對每一條獨立執行路徑進行測試。(3)黑盒測試與測試用例設計黑盒測試也稱功能測試或數據驅動測試, 是對軟件已經實現的功能是否滿足需求進行測試和驗證。所以,黑盒測試的測試用例是根據程序的外部功能進行設計的,在軟件接口處進行,完成功能驗證。4軟件測試的實施軟件測試是保證軟件質量的重要手段。為使軟件測試工作系統化,我們應制定測試流程。所謂測試流程就是軟件測試這個過程規定的程序。軟件測試過程一般按 4 個步驟進行,即單元測試、集成測試、驗收測試(
45、確認測試)和系統測試。考點 5 程序的調試1基本概念在對程序進行了成功的測試之后將進入程序調試(通常稱 Debug,即排錯)。程序調試的任務是診斷和改正程序中的錯誤。(1)程序調試的基本步驟錯誤定位:從錯誤的外部表現形式入手,研究有關部分的程序,確定程序中出錯位置,找出錯誤的內在原因。修改設計和代碼,以排除錯誤: 排錯是軟件開發過程中一項艱苦的工作,這也決定了調試工作是一個具有很強技術性和技巧性的工作。進行回歸測試,防止引進新的錯誤:重復進行暴露這個錯誤的原始測試或某些有關測試,以確認該錯誤是否被排除、是否引進了新的錯誤。(2)程序調試的原則調試活動由對程序中錯誤的定性、定位和排錯兩部分組成,
46、因此調試原則也從確定錯誤的性質和位置時的注意事項和修改錯誤的原則兩個方面考慮。2軟件測試方法調試的關鍵在于推斷程序內部的錯誤位置及原因。軟件調試可以分為靜態調試和動態調試。軟件測試中討論的靜態分析方法同樣適用靜態調試。靜態調試主要指通過人的思維來分析源程序代碼和排錯,是主要的調試手段,而動態調試是輔助靜態調試的。主要的調試方法有強行排錯法、回溯法和原因排除法。第 4 章 數據庫設計基礎考點 1 數據庫系統的基本概念1數據、數據庫、數據庫管理系統(1)數據數據:描述事物的符號記錄。計算機中的數據一般分成兩部分,其中一部分與程序僅有短時間的交互關系,隨著程序的結束而消亡,這樣的數據稱為臨時性數據,
47、 一般存放在計算機內存中;而另一部分數據則對系統起著長期持久的作用,這樣的數據稱為持久性數據,一般存放在計算機的長期存儲設備(如硬盤)中。數據庫系統中處理的就是這種持久性數據。(2)數據庫數據庫:數據庫(DataBase,DB)是指長期存儲在計算機內的、具有統一的結構形式、可共享的數據集合。數據庫中的數據按一定的數據模型組織、描述和存儲,具有較小的冗余度、較高的數據獨立性和易擴展性,并可為各種應用程序所共享。(3)數據庫管理系統數據庫管理系統: 數據庫管理系統(DataBase Management System, DBMS)是管理數據庫的機構,是一個系統軟件,負責數據庫中的數據組織、數據操縱
48、、數據維護、控制及保護和數據服務等。數據庫管理系統是數據庫系統的核心,其主要功能包括幾個方面:數據模式定義、數據存取的物理構建、數據操縱、數據的完整性、安全性定義與檢查、數據庫的并發控制與故障恢復和數據的服務。(4)數據庫管理員數據庫管理員:對數據庫的規劃、設計、維護、監視等進行管理的人員,稱為數據庫管理員。其主要工作:數據庫設計、數據庫維護和改善系統性能。(5)數據庫系統數據庫系統(DBS)是指引入數據庫后的計算機系統,一般由數據庫、數據庫管理系統、應用系統、數據庫管理員和用戶構成。(6)數據庫應用系統數據庫應用系統(DBAS)是數據庫系統再加上應用軟件及應用界面這三者所組成,具體包括:數據
49、庫、數據庫管理系統、數據庫管理員、硬件平臺、軟件平臺、應用軟件、應用界面。2數據庫系統的發展數據管理發展到今經歷了:人工管理、文件系統和數據庫系統 3 個階段。其中數據獨立性最高的是數據庫系統,這里的數據獨立性指的是數據庫和應用程序的相互獨立。(1)文件系統階段文件系統是數據庫系統發展的初級階段, 它提供了簡單的數據共享和數據管理能力,但是它無法提供完整統一的管理和數據共享的能力。(2)層次與網狀數據庫系統階段從 20 世紀 60 年代末起,真正的數據庫系統層次數據庫與網狀數據庫開始發展, 它們為統一管理與共享數據提供了大力支撐。但是這兩個系統也存在不足,主要是其脫胎與文件系統,受文件的物理影
50、響較大,對數據庫使用帶來的諸多不便,同時,此類系統的數據模式構造繁瑣不宜于推廣。(3)關系數據庫系統階段關系數據庫系統結構簡單、使用方便、邏輯性強、物理性少。在數據庫的儲多新技術中,下面 3 種是比較重要的:面向對象數據庫系統、知識庫系統和關系數據庫系統的擴充。3數據庫系統的基本特點數據庫技術是在文件系統基礎上發展產生的,兩者都以數據文件的形式組織數據,但由于數據庫系統在文件系統之上加入 DBMS 對數據進行管理,從而使得數據庫系統具有以下特點。(1)數據的高集成性數據庫系統的數據高集成性主要表現在如下幾個方面:在數據庫系統中采用統一的數據結構方式,如在數據庫中采用二維表作為統一結構方式。在數
51、據庫系統中按照多個應用的需要組織全局統一的數據結構(即數據模式),數據模式不僅可以建立全局的數據結構,還可以建立數據間的語義聯系,從而構成一個內在緊密聯系的數據整體。數據庫系統中的數據模式是多個應用共同的、全局的數據結構,而每個應用的數據則是全局結構中的一部分,稱為局部結構(即視圖),這種全局與局部的結構模式構成了數據庫系統數據集成性的主要特征。(2)數據的高共享性與低冗余性由于數據的集成性使得數據可為多個應用所共享。數據共享的使用大大減少數據冗余,節約存儲空間。減少冗余性以避免數據的不同出現是保證系統一致性的基礎。(3)數據高獨立性數據獨立性是指數據與程序間的互不依賴性,是數據庫中常用的術語
52、。其包括數據的物理獨立性和數據的邏輯獨立性。(4)數據統一管理與控制數據庫系統不僅為數據提供高度集成環境, 同時它還為數據提供操作功能,這主要包含以下3 個方面:數據的完整性檢查、數據的安全性保護、并發控制。4數據庫系統的內部結構系統數據庫系統在其內部具有三級模式和二級映射,三級模式分別是外模式、概念模式與內模式。二級映射則分別是,外模式概念模式映射和概念模式內模式映射。這種三級模式與二級映射構成了數據庫系統內部的抽象結構體系。(1)數據庫系統的三級模式數據模式是數據庫系統中數據結構的一種表示形式,它具有不同的層次與結構方式:外模式也稱子模式或用戶模式。它能夠看見和使用局部數據的邏輯結構和特征
53、的描述,它是用戶的數據視圖,一個數據庫可以有多個外模式。概念模式是數據庫系統中全局數據邏輯結構的描述,是全體用戶(應用)公共數據視圖。一個數據庫只有一個概念模式。內模式又稱物理模式,一個數據庫只有一個內模式。它是數據物理結構和存儲方式的描述, 是數據在數據庫內部的表示方式。(2)數據庫系統的兩級映射數據庫系統的三級模式是對數據的 3 個級別的抽象,它把數據具體物理實現留給物理模式,使用戶能邏輯地、抽象地處理數據,而不必關心數據在計算機中的具體表示方式和存儲方式。考點 2 數據庫系統的基本概念1數據模型的基本概念數據模型(Data Model)研究的就是數據的組織形式及方式。數據庫是某個企業、組
54、織或部門所涉及的數據的綜合,它不僅要反映數據本身的內容,而且要反映數據之間的聯系。數據模型通常由數據結構、數據操作和完整性約束 3 部分組成。(1)數據結構數據結構是所研究的對象類型的集合。數據結構是對系統靜態特征的描述。(2)數據操作數據操作是指對數據庫中各種對象的實例允許執行的操作的集合,包括操作及有關的操作規則。數據操作是對系統動態特征的描述。(3)數據的約束條件數據的約束條件是一組完整性規則的集合。完整性規則是給定的數據模型中數據及其聯系所具有的約束和依存規則,用以限定符合數據模型的數據庫狀態以及狀態的變化,以保證數據的正確、有效、相容。2數據模型的分類數據模型按不同的應用層次分成 3
55、 種類型,它們是概念數據模型、邏輯數據模型、物理數據模型。(1)概念數據模型概念數據模型簡稱概念模型,它是一種面向客觀世界、面向用戶的模型;它與具體的數據庫管理系統無關,與具體的計算機平臺無關。概念模型是整個數據模型的基礎。(2)邏輯數據模型邏輯數據模型又稱數據模型,它是一種面向數據庫系統的模型,該模型著重于在數據庫系統一級的實現。目前,數據庫領域中最常用的邏輯數據模型有四種,分別為:層次模型、網狀模型、關系模型和面向對象模型。(3)物理數據模型物理數據模型又稱物理模型,它是一種面向計算機物理表示的模型,此模型給出了數據模型在計算機上物理結構的表示。3E-R 模型概念模型是面向現實世界,它的出發點是有效和自然地模擬現實世界,給出數據的概念化結構。它的表示方法很多,其中最著名是 ER 模型(或實體聯系模型),它于 1976 年由 Peter Chen 首先提出。(1)E-R 模型的基本概念實體是客觀存在并可相互區別的事物。實體可以是具體的人、事、物,也可以是抽象的概念或聯系。屬性是實體所具有的某一特性。一個實體可由若干個屬性來刻畫。碼是能夠唯一標識實體的屬性集。屬性的取值范圍稱為該屬性的域。用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。同型實體的集合稱為實體集。例如,全體學生就是一個實體集。在現實世界中,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023-2028年中國玉米粒罐頭行業市場深度分析及投資策略咨詢報告
- 交聯聚乙烯電纜絕緣材料在剪切作用下預交聯行為研究
- 柔性摩擦電晶體管與仿生觸覺感知技術研究
- MXene基納米酶的比色及光熱即時檢測研究
- 基于多尺度特征融合和遷移學習的高鐵牽引電機軸承故障診斷方法研究
- 有源IRS輔助通信系統關鍵技術研究
- Klf7參與磁場調控肝臟節律基因的初步研究
- 基于熱特性和回轉穩定性的電主軸綜合性能實驗研究
- 基于稀疏Transformer的音樂生成技術研究
- 2025至2030收藏品拍賣服務產業深度調研及前景趨勢與投資報告
- 排污許可證申請流程
- 藥具培訓培訓試題及答案
- 重慶市大渡口區2023-2024學年四年級下學期數學期末測試卷(含答案)
- 2025年高考全國一卷寫作范文4篇
- 2025年廣西公需科目答案03
- 2025屆江蘇省徐州市名校七下數學期末達標檢測試題含解析
- 2025年山東夏季高中學業水平合格考模擬生物試卷(含答案)
- 大連海事大學育鯤輪電機員培訓課件詳解
- GB/T 45577-2025數據安全技術數據安全風險評估方法
- IgG4腎病的診斷和治療
- 中國啤酒籃行業市場發展前景及發展趨勢與投資戰略研究報告2025-2028版
評論
0/150
提交評論