UML輔助網(wǎng)站規(guī)劃與設(shè)計(jì)指導(dǎo)書_第1頁(yè)
UML輔助網(wǎng)站規(guī)劃與設(shè)計(jì)指導(dǎo)書_第2頁(yè)
UML輔助網(wǎng)站規(guī)劃與設(shè)計(jì)指導(dǎo)書_第3頁(yè)
UML輔助網(wǎng)站規(guī)劃與設(shè)計(jì)指導(dǎo)書_第4頁(yè)
UML輔助網(wǎng)站規(guī)劃與設(shè)計(jì)指導(dǎo)書_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、UML輔輔助網(wǎng)站站規(guī)劃和和設(shè)計(jì)指指南(松松下客20001年005月228日 12:02)一、概述述 Web網(wǎng)網(wǎng)站往往往具有復(fù)復(fù)雜與高高度動(dòng)態(tài)態(tài)的特點(diǎn)點(diǎn)。為了了讓W(xué)eeb應(yīng)用用在短時(shí)時(shí)間之內(nèi)內(nèi)開始運(yùn)運(yùn)作,開開發(fā)周期期應(yīng)該盡盡量地短短。許多多時(shí)候,開開發(fā)者直直接進(jìn)入入編寫代代碼這一一階段,卻卻不去仔仔細(xì)考慮慮自己想想要構(gòu)造造的是什什么樣的的網(wǎng)站以以及準(zhǔn)備備如何構(gòu)構(gòu)造:服服務(wù)器端端代碼往往往是毫毫無準(zhǔn)備備的即興興式編寫寫,數(shù)據(jù)據(jù)庫(kù)表也也是隨需需隨加,整整個(gè)應(yīng)用用的體系系有時(shí)候候呈現(xiàn)一一種無規(guī)規(guī)劃狀態(tài)態(tài)。然而而,只要要我們運(yùn)運(yùn)用一些些建模技技術(shù)和軟軟件工程程技術(shù),就就能夠讓讓開發(fā)過過程更加加流暢,確確

2、保Weeb應(yīng)用用將來更更容易維維護(hù)。UML(UUniffiedd Moodellingg Laanguuagee,統(tǒng)一一建模語語言)是是一種通通用的可可視化建建模語言言,用于于對(duì)軟件件進(jìn)行描描述、可可視化處處理、構(gòu)構(gòu)造和建建立軟件件系統(tǒng)的的文檔。UMLL適用于于各種軟軟件開發(fā)發(fā)方法、軟件生生命周期期的各個(gè)個(gè)階段、各種應(yīng)應(yīng)用領(lǐng)域域以及各各種開發(fā)發(fā)工具。UMLL能夠描描述系統(tǒng)統(tǒng)的靜態(tài)態(tài)結(jié)構(gòu)和和動(dòng)態(tài)行行為:靜靜態(tài)結(jié)構(gòu)構(gòu)定義了了系統(tǒng)中中重要對(duì)對(duì)象的屬屬性和操操作以及及這些對(duì)對(duì)象之間間的相互互關(guān)系;動(dòng)態(tài)行行為定義義了對(duì)象象的時(shí)間間特性和和對(duì)象為為完成目目標(biāo)任務(wù)務(wù)而相互互進(jìn)行通通信的機(jī)機(jī)制。UUML不不是

3、一種種程序設(shè)設(shè)計(jì)語言言,但我我們可以以用代碼碼生成器器將UMML模型型轉(zhuǎn)換為為多種程程序設(shè)計(jì)計(jì)語言代代碼,或或使用反反向生成成器工具具將程序序源代碼碼轉(zhuǎn)換為為UMLL模型。本文介紹紹用UMML為WWeb網(wǎng)網(wǎng)站建模模的一些些方法。全面采采用UMML技術(shù)術(shù)是一個(gè)個(gè)復(fù)雜的的過程,但但UMLL的某些些部分很很容易使使用,而而且它能能夠幫助助你用更更少的時(shí)時(shí)間構(gòu)造造出更好好的系統(tǒng)統(tǒng)。為了示范范UMLL在網(wǎng)站站建設(shè)中中的應(yīng)用用,本文文將構(gòu)造造一個(gè)支支持無線線用戶、提供各各個(gè)地區(qū)區(qū)天氣報(bào)報(bào)表和交交通流量量報(bào)表的的網(wǎng)站。本文不不準(zhǔn)備詳詳細(xì)介紹紹UMLL本身。但為了了方便起起見,附附錄中簡(jiǎn)簡(jiǎn)要介紹紹了常見見的U

4、MML符號(hào)號(hào)和術(shù)語語。要了了解更多多有關(guān)UUML的的信息,請(qǐng)請(qǐng)參見文文章最后后的參考考資源。二、規(guī)劃劃階段 不論你是是從頭開開始構(gòu)造造網(wǎng)站、移植網(wǎng)網(wǎng)站還是是增加某某個(gè)重要要的功能能,為了了確保設(shè)設(shè)計(jì)決策策的最優(yōu)優(yōu)化,進(jìn)進(jìn)行一些些先期規(guī)規(guī)劃是必必要的。如果你你和其他他人協(xié)作作完成一一項(xiàng)工程程,就工工作總量量及其分分配達(dá)成成明確的的共識(shí)具具有不可可估量的的作用。在規(guī)劃劃期間,你你應(yīng)該努努力對(duì)系系統(tǒng)的以以下方面面形成正正確的認(rèn)認(rèn)識(shí):用戶和角角色。 應(yīng)用需求求。 各個(gè)界面面之間的的轉(zhuǎn)換流流程。 要用到的的工具和和技術(shù)。2.1 用戶 了解使用用系統(tǒng)的的用戶是是很重要要的。不不僅系統(tǒng)統(tǒng)分析要要求你接接觸一

5、些些用戶(通通過問卷卷調(diào)查、emaail,或或者面對(duì)對(duì)面交談?wù)劊?,而而且你?jīng)經(jīng)常還要要讓系統(tǒng)統(tǒng)能夠控控制不同同的用戶戶角色和和權(quán)限。通過對(duì)對(duì)用戶進(jìn)進(jìn)行分類類并了解解他們的的需求,你你就可以以找出線線索來確確定數(shù)據(jù)據(jù)庫(kù)的安安全機(jī)制制、功能能限制方方法、用用戶界面面分組、培訓(xùn)和和幫助需需求、對(duì)對(duì)具體內(nèi)內(nèi)容的需需求,甚甚至還可可以從側(cè)側(cè)面了解解到潛在在廣告客客戶的分分布。圖1:參參與者/角色 層次圖圖 上圖顯示示了幾組組不同的的網(wǎng)站用用戶(在在UMLL中稱為為Acttor,即即參與者者)。在在這里,最最普通的的用戶類類型(“SSitee Usser”)位位于圖的的頂端,實(shí)實(shí)線箭頭頭表示ggeneer

6、allizaatioon關(guān)系系(“泛泛化”關(guān)關(guān)系,參參見本文文附錄說說明,下下同),它它表示SSitee Usser又又可以具具體分成成兩類用用戶:GGuesst,RRegiisteeredd Usser。這兩類類用戶共共有的特特征在“SSitee Usser”參參與者中中說明,而而Gueest和和Reggisttereed UUserr各自私私有的特特征則在在對(duì)應(yīng)的的參與者者中說明明。通常常,你可可以直接接為參與與者加上上說明文文檔,無無需單獨(dú)獨(dú)編寫說說明用戶戶的文檔檔,但具具體與你你所用的的UMLL工具有有關(guān)。在在本例中中,Reegissterred Useer又可可以細(xì)分分為Wiirel

7、lesss Usser和和Admminiistrratoor兩種種類型,系系統(tǒng)對(duì)這這些用戶戶的處理理方式應(yīng)應(yīng)有所不不同。2.2 定義需需求 在正式開開始編寫寫代碼之之前,你你應(yīng)該對(duì)對(duì)準(zhǔn)備構(gòu)構(gòu)造一個(gè)個(gè)怎樣的的系統(tǒng)有有一個(gè)清清晰的認(rèn)認(rèn)識(shí)。雖雖然在編編寫代碼碼的同時(shí)時(shí)也可以以逐步完完成這一一工作,而而且這種種做法也也很有吸吸引力,但但借助圖圖形和文文字資料料事先集集體進(jìn)行行討論效效率要高高得多。為網(wǎng)站站編寫詳詳細(xì)的需需求說明明往往不不那么合合算,但但你應(yīng)該該有時(shí)間間畫出幾幾個(gè)草圖圖、寫下下幾段注注解去說說明網(wǎng)站站準(zhǔn)備提提供的服服務(wù)。這這就要用用到Usse CCasee圖(用用例圖)。Usee Caa

8、se可可以看成成一組功功能它可能能對(duì)應(yīng)網(wǎng)網(wǎng)站上的的一個(gè)頁(yè)頁(yè)面、一一個(gè)必須須編寫的的程序,或或者網(wǎng)站站上可能能發(fā)生的的一個(gè)動(dòng)動(dòng)作(比比如,驗(yàn)驗(yàn)證用戶戶登錄,改改變用戶戶的配置置文件,清清除過期期的帳號(hào)號(hào),等等等)。下下面就是是一個(gè)能能夠幫助助你規(guī)劃劃網(wǎng)站的的Usee Caase圖圖。注意意,該圖圖并沒有有顯示出出網(wǎng)站的的所有UUse Casse,通通常我們們需要多多個(gè)Usse CCasee圖才能能描述完完整的網(wǎng)網(wǎng)站功能能。圖2:UUse Casse圖 即使是在在這樣一一個(gè)簡(jiǎn)單單的Usse CCasee圖中,我我們也能能夠輕松松地表達(dá)達(dá)出大量量的信息息。例如如,inncluude關(guān)關(guān)系說明明兩個(gè)U

9、Use Casse包含含同樣的的身份驗(yàn)驗(yàn)證功能能;exxtennd關(guān)系系說明天天氣頁(yè)面面可能以以WMLL或者HHTMLL格式顯顯示;ggeneerallizaatioon關(guān)系系說明各各個(gè)具體體的表現(xiàn)現(xiàn)過程將將遵從“RRendder HTMML PPagee”或者者“Reendeer WWML Pagge”所所描述的的基本行行為規(guī)則則以達(dá)到到維持統(tǒng)統(tǒng)一的風(fēng)風(fēng)格效果果和統(tǒng)一一宏觀行行為模式式的目的的。上圖也顯顯示出無無線用戶戶能夠訪訪問網(wǎng)站站中其他他用戶不不能訪問問的某些些區(qū)域。在這個(gè)個(gè)Usee Caase圖圖中,只只有無線線用戶能能夠訪問問交通流流量報(bào)表表。這是是因?yàn)槲椅覀円呀?jīng)經(jīng)得知只只有在旅旅

10、途中的的移動(dòng)用用戶才需需要交通通流量報(bào)報(bào)表,而而且不想想再花時(shí)時(shí)間把交交通流量量報(bào)表制制作成其其他標(biāo)記記語言形形式。由由此,“GGet Traaffiic RRepoort”UUse Casse不需需要分成成WMLL和HTTML兩兩種顯示示形式,它它可以直直接包含含“Reendeer WWML Traaffiic RRepoort”這這個(gè)Usse CCasee。一般地,你你應(yīng)該為為這些UUse Casse加上上簡(jiǎn)單的的說明。具體地地說,你你應(yīng)該描描述每一一個(gè)Usse CCasee里將要要發(fā)生什什么,誰誰可以使使用它,它它如何啟啟動(dòng)、如如何停止止,以及及某些時(shí)時(shí)候可能能發(fā)生的的特殊事事件(稱稱為

11、vaariaatioon,即即變化)。2.3 用戶界界面組織織 在制作UUse Casse的過過程中,你你會(huì)得到到一些指指示網(wǎng)站站需要哪哪些用戶戶界面的的線索。也許你你早就有有了設(shè)計(jì)計(jì)某些頁(yè)頁(yè)面的絕絕妙主意意,但UUse Casse幫助助我們從從另外一一個(gè)角度度來看問問題。用用戶是否否確實(shí)需需要那么么多的界界面?某某個(gè)頁(yè)面面是否過過于復(fù)雜雜?網(wǎng)站站的導(dǎo)航航設(shè)施是是否簡(jiǎn)單單易用,即即從主頁(yè)頁(yè)訪問常常用服務(wù)務(wù)是否很很方便?在勾畫畫界面草草圖、制制作網(wǎng)站站原型之之前,你你應(yīng)該先先在Usse CCasee圖中解解決這些些問題。當(dāng)Usee Caase逐逐漸清晰晰時(shí),我我們就可可以開始始勾畫出出網(wǎng)站的的大

12、致結(jié)結(jié)構(gòu)。有有些人會(huì)會(huì)強(qiáng)調(diào)說說頁(yè)面和和文件應(yīng)應(yīng)該用相相應(yīng)的構(gòu)構(gòu)件圖(CCompponeent Diaagraam)建建模,其其實(shí)類圖圖(Cllasss Diiagrram)工工具也很很方便。請(qǐng)參見見下圖:圖3:用用戶界面面及其布布局 在上圖中中,各種種網(wǎng)站服服務(wù)被捆捆綁到了了不同的的網(wǎng)站區(qū)區(qū)域:/ - 網(wǎng)站的的根 /commmonn/ - 公用用的圖形形、腳本本、CSSS文件件等 /mapps/ - 地地圖數(shù)據(jù)據(jù) /traaffiic/ - 交交通流量量報(bào)表 /weaatheer/ - 天天氣報(bào)表表該圖還顯顯示了在在頁(yè)面之之間傳遞遞的參數(shù)數(shù)。reegioonIdd是一個(gè)個(gè)很重要要的參數(shù)數(shù),它代

13、代表著用用戶感興興趣的地地區(qū)(可可能是一一個(gè)國(guó)家家、城市市或者省省份)。reggionnId在在頁(yè)面之之間傳遞遞地區(qū)信信息,使使得用戶戶能夠從從指定地地區(qū)的天天氣報(bào)表表跳轉(zhuǎn)到到交通流流量信息息。至于于網(wǎng)站的的commmonn區(qū)域,你你可以看看到指針針指向的的是整個(gè)個(gè)包(ppackkagee)而不不是區(qū)域域中的單單個(gè)文件件,這是是一種減減少混亂亂的簡(jiǎn)化化方法,因因?yàn)樗杏衅渌牡陌家玫酱蟠蟛糠郑ㄈ缛绻皇鞘侨康牡脑挘?commmonn/區(qū)域域中的文文件。用戶界面面布局圖圖能夠幫幫助你避避免網(wǎng)站站混亂,它它對(duì)于規(guī)規(guī)劃網(wǎng)站站是很有有用的。而且,一一旦確定定了一種種有效的的網(wǎng)站結(jié)結(jié)構(gòu)組織織方式

14、,它它還可以以作為一一個(gè)固定定的模式式在多個(gè)個(gè)網(wǎng)站上上應(yīng)用。2.4 工具選選擇 對(duì)于小型型網(wǎng)站,選選擇工具具和技術(shù)術(shù)相當(dāng)簡(jiǎn)簡(jiǎn)單。特特別是由由于投資資的原因因,只有有少數(shù)幾幾種工具具組合才才具有現(xiàn)現(xiàn)實(shí)意義義AApacche,MMySQQL或者者PosstgrreSQQL,PPHP、Perrl或JJSP/Serrvleet。當(dāng)當(dāng)前最流流行的組組合是AApacche + PPHP + MMySQQL,有有許多低低價(jià)位的的Webb托管服服務(wù)支持持并主要要集中在在這種工工具組合合上。而而對(duì)于規(guī)規(guī)模較大大的網(wǎng)站站,在投投資應(yīng)用用軟件之之前,它它必須對(duì)對(duì)各種工工具進(jìn)行行更嚴(yán)格格的評(píng)估估和測(cè)試試。下面面是一個(gè)

15、個(gè)構(gòu)件圖圖的例子子,它可可以用來來說明網(wǎng)網(wǎng)站的體體系結(jié)構(gòu)構(gòu)。這個(gè)個(gè)圖形雖雖然簡(jiǎn)單單,但它它已經(jīng)描描述出了了當(dāng)前大大多數(shù)網(wǎng)網(wǎng)站的體體系結(jié)構(gòu)構(gòu),對(duì)于于你的網(wǎng)網(wǎng)站,重重新制作作該圖可可能也沒沒有必要要,因?yàn)闉樵僖矝]沒有什么么與眾不不同的內(nèi)內(nèi)容值得得加入這這個(gè)圖形形了。圖4:網(wǎng)網(wǎng)站體系系結(jié)構(gòu)圖圖 討論軟件件的整個(gè)個(gè)生命周周期已經(jīng)經(jīng)超出了了本文的的范圍,但但應(yīng)該指指出的是是,建立立應(yīng)用原原型和界界面模型型應(yīng)該在在這個(gè)時(shí)時(shí)候就開開始。務(wù)務(wù)必記下下有關(guān)網(wǎng)網(wǎng)站結(jié)構(gòu)構(gòu)和頁(yè)面面布局的的一些想想法,因因?yàn)樽罱K終你會(huì)想想要為布布局(菜菜單,導(dǎo)導(dǎo)航條,頁(yè)頁(yè)面整體體布局等等)編寫寫一些公公用的代代碼。另另外,如如果你正正

16、在轉(zhuǎn)到到新的工工具和技技術(shù),建建立原型型的工作作能夠讓讓你確保保設(shè)計(jì)的的可行性性,確信信已經(jīng)就就新工具具的使用用對(duì)開發(fā)發(fā)組成員員進(jìn)行了了足夠的的培訓(xùn)。三、設(shè)計(jì)計(jì)階段 設(shè)計(jì)階段段應(yīng)該與與分析階階段交迭迭。一旦旦對(duì)自己己所要構(gòu)構(gòu)造的系系統(tǒng)有了了較多的的認(rèn)識(shí),你你就應(yīng)該該開始擬擬定設(shè)計(jì)計(jì)思路。先1000%地地分析系系統(tǒng)再進(jìn)進(jìn)入設(shè)計(jì)計(jì)階段是是沒有意意義的。需求總總是不斷斷地發(fā)展展,而設(shè)設(shè)計(jì)本身身有時(shí)也也會(huì)推動(dòng)動(dòng)需求的的發(fā)展(反反之亦然然)。所所有的開開發(fā)者都都在進(jìn)行行某種類類型的設(shè)設(shè)計(jì)只不過過有些開開發(fā)者直直接以編編程代碼碼的形式式進(jìn)行設(shè)設(shè)計(jì)。雖雖然這也也能夠完完成任務(wù)務(wù),但它它使得管管理復(fù)雜雜工程和

17、和在工作作組之內(nèi)內(nèi)分配任任務(wù)變得得非常困困難。先先花一點(diǎn)點(diǎn)時(shí)間通通過設(shè)計(jì)計(jì)圖構(gòu)造造系統(tǒng)模模型,以以后你將將獲得巨巨大的回回報(bào)。3.1 為未來來而設(shè)計(jì)計(jì) 許多開發(fā)發(fā)者花費(fèi)費(fèi)在代碼碼調(diào)試和和改寫上上的時(shí)間間超過了了編寫代代碼的時(shí)時(shí)間,如如果從一一個(gè)以上上網(wǎng)站的的建設(shè)來來看這個(gè)個(gè)問題,情情況就尤尤其嚴(yán)重重了。好好的網(wǎng)站站設(shè)計(jì)能能夠以結(jié)結(jié)構(gòu)、組組織方式式和代碼碼重用的的形式應(yīng)應(yīng)用到多多個(gè)網(wǎng)站站上。然然而,如如果代碼碼只是匆匆匆忙忙忙堆砌而而成,從從現(xiàn)有代代碼長(zhǎng)期期獲益的的機(jī)會(huì)就就減少了了。要對(duì)對(duì)網(wǎng)站進(jìn)進(jìn)行設(shè)計(jì)計(jì)規(guī)劃,一一種很有有效的方方法是畫畫出類圖圖(Cllasss Diiagrram)。下圖顯顯示

18、了類類圖通常常要用到到的許多多重要關(guān)關(guān)系。圖5:類類圖 說明如下下:Renddereer類是是一個(gè)抽抽象類(用用斜體字字顯示)。這意味味著Reendeererr類不能能直接使使用,程程序只能能創(chuàng)建其其子類的的實(shí)例(即即neww Reegioon())。為為了滿足足把頁(yè)面面內(nèi)容顯顯示到不不同類型型瀏覽器器的需要要,所有有用來生生成內(nèi)容容的頁(yè)面面都必須須從Reendeererr類派生生。 WeattherrRepportt類創(chuàng)建建并擁有有Reggionn對(duì)象,這這通過代代表聚合合關(guān)系(AAggrregaate Rellatiionsshipp)的黑黑色菱形形顯示出出來,它它表示一一個(gè)對(duì)象象擁有并并

19、創(chuàng)建其其他對(duì)象象。 方法名字字前面的的加號(hào)(“+”)表表示該方方法是公公用方法法,可以以被其他他對(duì)象或或者函數(shù)數(shù)調(diào)用;減號(hào)(“-”)表表示方法法或者變變量是私私有的,只只能由同同一對(duì)象象內(nèi)部的的成員函函數(shù)訪問問。在PPHP中中方法和和變量是是公用的的,但我我們應(yīng)該該總是把把變量看看成私有有,避免免從對(duì)象象外部直直接訪問問變量。 HTMLLWeaatheerReeporrt類依依賴于HHTMLLUtiils類類。依賴賴關(guān)系(ddepeendeencyy)表示示一個(gè)類類要?jiǎng)?chuàng)建建另一個(gè)個(gè)類的實(shí)實(shí)例或者者調(diào)用另另一個(gè)類類的方法法。 類圖中的的每一個(gè)個(gè)類應(yīng)該該注明:所有的的方法(以以及所有有的變量量,如

20、有有的話),方方法的訪訪問屬性性(puubliic,pprivvatee或者pprottectted),方方法的返返回值類類型,方方法的參參數(shù),變變量的類類型。函函數(shù)寫在在前面,如如果類有有變量的的話,則則一般隨隨后在一一個(gè)分開開的方框框中列出出。即使你所所構(gòu)造的的不是一一個(gè)面向向?qū)ο蟮牡南到y(tǒng),你你仍就可可以用類類圖建立立系統(tǒng)的的模型。類能夠夠方便地地描述出出各種包包含關(guān)系系和你所所編寫的的函數(shù)文文件。雖雖然此時(shí)時(shí)類圖不不再顯示示繼承、構(gòu)成/聚合等等面向?qū)?duì)象系統(tǒng)統(tǒng)特有的的關(guān)系,但但它可以以用依賴賴關(guān)系描描述出文文件之間間的調(diào)用用關(guān)系。3.2 運(yùn)行時(shí)時(shí)的系統(tǒng)統(tǒng)模型 有些時(shí)候候,我們們需要顯顯示

21、出應(yīng)應(yīng)用的各各個(gè)部件件如何在在運(yùn)行時(shí)時(shí)協(xié)作完完成任務(wù)務(wù)。前面面的類圖圖顯示了了類之間間的關(guān)系系,但它它沒有顯顯示出調(diào)調(diào)用出現(xiàn)現(xiàn)的次序序,也沒沒有顯示示出來自自一個(gè)函函數(shù)的結(jié)結(jié)果可能能決定下下一次調(diào)調(diào)用的目目標(biāo)。為為了在更更動(dòng)態(tài)的的層面上上描述系系統(tǒng),UUML提提供了許許多其他他類型的的圖。對(duì)對(duì)于Weeb網(wǎng)站站設(shè)計(jì)來來說,情情節(jié)圖(SScennariio DDiaggramm)特別別有用。情節(jié)圖圖分成兩兩種:協(xié)協(xié)作圖(CColllaboorattionn Diiagrram),序序列圖(SSequuencce DDiaggramm)。一一般地,我我們不會(huì)會(huì)建立系系統(tǒng)所有有交互過過程的模模型,情情

22、節(jié)圖只只用來描描述系統(tǒng)統(tǒng)最復(fù)雜雜的部分分,或用用來概括括出代碼碼的一般般調(diào)用模模式。例例如,我我們可能能要示范范特定的的頁(yè)面如如何與驗(yàn)驗(yàn)證用戶戶身份的的代碼協(xié)協(xié)作,或或者要顯顯示頁(yè)面面如何調(diào)調(diào)用公用用代碼(工工具性的的框架代代碼)以以保持統(tǒng)統(tǒng)一的外外觀和風(fēng)風(fēng)格。協(xié)作圖和和序列圖圖分別舉舉例如下下。圖6:協(xié)協(xié)作圖 上面的協(xié)協(xié)作圖顯顯示了從從Webb網(wǎng)站獲獲取天氣氣報(bào)表的的一般過過程。注注意該圖圖忽略了了一些不不重要的的方法,因因?yàn)槲覀儌冎粚?duì)處處理過程程中的關(guān)關(guān)鍵步驟驟感興趣趣。你可可以根據(jù)據(jù)編號(hào)“11”到“11.3.3.44”找出出各個(gè)函函數(shù)的執(zhí)執(zhí)行次序序。一些些人喜歡歡以“11,2,33,”形

23、式式對(duì)執(zhí)行行步驟編編號(hào),但但一般而而言,用用“1,11.1,11.2,22,2.1,”的的形式顯顯示出調(diào)調(diào)用棧的的深度是是一種更更好的選選擇,這這種編號(hào)號(hào)方式能能夠更清清楚地顯顯示出程程序的控控制轉(zhuǎn)換換過程。例如,上上圖顯示示出reeporrt()方法調(diào)調(diào)用了WWMLUUtill以及RRegiion對(duì)對(duì)象中的的許多方方法:在在通過一一系列的的查詢和和內(nèi)容生生成函數(shù)數(shù)為指定定地區(qū)生生成報(bào)表表之前,我我們調(diào)用用了WMMLUttil中中的buuilddHeaaderr()函函數(shù);最最后我們們調(diào)用的的是WMMLUttil模模塊的bbuilldFoooteer(),然后后返回rrepoort()方法法,

24、最后后返回ggetPPagee()。你可以以為協(xié)作作圖加上上更多的的細(xì)節(jié)說說明,比比如返回回值、約約束、條條件等。圖7:序序列圖 就圖形所所傳達(dá)的的信息而而言,次次序圖和和協(xié)作圖圖非常相相似。事事實(shí)上,許許多UMML建模模工具能能夠從協(xié)協(xié)作圖生生成次序序圖,或或者相反反。次序序圖與協(xié)協(xié)作圖的的主要不不同之處處在于:在次序序圖上,事事件的發(fā)發(fā)生次序序一目了了然,非非常直觀觀。另外外,次序序圖中還還可以加加入生存存周期和和時(shí)間方方面的詳詳細(xì)信息息,比如如延遲、線程并并發(fā)、對(duì)對(duì)象的構(gòu)構(gòu)造和刪刪除等。在決定選選用次序序圖還是是協(xié)作圖圖的時(shí)候候,考慮慮以下幾幾點(diǎn)有助助于你作作出最合合適的選選擇:如果要顯

25、顯示代碼碼中與時(shí)時(shí)間或線線程密切切相關(guān)的的問題,選選擇次序序圖。 如果要顯顯示對(duì)象象之間的的交互模模式,選選擇協(xié)作作圖。 如果要顯顯示幾個(gè)個(gè)或者大大量對(duì)象象之間的的交互過過程,選選擇次序序圖。 如果要顯顯示少量量對(duì)象之之間的大大量消息息傳遞或或交互過過程,選選擇協(xié)作作圖。3.3 應(yīng)用部部署的規(guī)規(guī)劃 正如本文文前面“工工具選擇擇”部分分所提到到的,大大多數(shù)WWeb網(wǎng)網(wǎng)站的體體系結(jié)構(gòu)構(gòu)并不復(fù)復(fù)雜。盡盡管如此此,部署署圖(DDeplloymmentt Diiagrram)在在兩個(gè)方方面仍舊舊很有用用:網(wǎng)站站結(jié)構(gòu),文文件組織織。對(duì)于于文件組組織,前前面討論論界面規(guī)規(guī)劃時(shí)已已經(jīng)提到到它也可可以用類類建模

26、工工具進(jìn)行行規(guī)劃。下面給給出一個(gè)個(gè)簡(jiǎn)單的的構(gòu)件圖圖供參考考,但根根據(jù)網(wǎng)站站的需要要和復(fù)雜雜程度的的不同,你你可能不不需要它它。圖8:構(gòu)構(gòu)件圖 3.4 設(shè)計(jì)原原則 UML只只是一個(gè)個(gè)工具。如果使使用得法法,UMML能夠夠幫助我我們輕松松地構(gòu)造造出更好好的網(wǎng)站站。然而而,要設(shè)設(shè)計(jì)出優(yōu)優(yōu)秀的網(wǎng)網(wǎng)站,關(guān)關(guān)鍵仍在在于要有有一個(gè)好好的設(shè)計(jì)計(jì)原則或或理念?!疤岣哳愵惖膬?nèi)聚聚力,減減少不同同類之間間的聯(lián)系系”這一一點(diǎn)在談?wù)劦胶玫牡拿嫦驅(qū)?duì)象設(shè)計(jì)計(jì)原則時(shí)時(shí)經(jīng)常被被反復(fù)引引用。一一個(gè)內(nèi)聚聚的類包包含那些些在目標(biāo)標(biāo)和作用用域上都都緊密相相關(guān)的行行為和信信息。它它意味著著你不應(yīng)應(yīng)該把構(gòu)構(gòu)造UII的代碼碼和實(shí)現(xiàn)現(xiàn)數(shù)學(xué)算

27、算法的代代碼混合合到一起起,你應(yīng)應(yīng)該盡力力把所有有與用戶戶緊密相相關(guān)的信信息封裝裝到UsserAAccoountt類。內(nèi)內(nèi)聚式設(shè)設(shè)計(jì)是一一個(gè)重要要的設(shè)計(jì)計(jì)原則,原原因有很很多:它它有助于于減少類類之間的的依賴關(guān)關(guān)系,使使得設(shè)計(jì)計(jì)更直觀觀、更容容易理解解,方便便了向其其他開發(fā)發(fā)者介紹紹整個(gè)設(shè)設(shè)計(jì),減減少了開開發(fā)者同同一時(shí)刻刻需要操操作的類類的數(shù)量量,等等等。例如如,如果果你要改改變網(wǎng)站站的用戶戶身份驗(yàn)驗(yàn)證機(jī)制制,只修修改單個(gè)個(gè)文件中中的一個(gè)個(gè)類無疑疑要比修修改多個(gè)個(gè)文件、多個(gè)類類更加方方便。“減少不不同類之之間的聯(lián)聯(lián)系”意意味著使使類或者者文件之之間的交交互減到到最少。它不僅僅使得整整個(gè)設(shè)計(jì)計(jì)容

28、易理理解,而而且也方方便了代代碼的維維護(hù)。請(qǐng)請(qǐng)考慮下下面這個(gè)個(gè)例子:圖9:設(shè)設(shè)計(jì)實(shí)例例A 除非深入入了解了了上述各各個(gè)類的的用途,要要估計(jì)這這些類的的內(nèi)聚程程度是不不可能的的。然而而,從這這些類之之間的關(guān)關(guān)系可以以看出,這這個(gè)設(shè)計(jì)計(jì)方案已已經(jīng)成功功地減少少了不同同類之間間的聯(lián)系系。類之之間的交交互被減減到了最最少,從從而使得得系統(tǒng)的的行為很很容易理理解。更更重要的的是,修修改任意意一個(gè)類類時(shí)受影影響的類類數(shù)量都都減到了了最少(例例如,修修改D類類只直接接影響B(tài)B類)。另外,要要訪問DD類中的的功能,我我們無需需知道任任何有關(guān)關(guān)E、FF或G類類的情況況。作為為比較,請(qǐng)請(qǐng)考慮下下圖:圖10 設(shè)計(jì)實(shí)

29、實(shí)例B 顯然,在在這個(gè)設(shè)設(shè)計(jì)實(shí)例例中,類類之間的的聯(lián)系是是相當(dāng)緊緊密的。一旦對(duì)對(duì)D1類類作了修修改,為為了檢查查這種修修改對(duì)其其他類的的影響,我我們必須須對(duì)其他他類進(jìn)行行廣泛的的測(cè)試。只有在實(shí)實(shí)踐中不不斷鍛煉煉才能避避免出現(xiàn)現(xiàn)過于復(fù)復(fù)雜的設(shè)設(shè)計(jì),但但注意以以下幾點(diǎn)點(diǎn)有助于于達(dá)到這這一目標(biāo)標(biāo):提高類的的內(nèi)聚力力。不要要把密切切相關(guān)的的功能分分散到多多個(gè)文件件和類之之中。 采用直觀觀、有意意義的名名字。如如果其他他人不能能了解類類、函數(shù)數(shù)或者變變量的作作用,不不管類的的結(jié)構(gòu)是是多么完完美,整整個(gè)設(shè)計(jì)計(jì)仍缺乏乏直觀性性。過多多地采用用縮寫詞詞會(huì)影響響設(shè)計(jì)的的可理解解性。 不要害怕怕改寫代代碼。有有些

30、時(shí)候候,在幾幾個(gè)類之之間移動(dòng)動(dòng)一些函函數(shù)能夠夠大大地地簡(jiǎn)化代代碼。 類應(yīng)該保保持緊湊湊、簡(jiǎn)潔潔。代碼碼膨脹是是類缺乏乏內(nèi)聚力力的一種種征兆。過于龐龐大的類類、模塊塊或者文文件往往往缺乏明明確的用用途和目目標(biāo)。 讓其他人人復(fù)查你你的設(shè)計(jì)計(jì)。其他他人可能能有新的的想法,或或者為你你指出你你以為顯顯而易見見但別人人卻不能能明白的的問題。 在早期設(shè)設(shè)計(jì)階段段不要考考慮太多多的性能能問題。與一個(gè)個(gè)笨拙的的、為了了昨天所所出現(xiàn)的的問題而而優(yōu)化的的設(shè)計(jì)相相比,一一個(gè)簡(jiǎn)潔潔、經(jīng)過過精心調(diào)調(diào)整的設(shè)設(shè)計(jì)更容容易進(jìn)行行性能優(yōu)優(yōu)化。注注意這并并不是建建議把性性能問題題拋到腦腦后,而而是建議議把細(xì)節(jié)節(jié)優(yōu)化問問題留到到工

31、程后后期考慮慮。四、UMML工具具 下面是一一些值得得考慮的的UMLL建模工工具: HYPERLINK t _blank Micrrosooft Vissio:Vissio Proofesssioonall 20000現(xiàn)現(xiàn)在開始始提供內(nèi)內(nèi)建的UUML支支持。如如果考慮慮Vissio繪繪圖工具具的其他他各種用用途,這這是一個(gè)個(gè)相當(dāng)有有價(jià)值的的工具。如果你你使用220000以前的的版本,你你可以在在這里找找到 HYPERLINK t _blank Viisioo Sttenccil andd Teempllatee foor UUML。 HYPERLINK t _blank Ratiionaal

32、RRosee:這是是一個(gè)推推薦使用用的工具具,但對(duì)對(duì)于許多多小型WWeb工工程來說說它顯得得很昂貴貴。有了了Rattionnal Rosse這樣樣的工具具,改進(jìn)進(jìn)和維護(hù)護(hù)設(shè)計(jì)、從模型型生成報(bào)報(bào)表、在在平行協(xié)協(xié)作環(huán)境境中與他他人共同同進(jìn)行建建模工作作就很方方便了。 HYPERLINK t _blank MagiicDrraw:一個(gè)基基于Jaava的的廉價(jià)UUML建建模工具具。 HYPERLINK t _blank Togeetheer:與與C/CC+和和Javva聯(lián)系系密切,支支持UMML建模模。 HYPERLINK t _blank Objeecteeeriing UMLL:一個(gè)個(gè)免費(fèi)的的個(gè)人

33、UUML產(chǎn)產(chǎn)品。 HYPERLINK t _blank Systtem Arcchittectt:一個(gè)個(gè)很受歡歡迎的高高端UMML建模模工具,支支持雙向向工程(RRounnd-ttripp Ennginneerringg)。五、附錄錄:常用用UMLL符號(hào)和和參考資資源 下面這個(gè)個(gè)表格簡(jiǎn)簡(jiǎn)要介紹紹了常用用的UMML符號(hào)號(hào)和關(guān)系系。要了了解有關(guān)關(guān)UMLL概念和和各種面面向?qū)ο笙笮g(shù)語的的詳細(xì)說說明,請(qǐng)請(qǐng)參見后后面的參參考資源源。符號(hào)說明Packkagee包。用用來聚集集和組織織模型中中的一個(gè)個(gè)部分(UUse Casse,類類,等等等)。Actoor參與與者。它它代表一一個(gè)用戶戶或者其其他外部部的激勵(lì)

34、勵(lì)器。Use Casse用例例。Usse CCasee描述了了系統(tǒng)某某一部分分的行為為。一般般地,UUse Casse記錄錄對(duì)某個(gè)個(gè)系統(tǒng)功功能的需需求,而而這個(gè)功功能由對(duì)對(duì)動(dòng)作或或者事件件的應(yīng)答答示范。 RRelaatioonshhip包包含關(guān)系系。標(biāo)注注為關(guān)系的的Usee Caase關(guān)關(guān)系能夠夠引入其其他Usse CCasee的功能能。這是是一種方方便的分分割Usse CCasee、避免免單個(gè)UUse Casse過于于龐大的的方法。 Reelattionnshiip擴(kuò)充充關(guān)系。標(biāo)注為為關(guān)系系的Usse CCasee關(guān)系能能夠在不不重復(fù)現(xiàn)現(xiàn)有Usse CCasee的各種種描述和和需求的的情況下下,使現(xiàn)現(xiàn)有Usse CCasee的行為為特殊化化。Depeendeencyy依賴。正如其其字面意意義,它它表示一一個(gè)事物物依賴另另一個(gè)事事物。這這意味著著一個(gè)事事物了解解另一個(gè)個(gè)事物,并并需要另另外一個(gè)個(gè)事物才才能發(fā)揮揮功能。N

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論