日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UML造型——使用EA时序图工具的开发实践和经验

發(fā)布時間:2023/11/29 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UML造型——使用EA时序图工具的开发实践和经验 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? ? ??Enterprise Architect(下面簡稱EA)是一款基于OMG UML的可視化模型與設計工具。提供了對軟件系統(tǒng)的設計和構(gòu)建、業(yè)務流程建模和基于領(lǐng)域建模的支持,被企業(yè)和組織不僅應用于對系統(tǒng)的建模,還用于推進模型在整個應用程序開發(fā)周期中實現(xiàn)。


? ? ? ? 在EA工具建模平臺上。提供例如以下經(jīng)常使用設計模型:

  • Business Process ? 業(yè)務流程模型
  • Requirements ? 需求分析模型
  • Use Case ? ? ? 用例模型
  • Domain Model ? ?領(lǐng)域模型
  • Class ? ? ? ? ? ?類設計模型
  • Database ? ? ? ?數(shù)據(jù)庫設計模型
  • Component ? ? ?組件模型
  • Deployment ? ? ?部署模型
  • Testing ? ? ? ? ?測試模型
  • Maintenance ? ? 維護模型
  • Project Management 項目管理模型
  • User Interface ? ? 用戶接口模型

? ? ? ?對于現(xiàn)階段我們能用到的最多的就是類設計模型、數(shù)據(jù)庫設計模型、用例設計模型、組件模型和部署模型。我們能夠依據(jù)自己的須要選擇所要創(chuàng)建的模型。當然假設不選或選錯了在后期還能夠進行更改所以這一步是無關(guān)緊要的。本文重點介紹基于類設計模型的時序圖設計實踐。

? ? ? ? 序列圖主要用于依照交互發(fā)生的一系列順序。顯示對象之間的這些交互。非常象類圖,開發(fā)人員一般覺得序列圖僅僅對他們有意義。然而,一個組織的業(yè)務人員會發(fā)現(xiàn),序列圖顯示不同的業(yè)務對象怎樣交互。對于交流當前業(yè)務怎樣進行非常實用。除記錄組織的當前事件外。一個業(yè)務級的序列圖能被當作一個需求文件使用,為實現(xiàn)一個未來系統(tǒng)傳遞需求。在項目的需求階段。分析師能通過提供一個更加正式層次的表達,把用例帶入下一層次。那種情況下,用例經(jīng)常被細化為一個或者很多其它的序列圖。

? ? ? ??組織的技術(shù)人員能發(fā)現(xiàn),序列圖在記錄一個未來系統(tǒng)的行為應該怎樣表現(xiàn)中,很實用。在設計階段,架構(gòu)師和開發(fā)人員能使用圖,挖掘出系統(tǒng)對象間的交互,這樣充實整個系統(tǒng)設計。

? ? ? ??序列圖的主要用途之中的一個,是把用例表達的需求,轉(zhuǎn)化為進一步、更加正式層次的精細表達。

用例經(jīng)常被細化為一個或者很多其它的序列圖。序列圖除了在設計新系統(tǒng)方面的用途外,它們還能用來記錄一個存在系統(tǒng)(稱它為“遺產(chǎn)”)的對象如今怎樣交互。當把這個系統(tǒng)移交給還有一個人或組織時。這個文檔非常實用。


? ? ? ??序列圖的主要目的是定義事件序列。產(chǎn)生一些希望的輸出。重點不是消息本身,而是消息產(chǎn)生的順序。只是,大多數(shù)序列圖會表示一個系統(tǒng)的對象之間傳遞的什么消息,以及它們發(fā)生的順序。

圖依照水平和垂直的維度傳遞信息:垂直維度從上而下表示消息/調(diào)用發(fā)生的時間序列,并且水平維度從左到右表示消息發(fā)送到的對象實例。



? ? ? ? 本實踐軟件項目中。已經(jīng)完畢用例模型(圖中Use Case Model部分)設計。以“流程全生命周期管理”用例為例進行深入設計。

? ? ? ? 第一步:在類模型(圖中Class Model)中加入包“Add a Package”,命名為“流程管理”。例如以下圖1所看到的,建立“流程管理”包。并同一時候生成“流程管理”用例圖。

? ? ? ??第二步:打開“流程管理”用例圖,畫“流程全生命周期管理”用例。

? ? ? ? 放置序列圖的位置跟一般的圖形不大一樣,并非放置在特定的"包"(Package)中。通常。序列圖是表達對象怎樣合作。進而來完畢某一個用例的任務的。因此,序列圖似乎要放在用例其中才合理。所以,我們先到上一步生成“流程管理”用例圖中畫出須要細化的用例。

? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖1

? ? ? ??第三步:在“流程全生命周期管理”用例里,創(chuàng)建類模型圖和時序圖,例如以下圖2所看到的過程:

? ? ? ??(1)在“流程全生命周期管理”用例圖示中,點擊鼠標右鍵,彈出(2)窗體。

? ? ? ??(2)選擇“Add”。彈出(3)窗體;

? ? ? ??(3)選擇“Add Diagram...”。

? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖2

? ? ? ? 結(jié)果如圖3所看到的,形成“流程全生命周期管理”類圖和時序圖。

? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖3

? ? ? ??第四步:在類模型圖中創(chuàng)建類及其屬性(Attributes...)和方法(Operation...)

? ? ? ? 例如以下圖4所看到的,拖拽Class到類圖(Class Diagram)設計窗口中,雙擊或右擊選擇屬性。在彈出的對話框中的常規(guī)選項卡中加入信息。當中名稱“流程模型管理列表”為類名。構(gòu)造類型能夠選擇此類是窗口類還是邊界類還是業(yè)務類、實體類等等,本例中選擇為“form”。可見性為類的可見性分別可設為public、private、protected。階段和版本依據(jù)自己的須要設置。備注為給該類加入的備注說明。選擇編譯的語言以方便生成源碼。點擊具體信息選項卡,能夠向類中加入屬性、方法及方法的參數(shù)和相關(guān)說明。

? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖4

? ? ? ??第五步:為類加入屬性和方法

? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖5

? ? ? ??第六步:畫時序圖

? ? ? ? 在Project Browser窗體中,雙擊打開“流程全生命周期管理”時序圖窗體,Toolbox窗體中有例如以下組件:

  • Actor:角色/運行者,通經(jīng)常使用于用例場景圖中,在描寫敘述用戶交互時表示當前用戶/操作者。

    ?

  • Lifeline:生命線,最經(jīng)常使用。比如系統(tǒng)、子系統(tǒng)、崗位角色、模塊、類。當畫一個序列圖的時候,放置生命線符號元件。橫跨圖的頂部。生命線表示序列中。建模的角色或?qū)ο髮嵗?/li>
  • Boundary、Control、Entity是三種特殊的生命線對象類型,通常一起使用(MVC模式、控制模式):
  • Boundary:邊界對象,剛開始學習的人用得少,在MVC模式、控制模式、需求分析過渡到系統(tǒng)設計中用得多些,可用于表示交互界面、子系統(tǒng)。

  • Control:控制對象。用于表示業(yè)務邏輯、分工協(xié)調(diào)的職責對象,採用控制模式分析設計時用得多。
  • Entity:實體對象。用于表示須要永久保存或較長生命期的數(shù)據(jù)對象。比如票據(jù)、文件、數(shù)據(jù)庫(通常不直接說數(shù)據(jù)庫等技術(shù)實現(xiàn)方式,而說邏輯意義的名稱)。
  • Fragment:片段,表示某一局部序列圖單元。比如條件分支、循環(huán)、子圖或子圖鏈接,后者可用于序列圖分層建模。
  • EndPoint:結(jié)束點,表示流程退出、異常退出、子圖結(jié)束,一般與“Diagram Gate”搭配使用。
  • Diagram Gate:圖入口,表示進入序列圖的一個入口。

    用于在子序列圖中表示是在什么情況下由上一級序列圖進來的

? ? ? ? (Interaction Relationships)消息:為了顯示一個對象(比如。生命線)傳遞一個消息給另外一個對象,你畫一條線指向接收對象,包含一個實心箭頭(假設是一個同步調(diào)用操作)或一個棍形箭頭(假設是一個異步訊號)。消息/方法名字放置在帶箭頭的線上面。正在被傳遞給接收對象的消息,表示接收對象的類實現(xiàn)的一個操作/方法。

1、拖拽Actor到圖板中。命名為“流程管理者”。再從Project Browser樹形文件夾中,拖拽“流程模型管理列表”到圖板中,形成例如以下圖6所看到的效果。


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖6

? ? ? ? 或者直接點擊工具箱中的生命線(Lifeline)命令。在圖上分別加入多個生命線,輸入生命線名稱后大致調(diào)整各個生命線的位置。

? ? ? ??2、通過消息來表示圖中對象間的互動關(guān)系,在圖7中。點擊工具箱中的消息箭頭命令,在一個生命線虛線上按下鼠標左鍵。拖動到還有一個生命線虛線上再松開鼠標左鍵,然后雙擊消息線就能夠輸入消息名稱了。


? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖7


? ? ? ? 按本案例。先定義出類的順序,則是選擇消息名稱,例如以下圖8所看到的。

圖中:初始化默認列表()、流程模型新增()、選中流程()等方法,都是在類“流程模型管理列表”定義好的,在這里直接選用。也能夠點擊button“Operations”。現(xiàn)添加。

? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖8


? ? ? ??第七步:序列圖分層

? ? ? ? 使用序列圖分層技術(shù)能夠讓一個圖不至于太復雜,在不同層次的序列圖中表達不同級別的細節(jié)。在上圖中。雙擊交互引用框“具體做什么”就能進入子序列圖,在子序列圖中表達更具體的內(nèi)容。

? ? ? ??操作方法:創(chuàng)建單獨的序列圖(子序列圖,比例如以下圖“流程模型管理列表”時序圖)。在模型樹上將“流程模型管理列表”子序列圖節(jié)點拖到當前序列圖上,在彈出的對話框中選擇第一個類型“交互引用框”:

? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖9

? ? ? ??完畢鏈接子時序圖操作時,在當前時序圖上產(chǎn)生圖示。

? ? ? ? 終于效果例如以下圖10所看到的,點擊其所鏈接的時序圖“ref/流程模型管理列表”的圖標。則展示出圖11,流程模型管理列表內(nèi)部的時序圖,展現(xiàn)其分層逐級深入的效果。

? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖10

? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖11

? ? ? ? 使用UML經(jīng)驗與愿景。

? ? ? ? 序列圖把人當作系統(tǒng)。

軟件開發(fā)的目的就是要改進當前的現(xiàn)實,可能是引進一個新系統(tǒng),也可能是升級現(xiàn)有的系統(tǒng)。序列圖強迫思考動作背后的目的。當中,消息代表責任分配而不是數(shù)據(jù)流動。

? ? ? ? 使用EA進行UML建模。是個非常好的選擇。在實際工作中,首先保證開發(fā)完整的用例模型。用以確定需求范圍和規(guī)劃目標;其余的模型,依據(jù)工作需求,設計到能夠接受的粒度,假設資源同意,則按規(guī)范進行設計更好。

? ? ? ? 在開發(fā)時序圖時。盡量要逐級精細、深入。反過來。假設編碼進行不順暢。則應再回到時序圖開發(fā)過程中。逐步求解,再深入剖析。使開發(fā)代碼盡量簡潔、邏輯清晰。假設其它目的,故弄玄虛,不在此討論。

? ? ? ? 初次使用EA工具,不足之處在所難免,歡迎反饋討論。


參考:

維基百科.Enterprise Architect

UML建模--序列圖建模技巧

百度文庫.EA教程

《軟件方法》UMLChina 潘加宇 2012.11

UML建模—EA的使用(一) EA基本設置及類的設計?周響 2013.4

《UML與Enterprise Architect 7.5團隊開發(fā)實務手冊》3.2.5 在EA中繪制序列圖??賴信仁 電子工業(yè)出版社 2010.3

軟件項目開發(fā)過程中需要業(yè)務建模用例圖的做法 小勇偉 2015.3

版權(quán)聲明:本文博客原創(chuàng)文章,博客,未經(jīng)同意,不得轉(zhuǎn)載。

轉(zhuǎn)載于:https://www.cnblogs.com/blfshiye/p/4747252.html

總結(jié)

以上是生活随笔為你收集整理的UML造型——使用EA时序图工具的开发实践和经验的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。