![UML實用技術(shù)-介紹,用例類圖時序圖開發(fā)流程V_第1頁](http://file4.renrendoc.com/view/9d4502ba9494a7498d03ff9b07d588de/9d4502ba9494a7498d03ff9b07d588de1.gif)
![UML實用技術(shù)-介紹,用例類圖時序圖開發(fā)流程V_第2頁](http://file4.renrendoc.com/view/9d4502ba9494a7498d03ff9b07d588de/9d4502ba9494a7498d03ff9b07d588de2.gif)
![UML實用技術(shù)-介紹,用例類圖時序圖開發(fā)流程V_第3頁](http://file4.renrendoc.com/view/9d4502ba9494a7498d03ff9b07d588de/9d4502ba9494a7498d03ff9b07d588de3.gif)
![UML實用技術(shù)-介紹,用例類圖時序圖開發(fā)流程V_第4頁](http://file4.renrendoc.com/view/9d4502ba9494a7498d03ff9b07d588de/9d4502ba9494a7498d03ff9b07d588de4.gif)
![UML實用技術(shù)-介紹,用例類圖時序圖開發(fā)流程V_第5頁](http://file4.renrendoc.com/view/9d4502ba9494a7498d03ff9b07d588de/9d4502ba9494a7498d03ff9b07d588de5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Uml實用技術(shù)UnifiedModelingLanguage
我們動手做做練習(xí)
UML幫助我們做需求簡單了解UMLUML在設(shè)計階段如何發(fā)揮作用主題
我們動手做做練習(xí)
UML幫助我們做需求簡單了解UMLUML在設(shè)計階段如何發(fā)揮作用主題軟件開發(fā)過程詳解目前的現(xiàn)實是什么?——業(yè)務(wù)建模在這個現(xiàn)實下,開發(fā)系統(tǒng)是為了達到什么目標?——愿景為了達到目標,系統(tǒng)應(yīng)對外提供什么樣的功能和性能?——需求為了提供這些功能,系統(tǒng)內(nèi)部應(yīng)該有什么樣的核心業(yè)務(wù)機制?——分析為了滿足性能,系統(tǒng)的核心機制如何在選定的架構(gòu)上實現(xiàn)?——設(shè)計找到問題解決問題UML三個主要作用使用可視化建模來獲取并表現(xiàn)商業(yè)邏輯和對象使用可視化建模來分析和設(shè)計計算機應(yīng)用程序理由一:UML是客戶、系統(tǒng)分析員和程序員之間的“橋梁”用例圖活動圖狀態(tài)圖時序圖對象圖部署圖……UML三個主要作用理由二:UML從客戶的角度將復(fù)雜的系統(tǒng)整理清楚UML三個主要作用software可移植技術(shù)交互性能全面容量穩(wěn)定性錯誤處理容錯性功能需求成本兼容性理由三:UML能使越來越復(fù)雜的軟件系統(tǒng)架構(gòu)更加合理和健壯系統(tǒng)模型可由“4+1”視圖展現(xiàn)邏輯視圖場景視圖系統(tǒng)功能分析設(shè)計結(jié)構(gòu)系統(tǒng)并發(fā)工作情況實現(xiàn)視圖實現(xiàn)模塊和代碼間的關(guān)系部署視圖系統(tǒng)物理拓撲架構(gòu)進程視圖4+1視圖模型,從5個不同的視角包括包括邏輯試圖、進程視圖、物理視圖、開發(fā)視圖、場景視圖來描述軟件體系結(jié)構(gòu)。每一個視圖只關(guān)心系統(tǒng)的一個側(cè)面,5個試圖結(jié)合在一起才能反映系統(tǒng)的軟件體系結(jié)構(gòu)的全部內(nèi)容系統(tǒng)模型可由“4+1”視圖展現(xiàn)邏輯視圖LogicView邏輯試圖主要是用來描述系統(tǒng)的功能需求,即系統(tǒng)提供給最終用戶的服務(wù).在邏輯視圖中,系統(tǒng)分解成一系列的功能抽象、功能分解與功能分析,這些主要來自問題領(lǐng)域(ProblemDefinition)。在面向?qū)ο蠹夹g(shù)中,通過抽象、封裝、繼承,可以用對象模型來代表邏輯視圖,可以用類圖(ClassDiagram)來描述邏輯視圖。系統(tǒng)模型可由“4+1”視圖展現(xiàn)開發(fā)視圖Development/ModuleView開發(fā)視圖主要用來描述軟件模塊的組織與管理(通過程序庫或子系統(tǒng))。服務(wù)于軟件編程人員,方便后續(xù)的設(shè)計與實現(xiàn)。它通過系統(tǒng)輸入輸出關(guān)系的模型圖和子系統(tǒng)圖來描述。要考慮軟件的內(nèi)部需求:開發(fā)的難易程度、重用的可能性,通用性,局限性等等。開發(fā)視圖的風(fēng)格通常是層次結(jié)構(gòu),層次越低,通用性越好(底層庫:JavaSDK,圖像處理軟件包)。上升到組件概念系統(tǒng)統(tǒng)模模型型可可由由““4+1””視圖圖展展現(xiàn)現(xiàn)進程視圖
ProcessView進程試圖側(cè)重系統(tǒng)的運行特性,關(guān)注非功能性的需求(性能,可用性)。服務(wù)于系統(tǒng)集成人員,方便后續(xù)性能測試。強調(diào)并發(fā)性、分布性、集成性、魯棒性(容錯)、可擴充性、吞吐量等。定義邏輯視圖中的各個類的具體操作是在哪一個線程(Thread)中被執(zhí)行?,F(xiàn)在在公公司司里里不不再再考考慮慮功功能能能能不不能能實實現(xiàn)現(xiàn),,而而在在于于PK性能能,,可可擴擴展展性性等等非非功功能能性性。。系統(tǒng)統(tǒng)模模型型可可由由““4+1””視圖圖展展現(xiàn)現(xiàn)
物理視圖(physicalview)物理試圖主要描述硬件配置。服務(wù)于系統(tǒng)工程人員,解決系統(tǒng)的拓撲結(jié)構(gòu)、系統(tǒng)安裝、通信等問題。主要考慮如何把軟件映射到硬件上,也要考慮系統(tǒng)性能、規(guī)模、可靠性等??梢耘c進程視圖一起映射。系統(tǒng)統(tǒng)模模型型可可由由““4+1””視圖圖展展現(xiàn)現(xiàn)場景(Scenarios)
場景用于刻畫構(gòu)件之間的相互關(guān)系,將四個視圖有機地聯(lián)系起來。可以描述一個特定的視圖內(nèi)的構(gòu)件關(guān)系,也可以描述不同視圖間的構(gòu)件關(guān)系。文本、圖形表示皆可。n小結(jié)邏輯視圖、開發(fā)視圖,都主要是用來描述系統(tǒng)的靜態(tài)結(jié)構(gòu)。進程視圖、物理視圖,主要是用來描述系統(tǒng)的動態(tài)結(jié)構(gòu)。并非每個系統(tǒng)都必須把5個視圖都畫出來,而是各有側(cè)重。例如MIS系統(tǒng)側(cè)重于邏輯視圖、開發(fā)視圖,而實時控制系統(tǒng)則側(cè)重于進程視圖、物理視圖模型型可可由由9個圖圖來來展展現(xiàn)現(xiàn)UseCaseDiagramUseCaseDiagram用例圖ScenarioDiagramScenarioDiagram協(xié)作圖StateDiagramStateDiagram組件圖ComponentDiagramComponentDiagram部署圖StateDiagramStateDiagram對象圖ScenarioDiagramScenarioDiagram狀態(tài)圖UseCaseDiagramUseCaseDiagram時序圖StateDiagramStateDiagram類圖活動圖模型型墨綠綠色色表表示示動動態(tài)態(tài)圖圖粉紅紅色色表表示示靜靜態(tài)態(tài)圖圖(可可把把用用例例圖圖單單列列出出來來))功能靜態(tài)結(jié)構(gòu)物理架構(gòu)動態(tài)行為用例例圖圖,,類類圖圖,,時時序序圖圖經(jīng)經(jīng)常常用用UML9種圖圖用例圖描述角色以及角色與用例之間的連接關(guān)系。說明的是誰要使用系統(tǒng),以及他們使用該系統(tǒng)可以做些什么。一個用例圖包含了多個模型元素,如系統(tǒng)、參與者和用例,并且顯示了這些元素之間的各種關(guān)系,如泛化、關(guān)聯(lián)和依賴。類圖類圖是描述系統(tǒng)中的類,以及各個類之間的關(guān)系的靜態(tài)視圖。能夠讓我們在正確編寫代碼以前對系統(tǒng)有一個全面的認識。類圖是一種模型類型,確切的說,是一種靜態(tài)模型類型。對象圖與類圖極為相似,它是類圖的實例,對象圖顯示類的多個對象實例,而不是實際的類。它描述的不是類之間的關(guān)系,而是對象之間的關(guān)系?;顒訄D描述用例要求所要進行的活動,以及活動間的約束關(guān)系,有利于識別并行活動。能夠演示出系統(tǒng)中哪些地方存在功能,以及這些功能和系統(tǒng)中其他組件的功能如何共同滿足前面使用用例圖建模的商務(wù)需求。UML9種圖圖狀態(tài)圖描述類的對象所有可能的狀態(tài),以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移條件。可以捕獲對象、子系統(tǒng)和系統(tǒng)的生命周期。他們可以告知一個對象可以擁有的狀態(tài),并且事件(如消息的接收、時間的流逝、錯誤、條件變?yōu)檎娴?會怎么隨著時間的推移來影響這些狀態(tài)。一個狀態(tài)圖應(yīng)該連接到所有具有清晰的可標識狀態(tài)和復(fù)雜行為的類;序列圖(順序圖)序列圖是用來顯示你的參與者如何以一系列順序的步驟與系統(tǒng)的對象交互的模型。順序圖可以用來展示對象之間是如何進行交互的。順序圖將顯示的重點放在消息序列上,即強調(diào)消息是如何在對象之間被發(fā)送和接收的。協(xié)作圖和序列圖相似,顯示對象間的動態(tài)合作關(guān)系??梢钥闯墒穷悎D和順序圖的交集,協(xié)作圖建模對象或者角色,以及它們彼此之間是如何通信的。如果強調(diào)時間和順序,則使用序列圖;如果強調(diào)上下級關(guān)系,則選擇協(xié)作圖;這兩種圖合稱為交互圖。構(gòu)件圖(組件圖)描述代碼構(gòu)件的物理結(jié)構(gòu)以及各種構(gòu)建之間的依賴關(guān)系。用來建模軟件的組件及其相互之間的關(guān)系,這些圖由構(gòu)件標記符和構(gòu)件之間的關(guān)系構(gòu)成。在組件圖中,構(gòu)件時軟件單個組成部分,它可以是一個文件,產(chǎn)品、可執(zhí)行文件和腳本等。部署圖(配置圖)是用來建模系統(tǒng)的物理部署。例如計算機和設(shè)備,以及它們之間是如何連接的。部署圖的使用者是開發(fā)人員、系統(tǒng)集成人員和測試人員。UML9種圖圖用例例圖圖::業(yè)業(yè)務(wù)務(wù)建建模模、、需需求求、、測測試試類圖圖::業(yè)業(yè)務(wù)務(wù)建建模模、、分分析析、、設(shè)設(shè)計計對象象圖圖::業(yè)業(yè)務(wù)務(wù)建建模模、、分分析析、、設(shè)設(shè)計計組件件圖圖::設(shè)設(shè)計計部署署圖圖::設(shè)設(shè)計計順序序圖圖::業(yè)業(yè)務(wù)務(wù)建建模模、、分分析析、、設(shè)設(shè)計計協(xié)作作圖圖::業(yè)業(yè)務(wù)務(wù)建建模模、、分分析析、、設(shè)設(shè)計計狀態(tài)態(tài)圖圖::需需求求、、分分析析、、設(shè)設(shè)計計活動動圖圖::業(yè)業(yè)務(wù)務(wù)建建模模、、設(shè)設(shè)計計結(jié)構(gòu)構(gòu)行為為敏捷捷建建模模原原則則::需需要要時時再再添添加加可互互換換可互互換換主要要步步驟驟我們們動動手手做做做做練練習(xí)習(xí)UML幫助助我我們們做做需需求求簡單單了了解解UMLUML在設(shè)設(shè)計計階階段段如如何何發(fā)發(fā)揮揮作作用用主題題UML之用用例例圖圖需求求分分析析中中我我們們?nèi)缛绾魏握砝砗秃统槌橄笙笪椅覀儌儚膹挠糜脩魬裟悄堑玫玫降降牡臉I(yè)業(yè)務(wù)務(wù)描描述述。。用流流程程圖圖描描述述業(yè)業(yè)務(wù)務(wù)流流程程、、用用用用例例圖圖表表達達用用戶戶業(yè)業(yè)務(wù)務(wù)工工作作識別別執(zhí)執(zhí)行行者者執(zhí)行行者者要要點點::系統(tǒng)統(tǒng)外外———必須須和和它它交交互互系統(tǒng)統(tǒng)邊邊界界———直接接與與系系統(tǒng)統(tǒng)交交互互有意意義義的的交交互互———屬于于目目標標系系統(tǒng)統(tǒng)的的責(zé)責(zé)任任任何何事事物物———人、、外外系系統(tǒng)統(tǒng)、、外外部部因因素素、、時時間間識別別執(zhí)執(zhí)行行者者抽象象出出執(zhí)執(zhí)行行者者的的思思路路::誰使使用用了了系系統(tǒng)統(tǒng)的的主主要要功功能能??誰改改變變了了系系統(tǒng)統(tǒng)的的主主要要數(shù)數(shù)據(jù)據(jù)??誰從從系系統(tǒng)統(tǒng)獲獲取取信信息息??誰需需要要系系統(tǒng)統(tǒng)的的支支持持以以完完成成日日常常工工作作任任務(wù)務(wù)??誰負負責(zé)責(zé)維維護護、、管管理理并并保保持持系系統(tǒng)統(tǒng)正正常常運運行行??系統(tǒng)統(tǒng)需需要要應(yīng)應(yīng)付付((處處理理))哪哪些些硬硬件件設(shè)設(shè)備備??系統(tǒng)統(tǒng)需需要要和和哪哪些些外外部部系系統(tǒng)統(tǒng)交交互互??誰((或或什什么么))對對系系統(tǒng)統(tǒng)運運行行產(chǎn)產(chǎn)生生的的結(jié)結(jié)果果感感興興趣趣??有沒沒有有自自動動發(fā)發(fā)生生的的事事件件??識別別執(zhí)執(zhí)行行者者責(zé)任任類類似似或或重重疊疊———抽象象出出執(zhí)執(zhí)行行者者UML之執(zhí)執(zhí)行行者者Actor之間間也也有有繼繼承承關(guān)關(guān)系系。。且且注注意意圖圖形形表表示示。。識別別用用例例用例例的的基基本本定定義義::用例例實實例例是是在在系系統(tǒng)統(tǒng)中中執(zhí)執(zhí)行行的的一一系系列列動動作作,,這這些些動動作作將將生生成成特特定定執(zhí)執(zhí)行行者者可可見見的的價價值值結(jié)結(jié)果果。。一一個個用用例例定定義義一一組組用用例例實實例例。?!狪varJacobson(RUP)通俗俗地地講講::執(zhí)執(zhí)行行者者通通過過系系統(tǒng)統(tǒng)達達到到某某個個有有用用目目標標步驟驟路徑徑目標標識別別用用例例設(shè)計計用用例例要要注注意意以以下下要要點點::價值結(jié)果→有有意義的目標標系統(tǒng)執(zhí)行→價價值結(jié)果由系系統(tǒng)生成執(zhí)行者可見→→業(yè)務(wù)語言,,用戶觀點注意:抽象一一組用例實例例時控制好用用例的粒度識別用例有意義的目標標:√×識別用例用戶觀點而非非系統(tǒng)觀點::用戶觀點系統(tǒng)觀點識別用例用例命名:執(zhí)執(zhí)行者視角動詞((+賓語)狀語定語如:批量修改改登錄記錄編編號識別用例執(zhí)行者使用這這個系統(tǒng)達到到什么目標??語法測試:【執(zhí)行者】使用系統(tǒng)來【用例】用例命名:慎慎用弱動詞、、弱名詞30弱動詞:進行行、使用、復(fù)復(fù)制、加載、、重復(fù)……弱名詞:數(shù)據(jù)據(jù)、報表、表表格、表單、、系統(tǒng)……會掩蓋真正的的業(yè)務(wù)識別用例識別用例討論:幾個登登錄?或注意角色的劃劃分和公共用用例的定義要不把用戶抽抽象成三種,,或者把登錄錄抽象成三種種。識別用例用例的粒度::四輪馬車任何業(yè)務(wù)歸根根到底都可以以看作CURD,但光CURD能為Actor提供價值嗎??CRUD是Create(創(chuàng)建)、Read(讀?。pdate(更新)和Delete(刪除)縮寫寫警惕CURD泛濫!一般要避免全全部使用,要要抽象,公用用的,其它的的不要,但默默認有。識別用例用例的粒度::在四輪馬車車之前盡量細細致另注:多個用用例會操作同同一項數(shù)據(jù),,即對一個數(shù)數(shù)據(jù)項操作用用例未必是同同一個用例識別用例討論:登錄怎怎么處理?((確定用例之之間的關(guān)系))用例有先后或或前提關(guān)系時時不要簡單認認為是簡單的的包含或者是是擴展關(guān)系更進一步的精精度用例圖可以作用用例文檔的總圖,進一步步的精度:有層層次的文檔,文檔中每一句話都都有其價值通過關(guān)系整理理用例——用例的關(guān)系擴展:分離擴擴展路徑包含:提取公公共步驟,便便于復(fù)用泛化:同一業(yè)業(yè)務(wù)目的的不不同技術(shù)實現(xiàn)現(xiàn)大多數(shù)為包含含關(guān)系include
是指用例中的包含關(guān)系,通常發(fā)生在多個用例中,有可以提取出來的公共部分(就象提取公因式一樣),例如UseCaseA中包括了a和b兩個流程,而UseCaseC中包含了c和b兩個流程。為了提高復(fù)用性,可以把b提取出來,形成另一個用例UseCaseB,此時,UseCaseAincludeUseCaseB(表現(xiàn)為一條指向UseCaseB的虛線,箭頭在UseCaseB側(cè)),UseCaseC也includeUseCaseB。因而,當(dāng)有include關(guān)系時,被include的用例通常會被兩個以上的其他用例include(否則就不需要重用,也就不需要提取出來了),用例圖如下:通過關(guān)系整理理用例通過關(guān)系整理理用例——包含關(guān)系的誤誤用extend
則恰好相反。假設(shè)UseCaseA的功能描述為“發(fā)送一條通知”,可是,發(fā)送通知的方式可能有許多種,例如通過郵件發(fā)送、通過短信發(fā)送等。在需求分析階段,可能無法明確到底有多少種方式,在用例分析階段,UseCaseA需要留出擴展接口,然后把已知的發(fā)送方式作為擴展用例給出,例如UseCaseB是“通過短信發(fā)送”,而UseCaseC是“通過郵件發(fā)送”,此時,UseCaseB和UseCaseCextend了UseCaseA,表現(xiàn)為兩根虛線,箭頭指向UseCaseA,用例圖如下:通過關(guān)系整理理用例如果兩個用例之間,一個要調(diào)用另一個時,怎么辦?”(有可能是混淆了用例和模塊的關(guān)系),那么,首先要區(qū)分概念,用例就是用例,用例不是模塊,也不是組件(雖然一個用例能發(fā)展成為“一個或多個”模塊或組件);其次,從用例分析的角度來看,如果用例A確實要調(diào)用到用例B,那么,可以進一步分析:A是調(diào)用了B的所有流程呢,還是其中一部分流程?
(1)如果是調(diào)用了一部分,此時可以把B中的那部分流程提取出來,形成用例C,然后A和B都includeC;
(2)如果是調(diào)用了所有流程,那么,A直接includeB即可;
(3)如果A沒有調(diào)用B中的任何流程…那自然不用畫兩者的關(guān)系了通過關(guān)系整理理用例通過關(guān)系整理理用例用例間不存在在“角色與用用例”的關(guān)系系!泛化關(guān)系:子用例和父用例相似,但表現(xiàn)出更特別的行為;子用例將繼承父用例的所有結(jié)構(gòu)、行為和關(guān)系。子用例可以使用父用例的一段行為,也可以重載它。父用例通常是抽象的。在實際應(yīng)用中很少使用泛化關(guān)系,子用例中的特殊行為都可以作為父用例中的備選流存在通過關(guān)系整理理用例書寫用例文檔檔——用例的內(nèi)容用例編號:用用例名執(zhí)行者前置條件后置條件涉眾利益基本路徑1……XXXX2……XXXX3……XXXX擴展2a.……XXXX2a1.………XXXX字段列表業(yè)務(wù)規(guī)則非功能需求設(shè)計約束待解決問題書寫用例文檔檔——涉眾利益利益的沖突銀行的用戶的法律的誰的?書寫用例文檔檔——涉眾利益誰關(guān)心這個系系統(tǒng),會涉及到他的的什么利益?對于同一件事事情,不同的人看的的視角可能各各不相同,而不同的視角角則是基于不不同的利益。。探索系統(tǒng)的需需求,就是探索不同同的涉眾之間間的利益的最最佳平衡點。。涉眾的位置不不同,利益會有所不不同,開發(fā)人員要從從最前排的涉涉眾(老大)的利益為出發(fā)發(fā)點,否則會影響需需求必須明確確,涉眾的利益是是不會輕易改改變的,穩(wěn)定的利益關(guān)關(guān)系書寫用例文檔檔——路徑交互步驟驟的描述只寫“可觀測測的”使用主動語句句句子必須以執(zhí)執(zhí)行者或系統(tǒng)統(tǒng)作為主語每一句都要朝朝目標邁進分支和循環(huán)不要涉及界面面細節(jié)書寫用例文檔檔——字段列表+→數(shù)據(jù)序列[]→可選項{}*→多個{|||}→→可能取值A(chǔ)=B→把B的結(jié)構(gòu)賦給A可以用自然語語言,也可以以用表達式書寫用例文檔檔——字段列表注冊信息=公司名+聯(lián)系人+電話+{聯(lián)系地址}*聯(lián)系地址=州+城市+街道+郵編保存信息=注冊信息+注冊時間客房狀態(tài)={空閑|已預(yù)定|占用|維修中}書寫用例文檔檔——可用性系統(tǒng)應(yīng)易于使使用第一次使用時時30分鐘內(nèi)能學(xué)會會添加員工((任務(wù)時間))5次擊鍵能完成成客人入住服服務(wù),不需要要使用鼠標((操作次數(shù)))80%的用戶認為系系統(tǒng)易學(xué),并并且使用效率率高(用戶調(diào)調(diào)查)系統(tǒng)界面應(yīng)如如XX附件所示的屏屏幕圖像(小小心)可用性需求的的表達√×?書寫用例的書書面格式其他簡單視圖圖活動圖之流程圖其他簡單視圖圖活動圖之泳道圖泳道用于對于于多個用戶一一起完成一個個過程,非常常有用。其他簡單視圖圖狀態(tài)圖我們動手做做做練習(xí)UML幫助我們做需需求簡單了解UMLUML在設(shè)計階段如如何發(fā)揮作用用主題系統(tǒng)詳細設(shè)計計主要目的詳細設(shè)計的目目的是在具體體編寫代碼前前,在代碼結(jié)結(jié)構(gòu)層面上的的一次設(shè)計,,構(gòu)層面的意意思是只要表表達出代碼的的主要屬性和和方法命名就就可以,不必必編寫方法體體代碼。將系統(tǒng)架構(gòu)實實現(xiàn)的功能所所涉及到的代代碼結(jié)構(gòu)都設(shè)設(shè)計出來,這這樣的做法能能夠幫助開發(fā)發(fā)人員明確開開發(fā)思路,且且能夠較為清清楚的了解系系統(tǒng)全局結(jié)構(gòu)構(gòu),作出相應(yīng)應(yīng)的調(diào)整,避避免代碼開發(fā)發(fā)過程中再去去調(diào)整代碼結(jié)結(jié)構(gòu)造成的開開發(fā)資源的浪浪費。另一個主要的的目的是,將將系統(tǒng)的代碼碼結(jié)構(gòu)清晰、、直觀的描述述成文,便于于其他開發(fā)人人員、維護人人員對系統(tǒng)的的擴展與維護護。Uml語言類圖基本本畫法1.類設(shè)計簡單的的講,就是創(chuàng)創(chuàng)建一個類然然后定義類中中的屬性和方方法。2.類間關(guān)系的設(shè)設(shè)計,包括兩兩個層次包關(guān)關(guān)系設(shè)計及類類關(guān)系設(shè)計,,兩個層次間間可以認為是是總與分的關(guān)關(guān)系。具體的的做法,根據(jù)據(jù)各類間的應(yīng)應(yīng)用或調(diào)用的的方式不同明明確其之間的的關(guān)系,類間間關(guān)系一般分分成關(guān)聯(lián)、依依賴、累計關(guān)關(guān)系。3.關(guān)系確定規(guī)則則見以下實例例(包關(guān)系與與類關(guān)系基本本一致包關(guān)系系有包中類關(guān)關(guān)系決定)類中常常見的的繼承承表達達1繼承通通過指指向超超類的的一條條閉合合的,,單箭箭頭的的實線線表示示類中常常見的的繼承承表達達2一個使使用樹樹形記記號的的繼承承實例例類中常常見的的接口口與實實現(xiàn)表表達Professor類和Student類實現(xiàn)現(xiàn)Person接口的的類圖圖實例例類中常常見的的關(guān)聯(lián)聯(lián)關(guān)系系表達達兩個類類間的的雙向向關(guān)聯(lián)聯(lián)一個類類知道道另一一個類類的屬屬性和和方法法,前前者具具有取取得后后的方方法,,則形形成了了單向向關(guān)聯(lián)聯(lián),反反之亦亦然。。類中常常見的的關(guān)聯(lián)聯(lián)關(guān)系系表達達兩個類類間的的單向向關(guān)聯(lián)聯(lián)單向關(guān)關(guān)聯(lián)關(guān)關(guān)系,,前者者能向向后者者發(fā)送送消息息取得得他的的屬性性類中常常見的的關(guān)聯(lián)聯(lián)關(guān)系系表達達描述兩兩個或或多個個類的的結(jié)構(gòu)構(gòu)性關(guān)關(guān)系。。一個完完整的的關(guān)聯(lián)聯(lián)定義義包含含三部部分,,分別別是類類之間間的關(guān)關(guān)聯(lián)直直線和和兩個個關(guān)聯(lián)聯(lián)端點點主要特特性::角色色,多多重性性,導(dǎo)導(dǎo)航性性角色::當(dāng)一一個類類處于于關(guān)聯(lián)聯(lián)的某某一端端時,,該類類就在在這個個關(guān)系系中扮扮演了了一個個特定定的角角色;;角色色是關(guān)關(guān)聯(lián)中中靠近近它的的一端端的類類對另另外一一端的的類呈呈現(xiàn)的的職責(zé)責(zé)。類中常常見的的關(guān)聯(lián)聯(lián)關(guān)系系表達達多重性性:關(guān)聯(lián)角角色的的多重重性是是說明明一個個關(guān)聯(lián)聯(lián)的實實例中中有多多少個個相互互連接接的對對象。。導(dǎo)航性性:給給定兩兩個類類的關(guān)關(guān)聯(lián),,從一一個類類的對對象能能夠?qū)?dǎo)航到到另一一個類類的對對象,,導(dǎo)航航可以以是雙雙向的的。ExactlyoneZeroormoreOneormoreZeroorOneSpecifiedrangeMultiple,disjointranges10..*1..*0..12..42,4..6類中常常見的的關(guān)聯(lián)聯(lián)關(guān)系系表達達[具體表現(xiàn)]關(guān)聯(lián)關(guān)系是使用實例變量來實現(xiàn)[現(xiàn)實例子]比如客戶和訂單,每個訂單對應(yīng)特定的客戶,每個客戶對應(yīng)一些特定的訂單;再例如公司和員工,每個公司對應(yīng)一些特定的員工,每個員工對應(yīng)一特定的公司[代碼表現(xiàn)]publicclassEmployee{publicvoidstartWorking(){}}publicclassCompany{privateEmployeeemployee;publicEmployeegetEmployee(){returnemployee;}publicvoidsetEmployee(Employeeemployee){this.employee=employee;}//公司運作
publicvoidrun(){employee.startWorking();}}類中常常見的的依賴賴關(guān)系系表達達方式式依賴關(guān)關(guān)系中中flight中沒有有customer屬性,,因此此要用用其他他方法法查找找coustomer。如果果customer是全局局的((包含含靜態(tài)態(tài)方法法),,則flight知道他他的存存在。。如果果coustomer作為參參數(shù)傳傳遞到到flight的方法法中,,則flight能夠引引用到到它,,最后后,如如果customer事例化化為flight方法中中的本本地變變量,,則flight就引用用到了了它的的存在在,在在依賴賴關(guān)系系中,,必須須采用用三種種方法法之一一類中常常見的的關(guān)聯(lián)聯(lián)關(guān)系系表達達[具體表現(xiàn)]依賴關(guān)系表現(xiàn)在局部變量,方法的參數(shù),以及對靜態(tài)方法的調(diào)用[現(xiàn)實例子]比如說你要去擰螺絲,你是不是要借助(也就是依賴)螺絲刀(Screwdriver)來幫助你完成擰螺絲(screw)的工作[代碼表現(xiàn)]publicclassPerson{
/**擰螺絲*/
publicvoidscrew(Screwdriverscrewdriver){
screwdriver.screw();
}
}
類中常常見的的聚合合關(guān)系系和組組合關(guān)關(guān)系類中常常見的的聚合合關(guān)系系和組組合關(guān)關(guān)系聚合::指的的是整整體與與部分分的關(guān)關(guān)系。。通常常在定定義一一個整整體類類后,,再去去分析析這個個整體體類的的組成成結(jié)構(gòu)構(gòu)。從從而找找出一一些組組成類類,該該整體體類和和組成成類之之間就就形成成了聚聚合關(guān)關(guān)系。。例如如一個個航母母編隊隊包括括??湛漳概炁灐Ⅱ?qū)驅(qū)護艦艦艇、、艦載載飛機機及核核動力力攻擊擊潛艇艇等。。需求求描述述中““包含含”、、“組組成””、““分為為…部分””等詞詞常意意味著著聚合合關(guān)系系。組組合::也表表示類類之間間整體體和部部分的的關(guān)系系,但但是組組合關(guān)關(guān)系中中部分分和整整體具具有統(tǒng)統(tǒng)一的的生存存期。。一旦旦整體體對象象不存存在,,部分分對象象也將將不存存在。。部分分對象象與整整體對對象之之間具具有共共生死死的關(guān)關(guān)系。。聚聚合合和組組合的的區(qū)別別在于于:聚聚合關(guān)關(guān)系是是“has-a””關(guān)系系,,組組合合關(guān)關(guān)系系是是““contains-a””關(guān)系系;;聚聚合合關(guān)關(guān)系系表表示示整整體體與與部部分分的的關(guān)關(guān)系系比比較較弱弱,,而而組組合合比比較較強強;;聚聚合合關(guān)關(guān)系系中中代代表表部部分分事事物物的的對對象象與與代代表表聚聚合合事事物物的的對對象象的的生生存存期期無無關(guān)關(guān),,一一旦旦刪刪除除了了聚聚合合對對象象不不一一定定就就刪刪除除了了代代表表部部分分事事物物的的對對象象。。組組合合中中一一旦旦刪刪除除了了組組合合對對象象,,同同時時也也就就刪刪除除了了代代表表部部分分事事物物的的對對象象。。類中中常常見見的的聚聚合合關(guān)關(guān)系系和和組組合合關(guān)關(guān)系系我們們用用淺淺顯顯的的例例子子來來說說明明聚聚合合和和組組合合的的區(qū)區(qū)別別。?!啊皣鴩破萍壹彝鐾觥薄保?,國國滅滅了了,,家家自自然然也也沒沒有有了了,,““國國””和和““家家””顯顯然然也也是是組組合合關(guān)關(guān)系系。。而而相相反反的的,,計計算算機機和和它它的的外外設(shè)設(shè)之之間間就就是是聚聚合合關(guān)關(guān)系系,,因因為為它它們們之之間間的的關(guān)關(guān)系系相相對對松松散散,,計計算算機機沒沒了了,,外外設(shè)設(shè)還還可可以以獨獨立立存存在在,,還還可可以以接接在在別別的的計計算算機機上上。。在在聚聚合合關(guān)關(guān)系系中中,,部部分分可可以以獨獨立立于于聚聚合合而而存存在在,,部部分分的的所所有有權(quán)權(quán)也也可可以以由由幾幾個個聚聚合合來來共共享享,,比比如如打打印印機機就就可可以以在在辦辦公公室室內(nèi)內(nèi)被被廣廣大大同同事事共共用用關(guān)關(guān)聯(lián)聯(lián)和和聚聚合合的的區(qū)區(qū)別別主主要要在在語語義義上上,,關(guān)關(guān)聯(lián)聯(lián)的的兩兩個個對對象象之之間間一一般般是是平平等等的的,,例例如如你你是是我我的的朋朋友友,,聚聚合合則則一一般般不不是是平平等等的的,,例例如如一一個個公公司司包包含含了了很很多多員員工工,,其其實實現(xiàn)現(xiàn)上上是是差差不不多多的的。。聚聚合合和和組組合合的的區(qū)區(qū)別別則則在在語語義義和和實實現(xiàn)現(xiàn)上上都都有有差差別別,,組組合合的的兩兩個個對對象象之之間間其其生生命命期期有有很很大大的的關(guān)關(guān)聯(lián)聯(lián),,被被
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球不銹鋼單刃剃須刀片行業(yè)調(diào)研及趨勢分析報告
- 幼兒繪本講述與演繹經(jīng)典幼兒繪本介紹講解
- 2025室內(nèi)植物出租合同范文
- 全新員工合作協(xié)議書合同下載
- 收購合同范本
- 軟件系統(tǒng)維護服務(wù)合同
- 指標租賃合同年
- 2025合同模板信息服務(wù)部門的組織結(jié)構(gòu)范本
- 建筑工程改造施工合同范本
- 提升個人品牌價值
- Unit 6 Beautiful landscapes Integration 說課稿 -2024-2025學(xué)年譯林版英語七年級下冊001
- 2024年常德職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫
- 【譯林】九下英語單詞默寫表
- IEC 62368-1標準解讀-中文
- 15J403-1-樓梯欄桿欄板(一)
- 2024年發(fā)電廠交接班管理制度(二篇)
- 《數(shù)學(xué)課程標準》義務(wù)教育2022年修訂版(原版)
- 各種標本采集的技術(shù)-痰標本的采集(護理技術(shù))
- 實驗室的設(shè)計規(guī)劃
- 2024-2030年中國假睫毛行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
評論
0/150
提交評論