全國計算機二級公共基礎知識(要點)課件_第1頁
全國計算機二級公共基礎知識(要點)課件_第2頁
全國計算機二級公共基礎知識(要點)課件_第3頁
全國計算機二級公共基礎知識(要點)課件_第4頁
全國計算機二級公共基礎知識(要點)課件_第5頁
已閱讀5頁,還剩89頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

全國計算機等級考試二級公共基礎知識1全國計算機等級考試二級公共基礎知識1公共基礎知識內(nèi)容:考試大綱數(shù)據(jù)結(jié)構(gòu)與算法程序設計基礎軟件工程基礎數(shù)據(jù)庫設計基礎2公共基礎知識內(nèi)容:2考試大綱基本要求1、掌握算法的基本概念。2、掌握基本數(shù)據(jù)結(jié)構(gòu)及其操作。3、掌握基本排序和查找算法。4、掌握逐步求精的結(jié)構(gòu)化程序設計方法。5、掌握軟件工程的基本方法,具有初步應用相關(guān)技術(shù)進行軟件開發(fā)的能力。6、掌握數(shù)據(jù)庫的基本知識,了解關(guān)系數(shù)據(jù)庫的設計。3考試大綱基本要求3考試大綱考試內(nèi)容一、基本數(shù)據(jù)結(jié)構(gòu)與算法

1、算法的基本概念;算法復雜度的概念和意義(空間復雜度與時間復雜度)。

2、數(shù)據(jù)結(jié)構(gòu)的定義;數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu);數(shù)據(jù)結(jié)構(gòu)的圖形表示;線性結(jié)構(gòu)與非線性結(jié)構(gòu)的概念。

3、線性表的定義;線性表的順序存儲結(jié)構(gòu)及其插入刪除運算。

4、棧和隊列的定義;棧和隊列的順序存儲結(jié)構(gòu)及其基本運算。

5、線性單鏈表,雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其基本運算。

6、樹的基本概念;二叉樹的定義及其存儲結(jié)構(gòu);二叉樹的前序、中序和后序遍歷。

7、順序查找與二分查找算法;基本排序算法(交換類排序、選擇類排序、插入類排序)。4考試大綱考試內(nèi)容4考試大綱考試內(nèi)容二、程序設計基礎

1、程序設計方法與風格。

2、結(jié)構(gòu)化程序設計。

3、面向?qū)ο蟮某绦蛟O計方法,對象,方法,屬性及繼承與多態(tài)性。5考試大綱考試內(nèi)容5考試大綱考試內(nèi)容三、軟件工程基礎

1、軟件工程的基本概念;軟件生命周期概念;軟件工具與軟件開發(fā)環(huán)境。

2、結(jié)構(gòu)化分析方法;數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書。

3、結(jié)構(gòu)化設計方法;總體設計,詳細設計。

4、軟件測試的方法;白盒測試,黑盒測試,測試用例設計;軟件測試的實施;單元測試,集成測試,系統(tǒng)測試。

5、程序的調(diào)試,靜態(tài)調(diào)試與動態(tài)調(diào)試。6考試大綱考試內(nèi)容6考試大綱考試內(nèi)容四、數(shù)據(jù)庫設計基礎

1、數(shù)據(jù)庫的基本概念;數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)。

2、數(shù)據(jù)模型;實體聯(lián)系模型及E-R圖,從E-R圖導出關(guān)系數(shù)據(jù)模型。

3、關(guān)系代數(shù)運算,包括集合運算及選擇、投影、連接運算;數(shù)據(jù)庫規(guī)范化理論。

4、數(shù)據(jù)庫設計方法和步驟;需求分析、概念設計、邏輯設計和物理設計的相關(guān)策略。7考試大綱考試內(nèi)容7考試大綱考試題型選擇題

10題 每題2分 共20分填空題

5題 每題2分 共10分

合計 30分8考試大綱考試題型8數(shù)據(jù)結(jié)構(gòu)與算法關(guān)鍵考點算法基本概念及算法復雜度數(shù)據(jù)的存儲結(jié)構(gòu)棧和隊列線性鏈表二叉樹基本概念及其特性查找技術(shù)9數(shù)據(jù)結(jié)構(gòu)與算法關(guān)鍵考點9數(shù)據(jù)結(jié)構(gòu)與算法算法的基本概念1、算法

算法是指解題方案的準確而完整的描述。

注意:算法與數(shù)學上的計算方法不是同一個概念。算法要考慮計算機的特點,要考慮計算方法的可行性。

算法也不等于程序。算法不考慮具體的機器及編程語言。解決問題時,總是先設計算法,然后進行編程。2、算法的基本特征

可行性

確定性

有窮性

擁有足夠的情報

算法是一個動態(tài)概念,強調(diào)實際的執(zhí)行過程。

數(shù)學上的計算方法是一個靜態(tài)概念,注重理論上的正確性。

數(shù)學上的計算方法是設計算法的基礎。10數(shù)據(jù)結(jié)構(gòu)與算法算法的基本概念10數(shù)據(jù)結(jié)構(gòu)與算法算法的基本概念3、算法的基本要素

算法中對數(shù)據(jù)的運算和操作

基本的運算和操作有:算術(shù)運算、邏輯運算、關(guān)系運算、數(shù)據(jù)傳輸。

算法的控制結(jié)構(gòu)

控制結(jié)構(gòu)決定操作的執(zhí)行順序。要求符合結(jié)構(gòu)化原則,強調(diào)易讀性。4、算法設計基本方法

列舉法列舉所有可能情況,檢測其中符合條件的結(jié)果。

歸納法列舉若干特殊情況,分析歸納出一般規(guī)律。

遞推從已知初始條件出發(fā),逐步推導出中間及最后結(jié)果。

遞歸將復雜問題歸結(jié)為簡單問題,在歸結(jié)為更簡單問題,…。

減半遞推技術(shù)將問題規(guī)模“減半”,并重復該“減半”的過程。

回溯法分析問題,找出某些線索,沿線索逐步試探。若試探成功,則繼續(xù),若試探失敗,則回退。直至問題解決。11數(shù)據(jù)結(jié)構(gòu)與算法算法的基本概念11數(shù)據(jù)結(jié)構(gòu)與算法算法的基本概念5、算法的時間復雜度

指執(zhí)行算法所需要的計算工作量

算法工作量的度量應與計算機、編程語言、編程細節(jié)等無關(guān)。

算法的工作量用算法所執(zhí)行的基本運算次數(shù)衡量。

算法工作量是問題規(guī)模的函數(shù):算法的工作量=f(n)

度量方法有: 平均性態(tài)分析計算其加權(quán)平均值

最壞情況分析計算其基本運算的最大次數(shù)6、算法的空間復雜度

指執(zhí)行算法所需要的存儲空間

包括:算法程序所占據(jù)的存儲空間

待處理數(shù)據(jù)所占據(jù)的存儲空間

算法程序執(zhí)行中所需要的額外存儲空間

如果額外存儲空間大小不隨問題規(guī)模變化,則稱之為算法原地工作。

降低算法的空間復雜度,應從數(shù)據(jù)的存儲空間和額外空間入手。12數(shù)據(jù)結(jié)構(gòu)與算法算法的基本概念12數(shù)據(jù)結(jié)構(gòu)與算法數(shù)據(jù)結(jié)構(gòu)的基本概念1、數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)結(jié)構(gòu)是指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合

數(shù)據(jù)結(jié)構(gòu)是指帶有結(jié)構(gòu)的數(shù)據(jù)元素的集合。結(jié)構(gòu)通常指前后件關(guān)系。

主要研究:數(shù)據(jù)元素間的固有邏輯關(guān)系

數(shù)據(jù)元素在計算機中的存儲關(guān)系

對各種數(shù)據(jù)結(jié)構(gòu)進行的運算2、數(shù)據(jù)的邏輯結(jié)構(gòu)

指反映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu)

前后件(直接前驅(qū)和直接后繼)關(guān)系就是指邏輯關(guān)系3、數(shù)據(jù)的存儲結(jié)構(gòu)

數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存儲形式

存儲結(jié)構(gòu)也稱為物理結(jié)構(gòu)

同一種邏輯結(jié)構(gòu)可以有不同的存儲結(jié)構(gòu)

常用的有:順序、鏈接、索引等形式13數(shù)據(jù)結(jié)構(gòu)與算法數(shù)據(jù)結(jié)構(gòu)的基本概念13數(shù)據(jù)結(jié)構(gòu)與算法數(shù)據(jù)結(jié)構(gòu)的基本概念4、數(shù)據(jù)結(jié)構(gòu)的表示

二元關(guān)系表示:

兩個要素:數(shù)據(jù)元素的集合D,該集合上的關(guān)系R。

即:B=(D,R)

如:D={春,夏,秋,冬}

R={(春,夏),(夏,秋),(秋,冬)}

圖形表示:

標有元素值的方框表示結(jié)點,有向線段表示邏輯關(guān)系。

春→夏→秋→冬

5、線性結(jié)構(gòu)和非線性結(jié)構(gòu)

線性結(jié)構(gòu):一個非空的線性結(jié)構(gòu)有且只有一個根結(jié)點,每個結(jié)點最多只有一個直接前驅(qū)、最多只有一個直接后繼。

非線性結(jié)構(gòu):不是線性結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)。14數(shù)據(jù)結(jié)構(gòu)與算法數(shù)據(jù)結(jié)構(gòu)的基本概念14數(shù)據(jù)結(jié)構(gòu)與算法線性表及其順序存儲結(jié)構(gòu)1、線性表

線性表是由n(n≥0)個元素組成的有限序列:

(a1,a2,…,ai,…,an)

①有且只有一個根結(jié)點,它無直接前驅(qū)。

②有且只有一個終端結(jié)點,它無直接后繼。

③除根結(jié)點和終端結(jié)點外,其他所有結(jié)點都有且只有一個直接前驅(qū)和直接后繼。結(jié)點個數(shù)n稱為線性表的長度。n=0時,稱為空表。2、線性表的順序存儲

順序存儲也稱為順序分配

線性表中所有元素所占的存儲空間是連續(xù)的

線性表中各元素在存儲空間中按照邏輯順序依次存儲3、順序表的運算

線性表的順序存儲結(jié)構(gòu)通常稱為順序表

包括:插入、刪除、查找、分解、合并、復制、逆轉(zhuǎn)等。

在高級語言中,順序表對應一維數(shù)組。

順序表的查找方便,插入和刪除較麻煩。15數(shù)據(jù)結(jié)構(gòu)與算法線性表及其順序存儲結(jié)構(gòu)15數(shù)據(jù)結(jié)構(gòu)與算法線性表及其順序存儲結(jié)構(gòu)注意:

①線性表屬于線性結(jié)構(gòu)。

②線性表的順序存儲結(jié)構(gòu)通常稱為順序表。

③在順序表中,所有元素按照其邏輯順序連續(xù)存儲,前后件元素緊鄰,前件元素一定存儲在后件元素的前面。

④在程序設計語言中,線性表的順序存儲結(jié)構(gòu)對應了一維數(shù)組。因為在程序設計語言中,一維數(shù)組與計算機中實際的存儲空間結(jié)構(gòu)是一致的。

⑤在順序表中,如果要在第i個位置插入一個新元素,則原第i個元素以及之后的所有元素都要依次后移一個位置。在平均情況下,在順序表中插入一個新元素,需要移動n/2個元素。

⑥在順序表中,如果要刪除第i個位置的元素,則原第i個元素之后的所有元素都要依次前移一個位置。在平均情況下,在順序表中刪除一個元素,需要移動n/2個元素。

16數(shù)據(jù)結(jié)構(gòu)與算法線性表及其順序存儲結(jié)構(gòu)16數(shù)據(jù)結(jié)構(gòu)與算法棧及其基本運算1、棧

棧(stack)是限定在一端進行插入和刪除的線性表

允許進行插入或刪除的一端稱為棧頂。

不允許進行插入或刪除的另一端稱為棧底。

其特點為“先入后出”(FILO)或“后入先出”(LIFO)。(記憶作用)

通常設置指針top指向棧頂,指針bottom指向棧底。2、棧的順序存儲結(jié)構(gòu)

棧的各個數(shù)據(jù)元素按其邏輯順序依次連續(xù)存儲。

由于插入刪除操作只能在棧頂一端進行,所以

不需要移動數(shù)據(jù)元素。3、棧的基本運算

入棧:在棧頂位置插入新元素。

出棧:取出棧頂位置的元素。

讀棧頂元素:讀出棧頂位置的元素。

“上溢”:入棧時堆棧已滿。 “下溢”:出棧時堆棧已空。17數(shù)據(jù)結(jié)構(gòu)與算法棧及其基本運算17數(shù)據(jù)結(jié)構(gòu)與算法隊列及其基本運算1、隊列

隊列(queue)是限定在一端進行插入另一端進行刪除的線性表

允許進行插入的一端稱為隊尾。

允許進行刪除的另一端稱為隊頭。

其特點為“先入先出”(FIFO)或“后入后出”(LILO)。(先來先服務)

通常設置指針rear指向隊尾,指針front指向隊頭。2、隊列的順序存儲結(jié)構(gòu)

隊列的各個數(shù)據(jù)元素按其邏輯順序依次連續(xù)存儲。

由于插入刪除操作只能在隊列的兩端進行,所以

不需要移動數(shù)據(jù)元素。3、隊列的基本運算

在實際應用中常常使用循環(huán)隊列。

入隊:在隊尾位置插入新元素。

出隊:取出隊頭位置的元素。

“上溢”:入隊時隊列已滿。 “下溢”:出隊時隊列已空。18數(shù)據(jù)結(jié)構(gòu)與算法隊列及其基本運算18數(shù)據(jù)結(jié)構(gòu)與算法線性鏈表1、鏈式存儲方式

①結(jié)點由兩部分組成:數(shù)據(jù)域(存儲數(shù)據(jù))、指針域(指向其前件或后件)。

②數(shù)據(jù)結(jié)構(gòu)的存儲空間可以不連續(xù),存儲順序與邏輯關(guān)系可以不一致。

③鏈式存儲方式既可以用來表示線性結(jié)構(gòu),也可以表示非線性結(jié)構(gòu)。2、線性鏈表

線性表的鏈式存儲結(jié)構(gòu)稱為線性鏈表。

(棧的鏈式存儲結(jié)構(gòu)稱為鏈棧、隊列的鏈式存儲結(jié)構(gòu)稱為鏈隊列)

常用的線性鏈表有:

單鏈表(一個指針域,指向直接后繼)

雙向鏈表(兩個指針域,指向直接后繼及后繼)

循環(huán)鏈表(所有結(jié)點的指針構(gòu)成循環(huán)鏈)3、線性鏈表的基本運算

查找:在線性鏈表中查找指定元素。

插入:在線性鏈表中插入新結(jié)點。

刪除:在線性鏈表中刪除指定結(jié)點。19數(shù)據(jù)結(jié)構(gòu)與算法線性鏈表19數(shù)據(jù)結(jié)構(gòu)與算法樹的基本概念1、樹

樹是一種簡單的非線性結(jié)構(gòu)。

元素間的關(guān)系具有明顯的層次結(jié)構(gòu)。2、相關(guān)的術(shù)語

根結(jié)點

葉節(jié)點

父結(jié)點

子結(jié)點

子樹

結(jié)點的度

樹的度

樹的深度20數(shù)據(jù)結(jié)構(gòu)與算法樹的基本概念20數(shù)據(jù)結(jié)構(gòu)與算法二叉樹1、二叉樹的特點

非空二叉樹只有一個根結(jié)點。

每個結(jié)點最多有左右兩棵子樹。2、二叉樹的基本性質(zhì)

第k層上最多有2k-1個結(jié)點

深度為m的二叉樹最多有2m-1個結(jié)點

任何二叉樹葉結(jié)點總比度為2的節(jié)點多一個

n個節(jié)點的二叉樹的深度為[log2n]+13、滿二叉樹4、完全二叉樹5、二叉樹的遍歷

先序遍歷 中序遍歷 后序遍歷

ABDEGCFHI DBGEACHFI DGEBHIFCA21數(shù)據(jù)結(jié)構(gòu)與算法二叉樹21數(shù)據(jù)結(jié)構(gòu)與算法查找技術(shù)1、順序查找

從線性表的第一個元素開始,依次與指定數(shù)據(jù)比較,若相等則查找成功,若比較的所有元素都不相等,則查找失敗。

最壞情況的比較次數(shù)為表長n,平均情況為n/2。

無序順序表的查找只能采用順序查找的方法。

線性表在鏈式存儲時也只能采用順序查找的方法。2、二分法查找

在順序存儲的線性表為有序的情況下,可以使用二分法查找。

方法為:

將待查數(shù)據(jù)與線性表的中間項比較:

若相等,則查找成功;

若小于,則在線性表的前半部分進行二分法查找;

若大于,則在線性表的后半部分進行二分法查找;

反復進行直到相等(查找成功)或子表長度為0(查找失敗)。22數(shù)據(jù)結(jié)構(gòu)與算法查找技術(shù)22數(shù)據(jù)結(jié)構(gòu)與算法排序技術(shù)1、交換類排序

起泡排序

最壞情況下的比較次數(shù)為n(n-1)/2。

快速排序

最壞情況下的比較次數(shù)為n(n-1)/2。2、插入類排序

簡單插入排序

最壞情況下的比較次數(shù)為n(n-1)/2。

希爾排序

最壞情況下的比較次數(shù)為O(n1.5)。3、選擇類排序

簡單選擇排序

最壞情況下的比較次數(shù)為n(n-1)/2。

堆排序

最壞情況下的比較次數(shù)為O(nlog2n)。23數(shù)據(jù)結(jié)構(gòu)與算法排序技術(shù)23數(shù)據(jù)結(jié)構(gòu)與算法本章重點1、算法是問題處理方案正確而完整的描述,算法的效率與數(shù)據(jù)的存儲結(jié)構(gòu)有密切的關(guān)系。2、數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示(存儲方式)稱為數(shù)據(jù)的存儲結(jié)構(gòu)(物理結(jié)構(gòu))。一種邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)。3、在長度為n的順序表中,插入或刪除一個元素平均需要移動一半元素。4、棧是特殊的線性表,具有記憶作用。特點是“先進后出(后進先出)”。棧頂指針動態(tài)反映了棧中元素的變化情況。5、隊列是特殊的線性表。特點是“先進先出(后進后出)”。隊頭和隊尾指針動態(tài)地反映了隊列中元素的變化情況。6、線性鏈表是線性表的鏈式存儲結(jié)構(gòu)。在線性鏈表中,各元素節(jié)點的存儲空間可以不連續(xù),存儲順序也可以與邏輯順序不一致。線性鏈表的插入刪除操作不需要移動數(shù)據(jù)元素。7、二叉樹是一種非線性結(jié)構(gòu)。主要性質(zhì)有:

第k層上最多有2k-1個結(jié)點 深度為m時,最多有2m–1個結(jié)點

度為0的結(jié)點比度為2的多一個 深度至少為[log2n]+124數(shù)據(jù)結(jié)構(gòu)與算法本章重點24數(shù)據(jù)結(jié)構(gòu)與算法本章重點8、滿二叉樹是二叉樹的特殊形態(tài),滿二叉樹的各層結(jié)點都達到最大值,葉結(jié)點只出現(xiàn)在最后一層。9、完全二叉樹是二叉樹的特殊形態(tài),完全二叉樹除最后一層外,各層結(jié)點都達到最大值,葉結(jié)點只出現(xiàn)在最后兩層。滿二叉樹屬于完全二叉樹。10、根據(jù)掃描根結(jié)點的順序,按照先左后右的原則,遍歷二叉樹有三種

方法:前序遍歷、中序遍歷、后序遍歷。11、在長度為n的線性表中進行順序查找,最壞情況需要比較n次。12、在長度為n的線性表中進行對分查找,最壞情況需要比較log2n次。但對分查找只適用于有序順序表。13、在冒泡排序、快速排序、簡單插入排序、選擇排序的方法中,最壞情況下需要比較的次數(shù)為n(n-1)/2。25數(shù)據(jù)結(jié)構(gòu)與算法本章重點25程序設計基礎關(guān)鍵考點結(jié)構(gòu)化設計的原則面向?qū)ο蠓椒ǖ幕靖拍?6程序設計基礎關(guān)鍵考點26程序設計基礎程序設計方法與風格1、程序設計方法

就程序設計的方法和技術(shù)的發(fā)展而言

主要經(jīng)歷了結(jié)構(gòu)化程序設計和面向?qū)ο蟪绦蛟O計兩個階段2、程序設計風格

程序設計風格是指編寫程序時所表現(xiàn)出來的特點、習慣和邏輯思路。

程序設計風格會深刻影響軟件的質(zhì)量和可維護性,良好的程序設計風格可以使程序的結(jié)構(gòu)清晰合理,使程序代碼便于維護。

程序設計風格的主導:“清晰第一,效率第二”。

主要因素:

源程序文檔化

數(shù)據(jù)說明的方法

語句的結(jié)構(gòu)

輸入和輸出27程序設計基礎程序設計方法與風格27程序設計基礎結(jié)構(gòu)化程序設計1、結(jié)構(gòu)化程序設計

要求把程序的結(jié)構(gòu)限制為順序、選擇和循環(huán)三種基本結(jié)構(gòu)。2、結(jié)構(gòu)化程序設計的原則

自頂向下 先總體后細節(jié),先全局后局部。

逐步求精 對復雜問題設計子目標過度,逐步細化。

模塊化

將復雜問題分解為若干簡單問題。

限制使用GOTO語句 防止造成程序邏輯結(jié)構(gòu)混亂。3、三種基本結(jié)構(gòu)

順序結(jié)構(gòu) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu)4、特點

所有控制結(jié)構(gòu)由三種基本結(jié)構(gòu)組成

各個模塊單入口單出口

模塊的內(nèi)聚性強模塊間的偶合性低28程序設計基礎結(jié)構(gòu)化程序設計28程序設計基礎面向?qū)ο蟮某绦蛟O計1、面向?qū)ο?/p>

面向?qū)ο蠓椒ǖ谋举|(zhì),是從客觀世界固有的事物出發(fā)來構(gòu)造系統(tǒng),用現(xiàn)實生活中常用的思維方法來描述客觀事物,是系統(tǒng)中的對象及對象間的關(guān)系能如實反映事物及其關(guān)系。2、主要優(yōu)點

與人類習慣的思維方法一致

穩(wěn)定性好

可重用性好

易于開發(fā)大型軟件產(chǎn)品

可維護性好3、基本概念

對象 類和實例

消息 繼承

多態(tài)性29程序設計基礎面向?qū)ο蟮某绦蛟O計29程序設計基礎本章重點1、程序設計并不等于編程,編程只是程序設計過程中的一小步。2、結(jié)構(gòu)化程序設計要求把程序的結(jié)構(gòu)限制為順序、選擇、循環(huán)三種基本結(jié)構(gòu)。3、模塊化設計是指把一個大程序按人們能理解的大小規(guī)模進行分解。劃分模塊的基本原則是使每個模塊都易于理解。在按功能劃分模塊時,要求各模塊功能盡量單一,各模塊之間的聯(lián)系盡量的少。4、客觀世界是由實體及其聯(lián)系所組成的??陀^世界中的實體稱為問題域的對象。5、類描述的是具有相似性質(zhì)一組對象。一個對象稱為類的實例。6、允許作用于某個對象上的各種操作稱為方法。7、消息是用來請求對象執(zhí)行某一處理或回答某些信息的要求。8、繼承是表示類之間的相似性的一種機制。9、封裝是一種信息隱蔽機制,目的是將對象的使用者與對象的設計者分開。用戶只需了解對象封裝界面上的信息,不必知道內(nèi)部的具體細節(jié)。30程序設計基礎本章重點30軟件工程基礎關(guān)鍵考點軟件定義與特點軟件開發(fā)過程的過程化原則結(jié)構(gòu)化分析方法結(jié)構(gòu)化設計方法軟件測試技術(shù)與方法程序調(diào)試基本概念31軟件工程基礎關(guān)鍵考點31軟件工程基礎軟件工程基本概念1、軟件

軟件是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。2、軟件的特點

抽象性

可大量拷貝

無磨損及老化問題 受計算機系統(tǒng)限制(移植問題)

復雜性高成本昂貴 開發(fā)過程涉及諸多社會因素3、軟件工程

軟件工程是應用于計算機軟件的定義、開發(fā)和維護的一整套方法、工具、文檔、實踐標準和工序。

三個要素

方法:完成軟件工程項目的技術(shù)手段。

工具:支持軟件的開發(fā)、管理、文檔生成。

過程:支持軟件開發(fā)各個環(huán)節(jié)的管理、控制。

目標:在給定成本、進度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護性、可適應性、可追蹤性、可互操作性滿足用戶要求的軟件產(chǎn)品。32軟件工程基礎軟件工程基本概念32軟件工程基礎軟件開發(fā)過程的過程化原則1、軟件工程過程

⑴為獲得軟件產(chǎn)品,在軟件工具支持下的一系列軟件工程活動。

Plan 軟件規(guī)格說明。 Do 軟件開發(fā)。

Check 軟件確認。 Action 軟件演進。

⑵使用適當?shù)馁Y源,為開發(fā)軟件進行的一組開發(fā)活動,在過程結(jié)束時將用戶要求轉(zhuǎn)化為軟件產(chǎn)品。

軟件工程過程應確定方法使用的順序、要求交付的文檔資料、為保證質(zhì)量與適應變化所需要的管理、軟件開發(fā)各階段要完成的任務。2、軟件生命周期

⑴定義階段

①可行性研究及項目計劃 ②需求分析

⑵開發(fā)階段

①概要設計 ②詳細設計 ③實現(xiàn) ④測試

⑶維護階段

①使用 ②維護 ③退役33軟件工程基礎軟件開發(fā)過程的過程化原則33軟件工程基礎結(jié)構(gòu)化分析方法在系統(tǒng)分析階段,結(jié)構(gòu)化分析方法用來對系統(tǒng)進行邏輯設計。1、需求分析

需求分析的任務是發(fā)現(xiàn)需求、求精、建模和定義需求。

常見的需求分析方法:①結(jié)構(gòu)化分析方法②面向?qū)ο蟮姆治龇椒?、結(jié)構(gòu)化分析方法

結(jié)構(gòu)化分析就是使用數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、結(jié)構(gòu)化英語、判定表和判定樹等工具,來建立一種被稱為結(jié)構(gòu)化規(guī)格說明的目標文檔。結(jié)構(gòu)化分析方法的實質(zhì)是著眼于數(shù)據(jù)流的、自頂向下逐層分解的、建立系統(tǒng)的處理流程,它以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。3、軟件需求規(guī)格說明書

是需求分析階段的最后成果,是軟件開發(fā)的重要文檔之一。

軟件需求規(guī)格說明書把軟件計劃中確定的軟件范圍加以展開,制定出完整的信息描述、詳細的功能說明、恰當?shù)臋z驗標準、其他與要求有關(guān)的信息。34軟件工程基礎結(jié)構(gòu)化分析方法34軟件工程基礎結(jié)構(gòu)化設計方法1、軟件設計

軟件設計是把軟件需求轉(zhuǎn)換為軟件表示的過程。

從技術(shù)角度:軟件設計包括結(jié)構(gòu)設計、數(shù)據(jù)設計、接口設計、過程設計。

從工程角度:軟件設計包括概要設計、詳細設計。

軟件設計的基本原理包括:抽象、模塊化、信息隱蔽、模塊獨立性2、概要設計

概要設計的基本任務:①系統(tǒng)結(jié)構(gòu)設計 ②數(shù)據(jù)結(jié)構(gòu)設計

③編寫設計文檔 ④設計文檔評審

結(jié)構(gòu)圖是軟件結(jié)構(gòu)設計的常用工具。3、詳細設計

詳細設計的任務,是為軟件結(jié)構(gòu)圖中的每一個模塊確定算法和局部數(shù)據(jù)結(jié)構(gòu),用某種選定的工具表示算法和數(shù)據(jù)結(jié)構(gòu)的細節(jié)。

常見的設計工具: 圖形工具:流程圖、N-S、PAD、HIPO

表格工具:判定表

語言工具:PDL(偽碼)35軟件工程基礎結(jié)構(gòu)化設計方法35軟件工程基礎軟件測試1、測試

軟件測試的目標是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯誤,給出程序可靠性的鑒定。

測試不是為了證明程序是正確的,目的是設法暴露程序中的錯誤和缺陷。

測試只能說明程序有錯,不能證明程序無錯。程序不能100%可靠。2、測試方法

①程序的靜態(tài)分析 ②程序的動態(tài)分析 ③自動測試工具3、測試層次

模塊測試(單元測試)

整體測試(集成測試) 又分為功能測試和驗收測試兩種。4、白盒法

根據(jù)對程序內(nèi)部邏輯結(jié)構(gòu)的分析來導出測試用例。5、黑盒法

不考慮程序的內(nèi)部結(jié)構(gòu)特征,根據(jù)程序功能導出測試用例。36軟件工程基礎軟件測試36軟件工程基礎程序調(diào)試1、調(diào)試與測試

①測試的目的是發(fā)現(xiàn)錯誤,評價可靠性;調(diào)試的目的是發(fā)現(xiàn)錯誤的位置,改正發(fā)現(xiàn)的錯誤。

②測試揭示設計人員的過失,由非設計人員承擔;調(diào)試幫助設計人員改正錯誤,由設計人員自己承擔。

③測試是機械的、強制的、嚴格的、可預測的;調(diào)試要求隨機應變、聯(lián)想、經(jīng)驗、智力,并要求自主地完成。

④測試發(fā)現(xiàn)的錯誤可立即進行調(diào)試改正,然后還必須再進行測試。

⑤調(diào)試用例與測試用例可以一致也可以不一致。2、調(diào)試方法

①強行排錯法

②回溯法

③原因排除法37軟件工程基礎程序調(diào)試37軟件工程基礎本章重點1、軟件生命周期分為三個時期共八個階段:

軟件定義期:問題定義、可行性研究、需求分析。

軟件開發(fā)期:系統(tǒng)設計、詳細設計、編碼、測試。

軟件維護期:運行維護。2、在系統(tǒng)分析階段,結(jié)構(gòu)化分析方法用來對系統(tǒng)進行邏輯設計,此時不考慮物理實現(xiàn)的問題,而只考慮“做什么”的問題,系統(tǒng)的物理設計(“如何做”)的問題留在系統(tǒng)設計階段用結(jié)構(gòu)化設計方法來完成。3、數(shù)據(jù)流圖有兩種典型的結(jié)構(gòu)形式:變換型、事務型。4、評價模塊的獨立性的標準有兩個:

耦合性:表明兩個模塊間聯(lián)系的強弱。

內(nèi)聚性:表明模塊內(nèi)部聯(lián)系是否緊密。

內(nèi)聚性要強,偶合性要弱。5、軟件測試是在精心控制的環(huán)境下執(zhí)行程序,發(fā)現(xiàn)程序中的錯誤,給出程序可靠性的鑒定。6、測試是程序執(zhí)行的過程,目的在于發(fā)現(xiàn)錯誤;一個好的測試在于能發(fā)現(xiàn)至今未能發(fā)現(xiàn)的錯誤,一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤。7、測試發(fā)現(xiàn)錯誤后,可進行調(diào)試;調(diào)試后的程序還應再測試,以檢驗調(diào)試效果。38軟件工程基礎本章重點38數(shù)據(jù)庫設計基礎關(guān)鍵考點數(shù)據(jù)庫系統(tǒng)基本概念數(shù)據(jù)模型39數(shù)據(jù)庫設計基礎關(guān)鍵考點39數(shù)據(jù)庫設計基礎數(shù)據(jù)庫系統(tǒng)的基本概念1、數(shù)據(jù)庫DB

是數(shù)據(jù)的集合,具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)中,是多種應用數(shù)據(jù)的集成,可被各個應用程序所共享。2、數(shù)據(jù)庫管理系統(tǒng)DBMS

數(shù)據(jù)庫的管理機構(gòu),系統(tǒng)軟件,負責數(shù)據(jù)組織、操縱、維護、控制、保護等。

為數(shù)據(jù)庫構(gòu)作模式

為數(shù)據(jù)模式的實現(xiàn)提供方法和手段

為用戶使用提供查詢、插入、修改、刪除等功能

提供對數(shù)據(jù)庫中數(shù)據(jù)的多種服務功能(復制、重組、檢測等)。3、DBMS提供的語言

數(shù)據(jù)定義語言

數(shù)據(jù)操縱語言

數(shù)據(jù)控制語言40數(shù)據(jù)庫設計基礎數(shù)據(jù)庫系統(tǒng)的基本概念40數(shù)據(jù)庫設計基礎數(shù)據(jù)庫系統(tǒng)的基本概念4、數(shù)據(jù)庫系統(tǒng)DBS

由DB、DBMS、數(shù)據(jù)庫管理員(DBA)、硬件平臺、軟件平臺組成。5、數(shù)據(jù)庫系統(tǒng)的基本特點

數(shù)據(jù)的集成性

數(shù)據(jù)的高共享性低冗余性

數(shù)據(jù)的獨立性

數(shù)據(jù)統(tǒng)一管理和控制6、數(shù)據(jù)庫系統(tǒng)的三級模式

概念模式:

數(shù)據(jù)庫中全局數(shù)據(jù)的邏輯描述,與具體的軟硬件環(huán)境無關(guān)。

外模式:

也叫用戶模式,是用戶的數(shù)據(jù)視圖。

內(nèi)模式:

也叫物理模式,描述數(shù)據(jù)庫中數(shù)據(jù)的存儲結(jié)構(gòu)和存取方式。41數(shù)據(jù)庫設計基礎數(shù)據(jù)庫系統(tǒng)的基本概念41數(shù)據(jù)庫設計基礎數(shù)據(jù)模型1、三種不同應用層次的數(shù)據(jù)模型

概念模型:

概念數(shù)據(jù)模型,面向客觀世界、面向用戶,與具體的DBMS無關(guān)。

數(shù)據(jù)模型:

邏輯數(shù)據(jù)模型,面向DBS的模型,著重于數(shù)據(jù)庫系統(tǒng)的實現(xiàn)。

物理模型:

物理數(shù)據(jù)模型,面向計算機系統(tǒng),是數(shù)據(jù)模型的物理表示。2、實體集之間的聯(lián)系

一對一 一對多或多對一 多對多3、E-R模型的圖示法

實體集表示法:在E-R圖中用矩形表示實體集,矩形內(nèi)注明實體集名稱。

屬性表示法:在E-R圖中用橢圓,橢圓中注明屬性名稱。

聯(lián)系表示法:在E-R圖中用菱形表示聯(lián)系,菱形中注明聯(lián)系名稱。

實體集與屬性之間的連接關(guān)系:在E-R圖中用連接兩個圖形的無向線段表示。42數(shù)據(jù)庫設計基礎數(shù)據(jù)模型42數(shù)據(jù)庫設計基礎數(shù)據(jù)模型4、層次模型

層次模型的基本結(jié)構(gòu)是樹形結(jié)構(gòu)。5、網(wǎng)狀模型

網(wǎng)狀模型是一個不加任何條件限制的無向圖。6、關(guān)系模型

關(guān)系模型用二維表表示關(guān)系。

二維表有表框架(關(guān)系模式)和表元組組成。

表框架由n個命名的屬性組成。

屬性的取值范圍稱為值域。

二維表中能夠唯一標識元組的最小屬性集成為“鍵”(關(guān)鍵字)。

二維表中可能有若干鍵,稱為侯選鍵(侯選關(guān)鍵字)。

侯選鍵中選擇作為用戶使用的稱為主鍵(主關(guān)鍵字)。

關(guān)系框架和關(guān)系元組構(gòu)成關(guān)系。43數(shù)據(jù)庫設計基礎數(shù)據(jù)模型43數(shù)據(jù)庫設計基礎關(guān)系代數(shù)1、關(guān)系模型的基本操作

插入 刪除 修改 查詢2、基本運算

并運算 (插入)

差運算 (刪除)

投影 (查詢)

選擇 (查詢)

笛卡爾積 (查詢)

交運算

除運算

連接運算(有條件的笛卡爾積)

自然連接運算(公共域等值連接)44數(shù)據(jù)庫設計基礎關(guān)系代數(shù)44數(shù)據(jù)庫設計基礎數(shù)據(jù)庫設計與管理1、數(shù)據(jù)庫設計

數(shù)據(jù)庫設計的基本任務是根據(jù)用戶的信息需求、處理需求、軟硬件環(huán)境設計出數(shù)據(jù)模式。

在數(shù)據(jù)庫設計中有兩種方法:

面向數(shù)據(jù)的方法——以信息需求為主兼顧處理需求。

面向過程的方法——以處理需求為主兼顧信息需求。

數(shù)據(jù)庫設計中一般采用生命周期法。

需求分析:用戶需求調(diào)查,產(chǎn)生需求說明書。

概念設計:分析數(shù)據(jù)的內(nèi)在關(guān)聯(lián),產(chǎn)生概念數(shù)據(jù)模型。

邏輯設計:將E–R圖轉(zhuǎn)換為關(guān)系模式,產(chǎn)生邏輯數(shù)據(jù)模型。

物理設計:調(diào)整內(nèi)部結(jié)構(gòu)選擇存取路徑,產(chǎn)生數(shù)據(jù)庫內(nèi)模式。2、數(shù)據(jù)庫管理

包括: 數(shù)據(jù)庫建立 數(shù)據(jù)庫調(diào)整 數(shù)據(jù)庫重組

安全性控制 完整性控制 故障恢復 運行監(jiān)控45數(shù)據(jù)庫設計基礎數(shù)據(jù)庫設計與管理45數(shù)據(jù)庫設計基礎本章重點1、數(shù)據(jù)管理技術(shù)的發(fā)展分為三個階段:

人工管理、文件管理、數(shù)據(jù)庫管理。2、數(shù)據(jù)庫系統(tǒng)是由操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)和應用程序在一定的硬件支持下所構(gòu)成的。數(shù)據(jù)庫管理系統(tǒng)(DBMS)是整個數(shù)據(jù)庫系統(tǒng)的核心,它對數(shù)據(jù)庫中的數(shù)據(jù)進行管理,還作為用戶應用與數(shù)據(jù)庫之間的接口。3、數(shù)據(jù)庫技術(shù)的根本目標是要解決數(shù)據(jù)的共享問題。4、數(shù)據(jù)庫技術(shù)的特點之一是數(shù)據(jù)的獨立性。數(shù)據(jù)的物理獨立性表示數(shù)據(jù)的物理結(jié)構(gòu)改變不會影響數(shù)據(jù)庫的邏輯結(jié)構(gòu),不致引起應用程序的變化。數(shù)據(jù)的邏輯獨立性表示數(shù)據(jù)庫總體邏輯結(jié)構(gòu)改變不會影響局部邏輯結(jié)構(gòu),基于局部邏輯結(jié)構(gòu)的應用程序也不必修改。5、實體與實體之間的聯(lián)系歸結(jié)為三類:

一對一聯(lián)系、一對多聯(lián)系、多對多聯(lián)系。6、在數(shù)據(jù)庫系統(tǒng)中,由于采用的數(shù)據(jù)模型不同,響應的數(shù)據(jù)庫管理系統(tǒng)(DBMS)也不同。目前常用的有:層次模型、網(wǎng)狀模型、關(guān)系模型。46數(shù)據(jù)庫設計基礎本章重點46數(shù)據(jù)庫設計基礎本章重點7、網(wǎng)狀模型和層次模型都屬于格式化模型。所謂格式化模型,是指在建立數(shù)據(jù)模型時,根據(jù)應用的需要,事先將數(shù)據(jù)之間的邏輯關(guān)系固定下來(先對數(shù)據(jù)的邏輯結(jié)構(gòu)進行設計使其結(jié)構(gòu)化)。8、在關(guān)系模型中,把數(shù)據(jù)看成二維表,每個二維表是一個關(guān)系。表中的列成為屬性(記錄的數(shù)據(jù)項),表中的行稱為元組,相當于記錄。9、選擇運算是在關(guān)系中選擇滿足條件的元組構(gòu)成新的關(guān)系,該新關(guān)系是原關(guān)系的一個子集,它在關(guān)系的行方向上進行運算。10、投影運算是在關(guān)系的某些域上進行操作,它是在關(guān)系的列方向上進行運算。11、數(shù)據(jù)庫設計是指在已有數(shù)據(jù)庫管理系統(tǒng)的基礎上建立數(shù)據(jù)庫的過程。12、數(shù)據(jù)庫設計分為需求分析、概念結(jié)構(gòu)設計、邏輯結(jié)構(gòu)設計、物理結(jié)構(gòu)設計等階段。13、E-R圖(實體-聯(lián)系圖)是設計概念模型的有力工具。14、數(shù)據(jù)字典是數(shù)據(jù)庫的信息系統(tǒng),是由關(guān)于數(shù)據(jù)庫的數(shù)據(jù)描述信息組成的庫,也稱為描述數(shù)據(jù)庫。47數(shù)據(jù)庫設計基礎本章重點47全國計算機等級考試二級公共基礎知識48全國計算機等級考試二級公共基礎知識1公共基礎知識內(nèi)容:考試大綱數(shù)據(jù)結(jié)構(gòu)與算法程序設計基礎軟件工程基礎數(shù)據(jù)庫設計基礎49公共基礎知識內(nèi)容:2考試大綱基本要求1、掌握算法的基本概念。2、掌握基本數(shù)據(jù)結(jié)構(gòu)及其操作。3、掌握基本排序和查找算法。4、掌握逐步求精的結(jié)構(gòu)化程序設計方法。5、掌握軟件工程的基本方法,具有初步應用相關(guān)技術(shù)進行軟件開發(fā)的能力。6、掌握數(shù)據(jù)庫的基本知識,了解關(guān)系數(shù)據(jù)庫的設計。50考試大綱基本要求3考試大綱考試內(nèi)容一、基本數(shù)據(jù)結(jié)構(gòu)與算法

1、算法的基本概念;算法復雜度的概念和意義(空間復雜度與時間復雜度)。

2、數(shù)據(jù)結(jié)構(gòu)的定義;數(shù)據(jù)的邏輯結(jié)構(gòu)和存儲結(jié)構(gòu);數(shù)據(jù)結(jié)構(gòu)的圖形表示;線性結(jié)構(gòu)與非線性結(jié)構(gòu)的概念。

3、線性表的定義;線性表的順序存儲結(jié)構(gòu)及其插入刪除運算。

4、棧和隊列的定義;棧和隊列的順序存儲結(jié)構(gòu)及其基本運算。

5、線性單鏈表,雙向鏈表與循環(huán)鏈表的結(jié)構(gòu)及其基本運算。

6、樹的基本概念;二叉樹的定義及其存儲結(jié)構(gòu);二叉樹的前序、中序和后序遍歷。

7、順序查找與二分查找算法;基本排序算法(交換類排序、選擇類排序、插入類排序)。51考試大綱考試內(nèi)容4考試大綱考試內(nèi)容二、程序設計基礎

1、程序設計方法與風格。

2、結(jié)構(gòu)化程序設計。

3、面向?qū)ο蟮某绦蛟O計方法,對象,方法,屬性及繼承與多態(tài)性。52考試大綱考試內(nèi)容5考試大綱考試內(nèi)容三、軟件工程基礎

1、軟件工程的基本概念;軟件生命周期概念;軟件工具與軟件開發(fā)環(huán)境。

2、結(jié)構(gòu)化分析方法;數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書。

3、結(jié)構(gòu)化設計方法;總體設計,詳細設計。

4、軟件測試的方法;白盒測試,黑盒測試,測試用例設計;軟件測試的實施;單元測試,集成測試,系統(tǒng)測試。

5、程序的調(diào)試,靜態(tài)調(diào)試與動態(tài)調(diào)試。53考試大綱考試內(nèi)容6考試大綱考試內(nèi)容四、數(shù)據(jù)庫設計基礎

1、數(shù)據(jù)庫的基本概念;數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)。

2、數(shù)據(jù)模型;實體聯(lián)系模型及E-R圖,從E-R圖導出關(guān)系數(shù)據(jù)模型。

3、關(guān)系代數(shù)運算,包括集合運算及選擇、投影、連接運算;數(shù)據(jù)庫規(guī)范化理論。

4、數(shù)據(jù)庫設計方法和步驟;需求分析、概念設計、邏輯設計和物理設計的相關(guān)策略。54考試大綱考試內(nèi)容7考試大綱考試題型選擇題

10題 每題2分 共20分填空題

5題 每題2分 共10分

合計 30分55考試大綱考試題型8數(shù)據(jù)結(jié)構(gòu)與算法關(guān)鍵考點算法基本概念及算法復雜度數(shù)據(jù)的存儲結(jié)構(gòu)棧和隊列線性鏈表二叉樹基本概念及其特性查找技術(shù)56數(shù)據(jù)結(jié)構(gòu)與算法關(guān)鍵考點9數(shù)據(jù)結(jié)構(gòu)與算法算法的基本概念1、算法

算法是指解題方案的準確而完整的描述。

注意:算法與數(shù)學上的計算方法不是同一個概念。算法要考慮計算機的特點,要考慮計算方法的可行性。

算法也不等于程序。算法不考慮具體的機器及編程語言。解決問題時,總是先設計算法,然后進行編程。2、算法的基本特征

可行性

確定性

有窮性

擁有足夠的情報

算法是一個動態(tài)概念,強調(diào)實際的執(zhí)行過程。

數(shù)學上的計算方法是一個靜態(tài)概念,注重理論上的正確性。

數(shù)學上的計算方法是設計算法的基礎。57數(shù)據(jù)結(jié)構(gòu)與算法算法的基本概念10數(shù)據(jù)結(jié)構(gòu)與算法算法的基本概念3、算法的基本要素

算法中對數(shù)據(jù)的運算和操作

基本的運算和操作有:算術(shù)運算、邏輯運算、關(guān)系運算、數(shù)據(jù)傳輸。

算法的控制結(jié)構(gòu)

控制結(jié)構(gòu)決定操作的執(zhí)行順序。要求符合結(jié)構(gòu)化原則,強調(diào)易讀性。4、算法設計基本方法

列舉法列舉所有可能情況,檢測其中符合條件的結(jié)果。

歸納法列舉若干特殊情況,分析歸納出一般規(guī)律。

遞推從已知初始條件出發(fā),逐步推導出中間及最后結(jié)果。

遞歸將復雜問題歸結(jié)為簡單問題,在歸結(jié)為更簡單問題,…。

減半遞推技術(shù)將問題規(guī)?!皽p半”,并重復該“減半”的過程。

回溯法分析問題,找出某些線索,沿線索逐步試探。若試探成功,則繼續(xù),若試探失敗,則回退。直至問題解決。58數(shù)據(jù)結(jié)構(gòu)與算法算法的基本概念11數(shù)據(jù)結(jié)構(gòu)與算法算法的基本概念5、算法的時間復雜度

指執(zhí)行算法所需要的計算工作量

算法工作量的度量應與計算機、編程語言、編程細節(jié)等無關(guān)。

算法的工作量用算法所執(zhí)行的基本運算次數(shù)衡量。

算法工作量是問題規(guī)模的函數(shù):算法的工作量=f(n)

度量方法有: 平均性態(tài)分析計算其加權(quán)平均值

最壞情況分析計算其基本運算的最大次數(shù)6、算法的空間復雜度

指執(zhí)行算法所需要的存儲空間

包括:算法程序所占據(jù)的存儲空間

待處理數(shù)據(jù)所占據(jù)的存儲空間

算法程序執(zhí)行中所需要的額外存儲空間

如果額外存儲空間大小不隨問題規(guī)模變化,則稱之為算法原地工作。

降低算法的空間復雜度,應從數(shù)據(jù)的存儲空間和額外空間入手。59數(shù)據(jù)結(jié)構(gòu)與算法算法的基本概念12數(shù)據(jù)結(jié)構(gòu)與算法數(shù)據(jù)結(jié)構(gòu)的基本概念1、數(shù)據(jù)結(jié)構(gòu)

數(shù)據(jù)結(jié)構(gòu)是指相互有關(guān)聯(lián)的數(shù)據(jù)元素的集合

數(shù)據(jù)結(jié)構(gòu)是指帶有結(jié)構(gòu)的數(shù)據(jù)元素的集合。結(jié)構(gòu)通常指前后件關(guān)系。

主要研究:數(shù)據(jù)元素間的固有邏輯關(guān)系

數(shù)據(jù)元素在計算機中的存儲關(guān)系

對各種數(shù)據(jù)結(jié)構(gòu)進行的運算2、數(shù)據(jù)的邏輯結(jié)構(gòu)

指反映數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu)

前后件(直接前驅(qū)和直接后繼)關(guān)系就是指邏輯關(guān)系3、數(shù)據(jù)的存儲結(jié)構(gòu)

數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的存儲形式

存儲結(jié)構(gòu)也稱為物理結(jié)構(gòu)

同一種邏輯結(jié)構(gòu)可以有不同的存儲結(jié)構(gòu)

常用的有:順序、鏈接、索引等形式60數(shù)據(jù)結(jié)構(gòu)與算法數(shù)據(jù)結(jié)構(gòu)的基本概念13數(shù)據(jù)結(jié)構(gòu)與算法數(shù)據(jù)結(jié)構(gòu)的基本概念4、數(shù)據(jù)結(jié)構(gòu)的表示

二元關(guān)系表示:

兩個要素:數(shù)據(jù)元素的集合D,該集合上的關(guān)系R。

即:B=(D,R)

如:D={春,夏,秋,冬}

R={(春,夏),(夏,秋),(秋,冬)}

圖形表示:

標有元素值的方框表示結(jié)點,有向線段表示邏輯關(guān)系。

春→夏→秋→冬

5、線性結(jié)構(gòu)和非線性結(jié)構(gòu)

線性結(jié)構(gòu):一個非空的線性結(jié)構(gòu)有且只有一個根結(jié)點,每個結(jié)點最多只有一個直接前驅(qū)、最多只有一個直接后繼。

非線性結(jié)構(gòu):不是線性結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)。61數(shù)據(jù)結(jié)構(gòu)與算法數(shù)據(jù)結(jié)構(gòu)的基本概念14數(shù)據(jù)結(jié)構(gòu)與算法線性表及其順序存儲結(jié)構(gòu)1、線性表

線性表是由n(n≥0)個元素組成的有限序列:

(a1,a2,…,ai,…,an)

①有且只有一個根結(jié)點,它無直接前驅(qū)。

②有且只有一個終端結(jié)點,它無直接后繼。

③除根結(jié)點和終端結(jié)點外,其他所有結(jié)點都有且只有一個直接前驅(qū)和直接后繼。結(jié)點個數(shù)n稱為線性表的長度。n=0時,稱為空表。2、線性表的順序存儲

順序存儲也稱為順序分配

線性表中所有元素所占的存儲空間是連續(xù)的

線性表中各元素在存儲空間中按照邏輯順序依次存儲3、順序表的運算

線性表的順序存儲結(jié)構(gòu)通常稱為順序表

包括:插入、刪除、查找、分解、合并、復制、逆轉(zhuǎn)等。

在高級語言中,順序表對應一維數(shù)組。

順序表的查找方便,插入和刪除較麻煩。62數(shù)據(jù)結(jié)構(gòu)與算法線性表及其順序存儲結(jié)構(gòu)15數(shù)據(jù)結(jié)構(gòu)與算法線性表及其順序存儲結(jié)構(gòu)注意:

①線性表屬于線性結(jié)構(gòu)。

②線性表的順序存儲結(jié)構(gòu)通常稱為順序表。

③在順序表中,所有元素按照其邏輯順序連續(xù)存儲,前后件元素緊鄰,前件元素一定存儲在后件元素的前面。

④在程序設計語言中,線性表的順序存儲結(jié)構(gòu)對應了一維數(shù)組。因為在程序設計語言中,一維數(shù)組與計算機中實際的存儲空間結(jié)構(gòu)是一致的。

⑤在順序表中,如果要在第i個位置插入一個新元素,則原第i個元素以及之后的所有元素都要依次后移一個位置。在平均情況下,在順序表中插入一個新元素,需要移動n/2個元素。

⑥在順序表中,如果要刪除第i個位置的元素,則原第i個元素之后的所有元素都要依次前移一個位置。在平均情況下,在順序表中刪除一個元素,需要移動n/2個元素。

63數(shù)據(jù)結(jié)構(gòu)與算法線性表及其順序存儲結(jié)構(gòu)16數(shù)據(jù)結(jié)構(gòu)與算法棧及其基本運算1、棧

棧(stack)是限定在一端進行插入和刪除的線性表

允許進行插入或刪除的一端稱為棧頂。

不允許進行插入或刪除的另一端稱為棧底。

其特點為“先入后出”(FILO)或“后入先出”(LIFO)。(記憶作用)

通常設置指針top指向棧頂,指針bottom指向棧底。2、棧的順序存儲結(jié)構(gòu)

棧的各個數(shù)據(jù)元素按其邏輯順序依次連續(xù)存儲。

由于插入刪除操作只能在棧頂一端進行,所以

不需要移動數(shù)據(jù)元素。3、棧的基本運算

入棧:在棧頂位置插入新元素。

出棧:取出棧頂位置的元素。

讀棧頂元素:讀出棧頂位置的元素。

“上溢”:入棧時堆棧已滿。 “下溢”:出棧時堆棧已空。64數(shù)據(jù)結(jié)構(gòu)與算法棧及其基本運算17數(shù)據(jù)結(jié)構(gòu)與算法隊列及其基本運算1、隊列

隊列(queue)是限定在一端進行插入另一端進行刪除的線性表

允許進行插入的一端稱為隊尾。

允許進行刪除的另一端稱為隊頭。

其特點為“先入先出”(FIFO)或“后入后出”(LILO)。(先來先服務)

通常設置指針rear指向隊尾,指針front指向隊頭。2、隊列的順序存儲結(jié)構(gòu)

隊列的各個數(shù)據(jù)元素按其邏輯順序依次連續(xù)存儲。

由于插入刪除操作只能在隊列的兩端進行,所以

不需要移動數(shù)據(jù)元素。3、隊列的基本運算

在實際應用中常常使用循環(huán)隊列。

入隊:在隊尾位置插入新元素。

出隊:取出隊頭位置的元素。

“上溢”:入隊時隊列已滿。 “下溢”:出隊時隊列已空。65數(shù)據(jù)結(jié)構(gòu)與算法隊列及其基本運算18數(shù)據(jù)結(jié)構(gòu)與算法線性鏈表1、鏈式存儲方式

①結(jié)點由兩部分組成:數(shù)據(jù)域(存儲數(shù)據(jù))、指針域(指向其前件或后件)。

②數(shù)據(jù)結(jié)構(gòu)的存儲空間可以不連續(xù),存儲順序與邏輯關(guān)系可以不一致。

③鏈式存儲方式既可以用來表示線性結(jié)構(gòu),也可以表示非線性結(jié)構(gòu)。2、線性鏈表

線性表的鏈式存儲結(jié)構(gòu)稱為線性鏈表。

(棧的鏈式存儲結(jié)構(gòu)稱為鏈棧、隊列的鏈式存儲結(jié)構(gòu)稱為鏈隊列)

常用的線性鏈表有:

單鏈表(一個指針域,指向直接后繼)

雙向鏈表(兩個指針域,指向直接后繼及后繼)

循環(huán)鏈表(所有結(jié)點的指針構(gòu)成循環(huán)鏈)3、線性鏈表的基本運算

查找:在線性鏈表中查找指定元素。

插入:在線性鏈表中插入新結(jié)點。

刪除:在線性鏈表中刪除指定結(jié)點。66數(shù)據(jù)結(jié)構(gòu)與算法線性鏈表19數(shù)據(jù)結(jié)構(gòu)與算法樹的基本概念1、樹

樹是一種簡單的非線性結(jié)構(gòu)。

元素間的關(guān)系具有明顯的層次結(jié)構(gòu)。2、相關(guān)的術(shù)語

根結(jié)點

葉節(jié)點

父結(jié)點

子結(jié)點

子樹

結(jié)點的度

樹的度

樹的深度67數(shù)據(jù)結(jié)構(gòu)與算法樹的基本概念20數(shù)據(jù)結(jié)構(gòu)與算法二叉樹1、二叉樹的特點

非空二叉樹只有一個根結(jié)點。

每個結(jié)點最多有左右兩棵子樹。2、二叉樹的基本性質(zhì)

第k層上最多有2k-1個結(jié)點

深度為m的二叉樹最多有2m-1個結(jié)點

任何二叉樹葉結(jié)點總比度為2的節(jié)點多一個

n個節(jié)點的二叉樹的深度為[log2n]+13、滿二叉樹4、完全二叉樹5、二叉樹的遍歷

先序遍歷 中序遍歷 后序遍歷

ABDEGCFHI DBGEACHFI DGEBHIFCA68數(shù)據(jù)結(jié)構(gòu)與算法二叉樹21數(shù)據(jù)結(jié)構(gòu)與算法查找技術(shù)1、順序查找

從線性表的第一個元素開始,依次與指定數(shù)據(jù)比較,若相等則查找成功,若比較的所有元素都不相等,則查找失敗。

最壞情況的比較次數(shù)為表長n,平均情況為n/2。

無序順序表的查找只能采用順序查找的方法。

線性表在鏈式存儲時也只能采用順序查找的方法。2、二分法查找

在順序存儲的線性表為有序的情況下,可以使用二分法查找。

方法為:

將待查數(shù)據(jù)與線性表的中間項比較:

若相等,則查找成功;

若小于,則在線性表的前半部分進行二分法查找;

若大于,則在線性表的后半部分進行二分法查找;

反復進行直到相等(查找成功)或子表長度為0(查找失敗)。69數(shù)據(jù)結(jié)構(gòu)與算法查找技術(shù)22數(shù)據(jù)結(jié)構(gòu)與算法排序技術(shù)1、交換類排序

起泡排序

最壞情況下的比較次數(shù)為n(n-1)/2。

快速排序

最壞情況下的比較次數(shù)為n(n-1)/2。2、插入類排序

簡單插入排序

最壞情況下的比較次數(shù)為n(n-1)/2。

希爾排序

最壞情況下的比較次數(shù)為O(n1.5)。3、選擇類排序

簡單選擇排序

最壞情況下的比較次數(shù)為n(n-1)/2。

堆排序

最壞情況下的比較次數(shù)為O(nlog2n)。70數(shù)據(jù)結(jié)構(gòu)與算法排序技術(shù)23數(shù)據(jù)結(jié)構(gòu)與算法本章重點1、算法是問題處理方案正確而完整的描述,算法的效率與數(shù)據(jù)的存儲結(jié)構(gòu)有密切的關(guān)系。2、數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機中的表示(存儲方式)稱為數(shù)據(jù)的存儲結(jié)構(gòu)(物理結(jié)構(gòu))。一種邏輯結(jié)構(gòu)可以有多種存儲結(jié)構(gòu)。3、在長度為n的順序表中,插入或刪除一個元素平均需要移動一半元素。4、棧是特殊的線性表,具有記憶作用。特點是“先進后出(后進先出)”。棧頂指針動態(tài)反映了棧中元素的變化情況。5、隊列是特殊的線性表。特點是“先進先出(后進后出)”。隊頭和隊尾指針動態(tài)地反映了隊列中元素的變化情況。6、線性鏈表是線性表的鏈式存儲結(jié)構(gòu)。在線性鏈表中,各元素節(jié)點的存儲空間可以不連續(xù),存儲順序也可以與邏輯順序不一致。線性鏈表的插入刪除操作不需要移動數(shù)據(jù)元素。7、二叉樹是一種非線性結(jié)構(gòu)。主要性質(zhì)有:

第k層上最多有2k-1個結(jié)點 深度為m時,最多有2m–1個結(jié)點

度為0的結(jié)點比度為2的多一個 深度至少為[log2n]+171數(shù)據(jù)結(jié)構(gòu)與算法本章重點24數(shù)據(jù)結(jié)構(gòu)與算法本章重點8、滿二叉樹是二叉樹的特殊形態(tài),滿二叉樹的各層結(jié)點都達到最大值,葉結(jié)點只出現(xiàn)在最后一層。9、完全二叉樹是二叉樹的特殊形態(tài),完全二叉樹除最后一層外,各層結(jié)點都達到最大值,葉結(jié)點只出現(xiàn)在最后兩層。滿二叉樹屬于完全二叉樹。10、根據(jù)掃描根結(jié)點的順序,按照先左后右的原則,遍歷二叉樹有三種

方法:前序遍歷、中序遍歷、后序遍歷。11、在長度為n的線性表中進行順序查找,最壞情況需要比較n次。12、在長度為n的線性表中進行對分查找,最壞情況需要比較log2n次。但對分查找只適用于有序順序表。13、在冒泡排序、快速排序、簡單插入排序、選擇排序的方法中,最壞情況下需要比較的次數(shù)為n(n-1)/2。72數(shù)據(jù)結(jié)構(gòu)與算法本章重點25程序設計基礎關(guān)鍵考點結(jié)構(gòu)化設計的原則面向?qū)ο蠓椒ǖ幕靖拍?3程序設計基礎關(guān)鍵考點26程序設計基礎程序設計方法與風格1、程序設計方法

就程序設計的方法和技術(shù)的發(fā)展而言

主要經(jīng)歷了結(jié)構(gòu)化程序設計和面向?qū)ο蟪绦蛟O計兩個階段2、程序設計風格

程序設計風格是指編寫程序時所表現(xiàn)出來的特點、習慣和邏輯思路。

程序設計風格會深刻影響軟件的質(zhì)量和可維護性,良好的程序設計風格可以使程序的結(jié)構(gòu)清晰合理,使程序代碼便于維護。

程序設計風格的主導:“清晰第一,效率第二”。

主要因素:

源程序文檔化

數(shù)據(jù)說明的方法

語句的結(jié)構(gòu)

輸入和輸出74程序設計基礎程序設計方法與風格27程序設計基礎結(jié)構(gòu)化程序設計1、結(jié)構(gòu)化程序設計

要求把程序的結(jié)構(gòu)限制為順序、選擇和循環(huán)三種基本結(jié)構(gòu)。2、結(jié)構(gòu)化程序設計的原則

自頂向下 先總體后細節(jié),先全局后局部。

逐步求精 對復雜問題設計子目標過度,逐步細化。

模塊化

將復雜問題分解為若干簡單問題。

限制使用GOTO語句 防止造成程序邏輯結(jié)構(gòu)混亂。3、三種基本結(jié)構(gòu)

順序結(jié)構(gòu) 選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu)4、特點

所有控制結(jié)構(gòu)由三種基本結(jié)構(gòu)組成

各個模塊單入口單出口

模塊的內(nèi)聚性強模塊間的偶合性低75程序設計基礎結(jié)構(gòu)化程序設計28程序設計基礎面向?qū)ο蟮某绦蛟O計1、面向?qū)ο?/p>

面向?qū)ο蠓椒ǖ谋举|(zhì),是從客觀世界固有的事物出發(fā)來構(gòu)造系統(tǒng),用現(xiàn)實生活中常用的思維方法來描述客觀事物,是系統(tǒng)中的對象及對象間的關(guān)系能如實反映事物及其關(guān)系。2、主要優(yōu)點

與人類習慣的思維方法一致

穩(wěn)定性好

可重用性好

易于開發(fā)大型軟件產(chǎn)品

可維護性好3、基本概念

對象 類和實例

消息 繼承

多態(tài)性76程序設計基礎面向?qū)ο蟮某绦蛟O計29程序設計基礎本章重點1、程序設計并不等于編程,編程只是程序設計過程中的一小步。2、結(jié)構(gòu)化程序設計要求把程序的結(jié)構(gòu)限制為順序、選擇、循環(huán)三種基本結(jié)構(gòu)。3、模塊化設計是指把一個大程序按人們能理解的大小規(guī)模進行分解。劃分模塊的基本原則是使每個模塊都易于理解。在按功能劃分模塊時,要求各模塊功能盡量單一,各模塊之間的聯(lián)系盡量的少。4、客觀世界是由實體及其聯(lián)系所組成的??陀^世界中的實體稱為問題域的對象。5、類描述的是具有相似性質(zhì)一組對象。一個對象稱為類的實例。6、允許作用于某個對象上的各種操作稱為方法。7、消息是用來請求對象執(zhí)行某一處理或回答某些信息的要求。8、繼承是表示類之間的相似性的一種機制。9、封裝是一種信息隱蔽機制,目的是將對象的使用者與對象的設計者分開。用戶只需了解對象封裝界面上的信息,不必知道內(nèi)部的具體細節(jié)。77程序設計基礎本章重點30軟件工程基礎關(guān)鍵考點軟件定義與特點軟件開發(fā)過程的過程化原則結(jié)構(gòu)化分析方法結(jié)構(gòu)化設計方法軟件測試技術(shù)與方法程序調(diào)試基本概念78軟件工程基礎關(guān)鍵考點31軟件工程基礎軟件工程基本概念1、軟件

軟件是包括程序、數(shù)據(jù)及相關(guān)文檔的完整集合。2、軟件的特點

抽象性

可大量拷貝

無磨損及老化問題 受計算機系統(tǒng)限制(移植問題)

復雜性高成本昂貴 開發(fā)過程涉及諸多社會因素3、軟件工程

軟件工程是應用于計算機軟件的定義、開發(fā)和維護的一整套方法、工具、文檔、實踐標準和工序。

三個要素

方法:完成軟件工程項目的技術(shù)手段。

工具:支持軟件的開發(fā)、管理、文檔生成。

過程:支持軟件開發(fā)各個環(huán)節(jié)的管理、控制。

目標:在給定成本、進度的前提下,開發(fā)出具有有效性、可靠性、可理解性、可維護性、可適應性、可追蹤性、可互操作性滿足用戶要求的軟件產(chǎn)品。79軟件工程基礎軟件工程基本概念32軟件工程基礎軟件開發(fā)過程的過程化原則1、軟件工程過程

⑴為獲得軟件產(chǎn)品,在軟件工具支持下的一系列軟件工程活動。

Plan 軟件規(guī)格說明。 Do 軟件開發(fā)。

Check 軟件確認。 Action 軟件演進。

⑵使用適當?shù)馁Y源,為開發(fā)軟件進行的一組開發(fā)活動,在過程結(jié)束時將用戶要求轉(zhuǎn)化為軟件產(chǎn)品。

軟件工程過程應確定方法使用的順序、要求交付的文檔資料、為保證質(zhì)量與適應變化所需要的管理、軟件開發(fā)各階段要完成的任務。2、軟件生命周期

⑴定義階段

①可行性研究及項目計劃 ②需求分析

⑵開發(fā)階段

①概要設計 ②詳細設計 ③實現(xiàn) ④測試

⑶維護階段

①使用 ②維護 ③退役80軟件工程基礎軟件開發(fā)過程的過程化原則33軟件工程基礎結(jié)構(gòu)化分析方法在系統(tǒng)分析階段,結(jié)構(gòu)化分析方法用來對系統(tǒng)進行邏輯設計。1、需求分析

需求分析的任務是發(fā)現(xiàn)需求、求精、建模和定義需求。

常見的需求分析方法:①結(jié)構(gòu)化分析方法②面向?qū)ο蟮姆治龇椒?、結(jié)構(gòu)化分析方法

結(jié)構(gòu)化分析就是使用數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、結(jié)構(gòu)化英語、判定表和判定樹等工具,來建立一種被稱為結(jié)構(gòu)化規(guī)格說明的目標文檔。結(jié)構(gòu)化分析方法的實質(zhì)是著眼于數(shù)據(jù)流的、自頂向下逐層分解的、建立系統(tǒng)的處理流程,它以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。3、軟件需求規(guī)格說明書

是需求分析階段的最后成果,是軟件開發(fā)的重要文檔之一。

軟件需求規(guī)格說明書把軟件計劃中確定的軟件范圍加以展開,制定出完整的信息描述、詳細的功能說明、恰當?shù)臋z驗標準、其他與要求有關(guān)的信息。81軟件工程基礎結(jié)構(gòu)化分析方法34軟件工程基礎結(jié)構(gòu)化設計方法1、軟件設計

軟件設計是把軟件需求轉(zhuǎn)換為軟件表示的過程。

從技術(shù)角度:軟件設計包括結(jié)構(gòu)設計、數(shù)據(jù)設計、接口設計、過程設計。

從工程角度:軟件設計包括概要設計、詳細設計。

軟件設計的基本原理包括:抽象、模塊化、信息隱蔽、模塊獨立性2、概要設計

概要設計的基本任務:①系統(tǒng)結(jié)構(gòu)設計 ②數(shù)據(jù)結(jié)構(gòu)設計

③編寫設計文檔 ④設計文檔評審

結(jié)構(gòu)圖是軟件結(jié)構(gòu)設計的常用工具。3、詳細設計

詳細設計的任務,是為軟件結(jié)構(gòu)圖中的每一個模塊確定算法和局部數(shù)據(jù)結(jié)構(gòu),用某種選定的工具表示算法和數(shù)據(jù)結(jié)構(gòu)的細節(jié)。

常見的設計工具: 圖形工具:流程圖、N-S、PAD、HIPO

表格工具:判定表

語言工具:PDL(偽碼)82軟件工程基礎結(jié)構(gòu)化設計方法35軟件工程基礎軟件測試1、測試

軟件測試的目標是在精心控制的環(huán)境下執(zhí)行程序,以發(fā)現(xiàn)程序中的錯誤,給出程序可靠性的鑒定。

測試不是為了證明程序是正確的,目的是設法暴露程序中的錯誤和缺陷。

測試只能說明程序有錯,不能證明程序無錯。程序不能100%可靠。2、測試方法

①程序的靜態(tài)分析 ②程序的動態(tài)分析 ③自動測試工具3、測試層次

模塊測試(單元測試)

整體測試(集成測試) 又分為功能測試和驗收測試兩種。4、白盒法

根據(jù)對程序內(nèi)部邏輯結(jié)構(gòu)的分析來導出測試用例。5、黑盒法

不考慮程序的內(nèi)部結(jié)構(gòu)特征,根據(jù)程序功能導出測試用例。83軟件工程基礎軟件測試36軟件工程基礎程序調(diào)試1、調(diào)試與測試

①測試的目的是發(fā)現(xiàn)錯誤,評價可靠性;調(diào)試的目的是發(fā)現(xiàn)錯誤的位置,改正發(fā)現(xiàn)的錯誤。

②測試揭示設計人員的過失,由非設計人員承擔;調(diào)試幫助設計人員改正錯誤,由設計人員自己承擔。

③測試是機械的、強制的、嚴格的、可預測的;調(diào)試要求隨機應變、聯(lián)想、經(jīng)驗、智力,并要求自主地完成。

④測試發(fā)現(xiàn)的錯誤可立即進行調(diào)試改正,然后還必須再進行測試。

⑤調(diào)試用例與測試用例可以一致也可以不一致。2、調(diào)試方法

①強行排錯法

②回溯法

③原因排除法84軟件工程基礎程序調(diào)試37軟件工程基礎本章重點1、軟件生命周期分為三個時期共八個階段:

軟件定義期:問題定義、可行性研究、需求分析。

軟件開發(fā)期:系統(tǒng)設計、詳細設計、編碼、測試。

軟件維護期:運行維護。2、在系統(tǒng)分析階段,結(jié)構(gòu)化分析方法用來對系統(tǒng)進行邏輯設計,此時不考慮物理實現(xiàn)的問題,而只考慮“做什么”的問題,系統(tǒng)的物理設計(“如何做”)的問題留在系統(tǒng)設計階段用結(jié)構(gòu)化設計方法來完成。3、數(shù)據(jù)流圖有兩種典型的結(jié)構(gòu)形式:變換型、事務型。4、評價模塊的獨立性的標準有兩個:

耦合性:表明兩個模塊間聯(lián)系的強弱。

內(nèi)聚性:表明模塊內(nèi)部聯(lián)系是否緊密。

內(nèi)聚性要強,偶合性要弱。5、軟件測試是在精心控制的環(huán)境下執(zhí)行程序,發(fā)現(xiàn)程序中的錯誤,給出程序可靠性的鑒定。6、測試是程序執(zhí)行的過程,目的在于發(fā)現(xiàn)錯誤;一個好的測試在于能發(fā)現(xiàn)至今未能發(fā)現(xiàn)的錯誤,一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤。7、測試發(fā)現(xiàn)錯誤后,可進行調(diào)試;調(diào)試后的程序還應再測試,以檢驗調(diào)試效果。85軟件工程基礎本章重點38數(shù)據(jù)庫設計基礎關(guān)鍵考點數(shù)據(jù)庫系統(tǒng)基本概念數(shù)據(jù)模型86數(shù)據(jù)庫設計基礎關(guān)鍵考點39數(shù)據(jù)庫設計基

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論