UML用例图总结来源于网络
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
前言
?
用例圖主要用來描述“用戶、需求、系統(tǒng)功能單元”之間的關系。它展示一個外部用戶能夠觀察到的系統(tǒng)功能模型圖。用例圖多用于靜態(tài)建模階段(主要是業(yè)務建模和需求建模),幫助開發(fā)團隊以一種可視化的方式理解系統(tǒng)的功能需求。下面將從各個部分來分析和理解用例圖。
參與者(Actor)
在系統(tǒng)外部與系統(tǒng)直接交互的人或事物;需要注意以下兩點:
在UML中,參與者使用如圖所示的一個小人表示:
用例(Use Case)
系統(tǒng)外部可見的一個系統(tǒng)功能單元。系統(tǒng)的功能由系統(tǒng)單元所提供,并通過一系列系統(tǒng)單元與一個或多個參與者之間交換的消息所表達。用橢圓表示,橢圓中的文字簡述系統(tǒng)的功能:
子系統(tǒng)(Subsystem)
用來展示系統(tǒng)的一部分功能,這部分功能聯(lián)系緊密。
關系(Relationship)
用例圖中涉及的關系有:
關聯(lián)(Association)
表示參與者與用例之間的交互,通信途徑,任何一方都可發(fā)送或接受消息。
箭頭指向:指向消息接收方。
泛化(Inheritance)
在編程中,泛化關系是一種很重要的關系,我們隨處可見。
泛化關系是一般和特殊關系,就是通常理解的繼承關系,子用例和父用例相似,但表現(xiàn)出更特別的行為;子用例將繼承父用例的所有結構、行為和關系。子用例可以使用父用例的一段行為,也可以重載它。父用例通常是抽象的。
箭頭指向(需要特別注意):指向父用例。
包含(Include)
包含關系用來把一個較復雜用例所表示功能分解成較小的步驟。包含用例是必須的,如果缺少包含用例,基用例就不完整;包含用例必須被執(zhí)行。
箭頭指向:指向分解出來的功能用例。
擴展(Extend)
擴展關系是指用例功能的延伸,相當于為基礎用例提供一個附加功能。擴展用例是可選的,如果缺少擴展用例,不會影響到基用例的完整性。
箭頭指向(需要特別注意):指向基用例
下圖提供一個完整的系統(tǒng)的用例圖,讓大家有一個感官上的全面認識。
總結
用例圖雖然作為UML中的一部分,給團隊成員提供一種形象的系統(tǒng)表述,但是,用例圖也由它本身的缺陷,用例圖一般在需求分析階段就給出了,有的時候對于系統(tǒng)的需求,并不能很好的表述,對于沒有UML背景的人來說,更是一種痛苦與折磨,但是,話又說回來,作為軟件開發(fā)人員,沒有UML背景是說不過去的;有的時候,我們需要借助用例圖對客戶講解系統(tǒng),而讓客戶去理解用例圖則是很困難的。
雖然,在用例圖中的關系種類不是很多,也不是很復雜,但是UML的表示確實很讓人費解的,別的還好,特別是擴展(Extend)和包含(Include),表示方式都一樣的,僅靠上面的說明來進行區(qū)分,在一個復雜的系統(tǒng)中,是很容易看錯的,從而理解出錯,同時,擴展(Extend)中的箭頭指向一直是讓我很費解的,為什么需要讓箭頭指向基用例呢?
鑒于用例圖有的時候并不能清楚地表達功能需求,開發(fā)中大家通常用用例描述表來補充某些不易表達的用例,請大家參考下圖:
轉載于:https://my.oschina.net/liusonghuang/blog/791417
總結
以上是生活随笔為你收集整理的UML用例图总结来源于网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记录从前端到后端--博客项目
- 下一篇: 几何画板度量三角形的步骤