溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

為什么UML很重要

發(fā)布時間:2021-12-06 13:56:09 來源:億速云 閱讀:106 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了為什么UML很重要,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

UML實踐----UML活動圖、順序圖、狀態(tài)圖、協(xié)作圖

面向?qū)ο蟮膯栴}的處理的關(guān)鍵是建模問題。建??梢园言趶?fù)雜世界的許多重要的細節(jié)給抽象出。許多建模工具封裝了UML(也就是Unified Modeling Language?),這篇課程的目的是展示出UML的精彩之處。
UML中有九種建模的圖標(biāo),即:

用例圖
類圖
對象圖
順序圖
協(xié)作圖
狀態(tài)圖
活動圖
組件圖
配置圖
本課程中的某些部分包含了這些圖的細節(jié)信息的頁面鏈接。而且每個部分都有一個小問題,測試一下你對這個部分的理解。

為什么UML很重要?

為了回答這個問題,我們看看建筑行業(yè)。設(shè)計師設(shè)計出房子。施工人員使用這個設(shè)計來建造房子。建筑越復(fù)雜,設(shè)計師和施工人員之間的交流就越重要。藍圖就成為了這個行業(yè)中的設(shè)計師和施工人員的必修課。寫軟件就好像建造建筑物一樣。系統(tǒng)越復(fù)雜,參與編寫與配置軟件的人員之間的交流也就越重要。在過去十年里UML就成為分析師,設(shè)計師和程序員之間的“建筑藍圖”?,F(xiàn)在它已經(jīng)成為了軟件行業(yè)的一部分了。UML提供了分析師,設(shè)計師和程序員之間在軟件設(shè)計時的通用語言。

UML被應(yīng)用到面向?qū)ο蟮膯栴}的解決上。想要學(xué)習(xí)UML必須熟悉面向?qū)ο蠼鉀Q問題的根本原則――都是從模型的建造開始的。一個模型model就是根本問題的抽象。域domain就是問題所處的真實世界。
模型是由對象objects組成的,它們之間通過相互發(fā)送消息messages來相互作用的。記住把一個對象想象成“活著的”。對象有他們知道的事(屬性 attributes)和他們可以做的事(行為或操作behaviors or operations)。對象的屬性的值決定了它的狀態(tài)state。
類Classes是對象的“藍圖”。一個類在一個單獨的實體中封裝了屬性(數(shù)據(jù))和行為(方法或函數(shù))。對象是類的實例instances。

活動圖

UML實踐中活動圖activitydiagram是一個很特別的流程圖?;顒訄D和狀態(tài)圖之間是有關(guān)系的。狀態(tài)圖把焦點集中在過程中的對象身上,而活動圖則集中在一個單獨過程動作流程?;顒訄D告訴了我們活動之間的依賴關(guān)系。
對我們的例子來說,我們使用如下的過程。
“通過ATM來取錢?!?br/>這個活動有三個類Customer,ATM和Bank。整個過程從黑色圓圈開始到黑白的同心圓結(jié)束?;顒佑脠A角矩形表示。

活動圖可以被分解成許多對象泳道swimlanes,可以決定哪些對象負責(zé)那些活動。每個活動都有一個單獨的轉(zhuǎn)移transition連接這其他的活動。
轉(zhuǎn)移可能分支branch成兩個以上的互斥的轉(zhuǎn)移。保護表達式(在[]中)表示轉(zhuǎn)移是從一個分支中引出的。分支以及分支結(jié)束時的合并merge在圖中用菱形表示。
轉(zhuǎn)移也可以分解fork成兩個以上的并行活動。分解以及分解結(jié)束時的線程結(jié)合join在圖中用粗黑線表示

順序圖

UML實踐中類圖和對象圖是靜態(tài)模型的視圖。交互圖是動態(tài)的。他們描述了對象間的交互作用。
順序圖將交互關(guān)系表示為一個二維圖??v向是時間軸,時間沿豎線向下延伸。橫向軸代表了在協(xié)作中各獨立對象的類元角色。類元角色用生命線表示。當(dāng)對象存在時,角色用一條虛線表示,當(dāng)對象的過程處于激活狀態(tài)時,生命線是一個雙道線。
消息用從一個對象的生命線到另一個對象生命線的箭頭表示。箭頭以時間順序在圖中從上到下排列。

協(xié)作圖

UML實踐中協(xié)作圖也是互動的圖表。他們像序列圖一樣也傳遞相同的信息,但他們不關(guān)心什么時候消息被傳遞,只關(guān)心對象的角色。在序列圖中,對象的角色放在上面而消息則是連接線。
對象角色矩形上標(biāo)有類或?qū)ο竺ɑ蛘叨加校n惷懊嬗袀€冒號(:)。
協(xié)作圖的每個消息都有一個序列號。頂層消息的數(shù)字是1。同一個等級的消息(也就是同一個調(diào)用中的消息)有同樣的數(shù)字前綴,再根據(jù)他們出現(xiàn)的順序增加一個后綴1,2等等。

狀態(tài)圖

UML實踐中對象擁有行為和狀態(tài)。對象的狀態(tài)是由對象當(dāng)前的行動和條件決定的。狀態(tài)圖statechartdiagram顯示出了對象可能的狀態(tài)以及由狀態(tài)改變而導(dǎo)致的轉(zhuǎn)移。
我們的模型例圖建立了一個銀行的在線登錄系統(tǒng)。登錄過程包括輸入合法的密碼和個人賬號,再提交給系統(tǒng)驗證信息。
登錄系統(tǒng)可以被劃分為四種不重疊的狀態(tài):GettingSSN,GettingPIN,Validating,以及Rejecting。每個狀態(tài)都有一套完整的轉(zhuǎn)移transitions來決定狀態(tài)的順序。

狀態(tài)是用圓角矩形來表示的。轉(zhuǎn)移則是使用帶箭頭的連線表示。觸發(fā)轉(zhuǎn)移的事件或者條件寫在箭頭的旁邊。我們的圖上有兩個自轉(zhuǎn)移。一個是在GettingSSN,另一個則在上GettingPIN。
初始狀態(tài)(黑色圓圈)是開始動作的虛擬開始。結(jié)束狀態(tài)也是動作的虛擬結(jié)束。
事件或條件觸發(fā)動作時用(/動作)表示。當(dāng)進入Validating狀態(tài)時,對象并不等外部事件觸發(fā)轉(zhuǎn)移。取而代之,它產(chǎn)生一個動作。動作的結(jié)果決定了下一步的狀態(tài)。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“為什么UML很重要”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細節(jié)
推薦閱讀:
  1. uml分析
  2. 什么是UML

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

uml
AI