第一篇:Uml用例圖心得(精選)
Uml用例圖心得
序言:用例圖主要用來描述“用戶、需求、系統(tǒng)功能單元”之間的關(guān)系。它展示了一個外部用戶能夠觀察到的系統(tǒng)功能模型圖。
【用途】:幫助開發(fā)團隊以一種可視化的方式理解系統(tǒng)的功能需求。
用例圖所包含的元素如下:
1.參與者(Actor)
表示與您的應(yīng)用程序或系統(tǒng)進行交互的用戶、組織或外部系統(tǒng)。用一個小人表示。
2.用例(Use Case)
用例就是外部可見的系統(tǒng)功能,對系統(tǒng)提供的服務(wù)進行描述。用橢圓表示。
3.子系統(tǒng)(Subsystem)
用來展示系統(tǒng)的一部分功能,這部分功能聯(lián)系緊密。
4.關(guān)系
用例圖中涉及的關(guān)系有:關(guān)聯(lián)、泛化、包含、擴展。
如下表所示:
a.關(guān)聯(lián)(Association)
表示參與者與用例之間的通信,任何一方都可發(fā)送或接受消息。
【箭頭指向】:指向消息接收方
b.泛化(Inheritance)
就是通常理解的繼承關(guān)系,子用例和父用例相似,但表現(xiàn)出更特別的行為;子用例將繼承父用例的所有結(jié)構(gòu)、行為和關(guān)系。子用例可以使用父用例的一段行為,也可以重載它。父用例通常是抽象的。
【箭頭指向】:指向父用例
c.包含(Include)
包含關(guān)系用來把一個較復(fù)雜用例所表示的功能分解成較小的步驟。
【箭頭指向】:指向分解出來的功能用例
d.擴展(Extend)
擴展關(guān)系是指用例功能的延伸,相當(dāng)于為基礎(chǔ)用例提供一個附加功能。
【箭頭指向】:指向基礎(chǔ)用例
e.依賴(Dependency)
以上4種關(guān)系,是UML定義的標(biāo)準(zhǔn)關(guān)系。但VS2010的用例模型圖中,添加了依賴關(guān)系,用帶箭頭的虛線表示,表示源用例依賴于目標(biāo)用例。
【箭頭指向】:指向被依賴項
5.項目(Artifact)
用例圖雖然是用來幫助人們形象地理解功能需求,但卻沒多少人能夠通看懂它。很多時候跟用戶交流甚至用Excel都比用例圖強,VS2010中引入了“項目”這樣一個元素,以便讓開發(fā)人員能夠在用例圖中鏈接一個普通文檔。
用依賴關(guān)系把某個用例依賴到項目上:
然后把項目-》屬性 的Hyperlink設(shè)置到你的文檔上;
這樣當(dāng)你在用例圖上雙擊項目時,就會打開相關(guān)聯(lián)的文檔。
6.注釋(Comment)
包含(include)、擴展(extend)、泛化(Inheritance)的區(qū)別:
條件性:泛化中的子用例和include中的被包含的用例會無條件發(fā)生,而extend中的延伸用例的發(fā)生是有條件的;
直接性:泛化中的子用例和extend中的延伸用例為參與者提供直接服務(wù),而include中被包含的用例為參與者提供間接服務(wù)。
對extend而言,延伸用例并不包含基礎(chǔ)用例的內(nèi)容,基礎(chǔ)用例也不包含延伸用例的內(nèi)容。
對Inheritance而言,子用例包含基礎(chǔ)用例的所有內(nèi)容及其和其他用例或參與者之間的關(guān)系;
一個用例圖示例:
第二篇:UML用例圖總結(jié)
UML用例圖
用例圖主要用來圖示化系統(tǒng)的主事件流程,它主要用來描述客戶的需求,即用戶希望系統(tǒng)具備的完成一定功能的動作,通俗地理解用例就是軟件的功能模塊,所以是設(shè)計系統(tǒng)分析階段的起點,設(shè)計人員根據(jù)客戶的需求來創(chuàng)建和解釋用例圖,用來描述軟件應(yīng)具備哪些功能模塊以及這些模塊之間的調(diào)用關(guān)系,用例圖包含了用例和參與者,用例之間用關(guān)聯(lián)來連接以求把系統(tǒng)的整個結(jié)構(gòu)和功能反映給非技術(shù)人員(通常是軟件的用戶),對應(yīng)的是軟件的結(jié)構(gòu)和功能分解。
用例是從系統(tǒng)外部可見的行為,是系統(tǒng)為某一個或幾個參與者(Actor)提供的一段完整的服務(wù)。從原則上來講,用例之間都是獨立、并列的,它們之間并不存在著包含從屬關(guān)系。但是為了體現(xiàn)一些用例之間的業(yè)務(wù)關(guān)系,提高可維護性和一致性,用例之間可以抽象出包含(include)、擴展(extend)和泛(generalization)幾種關(guān)系。
共性:都是從現(xiàn)有的用例中抽取出公共的那部分信息,作為一個單獨的用例,然后通后過不同的方法來重用這個公共的用例,以減少模型維護的工作量。
1、包含(include)
包含關(guān)系:使用包含(Inclusion)用例來封裝一組跨越多個用例的相似動作(行為片斷),以便多個基(Base)用例復(fù)用?;美刂婆c包含用例的關(guān)系,以及被包含用例的事件流是否會插入到基用例的事件流中?;美梢砸蕾嚢美龍?zhí)行的結(jié)果,但是雙方都不能訪問對方的屬性。
包含關(guān)系對典型的應(yīng)用就是復(fù)用,也就是定義中說的情景。但是有時當(dāng)某用例的事件流過于復(fù)雜時,為了簡化用例的描述,我們也可以把某一段事件流抽象成為一個被包含的用例;相反,用例劃分太細時,也可以抽象出一個基用例,來包含這些細顆粒的用例。這種情況類似于在過程設(shè)計語言中,將程序的某一段算法封裝成一個子過程,然后再從主程序中調(diào)用這一子過程。
例如:業(yè)務(wù)中,總是存在著維護某某信息的功能,如果將它作為一個用例,那新建、編輯以及修改都要在用例詳述中描述,過于復(fù)雜;如果分成新建用例、編輯用例和刪除用例,則劃分太細。這時包含關(guān)系可以用來理清關(guān)系。
2、擴展(extend)擴展關(guān)系:將基用例中一段相對獨立并且可選的動作,用擴展(Extension)用例加以封裝,再讓它從基用例中聲明的擴展點(Extension Point)上進行擴展,從而使基用例行為更簡練和目標(biāo)更集中。擴展用例為基用例添加新的行為。擴展用例可以訪問基用例的屬性,因此它能根據(jù)基用例中擴展點的當(dāng)前狀態(tài)來判斷是否執(zhí)行自己。但是擴展用例對基用例不可見。對于一個擴展用例,可以在基用例上有幾個擴展點。
例如,系統(tǒng)中允許用戶對查詢的結(jié)果進行導(dǎo)出、打印。對于查詢而言,能不能導(dǎo)出、打印查詢都是一樣的,導(dǎo)出、打印是不可見的。導(dǎo)入、打印和查詢相對獨立,而且為查詢添加了新行為。因此可以采用擴展關(guān)系來描述:
4、泛化(generalization)泛化關(guān)系:子用例和父用例相似,但表現(xiàn)出更特別的行為;子用例將繼承父用例的所有結(jié)構(gòu)、行為和關(guān)系。子用例可以使用父用例的一段行為,也可以重載它。父用例通常是抽象的。在實際應(yīng)用中很少使用泛化關(guān)系,子用例中的特殊行為都可以作為父用例中的備選流存在。
例如,業(yè)務(wù)中可能存在許多需要部門領(lǐng)導(dǎo)審批的事情,但是領(lǐng)導(dǎo)審批的流程是很相似的,這時可以做成泛化關(guān)系表示:
上面是我參考的一篇文章,覺得將三種關(guān)系的區(qū)別講得很清晰,在此基礎(chǔ)上結(jié)合自己的系統(tǒng),對項目(在線購物系統(tǒng))的用例做了整體的描繪。
*****************************************************************
(1)系統(tǒng)整體用例圖
(商品用例圖)
(購買信息用例)
(用戶資料用例)
按照先整體用例,后子系統(tǒng)用例來進行描繪的,歡迎大家提出好的建議!
轉(zhuǎn):UML中擴展和泛化的區(qū)別
泛化表示類似于OO術(shù)語“繼承”或“多態(tài)”。UML中的Use Case泛化過程是將不同Use Case之間的可合并部分抽象成獨立的父Use Case,并將不可合并部分單獨成各自的子Use Case;包含以及擴展過程與泛化過程類似,但三者對用例關(guān)系的優(yōu)化側(cè)重點是不同的。如下:
●泛化側(cè)重表示子用例間的互斥性;
●包含側(cè)重表示被包含用例對Actor提供服務(wù)的間接性;
●擴展側(cè)重表示擴展用例的觸發(fā)不定性;詳述如下:
既然用例是系統(tǒng)提供服務(wù)的UML表述,那么服務(wù)這個過程在所有用例場景中是必然發(fā)生的,但發(fā)生按照發(fā)生條件可分為如下兩種情況:
⒈無條件發(fā)生:肯定發(fā)生的;
⒉有條件發(fā)生:未必發(fā)生,發(fā)生與否取決于系統(tǒng)狀態(tài);
因此,針對用例的三種關(guān)系結(jié)合系統(tǒng)狀態(tài)考慮,泛化與包含用例屬于無條件發(fā)生的用例,而擴展屬于有條件發(fā)生的用例。進一步,用例的存在是為Actor提供服務(wù),但用例提供服務(wù)的方式可分為間接和直接兩種,依據(jù)于此,泛化中的子用例提供的是直接服務(wù),而包含中的被包含用例提供的是間接服務(wù)。同樣,擴展用例提供的也是直接服務(wù),但擴展用例的發(fā)生是有條件的。
另外一點需要提及的是:泛化中的子用例和擴展中的擴展用例均可以作為基本用例事件的備選擇流而存在。
第三篇:uml實驗三 構(gòu)建類圖
實驗三 構(gòu)建類圖
【實驗?zāi)康摹?/p>
1.理解類的基本概念 2.理解類間的關(guān)系 3.掌握類圖的繪制方法
4.掌握簡單的類圖設(shè)計方法
【實驗器材】
1.計算機一臺;
2.Rational Rose 工具軟件;
【實驗內(nèi)容】
【題目一】
分析選課系統(tǒng)中的類及關(guān)系,然后畫出它們的類圖。
1).分析
在選課系統(tǒng)中,通過分析可抽象出如下幾個類:(1)學(xué)生類(2)管理員類(3)課程類
學(xué)生類和管理員類的屬性較容易分析,這里只列出課程類的屬性和方法:(1)課程名稱(2)開課教室(3)課程號(4)授課教師(5)選課的學(xué)生(6)開課起始時間
(7)允許選課的學(xué)生人數(shù)(8)設(shè)置課程號(9)設(shè)置課程名稱(10)查詢課程號
(11)查詢允許選課的學(xué)生人數(shù) 2)繪圖步驟
下面介紹在Rose2003中創(chuàng)建類和它們之間關(guān)系的過程:
(1)在“Logical View“中雙擊Main圖,或者右擊“Logical View“,彈出在快捷菜單中選擇“New”->“Class Diagram”,雙擊圖標(biāo),出現(xiàn)圖2.1,為編輯類圖做好準(zhǔn)備。
圖2.1(2)在邏輯視圖中,從工具欄中選擇class圖標(biāo),在右邊的繪圖區(qū)中添加一個新元素,并取名Student表明新增一個類,如圖2.2所示。
圖2.2(3)選擇新創(chuàng)建的元素,點擊鼠標(biāo)右鍵,在彈出的菜單中選擇“Open Sepcification”,彈出圖2.3對話框。
(4)在對話框中,可以修改元素的名稱,這里新元素的名稱定為“Student”,如圖2.4所示。
圖2.3
圖2.4(5)點擊“Attributes”選項卡,添加屬性,如圖2.5所示。
圖2.5(6)點擊“operations”選項卡,添加方法如圖2.6所示。
圖2.6(7)同樣的方法添加Course類,如圖2.7所示。
圖2.7(8)創(chuàng)建兩個類之間的關(guān)系,通過分析得出:學(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“選項卡中鍵入名稱和多重性,如圖2.10所示。
圖2.10(11)重復(fù)(2)-(10)中的步驟完成選課系統(tǒng)整個類圖的創(chuàng)建。(12)如圖2.11轉(zhuǎn)換生成代碼,查看所生成的三個的代碼。
圖2.11
【題目二】
已知三個類A、B和C,其中類A由類B的一個實例類和類C的1個或多個實例類構(gòu)成,請畫出能夠正確表示類A、B和C之間關(guān)系的UML類圖。
【題目三】
根據(jù)以下描述畫出類圖,并注明多重性關(guān)系:一個學(xué)生可以選修多門課程,也可能沒有任何課程;一門課程可以被多個學(xué)生選修;一個老師可以教多門課程或者不教課;每門課程至少有一個老師,也可以有多個老師任教;每門課程可以有0或1本教材,每本教材只能用于一門課程。
【題目四】
根據(jù)下面的代碼畫出Invoice類的類圖,要求標(biāo)明各屬性的類型和可見性以及類方法。
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);} }
【題目五】
下圖是一個倉庫管理系統(tǒng)的類模型局部,其中IncomeOrder是指入庫單,OrderItem是指入庫中的每一項,Product則是產(chǎn)品信息。請指出模型中的錯誤,說明原因并改正類圖。
IncomeOrder11ProductOrderItem
【題目六】
(1)現(xiàn)有一系統(tǒng)需要對商品進行管理,包括添加,刪除商品,修改商品信息三項功能,畫出系統(tǒng)類圖。(商品信息包括商品編號,商品名稱,價格,生產(chǎn)廠商等)
(2)如果現(xiàn)在系統(tǒng)需求發(fā)生變化,需要能夠?qū)p壞商品進行打折,以及可以按照商品的顏色和外形進行查詢,則系統(tǒng)類圖應(yīng)該如何修改?
【實驗報告要求】
1. 整理實驗結(jié)果。
2. 小結(jié)實驗心得體會。
3.所有題目以doc文檔或Rose文檔形式上傳到服務(wù)器,而實驗報告中只需寫題目五和題目六。
第四篇:(用例圖)Use Cases總結(jié)
用例圖主要用來描述“用戶、需求、系統(tǒng)功能單元”之間的關(guān)系。它展示了一個外部用戶能夠觀察到的系統(tǒng)功能模型圖。
【用途】:幫助開發(fā)團隊以一種可視化的方式理解系統(tǒng)的功能需求。
用例圖所包含的元素如下:
1.參與者(Actor)
表示與您的應(yīng)用程序或系統(tǒng)進行交互的用戶、組織或外部系統(tǒng)。用一個小人表示。
2.用例(Use Case)
用例就是外部可見的系統(tǒng)功能,對系統(tǒng)提供的服務(wù)進行描述。用橢圓表示。
3.子系統(tǒng)(Subsystem)
用來展示系統(tǒng)的一部分功能,這部分功能聯(lián)系緊密。
4.關(guān)系
用例圖中涉及的關(guān)系有:關(guān)聯(lián)、泛化、包含、擴展。
如下表所示:
a.關(guān)聯(lián)(Association)
表示參與者與用例之間的通信,任何一方都可發(fā)送或接受消息。
【箭頭指向】:指向消息接收方
b.泛化(Inheritance)
就是通常理解的繼承關(guān)系,子用例和父用例相似,但表現(xiàn)出更特別的行為;子用例將繼承父用例的所有結(jié)構(gòu)、行為和關(guān)系。子用例可以使用父用例的一段行為,也可以重載它。父用例通常是抽象的。
【箭頭指向】:指向父用例
c.包含(Include)
包含關(guān)系用來把一個較復(fù)雜用例所表示的功能分解成較小的步驟。
【箭頭指向】:指向分解出來的功能用例
d.擴展(Extend)
擴展關(guān)系是指用例功能的延伸,相當(dāng)于為基礎(chǔ)用例提供一個附加功能。
【箭頭指向】:指向基礎(chǔ)用例
e.依賴(Dependency)
以上4種關(guān)系,是UML定義的標(biāo)準(zhǔn)關(guān)系。但VS2010的用例模型圖中,添加了依賴關(guān)系,用帶箭頭的虛線表示,表示源用例依賴于目標(biāo)用例。
【箭頭指向】:指向被依賴項
5.項目(Artifact)
用例圖雖然是用來幫助人們形象地理解功能需求,但卻沒多少人能夠通看懂它。很多時候跟用戶交流甚至用Excel都比用例圖強,VS2010中引入了“項目”這樣一個元素,以便讓開發(fā)人員能夠在用例圖中鏈接一個普通文檔。
用依賴關(guān)系把某個用例依賴到項目上:
然后把項目-》屬性 的Hyperlink設(shè)置到你的文檔上;
這樣當(dāng)你在用例圖上雙擊項目時,就會打開相關(guān)聯(lián)的文檔。
6.注釋(Comment)
包含(include)、擴展(extend)、泛化(Inheritance)的區(qū)別:
條件性:泛化中的子用例和include中的被包含的用例會無條件發(fā)生,而extend中的延伸用例的發(fā)生是有條件的;
直接性:泛化中的子用例和extend中的延伸用例為參與者提供直接服務(wù),而include中被包含的用例為參與者提供間接服務(wù)。
對extend而言,延伸用例并不包含基礎(chǔ)用例的內(nèi)容,基礎(chǔ)用例也不包含延伸用例的內(nèi)容。
對Inheritance而言,子用例包含基礎(chǔ)用例的所有內(nèi)容及其和其他用例或參與者之間的關(guān)系;
一個用例圖示例:
牢騷:
感覺用例圖還不成熟,并不能很好地表達系統(tǒng)的需求,沒有UML背景的用戶幾乎不知道畫的是些什么。
其次,包含關(guān)系、擴展關(guān)系的箭頭符號竟然是同樣的箭頭,僅靠上方寫個文字來加以區(qū)別,翻譯成其他語言的話,幾乎就不知道代表什么意思。擴展關(guān)系的箭頭朝向也很難理解,為何要指向基用例,而不指向擴展用例。
VS2010添加的“項目”元素,是個很好的創(chuàng)新,能夠在用例圖中關(guān)聯(lián)word, excel這些文檔。但為什么不把這些功能直接集成到用例里面,雙擊用例就彈出一份文檔豈不更容易理解,非要畫蛇添足地加一個元件,僅僅為了提供個鏈接功能。
用例描述表:
鑒于用列圖并不能清楚地表達功能需求,開發(fā)中大家通常用描述表來補充某些不易表達的用例,下圖的表給大家提供一個參考:
第五篇:會議管理系統(tǒng)用例圖
會議管理系統(tǒng)類圖
審批會議安排信息審批會議成本信息部門經(jīng)理審批用戶角色變更申請信息審批會議室變更信息審批會議設(shè)備變更信息
用例名稱: 參與者: 主事件流:(1)(2)(3)(4)
了解會議信息了解會議邀請信息了解部門會議成本信息與會者了解當(dāng)前角色信息申請成為會議組織者
了解與會者提案信息了解會議室預(yù)訂信息了解會議成本信息預(yù)訂會議設(shè)備會議組織者取消會議組織者角色了解會議設(shè)備預(yù)訂信息預(yù)訂會議室創(chuàng)建會議信息
管理用戶角色信息管理會議設(shè)備信息統(tǒng)計會議成本會議室管理員管理會議室信息審批會議室預(yù)訂信息
了解會議信息部門經(jīng)理了解會議邀請信息<
管理用戶角色信息了解會議成本審批信息<