版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、UML輔助網(wǎng)站規(guī)劃和設(shè)計指南(松下客2001年05月28日 12:02)一、概述 Web網(wǎng)站往往具有復雜與高度動態(tài)的特點。為了讓Web應用在短時間之內(nèi)開始運作,開發(fā)周期應該盡量地短。許多時候,開發(fā)者直接進入編寫代碼這一階段,卻不去仔細考慮自己想要構(gòu)造的是什么樣的網(wǎng)站以及準備如何構(gòu)造:服務器端代碼往往是毫無準備的即興式編寫,數(shù)據(jù)庫表也是隨需隨加,整個應用的體系有時候呈現(xiàn)一種無規(guī)劃狀態(tài)。然而,只要我們運用一些建模技術(shù)和軟件工程技術(shù),就能夠讓開發(fā)過程更加流暢,確保Web應用將來更容易維護。UML(UUniffiedd Moodellingg Laanguuagee,統(tǒng)一一建模語語言)是是一種通通用的
2、可可視化建建模語言言,用于于對軟件件進行描描述、可可視化處處理、構(gòu)構(gòu)造和建建立軟件件系統(tǒng)的的文檔。UUML適適用于各各種軟件件開發(fā)方方法、軟軟件生命命周期的的各個階階段、各各種應用用領(lǐng)域以以及各種種開發(fā)工工具。UUML能能夠描述述系統(tǒng)的的靜態(tài)結(jié)結(jié)構(gòu)和動動態(tài)行為為:靜態(tài)態(tài)結(jié)構(gòu)定定義了系系統(tǒng)中重重要對象象的屬性性和操作作以及這這些對象象之間的的相互關(guān)關(guān)系;動動態(tài)行為為定義了了對象的的時間特特性和對對象為完完成目標標任務而而相互進進行通信信的機制制。UMML不是是一種程程序設(shè)計計語言,但但我們可可以用代代碼生成成器將UUML模模型轉(zhuǎn)換換為多種種程序設(shè)設(shè)計語言言代碼,或或使用反反向生成成器工具具將程序
3、序源代碼碼轉(zhuǎn)換為為UMLL模型。本文介紹用用UMLL為Weeb網(wǎng)站站建模的的一些方方法。全全面采用用UMLL技術(shù)是是一個復復雜的過過程,但但UMLL的某些些部分很很容易使使用,而而且它能能夠幫助助你用更更少的時時間構(gòu)造造出更好好的系統(tǒng)統(tǒng)。為了示范UUML在在網(wǎng)站建建設(shè)中的的應用,本本文將構(gòu)構(gòu)造一個個支持無無線用戶戶、提供供各個地地區(qū)天氣氣報表和和交通流流量報表表的網(wǎng)站站。本文文不準備備詳細介介紹UMML本身身。但為為了方便便起見,附附錄中簡簡要介紹紹了常見見的UMML符號號和術(shù)語語。要了了解更多多有關(guān)UUML的的信息,請請參見文文章最后后的參考考資源。二、規(guī)劃階階段 不論你是從從頭開始始構(gòu)造網(wǎng)
4、網(wǎng)站、移移植網(wǎng)站站還是增增加某個個重要的的功能,為為了確保保設(shè)計決決策的最最優(yōu)化,進進行一些些先期規(guī)規(guī)劃是必必要的。如如果你和和其他人人協(xié)作完完成一項項工程,就就工作總總量及其其分配達達成明確確的共識識具有不不可估量量的作用用。在規(guī)規(guī)劃期間間,你應應該努力力對系統(tǒng)統(tǒng)的以下下方面形形成正確確的認識識:用戶和角色色。 應用需求。 各個界面之之間的轉(zhuǎn)轉(zhuǎn)換流程程。 要用到的工工具和技技術(shù)。2.1 用用戶 了解使用系系統(tǒng)的用用戶是很很重要的的。不僅僅系統(tǒng)分分析要求求你接觸觸一些用用戶(通通過問卷卷調(diào)查、eemaiil,或或者面對對面交談談),而而且你經(jīng)經(jīng)常還要要讓系統(tǒng)統(tǒng)能夠控控制不同同的用戶戶角色和和權(quán)
5、限。通通過對用用戶進行行分類并并了解他他們的需需求,你你就可以以找出線線索來確確定數(shù)據(jù)據(jù)庫的安安全機制制、功能能限制方方法、用用戶界面面分組、培培訓和幫幫助需求求、對具具體內(nèi)容容的需求求,甚至至還可以以從側(cè)面面了解到到潛在廣廣告客戶戶的分布布。圖1:參與與者/角角色 層層次圖 上圖顯示了了幾組不不同的網(wǎng)網(wǎng)站用戶戶(在UUML中中稱為AActoor,即即參與者者)。在在這里,最最普通的的用戶類類型(“SSitee Usser”)位位于圖的的頂端,實實線箭頭頭表示ggeneerallizaatioon關(guān)系系(“泛泛化”關(guān)關(guān)系,參參見本文文附錄說說明,下下同),它它表示SSitee Usser又又可
6、以具具體分成成兩類用用戶:GGuesst,RRegiisteeredd Usser。這這兩類用用戶共有有的特征征在“SSitee Usser”參參與者中中說明,而而Gueest和和Reggisttereed UUserr各自私私有的特特征則在在對應的的參與者者中說明明。通常常,你可可以直接接為參與與者加上上說明文文檔,無無需單獨獨編寫說說明用戶戶的文檔檔,但具具體與你你所用的的UMLL工具有有關(guān)。在在本例中中,Reegissterred Useer又可可以細分分為Wiirellesss Usser和和Admminiistrratoor兩種種類型,系系統(tǒng)對這這些用戶戶的處理理方式應應有所不不同。
7、2.2 定定義需求求 在正式開始始編寫代代碼之前前,你應應該對準準備構(gòu)造造一個怎怎樣的系系統(tǒng)有一一個清晰晰的認識識。雖然然在編寫寫代碼的的同時也也可以逐逐步完成成這一工工作,而而且這種種做法也也很有吸吸引力,但但借助圖圖形和文文字資料料事先集集體進行行討論效效率要高高得多。為為網(wǎng)站編編寫詳細細的需求求說明往往往不那那么合算算,但你你應該有有時間畫畫出幾個個草圖、寫寫下幾段段注解去去說明網(wǎng)網(wǎng)站準備備提供的的服務。這這就要用用到Usse CCasee圖(用用例圖)。UUse Casse可以以看成一一組功能能它它可能對對應網(wǎng)站站上的一一個頁面面、一個個必須編編寫的程程序,或或者網(wǎng)站站上可能能發(fā)生的的
8、一個動動作(比比如,驗驗證用戶戶登錄,改改變用戶戶的配置置文件,清清除過期期的帳號號,等等等)。下下面就是是一個能能夠幫助助你規(guī)劃劃網(wǎng)站的的Usee Caase圖圖。注意意,該圖圖并沒有有顯示出出網(wǎng)站的的所有UUse Casse,通通常我們們需要多多個Usse CCasee圖才能能描述完完整的網(wǎng)網(wǎng)站功能能。圖2:Usse CCasee圖 即使是在這這樣一個個簡單的的Usee Caase圖圖中,我我們也能能夠輕松松地表達達出大量量的信息息。例如如,inncluude關(guān)關(guān)系說明明兩個UUse Casse包含含同樣的的身份驗驗證功能能;exxtennd關(guān)系系說明天天氣頁面面可能以以WMLL或者HHT
9、MLL格式顯顯示;ggeneerallizaatioon關(guān)系系說明各各個具體體的表現(xiàn)現(xiàn)過程將將遵從“RRendder HTMML PPagee”或者者“Reendeer WWML Pagge”所所描述的的基本行行為規(guī)則則以達到到維持統(tǒng)統(tǒng)一的風風格效果果和統(tǒng)一一宏觀行行為模式式的目的的。上圖也顯示示出無線線用戶能能夠訪問問網(wǎng)站中中其他用用戶不能能訪問的的某些區(qū)區(qū)域。在在這個UUse Casse圖中中,只有有無線用用戶能夠夠訪問交交通流量量報表。這這是因為為我們已已經(jīng)得知知只有在在旅途中中的移動動用戶才才需要交交通流量量報表,而而且不想想再花時時間把交交通流量量報表制制作成其其他標記記語言形形式。
10、由由此,“GGet Traaffiic RRepoort”UUse Casse不需需要分成成WMLL和HTTML兩兩種顯示示形式,它它可以直直接包含含“Reendeer WWML Traaffiic RRepoort”這這個Usse CCasee。一般地,你你應該為為這些UUse Casse加上上簡單的的說明。具具體地說說,你應應該描述述每一個個Usee Caase里里將要發(fā)發(fā)生什么么,誰可可以使用用它,它它如何啟啟動、如如何停止止,以及及某些時時候可能能發(fā)生的的特殊事事件(稱稱為vaariaatioon,即即變化)。2.3 用用戶界面面組織 在制作Usse CCasee的過程程中,你你會得到
11、到一些指指示網(wǎng)站站需要哪哪些用戶戶界面的的線索。也也許你早早就有了了設(shè)計某某些頁面面的絕妙妙主意,但但Usee Caase幫幫助我們們從另外外一個角角度來看看問題。用用戶是否否確實需需要那么么多的界界面?某某個頁面面是否過過于復雜雜?網(wǎng)站站的導航航設(shè)施是是否簡單單易用,即即從主頁頁訪問常常用服務務是否很很方便?在勾畫畫界面草草圖、制制作網(wǎng)站站原型之之前,你你應該先先在Usse CCasee圖中解解決這些些問題。當Use Casse逐漸漸清晰時時,我們們就可以以開始勾勾畫出網(wǎng)網(wǎng)站的大大致結(jié)構(gòu)構(gòu)。有些些人會強強調(diào)說頁頁面和文文件應該該用相應應的構(gòu)件件圖(CCompponeent Diaagraam
12、)建建模,其其實類圖圖(Cllasss Diiagrram)工工具也很很方便。請請參見下下圖:圖3:用戶戶界面及及其布局局 在上圖中,各各種網(wǎng)站站服務被被捆綁到到了不同同的網(wǎng)站站區(qū)域:/ - 網(wǎng)網(wǎng)站的根根 /commmon/ - 公用的的圖形、腳腳本、CCSS文文件等 /mapss/ - 地圖圖數(shù)據(jù) /traffficc/ - 交通通流量報報表 /weattherr/ - 天氣氣報表該圖還顯示示了在頁頁面之間間傳遞的的參數(shù)。rregiionIId是一一個很重重要的參參數(shù),它它代表著著用戶感感興趣的的地區(qū)(可可能是一一個國家家、城市市或者省省份)。rregiionIId在頁頁面之間間傳遞地地區(qū)信
13、息息,使得得用戶能能夠從指指定地區(qū)區(qū)的天氣氣報表跳跳轉(zhuǎn)到交交通流量量信息。至至于網(wǎng)站站的coommoon區(qū)域域,你可可以看到到指針指指向的是是整個包包(paackaage)而而不是區(qū)區(qū)域中的的單個文文件,這這是一種種減少混混亂的簡簡化方法法,因為為所有其其它的包包都要用用到大部部分(如如果不是是全部的的話)/commmonn/區(qū)域域中的文文件。用戶界面布布局圖能能夠幫助助你避免免網(wǎng)站混混亂,它它對于規(guī)規(guī)劃網(wǎng)站站是很有有用的。而而且,一一旦確定定了一種種有效的的網(wǎng)站結(jié)結(jié)構(gòu)組織織方式,它它還可以以作為一一個固定定的模式式在多個個網(wǎng)站上上應用。2.4 工工具選擇擇 對于小型網(wǎng)網(wǎng)站,選選擇工具具和技術(shù)
14、術(shù)相當簡簡單。特特別是由由于投資資的原因因,只有有少數(shù)幾幾種工具具組合才才具有現(xiàn)現(xiàn)實意義義AApacche,MMySQQL或者者PosstgrreSQQL,PPHP、PPerll或JSSP/SServvlett。當前前最流行行的組合合是Appachhe + PHHP + MyySQLL,有許許多低價價位的WWeb托托管服務務支持并并主要集集中在這這種工具具組合上上。而對對于規(guī)模模較大的的網(wǎng)站,在在投資應應用軟件件之前,它它必須對對各種工工具進行行更嚴格格的評估估和測試試。下面面是一個個構(gòu)件圖圖的例子子,它可可以用來來說明網(wǎng)網(wǎng)站的體體系結(jié)構(gòu)構(gòu)。這個個圖形雖雖然簡單單,但它它已經(jīng)描描述出了了當前大
15、大多數(shù)網(wǎng)網(wǎng)站的體體系結(jié)構(gòu)構(gòu),對于于你的網(wǎng)網(wǎng)站,重重新制作作該圖可可能也沒沒有必要要,因為為再也沒沒有什么么與眾不不同的內(nèi)內(nèi)容值得得加入這這個圖形形了。圖4:網(wǎng)站站體系結(jié)結(jié)構(gòu)圖 討論軟件的的整個生生命周期期已經(jīng)超超出了本本文的范范圍,但但應該指指出的是是,建立立應用原原型和界界面模型型應該在在這個時時候就開開始。務務必記下下有關(guān)網(wǎng)網(wǎng)站結(jié)構(gòu)構(gòu)和頁面面布局的的一些想想法,因因為最終終你會想想要為布布局(菜菜單,導導航條,頁頁面整體體布局等等)編寫寫一些公公用的代代碼。另另外,如如果你正正在轉(zhuǎn)到到新的工工具和技技術(shù),建建立原型型的工作作能夠讓讓你確保保設(shè)計的的可行性性,確信信已經(jīng)就就新工具具的使用用對
16、開發(fā)發(fā)組成員員進行了了足夠的的培訓。三、設(shè)計階階段 設(shè)計階段應應該與分分析階段段交迭。一一旦對自自己所要要構(gòu)造的的系統(tǒng)有有了較多多的認識識,你就就應該開開始擬定定設(shè)計思思路。先先1000%地分分析系統(tǒng)統(tǒng)再進入入設(shè)計階階段是沒沒有意義義的。需需求總是是不斷地地發(fā)展,而而設(shè)計本本身有時時也會推推動需求求的發(fā)展展(反之之亦然)。所所有的開開發(fā)者都都在進行行某種類類型的設(shè)設(shè)計只不過過有些開開發(fā)者直直接以編編程代碼碼的形式式進行設(shè)設(shè)計。雖雖然這也也能夠完完成任務務,但它它使得管管理復雜雜工程和和在工作作組之內(nèi)內(nèi)分配任任務變得得非常困困難。先先花一點點時間通通過設(shè)計計圖構(gòu)造造系統(tǒng)模模型,以以后你將將獲得巨
17、巨大的回回報。3.1 為為未來而而設(shè)計 許多開發(fā)者者花費在在代碼調(diào)調(diào)試和改改寫上的的時間超超過了編編寫代碼碼的時間間,如果果從一個個以上網(wǎng)網(wǎng)站的建建設(shè)來看看這個問問題,情情況就尤尤其嚴重重了。好好的網(wǎng)站站設(shè)計能能夠以結(jié)結(jié)構(gòu)、組組織方式式和代碼碼重用的的形式應應用到多多個網(wǎng)站站上。然然而,如如果代碼碼只是匆匆匆忙忙忙堆砌而而成,從從現(xiàn)有代代碼長期期獲益的的機會就就減少了了。要對對網(wǎng)站進進行設(shè)計計規(guī)劃,一一種很有有效的方方法是畫畫出類圖圖(Cllasss Diiagrram)。下下圖顯示示了類圖圖通常要要用到的的許多重重要關(guān)系系。圖5:類圖圖 說明如下:Rendeererr類是一一個抽象象類(用用
18、斜體字字顯示)。這這意味著著Rennderrer類類不能直直接使用用,程序序只能創(chuàng)創(chuàng)建其子子類的實實例(即即neww Reegioon())。為為了滿足足把頁面面內(nèi)容顯顯示到不不同類型型瀏覽器器的需要要,所有有用來生生成內(nèi)容容的頁面面都必須須從Reendeererr類派生生。 WeathherRRepoort類類創(chuàng)建并并擁有RRegiion對對象,這這通過代代表聚合合關(guān)系(AAggrregaate Rellatiionsshipp)的黑黑色菱形形顯示出出來,它它表示一一個對象象擁有并并創(chuàng)建其其他對象象。 方法名字前前面的加加號(“+”)表表示該方方法是公公用方法法,可以以被其他他對象或或者函數(shù)
19、數(shù)調(diào)用;減號(“-”)表表示方法法或者變變量是私私有的,只只能由同同一對象象內(nèi)部的的成員函函數(shù)訪問問。在PPHP中中方法和和變量是是公用的的,但我我們應該該總是把把變量看看成私有有,避免免從對象象外部直直接訪問問變量。 HTMLWWeattherrRepportt類依賴賴于HTTMLUUtills類。依依賴關(guān)系系(deepenndenncy)表表示一個個類要創(chuàng)創(chuàng)建另一一個類的的實例或或者調(diào)用用另一個個類的方方法。 類圖中的每每一個類類應該注注明:所所有的方方法(以以及所有有的變量量,如有有的話),方方法的訪訪問屬性性(puubliic,pprivvatee或者pprottectted),方方法
20、的返返回值類類型,方方法的參參數(shù),變變量的類類型。函函數(shù)寫在在前面,如如果類有有變量的的話,則則一般隨隨后在一一個分開開的方框框中列出出。即使你所構(gòu)構(gòu)造的不不是一個個面向?qū)ο蟮南迪到y(tǒng),你你仍就可可以用類類圖建立立系統(tǒng)的的模型。類類能夠方方便地描描述出各各種包含含關(guān)系和和你所編編寫的函函數(shù)文件件。雖然然此時類類圖不再再顯示繼繼承、構(gòu)構(gòu)成/聚聚合等面面向?qū)ο笙笙到y(tǒng)特特有的關(guān)關(guān)系,但但它可以以用依賴賴關(guān)系描描述出文文件之間間的調(diào)用用關(guān)系。3.2 運運行時的的系統(tǒng)模模型 有些時候,我我們需要要顯示出出應用的的各個部部件如何何在運行行時協(xié)作作完成任任務。前前面的類類圖顯示示了類之之間的關(guān)關(guān)系,但但它沒
21、有有顯示出出調(diào)用出出現(xiàn)的次次序,也也沒有顯顯示出來來自一個個函數(shù)的的結(jié)果可可能決定定下一次次調(diào)用的的目標。為為了在更更動態(tài)的的層面上上描述系系統(tǒng),UUML提提供了許許多其他他類型的的圖。對對于Weeb網(wǎng)站站設(shè)計來來說,情情節(jié)圖(SScennariio DDiaggramm)特別別有用。情情節(jié)圖分分成兩種種:協(xié)作作圖(CColllaboorattionn Diiagrram),序序列圖(SSequuencce DDiaggramm)。一一般地,我我們不會會建立系系統(tǒng)所有有交互過過程的模模型,情情節(jié)圖只只用來描描述系統(tǒng)統(tǒng)最復雜雜的部分分,或用用來概括括出代碼碼的一般般調(diào)用模模式。例例如,我我們可能
22、能要示范范特定的的頁面如如何與驗驗證用戶戶身份的的代碼協(xié)協(xié)作,或或者要顯顯示頁面面如何調(diào)調(diào)用公用用代碼(工工具性的的框架代代碼)以以保持統(tǒng)統(tǒng)一的外外觀和風風格。協(xié)作圖和序序列圖分分別舉例例如下。圖6:協(xié)作作圖 上面的協(xié)作作圖顯示示了從WWeb網(wǎng)網(wǎng)站獲取取天氣報報表的一一般過程程。注意意該圖忽忽略了一一些不重重要的方方法,因因為我們們只對處處理過程程中的關(guān)關(guān)鍵步驟驟感興趣趣。你可可以根據(jù)據(jù)編號“11”到“11.3.3.44”找出出各個函函數(shù)的執(zhí)執(zhí)行次序序。一些些人喜歡歡以“11,2,33,”形式式對執(zhí)行行步驟編編號,但但一般而而言,用用“1,11.1,11.2,22,2.1,”的的形式顯顯示出調(diào)
23、調(diào)用棧的的深度是是一種更更好的選選擇,這這種編號號方式能能夠更清清楚地顯顯示出程程序的控控制轉(zhuǎn)換換過程。例例如,上上圖顯示示出reeporrt()方法調(diào)調(diào)用了WWMLUUtill以及RRegiion對對象中的的許多方方法:在在通過一一系列的的查詢和和內(nèi)容生生成函數(shù)數(shù)為指定定地區(qū)生生成報表表之前,我我們調(diào)用用了WMMLUttil中中的buuilddHeaaderr()函函數(shù);最最后我們們調(diào)用的的是WMMLUttil模模塊的bbuilldFoooteer(),然后后返回rrepoort()方法法,最后后返回ggetPPagee()。你你可以為為協(xié)作圖圖加上更更多的細細節(jié)說明明,比如如返回值值、約束
24、束、條件件等。圖7:序列列圖 就圖形所傳傳達的信信息而言言,次序序圖和協(xié)協(xié)作圖非非常相似似。事實實上,許許多UMML建模模工具能能夠從協(xié)協(xié)作圖生生成次序序圖,或或者相反反。次序序圖與協(xié)協(xié)作圖的的主要不不同之處處在于:在次序序圖上,事事件的發(fā)發(fā)生次序序一目了了然,非非常直觀觀。另外外,次序序圖中還還可以加加入生存存周期和和時間方方面的詳詳細信息息,比如如延遲、線線程并發(fā)發(fā)、對象象的構(gòu)造造和刪除除等。在決定選用用次序圖圖還是協(xié)協(xié)作圖的的時候,考考慮以下下幾點有有助于你你作出最最合適的的選擇:如果要顯示示代碼中中與時間間或線程程密切相相關(guān)的問問題,選選擇次序序圖。 如果要顯示示對象之之間的交交互模式
25、式,選擇擇協(xié)作圖圖。 如果要顯示示幾個或或者大量量對象之之間的交交互過程程,選擇擇次序圖圖。 如果要顯示示少量對對象之間間的大量量消息傳傳遞或交交互過程程,選擇擇協(xié)作圖圖。3.3 應應用部署署的規(guī)劃劃 正如本文前前面“工工具選擇擇”部分分所提到到的,大大多數(shù)WWeb網(wǎng)網(wǎng)站的體體系結(jié)構(gòu)構(gòu)并不復復雜。盡盡管如此此,部署署圖(DDeplloymmentt Diiagrram)在在兩個方方面仍舊舊很有用用:網(wǎng)站站結(jié)構(gòu),文文件組織織。對于于文件組組織,前前面討論論界面規(guī)規(guī)劃時已已經(jīng)提到到它也可可以用類類建模工工具進行行規(guī)劃。下下面給出出一個簡簡單的構(gòu)構(gòu)件圖供供參考,但但根據(jù)網(wǎng)網(wǎng)站的需需要和復復雜程度度的
26、不同同,你可可能不需需要它。圖8:構(gòu)件件圖 3.4 設(shè)設(shè)計原則則 UML只是是一個工工具。如如果使用用得法,UUML能能夠幫助助我們輕輕松地構(gòu)構(gòu)造出更更好的網(wǎng)網(wǎng)站。然然而,要要設(shè)計出出優(yōu)秀的的網(wǎng)站,關(guān)關(guān)鍵仍在在于要有有一個好好的設(shè)計計原則或或理念?!疤岣哳惖牡膬?nèi)聚力力,減少少不同類類之間的的聯(lián)系”這這一點在在談到好好的面向向?qū)ο笤O(shè)設(shè)計原則則時經(jīng)常常被反復復引用。一一個內(nèi)聚聚的類包包含那些些在目標標和作用用域上都都緊密相相關(guān)的行行為和信信息。它它意味著著你不應應該把構(gòu)構(gòu)造UII的代碼碼和實現(xiàn)現(xiàn)數(shù)學算算法的代代碼混合合到一起起,你應應該盡力力把所有有與用戶戶緊密相相關(guān)的信信息封裝裝到UsserAA
27、ccoountt類。內(nèi)內(nèi)聚式設(shè)設(shè)計是一一個重要要的設(shè)計計原則,原原因有很很多:它它有助于于減少類類之間的的依賴關(guān)關(guān)系,使使得設(shè)計計更直觀觀、更容容易理解解,方便便了向其其他開發(fā)發(fā)者介紹紹整個設(shè)設(shè)計,減減少了開開發(fā)者同同一時刻刻需要操操作的類類的數(shù)量量,等等等。例如如,如果果你要改改變網(wǎng)站站的用戶戶身份驗驗證機制制,只修修改單個個文件中中的一個個類無疑疑要比修修改多個個文件、多多個類更更加方便便?!皽p少不同同類之間間的聯(lián)系系”意味味著使類類或者文文件之間間的交互互減到最最少。它它不僅使使得整個個設(shè)計容容易理解解,而且且也方便便了代碼碼的維護護。請考考慮下面面這個例例子:圖9:設(shè)計計實例AA 除非
28、深入了了解了上上述各個個類的用用途,要要估計這這些類的的內(nèi)聚程程度是不不可能的的。然而而,從這這些類之之間的關(guān)關(guān)系可以以看出,這這個設(shè)計計方案已已經(jīng)成功功地減少少了不同同類之間間的聯(lián)系系。類之之間的交交互被減減到了最最少,從從而使得得系統(tǒng)的的行為很很容易理理解。更更重要的的是,修修改任意意一個類類時受影影響的類類數(shù)量都都減到了了最少(例例如,修修改D類類只直接接影響B(tài)B類)。另另外,要要訪問DD類中的的功能,我我們無需需知道任任何有關(guān)關(guān)E、FF或G類類的情況況。作為為比較,請請考慮下下圖:圖10 設(shè)設(shè)計實例例B 顯然,在這這個設(shè)計計實例中中,類之之間的聯(lián)聯(lián)系是相相當緊密密的。一一旦對DD1類作
29、作了修改改,為了了檢查這這種修改改對其他他類的影影響,我我們必須須對其他他類進行行廣泛的的測試。只有在實踐踐中不斷斷鍛煉才才能避免免出現(xiàn)過過于復雜雜的設(shè)計計,但注注意以下下幾點有有助于達達到這一一目標:提高類的內(nèi)內(nèi)聚力。不不要把密密切相關(guān)關(guān)的功能能分散到到多個文文件和類類之中。 采用直觀、有有意義的的名字。如如果其他他人不能能了解類類、函數(shù)數(shù)或者變變量的作作用,不不管類的的結(jié)構(gòu)是是多么完完美,整整個設(shè)計計仍缺乏乏直觀性性。過多多地采用用縮寫詞詞會影響響設(shè)計的的可理解解性。 不要害怕改改寫代碼碼。有些些時候,在在幾個類類之間移移動一些些函數(shù)能能夠大大大地簡化化代碼。 類應該保持持緊湊、簡簡潔。代
30、代碼膨脹脹是類缺缺乏內(nèi)聚聚力的一一種征兆兆。過于于龐大的的類、模模塊或者者文件往往往缺乏乏明確的的用途和和目標。 讓其他人復復查你的的設(shè)計。其其他人可可能有新新的想法法,或者者為你指指出你以以為顯而而易見但但別人卻卻不能明明白的問問題。 在早期設(shè)計計階段不不要考慮慮太多的的性能問問題。與與一個笨笨拙的、為為了昨天天所出現(xiàn)現(xiàn)的問題題而優(yōu)化化的設(shè)計計相比,一一個簡潔潔、經(jīng)過過精心調(diào)調(diào)整的設(shè)設(shè)計更容容易進行行性能優(yōu)優(yōu)化。注注意這并并不是建建議把性性能問題題拋到腦腦后,而而是建議議把細節(jié)節(jié)優(yōu)化問問題留到到工程后后期考慮慮。四、UMLL工具 下面是一些些值得考考慮的UUML建建模工具具: HYPERLI
31、NK t _blank Microosofft VVisiio:VVisiio PProffesssionnal 20000現(xiàn)在在開始提提供內(nèi)建建的UMML支持持。如果果考慮VVisiio繪圖圖工具的的其他各各種用途途,這是是一個相相當有價價值的工工具。如如果你使使用20000以以前的版版本,你你可以在在這里找找到 HYPERLINK t _blank Viisioo Sttenccil andd Teempllatee foor UUML。 HYPERLINK t _blank Ratioonall Roose:這是一一個推薦薦使用的的工具,但但對于許許多小型型Webb工程來來說它顯顯得很昂
32、昂貴。有有了Raatioonall Roose這這樣的工工具,改改進和維維護設(shè)計計、從模模型生成成報表、在在平行協(xié)協(xié)作環(huán)境境中與他他人共同同進行建建模工作作就很方方便了。 HYPERLINK t _blank MagiccDraaw:一一個基于于Javva的廉廉價UMML建模模工具。 HYPERLINK t _blank Togettherr:與CC/C+和JJavaa聯(lián)系密密切,支支持UMML建模模。 HYPERLINK t _blank Objeccteeerinng UUML:一個免免費的個個人UMML產(chǎn)品品。 HYPERLINK t _blank Systeem AArchhiteec
33、t:一個很很受歡迎迎的高端端UMLL建模工工具,支支持雙向向工程(RRounnd-ttripp Ennginneerringg)。五、附錄:常用UUML符符號和參參考資源源 下面這個表表格簡要要介紹了了常用的的UMLL符號和和關(guān)系。要要了解有有關(guān)UMML概念念和各種種面向?qū)ο笮g(shù)語語的詳細細說明,請請參見后后面的參參考資源源。符號說明Packaage包包。用來來聚集和和組織模模型中的的一個部部分(UUse Casse,類類,等等等)。Actorr參與者者。它代代表一個個用戶或或者其他他外部的的激勵器器。Use CCasee用例。UUse Casse描述述了系統(tǒng)統(tǒng)某一部部分的行行為。一一般地,U
34、Use Casse記錄錄對某個個系統(tǒng)功功能的需需求,而而這個功功能由對對動作或或者事件件的應答答示范。 Reelattionnshiip包含含關(guān)系。標標注為關(guān)系系的Usse CCasee關(guān)系能能夠引入入其他UUse Casse的功功能。這這是一種種方便的的分割UUse Casse、避避免單個個Usee Caase過過于龐大大的方法法。 Rellatiionsshipp擴充關(guān)關(guān)系。標標注為關(guān)系的的Usee Caase關(guān)關(guān)系能夠夠在不重重復現(xiàn)有有Usee Caase的的各種描描述和需需求的情情況下,使使現(xiàn)有UUse Casse的行行為特殊殊化。Depenndenncy依依賴。正正如其字字面意義義,它表表示一個個事物依依賴另一一個事物物。這意意味著一一個事物物了解另另一個事事物,并并需要另另外一個個事物才才能發(fā)揮揮功能。Note注注解。在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年及未來5年中國金融軟件行業(yè)市場競爭格局及投資前景展望報告
- 2025年社區(qū)智慧健康管理服務平臺技術(shù)創(chuàng)新與市場前景研究報告
- 中國科學院空間應用工程與技術(shù)中心2025年校園招聘備考題庫及1套完整答案詳解
- 2026年溫州市特種設(shè)備檢測科學研究院招聘備考題庫及一套答案詳解
- 廈門銀行三明分行2026年社會招聘備考題庫帶答案詳解
- 2025至2030中國塑料改性技術(shù)發(fā)展趨勢與產(chǎn)業(yè)升級路徑研究報告
- 2025-2030中國羽絨被行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030土木建筑項目可行性研究報告
- 2025-2030中國棉花纖維行業(yè)市場全景調(diào)研及投資價值評估咨詢報告
- 2026年浙江大學軟件學院招聘備考題庫及1套完整答案詳解
- 江蘇省淮安市2024-2025學年七年級下學期期末歷史試題(含答案)
- 醫(yī)療器械胰島素泵市場可行性分析報告
- 地鐵施工現(xiàn)場防臺風措施
- 種植業(yè)合作社賬務處理
- 【麗江玉龍旅游薪酬制度的創(chuàng)新研究6100字】
- 公司兩權(quán)分離管理制度
- 車輛叉車日常檢查記錄表
- 廣東高校畢業(yè)生“三支一扶”計劃招募考試真題2024
- 膠帶機硫化工藝.課件
- 種雞免疫工作總結(jié)
- 河南省商丘市柘城縣2024-2025學年八年級上學期期末數(shù)學試題(含答案)
評論
0/150
提交評論