成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

UML應(yīng)用的三種境界中你屬于哪一種

開發(fā) 架構(gòu)
在學(xué)習(xí)UML時,經(jīng)常會遇到UML應(yīng)用問題,你是否熟悉,這里就向大家介紹一下UML應(yīng)用的三種境界,相信通過本文的介紹你對UML應(yīng)用有更加深刻的認(rèn)識。

本節(jié)和大家一起學(xué)習(xí)一下UML應(yīng)用的三種境界,UML有很多值得學(xué)習(xí)的地方,這里和大家分享一下UML應(yīng)用的三種境界,希望通過本節(jié)的學(xué)習(xí)你一定會對UML應(yīng)用有一定的了解。

UML應(yīng)用的三重境界

古今之成大事業(yè)、大學(xué)問者,必經(jīng)過三種之境界,今之UML應(yīng)用的三重境界能給你帶來什么呢?
先從幾年前的一次爭論談起吧。2002年5月某IT雜志刊登了一篇知名學(xué)者高展先生的文章:《UML三大“硬傷”》,文章說UML“上不著天、下不著地、一盤散沙”,后即引來業(yè)界關(guān)于UML的一場大討論。

在細(xì)述這場論戰(zhàn)之前,且讓我們先往返答兩個問題,第一個問題是為什么軟件開發(fā)過程需要建模,第二個問題是建模為什么要使用UML語言。

想搭一個狗窩,備好木料、釘子和一些基本工具之后,就可以開始工作了,在沒有別人幫忙的情況下,幾個小時也可以完工;假如想為家庭建造一所房子,備好木料、釘子和一些基本工具之后,也能開始工作,但這將需要較長的時間,并且,除非曾經(jīng)多次建造過房子,否則就需要事先制定出一些具體的計劃,再開始動工,才能夠成功;而假如要建設(shè)高樓時,仍然是先備好木料、釘子和一些基本工具就開始工作,那將是非常愚蠢的。

那么在軟件開發(fā)中,假如我們不事先建立模型,做好計劃,就開始倉促去實現(xiàn),那就好比在使用建造狗窩的工具來建造一座大廈。而建模是一項經(jīng)過檢驗并被廣為接受的工程技術(shù),模型提供了系統(tǒng)的藍(lán)圖。模型可以是結(jié)構(gòu)性的,強調(diào)系統(tǒng)的組織。它也可以是行為性的,強調(diào)系統(tǒng)的動態(tài)方面。
通過建模,可以達(dá)到4個目的:模型有助于按照實際情況或按照所需要的樣式對系統(tǒng)進行可視化;模型能夠規(guī)約系統(tǒng)的結(jié)構(gòu)或行為;模型給出了指導(dǎo)構(gòu)造系統(tǒng)的模板;模型對做出的決策進行文檔化。

下面讓我們來到文章開頭提到的那場論戰(zhàn)。論戰(zhàn)的發(fā)起者高先生也許當(dāng)初也沒有想到文章發(fā)表之后引來的激烈反應(yīng)。綜合高先生那篇文章的主旨,可以概括為UML“上不著天,下不著地,一盤散沙”,他認(rèn)為:UML上不著天,也就是說用UML建立的模型無法與用戶溝通;下不著地,采用UML設(shè)計的模型不能為程序員所用;一盤散沙,UML建立的各種模型之間關(guān)系凌亂,無法實際應(yīng)用。

我的看法是,高先生此三點意見卻恰恰就是UML的三大優(yōu)點,關(guān)鍵在于應(yīng)用。假如使用不好,則在應(yīng)用過程中是會發(fā)生這樣的錯覺,認(rèn)為使用了UML反而會給項目帶來額外的負(fù)擔(dān);但是假如能有效地根據(jù)實際項目和人員情況對UML進行裁減,制定出適合的UML應(yīng)用方法,并通過項目來逐步積累和推進,那么UML這個神兵寶器則會大放異彩,體現(xiàn)它應(yīng)有的價值。就譬如金箍棒,倘若等閑之輩得之,不過是廢鐵一塊;如若在悟空手中,則大如倚天之柱,小則化為繡花針,降妖除魔,變?yōu)橹翆殹?/p>

那么如何能有效利用UML呢?就如王國維所談詞作的三重境界,UML的利用也可以分為三種境界。

王國維在《人間詞話》里談到:“古今之成大事業(yè)、大學(xué)問者,必經(jīng)過三種之境界:‘昨夜西風(fēng)凋碧樹。獨上高樓,望盡天邊路’。此第一境也。‘衣帶漸寬終不悔,為伊消得人憔悴。’此第二境也。‘眾里尋他千百度,驀然回首那人卻在,燈火闌珊處’。此第三境也。”

第一重境界:霧里看花

屬于UML的初級應(yīng)用,對UML有了初步的一點了解,知道了用例圖,類圖,能畫出簡單的時序圖、協(xié)作圖等。初入UML的世界,各種圖型的特性、適用范圍、圖形元素的功用都還一知半解,而UML龐大的體系足以讓初入者無從著手,就好比駕一扁舟,漂游于大海之上,“望盡天邊路”而不知所歸。在第一重境界的應(yīng)用所要完成的目標(biāo)是達(dá)到與客戶的需求溝通,即解決前文所說的“上不著天”的問題。在初級階段,假如能擁有扎實的面向?qū)ο笤O(shè)計基礎(chǔ),同時配合以良好的UML工具,那么可以很快度過這個階段,來到下一重境界。


第二重境界:小樓一夜聽春雨

從第一重境界的迷茫中走過來了,當(dāng)然這是一個痛苦的過程,不然為何“衣帶漸寬”呢。假如說在第一個階段的UML應(yīng)用是屬于局部范圍的應(yīng)用,那么到第二重境界,則是全局的利用UML了。在這個階段,開始初窺UML的奧妙,不僅可以借助于UML的用例圖、時序圖等完成與用戶的需求溝通,而且在此基礎(chǔ)上,可以使用UML的類圖、交互圖、部署圖、組件圖等指導(dǎo)程序員進行開發(fā)。在第二重境界下,解決了前文所說的“下不著地”的問題。


第三重境界:如魚得水

隨著UML的項目實踐增加,軟件組織也在不斷的成長。明白了UML只是一種方法,而獨立于過程,在實踐中,UML是貫徹整個軟件開發(fā)過程,解決了“一盤散沙”的問題。通過在前期需求分析階段形成的業(yè)務(wù)用例模型,通過細(xì)化,進一步描述業(yè)務(wù)的細(xì)節(jié),并且通過UML的類圖、交互圖等可以建立目標(biāo)系統(tǒng)的邏輯模型。而UML應(yīng)用的最高層次則是將UML作為一種“高高級”語言,實現(xiàn)從目標(biāo)系統(tǒng)邏輯模型向物理模型的直接轉(zhuǎn)換。

通過在現(xiàn)有的高級語言基礎(chǔ)上描述業(yè)務(wù)過程,而UML編程語言的編譯器則可以實現(xiàn)UML語言的編譯執(zhí)行,這也是當(dāng)前MDA(ModelDrivenArchitecture,模型驅(qū)動架構(gòu))所追求的目標(biāo)。

可以說,UML應(yīng)用對系統(tǒng)模型的表達(dá)能力超出了以往任何一種面向?qū)ο蟮姆治龊驮O(shè)計方法。隨之出現(xiàn)的問題是,它的復(fù)雜性也超出了以往任何一種方法。由于UML的復(fù)雜性,對它的把握和使用確實不是一件輕松的事。因此,從初入“霧里看花”的第一重境界,并逐步進入到“如魚得水”是一個循序漸進的過程,是一個逐步學(xué)習(xí),逐步應(yīng)用與提高的過程。

首先,UML是一個復(fù)雜的體系,而且為了能夠靈活的適應(yīng)各種項目的需要,增加了很多符號,而并不是每一個項目都需要使用到這些符號。為了成功使用UML,在使用的過程中必須流程化使用,針對不同的項目實際情況,對UML符號進行裁剪。當(dāng)然,這也意味著幾乎任何項目都可以使用UML來建模。

第二,需要保持項目組對UML的統(tǒng)一一致的理解,這是建模成功的保障。究竟,現(xiàn)在大型項目都是幾十個甚至成百上千的人員牽涉其中,要確保負(fù)責(zé)設(shè)計與開發(fā)人員對UML的各種符號有統(tǒng)一的理解,不然,UML應(yīng)用不但不能起到溝通橋梁的作用,反而會導(dǎo)致傳遞的失真。可以通過項目組的培訓(xùn)等方式來實現(xiàn)。

第三,簡單有效才是最重要的。一般說來,項目組成員的設(shè)計分析能力、以及對UML的理解使用能力是層次不一的,即使通過培訓(xùn)能提高部分程序員的水平,但是,經(jīng)驗、閱歷這是不能通過培訓(xùn)來解決的。因此,只有保持最簡單有效的過程,使用最簡單的UML圖形,才能使得UML的應(yīng)用達(dá)到最佳的效果。而假如我們?yōu)榱嗽敱M的描述一個用例,使用了一系列完整的時序圖、協(xié)作圖、狀態(tài)圖、部署圖、用例圖和類圖,這樣,可能導(dǎo)致一個團隊完全脫離面向?qū)ο蠓治龊驮O(shè)計。

第四,抉擇畫圖。畫UML圖是一種非常有用的活動,它也可能成為一種浪費時間的、可怕的活動。不需要制定什么都必須畫圖的規(guī)則,因為這樣的規(guī)則將比不用更糟糕。項目的大量時間和精力將會被浪費在追逐那個根本沒有人去讀的圖上。下面列舉了需要畫圖的情況:

當(dāng)許多人一起需要同時進行開發(fā)時,這些人需要都理解一個系統(tǒng)的特定部分的設(shè)計結(jié)構(gòu)時,開始畫圖。當(dāng)所有的人都已經(jīng)聲明理解了的時候,結(jié)束畫圖。

當(dāng)兩個人或更多人不同意一個特定的元素如何設(shè)計的時候,需要團隊意見一致的時候,要找一個時間進行討論做出決定,比如投票,或一個公正的宣告的方式進行,這時需要畫圖。當(dāng)決定做出來后,擦掉這些圖。

當(dāng)需要探討一個設(shè)計的想法時,畫圖能夠幫我們更好地思考。當(dāng)?shù)玫搅四軌驇椭覀兺瓿伤伎嫉拇a的要點的時候,扔掉這些圖。

當(dāng)需要向其他人或自己解釋一部分代碼的結(jié)構(gòu)的時候,可以畫圖。當(dāng)覺得其實最好看代碼來進行解釋的時候,停止畫圖。

當(dāng)項目快要結(jié)束,顧客需要我們將圖與其他文檔一起提供的時候,開始畫圖。

在項目中使用UML,需要時刻記住的是保持簡單,并且結(jié)合軟件工程文檔,同時讓項目組對過程有統(tǒng)一的熟悉。很多成功的項目都采用用例驅(qū)動,迭代,遞增方法的。假如能把過程細(xì)化并且讓項目組把握技巧,那么UML項目已經(jīng)離成功不遠(yuǎn)了。本節(jié)關(guān)于UML應(yīng)用的三種境界介紹到這里。
 

【編輯推薦】

  1. UML應(yīng)用的三重境界
  2. 專家解析 圖書館管理系統(tǒng)中UML應(yīng)用
  3. 實例講解UML對象圖使用
  4. 軟件設(shè)計過程中面向?qū)ο骍ML技術(shù)如何使用
  5. UML建模基礎(chǔ)教程

 

 

責(zé)任編輯:佚名 來源: CHINA-B.C0M
相關(guān)推薦

2014-09-10 10:04:37

程序員

2014-09-10 10:43:58

程序員

2017-11-13 12:01:31

開發(fā)者編程編程風(fēng)格

2022-05-07 09:20:38

智能客服模塊方案

2010-09-09 09:24:43

極客專屬人格技術(shù)狂人

2013-12-27 09:42:04

程序員趣聞

2023-11-06 08:20:35

Kubernetesnginx

2021-04-05 14:44:20

JavaScript循環(huán)代碼

2018-01-05 08:53:32

LinuxUbuntu發(fā)行版

2024-11-28 09:06:52

2011-07-27 13:03:09

2022-11-03 08:49:10

IT認(rèn)證職業(yè)

2015-04-17 10:21:37

云存儲附加存儲

2018-03-28 16:10:23

閱讀源碼境界

2018-02-27 10:36:20

物聯(lián)網(wǎng)無線通信應(yīng)用程序

2010-12-20 11:12:31

企業(yè)網(wǎng)絡(luò)VPN

2021-01-06 08:05:32

JavaSocke粘包

2011-07-25 10:57:02

信息安全認(rèn)證IT安全學(xué)歷信息安全職業(yè)

2021-07-25 20:22:04

容器技術(shù)計算

2023-03-30 15:28:24

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美在线一区二区三区 | 国产精品久久久亚洲 | 一区二区三区国产好 | 国产a视频 | 精品少妇一区二区三区日产乱码 | 国产精品夜夜春夜夜爽久久电影 | 在线视频a| 一级片毛片 | 日韩视频在线免费观看 | 国产一级毛片精品完整视频版 | 性欧美精品一区二区三区在线播放 | 午夜精品久久久久久久久久久久久 | 成人在线视频一区二区三区 | 成人av片在线观看 | 视频在线一区二区 | 久久综合一区 | 亚洲v日韩v综合v精品v | 欧美a区| 伊人伊人伊人 | 精品一二区 | 国产精品第2页 | 欧美v日韩v | 亚洲视频免费 | 久久久久久国产精品 | 亚洲精品在线观看视频 | 在线视频亚洲 | 黄色av免费网站 | 91精品久久久久久久久 | 国产91亚洲精品一区二区三区 | 午夜久久久久 | 欧美一级片在线观看 | 亚洲精品久久久一区二区三区 | 97avcc| 精品伊人久久 | 青青草免费在线视频 | 一区二区在线不卡 | 天堂一区| 最新中文字幕第一页视频 | 日韩一区二区av | 91福利在线观看 | 亚洲欧美视频一区 |