![二級公共基礎知識new_第1頁](http://file4.renrendoc.com/view/c8643aaef93ddd7e059243435239d41e/c8643aaef93ddd7e059243435239d41e1.gif)
![二級公共基礎知識new_第2頁](http://file4.renrendoc.com/view/c8643aaef93ddd7e059243435239d41e/c8643aaef93ddd7e059243435239d41e2.gif)
![二級公共基礎知識new_第3頁](http://file4.renrendoc.com/view/c8643aaef93ddd7e059243435239d41e/c8643aaef93ddd7e059243435239d41e3.gif)
![二級公共基礎知識new_第4頁](http://file4.renrendoc.com/view/c8643aaef93ddd7e059243435239d41e/c8643aaef93ddd7e059243435239d41e4.gif)
![二級公共基礎知識new_第5頁](http://file4.renrendoc.com/view/c8643aaef93ddd7e059243435239d41e/c8643aaef93ddd7e059243435239d41e5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、二級公共基礎知識1第一章數(shù)據(jù)結構與算法第二章程序設計基礎 第三章軟件工程基礎第四章數(shù)據(jù)庫設計基礎2第一章數(shù)據(jù)結構與算法1.1算法1.2數(shù)據(jù)結構的基本概念1.3線性表及其順序存儲結構1.4棧和隊列1.5線性鏈表1.6樹與二叉樹1.7查找技術1.8排序技術3考試大綱1.算法的基本概念;算法復雜度的概念和意義(時間復雜度與空間復雜度)。2.數(shù)據(jù)結構的定義;數(shù)據(jù)的邏輯結構與存儲結構;數(shù)據(jù)結構的圖形表示;線性結構與非線性結構的概念。3.線性表的定義;線性表的順序存儲結構及其插入與刪除運算。4.棧和隊列的定義;棧和隊列的順序存儲結構及其基本運算。5.線性單鏈表、雙向鏈表與循環(huán)鏈表的結構及其基本運算。6.樹
2、的基本概念;二叉樹的定義及其存儲結構;二叉樹的前序、中序和后序遍歷。7.順序查找與二分法查找算法;基本排序算法(交換類排序,選擇類排序,插入類排序)。41.1算法1.1.1 算法的基本概念算法:是指解題方案的準確而完整的描述。 算法不等于程序,也不等于計算機方法,程序的編制不可能優(yōu)于算法的設計。1、算法的基本特征:(1)可行性;(2)確定性,算法中每一步驟都必須有明確定義,不允許有模棱兩可的解釋,不允許有多義性;(3)有窮性,算法必須能在有限的時間內做完,取能在執(zhí)行有限個步驟后終止,包括合理的執(zhí)行時間的含義;(4)擁有足夠的情報51.1算法2、算法的基本要素:一是對數(shù)據(jù)對象的運算和操作;二是算
3、法的控制結構。(1)算法中對數(shù)據(jù)的運算和操作指令系統(tǒng):一個計算機系統(tǒng)能執(zhí)行的所有指令的集合?;具\算和操作包括:算術運算、邏輯運算、關系運算、數(shù)據(jù)傳輸。61.1算法(2)算法的控制結構:一個算法的功能不僅取決于所選用的操作,而且還與各操作之間的執(zhí)行順序有關。算法中各操作之間的執(zhí)行順序稱為算法的控制結構。描述算法的工具通常有傳統(tǒng)流程圖、NS結構化流程圖、算法描述語言等。一個算法一般都可以用順序、選擇、循環(huán)三種基本控制結構組合而成。71.1算法3、算法設計基本方法(1)列舉法:根據(jù)提出的問題,列舉所有可能的情況,并用問題 中給定的條件檢驗哪 些 是需要的,哪 些是不需要的。(2)歸納法:通過列舉少
4、量的特殊情況,經過分析,最后找出一般的關系。(3)遞推:是指從已知的初始條件出發(fā),逐次推出所要求的各中間結果和最后結果。(4)遞歸:將問題逐層分解的過程,實際上并沒有對問題進行求解,而只是當解決當最后那些最簡單的總是后,再沿著原來分解的逆過程逐步進行綜合,(5)減半遞推技術:所謂“減半”,是指將問題材的規(guī)模減半,而問題的性質不變;所謂“遞推”,是指重復“減半”的過程。(6)回溯法:通過對問題的分析,找出一個解決總是的線索,然后沿著這個線索,然后沿著這個線索逐步試探,對于每一步的試探,若試探成功,就得到問題的解,若試探失敗,就逐步回退,換別的路線再進行試探。81.1算法1.1.2算法的復雜度算法
5、復雜度:算法時間復雜和算法空間復雜度。1.算法的時間復雜度算法時間復雜度是指執(zhí)行算法所需要的計算工作量。算法的工作量用算法所執(zhí)行的基本運算次數(shù)來度量。91.1算法(1)平均性態(tài): 是指用各種特定輸入下的基本運算次數(shù)的加權平均值來度量算法的工作量。算法的平均性態(tài)定義:(2)最壞情況復雜性:是指在規(guī)模為n時,算法所執(zhí)行的基本運算的最大次數(shù)。101.1算法2.算法空間復雜度算法空間復雜度是指執(zhí)行這個算法所需要的內存空間。 一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)行過程中所需要的額外空間。111.2數(shù)據(jù)結構的基本概念 數(shù)據(jù)結構研究的三個方面:(1)數(shù)據(jù)集合
6、中和數(shù)元素之間所固有的邏輯關系,即數(shù)據(jù)的邏輯結構;(2)在對數(shù)據(jù)進行處理時,各數(shù)據(jù)元素在計算機中的存儲關系,即數(shù)據(jù)的存儲結構;(3)對各種數(shù)據(jù)結構進行的運算。 討論以上問題的主要目的是為了提高數(shù)據(jù)的效率。所謂提高數(shù)據(jù)處理的效率,主要包括兩個方面:一是提高數(shù)據(jù)處理的速度,二是盡量節(jié)省在數(shù)據(jù)處理過程中所占用的計算機存儲空間。121.2.1什么是數(shù)據(jù)結構數(shù)據(jù)結構是指相互有關聯(lián)的數(shù)據(jù)元素的集合。1、數(shù)據(jù)的邏輯結構數(shù)據(jù)的邏輯結構包含:(1)表示數(shù)據(jù)元素的信息;(2)表示各數(shù)據(jù)元素之間的前后件關系。132、數(shù)據(jù)的存儲結構 數(shù)據(jù)的邏輯結構在計算機存儲空間中的存放形式稱為數(shù)據(jù)的存儲結構(也稱數(shù)據(jù)的物理結構)。
7、 數(shù)據(jù)的存儲結構有順序、鏈接、索引等。141.2.3 線性結構與非線性結構根據(jù)數(shù)據(jù)結構中各數(shù)據(jù)元素之間前后件關系的復雜程度、一般講數(shù)據(jù)結構分為兩大類型:線性結構與非線性結構 線性結構條件:(1)有且只有一個根結點;(2)每一個結點最多有一個前件,也最多有一個后件。棧、隊列、串都是線性結構。非線性結構:不滿足線性結構條件的數(shù)據(jù)結構。數(shù)組、廣義表、數(shù)和圖都是非線性結構15線性表線性表的順序存儲結構線性表的順序存儲結構具有以下兩個基本特點:(1)線性表中所有元素的所占的存儲空間是連續(xù)的;(2)線性表中各數(shù)據(jù)元素在存儲空間中是按邏輯順序依次存放的。ai的存儲地址為:ADR(ai)=ADR(a1)+(i
8、-1)k,,ADR(a1)為第一個元素的地址,k代表每個元素占的字節(jié)數(shù)。16順序表的基礎要點1、線性表是具有n個數(shù)據(jù)元素的有限序列。2、線性表的順序存儲結構具有三個弱點:在插入和刪除時,需移動大量元素由于難以估計,必須預先分配較大的空間表的容量難以擴充 (如何解決?)3、順序存儲結構通過元素的相對存儲地址來表示元素之間的關系4、線性表順序存儲的優(yōu)點是可隨機存取元素。5、順序表中邏輯上相鄰的元素的物理位置必定緊鄰。 6、順序表是一種隨機存取的存儲結構。7、在順序表中插入或刪除一個元素時,需要平均移動表的一半元素,具有移動的元素個數(shù)與該元素的位置有關。8、在長度為n的順序表中插入一個元素的時間復雜
9、度為O(n),刪除一個元素的時間復雜度為O(n)。171.3 棧棧是一種特殊的線性表。其特殊性在于限定插入和刪除數(shù)據(jù)元素的操作只能在線性表的表尾端進行。如下所示: 進行插入和刪除的表尾端是浮動端,通常被稱為棧頂, an 為棧頂元素, 并用一個“棧頂指針”指示;而表頭端是固定端,通常被稱為棧底, a1 為棧底元素。經常將棧用下圖的形式描述:a1, a2, a3, ., an 插入和刪除端18結論:后進先出(Last In First Out),簡稱為LIFO線性表。 舉例1:家里吃飯的碗,通常在洗干凈后一個一個地落在一起存放,在使用時,若一個一個地拿,一定最先拿走最上面的那只碗,而最后拿出最下面
10、的那只碗。 舉例2:在建筑工地上,使用的磚塊從底往上一層一層地碼放,在使用時,將從最上面一層一層地拿取。19棧的基本運算:(1)插入元素稱為入棧運算;(2)刪除元素稱為退棧運算;(3)讀棧頂元素是將棧頂元素賦給一個指定的變量,此時指針無變化201.如果進棧序列為A,B,C,D,則可能的出棧序列是()A.)C,A,D,B B)B,D,C,A C) C,D,A,B D)任意順序2.棧中允許插入和刪除的一端叫做【棧頂】3.關于棧的描述,正確的是A.在棧中只能插入元素B.在棧中只能刪除元素C.只能在一端插入或刪除元素D.只能在一端插入元素,在另一端刪除元素。21BADCABDCA221.4 隊列及其基
11、本運算隊列(Queue)也是一種運算受限的線性表。它只允許在表的一端進行插入,而在另一端進行刪除。允許刪除的一端稱為隊頭(front),允許插入的一端稱為隊尾(rear)。 例如:排隊購物。先進入隊列的成員總是先離開隊列。因此隊列亦稱作先進先出(First In First Out)的線性表,簡稱FIFO表。 當隊列中沒有元素時稱為空隊列。在空隊列中依次加入元素a1,a2,an之后,a1是隊頭元素,an是隊尾元素。顯然退出隊列的次序也只能是a1,a2,an ,也就是說隊列的修改是依先進先出的原則進行的。23下圖是隊列的示意圖: a1a2an 插入端和刪除端都是浮動的。通常我們將插入端稱為隊尾,
12、用一個“隊尾指針”指示;而刪除端被稱為隊頭,用一個“隊頭指針”指示。 結論:先進先出(First In First Out),簡稱為FIFO線性表。隊列運算包括(1)入隊運算:從隊尾插入一個元素;(2)退隊運算:從隊頭刪除一個元素。 出隊入隊241.5.1 線性鏈表的基本概念線性表順序存儲結構的特點它是一種簡單、方便的存儲方式。它要求線性表的數(shù)據(jù)元素依次存放在連續(xù)的存儲單元中,從而利用數(shù)據(jù)元素的存儲順序表示相應的邏輯順序,這種存儲方式屬于靜態(tài)存儲形式。暴露的問題在做插入或刪除元素的操作時,會產生大量的數(shù)據(jù)元素移動;對于長度變化較大的線性表,要一次性地分配足夠的存儲空間,但這些空間常常又得不到充
13、分的利用;線性表的容量難以擴充。1.5 線性鏈表25 線性表的鏈式存儲結構 線性表的鏈式存儲結構是指用一組任意的存儲單元(可以連續(xù),也可以不連續(xù))存儲線性表中的數(shù)據(jù)元素。因此,鏈表中結點的邏輯次序和物理次序不一定相同。為了能正確表示數(shù)據(jù)元素間的邏輯關系,對于每個數(shù)據(jù)元素不僅要表示它的具體內容,還要附加一個表示它的直接后繼元素存儲位置的信息。這個信息稱為指針(pointer)或鏈(link)。這兩部分組成了鏈表中的結點結構: datalink指針域,用來存放結點的直接后繼的地址數(shù)據(jù)域,用來存放結點的值26例如 :線性表 (a, b,c,d)27 術語表示每個數(shù)據(jù)元素的兩部分信息組合在一起被稱為結
14、點;其中表示數(shù)據(jù)元素內容的部分被稱為數(shù)據(jù)域(data);表示直接后繼元素存儲地址的部分被稱為指針或指針域(next)。 headd cba單鏈表結構示意圖datalink28其中,head是頭指針,它指向單鏈表中的第一個結點,這是單鏈表操作的入口點。由于最后一個結點沒有直接后繼結點,所以,它的指針域放入一個特殊的值NULL。NULL值在圖示中常用()符號表示。帶頭結點的單鏈表為了簡化對鏈表的操作,人們經常在鏈表的第一個結點之前附加一個結點,并稱為頭結點。這樣可以免去對鏈表第一個結點的特殊處理。如下圖所示:Head=NULL或0稱為空表帶頭結點的單鏈表結構示意圖head空表headd cba29
15、鏈式存儲結構的特點(1)線性表中的數(shù)據(jù)元素在存儲單元中的存放順序與邏輯順序不一定一致;(2)在對線性表操作時,只能通過頭指針進入鏈表,并通過每個結點的指針域向后掃描其余結點,這樣就會造成尋找第一個結點和尋找最后一個結點所花費的時間不等,具有這種特點的存取方式被稱為順序存取方式。30循環(huán)鏈表(circular linked list)循環(huán)鏈表是表中最后一個結點的指針指向頭結點,使鏈表構成環(huán)狀特點:從表中任一結點出發(fā)均可找到表中其他結點,提高查找效率操作與單鏈表基本一致,循環(huán)條件不同單鏈表p或p-link=NULL循環(huán)鏈表p或p-link=Hhh空表31雙向鏈表(double linked lis
16、t)單鏈表具有單向性的缺點L空雙向循環(huán)鏈表:非空雙向循環(huán)鏈表:LABbcapp-prior-next= p= p-next-proir;32數(shù)據(jù)結構中的每一個結點對應于一個存儲單元,這種存儲單元稱為存儲結點,簡稱結點。結點由兩部分組成:(1)用于存儲數(shù)據(jù)元素值,稱為數(shù)據(jù)域;(2)用于存放指針,稱為指針域,用于指向前一個或后一個結點。在鏈式存儲結構中,存儲數(shù)據(jù)結構的存儲空間可以不連續(xù),各數(shù)據(jù)結點的存儲順序與數(shù)據(jù)元素之間的邏輯關系可以不一致,而數(shù)據(jù)元素之間的邏輯關系是由指針域來確定的。鏈式存儲方式即可用于表示線性結構,也可用于表示非線性結構。33棧的鏈式存儲若是棧中元素的數(shù)目變化范圍較大或不清楚棧
17、元素的數(shù)目,就應該考慮使用鏈式存儲結構。人們將用鏈式存儲結構表示的棧稱作“鏈?!?。鏈棧通常用一個無頭結點的單鏈表表示。如圖所示。由于棧的插入刪除操作只能在一端進行,而對于單鏈表來說,在首端插入刪除結點要比尾端相對地容易一些,所以,我們將單鏈表的首端作為棧頂端,即將單鏈表的頭指針作為棧頂指針。34 top3516 樹與二叉樹 樹是一種簡單的非線性結構,所有元素之間具有明顯的層次特性。 在樹結構中,每一個結點只有一個前件,稱為父結點,沒有前件的結點只有一個,稱為樹的根結點,簡稱樹的根。每一個結點可以有多個后件,稱為該結點的子結點。沒有后件的結點稱為葉子結點。 在樹結構中,一個結點所擁有的后件的個數(shù)
18、稱為該結點的度,所有結點中最大的度稱為樹的度。樹的最大層次稱為樹的深度。36(C)是有13個結點的樹,其中A是根37結點: 數(shù)據(jù)元素的內容及其指向其子樹根的分支統(tǒng)稱為結點。結點的度 (Degree): 結點的分支數(shù),即結點擁有的子樹數(shù)。終端結點(葉子leaf): 度為0的結點。非終端結點: 度不為0的結點。結點的層次: 樹中根結點的層次為1,根結點子樹的根為第2 層,以此類推。樹的度: 樹中所有結點度的最大值。樹的深度: 樹中所有結點層次的最大值。有序樹、無序樹: 如果樹中每棵子樹從左向右的排列擁有一定的順序,不得互換,則稱為有序樹,否則稱為無序樹。術語381.6.2二叉數(shù)及其基本性質1. 定
19、義 定義:二叉樹是另一種樹形結構。它與樹形結構的區(qū)別是: (1)每個結點最多有兩棵子樹; (2)子樹有左右之分。 二叉樹的特點:(1)非空二叉樹只有一個根結點;(2)每一個結點最多有兩棵子樹,且分別稱為該結點的左子樹與右子樹。39G HD E FB CA第一層第二層40二叉樹的5種形態(tài):(a)(b)(c)(d)(e)(a)空樹 (b)只有根結點的二叉樹 (c) 右子樹為空的二叉樹 (d) 左子樹為空的二叉樹 (e) 左、右子樹均非空的二叉樹41 2二叉樹的性質二叉樹具有下列5個重要的性質?!拘再|1】 在二叉樹的第i層上最多有2i-1個結點(i1)。 【性質2】 深度為K的二叉樹最多有2K-1個
20、結點(K1)?!拘再|3】 對于任意一棵二叉樹BT,如果度為0的結點(葉子)個數(shù)為n0,度為2的結點個數(shù)為n2,則n0=n2+142 8 9 10 11 12 13 14 154 5 6 72 3143滿二叉樹:除最后一層外,每一層上的所有結點都有兩個子結點。完全二叉樹:除最后一層外,每一層上的結點數(shù)均達到最大值;在最后一層只缺少右邊的若干結點。44 8 9 10 11 12 4 5 6 72 31 7 8 94 5 6 2 31一棵滿二叉樹一定是一棵完全二叉樹,而一棵完全二叉樹不一定是滿二叉樹。完全二叉樹非完全二叉樹45完全二叉樹的特點: (1)葉子結點只可能在層次最大的兩層上出現(xiàn) (2)對任
21、意結點,若其右分支下的子孫的最大層次是l ,則其左分支下的子孫的最大層次必是l 或l+146【性質4】 具有n個結點的完全二叉樹的深度為 log2n+1。其中,log2n 的結果是不大于log2n的最大整數(shù)?!拘再|5】 對于有n個結點的完全二叉樹中的所有結點按從上到下,從左到右的順序進行編號,則對任意一個結點i (1in),都有:(1)如果i=1,則結點i是這棵完全二叉樹的根,沒有雙親;如果i 1其雙親結點的編號為 i/2。(2)如果2in,則結點i沒有左孩子(結點i為葉子結點);否則其左孩子結點的編號為2i。(3)如果2i+1n,則結點i沒有右孩子;否則其右孩子結點的編號為2i+1。47二叉
22、樹的基本性質: (1)在二叉樹的第k層上,最多有2k-1(k1)個結點;(2)深度為m的二叉樹最多有2m-1個結點;(3)度為0的結點(即葉子結點)總是比度為2的結點多一個;(4)具有n個結點的二叉樹,其深度至少為log2n+1,其中l(wèi)og2n表示取log2n的整數(shù)部分;(5)具有n個結點的完全二叉樹的深度為log2n+1;48 (6)設完全二叉樹共有n個結點。如果從根結點開始,按層序(每一層從左到右)用自然數(shù)1,2,.n給結點進行編號(k=1,2.n),有以下結論: 若k=1,則該結點為根結點,它沒有父結點;若k1,則該結點的父結點編號為INT(k/2); 若2kn,則編號為k的結點的左子結
23、點編號為2k;否則該結點無左子結點(也無右子結點); 若2k+1n,則編號為k的結點的右子結點編號為2k+1;否則該結點無右子結點。491.6.4二叉樹的遍歷 遍歷二叉樹的過程中,一般先遍歷左子樹、再遍歷右子樹。在先左后右的原則下,根據(jù)訪問根結點的次序,二叉樹的遍歷分為三類:前序遍歷、中序遍歷、后序遍歷。50(1)先序遍歷若二叉樹為空,則結束遍歷操作;否則訪問根結點;先序遍歷左子樹;先序遍歷右子樹。(2)中序遍歷若二叉樹為空,則結束遍歷操作;否則中序遍歷左子樹;訪問根結點;中序遍歷右子樹。51(3)后序遍歷若二叉樹為空,則結束遍歷操作;否則后序遍歷左子樹;后序遍歷右子樹;訪問根結點。下面是一棵
24、二叉樹及其經過三種遍歷得到的相應序列。52G HB CAD E F先序序列:ABDGCEFH中序序列:DGBAECHF后序序列:GDBEHFCA5317 查找技術 1.7.1順序查找順序查找是一種最簡單的查找方法。其基本思想是將查找表作為一個線性表,可以是順序表,也可以是鏈表,依次用查找條件中給定的值與查找表中數(shù)據(jù)元素的關鍵字值進行比較,若某個記錄的關鍵字值與給定值相等,則查找成功,返回該記錄的存儲位置,反之,若直到最后一個記錄,其關鍵字值與給定值均不相等,則查找失敗,返回查找失敗標志。順序查找的使用情況:(1)線性表為無序表;(2)表采用鏈式存儲結構。541.7.2二分法查找二分法查找只適用
25、于順序存儲的有序表。對于長度為n的有序線性表,最壞情況只需比較log2n次。55假設查找表存放在數(shù)組a的a1an中,且升序,查找關鍵字值為k。 折半查找的主要步驟為: (1)置初始查找范圍:low=1,high=n; (2)求查找范圍中間項:mid=(low+high)/2 (3)將指定的關鍵字值k與中間項amid.key比較 若相等,查找成功,找到的數(shù)據(jù)元素為此時mid 指向的位置;56若小于,查找范圍的低端數(shù)據(jù)元素指針low不變,高端數(shù)據(jù)元素指針high更新為mid-1; 若大于,查找范圍的高端數(shù)據(jù)元素指針high不變,低端數(shù)據(jù)元素指針low更新為mid+1;(4)重復步驟(2)、(3)直
26、到查找成功或查找范圍空(lowhigh),即查找失敗為止。(5)如果查找成功,返回找到元素的存放位置,即當前的中間項位置指針mid;否則返回查找失敗標志。571.8排序技術排序是指將一個無序序列整理成按值非遞減順序排列的有序序列。1.8.1交換排序所謂交換類排序法是指借助數(shù)據(jù)元素之間的互相交換進行的排序的一種方法。581.冒泡排序冒泡排序是一種最簡單的交換類排序方法,它是通過相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序。冒泡排序法,需要比較的次數(shù)為n(n-1)/2; .快速排序59.8.2插入排序簡單插入排序法最壞情況需要n(n-1)/2次比較; .希爾排序法最壞情況需要O(n1.5)次比較。60例
27、如:16 25 12 30 47 11 23 36 9 18 31 第一趟希爾排序,設增量 d =511 23 12 9 18 16 25 36 30 47 31 第二趟希爾排序,設增量 d = 39 18 12 11 23 16 25 31 30 47 36第三趟希爾排序,設增量 d = 1 9 11 12 16 18 23 25 30 31 36 47 61.選擇類排序法(1)簡單選擇排序法最壞情況需要n(n-1)/2次比較;(2)堆排序法最壞情況需要O(nlog2n)次比較。62第2章 程序設計基礎2.1 程序設計方法與風格如何形成良好的程序設計風格1、源程序文檔化;符號化命令:命名應具
28、有一定的實際含義。程序注釋:增加正確的注釋,包括序言性注釋和功能性注釋。視覺組織:程序中添加一些空格、空行和縮進使程序結構一目了然 2、數(shù)據(jù)說明的方法;(次序規(guī)范化;變量安排有序化;使用注釋)3、語句的結構;(結構應盡量簡單) 4、輸入和輸出。632.2 結構化程序設計1.原則:自頂向下、逐步求精、模塊化和限制使用goto語句。2.結構化程序的基本結構順序結構、選擇結構、循環(huán)結構642.3 面向對象方法面向對象方法的優(yōu)點:(1)與人類習慣的思維方法一致;(2)穩(wěn)定性好;(3)可重用性好;(4)易于開發(fā)大型軟件產品;(5)可維護性好。1.對象:用來表示客觀世界中的任何實體,對象是實體的抽象。面向
29、對象的程序設計方法中的對象是系統(tǒng)中用來描述客觀事物的一個實體,是構成系統(tǒng)的一個基本單位,由一組表示其靜態(tài)特征的屬性和它可執(zhí)行的一組操作組成。屬性即對象所包含的信息,操作描述了對象執(zhí)行的功能,操作也稱為方法或服務。對象的基本特點:(1)標識惟一性;(2)分類性;(3)多態(tài)性;(4)封裝性;(5)模塊獨立性好。652.類是指具有共同屬性、共同方法的對象的集合。所以類是對象的抽象,對象是對應類的一個實例。3.消息是一個實例與另一個實例之間傳遞的信息。消息的組成包括(1)接收消息的對象的名稱;(2)消息標識符,也稱消息名;(3)零個或多個參數(shù)。4.繼承:能夠直接獲得已有的性質和特征,而不必重復定義他們
30、。繼承分單繼承和多重繼承。單繼承指一個類只允許有一個父類,多重繼承指一個類允許有多個父類。5.多態(tài)性:同樣的消息被不同的對象接受時可導致完全不同的行動的現(xiàn)象66第3章 軟件工程基礎3.1 軟件工程基本概念1.軟件的概念:計算機軟件是包括程序、數(shù)據(jù)及相關文檔的完整集合。2.分類:軟件按功能分為應用軟件、系統(tǒng)軟件、支撐軟件(或工具軟件)。為了擺脫軟件危機,提出軟件工程的概念,軟件危機主要體現(xiàn)在:成本、質量、生產率等問題 。3.軟件工程:軟件工程是應用于計算機軟件的定義、開發(fā)和維護的一整套方法、工具、文檔、實踐標準和工序。軟件工程包括3個要素:方法、工具和過程。673.2 軟件生命周期1.概念:軟件
31、產品從提出、實現(xiàn)、使用維護到停止使用退役的過程 。2.軟件生命周期三個3個時期8個階段:軟件定義:問題定義、可行性研究和需求分析軟件開發(fā):概要設計、詳細設計、實現(xiàn)和測試運行維護:運行維護階段主要階段是:(1)可行性研究與計劃制定;(2)需求分析;(3)軟件設計;(4)軟件實現(xiàn);(5)軟件測試;(6)運行和維護。軟件生命周期各階段的活動可以重復,執(zhí)行時也可以有迭代。683.3 軟件設計1.軟件設計基本概念(1)按技術觀點分:結構設計:定義軟件各主要部件之間的關系數(shù)據(jù)設計:將分析時創(chuàng)建的模型轉化為數(shù)據(jù)結構的定義接口設計:描述軟件內部、軟件和協(xié)作系統(tǒng)之間及軟件與人之間如何通信。過程設計:把系統(tǒng)結構部
32、件轉化為軟件的過程性描述。(2)按工程管理角度分概要設計:將軟件需求轉化為軟件體系結構、確定系統(tǒng)級接口、全局數(shù)據(jù)結構或數(shù)據(jù)庫模式詳細設計:確定每個模塊的實現(xiàn)算法和局部數(shù)據(jù)結構。692.軟件設計的基本原理(1)軟件設計中應該遵循的基本原理和與軟件設計有關的概念抽象:軟件設計中考慮模塊化解決方案時,可以定出多個抽象級別,抽象的層次從概要設計到詳細設計逐步降低。模塊化:將待開發(fā)的軟件分解成若干小的簡單的部分信息隱蔽:一個模塊內包含的信息對于不需要這些信息的其他模塊來說是不能訪問的。模塊獨立性:每個模塊只完成系統(tǒng)要求的獨立的子功能。(2)衡量軟件模塊獨立性使用耦合性和內聚性兩個定性的度量標準內聚:描述
33、模塊內的功能聯(lián)系耦合:模塊間的互相連接的緊密程度的度量。優(yōu)秀軟件盡量做到高內聚,低耦合。703.4 結構化分析方法1.結構化分析方法的定義:使用數(shù)據(jù)流圖(DFD)數(shù)據(jù)字典(DD)結構化英語、判定表、判定樹的工具來建立一種新的、稱為結構化規(guī)格說明的目標文檔。結構化分析方法的實質:著眼于數(shù)據(jù)流,自頂向下,逐層分解,建立系統(tǒng)的處理流程,以數(shù)據(jù)流圖和數(shù)據(jù)字典為主要工具,建立系統(tǒng)的邏輯模型。結構化分析的常用工具(1)數(shù)據(jù)流圖; (2)數(shù)據(jù)字典; (3)判定樹; (4)判定表。71數(shù)據(jù)流圖:描述數(shù)據(jù)處理過程的工具,是需求理解的邏輯模型的圖形表示,它直接支持系統(tǒng)功能建模。數(shù)據(jù)字典:對所有與系統(tǒng)相關的數(shù)據(jù)元素
34、的一個有組織的列表,以及精確的、嚴格的定義,使得用戶和系統(tǒng)分析員對于輸入、輸出、存儲成分和中間計算結果有共同的理解。判定樹:從問題定義的文字描述中分清哪些是判定的條件,哪些是判定的結論,根據(jù)描述材料中的連接詞找出判定條件之間的從屬關系、并列關系、選擇關系,根據(jù)它們構造判定樹。判定表:與判定樹相似,當數(shù)據(jù)流圖中的加工要依賴于多個邏輯條件的取值,即完成該加工的一組動作是由于某一組條件取值的組合而引發(fā)的,使用判定表描述比較適宜。數(shù)據(jù)字典是結構化分析的核心。722.軟件需求規(guī)格說明書的特點:(1)正確性;(2)無岐義性;(3)完整性;(4)可驗證性;(5)一致性;(6)可理解性;(7)可追蹤性。 73
35、3.5 軟件測試1.軟件測試定義:使用人工或自動手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或是弄清預期結果與實際結果之間的差別。軟件測試的目的:發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。軟件測試方法:靜態(tài)測試和動態(tài)測試。靜態(tài)測試包括代碼檢查、靜態(tài)結構分析、代碼質量度量。不實際運行軟件,主要通過人工進行。動態(tài)測試:是基本計算機的測試,主要包括白盒測試方法和黑盒測試方法。白盒測試:在程序內部進行,主要用于完成軟件內部CAO作的驗證。主要方法有邏輯覆蓋、基本基路徑測試。黑盒測試:主要診斷功能不對或遺漏、界面錯誤、數(shù)據(jù)結構或外部數(shù)據(jù)庫訪問錯誤、性能錯誤、初始化和終止條件錯,用于軟件確認。主要方
36、法有等價類劃分法、邊界值分析法、錯誤推測法、因果圖等。軟件測試過程一般按4個步驟進行:單元測試、集成測試、驗收測試(確認測試)和系統(tǒng)測試。743.6 程序的調試程序調試的任務是診斷和改正程序中的錯誤,主要在開發(fā)階段進行。程序調試的基本步驟:(1)錯誤定位;(2)修改設計和代碼,以排除錯誤;(3)進行回歸測試,防止引進新的錯誤。軟件調試可分表靜態(tài)調試和動態(tài)調試。靜態(tài)調試主要是指通過人的思維來分析源程序代碼和排錯,是主要的設計手段,而動態(tài)調試是輔助靜態(tài)調試。主要調試方法有:(1)強行排錯法;(2)回溯法;(3)原因排除法。75第四章 數(shù)據(jù)庫設計基礎41 數(shù)據(jù)庫系統(tǒng)的基本概念數(shù)據(jù):實際上就是描述事物的符號記錄。數(shù)據(jù)的特點:有一定的結構,有型與值之分,如整型、實型、字符型等。而數(shù)據(jù)的值給出了符合定型的值,如整型值15。數(shù)據(jù)庫:是數(shù)據(jù)的集合,具有統(tǒng)一的結構形式并存放于統(tǒng)一的存儲介質內,是多種應用數(shù)據(jù)的集成,并可被各個應用程序共享。數(shù)據(jù)庫存放數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式存放的,具有集成與共享的特點。數(shù)據(jù)庫管理系統(tǒng):一種系統(tǒng)軟件,負責數(shù)據(jù)庫中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護、控制及保護和數(shù)據(jù)服務等,是數(shù)據(jù)庫
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代理權贈與合同范例
- 電力安全與應急練習試題附答案
- 東莞房東合租合同范本
- 出售整體大棚合同范例
- 兼職美術教師合同范本
- 農家老宅出租合同范本
- 各類風機零件行業(yè)深度研究報告
- 代播協(xié)議合同范本
- 2019-2025年中國醫(yī)學影像診斷設備市場供需格局及未來發(fā)展趨勢報告
- 2025年度健身中心場地租賃合作協(xié)議書
- 耶魯綜合抽動嚴重程度量表正式版
- 水利水電工程建設常見事故類型及典型事故分析(標準版)
- 《小學英語教學設計》課件全套 陳冬花 第1-10章 小學英語教學設計概述-小學英語課堂管理
- 政府采購項目采購需求調查指引文本
- 2024建筑用輻射致冷涂料
- 2024年浙江省公務員錄用考試《行測》題(A類)
- 《化工設備機械基礎(第8版)》完整全套教學課件
- 2024年江西省中考英語試題含解析
- 初級消防設施操作員實操題庫 (一)
- GB/T 23473-2024林業(yè)植物及其產品調運檢疫規(guī)程
- 公務員2012年國考《申論》真題卷及答案(地市級)
評論
0/150
提交評論