發(fā)布于:2021-02-07 17:10:20
0
719
0
開發(fā)是一個(gè)不斷發(fā)展的領(lǐng)域,作為開發(fā)人員,我們總是在尋找更快更有效的方法來(lái)解決問(wèn)題。這些年來(lái),我們處理和適應(yīng)問(wèn)題的方式發(fā)生了變化。
敏捷開發(fā)過(guò)程已經(jīng)成為一種越來(lái)越流行的方法,將軟件作為一系列需要解決的迭代問(wèn)題來(lái)處理。敏捷的測(cè)試、學(xué)習(xí)和調(diào)整模型產(chǎn)生了更多的邊做邊學(xué),這減少了像統(tǒng)一建模語(yǔ)言(UML)這樣的廣泛框架概念的使用。
UML涉及到創(chuàng)建和可視化整個(gè)系統(tǒng)的過(guò)程,以及它們?nèi)绾蜗嗷プ饔茫徽J(rèn)為是過(guò)時(shí)的。但是忽視UML這樣的基本概念是有其后果的。
在本文中,我將分析UML如何在開發(fā)過(guò)程中仍然發(fā)揮重要作用,以及它如何使我們成為更好的程序員和思想家。然而,在深入研究這些之前,讓我們先看看統(tǒng)一建模語(yǔ)言到底是什么。
UML是什么?
UML最初創(chuàng)建于1994年,作為軟件設(shè)計(jì)中標(biāo)準(zhǔn)化不同符號(hào)系統(tǒng)的一種方法。它基本上是一種統(tǒng)一的建模語(yǔ)言,由一組集成的圖表組成,這些圖表被創(chuàng)建來(lái)幫助軟件和系統(tǒng)開發(fā)人員可視化、指定、記錄和構(gòu)建軟件系統(tǒng)工件、非軟件系統(tǒng)和業(yè)務(wù)建模。
統(tǒng)一建模語(yǔ)言是在復(fù)雜系統(tǒng)建模方面非常成功的工程最佳實(shí)踐的匯編。
UML確實(shí)是開發(fā)軟件開發(fā)過(guò)程和面向?qū)ο筌浖囊粋€(gè)組成部分。它主要利用圖形符號(hào)來(lái)表達(dá)軟件項(xiàng)目設(shè)計(jì)。使用UML可以幫助項(xiàng)目工作組進(jìn)行交流,探索潛在的設(shè)計(jì),并驗(yàn)證軟件的體系結(jié)構(gòu)設(shè)計(jì)。
UML的用途:不同類型的應(yīng)用程序
統(tǒng)一建模語(yǔ)言有許多不同的應(yīng)用程序。您可以使用它來(lái)開發(fā)圖表,并為程序員提供具有表現(xiàn)力且隨時(shí)可用的建模示例,這些示例基本上描述了系統(tǒng)的結(jié)構(gòu)和行為。
一些UML工具從統(tǒng)一建模語(yǔ)言交付程序代碼。您可以使用UML對(duì)不依賴于平臺(tái)語(yǔ)言的特定系統(tǒng)進(jìn)行建模。
此外,UML吹噓的應(yīng)用程序超出了軟件開發(fā)的范圍,比如制造業(yè)中的過(guò)程流。這解決了敏捷所不能解決的問(wèn)題,并允許您在整個(gè)業(yè)務(wù)的上下文中看到您的開發(fā)需求。這種預(yù)先的或“瀑布式”的過(guò)程允許您一次想到整個(gè)系統(tǒng),并使您能夠靈活地看到不同的系統(tǒng)如何相互作用。
UML的優(yōu)點(diǎn)
今天使用UML有幾個(gè)好處,找到方法將其融入到您的開發(fā)過(guò)程中可以改進(jìn)您的思維過(guò)程并導(dǎo)致更高的組織效率。
讓新的開發(fā)人員或團(tuán)隊(duì)成員快速跟上進(jìn)度
在開發(fā)人員開始編寫代碼之前,統(tǒng)一建模語(yǔ)言圖可以幫助每個(gè)從事項(xiàng)目的團(tuán)隊(duì)成員都進(jìn)入同一個(gè)眾所周知的頁(yè)面。由于這些圖表的簡(jiǎn)單性,您還可以讓新的團(tuán)隊(duì)成員非??焖俚馗线M(jìn)度。
此外,通過(guò)理解他們?cè)噲D構(gòu)建的系統(tǒng),開發(fā)人員可以委派他們的工作,在實(shí)際工作開始之前找出潛在的問(wèn)題,然后朝著一個(gè)共同的目標(biāo)高效地工作。
定制UML圖中的元素
使統(tǒng)一建模語(yǔ)言成為軟件開發(fā)所急需和非常適合的語(yǔ)言是它的高度靈活性。您可以自由地在統(tǒng)一建模語(yǔ)言圖中定制您的建模交互和元素,特別是適合您使用的技術(shù)或領(lǐng)域。
在編程之前計(jì)劃好新功能
統(tǒng)一建模語(yǔ)言有助于在任何編程之前規(guī)劃新特性。這允許您在開發(fā)開始前識(shí)別問(wèn)題或潛在的問(wèn)題區(qū)域。這可以降低任何程序?qū)崿F(xiàn)期間的開銷。
此外,統(tǒng)一的建模語(yǔ)言模型圖很容易更改,而重新編寫某個(gè)代碼段可能會(huì)非常耗時(shí)和乏味。
更容易與技術(shù)和非技術(shù)受眾溝通
統(tǒng)一建模語(yǔ)言的一個(gè)最大優(yōu)點(diǎn)是,它可以方便地與技術(shù)和非技術(shù)受眾進(jìn)行交流。
例如,如果您正在考慮使用UML來(lái)解釋不同的軟件設(shè)計(jì)模型,那么可以肯定的是,大多數(shù)軟件專業(yè)人員在某種程度上都會(huì)熟悉UML圖,這樣就可以方便地進(jìn)行來(lái)回通信。
此外,您只需了解20%的統(tǒng)一建模語(yǔ)言就可以描述80%的建模需求。您不需要理解或知道完整的符號(hào),就可以借助UML圖進(jìn)行有效的通信。
UML圖的類型
UML圖甚至可以合并到敏捷開發(fā)中。通過(guò)更好地理解不同類型的UML圖及其用法,您可以開始根據(jù)您的特定需求創(chuàng)建自己的UML圖。
結(jié)構(gòu)圖
這些圖顯示了建模系統(tǒng)中的事物和元素。更嚴(yán)格地說(shuō),它們顯示了一個(gè)系統(tǒng)的不同對(duì)象。
類圖是幾乎所有面向?qū)ο蠓椒ǖ年P(guān)鍵,其中也包括UML。類圖描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)。
組件圖–這些圖描述了物理軟件組件組織,包括可執(zhí)行文件、運(yùn)行時(shí)代碼和源代碼。
部署圖–部署圖顯示了系統(tǒng)的物理資源,包括組件,節(jié)點(diǎn)和連接。
復(fù)合結(jié)構(gòu)圖–這些圖描述了類的內(nèi)部部分。
對(duì)象圖–對(duì)象圖說(shuō)明了系統(tǒng)在特定時(shí)間的靜態(tài)結(jié)構(gòu)。您可以使用它們來(lái)測(cè)試類圖。
行為圖
這些圖顯示了系統(tǒng)的行為以及與自身和其他實(shí)體(用戶、其他系統(tǒng))的交互。它們顯示數(shù)據(jù)如何在系統(tǒng)中移動(dòng),對(duì)象如何相互通信,時(shí)間的流逝如何影響系統(tǒng),或者什么事件導(dǎo)致系統(tǒng)改變內(nèi)部狀態(tài)。
序列圖–這些圖說(shuō)明了隨著時(shí)間的推移,不同類之間在消息交換方面的交互。
這個(gè)序列圖顯示了在ATM機(jī)上與客戶的交互。它可視化了系統(tǒng)如何交互以及以何種順序交互,使您能夠更好地理解如何以最佳方式設(shè)置開發(fā)流。
活動(dòng)圖–通過(guò)對(duì)從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的控制流進(jìn)行建模來(lái)描述系統(tǒng)的動(dòng)態(tài)特性。活動(dòng)表示某個(gè)特定類上導(dǎo)致系統(tǒng)狀態(tài)更改的操作。通常,可以使用活動(dòng)圖對(duì)內(nèi)部操作和業(yè)務(wù)流程或工作流進(jìn)行建模。
用例圖–這些圖使用用例和參與者來(lái)建模系統(tǒng)的功能。
用例圖幫助您更好地跟蹤和可視化參與者將如何在給定的系統(tǒng)中移動(dòng)。這是一個(gè)很好的低技術(shù)的方法來(lái)識(shí)別潛在的問(wèn)題和系統(tǒng)可能崩潰的地方。
我們的開發(fā)技術(shù)需要與時(shí)俱進(jìn)。盡管敏捷在處理和解決問(wèn)題方面有著不可否認(rèn)的優(yōu)勢(shì),而且可能更適合當(dāng)前的軟件需求,但重要的是我們不要忘記開發(fā)過(guò)程中的基本原理。
像UML這樣的技術(shù)可以改進(jìn)我們的過(guò)程,讓我們不僅成為更好的開發(fā)人員,而且成為更好的思考者。找到將UML之類的實(shí)踐合并到當(dāng)前開發(fā)模型中的方法可以讓您擁有一個(gè)強(qiáng)大的基礎(chǔ)框架,同時(shí)保持靈活和創(chuàng)新。
作者介紹
熱門博客推薦