欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

UML基礎(chǔ):統(tǒng)一建模語(yǔ)言簡(jiǎn)介

系統(tǒng) 2297 0
回顧20世紀(jì)晚期--準(zhǔn)確地說(shuō)是1997年,OMG組織(Object Management Group對(duì)象管理組織)發(fā)布了統(tǒng)一建模語(yǔ)言(Unified Modeling Language,UML)。UML的目標(biāo)之一就是為開(kāi)發(fā)團(tuán)隊(duì)提供標(biāo)準(zhǔn)通用的設(shè)計(jì)語(yǔ)言來(lái)開(kāi)發(fā)和構(gòu)建計(jì)算機(jī)應(yīng)用。UML提出了一套IT專業(yè)人員期待多年的統(tǒng) 一的標(biāo)準(zhǔn)建模符號(hào)。通過(guò)使用UML,這些人員能夠閱讀和交流系統(tǒng)架構(gòu)和設(shè)計(jì)規(guī)劃--就像建筑工人多年來(lái)所使用的建筑設(shè)計(jì)圖一樣。
<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --> <!--END RESERVED FOR FUTURE USE INCLUDE FILES-->

到了21世紀(jì)- -準(zhǔn)確地說(shuō)是2003年,UML已經(jīng)獲得了業(yè)界的認(rèn)同。在我所見(jiàn)過(guò)的專業(yè)人員的簡(jiǎn)歷中,75%都聲稱具備UML的知識(shí)。然而,在同絕大多數(shù)求職人員面談之 后,可以明顯地看出他們并不真正了解UML。通常地,他們將UML用作一個(gè)術(shù)語(yǔ),或?qū)ML一知半解。大家對(duì)UML缺乏理解的這種狀況,促進(jìn)我撰寫(xiě)這篇關(guān) 于UML 1.4的快速入門(mén)文章。當(dāng)閱讀完本文時(shí),您還不具備足夠的知識(shí)可以在簡(jiǎn)歷上聲稱自己掌握了UML,但是您已具有了進(jìn)一步鉆研該語(yǔ)言的良好起點(diǎn)。

參考 UML 基礎(chǔ)系列的其他文章和教程

RSS 訂閱 UML 相關(guān)文章和教程的 RSS 提要

一些背景知識(shí)

正 如前面曾提到過(guò)的,UML的本意是要成為一種標(biāo)準(zhǔn)的統(tǒng)一語(yǔ)言,使得IT專業(yè)人員能夠進(jìn)行計(jì)算機(jī)應(yīng)用程序的建模。UML的主要?jiǎng)?chuàng)始人是Jim Rumbaugh、Ivar Jacobson和Grady Booch,他們最初都有自己的建模方法(OMT、OOSE和Booch),彼此之間存在著競(jìng)爭(zhēng)。最終,他們聯(lián)合起來(lái)創(chuàng)造了一種開(kāi)放的標(biāo)準(zhǔn)。(聽(tīng)起來(lái)是不 是很熟悉?這個(gè)現(xiàn)象類似J2EE、SOAP和Linux的誕生。)UML成為"標(biāo)準(zhǔn)"建模語(yǔ)言的原因之一在于,它與程序設(shè)計(jì)語(yǔ)言無(wú)關(guān)。(IBM Rational的UML建模工具被廣泛應(yīng)用于J2EE和.NET開(kāi)發(fā)。)而且,UML符號(hào)集只是一種語(yǔ)言而不是一種方法學(xué)。這點(diǎn)很重要,因?yàn)檎Z(yǔ)言與方法 學(xué)不同,它可以在不做任何更改的情況下很容易地適應(yīng)任何公司的業(yè)務(wù)運(yùn)作方式。

既然UML不是一種方法學(xué),它就不需要任何正式的工作產(chǎn)品(即IBM Rational Unified Process?術(shù)語(yǔ)中所定義的"工件")。而且它還提供了多種類型的模型描述圖(diagram),當(dāng)在某種給定的方法學(xué)中使用這些圖時(shí),它使得開(kāi)發(fā)中 的應(yīng)用程序的更易理解。UML的內(nèi)涵遠(yuǎn)不只是這些模型描述圖,但是對(duì)于入門(mén)來(lái)說(shuō),這些圖對(duì)這門(mén)語(yǔ)言及其用法背后的基本原理提供了很好的介紹。通過(guò)把標(biāo)準(zhǔn)的 UML圖放進(jìn)您的工作產(chǎn)品中,精通UML的人員就更加容易加入您的項(xiàng)目并迅速進(jìn)入角色。最常用的UML圖包括:用例圖、類圖、序列圖、狀態(tài)圖、活動(dòng)圖、組 件圖和部署圖。

深入討論每類圖的細(xì)節(jié)問(wèn)題已超出了這篇入門(mén)文章的范圍。因此,下面僅給出了每類圖的簡(jiǎn)要說(shuō)明,更詳細(xì)的信息將在以后的文章中探討。

用例圖

用例圖描述了系統(tǒng)提供的一個(gè)功能單元。用例圖的主要目的是幫助開(kāi)發(fā)團(tuán)隊(duì)以一種可視化的方式理解系統(tǒng)的功能需求,包括基于基本流程的"角色" (actors,也就是與系統(tǒng)交互的其他實(shí)體)關(guān)系,以及系統(tǒng)內(nèi)用例之間的關(guān)系。用例圖一般表示出用例的組織關(guān)系--要么是整個(gè)系統(tǒng)的全部用例,要么是完 成具有功能(例如,所有安全管理相關(guān)的用例)的一組用例。要在用例圖上顯示某個(gè)用例,可繪制一個(gè)橢圓,然后將用例的名稱放在橢圓的中心或橢圓下面的中間位 置。要在用例圖上繪制一個(gè)角色(表示一個(gè)系統(tǒng)用戶),可繪制一個(gè)人形符號(hào)。角色和用例之間的關(guān)系使用簡(jiǎn)單的線段來(lái)描述,如圖1所示。

示例用例圖

圖1:示例用例圖

圖字(從上到下):CD銷售系統(tǒng);查看樂(lè)隊(duì)CD的銷售統(tǒng)計(jì);樂(lè)隊(duì)經(jīng)理;查看Billboard 200排行榜報(bào)告;唱片經(jīng)理;查看特定CD的銷售統(tǒng)計(jì);檢索最新的Billboard 200排行榜報(bào)告;排行榜報(bào)告服務(wù)

用 例圖通常用于表達(dá)系統(tǒng)或者系統(tǒng)范疇的高級(jí)功能。如圖1所示,可以很容易看出該系統(tǒng)所提供的功能。這個(gè)系統(tǒng)允許樂(lè)隊(duì)經(jīng)理查看樂(lè)隊(duì)CD的銷售統(tǒng)計(jì)報(bào)告以及 Billboard 200排行榜報(bào)告。它也允許唱片經(jīng)理查看特定CD的銷售統(tǒng)計(jì)報(bào)告和這些CD在Billboard 200排行榜的報(bào)告。這個(gè)圖還告訴我們,系統(tǒng)將通過(guò)一個(gè)名為"排行榜報(bào)告服務(wù)"的外部系統(tǒng)提供Billboard排行榜報(bào)告。

此外,在用例圖中,沒(méi)有列出的用例表明了該系統(tǒng)不能完成的功能。例如,它不能提供給樂(lè)隊(duì)經(jīng)理收聽(tīng) Billboard 200上不同專輯中的歌曲的途徑 -- 也就是說(shuō),系統(tǒng)沒(méi)有引用一個(gè)叫做"收聽(tīng)Billboard 200上的歌曲"的用例。這種缺少不是一件小事。在用例圖中提供清楚的、簡(jiǎn)要的用例描述,項(xiàng)目贊助商就很容易看出系統(tǒng)是否提供了必須的功能。

類圖

類 圖表示不同的實(shí)體(人、事物和數(shù)據(jù))如何彼此相關(guān);換句話說(shuō),它顯示了系統(tǒng)的靜態(tài)結(jié)構(gòu)。類圖可用于表示邏輯類,邏輯類通常就是業(yè)務(wù)人員所談及的事物種類- -搖滾樂(lè)隊(duì)、CD、廣播劇;或者貸款、住房抵押、汽車信貸以及利率。類圖還可用于表示實(shí)現(xiàn)類,實(shí)現(xiàn)類就是程序員處理的實(shí)體。實(shí)現(xiàn)類圖或許會(huì)與邏輯類圖顯示 一些相同的類。然而,實(shí)現(xiàn)類圖不會(huì)使用相同的屬性來(lái)描述,因?yàn)樗芸赡芫哂袑?duì)諸如Vector和HashMap這種事物的引用。

類在類圖上使用包含三個(gè)部分的矩形來(lái)描述,如圖2所示。最上面的部分顯示類的名稱,中間部分包含類的屬性,最下面的部分包含類的操作(或者說(shuō)"方法")。

類圖中的示例類對(duì)象

圖2:類圖中的示例類對(duì)象

根 據(jù)我的經(jīng)驗(yàn),幾乎每個(gè)開(kāi)發(fā)人員都知道這個(gè)類圖是什么,但是我發(fā)現(xiàn)大多數(shù)程序員都不能正確地描述類的關(guān)系。對(duì)于像圖3這樣的類圖,您應(yīng)該使用帶有頂點(diǎn)指向父 類的箭頭的線段來(lái)繪制繼承關(guān)系1,并且箭頭應(yīng)該是一個(gè)完全的三角形。如果兩個(gè)類都彼此知道對(duì)方,則應(yīng)該使用實(shí)線來(lái)表示關(guān)聯(lián)關(guān)系;如果只有其中一個(gè)類知道該 關(guān)聯(lián)關(guān)系,則使用開(kāi)箭頭表示。

一個(gè)完整的類圖

圖3:一個(gè)完整的類圖,包括了圖2所示的類對(duì)象

在 圖3中,我們同時(shí)看到了繼承關(guān)系和兩個(gè)關(guān)聯(lián)關(guān)系。CDSalesReport類繼承自Report類。一個(gè)CDSalesReport類與一個(gè)CD類關(guān) 聯(lián),但是CD類并不知道關(guān)于CDSalesReport類的任何信息。CD類和Band類都彼此知道對(duì)方,兩個(gè)類彼此都可以與一個(gè)或者多個(gè)對(duì)方類相關(guān)聯(lián)。

一個(gè)類圖可以整合其他許多概念,這將在本系列文章的后續(xù)文章中介紹。

序列圖

序列圖顯示具體用例(或者是用例的一部分)的詳細(xì)流程。它幾乎是自描述的,并且顯示了流程中中不同對(duì)象之間的調(diào)用關(guān)系,同時(shí)還可以很詳細(xì)地顯示對(duì)不同對(duì)象的不同調(diào)用。

序列圖有兩個(gè)維度:垂直維度以發(fā)生的時(shí)間順序顯示消息/調(diào)用的序列;水平維度顯示消息被發(fā)送到的對(duì)象實(shí)例。

序列圖的繪制非常簡(jiǎn)單。橫跨圖的頂部,每個(gè)框(參見(jiàn)圖4)表示每個(gè)類的實(shí)例(對(duì)象)。在框中,類實(shí)例名稱和類 名稱之間用空格/冒號(hào)/空格來(lái)分隔,例如,myReportGenerator : ReportGenerator。如果某個(gè)類實(shí)例向另一個(gè)類實(shí)例發(fā)送一條消息,則繪制一條具有指向接收類實(shí)例的開(kāi)箭頭的連線,并把消息/方法的名稱放在連 線上面。對(duì)于某些特別重要的消息,您可以繪制一條具有指向發(fā)起類實(shí)例的開(kāi)箭頭的虛線,將返回值標(biāo)注在虛線上。就我而言,我總喜歡繪制出包括返回值的虛線, 這些額外的信息可以使得序列圖更易于閱讀。

閱讀序列圖也非常簡(jiǎn)單。從左上角啟動(dòng)序列的"驅(qū)動(dòng)"類實(shí)例開(kāi)始,然后順著每條消息往下閱讀。記住:雖然圖4所示的例子序列圖顯示了每條被發(fā)送消息的返回消息,但這只是可選的。

一個(gè)示例序列圖

圖4:一個(gè)示例序列圖

通 過(guò)閱讀圖4中的示例序列圖,您可以明白如何創(chuàng)建一個(gè)CD銷售報(bào)告(CD Sales Report)。其中的aServlet對(duì)象表示驅(qū)動(dòng)類實(shí)例。aServlet向名為gen的ReportGenerator類實(shí)例發(fā)送一條消息。該消息 被標(biāo)為generateCDSalesReport,表示ReportGenerator對(duì)象實(shí)現(xiàn)了這個(gè)消息處理程序。進(jìn)一步理解可發(fā)現(xiàn), generateCDSalesReport消息標(biāo)簽在括號(hào)中包括了一個(gè)cdId,表明aServlet隨該消息傳遞一個(gè)名為cdId的參數(shù)。當(dāng)gen實(shí) 例接收到一條generateCDSalesReport消息時(shí),它會(huì)接著調(diào)用CDSalesReport類,并返回一個(gè)aCDReport的實(shí)例。然后 gen實(shí)例對(duì)返回的aCDReport實(shí)例進(jìn)行調(diào)用,在每次消息調(diào)用時(shí)向它傳遞參數(shù)。在該序列的結(jié)尾,gen實(shí)例向它的調(diào)用者aServlet返回一個(gè) aCDReport。

請(qǐng)注意:圖4中的序列圖相對(duì)于典型的序列圖來(lái)說(shuō)太詳細(xì)了。然而,我認(rèn)為它才是足夠易于理解的,并且它顯示了如何表示嵌套的調(diào)用。對(duì)于初級(jí)開(kāi)發(fā)人員來(lái)說(shuō),有時(shí)把一個(gè)序列分解到這種詳細(xì)程度是很有必要的,這有助于他們理解相關(guān)的內(nèi)容。

狀態(tài)圖

狀態(tài)圖表示某個(gè)類所處的不同狀態(tài)和該類的狀態(tài)轉(zhuǎn)換信息。有人可能會(huì)爭(zhēng)論說(shuō)每個(gè)類都有狀態(tài),但不是每個(gè)類都應(yīng)該有一個(gè)狀態(tài)圖。只對(duì)"感興趣的"狀態(tài)的類(也就是說(shuō),在系統(tǒng)活動(dòng)期間具有三個(gè)或更多潛在狀態(tài)的類)才進(jìn)行狀態(tài)圖描述。

如 圖5所示,狀態(tài)圖的符號(hào)集包括5個(gè)基本元素:初始起點(diǎn),它使用實(shí)心圓來(lái)繪制;狀態(tài)之間的轉(zhuǎn)換,它使用具有開(kāi)箭頭的線段來(lái)繪制;狀態(tài),它使用圓角矩形來(lái)繪 制;判斷點(diǎn),它使用空心圓來(lái)繪制;以及一個(gè)或者多個(gè)終止點(diǎn),它們使用內(nèi)部包含實(shí)心圓的圓來(lái)繪制。要繪制狀態(tài)圖,首先繪制起點(diǎn)和一條指向該類的初始狀態(tài)的轉(zhuǎn) 換線段。狀態(tài)本身可以在圖上的任意位置繪制,然后只需使用狀態(tài)轉(zhuǎn)換線條將它們連接起來(lái)。

顯示類通過(guò)某個(gè)功能系統(tǒng)的各種狀態(tài)的狀態(tài)圖

圖5:顯示類通過(guò)某個(gè)功能系統(tǒng)的各種狀態(tài)的狀態(tài)圖

圖5 中的狀態(tài)圖顯示了它們可以表達(dá)的一些潛在信息。例如,從中可以看出貸款處理系統(tǒng)最初處于Loan Application狀態(tài)。當(dāng)批準(zhǔn)前(pre-approval)過(guò)程完成時(shí),根據(jù)該過(guò)程的結(jié)果,或者轉(zhuǎn)到Loan Pre-approved狀態(tài),或者轉(zhuǎn)到Loan Rejected狀態(tài)。這個(gè)判斷(它是在轉(zhuǎn)換過(guò)程期間做出的)使用一個(gè)判斷點(diǎn)來(lái)表示--即轉(zhuǎn)換線條間的空心圓。通過(guò)該狀態(tài)圖可知,如果沒(méi)有經(jīng)過(guò)Loan Closing狀態(tài),貸款不可能從Loan Pre-Approved狀態(tài)進(jìn)入Loan in Maintenance狀態(tài)。而且,所有貸款都將結(jié)束于Loan Rejected或者Loan in Maintenance狀態(tài)。

活動(dòng)圖

活 動(dòng)圖表示在處理某個(gè)活動(dòng)時(shí),兩個(gè)或者更多類對(duì)象之間的過(guò)程控制流。活動(dòng)圖可用于在業(yè)務(wù)單元的級(jí)別上對(duì)更高級(jí)別的業(yè)務(wù)過(guò)程進(jìn)行建模,或者對(duì)低級(jí)別的內(nèi)部類操 作進(jìn)行建模。根據(jù)我的經(jīng)驗(yàn),活動(dòng)圖最適合用于對(duì)較高級(jí)別的過(guò)程建模,比如公司當(dāng)前在如何運(yùn)作業(yè)務(wù),或者業(yè)務(wù)如何運(yùn)作等。這是因?yàn)榕c序列圖相比,活動(dòng)圖在表 示上"不夠技術(shù)性的",但有業(yè)務(wù)頭腦的人們往往能夠更快速地理解它們。

活動(dòng)圖的符號(hào)集與狀態(tài)圖中使用的符號(hào)集類似。像狀態(tài)圖一樣,活動(dòng)圖也從一個(gè)連接到初始活動(dòng)的 實(shí)心圓開(kāi)始。活動(dòng)是通過(guò)一個(gè)圓角矩形(活動(dòng)的名稱包含在其內(nèi))來(lái)表示的。活動(dòng)可以通過(guò)轉(zhuǎn)換線段連接到其他活動(dòng),或者連接到判斷點(diǎn),這些判斷點(diǎn)連接到由判斷 點(diǎn)的條件所保護(hù)的不同活動(dòng)。結(jié)束過(guò)程的活動(dòng)連接到一個(gè)終止點(diǎn)(就像在狀態(tài)圖中一樣)。作為一種選擇,活動(dòng)可以分組為泳道(swimlane),泳道用于表 示實(shí)際執(zhí)行活動(dòng)的對(duì)象,如圖6所示。

活動(dòng)圖

圖6:活動(dòng)圖,具有兩個(gè)泳道,表示兩個(gè)對(duì)象的活動(dòng)控制:樂(lè)隊(duì)經(jīng)理,以及報(bào)告工具

圖字(沿箭頭方向):樂(lè)隊(duì)經(jīng)理;報(bào)告工具;選擇"查看樂(lè)隊(duì)的銷售報(bào)告";檢索該樂(lè)隊(duì)經(jīng)理所管理的樂(lè)隊(duì);顯示報(bào)告條件選擇屏幕;選擇要查看其銷售報(bào)告的樂(lè)隊(duì);從銷售數(shù)據(jù)庫(kù)檢索銷售數(shù)據(jù);顯示銷售報(bào)告。

該活動(dòng)圖中有兩個(gè)泳道,因?yàn)橛袃蓚€(gè)對(duì)象控制著各自的活動(dòng):樂(lè)隊(duì)經(jīng)理和報(bào)告工具。整個(gè)過(guò)程首先從樂(lè)隊(duì)經(jīng)理選擇查 看他的樂(lè)隊(duì)銷售報(bào)告開(kāi)始。然后報(bào)告工具檢索并顯示他管理的所有樂(lè)隊(duì),并要求他從中選擇一個(gè)樂(lè)隊(duì)。在樂(lè)隊(duì)經(jīng)理選擇一個(gè)樂(lè)隊(duì)之后,報(bào)告工具就檢索銷售信息并顯 示銷售報(bào)告。該活動(dòng)圖表明,顯示報(bào)告是整個(gè)過(guò)程中的最后一步。

組件圖

組件圖提供系統(tǒng)的物理視圖。它的用途是顯示系統(tǒng)中的軟件對(duì)其他軟件組件(例如,庫(kù)函數(shù))的依賴關(guān)系。組件圖可以在一個(gè)非常高的層次上顯示,從而僅顯示粗粒度的組件,也可以在組件包層次2上顯示。

組 件圖的建模最適合通過(guò)例子來(lái)描述。圖7顯示了4個(gè)組件:Reporting Tool、Billboard Service、Servlet 2.2 API和JDBC API。從Reporting Tool組件指向Billboard Service、Servlet 2.2 API和JDBC API組件的帶箭頭的線段,表示Reporting Tool依賴于那三個(gè)組件。

組件圖顯示了系統(tǒng)中各種軟件組件的依賴關(guān)系

圖7:組件圖顯示了系統(tǒng)中各種軟件組件的依賴關(guān)系

部署圖

部署圖表示該軟件系統(tǒng)如何部署到硬件環(huán)境中。它的用途是顯示該系統(tǒng)不同的組件將在何處物理地運(yùn)行,以及它們將如何彼此通信。因?yàn)椴渴饒D是對(duì)物理運(yùn)行情況進(jìn)行建模,系統(tǒng)的生產(chǎn)人員就可以很好地利用這種圖。

部 署圖中的符號(hào)包括組件圖中所使用的符號(hào)元素,另外還增加了幾個(gè)符號(hào),包括節(jié)點(diǎn)的概念。一個(gè)節(jié)點(diǎn)可以代表一臺(tái)物理機(jī)器,或代表一個(gè)虛擬機(jī)器節(jié)點(diǎn)(例如,一個(gè) 大型機(jī)節(jié)點(diǎn))。要對(duì)節(jié)點(diǎn)進(jìn)行建模,只需繪制一個(gè)三維立方體,節(jié)點(diǎn)的名稱位于立方體的頂部。所使用的命名約定與序列圖中相同:[實(shí)例名稱] : [實(shí)例類型](例如,"w3reporting.myco.com : Application Server")。

部署圖

圖8: 部署圖。由于Reporting Tool組件繪制在IBM WebSphere內(nèi)部,后者又繪制在節(jié)點(diǎn)w3.reporting.myco.com內(nèi)部,因而我們知道,用戶將通過(guò)運(yùn)行在本地機(jī)器上的瀏覽器來(lái)訪問(wèn) Reporting Tool,瀏覽器通過(guò)公司intranet上的HTTP協(xié)議與Reporting Tool建立連接。

圖8中的部署圖表明,用戶使用運(yùn)行在本地機(jī)器上的瀏覽器訪問(wèn) Reporting Tool,并通過(guò)公司intranet上的HTTP協(xié)議連接到Reporting Tool組件。這個(gè)工具實(shí)際運(yùn)行在名為w3reporting.myco.com的Application Server上。這個(gè)圖還表明Reporting Tool組件繪制在IBM WebSphere內(nèi)部,后者又繪制在w3.reporting.myco.com節(jié)點(diǎn)內(nèi)部。Reporting Tool使用Java語(yǔ)言通過(guò)IBM DB2數(shù)據(jù)庫(kù)的JDBC接口連接到它的報(bào)告數(shù)據(jù)庫(kù)上,然后該接口又使用本地DB2通信方式,與運(yùn)行在名為db1.myco.com的服務(wù)器上實(shí)際的DB2 數(shù)據(jù)庫(kù)通信。除了與報(bào)告數(shù)據(jù)庫(kù)通信外,Report Tool組件還通過(guò)HTTPS上的SOAP與Billboard Service進(jìn)行通信。

結(jié)束語(yǔ)

盡 管本文僅提供了對(duì)統(tǒng)一建模語(yǔ)言UML的簡(jiǎn)要介紹,但還是鼓勵(lì)大家把從這里學(xué)到的基本信息應(yīng)用到自己的項(xiàng)目中,同時(shí)更深入地鉆研UML。已經(jīng)有多種軟件工具 可以幫助您把UML圖集成到軟件開(kāi)發(fā)過(guò)程中,不過(guò)即使沒(méi)有自動(dòng)化的工具,您也可以使用白板上的標(biāo)記或者紙和筆來(lái)手工繪制UML圖,仍然會(huì)獲益匪淺。

備注

  1. 欲了解關(guān)于繼承和其他面向?qū)ο笤淼母嘈畔ⅲ?qǐng)參閱: http://java.sun.com/docs/books/tutorial/java/concepts/inheritance.html
  2. "組件包層次"這個(gè)短語(yǔ)以一種與程序設(shè)計(jì)語(yǔ)言無(wú)關(guān)的方式,指代諸如.Net的命名空間(例如System.Web.UI)或者Java的包(例如java.util)這樣的類容器層次。

參考資料

欲了解有關(guān)本文所討論的產(chǎn)品或者服務(wù)的更多信息,請(qǐng)點(diǎn)擊 這里 并遵照所提供的指示操作。謝謝!

關(guān)于作者

Donald Bell 是IBM 全球服務(wù)的一個(gè) IT 專家,在那兒他和 IBM 的客戶一起致力于設(shè)計(jì)和開(kāi)發(fā)基于軟件解決方案的 J2EE。

UML基礎(chǔ):統(tǒng)一建模語(yǔ)言簡(jiǎn)介


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 日韩精品av一区二区三区 | 日本a v在线播放 | 国产极品久久 | av在线成人 | 高清国产福利 | 国产福利视频 | a一级免费 | 欧美一区二区三区在观看 | 超级碰在线视频 | 五月天在线影院 | 中文区永久区 | 欧美激情高清 | 免费人成又黄又爽的视频强 | 久久精品国产99久久6动漫亮点 | 一级a毛片免费观看久久精品 | 成人国产精品视频 | 久久99久久99精品免观看不卡 | 草草视频免费在线观看 | 亚洲精品乱码久久久久久蜜桃 | 一级aaaaaa片毛片在线播放 | 国产亚洲视频在线 | 一级毛片片 | 亚洲情a成黄在线观看动 | 久久久国产这里有的是精品 | 黄色片视频在线观看 | 美女91视频 | 久久这里只有精品9 | 成人欧美一级毛片免费观看 | 欧美一级精品片在线看 | 香港论理午夜电影网 | 精品久久一区二区三区 | 奇米影视8888 | 亚洲精品一区二区三区在线观看 | 2022国产91精品久久久久久 | 成人午夜视频在线播放 | 久草色香蕉 | 亚洲国产区| 欧美日韩在线看 | 国产一区二区黑人欧美xxxx | 午夜理论电影在线观看亚洲 | 站长推荐国产午夜免费视频 |