系統(tǒng)概要設計中的UML靜態(tài)建模_第1頁
系統(tǒng)概要設計中的UML靜態(tài)建模_第2頁
系統(tǒng)概要設計中的UML靜態(tài)建模_第3頁
系統(tǒng)概要設計中的UML靜態(tài)建模_第4頁
系統(tǒng)概要設計中的UML靜態(tài)建模_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、4.2UML包圖4.2.1 UML中的包圖3.3 .UM葉的包和包圖(PackageDiagram)一個企業(yè)應用系統(tǒng)中可能包含數(shù)百個類,如何有效地管理這些類就成了一個需要解決的問題。一種有效的管理方式是將類分組,功能相似或相關的類組織在一起,形成功能模塊或者子系統(tǒng)。在各種面向?qū)ο蟮木幊陶Z言中都提供了對類進行分類管理的機制一一如Java語言的包(Package),而在UML中,對類或者其他的模型元素進行分組時則使用包圖。(1)包圖是保持系統(tǒng)整體結(jié)構(gòu)簡明、清晰的重要工具。在RationalRose中對包采用類似于文件夾的符號來表示(如圖4.19所示的“留言功能包”、“用戶權(quán)限管理包”),并且一個包

2、可嵌套在另一個包中形成子包。使用包圖可以將相關模型元素分組,包圖由包和包之間的關系構(gòu)成,它是維護和控制系統(tǒng)總體結(jié)構(gòu)(系統(tǒng)架構(gòu))的重要建模工具。(2)在RationalRose2003中的包圖是通過類圖來體現(xiàn)的。如果某個包為其他包的子包,則應該將子包放入父包中,如圖4.19所示。LacictlViw口智宮功費包I羊q百宙KD總西費第冏KD修西成功,+-KD各告失敗KD留言顯示基類困6用尸曾再三Atioeia用尸枚隈管理也困。用戶信息也I日Utia-Anocittionx司M.in討各個包之間的關系包由司用PW音類圖相用戶留言模塊的腴序由|*用戶*宮模塊的賬序圖rAiiocittion?用戶權(quán)限管

3、理包用戶信息包(from用戶權(quán)限管理包)圖4.19RationalRose2003中的包圖是通過類圖來體現(xiàn)的4.4 .包之間的關系及其UMLB示在設計包時,首先要決定系統(tǒng)中應該有哪些包,比如要盡量將系統(tǒng)中不穩(wěn)定的模型元素和相對穩(wěn)定的模型元素分配到不同包中,以提高軟件系統(tǒng)的可維護性;或者將可選功能和核心功能實現(xiàn)分置于不同的包或子包之中。其次決定包之間的關系,包之間存在兩種關系:依賴和泛化(繼承或者構(gòu)成)。下面分別介紹這兩種關系,以及它們在RationalRose中的具體實現(xiàn)。(1)包之問的依賴關系。如果對類A的修改會導致類B的改變,則稱B依賴于Ao如果兩個包中存在具有依賴關系的兩個類,則認為這兩

4、個類所屬的兩個包之間則存在著依賴關系。圖4.19所示的“留言功能包”和“用戶權(quán)限管理包”之間存在依賴。包之間的依賴關系應盡量簡單、稀疏,通常要求某一包中的模型元素只與同層及相鄰下一層的模型元素之間存在依賴關系。(2)包之間的泛化關系。包之間的泛化關系其實更多的是指包之間的構(gòu)成關系,也就是指在某個包中嵌套包含其他的包,即包中不僅可包含類等模型元素,還可以包含子包。圖4.19所示的“用戶權(quán)限管理包”中包含有“用戶信息包”,稱“用戶信息包”為“用戶權(quán)限管理包”中的子包。5.5 .包圖的應用目的(1)能夠體現(xiàn)系統(tǒng)的層次關系。使用包圈的目的是把模型元素組織成組或者集合并為其命名,以便作為一個整體進行處理

5、。對于一個大型的軟件系統(tǒng),使用包來組織大量模型元素以便于系統(tǒng)的理解和處理,使之有很好的層次關系。(2)通過包可以形成一個高內(nèi)聚、低耦合的類的集合。(3)在概要設計階段,設計人員可以用包圖來建立軟件系統(tǒng)的體系架構(gòu)。 RationalRose2003對UML包圖的支持.設計項目包圖中的各個包(1)新建項目中的各個包。右擊LogicalView的節(jié)點,在彈出的快捷菜單中選擇【New,然后再選擇【Package】菜單項,如圖4.20所示。1Hit圖4.20新建項目中的各個包(2)命名該包圖。輸入包的名稱為“表示層包”,如圖4.20所示的輸入圖示。(3)根據(jù)具體的應用要求設計其子包。當然也可以在該包的基

6、礎上再產(chǎn)生出其子包,如圖4.21所示。百F.e土“.Hi*rBLt薩*BBS累蚯LJUitC工Vis白LfrfictlVa*BfiblJ*卡E由j*tElg|otg值|LlaDiagrdfiii:口jCiV,l&Dtploynrat|liri.TPrup.系mLgaa&tiDm口郵口口田田圉rtckactMitrirchyLi(hdfcnociallonimAsxoci,tioni-口_mAllacIAtk.4AXl+j11Conp4ntnlVitwCFD1-DorJ-Jo.ust皿口的由窗口口門口目一,二也3a3+3田田&S:ZJ圖4.22分別設計其他的各個子包.設計項目中的包圈(1)新建一

7、個包圖。右擊【LogicalView的節(jié)點,在彈出的快捷菜單中選擇【New,然后再選擇【classDiagram菜單項,如圖4.23所示。蛆B監(jiān)系攜1UstCtseFitw移uaAs1f。噌itiionsTTi811曲TJ3J.Fcst-“Jflr表控數(shù)業(yè)Ftu,治自電口cl口口sr囹囹赳3tl*JDataMadeJetQukyArchitect圖蹦系蜿二iZZiVieCtstView陛IH睢nMAei-ositildm-口“IE衽Vl*W圖:|JJYL*1JfeYUC玉r*JQFf十口豪示層包*Ui控制度+口野褐詩河尾王口業(yè)務居3PackatMbermfchy目Lfrfcndi二Axsaci

8、4tk4M.國我物tmiM:圖4.23設計項目中的包圈(2)命名該包圖。輸入包圖的名稱為“BBS系統(tǒng)前臺包圖”,如圖4.23所示。(3)在該包圖中分別添加各個不同的包。將需要的各個包從左側(cè)的層次樹拖動到右側(cè)的包圖中,如圖424所示。BBS項目*C|VxtVitw!-口|LccicklVitwEBS前臺注明Glob*lDtitjtvtjavaxOM_dbo0f圖4.24在該包圈中分別添加各個不同的包(4)決定各個包之問的組成關系。4.25所示。3B腮項目+UstC*wViGlobaljtvuOHdbflor5SchttntiutilA.我示層包ViewHelp(from表示層包自定義的標簽rum

9、表示層包)JSP頁面由ci儂示層包,根據(jù)系統(tǒng)層次劃分的要求,分別添加各個不同的包所對應的子包,如圖圖4.25分別添加各個不同的包所對應的子包(5)設計完成后的結(jié)果如圖4.26所示。持久類包.數(shù)據(jù)飾問層)I異常處理包ffTUE數(shù)據(jù)巧問星)圖4.26項目巾的各個包及對應的包圖.設置項目包圖內(nèi)各個包之問的依賴關系包與包之間的依賴關系是由包中的類與另一個包中的類是否存在關聯(lián)關系來決定的,不允許包與包之間直接發(fā)生相互依賴。因此,如果在系統(tǒng)層次劃分的過程中發(fā)現(xiàn)有這樣的依賴關系存在,那就說明項目系統(tǒng)中包的設計有問題,需要考慮將這兩個包合并或重新分配包中的類。比如,如果有A包和B包,A包與B包產(chǎn)生泛化關系,那

10、就不允許出現(xiàn)B包依賴A包的情況。本項目示例中各個包之間的依賴關系如圖4.27所示,不僅要確定包與包之間的依賴關系,還應確定某個包的各個組成包之間的依賴關系。圖4.27BBS論壇項目的最終包圖 網(wǎng)上商城項目的架構(gòu)包圖由于在3.3.4節(jié)有關剛上商城項目的系統(tǒng)架構(gòu)設計示例中,已經(jīng)具體給出了網(wǎng)上商城項目的架構(gòu)包圖。在此不再重復列出,請參見圖3.11所示的架構(gòu)包圖。 BBS論壇項目的架構(gòu)包圖BBS論壇項目系統(tǒng)的整體架構(gòu)設計采用的是DWR+Struts+Spring+Hibernate等框架架構(gòu)組成,同時整個系統(tǒng)被分為4層一一表示層、控制層、業(yè)務處理層和持久層。其中在表示層和控制層中應用Struts框架技

11、術(shù)。而在業(yè)務處理層中則應用了Spring框架技術(shù),在系統(tǒng)的持久層中采用Hibernate框架來達到O/RMapping的效果。具體的架構(gòu)包圖如圖4.27所示。4.3UML類圖UML中的類圖UMLfe圖(1)類圖。類是面向?qū)ο竽P妥罨镜哪P驮?。類圖表達了實現(xiàn)某用例中一組對象類之間的靜態(tài)結(jié)構(gòu),以及它們之間的聯(lián)系和交互關系:并且類圖還用來模擬開發(fā)中的實際代碼,而且有許多LJML,建模工具(如RationalRose等)可以直接根據(jù)IJMI_。類圖生成目標語言的類程序代碼,或者實施反向工程,讀取類的源代碼文件,創(chuàng)建出新的類圖。(2)類圖的作用。類圖的作用主要體現(xiàn)在描述系統(tǒng)的靜態(tài)結(jié)構(gòu)和關系上,因為它

12、不僅定義系統(tǒng)需要的各個類,還能夠表示類之間的關系(關聯(lián)、依賴、聚合和泛化等),還包括類的內(nèi)部結(jié)構(gòu)(類的屬性和操作)的定義和描述。(3)類與類之問的關系。類與類之間的關系分為兩種不同的形式:結(jié)構(gòu)性關系(靜態(tài)組成關系)和行為性關系(動態(tài)交互關系)。結(jié)構(gòu)性關系主要指父類與子類間的泛化/特化(類之間的繼承與派生),類與類之間的關聯(lián)和依賴、聚合和組合等關系。行為性關系指類之間可以通過消息聯(lián)系,通過系統(tǒng)預定義或用戶自定義的語義聯(lián)系。2.類的UMLB示(1)在UML中,類的圖形表示為實線矩形框。類是對象的集合,這些對象有共同的結(jié)構(gòu)特征、行為特征、聯(lián)系和語義;但要注意的是:在類圖中不一定要列出全部的成員(屬性

13、和方法)內(nèi)容。如在建立分析模型或設計模型時,可以只列出類名,在模型中著重表達類之間的聯(lián)系;而在建立實現(xiàn)模型時,則在類圖中給出屬性和操作等詳細的成員內(nèi)容。在RationalRose2003中對類及成員定義的支持如圖4.28所示。UserlnfoVOuserNanie:SiringskinCmor:ColorgetlJserName():StnngsetUserName(newUserName:Slring):vo!dgutSkinColor。:Color圖4.28類的UML圖示及類中成員的圖示(2)類的屬性成員及其UML圖示。屬性體現(xiàn)類的對象所在的狀態(tài)性質(zhì),在類圖中用文字串說明。其表示方式如下:

14、可視性屬性名(多重性):類型=初始值可視性用可視性標記表示:公共(e)、保護(國)、私有()。類型(即數(shù)據(jù)類型)依賴于選擇的工具語言,例如下面為在RationalRose2003中表示數(shù)據(jù)類型為String的userName成員屬性。userNanie:String(3)類中的靜態(tài)(static)成員屬性及其UML圖示。應該注意的是,類的靜態(tài)成員屬性也就是static成員屬性在類圖中的表示為帶下劃線的形式。(4)類中的方法成員及其UML圖示。操作(方法)是類的行為特征或動態(tài)特征,用于對服務或?qū)嶓w相關的操作建模。一個類可以有操作并且允許有多個操作,也可以沒有操作。沒有操作的類經(jīng)常用于表達數(shù)據(jù)(如

15、業(yè)務實體組件類或者持久組件類)。操作在類圖中位于最底部,同時用文字串說明。其表示如下:可視性操作名(參數(shù)列表):返回列表性質(zhì)3.類之間的關系在面向?qū)ο箢I域中,各個類之問一般存在“關聯(lián)、繼承、聚合和組合”等形式的關系,據(jù)此,分析設計人員再對項目中的各個實體進一步地分析,找出它們之間的各種關系。有關面向?qū)ο蠹夹g(shù)中類之間關系的詳細介紹請讀者參考本書第l1章“對象/關系映射設計”中的有關內(nèi)容。(1)關聯(lián)(Association)關系。關聯(lián)是一種結(jié)構(gòu)化的關系,指一種對象和另一種對象有聯(lián)系。它是對具有共同結(jié)構(gòu)特性、行為特性、關系和語義鏈接的描述。在UML類圖中,關聯(lián)用一條實線將類連接在一起。如果是單向關聯(lián)

16、,則在關聯(lián)端加箭頭表示方向。在RationalRose工具中,如果是雙向關聯(lián),則不用雙向箭頭表示。具體參見圖4.29中的Computer與UserInfo之間的關聯(lián)關系的圖示。另外還應該注意關聯(lián)的重數(shù),由于關聯(lián)分為兩元關系和多元關系,兩元關系是指一對一的關系,多元關系是一對多或多對一的關系。并且在關聯(lián)端需要標出關聯(lián)中的數(shù)量關系一一重數(shù)(多重性)。關聯(lián)端的多重性規(guī)定了該類中有多少個對象參與該關聯(lián),關聯(lián)分為“一對一”、一對多”、“多對一”和“多對多”關聯(lián)。常用的關聯(lián)關系如下:“0.1:表示0到1個對象。1:表不1個對象。0.*或者*:表示0到多個對象。“1.10”:表示1到10個對象??蛻艉陀唵沃?/p>

17、間的關聯(lián)關系如果寫成Java程序,則意味著在UserInfo類中需要定義一個Order類型的集合成員變量。同時Order類應該定義UserInfo類的對象。例4-1是UserInfo類和Order類之間關聯(lián)關系的代碼示例。例4-1UserInfo類和Order類的定義代碼示例。PublicClassUserInfoprivateArrayListallOrders;客戶和訂單之間為一對多”關聯(lián)/UserInfo類與ContactMethod類之間為聚合關系privateContactMethodoneContactMethod;/,其他的代碼publicbooleanaddGoodsToCar

18、t(GoodsoneGoods)/UserInfo類與Goods之間的關系為依賴關系將商品添加到購物車中的代碼returntrue;publicclassOrderprivateUserInfosomeOneUser;/訂單和客戶之間為一對一”關聯(lián)publicvoidsetSomeOneUser(UserInfooneUserInfo)someOneUser=oneUserInfo;(2)依賴(Dependency)關系。依賴體現(xiàn)類之問的“使用和調(diào)用”關系,指特定事物的改變有可能影響使用該事物的事物,反之不成立。通常情況下,依賴關系體現(xiàn)在目標類的對象出現(xiàn)在局部變量或者方法的參數(shù)中以及靜態(tài)方法的

19、調(diào)用。依賴與關聯(lián)不同,依賴關系總是單向的。例如,某一個類使用了另一個類的對象作為操作方法中的參數(shù),則這兩個類之問就具有依賴關系;如果一個類存取另一個類中的全局對象以及一個類調(diào)用另一個類中類作用域的操作方法,則這兩個類之間也同樣具有依賴關系。依賴在UML圖示中用一個從客戶指向提供者的虛箭頭表示,具體請見圖4.29中的Computer與UserInfo之間的關聯(lián)關系的圖示。例4-1中的UserInfo類與Goods之間的關系為依賴關系,用戶在購買某個商品時,addGoodsToCart的行為是依賴于Goods類的。(3)聚合(Aggregation)關系。聚合表示事物的部分與整體的一種松散(比較弱

20、)的對象間關系,即A對象可以包含B對象,但B對象不一定是A對象的組成部分。比如計算機和它的外圍設備就是一例,再比如汽車和停車場之間的關系,停車場中有汽車,但汽車不是停車場的一部分,汽車和停車場之間沒有整體和一般的關系。聚合關系在UM.中的表示法為在關聯(lián)線端加一個小空心菱形,菱形連接處代表整體事物類,稱為聚合類,另一端連接處代表部分事物類。給例4-1中的UserInfo類添加一個聯(lián)系方式的對象oneContactMethod,此時UserInfo類與ContaetMethod類之間應該為聚合。為什么不將它們看成關聯(lián)呢?因為UserInfo應該擁有或者包含一個聯(lián)系方式,將“用戶”與“聯(lián)系方式”不是

21、平等地看待,而是作為“整體”和局部”來看待。同時,UserInfo與ContaetMethod之間不存在物理上的包含和組成的關系。如果將“用戶”與“聯(lián)系方式”平等(同級別)地看待,它們兩者之間就應該是關聯(lián)關系。參見例4-1中的代碼示例。在RationalRose2003中則通過【ByReference的方式進行引用,如圖4.29所示。DiilavrlntoHurdDiskByRet.隹fK.tcminulcr圖4.29在RationalRose2003中對聚合關系的支持(4)組合(Composition)關系。組合表示事物的部分與整體的一種緊密(比較強)的對象問關系,此時,構(gòu)成整體類的部分類完

22、全屬于整體類,并且體現(xiàn)樹狀層次結(jié)構(gòu)的關系。在一個合成對象里,部分與整體的生命周期都是相同的。一個合成的新對象完全擁有對其組成部分的支配權(quán)。包括它們的創(chuàng)建和刪除(與代表整體的對象同時存在、消失)。如果沒有了整體類,則部分類也沒有存在的價值,部分類的存在是因為有整體類的存在。組合的UMIL表示法為在關聯(lián)線端加一個小實心菱形,菱形連接處代表整體事物類,稱為組合類,另一連接處代表部分事物類??梢詫⒔M合理解成強類型的聚合。其實現(xiàn)的代碼示例,如例4-2所示。在RationalRose2003中則通過【ByValue菜單項進行引用,如圖4.30所示。圖4.30在RationalRose2003中對組合關系的

23、支持例4-2組合關系的代碼示例。publicclassWindowprivateTitleBaroneTiltle;/在窗口中包含一個標題條對象在窗口類中包含一個標題條對象。由于在物理構(gòu)成關系上,窗口是由標題條等對象構(gòu)成的。因此,窗口類和標題條類之間有很強的整體和部分的組成關系。(5)泛化(Generalization)關系。泛化與特化是現(xiàn)實世界中一般性實體與特殊性實體之間的關系,一般性實體是特殊性實體的泛化,特殊性實體是一般性實體的特化。類與其子類就具有這樣的關系。UML中的泛化體現(xiàn)了分類與繼承原則,一個子類繼承超類的全部屬性、方法,子類本身還可以有自己的子類,從而構(gòu)成復雜的一般與特殊的結(jié)構(gòu)

24、。泛化的UML表示形式關系圖示為一個帶空心三角形的直線,空心三角形緊挨著父類,如圖4.31所示的PCComputer與Computer之間的泛化關系圖示。但要注意抽象類的表示形式,抽象類或抽象操作的名稱用斜體字表示。關鍵字abstract可以放置在名稱下面或后面的特性表中。4.類之間的關系實例在例4-3中,給出了一個表示對象之間各種關系的示例。其中的computer與CPU、HardDisk之間為組合關系,因為CPU和HardDisk是Computer必備的組成部分;Computer與Printer之間為聚合關系,因為Printer并不是Computer的必備組成部件,而是可選的組成部件。Co

25、mputer與UserInfo(計算機的主人)之間為一對一”的關聯(lián)關系,Computer與Data之間為依賴關系,計算機在進行計算時依賴十需要進行計算處理的目標數(shù)據(jù);PCComputer與Computer之間為泛化關系,并且其中的Computer類為抽象類。例4-3類之間各種關系的示例。abstractclassComputerprivateCPUintelCPU=nuli2-Computer與CPU,HaMDisk之間為組合關系publicResultcalculateiDat*oneData(/對基類中的calculate方法進行重有、ST匚二+上空Computer與Data之可為依賴關系

26、)classCPUclassHardbisk()classPrinter(classUserInfo(UML類圖如圖4.31所示,注意在RationalRose例4-3中的各個類之間的關系對應的工具中聚合和組合表示形式的不同點。圖4.31例4-3中類之間的各種關系示例對應的UML類圖4.3.2RationalRose2003對UML類圖的支持.添加某項目中與數(shù)據(jù)訪問層組件相關的各個類(1)新建項目中的一個類。New,然右擊“LogicalView”的節(jié)點下某個包的節(jié)點,在彈出的快捷菜單中選擇【后再選擇【class菜單項。如圖4.32所示,輸入類名稱以命名該類。UtVCfiAVInhsrfftc

27、fl卜國用ilXgtf三,口韭器塞RemevePmWjs1擘目P.匚k.yHiflm4Qt目RB3箏晚二一工,unfad,yc*y圖4.32新建項目中的一個類并命名該類(2)分別在各個包中輸入各個類,最后結(jié)果如圖4.33所示。.添加本項目中與數(shù)據(jù)訪問層組件相關的各個接口(1)在數(shù)據(jù)訪問層包中新建一個接口。右擊“數(shù)據(jù)訪問層”的包名稱節(jié)點,在彈出的快捷菜單中選擇【New,然后再選擇Interface菜單項,如圖4.33所示。LJ救塞訪問患日UitranfEfttityBvtf(三AiiciiEoni琴雷,1E電M.r.t.eDHE.All$CI:LCJUhCut柄一-OfflKSKTffl值jmI

28、i*ljwvuI凰中依.if)口表示層,.*i白控蒯脖閘門船雷訪R圖口業(yè)務用.Fack(!FBBS累蛻圖4.34命名該接口3.設計數(shù)據(jù)訪問組件對應的類圖圖4.35新建一個類圖并命名該類圖(2)生成一個空的類圖。RationalRose最后將生成如圖4.36所示的一個空的類圖。(1)新建一個類圖。右擊“LogicalView”的節(jié)點下某個包的節(jié)點,在彈出的快捷菜單中選擇【再選擇【classDiagram菜單項,如圖4.35所示,輸入類圖的名稱,比如為“問組件的類圖”。New,然后BBS數(shù)據(jù)訪三t-LJ豹科I作包bp.r.t.rDgfnAuf*4睢9OptrSohrmlDkH.。r口寡處理包日Hi

29、AJOExetp11oh三Ai&ocitiotii.Itgd-Jir*勺*IJjtvtx囹Qr*J11aSInfoEnti照用n.ieHnfoEnbr/Byan。必心Nt,圖4.39在RationalRose中還可以對JDK中的標準接日進行實現(xiàn)定義(3)選擇JDK中的某個接口。比如選擇java.io.Serializable接口,如圖4.40所示。qliBSInlidntitBean0二業(yè)2小L一:-X)pcraierlHln(erfacc4TruinIjQtUscrltifoEntilyEic皿OperatefDBBuaqi-iH匕mConnectDBBcan|HibemlMeDAUEKce

30、ption|圖4.40選擇JDK中的java.io.Serializable接口(4)確定本項目中的某個類與其對應接口的實現(xiàn)關系。本項目中有UserlnfoEntityBean和BBSInfoEntityBean兩個實體類,這兩個類需要滿足序列化的要求)因此它們需要實java.io.Serializable接口)如圖4.41所示。王口Vt*iv-OLaperalerDBInitrtaceUserlnfDl/ntitvBeaR所示。HibemulcDA()FxceptiorjJliidirechoTialAesocwIich|JHHuun戶RIZBI圖4.42在RationalRose中提供了對

31、類之間的聚合關系的支持(2)右擊聚合關系中的總體端。右擊聚合關系中的總體端并在彈出的快捷菜單中選擇【Aggregate!菜單項,如圖4.43所示。Serializable(fromioBBSInfoEntiyBean(peratcrDBInterface/Containnftentof0peraterDB8eanPublicProtectedPrtvateI珅1gmMtabonNa對的blegtatk:圖4.43右擊聚合關系中的總體端(3)選擇【Aggregate的關系類型在彈出的快捷菜單中選擇【Aggregate菜單項后,將生成如圖4.44所示的狀態(tài)。圖4.44設置類圖中各個類之間的聚合關系

32、.設置類圖中各個類之間關聯(lián)關系的重數(shù)(1)如果關系為關聯(lián)關系,則應該進一步設置關聯(lián)的重數(shù)。Multiplicity菜單項,然后根據(jù)具右擊靠近關聯(lián)的目標方,在彈出的快捷菜單中選擇【體關聯(lián)的重數(shù)選擇對應的重數(shù)的項目,如圖4.45所示。RrotwtfdlPrivateImpfefiwrtatiari圖4.45設置類圖中各個類之間關聯(lián)關系的重數(shù)(2)最后將生成關聯(lián)關系的重數(shù)。RationalRose工具將自動地在關聯(lián)線上顯示出關聯(lián)關系重數(shù)的狀態(tài)(0.*),如圖4.46所圖4.46設置類圖中各個類之問的關聯(lián)關系(3)據(jù)此設置本項目中其他類之間的關聯(lián)關系和重數(shù)。最后結(jié)果如圖4.47所示。圖4.47設置項目

33、類圖中其他各類之間的關聯(lián)關系.設置類圖中各個類之間的依賴關系(1)在RationalRose中提供了對類之間依賴關系的支持。4.48所示。nstdhtkates區(qū)分類圖工具條中的各個關系按鈕,并找到體現(xiàn)依賴關系的按鈕,如圖圖4.48在RationalRose中提供了對類之間依賴關系的支持(2)設置項目中的類之間的依賴關系。根據(jù)應用的狀態(tài)進行定義和設置,如UserInfoManageBean類依賴于UserInfoEntityBean類,而BBSInfoManageBean類依賴于BBSInfoEntityBean類,如圖4.49所示。圖4.49定義和設置項日中類之間的依賴關系4.3.3網(wǎng)上商城

34、項目的類圖.表示層的類圖項目表示層主要包括各個JSP頁面文件、各種標簽庫標簽(Struts標簽庫標簽和自定義設計的標簽庫標簽)以及具有視圖助手(ViewHelp)功能的JavaBean組件類。具體的各個類及類之間的關系圖示如圖4.50所示。showUserlnib國:an丁吧HcanDatcUlilshowOrderinfoshowBuyCartEh口wGctodsHnfoFdtcrCharLogicTagBc&nupdateUserlnfcuserRegisterHtmlagKeanFormlagBeenuscrLogin(fromJ5P表示粗件口)圖4.50網(wǎng)上商城項目表示層的類圖.控制層

35、的類圖由于本項目的控制層采用Struts框架來實現(xiàn),因此,項目控制層主要包括前端控制器組Action類。由于本項目需要對件ActionServlet和各種完成具體業(yè)務調(diào)度的后端業(yè)務控制器標準的ActionServlet類進行繼承,以擴展ActionServlet的功能,因此設計了自定義的前端控制器組件NetShopActionServlet類;又由于各個Action類有共同的功能實現(xiàn)要求,因此為各個不同的Action類提供了一個基類BaseAction,以完成一些共性的任務。具體各個類及類之間的關系圖示如圖4.5l所示。圖4.51網(wǎng)上商城項目控制層的類圖.業(yè)務層的類圖網(wǎng)上商城項目的具體業(yè)務功能

36、主要有4類:與用戶有關的信息管理功能(UserManageBean承擔)、與商口有關的信息管理功能(GoodsManageBean承擔)、與訂單Spring有關的信息管理功能(OrderManageBean承擔)、與購物車有關的信息管理功能(BuyCartManageBean承擔);每個具體的業(yè)務功能類都實現(xiàn)各自的接口,這樣將便于框架中的IoC進行對象管理。因此,將實現(xiàn)這些共另外,考慮到各個業(yè)務功能類都會存在一些共同的功能實現(xiàn)要求。同功能的代碼提取出來并放到對應的基類中。這樣就為各個業(yè)務類設計了一個業(yè)務基類BaseModelBean類。具體的各個類及類之間的關系圖示如圖4.52所示。圖4.52

37、網(wǎng)上商城項目業(yè)務層的類圖.數(shù)據(jù)訪問層的類圖DAO類。與數(shù)據(jù)本項目的持久層主要包括以下類型的類:持久實體類、數(shù)據(jù)訪問組件庫連接功能則是由Hibernate框架來完成的,因此,沒有必要再自行編程數(shù)據(jù)庫連接的組件類。(1)數(shù)據(jù)訪問層的各個持久實體類圖。圖4.53所示為本項目的持久層中各種類型的持久實體類之間關系的圖示,主要有代表用戶信息的實體類、商品信息的實體類、訂單信息的實體類。圖4.53網(wǎng)上商城項目數(shù)據(jù)訪問層的各個持久實體類圖(2)數(shù)據(jù)訪問層的各個數(shù)據(jù)訪問組件(DAO)類圖。圖4.54所示為本項目持久層中的數(shù)據(jù)訪問組件DAO類,由于本項目中存在代表用戶DAO信息的實體類、商品信息的實體類、訂單信息的實體類。因此,相應地也就有對應的組件類。其中的GoodsInfoDAOBean類實現(xiàn)的是商品信息的數(shù)據(jù)訪問操作,UserInf

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論