2023年評測師考試知識點(diǎn)整理_第1頁
2023年評測師考試知識點(diǎn)整理_第2頁
2023年評測師考試知識點(diǎn)整理_第3頁
2023年評測師考試知識點(diǎn)整理_第4頁
2023年評測師考試知識點(diǎn)整理_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫范式范式:英文名稱是NormalForm,它是英國人E.F.Codd(關(guān)系數(shù)據(jù)庫的老祖宗)在上個世紀(jì)70年代提出關(guān)系數(shù)據(jù)庫模型后總結(jié)出來的,范式是關(guān)系數(shù)據(jù)庫理論的基礎(chǔ),也是我們在設(shè)計(jì)數(shù)據(jù)庫結(jié)構(gòu)過程中所要遵循的規(guī)則和指導(dǎo)方法。目前有跡可尋的共有8種范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三個范式,即:第一范式(1NF),第二范式(2NF),第三范式(3NF)。下面就簡樸介紹下這三個范式。

◆第一范式(1NF):強(qiáng)調(diào)的是列的原子性,即列不可以再提成其他幾列。?考慮這樣一個表:【聯(lián)系人】(姓名,性別,電話)?假如在實(shí)際場景中,一個聯(lián)系人有家庭電話和公司電話,那么這種表結(jié)構(gòu)設(shè)計(jì)就沒有達(dá)成1NF。要符合1NF我們只需把列(電話)拆分,即:【聯(lián)系人】(姓名,性別,家庭電話,公司電話)。1NF很好辨別,但是2NF和3NF就容易搞混淆。?◆第二范式(2NF):一方面是1NF,此外包含兩部分內(nèi)容,一是表必須有一個主鍵;二是沒有包含在主鍵中的列必須完全依賴于主鍵,而不能只依賴于主鍵的一部分。?考慮一個訂單明細(xì)表:【OrderDetail】(OrderID,ProductID,UnitPrice,Discount,Quantity,ProductName)。?由于我們知道在一個訂單中可以訂購多種產(chǎn)品,所以單單一個OrderID是局限性以成為主鍵的,主鍵應(yīng)當(dāng)是(OrderID,ProductID)。顯而易見Discount(折扣),Quantity(數(shù)量)完全依賴(取決)于主鍵(OderID,ProductID),而UnitPrice,ProductName只依賴于ProductID。所以O(shè)rderDetail表不符合2NF。不符合2NF的設(shè)計(jì)容易產(chǎn)生冗余數(shù)據(jù)。?可以把【OrderDetail】表拆分為【OrderDetail】(OrderID,ProductID,Discount,Quantity)和【Product】(ProductID,UnitPrice,ProductName)來消除原訂單表中UnitPrice,ProductName多次反復(fù)的情況。

◆第三范式(3NF):一方面是2NF,此外非主鍵列必須直接依賴于主鍵,不能存在傳遞依賴。即不能存在:非主鍵列A依賴于非主鍵列B,非主鍵列B依賴于主鍵的情況。

考慮一個訂單表【Order】(OrderID,OrderDate,CustomerID,CustomerName,CustomerAddr,CustomerCity)主鍵是(OrderID)。?其中OrderDat(yī)e,CustomerID,CustomerName,CustomerAddr,CustomerCity等非主鍵列都完全依賴于主鍵(OrderID),所以符合2NF。但是問題是CustomerName,CustomerAddr,CustomerCity直接依賴的是CustomerID(非主鍵列),而不是直接依賴于主鍵,它是通過傳遞才依賴于主鍵,所以不符合3NF。

通過拆分【Order】為【Order】(OrderID,OrderDate,CustomerID)和【Customer】(CustomerID,CustomerName,CustomerAddr,CustomerCity)從而達(dá)成3NF。

第二范式(2NF)和第三范式(3NF)的概念很容易混淆,區(qū)分它們的關(guān)鍵點(diǎn)在于,2NF:非主鍵列是否完全依賴于主鍵,還是依賴于主鍵的一部分;3NF:非主鍵列是直接依賴于主鍵,還是直接依賴于非主鍵列?!鬊CNF是比第三范式更嚴(yán)格一個范式。它規(guī)定關(guān)系模型中所有的屬性(涉及主屬性和非主屬性)都不傳遞依賴于任何候選關(guān)鍵字。也就是說,當(dāng)關(guān)系型表中功能上互相依賴的那些列的每一列都是一個候選關(guān)鍵字時候,該滿足BCNF。BCNF事實(shí)上是在第三范式的基礎(chǔ)上,進(jìn)一步消除了主屬性的傳遞依賴。3.

舉例有這樣一個配件管理表WPE(WNO,PNO,ENO,QNT),其中WNO表達(dá)倉庫號,PNO表達(dá)配件號,ENO表達(dá)職工號,QNT表達(dá)數(shù)量。有以下約束規(guī)定:(1)

一個倉庫有多名職工;(2)

一個職工僅在一個倉庫工作;(3)

每個倉庫里一種型號的配件由專人負(fù)責(zé),但一個人可以管理幾種配件;(4)

同一種型號的配件可以分放在幾個倉庫中。分析表中的函數(shù)依賴關(guān)系,可以得到:(1)

ENO->WNO;(2)

(WNO,PNO)->QNT(3)

(WNO,PNO)->ENO(4)

(ENO,PNO)->QNT可以看到,候選鍵有:(ENO,PNO);(WNO,PNO)。所以,ENO,PNO,WNO均為主屬性,QNT為非主屬性。顯然,非主屬性是直接依賴于候選鍵的。所以此表滿足第三范式。而我們觀測一下主屬性:(WNO,PNO)->ENO;ENO->WNO。顯然WNO對于候選鍵(WNO,PNO)存在傳遞依賴,所以不符合BCNF.解決這個問題的辦法是分拆為兩個表:管理表EP(ENO,PNO,QNT);工作表EW(ENO,WNO)。但這樣做會導(dǎo)致函數(shù)依賴(WNO,PNO)->ENO丟失。4.

應(yīng)用雖然,不滿足BCNF,也會導(dǎo)致一些冗余和一致性的問題。但是,將表分解成滿足BCNF的表又也許丟失一些函數(shù)依賴。所以,一般情況下不會強(qiáng)制規(guī)定關(guān)系表要滿足BCNF?!舻谒姆妒剑ǎ矗蜦)1.

定義第四范式需要滿足以下規(guī)定:(1)

必須滿足第三范式(2)

表中不能包含一個實(shí)體的兩個或多個互相獨(dú)立的多值因子。2.

說明

顯然,第四范式也是一個比第三范式嚴(yán)格的范式。

第四范式的意思是:當(dāng)一個表中的非主屬性互相獨(dú)立時(3NF),這些非主屬性不應(yīng)當(dāng)有多值。若有多值就違反了第四范式。定義比較抽象,可以參照下面的例子理解。3.

舉例有這樣一個用戶聯(lián)系方式表TELEPHONE(CUSTOMERID,PHONE,CELL)。

CUSTOMERID為用戶ID,PHONE為用戶的固定電話,CELL為用戶的移動電話。

本來,這是一個非常簡樸的第3范式表。主鍵為CUSTOMERID,不存在傳遞依賴。但在某些情況下,這樣的表還是不合理的。比如說,用戶有兩個固定電話,兩個移動電話。這時,表的具體表達(dá)如下:CUSTOMERIDPHONECELL10008828-1234810008838-12349

由于PHONE和CELL是互相獨(dú)立的,而有些用戶又有兩個和多個值。這時此表就違反第四范式。

在這種情況下,此表的設(shè)計(jì)就會帶來很多維護(hù)上的麻煩。例如,假如用戶放棄第一行的固定電話和第二行的移動電話,那么這兩行會合并嗎?等等

解決問題的方法為,設(shè)計(jì)一個新表NEW_PHONE(CUSTOMERID,NUMBER,TYPE).這樣就可以對每個用戶解決不同類型的多個電話號碼,而不會違反第四范式。4.

應(yīng)用顯然,第四范式的應(yīng)用范圍比較小,由于只有在某些特殊情況下,要考慮將表規(guī)范到第四范式。所以在實(shí)際應(yīng)用中,一般不規(guī)定表滿足第四范式?!?/p>

第五范式(5NF)1.

定義第五范式有以下規(guī)定:(1)

必須滿足第四范式(2)

表必須可以分解為較小的表,除非那些表在邏輯上擁有與原始表相同的主鍵。2.

說明第五范式是在第四范式的基礎(chǔ)上做的進(jìn)一步規(guī)范化。第四范式解決的是互相獨(dú)立的多值情況,而第五范式則解決互相依賴的多值情況。3.

舉例有一個銷售信息表SALES(SALEPERSON,VENDOR,PRODUCT)。SALEPERSON代表銷售人員,VENDOR代表供和商,PRODUCT則代表產(chǎn)品。在某些情況下,這個表中會產(chǎn)生一些冗余??梢詫⒈矸纸鉃镻ERSON_VENDOR表(SALEPERSON,VENDOR);PERSON_PRODUCT表(SALEPERSON,PRODUCT);VENDOR?_PRODICT表(VENDOR,PRODUCT)。分布式數(shù)據(jù)庫系統(tǒng)的透明性1.分片透明性:用戶不必關(guān)心數(shù)據(jù)是如何分片,他們對數(shù)據(jù)的操作在全局關(guān)系上進(jìn)行的,即關(guān)心如何分片對用戶是透明的,因此,當(dāng)分片改變時應(yīng)用程序可以不變。***分片透明性是最高層次的透明性,假如用戶能在全局關(guān)系一級操作,則數(shù)據(jù)如何分布,如何存儲等細(xì)節(jié)不必關(guān)心,其應(yīng)用程序的編寫與集中式數(shù)據(jù)庫相同。2.復(fù)制透明性:用戶不用關(guān)心數(shù)據(jù)庫在網(wǎng)絡(luò)中的各個節(jié)點(diǎn)的復(fù)制情況,被復(fù)制的數(shù)據(jù)的更新都由系統(tǒng)自動完畢。***在分布式數(shù)據(jù)庫系統(tǒng)中,可以把一個場地的數(shù)據(jù)復(fù)制到其他場地存放,應(yīng)用程序可以使用復(fù)制到本地的數(shù)據(jù)在本地完畢分布式操作,避免通過網(wǎng)絡(luò)傳輸數(shù)據(jù),提高了系統(tǒng)的運(yùn)營和查詢效率。但是對于復(fù)制數(shù)據(jù)的更新操作,就要涉及到對所有復(fù)制數(shù)據(jù)的更新。3.位置透明性:用戶不必知道所操作的數(shù)據(jù)放在何處,即數(shù)據(jù)分派到哪個或哪些站點(diǎn)存儲對用戶是透明的。因此,數(shù)據(jù)分片模式的改變,如把數(shù)據(jù)從一個站點(diǎn)轉(zhuǎn)移到另一個站點(diǎn)將不會影響應(yīng)用程序,因而應(yīng)用程序不必改寫。4.邏輯透明性(局部映像透明性):它是最低層次的透明性,該透明性提供數(shù)據(jù)到局部數(shù)據(jù)庫的映像,即用戶不必關(guān)心局部DBMS支持哪種數(shù)據(jù)模型、使用哪種數(shù)據(jù)操縱語言,數(shù)據(jù)模型和操縱語言的轉(zhuǎn)換是由系統(tǒng)完畢的。因此,局部映像透明性對異構(gòu)型和同構(gòu)異質(zhì)的分布式數(shù)據(jù)庫系統(tǒng)時非常重要的。堆得簡樸介紹以及堆排序一方面看一下堆的定義:對于n個元素的序列{k1,k2,k3,……,kn},當(dāng)且僅當(dāng)滿足下列關(guān)系時,稱之為堆:K(i)<=K(2*i)&&K(i)<=K(2*i+1)

此時的堆為小頂堆K(i)>=K(2*i)&&K(i)>=K(2*i+1)

此時的堆為大頂堆(i=1,2,……,n/2(下取整))注意:堆得存儲是用一維數(shù)組來存儲的。若將堆相應(yīng)的序列當(dāng)作是一個完全二叉樹,則堆得含義表白:完全二叉樹中所有非終端結(jié)點(diǎn)的值均不大于(或不小于)其左右孩子結(jié)點(diǎn)的值。因此,若序列{K1,K2,……,Kn}是大頂堆,則堆頂元素必為序列中n個元素的最大值;反之,若序列是小頂堆,則堆頂元素必為序列中n個元素的最小值。堆排序就是運(yùn)用的這個性質(zhì)。堆排序的過程如下:假設(shè)要從小到大排序,我們構(gòu)建一個大頂堆,則堆頂元素是最大值。將堆頂元素和最后一個元素互換,則最后一個元素變成了n個元素中的最大值。之后再將剩下的n-1個元素調(diào)整成為大頂堆,將堆頂元素和第n-1個元素互換,則第n-1個元素變成了n個元素中的次大值……循環(huán)這個過程,不斷調(diào)整堆,最后得到一個有序的序列。在上面堆排序的過程中,有兩個問題需要解決:(1)如何將一個初始的序列構(gòu)建成一個大頂堆?(2)再得到最大元素后,剩下的n-1個元素如何再次調(diào)整成為一個大頂堆?事實(shí)上,初始序列構(gòu)建大頂堆也是一個不斷調(diào)整堆得過程。因此,只要解決第二個問題就可以。下圖是一個大頂堆:

當(dāng)把堆頂元素20和最后一個元素互換之后,最后一個元素變成了序列中的最大值。如下圖:

但是,此時堆頂元素違反了大頂堆的性質(zhì),堆頂元素的左右孩子依舊滿足大頂堆的性質(zhì)。因此,此時需要對堆進(jìn)行調(diào)整。由于左子樹的值大于右子樹的值,所以將3和17互換,如下圖:此時,左子樹又違反了大頂堆得性質(zhì),所以需要調(diào)整左子樹,如下圖:至此,一次調(diào)整完畢,堆頂元素成為了次大元素。事實(shí)上,調(diào)整堆就是這樣一個不斷篩選比較的過程,不斷的和左右子樹比較,一直到不需要互換為止。將一個無序序列構(gòu)建成一個大頂堆的過程就是一個反復(fù)篩選的過程。將此序列當(dāng)作是一個完全二叉樹,則最后一個非葉子節(jié)點(diǎn)是第n/2(下取整)個元素,因此,篩選只需從第n/2(下取整)個元素開始。假設(shè)有序列:{49,38,65,97,76,13,27},初始二叉樹是:

從第3個元素,也就是65開始調(diào)整堆,65大于左右子樹的值,因此不需要調(diào)整。然后是第2個元素,也就是從38開始調(diào)整堆,38和左右子樹比較,將97和38互換,調(diào)整后如下圖:

然后是第1個元素,也就是從49開始調(diào)整堆,49和左右子樹比較,將97和49互換,互換之后,由于49破壞了左子樹大頂堆的性質(zhì),因此需要繼續(xù)調(diào)整,將49和左右子樹比較,然后將49和76互換,調(diào)整過程如下圖:

至此,將一個無序的序列調(diào)整成為了一個大頂堆。同理,堆排序也分為兩個過程:(1)將初始化序列調(diào)整成為一個大頂堆(2)用最后一個元素和堆頂元素互換,然后不斷調(diào)整剩下的元素成為一個新的大頂堆。代碼如下:

HYPERLINK""+ViewCodeHYPERLINK""?123456789101112131415161718192021222324252627282930313233constintN=8;intnum[N]={-1,49,38,65,97,76,13,27};

//從第一個元素開始存儲

//調(diào)整堆的函數(shù)voidheapAdjust(intpos,inttotal){

inttemp=num[pos];

for(intj=2*pos;j<=total;j*=2){

if(j<total){

//說明尚有右子樹

if(num[j]<num[j+1]){

//篩選出左右子樹中較大的值

j+=1;

}

if(temp>=num[j])

//不需要再繼續(xù)向下調(diào)整了

break;

num[pos]=num[j];

pos=j;

}

num[pos]=temp;}

voidheapSort(){

//一方面將數(shù)組構(gòu)建成一個大頂堆

for(inti=(N-1)/2;i>=1;--i){

heapAdjust(i,N-1);

}

//開始堆排序

for(inti=N-1;i>1;--i){

inttemp=num[i];

//互換第一個元素和最后一個元素

num[i]=num[1];

num[1]=temp;

heapAdjust(1,i-1);

//互換完之后,重新調(diào)整堆

}}UML類圖類圖(ClassDiagram):類圖是面向?qū)ο笙到y(tǒng)建模中最常用和最重要的圖,是定義其它圖的基礎(chǔ)。類圖重要是用來顯示系統(tǒng)中的類、接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系的一種靜態(tài)模型。類圖的3個基本組件:類名、屬性、方法。泛化(generalizat(yī)ion):表達(dá)is-a的關(guān)系,是對象之間耦合度最大的一種關(guān)系,子類繼承父類的所有細(xì)節(jié)。直接使用語言中的繼承表達(dá)。在類圖中使用帶三角箭頭的實(shí)線表達(dá),箭頭從子類指向父類。實(shí)現(xiàn)(Realization):在類圖中就是接口和實(shí)現(xiàn)的關(guān)系。這個沒什么好講的。在類圖中使用帶三角箭頭的虛線表達(dá),箭頭從實(shí)現(xiàn)類指向接口。依賴(Dependency):對象之間最弱的一種關(guān)聯(lián)方式,是臨時性的關(guān)聯(lián)。代碼中一般指由局部變量、函數(shù)參數(shù)、返回值建立的對于其他對象的調(diào)用關(guān)系。一個類調(diào)用被依賴類中的某些方法而得以完畢這個類的一些職責(zé)。在類圖使用帶箭頭的虛線表達(dá),箭頭從使用類指向被依賴的類。關(guān)聯(lián)(Association):對象之間一種引用關(guān)系,比如客戶類與訂單類之間的關(guān)系。這種關(guān)系通常使用類的屬性表達(dá)。關(guān)聯(lián)又分為一般關(guān)聯(lián)、聚合關(guān)聯(lián)與組合關(guān)聯(lián)。后兩種在后面分析。在類圖使用帶箭頭的實(shí)線表達(dá),箭頭從使用類指向被關(guān)聯(lián)的類。可以是單向和雙向。聚合(Aggregation):表達(dá)has-a的關(guān)系,是一種不穩(wěn)定的包含關(guān)系。較強(qiáng)于一般關(guān)聯(lián),有整體與局部的關(guān)系,并且沒有了整體,局部也可單獨(dú)存在。如公司和員工的關(guān)系,公司包含員工,但假如公司倒閉,員工仍然可以換公司。在類圖使用空心的菱形表達(dá),菱形從局部指向整體。組合(Composition):表達(dá)contains-a的關(guān)系,是一種強(qiáng)烈的包含關(guān)系。組合類負(fù)責(zé)被組合類的生命周期。是一種更強(qiáng)的聚合關(guān)系。部分不能脫離整體存在。如公司和部門的關(guān)系,沒有了公司,部門也不能存在了;調(diào)查問卷中問題和選項(xiàng)的關(guān)系;訂單和訂單選項(xiàng)的關(guān)系。在類圖使用實(shí)心的菱形表達(dá),菱形從局部指向整體。多重性(Multiplicity):通常在關(guān)聯(lián)、聚合、組合中使用。就是代表有多少個關(guān)聯(lián)對象存在。使用數(shù)字..星號(數(shù)字)表達(dá)。如下圖,一個割接告知可以關(guān)聯(lián)0個到N個故障單。聚合和組合的區(qū)別這兩個比較難理解,重點(diǎn)說一下。聚合和組合的區(qū)別在于:聚合關(guān)系是“has-a”關(guān)系,組合關(guān)系是“contains-a”關(guān)系;聚合關(guān)系表達(dá)整體與部分的關(guān)系比較弱,而組合比較強(qiáng);聚合關(guān)系中代表部分事物的對象與代表聚合事物的對象的生存期無關(guān),一旦刪除了聚合對象不一定就刪除了代表部分事物的對象。組合中一旦刪除了組合對象,同時也就刪除了代表部分事物的對象。實(shí)例分析聯(lián)通客戶響應(yīng)OSS。系統(tǒng)有故障單、業(yè)務(wù)開通、資源核查、割接、業(yè)務(wù)重保、網(wǎng)絡(luò)品質(zhì)性能等功能模塊?,F(xiàn)在我們抽出部分需求做為例子講解。大家可以參照著類圖,好好理解。1.告知分為一般告知、割接告知、重保告知。這個是繼承關(guān)系。2.NoticeService和實(shí)現(xiàn)類NoticeServiceImpl是實(shí)現(xiàn)關(guān)系。3.NoticeServiceImpl通過save方法的參數(shù)引用Notice,是依賴關(guān)系。同時調(diào)用了BaseDao完畢功能,也是依賴關(guān)系。4.割接告知和故障單之間通過中間類(告知電路)關(guān)聯(lián),是一般關(guān)聯(lián)。5.重保告知和預(yù)案庫間是聚合關(guān)系。由于預(yù)案庫可以事先錄入,和重保告知沒有必然聯(lián)系,可以獨(dú)立存在。在系統(tǒng)中是手工從列表中選擇。刪除重保告知,不影響預(yù)案。6.割接告知和需求單之間是聚合關(guān)系。同理,需求單可以獨(dú)立于割接告知存在。也就是說刪除割接告知,不影響需求單。7.告知和回復(fù)是組合關(guān)系。由于回復(fù)不能獨(dú)立于告知存在。也就是說刪除告知,該條告知相應(yīng)的回復(fù)也要級聯(lián)刪除。通過以上的分析,相信大家對類的關(guān)系已有比較好的理解了。大家有什么其它想法或好的見解,歡迎拍磚。一、類的屬性的表達(dá)方式在UML類圖中,類使用包含類名、屬性(field)和方法(method)且?guī)в蟹指罹€的矩形來表達(dá),比如下圖表達(dá)一個Employee類,它包含name,age和email這3個屬性,以及modifyInfo()方法。那么屬性/方法名稱前加的加號和減號是什么意思呢?它們表達(dá)了這個屬性或方法的可見性,UML類圖中表達(dá)可見性的符號有三種:·+:表達(dá)public·-:表達(dá)privat(yī)e·#:表達(dá)protected(friendly也歸入這類)因此,上圖中的Employee類具有3個私有屬性和一個公有方法。

事實(shí)上,屬性的完整表達(dá)方式是這樣的:可見性

名稱:類型[=缺省值]中括號中的內(nèi)容表達(dá)是可選的

二、類的方法的表達(dá)方式上圖中我們已經(jīng)看到了方法的表達(dá)形式。事實(shí)上,方法的完整表達(dá)方式如下:可見性

名稱(參數(shù)列表)[:返回類型]同樣,中括號中的內(nèi)容是可選的。

比如在下圖的Demo類中,定義了3個方法:

·public方法method1接受一個類型為Object的參數(shù),返回值類型為void·protected方法method2無參數(shù),返回值類型為String·private方法method3接受類型分別為int、int[]的參數(shù),返回值類型為int

三、類與類之間關(guān)系的表達(dá)方式1、關(guān)聯(lián)關(guān)系關(guān)聯(lián)關(guān)系又可進(jìn)一步分為單向關(guān)聯(lián)、雙向關(guān)聯(lián)和自關(guān)聯(lián)。(1)單向關(guān)聯(lián)我們可以看到,在UML類圖中單向關(guān)聯(lián)用一個帶箭頭的直線表達(dá)。上圖表達(dá)每個顧客都有一個地址,這通過讓Customer類持有一個類型為Address的成員變量類實(shí)現(xiàn)。

(2)雙向關(guān)聯(lián)從上圖中我們很容易看出,所謂的雙向關(guān)聯(lián)就是雙方各自持有對方類型的成員變量。在UML類圖中,雙向關(guān)聯(lián)用一個不帶箭頭的直線表達(dá)。上圖中在Customer類中維護(hù)一個Product[]數(shù)組,表達(dá)一個顧客購買了那些產(chǎn)品;在Product類中維護(hù)一個Customer類型的成員變量表達(dá)這個產(chǎn)品被哪個顧客所購買。

(3)自關(guān)聯(lián)自關(guān)聯(lián)在UML類圖中用一個帶有箭頭且指向自身的直線表達(dá)。上圖的意思就是Node類包含類型為Node的成員變量,也就是“自己包含自己”。

2、聚合關(guān)系上圖中的Car類與Engine類就是聚合關(guān)系(Car類中包含一個Engine類型的成員變量)。由上圖我們可以看到,UML中聚合關(guān)系用帶空心菱形和箭頭的直線表達(dá)。聚合關(guān)系強(qiáng)調(diào)是“整體”包含“部分”,但是“部分”可以脫離“整體”而單獨(dú)存在。比如上圖中汽車包含了發(fā)動機(jī),而發(fā)動機(jī)脫離了汽車也能單獨(dú)存在。

3、組合關(guān)系組合關(guān)系與聚合關(guān)系見得最大不同在于:這里的“部分”脫離了“整體”便不復(fù)存在。比如下圖:顯然,嘴是頭的一部分且不能脫離了頭而單獨(dú)存在。在UML類圖中,組合關(guān)系用一個帶實(shí)心菱形和箭頭的直線表達(dá)。

4、依賴關(guān)系從上圖我們可以看到,Driver的drive方法只有傳入了一個Car對象才干發(fā)揮作用,因此我們說Driver類依賴于Car類。在UML類圖中,依賴關(guān)系用一條帶有箭頭的虛線表達(dá)。

5、繼承關(guān)系繼承關(guān)系相應(yīng)的是extend關(guān)鍵字,在UML類圖中用帶空心三角形的直線表達(dá),如下圖所示中,Student類與Teacher類繼承了Person類。

6、接口實(shí)現(xiàn)關(guān)系這種關(guān)系相應(yīng)implement關(guān)鍵字,在UML類圖中用帶空心三角形的虛線表達(dá)。如下圖中,Car類與Ship類都實(shí)現(xiàn)了Vehicle接口。

到了這里,UML類圖中最常見的表達(dá)方式我們就介紹完了,有了這些我們就能讀懂常見的UML類圖了,剩下的碰屆時再查即可。常見的系統(tǒng)測試重要有以下內(nèi)容:(1)恢復(fù)測試。監(jiān)測系統(tǒng)的容錯能力(2)安全性測試。檢測系統(tǒng)的安全機(jī)制、保密措施是否完善,重要是為了檢查系統(tǒng)的防范能力(3)壓力測試。也稱為強(qiáng)度測試,是對系統(tǒng)在異常情況下的承受能力的測試,是檢查系統(tǒng)在極限狀態(tài)下運(yùn)營時,性能下降的幅度是否在允許的范圍內(nèi)(4)性能測試。檢查系統(tǒng)是否滿足系統(tǒng)設(shè)計(jì)方案說明書對性能的規(guī)定(5)可靠性、可用性和可維護(hù)性測試(6)安裝測試單元測試的重要內(nèi)容:?單元測試是指對軟件中的最小可測試單元進(jìn)行檢查和驗(yàn)證。重要測試的內(nèi)容為:邊界測試、錯誤解決測試、途徑測試、局部數(shù)據(jù)結(jié)構(gòu)測試和模塊接口測試。網(wǎng)絡(luò)測試指標(biāo)通常網(wǎng)絡(luò)測試的四個指標(biāo)為吞吐量,延時,丟包率和背靠背性能。1、吞吐量:指被測試設(shè)備或被測試系統(tǒng)在不丟包的情況下,可以達(dá)成的最大包轉(zhuǎn)發(fā)速率。2、丟包率:通過測試由于缺少資源而未轉(zhuǎn)發(fā)的包的比例來顯示高負(fù)載狀態(tài)下系統(tǒng)的性能。3、延時:指測量系統(tǒng)在有負(fù)載條件下轉(zhuǎn)發(fā)數(shù)據(jù)包所需的時間。4、背靠背性能:指通過以最大幀速率發(fā)送突發(fā)傳輸流,并測量包丟失時的最大突發(fā)長度(總包數(shù)量)來測試緩沖區(qū)容量?;就緩綔y試法概念?它在程序控制流圖的基礎(chǔ)上,通過度析控制流圖的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行途徑的集合,然后據(jù)此設(shè)計(jì)測試用例。設(shè)計(jì)出的測試用例要保證在測試中程序的每一條可執(zhí)行語句至少執(zhí)行一次。決策表法設(shè)計(jì)測試用例環(huán)節(jié)1、擬定規(guī)則個數(shù)。有n個條件的決策表有2n個規(guī)則(每個條件取真、假值)。2、列出所有的條件樁和動作樁。3、填入條件項(xiàng)。4、填入動作項(xiàng),得到初始決策表。5、簡化。合并相似規(guī)則或者相同動作。單緩沖和雙緩沖解決時間某文獻(xiàn)占10個磁盤塊,現(xiàn)要把該文獻(xiàn)磁盤塊逐個讀入主存緩沖區(qū),并送用戶區(qū)進(jìn)行分析。假設(shè)一個緩沖區(qū)與一個磁盤塊大小相同,把一個磁盤塊讀入緩沖區(qū)的時間為100μs,將緩沖區(qū)的數(shù)據(jù)傳送到用戶區(qū)的時間是50μs,CPU對一塊數(shù)據(jù)進(jìn)行分析的時間為50μs。在單緩沖區(qū)和雙緩沖區(qū)結(jié)構(gòu)下,讀入并分析完該文獻(xiàn)的時間分別是()。A.1500μs,1000μsB.1

溫馨提示

  • 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

提交評論