您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)怎么理解UML,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
什么是UML?
Unified Modeling Language(統(tǒng)一建模語(yǔ)言)是國(guó)際對(duì)象管理組織OMG制定的一個(gè)通用的、可視化建模語(yǔ)言標(biāo)準(zhǔn),可以用來描述(specify)、可視化(visualize)、構(gòu)造(construct)和記載(document)軟件密集型系統(tǒng)的各種工件(artifacts,又譯制品)。
UML有哪些特點(diǎn)?
UML的“通用性”主要是指不僅僅可以用它來描述軟件,而且還可以用它來描述一般企業(yè)或組織的業(yè)務(wù)流程以及由軟、硬件共同組成、以軟件為主的復(fù)雜系統(tǒng)(即所謂的軟件密集型系統(tǒng)),甚至還包括非軟件系統(tǒng)。
UML的“可視性”是指可以通過UML一系列的圖形符號(hào),組成多種視圖(view)來直觀、清晰地表達(dá)系統(tǒng)分析設(shè)計(jì)中方方面面的、許多復(fù)雜的概念。UML主要是為了人的閱讀和使用而設(shè)計(jì)的,所以它采用了半形式化的,易于人們理解、交流的形式。
UML是一種分析設(shè)計(jì)專用的建模語(yǔ)言,它本身不是編程(programming)語(yǔ)言,不能直接用來生成可執(zhí)行的軟件。UML是一種抽象層次比C、C++、Java、VB、Delphi等文本高級(jí)語(yǔ)言更高的圖形語(yǔ)言,通過它我們可以抽象地表示用高級(jí)編程語(yǔ)言編寫的文本程序的邏輯結(jié)構(gòu)和行為。相比傳統(tǒng)的高級(jí)編程語(yǔ)言,UML能夠更加高效、準(zhǔn)確地反映軟件設(shè)計(jì)的方案和思路,是真正用來“設(shè)計(jì)程序”(design programs)的語(yǔ)言。從這個(gè)意義上看,不妨稱UML為“甚高級(jí)”程序設(shè)計(jì)語(yǔ)言。
UML基本上不能算作全新的發(fā)明,它并非學(xué)者教授、科研機(jī)構(gòu)的研究成果,而是直接來自于產(chǎn)業(yè)界、工程界的實(shí)踐總結(jié),是在歸納基礎(chǔ)上進(jìn)行理論升華的產(chǎn)物,其核心內(nèi)容反映了30多年來全球軟件工業(yè)的***在軟件設(shè)計(jì)構(gòu)造領(lǐng)域的***實(shí)踐和成功經(jīng)驗(yàn),因而具有很高的實(shí)用價(jià)值。
實(shí)踐證明,OO分析設(shè)計(jì)(OOAD)方法比傳統(tǒng)方法能更加準(zhǔn)確、全面地描述現(xiàn)實(shí)世界。UML是用來表述OO概念的一種語(yǔ)言工具,而很奇妙,它本身作為一件產(chǎn)品同樣也是用OO方法來設(shè)計(jì)的,這使得UML具有傳統(tǒng)建模語(yǔ)言所不具備的很強(qiáng)的語(yǔ)義表達(dá)能力和非常靈活的可擴(kuò)展性。
UML有什么用?
UML的用途非常廣泛,可以概括為“描述、可視化、構(gòu)造、記載”4種基本功能,在業(yè)務(wù)建模、需求分析、系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試、數(shù)據(jù)建模、項(xiàng)目管理等階段任務(wù)中均可根據(jù)需要采用。
UML建模是建立軟件開發(fā)文檔的一個(gè)有效手段,通過UML可視化地描述系統(tǒng)需求,記載軟件構(gòu)成,能夠顯著地提高文檔的質(zhì)量和可讀性,減少編寫文檔的工作量。
UML實(shí)質(zhì)上是一種系統(tǒng)分析設(shè)計(jì)專用語(yǔ)言,通過可視化的圖形符號(hào)結(jié)合文字說明或標(biāo)記可以幫助業(yè)務(wù)/系統(tǒng)分析員、軟件架構(gòu)師/設(shè)計(jì)師、程序員等各種建模者有效地描述復(fù)雜軟件(或業(yè)務(wù))的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為,包括工作流(數(shù)據(jù)流和控制流)、功能需求、結(jié)構(gòu)元素及關(guān)系、架構(gòu)組成、設(shè)計(jì)模式、對(duì)象協(xié)作、事件響應(yīng)和狀態(tài)變化等等。
UML不能做什么?
UML不是高度形式化的語(yǔ)言,一般不能用于定理證明。
UML是基于OO方法的通用建模語(yǔ)言,不適合用戶圖形界面設(shè)計(jì)、超大規(guī)模集成電路(VLSI)設(shè)計(jì)、基于規(guī)則的人工智能等專業(yè)領(lǐng)域。
UML是一種離散型建模語(yǔ)言,適合對(duì)由軟件、固件或數(shù)字邏輯構(gòu)成的離散系統(tǒng)建模,不適合對(duì)工程和物理學(xué)領(lǐng)域中的連續(xù)系統(tǒng)建模。
本身作為語(yǔ)言,UML僅僅是一種表達(dá)形式,不是建模方法,在實(shí)際的軟件項(xiàng)目開發(fā)中僅僅掌握一套標(biāo)準(zhǔn)的圖形符號(hào)是遠(yuǎn)遠(yuǎn)不夠的。用好UML首先需要掌握OOAD的基本原則和方法,并在一定的軟件開發(fā)過程(如UP/RUP、XP等)的指導(dǎo)下進(jìn)行有取舍的運(yùn)用。
為什么要學(xué)習(xí)和掌握UML?
首先,UML對(duì)于當(dāng)前大多數(shù)希望進(jìn)一步改進(jìn)質(zhì)量的軟件開發(fā)團(tuán)隊(duì)來說是必不可少或必須的。為什么這樣說呢?因?yàn)椋珻++、Java等源碼并不能直觀、方便地反映復(fù)雜程序的設(shè)計(jì):如內(nèi)部邏輯結(jié)構(gòu)、各種隱含的依賴關(guān)系、運(yùn)行時(shí)的狀態(tài)改變和特殊行為等等。寫好的代碼僅僅是一種實(shí)現(xiàn)方式,很難反映出現(xiàn)象背后的真實(shí)本質(zhì)——設(shè)計(jì),因此對(duì)于大多數(shù)稍稍復(fù)雜點(diǎn)的項(xiàng)目來說,僅有代碼是不夠的。
可視化建模歷來是一種成功的工程實(shí)踐做法,并非軟件行業(yè)所特有。軟件的設(shè)計(jì)方案在用C++、Java實(shí)現(xiàn)之前通常隱藏在人們的頭腦當(dāng)中,而設(shè)計(jì)正確與否是決定軟件質(zhì)量好壞的要害,一個(gè)前提是必須用適當(dāng)?shù)姆绞桨阉磉_(dá)出來。通過程序代碼來表達(dá)、討論、評(píng)估和選擇復(fù)雜軟件的設(shè)計(jì)往往是很笨拙的,這一表達(dá)方式的空欠唯有通過類似UML的建模語(yǔ)言來填補(bǔ)。
其次,OO方法是當(dāng)代主流的軟件開發(fā)技術(shù)。世界先進(jìn)的軟件團(tuán)隊(duì)和個(gè)人早已擺脫了對(duì)如何使用具體的平臺(tái)API、個(gè)別編程語(yǔ)言特性的糾纏,而把更多的精力放在了需求、架構(gòu)、設(shè)計(jì)機(jī)制和模式等對(duì)軟件質(zhì)量有重大影響的核心要素,分析與設(shè)計(jì)上。UML作為OO建模語(yǔ)言的事實(shí)上標(biāo)準(zhǔn)和主要的表達(dá)媒介,在這些場(chǎng)合能發(fā)揮關(guān)鍵的作用。所以,熟練地掌握并運(yùn)用好UML是當(dāng)今系統(tǒng)分析員、架構(gòu)師/設(shè)計(jì)師以及程序員等軟件工程師所必備的一項(xiàng)基本技能。
看完上述內(nèi)容,你們對(duì)怎么理解UML有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。