第一篇:UML類圖幾種關(guān)系的總結(jié)-tf
UML類圖幾種關(guān)系的總結(jié)
在UML類圖中,常見(jiàn)的有以下幾種關(guān)系: 泛化(Generalization), 實(shí)現(xiàn)(Realization),關(guān)聯(lián)(Association),聚合(Aggregation),組合(Composition),依賴(Dependency)1.泛化(Generalization)
【泛化關(guān)系】:是一種繼承關(guān)系,表示一般與特殊的關(guān)系,它指定了子類如何特化父類的所有特征和行為。例如:馬是動(dòng)物的一種,即有馬的特性也有動(dòng)物的共性。
【箭頭指向】:帶三角箭頭的實(shí)線,箭頭指向父類
2.實(shí)現(xiàn)(Realization)
【實(shí)現(xiàn)關(guān)系】:是一種類與接口的關(guān)系,它表示不繼承結(jié)構(gòu)而只繼承行為,是類與接口之間最常見(jiàn)的關(guān)系。準(zhǔn)確的說(shuō),類不是繼承(inherit)接口,而是實(shí)現(xiàn)(implement)接口。
【箭頭指向】:UML中用帶三角箭頭的虛線,箭頭指向接口
3.關(guān)聯(lián)(Association)
【關(guān)聯(lián)關(guān)系】:是一種擁有的關(guān)系,它使一個(gè)類知道另一個(gè)類的屬性和方法;如:老師與學(xué)生,丈夫與妻子關(guān)聯(lián)可以是雙向的,也可以是單向的。雙向的關(guān)聯(lián)可以有兩個(gè)箭頭或者沒(méi)有箭頭,單向的關(guān)聯(lián)有一個(gè)箭頭。
【代碼體現(xiàn)】:成員變量
【箭頭及指向】:?jiǎn)蜗蜿P(guān)聯(lián)為帶普通箭頭的實(shí)心線,箭頭指向被擁有者,如下圖
上圖中,老師與學(xué)生是雙向關(guān)聯(lián),老師有多名學(xué)生,學(xué)生也可能有多名老師。但學(xué)生與某課程間的關(guān)系為單向關(guān)聯(lián),一名學(xué)生可能要上多門(mén)課程,課程是個(gè)抽象的東西他不擁有學(xué)生。
4.聚合(Aggregation)【聚合關(guān)系】:是整體與部分的關(guān)系,且部分可以離開(kāi)整體而單獨(dú)存在。如車和輪胎是整體和部分的關(guān)系,輪胎離開(kāi)車仍然可以存在。
聚合關(guān)系是關(guān)聯(lián)關(guān)系的一種,是強(qiáng)的關(guān)聯(lián)關(guān)系;關(guān)聯(lián)和聚合在語(yǔ)法上無(wú)法區(qū)分,必須考察具體的邏輯關(guān)系。
【代碼體現(xiàn)】:成員變量
【箭頭及指向】:帶空心菱形的實(shí)心線,菱形指向整體
5.組合(Composition)
【組合關(guān)系】:是整體與部分的關(guān)系,但部分不能離開(kāi)整體而單獨(dú)存在。如線段和點(diǎn)是整體和部分的關(guān)系,沒(méi)有點(diǎn)就不存在線段。
組合關(guān)系是關(guān)聯(lián)關(guān)系的一種,是比聚合關(guān)系還要強(qiáng)的關(guān)系,它要求普通的聚合關(guān)系中代表整體的對(duì)象負(fù)責(zé)代表部分的對(duì)象的生命周期?!敬a體現(xiàn)】:成員變量
【箭頭及指向】:帶實(shí)心菱形的實(shí)線,菱形指向整體
6.依賴(Dependency)
【依賴關(guān)系】:是一種使用的關(guān)系,即一個(gè)類的實(shí)現(xiàn)需要另一個(gè)類的協(xié)助,所以要盡量不使用雙向的互相依賴.【依賴擴(kuò)展】:Trufun Plato工具根據(jù)實(shí)際開(kāi)發(fā)中的需要,在工具箱還提供兩個(gè)預(yù)定義的依賴:許可(permission)依賴和使用(usage)依賴。
? 許可依賴(通常作為特定的構(gòu)造類型)將包或者類與另一個(gè)允許它使用某些內(nèi)容的包或者類相連。許可依賴關(guān)系的構(gòu)造類型有訪問(wèn)、友元、輸入。
? 使用依賴關(guān)系(關(guān)鍵字《use》)將客戶元素與服務(wù)者元素相連。服務(wù)者的變化將導(dǎo)致客戶的變化。使用通常表示一種實(shí)現(xiàn)的依賴關(guān)系,其中的一個(gè)元素依靠另一個(gè)元素的服務(wù)來(lái)實(shí)現(xiàn)自身的操作。使用的構(gòu)造類型包括調(diào)用、實(shí)例(關(guān)鍵字《instantiate》)、參數(shù)、發(fā)送。
【代碼表現(xiàn)】:局部變量、方法的參數(shù)或者對(duì)靜態(tài)方法的調(diào)用
【箭頭及指向】:帶箭頭的虛線,指向被使用者
各種關(guān)系的強(qiáng)弱順序:
泛化 = 實(shí)現(xiàn) > 組合 > 聚合 > 關(guān)聯(lián) > 依賴
下面這張UML圖,比較形象地展示了各種類圖關(guān)系: UML因其簡(jiǎn)單、統(tǒng)一的特點(diǎn),而且能表達(dá)軟件設(shè)計(jì)中的動(dòng)態(tài)和靜態(tài)信息,目前已成為可視化建模語(yǔ)言的工業(yè)標(biāo)準(zhǔn)。
好處:幫助開(kāi)發(fā)團(tuán)隊(duì)以一種可視化的方式理解系統(tǒng)的功能需求,UML為交流面向?qū)ο蟮脑O(shè)計(jì)中的需求,行為、體系結(jié)構(gòu)以及最后實(shí)現(xiàn)提供了一套綜合的表示法。
1,UML統(tǒng)一了各種方法對(duì)不同類型的系統(tǒng)、不同開(kāi)發(fā)階段以及不同內(nèi)部概念的不同觀點(diǎn),從而有效的消除了各種建模語(yǔ)言之間不必要的差異。
2,UML建模能力比其它面向?qū)ο蠼7椒ǜ鼜?qiáng)。它不僅適合于一般系統(tǒng)的開(kāi)發(fā),而且對(duì)并行、分布式系統(tǒng)的建模尤為適宜。
3,使用UML使硬件組件和軟件組件之間將會(huì)有更大的透明度。便攜性和綜合效率將會(huì)增加。
我們會(huì)編程只是實(shí)現(xiàn)的能力,而我們會(huì)進(jìn)行UML建模,則是從全局出發(fā)設(shè)計(jì)和管理的能力。
Trufun致力于軟件工程全過(guò)程解決方案,提供從需求到測(cè)試的完整跟蹤過(guò)程,愿與各方進(jìn)行科研、開(kāi)發(fā)等方面的合作。
第二篇:uml實(shí)驗(yàn)三 構(gòu)建類圖
實(shí)驗(yàn)三 構(gòu)建類圖
【實(shí)驗(yàn)?zāi)康摹?/p>
1.理解類的基本概念 2.理解類間的關(guān)系 3.掌握類圖的繪制方法
4.掌握簡(jiǎn)單的類圖設(shè)計(jì)方法
【實(shí)驗(yàn)器材】
1.計(jì)算機(jī)一臺(tái);
2.Rational Rose 工具軟件;
【實(shí)驗(yàn)內(nèi)容】
【題目一】
分析選課系統(tǒng)中的類及關(guān)系,然后畫(huà)出它們的類圖。
1).分析
在選課系統(tǒng)中,通過(guò)分析可抽象出如下幾個(gè)類:(1)學(xué)生類(2)管理員類(3)課程類
學(xué)生類和管理員類的屬性較容易分析,這里只列出課程類的屬性和方法:(1)課程名稱(2)開(kāi)課教室(3)課程號(hào)(4)授課教師(5)選課的學(xué)生(6)開(kāi)課起始時(shí)間
(7)允許選課的學(xué)生人數(shù)(8)設(shè)置課程號(hào)(9)設(shè)置課程名稱(10)查詢課程號(hào)
(11)查詢?cè)试S選課的學(xué)生人數(shù) 2)繪圖步驟
下面介紹在Rose2003中創(chuàng)建類和它們之間關(guān)系的過(guò)程:
(1)在“Logical View“中雙擊Main圖,或者右擊“Logical View“,彈出在快捷菜單中選擇“New”->“Class Diagram”,雙擊圖標(biāo),出現(xiàn)圖2.1,為編輯類圖做好準(zhǔn)備。
圖2.1(2)在邏輯視圖中,從工具欄中選擇class圖標(biāo),在右邊的繪圖區(qū)中添加一個(gè)新元素,并取名Student表明新增一個(gè)類,如圖2.2所示。
圖2.2(3)選擇新創(chuàng)建的元素,點(diǎn)擊鼠標(biāo)右鍵,在彈出的菜單中選擇“Open Sepcification”,彈出圖2.3對(duì)話框。
(4)在對(duì)話框中,可以修改元素的名稱,這里新元素的名稱定為“Student”,如圖2.4所示。
圖2.3
圖2.4(5)點(diǎn)擊“Attributes”選項(xiàng)卡,添加屬性,如圖2.5所示。
圖2.5(6)點(diǎn)擊“operations”選項(xiàng)卡,添加方法如圖2.6所示。
圖2.6(7)同樣的方法添加Course類,如圖2.7所示。
圖2.7(8)創(chuàng)建兩個(gè)類之間的關(guān)系,通過(guò)分析得出:學(xué)生類和課程類之間為單向關(guān)聯(lián)。選擇圖標(biāo)欄的“關(guān)聯(lián)”,由學(xué)生類指向課程類。如圖2.8所示。
圖2.8(9)創(chuàng)建關(guān)聯(lián)名。右擊關(guān)聯(lián),選擇“open specification“,鍵入關(guān)聯(lián)名(select),如圖2.9所示。
圖2.9(10)分別在“Role A Detail“和“Role B Detail“選項(xiàng)卡中鍵入名稱和多重性,如圖2.10所示。
圖2.10(11)重復(fù)(2)-(10)中的步驟完成選課系統(tǒng)整個(gè)類圖的創(chuàng)建。(12)如圖2.11轉(zhuǎn)換生成代碼,查看所生成的三個(gè)的代碼。
圖2.11
【題目二】
已知三個(gè)類A、B和C,其中類A由類B的一個(gè)實(shí)例類和類C的1個(gè)或多個(gè)實(shí)例類構(gòu)成,請(qǐng)畫(huà)出能夠正確表示類A、B和C之間關(guān)系的UML類圖。
【題目三】
根據(jù)以下描述畫(huà)出類圖,并注明多重性關(guān)系:一個(gè)學(xué)生可以選修多門(mén)課程,也可能沒(méi)有任何課程;一門(mén)課程可以被多個(gè)學(xué)生選修;一個(gè)老師可以教多門(mén)課程或者不教課;每門(mén)課程至少有一個(gè)老師,也可以有多個(gè)老師任教;每門(mén)課程可以有0或1本教材,每本教材只能用于一門(mén)課程。
【題目四】
根據(jù)下面的代碼畫(huà)出Invoice類的類圖,要求標(biāo)明各屬性的類型和可見(jiàn)性以及類方法。
public class Invoice { public double amount;public Date date = new Date();public string customer;public string specification;public string administrator = “unspecified”;static private int number_of_invoices=0;public invoice(){
number_of_invoices++; } public void print()
{ System.out.println("The number of invoices is ”+ number_of_invoices);} }
【題目五】
下圖是一個(gè)倉(cāng)庫(kù)管理系統(tǒng)的類模型局部,其中IncomeOrder是指入庫(kù)單,OrderItem是指入庫(kù)中的每一項(xiàng),Product則是產(chǎn)品信息。請(qǐng)指出模型中的錯(cuò)誤,說(shuō)明原因并改正類圖。
IncomeOrder11ProductOrderItem
【題目六】
(1)現(xiàn)有一系統(tǒng)需要對(duì)商品進(jìn)行管理,包括添加,刪除商品,修改商品信息三項(xiàng)功能,畫(huà)出系統(tǒng)類圖。(商品信息包括商品編號(hào),商品名稱,價(jià)格,生產(chǎn)廠商等)
(2)如果現(xiàn)在系統(tǒng)需求發(fā)生變化,需要能夠?qū)p壞商品進(jìn)行打折,以及可以按照商品的顏色和外形進(jìn)行查詢,則系統(tǒng)類圖應(yīng)該如何修改?
【實(shí)驗(yàn)報(bào)告要求】
1. 整理實(shí)驗(yàn)結(jié)果。
2. 小結(jié)實(shí)驗(yàn)心得體會(huì)。
3.所有題目以doc文檔或Rose文檔形式上傳到服務(wù)器,而實(shí)驗(yàn)報(bào)告中只需寫(xiě)題目五和題目六。
第三篇:UML用例圖總結(jié)
UML用例圖
用例圖主要用來(lái)圖示化系統(tǒng)的主事件流程,它主要用來(lái)描述客戶的需求,即用戶希望系統(tǒng)具備的完成一定功能的動(dòng)作,通俗地理解用例就是軟件的功能模塊,所以是設(shè)計(jì)系統(tǒng)分析階段的起點(diǎn),設(shè)計(jì)人員根據(jù)客戶的需求來(lái)創(chuàng)建和解釋用例圖,用來(lái)描述軟件應(yīng)具備哪些功能模塊以及這些模塊之間的調(diào)用關(guān)系,用例圖包含了用例和參與者,用例之間用關(guān)聯(lián)來(lái)連接以求把系統(tǒng)的整個(gè)結(jié)構(gòu)和功能反映給非技術(shù)人員(通常是軟件的用戶),對(duì)應(yīng)的是軟件的結(jié)構(gòu)和功能分解。
用例是從系統(tǒng)外部可見(jiàn)的行為,是系統(tǒng)為某一個(gè)或幾個(gè)參與者(Actor)提供的一段完整的服務(wù)。從原則上來(lái)講,用例之間都是獨(dú)立、并列的,它們之間并不存在著包含從屬關(guān)系。但是為了體現(xiàn)一些用例之間的業(yè)務(wù)關(guān)系,提高可維護(hù)性和一致性,用例之間可以抽象出包含(include)、擴(kuò)展(extend)和泛(generalization)幾種關(guān)系。
共性:都是從現(xiàn)有的用例中抽取出公共的那部分信息,作為一個(gè)單獨(dú)的用例,然后通后過(guò)不同的方法來(lái)重用這個(gè)公共的用例,以減少模型維護(hù)的工作量。
1、包含(include)
包含關(guān)系:使用包含(Inclusion)用例來(lái)封裝一組跨越多個(gè)用例的相似動(dòng)作(行為片斷),以便多個(gè)基(Base)用例復(fù)用?;美刂婆c包含用例的關(guān)系,以及被包含用例的事件流是否會(huì)插入到基用例的事件流中?;美梢砸蕾嚢美龍?zhí)行的結(jié)果,但是雙方都不能訪問(wèn)對(duì)方的屬性。
包含關(guān)系對(duì)典型的應(yīng)用就是復(fù)用,也就是定義中說(shuō)的情景。但是有時(shí)當(dāng)某用例的事件流過(guò)于復(fù)雜時(shí),為了簡(jiǎn)化用例的描述,我們也可以把某一段事件流抽象成為一個(gè)被包含的用例;相反,用例劃分太細(xì)時(shí),也可以抽象出一個(gè)基用例,來(lái)包含這些細(xì)顆粒的用例。這種情況類似于在過(guò)程設(shè)計(jì)語(yǔ)言中,將程序的某一段算法封裝成一個(gè)子過(guò)程,然后再?gòu)闹鞒绦蛑姓{(diào)用這一子過(guò)程。
例如:業(yè)務(wù)中,總是存在著維護(hù)某某信息的功能,如果將它作為一個(gè)用例,那新建、編輯以及修改都要在用例詳述中描述,過(guò)于復(fù)雜;如果分成新建用例、編輯用例和刪除用例,則劃分太細(xì)。這時(shí)包含關(guān)系可以用來(lái)理清關(guān)系。
2、擴(kuò)展(extend)擴(kuò)展關(guān)系:將基用例中一段相對(duì)獨(dú)立并且可選的動(dòng)作,用擴(kuò)展(Extension)用例加以封裝,再讓它從基用例中聲明的擴(kuò)展點(diǎn)(Extension Point)上進(jìn)行擴(kuò)展,從而使基用例行為更簡(jiǎn)練和目標(biāo)更集中。擴(kuò)展用例為基用例添加新的行為。擴(kuò)展用例可以訪問(wèn)基用例的屬性,因此它能根據(jù)基用例中擴(kuò)展點(diǎn)的當(dāng)前狀態(tài)來(lái)判斷是否執(zhí)行自己。但是擴(kuò)展用例對(duì)基用例不可見(jiàn)。對(duì)于一個(gè)擴(kuò)展用例,可以在基用例上有幾個(gè)擴(kuò)展點(diǎn)。
例如,系統(tǒng)中允許用戶對(duì)查詢的結(jié)果進(jìn)行導(dǎo)出、打印。對(duì)于查詢而言,能不能導(dǎo)出、打印查詢都是一樣的,導(dǎo)出、打印是不可見(jiàn)的。導(dǎo)入、打印和查詢相對(duì)獨(dú)立,而且為查詢添加了新行為。因此可以采用擴(kuò)展關(guān)系來(lái)描述:
4、泛化(generalization)泛化關(guān)系:子用例和父用例相似,但表現(xiàn)出更特別的行為;子用例將繼承父用例的所有結(jié)構(gòu)、行為和關(guān)系。子用例可以使用父用例的一段行為,也可以重載它。父用例通常是抽象的。在實(shí)際應(yīng)用中很少使用泛化關(guān)系,子用例中的特殊行為都可以作為父用例中的備選流存在。
例如,業(yè)務(wù)中可能存在許多需要部門(mén)領(lǐng)導(dǎo)審批的事情,但是領(lǐng)導(dǎo)審批的流程是很相似的,這時(shí)可以做成泛化關(guān)系表示:
上面是我參考的一篇文章,覺(jué)得將三種關(guān)系的區(qū)別講得很清晰,在此基礎(chǔ)上結(jié)合自己的系統(tǒng),對(duì)項(xiàng)目(在線購(gòu)物系統(tǒng))的用例做了整體的描繪。
*****************************************************************
(1)系統(tǒng)整體用例圖
(商品用例圖)
(購(gòu)買信息用例)
(用戶資料用例)
按照先整體用例,后子系統(tǒng)用例來(lái)進(jìn)行描繪的,歡迎大家提出好的建議!
轉(zhuǎn):UML中擴(kuò)展和泛化的區(qū)別
泛化表示類似于OO術(shù)語(yǔ)“繼承”或“多態(tài)”。UML中的Use Case泛化過(guò)程是將不同Use Case之間的可合并部分抽象成獨(dú)立的父Use Case,并將不可合并部分單獨(dú)成各自的子Use Case;包含以及擴(kuò)展過(guò)程與泛化過(guò)程類似,但三者對(duì)用例關(guān)系的優(yōu)化側(cè)重點(diǎn)是不同的。如下:
●泛化側(cè)重表示子用例間的互斥性;
●包含側(cè)重表示被包含用例對(duì)Actor提供服務(wù)的間接性;
●擴(kuò)展側(cè)重表示擴(kuò)展用例的觸發(fā)不定性;詳述如下:
既然用例是系統(tǒng)提供服務(wù)的UML表述,那么服務(wù)這個(gè)過(guò)程在所有用例場(chǎng)景中是必然發(fā)生的,但發(fā)生按照發(fā)生條件可分為如下兩種情況:
⒈無(wú)條件發(fā)生:肯定發(fā)生的;
⒉有條件發(fā)生:未必發(fā)生,發(fā)生與否取決于系統(tǒng)狀態(tài);
因此,針對(duì)用例的三種關(guān)系結(jié)合系統(tǒng)狀態(tài)考慮,泛化與包含用例屬于無(wú)條件發(fā)生的用例,而擴(kuò)展屬于有條件發(fā)生的用例。進(jìn)一步,用例的存在是為Actor提供服務(wù),但用例提供服務(wù)的方式可分為間接和直接兩種,依據(jù)于此,泛化中的子用例提供的是直接服務(wù),而包含中的被包含用例提供的是間接服務(wù)。同樣,擴(kuò)展用例提供的也是直接服務(wù),但擴(kuò)展用例的發(fā)生是有條件的。
另外一點(diǎn)需要提及的是:泛化中的子用例和擴(kuò)展中的擴(kuò)展用例均可以作為基本用例事件的備選擇流而存在。
第四篇:Uml用例圖心得(精選)
Uml用例圖心得
序言:用例圖主要用來(lái)描述“用戶、需求、系統(tǒng)功能單元”之間的關(guān)系。它展示了一個(gè)外部用戶能夠觀察到的系統(tǒng)功能模型圖。
【用途】:幫助開(kāi)發(fā)團(tuán)隊(duì)以一種可視化的方式理解系統(tǒng)的功能需求。
用例圖所包含的元素如下:
1.參與者(Actor)
表示與您的應(yīng)用程序或系統(tǒng)進(jìn)行交互的用戶、組織或外部系統(tǒng)。用一個(gè)小人表示。
2.用例(Use Case)
用例就是外部可見(jiàn)的系統(tǒng)功能,對(duì)系統(tǒng)提供的服務(wù)進(jìn)行描述。用橢圓表示。
3.子系統(tǒng)(Subsystem)
用來(lái)展示系統(tǒng)的一部分功能,這部分功能聯(lián)系緊密。
4.關(guān)系
用例圖中涉及的關(guān)系有:關(guān)聯(lián)、泛化、包含、擴(kuò)展。
如下表所示:
a.關(guān)聯(lián)(Association)
表示參與者與用例之間的通信,任何一方都可發(fā)送或接受消息。
【箭頭指向】:指向消息接收方
b.泛化(Inheritance)
就是通常理解的繼承關(guān)系,子用例和父用例相似,但表現(xiàn)出更特別的行為;子用例將繼承父用例的所有結(jié)構(gòu)、行為和關(guān)系。子用例可以使用父用例的一段行為,也可以重載它。父用例通常是抽象的。
【箭頭指向】:指向父用例
c.包含(Include)
包含關(guān)系用來(lái)把一個(gè)較復(fù)雜用例所表示的功能分解成較小的步驟。
【箭頭指向】:指向分解出來(lái)的功能用例
d.擴(kuò)展(Extend)
擴(kuò)展關(guān)系是指用例功能的延伸,相當(dāng)于為基礎(chǔ)用例提供一個(gè)附加功能。
【箭頭指向】:指向基礎(chǔ)用例
e.依賴(Dependency)
以上4種關(guān)系,是UML定義的標(biāo)準(zhǔn)關(guān)系。但VS2010的用例模型圖中,添加了依賴關(guān)系,用帶箭頭的虛線表示,表示源用例依賴于目標(biāo)用例。
【箭頭指向】:指向被依賴項(xiàng)
5.項(xiàng)目(Artifact)
用例圖雖然是用來(lái)幫助人們形象地理解功能需求,但卻沒(méi)多少人能夠通看懂它。很多時(shí)候跟用戶交流甚至用Excel都比用例圖強(qiáng),VS2010中引入了“項(xiàng)目”這樣一個(gè)元素,以便讓開(kāi)發(fā)人員能夠在用例圖中鏈接一個(gè)普通文檔。
用依賴關(guān)系把某個(gè)用例依賴到項(xiàng)目上:
然后把項(xiàng)目-》屬性 的Hyperlink設(shè)置到你的文檔上;
這樣當(dāng)你在用例圖上雙擊項(xiàng)目時(shí),就會(huì)打開(kāi)相關(guān)聯(lián)的文檔。
6.注釋(Comment)
包含(include)、擴(kuò)展(extend)、泛化(Inheritance)的區(qū)別:
條件性:泛化中的子用例和include中的被包含的用例會(huì)無(wú)條件發(fā)生,而extend中的延伸用例的發(fā)生是有條件的;
直接性:泛化中的子用例和extend中的延伸用例為參與者提供直接服務(wù),而include中被包含的用例為參與者提供間接服務(wù)。
對(duì)extend而言,延伸用例并不包含基礎(chǔ)用例的內(nèi)容,基礎(chǔ)用例也不包含延伸用例的內(nèi)容。
對(duì)Inheritance而言,子用例包含基礎(chǔ)用例的所有內(nèi)容及其和其他用例或參與者之間的關(guān)系;
一個(gè)用例圖示例:
第五篇:UML復(fù)習(xí)總結(jié)
1.UML(unified modeling language): 統(tǒng)一建模語(yǔ)言是創(chuàng)建描繪軟件系統(tǒng)結(jié)構(gòu)和設(shè)計(jì)藍(lán)圖的標(biāo)準(zhǔn)語(yǔ)言。它用于指定、構(gòu)造、記錄軟件系統(tǒng)的工件并使之可視化。~ 的基本組成部分:包括 UML 的靜態(tài)、動(dòng)態(tài)、包和注釋等部分。~ 的構(gòu)建塊包含基本的成分、關(guān)系和關(guān)系圖。基本成分包括結(jié)構(gòu)、行為、分組和注釋成分。
2.RUP(rational unified process): 統(tǒng)一開(kāi)發(fā)過(guò)程是一種過(guò)程框架,有助于使用創(chuàng)建和部署用UML設(shè)計(jì)的軟件。~生命周期分為四個(gè)階段:起始階段、細(xì)化階段、構(gòu)造階段、轉(zhuǎn)換 3.軟件開(kāi)發(fā)生命周期(SDLC)是一個(gè)規(guī)范的、系統(tǒng)的軟件開(kāi)發(fā)方法??煞譃榱鶄€(gè)階段:可行性分析、需求分析和規(guī)范說(shuō)明、設(shè)計(jì)、編碼、測(cè)試、維護(hù)。軟件的開(kāi)發(fā)方法:瀑布方法、原型方法、螺旋方法、雙贏螺旋方法、增量方法。在設(shè)計(jì)階段,有兩種~:①面向功能方法以模塊為中心,注重軟件的功能。②面向?qū)ο螅∣O)方法支持重用、數(shù)據(jù)封裝、以及繼承、抽象和多態(tài)性等概念。
4.面向?qū)ο蠓治龊驮O(shè)計(jì)(OOAD)是指根據(jù)對(duì)象、類、封裝、繼承、多態(tài)、抽象和動(dòng)態(tài)邦定來(lái)分析需求以及設(shè)計(jì)軟件系統(tǒng)。
5.軟件系統(tǒng)的各個(gè)視圖:①用例視圖:表示系統(tǒng)為客戶提供的功能②設(shè)計(jì)~:側(cè)重于系統(tǒng)的靜態(tài)和動(dòng)態(tài)表示③實(shí)施~:表示軟件系統(tǒng)中組成系統(tǒng)所需的各個(gè)文件和組件④部署~:表示將執(zhí)行軟件系統(tǒng)和硬件的組合關(guān)系。
6.四種建模技術(shù):①需求建模:包括使用用例關(guān)系圖描述需求。②靜態(tài)~:包括使用類、對(duì)象和復(fù)合結(jié)構(gòu)關(guān)系圖來(lái)描述軟件系統(tǒng)的靜態(tài)成分③動(dòng)態(tài)~:包括使用以下關(guān)系圖來(lái)描述動(dòng)態(tài)成分的行為:活動(dòng)關(guān)系圖、狀態(tài)機(jī)關(guān)系圖、通信關(guān)系圖、序列關(guān)系圖、交互概覽圖、時(shí)序關(guān)系圖④架構(gòu)~: 描述軟件系統(tǒng)的內(nèi)部結(jié)構(gòu)如何構(gòu)成:包關(guān)系圖、主件關(guān)系圖、部署關(guān)系圖 7.需求管理是一種持續(xù)的系統(tǒng)化方法。~的四個(gè)階段: 需求收集、~分析與協(xié)商、~規(guī)格化、~驗(yàn)證。需求分析指將需求分類和組織為功能性需求和非功能性需求的過(guò)程。功能需求指軟件系統(tǒng)需要實(shí)現(xiàn)的功能和特性。非功能性需求指軟件系統(tǒng)需要達(dá)到的性能指標(biāo)。需求驗(yàn)證是在指定需求規(guī)范化后對(duì)需求進(jìn)行驗(yàn)證的活動(dòng)。需求驗(yàn)證包括:①確定所有的模糊需求②確定每條需求的來(lái)源③說(shuō)明需求數(shù)量④確定需求之間的依賴關(guān)系⑤驗(yàn)證需求是否簡(jiǎn)明、可測(cè)試并且可跟蹤⑥驗(yàn)證需求與軟件系統(tǒng)中的約束是否有沖突
8.軟件需求規(guī)格化(SRS)是詳細(xì)分析任務(wù)后產(chǎn)生的文檔。~必須提供信息:軟件系統(tǒng)定義、SRS文檔的用途、軟件系統(tǒng)的范圍、功能性需求、非功能性需求、目標(biāo)軟件系統(tǒng)的運(yùn)行條件 9.角色有關(guān)的關(guān)系:泛化~: 存在于有類似的行為和特性的角色之間繼承關(guān)系。關(guān)聯(lián)~: 顯示用例與角色之間通信關(guān)系。
10.用例關(guān)系圖:①顯示目標(biāo)軟件系統(tǒng)的用例和角色之間的交互關(guān)系②顯示用例之間或角色之間的關(guān)系(如關(guān)聯(lián)和泛化等)。用例可以(文本方式,事件流方式)描述外部角色與軟件系統(tǒng)之間的交互過(guò)程。用例之間的關(guān)系:①擴(kuò)展:指通過(guò)獲取其它用例的某些功能來(lái)建立當(dāng)前用例的方式擴(kuò)展關(guān)系的箭頭方向指向要被擴(kuò)展的用例②包含:指一個(gè)用例的功能包含在另一個(gè)用例的功能中。包含關(guān)系里箭頭指向被包含在另一個(gè)用例中的用例。11.類關(guān)系圖表示類、接口、以及它們之間的關(guān)系。對(duì)象關(guān)系圖表示類的特定實(shí)例的屬性值以及對(duì)象之間的關(guān)系。類的屬性和操作的可見(jiàn)性是:+ :表示屬性或操作對(duì)于其它類可見(jiàn)。-:表示屬性或操作對(duì)其它類不可見(jiàn)。#:表示基類的屬性或操作僅對(duì)它的派生類可見(jiàn)。~:表示屬性或操作只對(duì)同一個(gè)包里的類是可見(jiàn)的。類和對(duì)象之間的關(guān)系:①關(guān)聯(lián):表示兩個(gè)類的對(duì)象之間一般上的邏輯意義上的聯(lián)系。②聚合:表示兩個(gè)類之間的整體與局部的關(guān)系③組合:表示兩個(gè)類之間的整體與局部的關(guān)系④依賴性:表示兩個(gè)類的對(duì)象之間一般上的動(dòng)態(tài)功能上的聯(lián)系⑤泛化:表示父類與子類之間派生關(guān)系⑥實(shí)現(xiàn):表示類關(guān)系圖里兩個(gè)元素之間的語(yǔ)義關(guān)系,其中一個(gè)元素定義一個(gè)協(xié)議,另一個(gè)元素實(shí)現(xiàn)這個(gè)協(xié)議。12.抽象類是沒(méi)有任何直接實(shí)例的類,繼承于抽象類的類可以有直接實(shí)例,用于定義一組子類的公共特征和公共行為。接口是一組用于表示由類或組件提供的服務(wù)的操作集合,只能提供公共方法的聲明,而不能提供這些公共方法的實(shí)現(xiàn),不可以創(chuàng)建接口的對(duì)象。兩者的相同處:①抽象類和接口都提供方法的規(guī)范,但是都不允許您直接創(chuàng)建實(shí)例。②抽象類和接口中指定的方法實(shí)現(xiàn)都在派生類中提供。不同處:①接口使您能實(shí)現(xiàn)多繼承,因?yàn)橐粋€(gè)類可以實(shí)現(xiàn)多個(gè)接口。但是,抽象類不支持多繼承。一個(gè)類無(wú)法繼承多個(gè)抽象類②抽象類包含的屬性和方法可以是公共的、私有的或受保護(hù)的。接口只包含方法③抽象類可提供一部分方法的定義但接口不提供任何定義④抽象類在同一個(gè)包內(nèi)使用,而接口可以跨多個(gè)包里實(shí)現(xiàn)。接口繼承與抽象類繼承的區(qū)別:①接口繼承可多繼承,而抽象類繼承不行②接口繼承中全是抽象方法,不提供定義,而抽象類繼承中可有方法定義。
13.交互關(guān)系圖:描述軟件系統(tǒng)的成分如何彼此交互以實(shí)現(xiàn)系統(tǒng)用例的功能。~有兩個(gè)部分:①協(xié)作者:描述交互關(guān)系圖中參與交換的系統(tǒng)靜態(tài)部分②交互:描述交互關(guān)系圖中靜態(tài)部分是怎樣參與動(dòng)態(tài)協(xié)作的。常用的交互關(guān)系圖有:①序列關(guān)系圖:以一組按時(shí)間順序排序的消息的形式表示對(duì)象之間的交互②通信關(guān)系圖:以消息的形式表示對(duì)象間的交互
14.包關(guān)系圖用于描述軟件系統(tǒng)的各個(gè)包以及包之間的關(guān)系。使用包來(lái)建模軟件系統(tǒng)成分的好處有:①以可視化的方式顯示功能組以及它們之間的關(guān)系②使得大型軟件系統(tǒng)易于管理。用例分包規(guī)則:①以可視化的方式顯示功能組以及它們之間的關(guān)系② 使得大型軟件系統(tǒng)易于管理。類分包~:①具有相同繼承層次結(jié)構(gòu)的類分組在一個(gè)包里②具有復(fù)合關(guān)系的類分組在一個(gè)包里③將相互協(xié)作、彼此交互的類分組在一個(gè)包里。
15.組件:實(shí)現(xiàn)一組規(guī)定接口功能的可執(zhí)行部件。組件實(shí)現(xiàn)了一組接口。組件類型:①部署組件:描述可執(zhí)行系統(tǒng)最終可部署部件②工作產(chǎn)品~:描述工程軟件有哪些文件組成③執(zhí)行~:描述可執(zhí)行軟件有哪些可執(zhí)行部件組成
16.框架和模式是使軟件構(gòu)件可重用的標(biāo)準(zhǔn)。框架:特定領(lǐng)域中類似應(yīng)用程序的通用功能的模板,增加可重用性和減少應(yīng)用程序開(kāi)發(fā)時(shí)間。其特性:①類或組件的集合,具有執(zhí)行一些特定或通用的功能②包含一些預(yù)定義規(guī)范的抽象和具體類接口③可以可通過(guò)子類化來(lái)擴(kuò)展和實(shí)現(xiàn)這些抽象類和接口④定義一些抽象方法,這些方法接收系統(tǒng)中預(yù)定義的消息。模式:
新建的系統(tǒng)能滿足可重用的要求,有助于軟件組件之間更好的通信。~類型:通用職責(zé)分配軟件模式(GRASP)、四人組模式(GoF)單例模式:允許創(chuàng)建它自身的唯一一個(gè)實(shí)例的類。對(duì)于有些類只應(yīng)許創(chuàng)建一個(gè)實(shí)例對(duì)象。用靜態(tài)數(shù)據(jù)成員來(lái)定義單件模式,以跟蹤所創(chuàng)建對(duì)象的生命期。設(shè)計(jì)模式好處:①可讓你創(chuàng)建能滿足新需求的可重用的解決方案而無(wú)需修改現(xiàn)有系統(tǒng)。②有助于軟件組件之間更好的通信。③有助于設(shè)計(jì)的重用、提供最有效的問(wèn)題解決方案、給類分配職責(zé)。
17.實(shí)施質(zhì)量流程的目的是為了在軟件開(kāi)發(fā)過(guò)程中檢查所開(kāi)發(fā)的軟件模型和產(chǎn)品的質(zhì)量。質(zhì)量流程包括:①用于開(kāi)發(fā)軟件系統(tǒng)的軟件開(kāi)發(fā)過(guò)程的質(zhì)量②軟件開(kāi)發(fā)過(guò)程中使用的軟件模型的質(zhì)量③軟件開(kāi)發(fā)過(guò)程結(jié)束時(shí)獲得的軟件產(chǎn)品的質(zhì)量④質(zhì)量流程自身的質(zhì)量。生產(chǎn)質(zhì)量過(guò)硬的產(chǎn)品時(shí)需要考慮的維度是:①技術(shù):描述軟件開(kāi)發(fā)過(guò)程所需的工具以及生成的輸出② 方法:描述軟件開(kāi)發(fā)過(guò)程期間需要執(zhí)行以生成輸出的操作順序③社會(huì)學(xué):描述軟件開(kāi)發(fā)過(guò)程所需的人力資源、環(huán)境條件和技能。質(zhì)量保證技術(shù)檢查:語(yǔ)法:確保軟件模型使用正確的語(yǔ)法。語(yǔ)義:確保軟件模型表達(dá)出目標(biāo)意圖并確保軟件模型的表示在項(xiàng)目中一致。美觀:確保軟件模型對(duì)稱并且完整。UML提供的三種擴(kuò)展元素為:構(gòu)造型:擴(kuò)展 UML 詞匯表約束:擴(kuò)展 UML 構(gòu)造塊的語(yǔ)義關(guān)系。標(biāo)記值:擴(kuò)展 UML 構(gòu)造塊的屬性
18靜態(tài)建模:它表示軟件系統(tǒng)的靜態(tài)或結(jié)構(gòu)成分。它包括類關(guān)系圖和對(duì)象關(guān)系圖。它有助于描繪系統(tǒng)成分之間的關(guān)聯(lián)和依賴性。動(dòng)態(tài)建模:它表示軟件系統(tǒng)靜態(tài)成分的行為過(guò)程。它包含交互、活動(dòng)和狀態(tài)關(guān)系圖。它有助于表達(dá)系統(tǒng)在一段時(shí)間內(nèi)的行為流程。