[UML]學習筆記-類別圖型(Class Diagrams):結合關係-3

文章推薦指數: 80 %
投票人數:10人

繼承(extends). 類別的繼承關係,使用實線以及空心的三角形組成的箭頭線來表示,如下: 實作( ... 跳到主要內容 [UML]學習筆記-類別圖型(ClassDiagrams):結合關係-3 2月26,2019 繼承(extends) 類別的繼承關係,使用實線以及空心的三角形組成的箭頭線來表示,如下: 實作(implements) 當一個類別實作某個interface時。

使用虛線及空心的三角形組成的箭頭線來表示,如下: 結合/關聯(Association) 類別和類別之間的關聯都可以稱為「結合,Association」,使用結合可以表示類別之間的 -擁有或是使用的關係(ownoruse) -抽象結合角色(線上客戶與系統管理員) -結合的數量(如一台車子對上四個輪子) -結合的方向(使用者與被使用者) 通常使用實線的箭頭來表示(->) 聚合(Aggregation) 聚合的關係建立在整體/成員的關係上面。

整體必須擁有成員才會具有意義。

一台車必須有引擎、車門、輪子才可以稱為一台車,當這三個不存在 車也會消失,但反過來說,車子(A)不在,輪子車門引擎(B)卻還會存在。

符號是空菱形加上實線箭號。

上述的A與B關係為弱依賴。

組合(Composition) 可視為特殊狀態的Aggregation,組合可以看成雙向的聚合。

整體和成員的關係是相互依賴的。

符號為實心菱形加上實線箭號。

在兩邊類別的關係為強依賴,一邊消失,另外一邊也跟著消失。

有課程才會有學生,沒有課程就沒有學生,反過來說也是一樣。

分享 取得連結 Facebook Twitter Pinterest 以電子郵件傳送 其他應用程式 標籤 IT-Study-Notes 標籤: IT-Study-Notes 分享 取得連結 Facebook Twitter Pinterest 以電子郵件傳送 其他應用程式 留言 這個網誌中的熱門文章 [UML]學習筆記-循序圖型(SequenceDiagrams)-8 3月12,2019 定義如果說之前提到的物件圖型是描述一個時間點的系統運作的樣子(memorysnapshot),那麼循序圖型就是表示系統要做某件事情的那段時間內,運作的樣子(一個連續的過程)。

循序圖的重點是在描述一件事情,以及系統要完成這件事情的一連串動作,也是一種軟體系統運作的動態圖型。

上圖就是一個循序圖型,而有下圖的解析。

循序圖會以做的動作(任務)出發,並列出所以參與到的物件/類別。

接下來由上到下就是動作與物件彼此間的順序運作關係。

下圖可以清楚展示出物件與類別/任務的互動關係。

循序圖組成的元素有以下元素組成-物件節點(ObjectNode)-生命線(Lifeline)-活化區塊(ActivationBox)-訊息(Message)-內部訊息-解構物件-迴圈要建構循序圖,必須要確定要描述的任務為何。

確定任務後,就要列出任務會用到的物件(即為物件節點)。

物件節點*****************************************************publicclassTestThermos{    publicstaticvoidmain(String[]args){        HotWaterContainerh=newHotWaterContainer(2);        CoolWaterContainerc=newCoolWaterContainer(50);        ThermosGuig=newThermosGui();        Thermost=newThermos(h,c,g);    }}*******************************************************上面的程式片段就是在描述一件任務,那件任務就是模擬一個冷熱水開飲機。

一開始先畫出類別和物件的節點,可以很清楚地分出類別和物件的區別。

最前面要是為一個主程式或是匿名物件的話可以用Usecasediagram的小人圖來代替。

分享 取得連結 Facebook Twitter Pinterest 以電子郵件傳送 其他應用程式 張貼留言 閱讀完整內容 [UML]學習筆記-活動圖型(ActivityDiagrams)-11(全系列結束) 3月18,2019 定義活動圖型是用來顯示軟體系統中特定的活動情形,和其他圖型最大的差異,就是它專注在「活動」上面,而不會去理會物件、類別相關的問題。

因此,活動圖型只關心活動的開始、過程、與結束,使用一般流程圖的方式來繪製就可以了。

譬如一個偵測溫度到自動加溫的活動流程。

活動圖型的用途針對循序圖型中比較複雜的訊息傳遞加以說明顯示狀態圖裡面較複雜的狀態轉換事件說明合作圖型裡面的訊息圖型組成的元素活動圖型由下列的基本元素組成。

狀態與活動(StateandActivity)轉換(Transition)分支(Branch)分歧與結合(ForkandJoin)水道(Swimlane)狀態與活動狀態元素其實和狀態圖型中的開始與結束狀態是相同的,而活動則是圓角矩形來表示。

上圖如果轉成程式碼會是下面的樣子轉換轉換主要是一個箭號,用來連結活動圖型中的狀態與活動。

只有在分支出來的箭頭才會在上面加上說明或是條件。

分支分支會根據判斷式而導向不同的活動,分支後的轉換就需要加上說明或是條件。

水道活動圖型中,活動流程可能很單純在一個方法或類別中就完成了,但是也有可能是由不同的角色去一起完成流程。

下圖是一個聊天的程式。

圖中,以Mary發訊息給[ChatServer]的流程來說,就需要使用不同的「水道」來區分不同角色所負責的活動。

水道也可以使用行為者標記來表示角色,這樣可以讓活動圖型更加清楚。

像下圖就是是客戶去購買產品的活動流程。

裡面的角色就包含了[客戶]、[服務中心]、以及[訂單系統]分歧與結合以聊天程式的客戶端來說,其實有同時執行兩個執行緒,一個是sender,用來傳送訊息,一個是receiver,用來接收chatserver回傳的訊息,因此可以使用Fork來顯示這種同時進行的活動在圖中,分岐的表示是使用一條粗黑線來分成兩個執行緒所做的事情。

結合的部分,就是要把分歧的活動再次結合成一個活動的表示方式。

上圖的計算機就是一個結合的典型例子,它裏頭的活動運作的加減乘除活動之後,均會顯示在一個統一的活動(螢幕顯示)上。

程式碼的 分享 取得連結 Facebook Twitter Pinterest 以電子郵件傳送 其他應用程式 張貼留言 閱讀完整內容 [UML]學習筆記-狀態圖型(StatechartDiagrams)-10 3月15,2019 定義狀態圖型主要會應用到軟體系統中,某項任務的生命週期。

任務的生命週期中,會有不同的狀態,藉由不同狀態的檢視,可以去檢查任務是否有未考慮的情況或是邏輯的謬誤。

上圖就是表示一個執行緒的生命週期,還有它本身的狀態變化。

另外,狀態的數量必須是有限的。

組成元素狀態節點(Statenode)狀態圖型主要使用兩個特定的符號來表示生命週期的開始與結束。

初始狀態(InitialState),使用實心黑色的圓形。

結束狀態(FinalState),使用實心黑色的圓形,外層再包一圈空心的圓形。

除了開始和結束外,狀態節點就是表示生命週期的某一種狀態,它的節點內容包含兩個部分。

名稱區格(NameCompartment)內部轉換區格(InternalTransitionCompartment)通常內部轉換區格會因簡化而省略。

下圖就是含有內部轉換區格的狀態圖型接下來仔細解釋名稱區格以及內部轉換區格的定義名稱區格名稱區格的文字表示生命週期中的一個狀態,UML的規定並非必填,如果沒有填寫就稱為匿名狀態。

內部轉換區格內部轉換區格主要用來表示狀態節點內部的轉換狀況,這個地方使用四個標籤來說明進入狀態節點後到離開狀態節點時,狀態節點內會做哪些動作。

entry:進入狀態節點的動作exit:離開狀態節點時的動作do:停留在此狀態節點時執行的動作自訂標籤:使用下列格式來自訂標籤與動作其實跟其他標籤格式差不多,除了標籤名稱外,就是有參數可以去填寫。

轉換(Transition)在狀態圖型中,兩個狀態節點間的標示就稱為「轉換」,用來表示狀態節點間如何轉換過去的。

轉換標示的格式如下。

事件名稱:通常會是物件/類別的方法名稱參數:可選擇性的宣告,就是傳遞給事件的參數條件:可選擇性地宣告,用來表示狀態轉換的條件這邊用個修改紀錄的的狀態圖來做例子。

從這個例子可以看到[updaterecord]的狀態可以經過update的事件後,來到達下一個狀態[recordupdated]子狀態(Sub-State)從之前開飲機的例子來說,狀態圖可以如下圖。

分享 取得連結 Facebook Twitter Pinterest 以電子郵件傳送 其他應用程式 張貼留言 閱讀完整內容 封存 2020 5 十二月 2 十一月 1 一月 2 2019 19 十月 2 六月 1 五月 2 三月 9 二月 4 [UML]學習筆記-類別圖型(ClassDiagrams):結合關係-3 [UML]學習筆記-類別圖型(ClassDiagrams):類別節點-2 [UML]學習筆記-概論-1 關於遊戲成癮的五大元素與戒除的三個心法 一月 1 2018 15 十二月 3 十一月 4 十月 2 八月 1 七月 2 六月 2 三月 1 2016 3 十月 1 九月 1 八月 1 2015 2 十月 1 九月 1 2013 3 十一月 1 九月 1 八月 1 2012 5 十二月 1 十一月 1 九月 1 七月 1 五月 1 2011 13 十二月 1 八月 3 六月 1 五月 2 四月 2 三月 2 一月 2 2010 12 十月 2 八月 3 七月 4 六月 1 五月 1 二月 1 2009 29 十一月 1 十月 1 九月 6 八月 3 七月 3 六月 5 四月 2 三月 2 二月 5 一月 1 2008 42 十二月 1 十一月 2 十月 4 九月 2 八月 3 七月 5 六月 4 四月 2 三月 6 二月 2 一月 11 2007 75 十二月 7 十一月 10 十月 15 九月 7 八月 3 七月 12 六月 7 五月 4 四月 7 三月 1 一月 2 顯示更多 顯示較少 標籤 Chinese Comics Damnwretch Drama Englishlearning Fitness Friends Games Humanbeings InformationTips IT-Study-Notes Languages Mathematics MusicVideo Personal Pet Politics Programming Reflectionsonmybooks Thoughts 顯示更多 顯示較少 檢舉濫用情形



請為這篇文章評分?