公共基礎(chǔ)部分_第1頁
公共基礎(chǔ)部分_第2頁
公共基礎(chǔ)部分_第3頁
公共基礎(chǔ)部分_第4頁
公共基礎(chǔ)部分_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、公共基礎(chǔ)部分第1頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一第一部分 數(shù)據(jù)結(jié)構(gòu)與算法一、算法重點(diǎn)考點(diǎn) 1 、算法的概念 (記憶) 算法是指解決問題方案的準(zhǔn)確而完整的描述. 2 、算法的基本特征(記憶) 可行性, 確定性, 有窮性, 擁有足夠的情報 3 、算法的控制結(jié)構(gòu)(記憶) 順序 , 選擇(分支), 循環(huán)第2頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一4 、算法設(shè)計基本方法(理解+記憶) 列舉法、歸納法、遞推法、遞歸法、減半遞推技術(shù)比較遞推法和遞歸法 遞推:從已知條件出發(fā),逐次推出中間結(jié)果和最后結(jié)果. 遞歸:將問題逐層分解,解決簡單問題,再朝逆方向綜合. 遞歸算法要比

2、遞推算法清晰易讀,且易設(shè)計,但執(zhí)行效率低第3頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一5 、算法復(fù)雜度 時間復(fù)雜度:是指執(zhí)行算法所需要的計算工作量. 空間復(fù)雜度:是指執(zhí)行算法所需要的存儲空間. 存儲空間包括:算法程序所占空間,輸入原始數(shù)據(jù)所占空間執(zhí)行算法時需要的額外空間. 如果額外空間是常量,則稱該算法是”原地工作”第4頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一二、數(shù)據(jù)結(jié)構(gòu)的考點(diǎn)1 、數(shù)據(jù)結(jié)構(gòu)的概念 數(shù)據(jù)的邏輯結(jié)構(gòu): 指反應(yīng)數(shù)據(jù)元素之間邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu).如:春夏秋冬 數(shù)據(jù)的存儲結(jié)構(gòu)(物理結(jié)構(gòu)): 指數(shù)據(jù)的邏輯結(jié)構(gòu)在計算機(jī)中的存儲形式. 數(shù)據(jù)的邏輯結(jié)構(gòu)可以表示成多種

3、存儲結(jié)構(gòu), 不同的存儲結(jié)構(gòu),數(shù)據(jù)處理的效率不同.第5頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一2 、數(shù)據(jù)邏輯結(jié)構(gòu)的兩大結(jié)構(gòu)線形結(jié)構(gòu)和非線形結(jié)構(gòu)的基本概念 非空的數(shù)據(jù)結(jié)構(gòu),滿足下列條件則為線形結(jié)構(gòu)(又稱線性表) (1)有且只有一個根結(jié)點(diǎn) (2) 每個節(jié)點(diǎn)最多有一個前件,也最多有一個后件.第6頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一1)、線形表的順序存儲結(jié)構(gòu) 是計算機(jī)中存儲線形表的最簡單的方法.兩個基本特點(diǎn): (1)線形表中所有元素所占的空間都是連續(xù)的。 (2)線形表中各數(shù)據(jù)元素在存儲空間中是按邏輯順序依次存放.第7頁,共65頁,2022年,5月20日,6點(diǎn)11分,星

4、期一2)、線性鏈表 (1)概念: 線性表的鏈?zhǔn)酱鎯Y(jié)構(gòu)稱為線形鏈表. (2)存儲原理: 把存儲結(jié)點(diǎn)分成兩部分,第一部分存儲數(shù)據(jù)元素,第二 部分存儲下一元素的序號(即存儲結(jié)點(diǎn)的地址). (3)特點(diǎn): 各數(shù)據(jù)結(jié)點(diǎn)的存儲序號是不連續(xù)的,各結(jié)點(diǎn)在存儲空間 中的位置與邏輯關(guān)系也不一致. (4) 特別說明 棧和隊列也可以采用鏈?zhǔn)酱鎯?。 第8頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一3 、棧及基本運(yùn)算 (1)棧的概念: 棧是限定在一端插入與刪除的線形表. 允許插入和刪除端為棧頂,另一端為棧底,即滿足 ”先進(jìn)后出”的原則.FILO 或LIFO “后進(jìn)先出” (2)棧的基本運(yùn)算 入棧:插入元素

5、出棧:刪除元素 讀棧:把棧頂元素賦給一個變量.第9頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一4 、隊列 隊列是允許在一端(隊尾)進(jìn)行插入,而在另一端(隊頭) 進(jìn)行刪除的線形表. 特點(diǎn): “先進(jìn)先出” FIFO 或”后進(jìn)后出” LILO 隊列運(yùn)算: 入隊:從隊尾插入 退隊:從隊頭刪除第10頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一三、樹與二叉樹1、概念: 樹:是一種簡單的非線形結(jié)構(gòu),所有元素都有明顯的層次 結(jié)構(gòu)。樹根,子結(jié)點(diǎn),樹葉 度:一個結(jié)點(diǎn)所擁有的后件個數(shù)。 樹的度:所有結(jié)點(diǎn)中最大的度稱為樹的度。 深度:樹的最大層數(shù)稱為樹的深度,根結(jié)點(diǎn)是第一層。 第11頁,共65

6、頁,2022年,5月20日,6點(diǎn)11分,星期一2、二叉樹二叉樹:非空二叉樹只有一個根結(jié)點(diǎn),每個結(jié)點(diǎn)最多有兩 棵子樹,且分別稱為左子樹,右子樹。特點(diǎn) (1)在第K層上,最多有2k-1(K=1)個結(jié)點(diǎn) (2)深度為M的二叉樹,最多有2M-1個結(jié)點(diǎn)(深度指層數(shù)) (3)任何二叉樹中,度為0的結(jié)點(diǎn)(葉子)總比度為2的結(jié) 點(diǎn)多一個 (4)具有n個結(jié)點(diǎn)的二叉樹,深度至少為lon2n+1第12頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一3、完全二叉樹和滿二叉樹 完全二叉樹 是指除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值,在最后一層上只缺少右邊的若干結(jié)點(diǎn)。 滿二叉樹(最多結(jié)點(diǎn)) 滿二叉樹是指除最后

7、一層外,每一層上的所有結(jié)點(diǎn)有 兩個子結(jié)點(diǎn),則在第K層上有2k-1個結(jié)點(diǎn),深度為m的 滿二叉樹有2m-1個結(jié)點(diǎn)。第13頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一4、二叉樹的遍歷 遍歷:是指不重復(fù)訪問二叉樹中的所有結(jié)點(diǎn)。 三種遍歷方式: 前續(xù)遍歷(DLR): 先訪問根結(jié)點(diǎn),然后遍歷左子樹,最后遍歷右子樹。 中序遍歷(LDR): 首先遍歷左子樹,然后訪問根結(jié)點(diǎn),最后遍歷右子樹。 后序遍歷(LRD): 首先遍歷左子樹,然后遍歷右子樹,最后訪問根結(jié)點(diǎn)。第14頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一1.7查找技術(shù)指在一個給定的數(shù)據(jù)結(jié)構(gòu)中查找某個指定的元素。一、順序查找:1、順

8、序查找效率低2、只能用順序查找的兩種情況:無序表;有序表但采用鏈?zhǔn)酱鎯Y(jié)構(gòu)。3、長度為n的線性表,最壞情況下,順序查找需比較n次,最好一次比較就成功,平均情況下,要比較n/2次。二、二分法查找:1、只適用順序存儲的有序表。2、最壞情況下,長度為n的線性表需比較log2n次,最好一次比較就成功。第15頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一1.8排序技術(shù)概念: 將一個無序序列整理成按值非遞減順序排序的有序序列。分類:一、交換類排序冒泡排序法快速排序法二、插入類排序法簡單插入排序希爾排序三、選擇類排序法簡單選擇排序堆排序第16頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一

9、排序方法插入排序選擇排序交換排序歸并排序簡單插入排序希爾排序簡單選擇排序堆排序冒泡排序快速排序第17頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一一、交換類排序 冒泡排序法通過相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。分別從線性表的兩端,比較相鄰元素大小,大的下沉,小的上浮,來回比較。假設(shè)線性表的長度為n,則在最壞的情況下,冒泡排序需要經(jīng)過n/2遍的從前往后的掃描和n/2遍的從后往前的掃描,需要的比較次數(shù)為n(n-1)/2。第18頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一快速排序法分割思想:選取一個元素,小于它的移到前面,大于它的移到后面,不斷分割。在最壞情況下需比較O(

10、nlog2n)在最好的情況下,需要比較n(n-1)/2第19頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一二、插入類排序法簡單插入排序?qū)o序序列中的各元素依次插入到已有序的線性表中。在最壞情況下,簡單插入排序需要n(n-1)/2次比較。希爾排序基本思想是:將整個無序序列分割成若干小的子序列分別進(jìn)行插入排序。按一定增量分組,增量逐漸減小。最壞情況下,希爾排序所需要的比較次數(shù)為O(n1.5)第20頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一三、選擇類排序法簡單選擇排序從中選出最小的元素,將它交換到表的最前面。簡單選擇排序在最壞情況下需比較n(n-1)/2次。堆排序在最壞情況下

11、需比較O(nlog2n)第21頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一排序總結(jié)好的情況:n(n-1)/2第22頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一練習(xí):第23頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一在長度為n的有序線性表中進(jìn)行二分查找。最壞的情況下,需要的比較次數(shù)為 。長度為n的順序存儲線性表中,當(dāng)在任何位置上插入一個元素概率都相等時,插入一個元素所需移動元素的平均個數(shù)為 。 假設(shè)線性表的長度為n,則在最壞情況下,冒泡排序需要的比較次數(shù)為 A) log2n B) n2 C) O(n1.5) D) n(n-1)/2第24頁,共65頁,2022年

12、,5月20日,6點(diǎn)11分,星期一 冒泡排序算法在最好的情況下的元素交換次數(shù)為 【1】 。 在最壞情況下,堆排序需要比較的次數(shù)為 【2】 。 最簡單的交換排序方法是 A) 快速排序 B) 選擇排序 C) 堆排序D) 冒泡排序排序是計算機(jī)程序設(shè)計中的一種重要操作,常見的排序方法有插入排序、 【1】 和選擇排序等。第25頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一在下列幾種排序方法中,要求內(nèi)存量最大的是 A) 插入排序 B) 選擇排序 C) 快速排序D) 歸并排序希爾排序?qū)儆?A) 交換排序 B) 歸并排序 C) 選擇排序D) 插入排序第26頁,共65頁,2022年,5月20日,6點(diǎn)11

13、分,星期一第二部分 程序設(shè)計基 結(jié)構(gòu)化程序設(shè)計、面向?qū)ο蟪绦蛟O(shè)計1、程序設(shè)計方法和風(fēng)格(清晰第一、效率第二)(一)源程序文檔化 (1)符號名的命名應(yīng)具有一定的實際含義,便于理解 (2)程序應(yīng)加上一定的注釋,序言性注釋和功能性注釋 (3)為使程序結(jié)構(gòu)一目了然,可以利用空格、空行、 縮進(jìn)等技巧,是程序?qū)哟吻逦?第27頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一 (二)數(shù)據(jù)說明的方法 (1)數(shù)據(jù)說明的次序規(guī)范化 (2)說明語句中變量安排有序化 (3)使用注釋來說明復(fù)雜數(shù)據(jù)的結(jié)構(gòu) (三)語句的結(jié)構(gòu) (1)在一行內(nèi)只寫一條語句;盡量使用庫函數(shù)。 (2)首先保證程序正確,然后再考慮提高效率。

14、(3)避免使用臨時變量而使程序的可讀性下降 (4)避免不必要的轉(zhuǎn)移,避免采用復(fù)雜的條件語句 (5)要模塊化,是模塊功能盡可能單一化。 高內(nèi)聚,低耦合 (6)利用信息隱蔽,確保每個模塊的獨(dú)立性 (7)不要修補(bǔ)不好的程序,要重新編寫第28頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一(四)輸入和輸出 (1)對所有的輸入數(shù)據(jù)都要檢驗數(shù)據(jù)的合法性 (2)檢查輸入項的各種重要組合的合理性 (3)輸入格式要簡單,以使輸入的步驟和操作簡單 (4)輸入數(shù)據(jù)時,應(yīng)允許使用自由格式 (5)應(yīng)允缺省值。 (6)輸入一批數(shù)據(jù)時,最好使用輸入結(jié)束標(biāo)志。 (7)以交互輸入/輸出方式進(jìn)行輸入時,要采用人-機(jī)會 話

15、給出明確的提示信息和運(yùn)行的狀態(tài)信息 (8)設(shè)計輸出報表格式第29頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一2、結(jié)構(gòu)化程序設(shè)計 (1)設(shè)計原則: 自頂向下、逐步求精、模塊化、限制使用GOTO語句 (2)結(jié)構(gòu)化程序的結(jié)構(gòu) 順序結(jié)構(gòu) 選擇結(jié)構(gòu)(分支結(jié)構(gòu)) 重復(fù)結(jié)構(gòu)(循環(huán)結(jié)構(gòu))第30頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一3、結(jié)構(gòu)化程序設(shè)計的具體實施中,注意要素 (1)使用順序、選擇和循環(huán)三種基本控制結(jié)構(gòu)表示程序 的控制結(jié)構(gòu)。 (2)選用的控制結(jié)構(gòu)只許有一個入口和一個出口 (3)程序模塊化,每個模塊也只能有一個入口和一個出口 (4)使用基本控制結(jié)構(gòu)進(jìn)行嵌套與組合來實現(xiàn)復(fù)雜

16、結(jié)構(gòu) (5)用前后一致的方法來模擬3種基本結(jié)構(gòu)以外的控制結(jié)構(gòu) (6)嚴(yán)格控制GOTO語句的使用第31頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一4、面向?qū)ο蟪绦蛟O(shè)計 優(yōu)點(diǎn) (1)與人類習(xí)慣的思維方法一致,面向?qū)ο蟮暮诵氖菍ο?(2)穩(wěn)定性好 (3)可重用性好,可繼承父類的所有屬性和方法 (4)易于開發(fā)大型軟件產(chǎn)品 (5)可維護(hù)性好(原因) 穩(wěn)定性好、容易修改、容易理解、易于測試和調(diào)試第32頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一5、面向?qū)ο蠓椒ǖ幕靖拍?(1)對象 對象是指一組屬性以及這組屬性上的專用操作的封裝 對象由對象名、屬性和操作3部分組成。 對象的基本特點(diǎn)

17、:標(biāo)識惟一性、分類性、多態(tài)性 封裝性、模塊獨(dú)立性好 (2)封裝 封裝是一種信息隱蔽技術(shù),用戶只能看見對象封裝界 面上的信息,對象的內(nèi)部實現(xiàn)是隱蔽的。第33頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一(3)屬性 屬性就是對象的特征,是對象外觀及行為的特征。(4)類和實例 類:指具有共同屬性、方法的對象的集合 實例:類的一個具體應(yīng)用就是一個實例(5)消息 實例之間相互傳遞的信息叫消息第34頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一(6)繼承 繼承是在已有的類定義的基礎(chǔ)上建立新類的定義技術(shù)。(7)多態(tài)性和動態(tài)綁定 多態(tài)性:指同一操作作用于不同對象可以有不同解釋 產(chǎn)生不同的執(zhí)

18、行結(jié)果。 動態(tài)綁定:在運(yùn)行過程中,當(dāng)一個對象發(fā)送消息請求 服務(wù)時,根據(jù)接收對象的具體情況將請求的 操作和具體實現(xiàn)的方法進(jìn)行連接。第35頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一例題講解第36頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一結(jié)構(gòu)化程序設(shè)計的3種結(jié)構(gòu)是 A) 順序結(jié)構(gòu)、選擇結(jié)構(gòu)、轉(zhuǎn)移結(jié)構(gòu) B) 分支結(jié)構(gòu)、等價結(jié)構(gòu)、循環(huán)結(jié)構(gòu) C) 多分支結(jié)構(gòu)、賦值結(jié)構(gòu)、等價結(jié)構(gòu) D) 順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)在設(shè)計程序時,應(yīng)采納的原則之一是 A) 不限制goto語句的使用 B) 減少或取消注解行 C) 程序越短越好D) 程序結(jié)構(gòu)應(yīng)有助于讀者理解 對建立良好的程序設(shè)計風(fēng)格,下

19、面描述正確的是 A) 程序應(yīng)簡單、清晰、可讀性好 B) 符號名的命名只要符合語法 C) 充分考慮程序的執(zhí)行效率 D) 程序的注釋可有可無第37頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一結(jié)構(gòu)化程序設(shè)計主要強(qiáng)調(diào)的是 A) 程序的規(guī)模B) 程序的效率 C) 程序設(shè)計語言的先進(jìn)性 D) 程序易讀性 以下不屬于對象的基本特點(diǎn)的是 A) 分類性 B) 多態(tài)性 C) 繼承性D) 封裝性 在結(jié)構(gòu)化程序設(shè)計思想提出之前,在程序設(shè)計中曾強(qiáng)調(diào)程序的效率,現(xiàn)在,與程序的效率相比,人們更重視程序的 A) 安全性B) 一致性 C) 可理解性D) 合理性第38頁,共65頁,2022年,5月20日,6點(diǎn)11分,

20、星期一下列敘述中,不屬于結(jié)構(gòu)化程序設(shè)計方法的主要原則的是 A) 自頂向下 B) 由底向上 C) 模塊化 D) 限制使用goto語句 對象實現(xiàn)了數(shù)據(jù)和操作的結(jié)合,是指對數(shù)據(jù)和數(shù)據(jù)的操作進(jìn)行 A) 結(jié)合 B) 隱藏 C) 封裝 D) 抽象第39頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一在面向?qū)ο蠓椒ㄖ?,一個對象請求另一個對象為其服務(wù)的方式是通過發(fā)送A)調(diào)用語句 B)命令 C)口令 D)消息下列對象概念描述錯誤的是A)任何對象都必須有繼承性B)對象是屬性和方法的封裝體C)對象間的通訊靠消息傳遞D)操作是對象的動態(tài)屬性第40頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一在面向?qū)?/p>

21、象的程序設(shè)計中,類描述的是具有相似性質(zhì)的一組 【】 在面向?qū)ο蠓椒ㄖ?,類之間共享屬性和操作的機(jī)制稱為 【】 。 一個類可以從直接或間接的祖先中繼承所有屬性和方法。采用這個方法提高了軟件的 【】 。 第41頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一一個對象是類的一個 【3】 。 在面向?qū)ο蟮脑O(shè)計中,用來請求對象執(zhí)行某一處理或回答某些信息的要求稱為 【4】 。 第42頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一 【3】 是一種信息隱蔽技術(shù),目的在于將對象的使用者和對象的設(shè)計者分開。 源程序文檔化要求程序應(yīng)加注釋。注釋一般分為序言性注釋和_。在面向?qū)ο蠓椒ǚN,信息屏蔽是通過

22、對象的_性來實現(xiàn)的。第43頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為自頂向下、逐步求精、_和限制使用goto語句。下面描述中,符合結(jié)構(gòu)化程序設(shè)計風(fēng)格的是_。第44頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一。面向?qū)ο蟮某绦蛟O(shè)計方法中涉及的對象是系統(tǒng)中用來描述客觀事物的一個_。下面概念中,不屬于面向?qū)ο蠓椒ǖ氖莀第45頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一第三部分 軟件工程一、基本概念1、軟件定義和軟件特點(diǎn) 定義:軟件是包括程序、數(shù)據(jù)及相關(guān)文檔的完整指令。 與硬件相互依存,構(gòu)成計算機(jī)系統(tǒng)。 特點(diǎn)1)軟件是一種邏輯實

23、體 (2)軟件的生產(chǎn)和硬件不同,沒有明顯的制作過程 (3)軟件在運(yùn)行、使用期間不存在磨損、老化問題 (4)軟件的開發(fā)和運(yùn)行具有依賴計算機(jī)系統(tǒng)的特性 受計算機(jī)系統(tǒng)的限制,軟件移植可能會有問題 (5)軟件的復(fù)雜性高,成本昂貴 (6)軟件開發(fā)涉及諸多社會因素第46頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一2、軟件危機(jī)與軟件工程 軟件危機(jī):指在軟件在開發(fā)和維護(hù)過程中所遇到的一系列 嚴(yán)重問題。包括成本、質(zhì)量、生產(chǎn)率等 軟件工程:是應(yīng)用于計算機(jī)軟件的定義、開發(fā)和維護(hù)的一 整套方法、工具、文檔實踐標(biāo)準(zhǔn)和工序 核心思想是: 把軟件產(chǎn)品作為一個工程產(chǎn)品處理。 軟件工程三要素: 方法、工具和過程第4

24、7頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一3、軟件工程過程和軟件生命周期 軟件工程過程:是指為了獲得軟件產(chǎn)品,由軟件工程師完 成的一系列軟件工程活動。 軟件工程四種活動: 軟件規(guī)格說明、軟件開發(fā)、軟件確認(rèn)、軟件演進(jìn) 軟件生命周期: (1)可行性研究與計劃確定 (2)需求分析 (3)軟件設(shè)計(結(jié)構(gòu)模塊的劃分) (4)軟件實現(xiàn) (5)軟件測試 (6)運(yùn)行和維護(hù) 第48頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一4、軟件工程的目標(biāo)和原則 目標(biāo):付出較低的成本;達(dá)到要求的軟件功能; 取得較好的軟件性能;開發(fā)的軟件易于移植; 需要較低的維護(hù)費(fèi)用;能按時完成開發(fā),及時交付 原則

25、:抽象、信息隱蔽、模塊化、局部化、確定性 一致性、完備性和可驗證性。第49頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一二、結(jié)構(gòu)化分析1、需求分析 定義:通過文檔描述用戶解決問題或達(dá)到目標(biāo)所需的條 件或權(quán)能,及系統(tǒng)要滿足合同、標(biāo)準(zhǔn)規(guī)范所具有 的條件。 需求分析階段的工作: 需求獲取、 需求分析、 編寫需求規(guī)格說明書、 需求評審第50頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一2、需求分析的方法 (1)結(jié)構(gòu)化分析方法 SA:面向數(shù)據(jù)流的結(jié)構(gòu)化分析方法 JSD:面向數(shù)據(jù)結(jié)構(gòu)Jackson方法 DSSD:面向數(shù)據(jù)結(jié)構(gòu)的結(jié)構(gòu)化數(shù)據(jù)系統(tǒng)開發(fā)方法 (2)面向?qū)ο蟮姆治龇椒∣OA第51

26、頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一3、結(jié)構(gòu)化分析方法 定義:就是使用數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)、 結(jié)構(gòu)化英語、判定表和判定樹等工具,建立一種 新的、稱為結(jié)構(gòu)化規(guī)格說明的目標(biāo)文檔。4、軟件需求規(guī)則說明書 是需求分析階段的最后成果,是軟件開發(fā)中的重要文檔之一 第52頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一5、軟件設(shè)計 從技術(shù)觀點(diǎn)來看,軟件設(shè)計包括如下幾個過程: (1)軟件結(jié)構(gòu)設(shè)計:定義軟件系統(tǒng)各部件之間的關(guān)系 (2)數(shù)據(jù)設(shè)計:將分析時創(chuàng)建的模型轉(zhuǎn)為數(shù)據(jù)結(jié)構(gòu)的定義 (3)接口設(shè)計:描述軟件內(nèi)部、軟件和操作系統(tǒng)之間及軟 件與人之間如何通信。 (4)過程設(shè)

27、計:把系統(tǒng)結(jié)構(gòu)部件轉(zhuǎn)換成軟件的過程描述 從工程管理來看,軟件設(shè)計分為: (1)概要設(shè)計:確定總體結(jié)構(gòu),模塊的劃分 (2)詳細(xì)設(shè)計:確定每一模塊的實現(xiàn)。第53頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一6、軟件模塊的獨(dú)立性 獨(dú)立性:每個模塊完成系統(tǒng)要求的獨(dú)立的功能,與其他 模塊的聯(lián)系最少且接口簡單。 獨(dú)立性的兩個標(biāo)準(zhǔn): 耦合和內(nèi)聚(應(yīng)滿足:低耦合、高內(nèi)聚) 耦合:模塊之間聯(lián)系的緊密程度。 內(nèi)聚:模塊內(nèi)部各元素之間聯(lián)系的緊密程度第54頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一7、概要設(shè)計的準(zhǔn)則 (1)提高模塊獨(dú)立性 (2)模塊規(guī)模適度 (3)深度、寬度、扇出和扇入適當(dāng) 好

28、的軟件結(jié)構(gòu)設(shè)計應(yīng)該滿足: 頂層扇出教高、中間扇出教少、低層模塊高扇入 (4)使模塊的作用域在該模塊的控制域內(nèi) (5)應(yīng)減少模塊的接口和界面的復(fù)雜性 (6)設(shè)計成單入口和單出口的模塊第55頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一8、數(shù)據(jù)流類型 兩種:交換流和事物流第56頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一9、軟件測試的目的和方法 目的:盡可能多地發(fā)現(xiàn)軟件產(chǎn)品中的錯誤和缺陷。 準(zhǔn)則 (1)所有測試應(yīng)追溯到需求 (2)嚴(yán)格執(zhí)行測試計劃,排除測試的隨意性 (3)充分注意測試中的群集顯現(xiàn) (4)程序應(yīng)避免檢查自己的程序 (5)窮舉測試不能 (6)妥善保存測試計劃、測試用例、出錯統(tǒng)計 和最終分析報告,為維護(hù)提供方便。 方法:白盒測試:根據(jù)程序的內(nèi)部邏輯來設(shè)計測試 黑盒測試:根據(jù)程序的功能說明來設(shè)計測試第57頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一10、軟件測試的實施過程 單元測試:對各模塊進(jìn)行正確性檢驗 集成測試:測試與組裝軟件的測試,發(fā)現(xiàn)與接口有關(guān)的問題 驗收測試:驗證軟件的功能、性能 系統(tǒng)測試:將測試確認(rèn)的軟件加入到計算機(jī)系統(tǒng)中進(jìn)行測試第58頁,共65頁,2022年,5月20日,6點(diǎn)11分,星期一11、程序調(diào)試 是指診斷和改正程序中 的錯誤。 其關(guān)鍵是推斷程序內(nèi)部的錯誤位置及原因。 調(diào)試

溫馨提示

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

評論

0/150

提交評論