基于UML和ASP.NET實(shí)現(xiàn)三層BS結(jié)構(gòu)系統(tǒng)開(kāi)發(fā)_第1頁(yè)
基于UML和ASP.NET實(shí)現(xiàn)三層BS結(jié)構(gòu)系統(tǒng)開(kāi)發(fā)_第2頁(yè)
基于UML和ASP.NET實(shí)現(xiàn)三層BS結(jié)構(gòu)系統(tǒng)開(kāi)發(fā)_第3頁(yè)
基于UML和ASP.NET實(shí)現(xiàn)三層BS結(jié)構(gòu)系統(tǒng)開(kāi)發(fā)_第4頁(yè)
基于UML和ASP.NET實(shí)現(xiàn)三層BS結(jié)構(gòu)系統(tǒng)開(kāi)發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、基于UML和ASP.NET實(shí)現(xiàn)三層B/S構(gòu)造系統(tǒng)開(kāi)發(fā)摘要進(jìn)展良好的系統(tǒng)分析和設(shè)計(jì)是軟件工程開(kāi)發(fā)的關(guān)鍵,構(gòu)架設(shè)計(jì)的合理與否往往決定了工程的成敗。本文結(jié)合一個(gè)工程的開(kāi)發(fā),闡述了基于UL的系統(tǒng)建模過(guò)程和基于ASP.NET實(shí)現(xiàn)面向?qū)ο蟮娜龑訕?gòu)造應(yīng)用系統(tǒng)的方法。關(guān)鍵詞ASP.NET;三層構(gòu)造;UL建模;系統(tǒng)開(kāi)發(fā)架構(gòu)設(shè)計(jì)是軟件開(kāi)發(fā)的根底,并往往決定一個(gè)工程的成敗。三層構(gòu)造是目前流行的架構(gòu)設(shè)計(jì)形式,它是在由Bushann等提出的“層形式1根底上開(kāi)展起來(lái)的,由表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問(wèn)層三個(gè)層次構(gòu)造組成。它通過(guò)分解來(lái)管理問(wèn)題的復(fù)雜性,同時(shí)還可以有效地重復(fù)使用業(yè)務(wù)邏輯并保存與昂貴資源如數(shù)據(jù)庫(kù)的重要連接2,3。

2、基于ASP.NET可以充分發(fā)揮其完全面向?qū)ο蟮募夹g(shù)特點(diǎn),實(shí)現(xiàn)三層構(gòu)造B/S系統(tǒng)架構(gòu),從而進(jìn)步開(kāi)發(fā)效率,增強(qiáng)系統(tǒng)的可維護(hù)性和擴(kuò)展性。本文結(jié)合一個(gè)“學(xué)生成績(jī)管理系統(tǒng)的開(kāi)發(fā),研究如何基于UL進(jìn)展三層B/S構(gòu)造的系統(tǒng)建模,及其在ASP.NET下的應(yīng)用實(shí)現(xiàn)。架構(gòu)設(shè)計(jì)是非常高級(jí)的設(shè)計(jì),也是系統(tǒng)設(shè)計(jì)的關(guān)鍵,主要是定義和說(shuō)明包子系統(tǒng),以及包與包之間的互相依賴與通信機(jī)制。系統(tǒng)構(gòu)架模型的合理與否將決定系統(tǒng)的可維護(hù)性、擴(kuò)展性和開(kāi)發(fā)效率。包通常所需要處理的是要么是一個(gè)詳細(xì)的功能區(qū)域業(yè)務(wù)邏輯,要么是一個(gè)詳細(xì)的技術(shù)區(qū)域技術(shù)邏輯。業(yè)務(wù)邏輯主要考慮的是對(duì)系統(tǒng)業(yè)務(wù)功能的實(shí)現(xiàn),而技術(shù)邏輯那么是進(jìn)一步考慮用戶界面、數(shù)據(jù)庫(kù)或通信機(jī)制

3、等形成的技術(shù)方案。把技術(shù)邏輯和業(yè)務(wù)邏輯區(qū)分開(kāi)來(lái)是極其重要的,這是為了當(dāng)修改程序的某一部分時(shí)不會(huì)對(duì)另一部分產(chǎn)生影響,更加便于進(jìn)展“復(fù)用,同時(shí)易于應(yīng)對(duì)來(lái)自業(yè)務(wù)邏輯的變更需求。三層構(gòu)造是一種成熟、簡(jiǎn)單并得到普遍應(yīng)用的應(yīng)用程序架構(gòu),它將應(yīng)用程序構(gòu)造劃分三層獨(dú)立的包,包括用戶表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層。其中將實(shí)現(xiàn)人機(jī)界面的所有表單和組件放在表示層,將所有業(yè)務(wù)規(guī)那么和邏輯的實(shí)現(xiàn)封裝在負(fù)責(zé)業(yè)務(wù)邏輯組件中,將所有和數(shù)據(jù)庫(kù)的交互封裝在數(shù)據(jù)訪問(wèn)組件中。其構(gòu)造如以下圖1所示:圖1三層構(gòu)造示意圖三層構(gòu)造是一種嚴(yán)格分層方法,即數(shù)據(jù)訪問(wèn)層只能被業(yè)務(wù)邏輯層訪問(wèn),業(yè)務(wù)邏輯層只能被表示層訪問(wèn),用戶通過(guò)表示層將懇求傳送給業(yè)務(wù)

4、邏輯層,業(yè)務(wù)邏輯層完成相關(guān)業(yè)務(wù)規(guī)那么和邏輯,并通過(guò)數(shù)據(jù)訪問(wèn)層訪問(wèn)數(shù)據(jù)庫(kù)獲得數(shù)據(jù),然后按照相反的順序依次返回將數(shù)據(jù)顯示在表示層。下面通過(guò)一個(gè)學(xué)生管理系統(tǒng)的開(kāi)發(fā),說(shuō)明三層B/S構(gòu)造系統(tǒng)從UL建模到基于ASP.NET進(jìn)展實(shí)現(xiàn)的完好開(kāi)發(fā)過(guò)程,UL建模工具采用的是RatinalRse。2.1需求分析軟件需求分析是系統(tǒng)開(kāi)發(fā)的第一步也是最重要的一個(gè)環(huán)節(jié),其根本任務(wù)是準(zhǔn)確地答復(fù)“系統(tǒng)做什么?這個(gè)問(wèn)題,這需要在對(duì)用戶需求進(jìn)展充分調(diào)研的根底上,深化理解并描繪出軟件的功能、性能、接口等方面的需求,可以使用UL建模作為需求分析和系統(tǒng)設(shè)計(jì)的有效方法。分析的目的是為了獲得和描繪系統(tǒng)中所有的要求,因此分析階段是一種典型的與

5、用戶或客戶合作的過(guò)程,通常由開(kāi)發(fā)人員同用戶或客戶共同完成。在這個(gè)階段,開(kāi)發(fā)人員不應(yīng)該考慮代碼或程序?qū)崿F(xiàn)的細(xì)節(jié),而應(yīng)該把精力放在對(duì)現(xiàn)有業(yè)務(wù)邏輯的理解上,通過(guò)與用戶之間的充分溝通,逐步理解并描繪出得到用戶確認(rèn)的系統(tǒng)模型,包括用例模型和領(lǐng)域dain,系統(tǒng)中關(guān)鍵的類模型。軟件開(kāi)發(fā)人員在對(duì)用戶進(jìn)展需求調(diào)研的過(guò)程中,用戶往往并不能立即準(zhǔn)確描繪出將來(lái)系統(tǒng)應(yīng)該提供一些什么樣的功能。因此,需要開(kāi)發(fā)人員理解和分析需求,并將系統(tǒng)應(yīng)該具有的功能通過(guò)用例圖直觀的描繪出來(lái),方便用戶理解并做出評(píng)判,開(kāi)發(fā)人員從而可以根據(jù)用戶的反響不斷調(diào)整用例模型,直至完全正確、充分描繪清楚系統(tǒng)功能。用例建模主要是別離出系統(tǒng)的活動(dòng)參與者(At

6、r)和用例(Usease),用例是指對(duì)系統(tǒng)提供的功能的一種描繪,而活動(dòng)參與者是那些可能使用這些用例的人或外部系統(tǒng),通過(guò)用例圖可以描繪出系統(tǒng)外部的執(zhí)行者、系統(tǒng)的用例,以及它們之間的聯(lián)絡(luò)。本學(xué)生管理系統(tǒng)的用例圖見(jiàn)圖2。用例模型還需要進(jìn)一步對(duì)每個(gè)用例進(jìn)展詳細(xì)描繪,進(jìn)一步說(shuō)明用例的名稱、根本領(lǐng)件流和備選事件流、前置條件和后置條件等,并形成文檔。限于篇幅,這里就不多說(shuō)了。圖2用例圖分析過(guò)程中還要詳細(xì)地列舉領(lǐng)域(dain,系統(tǒng)中關(guān)鍵的類),為了進(jìn)展領(lǐng)域分析,需要充分理解用例模型,也可以與用戶及領(lǐng)域?qū)<医M織一次集體研討會(huì)談,嘗試找出所有必須處理的關(guān)鍵概念以及它們之間的互相關(guān)系,并最終分析出域類圖。以下圖3為

7、本系統(tǒng)的域類圖。需要強(qiáng)調(diào)的是:在本階段,對(duì)領(lǐng)域進(jìn)展分析的類圖還是處于“草圖狀態(tài)。定義的操作和屬性不是最后的版本,只是在本階段看來(lái)比較適宜。后期將通過(guò)動(dòng)態(tài)行為分析不斷得出新的操作,這是一個(gè)逐步完善和開(kāi)展的過(guò)程。2.2系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)的目的是產(chǎn)生一個(gè)可用的、完好的解決方案,并且可以比較容易地將方案轉(zhuǎn)換成程序代碼。這個(gè)階段在三層構(gòu)造的架構(gòu)設(shè)計(jì)模型根底上,將考慮所有的實(shí)現(xiàn)技術(shù)問(wèn)題,對(duì)分析階段的模型進(jìn)展擴(kuò)展和細(xì)化,分析階段定義的類進(jìn)一步擴(kuò)大,定義新的類來(lái)處理技術(shù)方面的問(wèn)題,并形成最后的UL模型。推動(dòng)不斷進(jìn)展詳細(xì)設(shè)計(jì)的方法是對(duì)每個(gè)用例進(jìn)展動(dòng)態(tài)建模,描繪如何通過(guò)類圖中的對(duì)象協(xié)作實(shí)現(xiàn)用例中的功能,由于一開(kāi)場(chǎng)對(duì)

8、系統(tǒng)的認(rèn)識(shí)是很不夠的,前面建立的類往往隨著動(dòng)態(tài)建模的深化,發(fā)現(xiàn)存在缺陷或不夠完好,需要對(duì)分析中得到的域類圖進(jìn)展不斷修正和調(diào)整,擴(kuò)展形成業(yè)務(wù)邏輯包。同時(shí),隨著對(duì)用戶界面、數(shù)據(jù)庫(kù)訪問(wèn)等技術(shù)實(shí)現(xiàn)的深化建模,不斷建立新的用戶界面類如窗體、控件和數(shù)據(jù)訪問(wèn)類,形成用戶界面包和數(shù)據(jù)訪問(wèn)包。本學(xué)生管理系統(tǒng)經(jīng)過(guò)詳細(xì)設(shè)計(jì)后,在域類圖根底上進(jìn)展擴(kuò)展后形成的業(yè)務(wù)邏輯包類圖如以下圖4所示。圖3域類圖圖4業(yè)務(wù)邏輯包類圖新建立的數(shù)據(jù)訪問(wèn)包類圖如以下圖5所示。所有的數(shù)據(jù)訪問(wèn)類都定義了一個(gè)基類DBn,該基類包含屬性DBnnetinString,通過(guò)該屬性可以獲得數(shù)據(jù)庫(kù)連接字符串。還包括一個(gè)方法GetDataVie,可以實(shí)如今數(shù)

9、據(jù)庫(kù)中執(zhí)行查詢獲得一個(gè)DataVie。這些屬性和方法被所有的數(shù)據(jù)訪問(wèn)類繼承,可以直接使用。圖5數(shù)據(jù)訪問(wèn)包關(guān)于用戶界面包的類圖比較簡(jiǎn)單,主要是通過(guò)界面設(shè)計(jì),設(shè)計(jì)出窗體及控件等界面元素,并根據(jù)動(dòng)態(tài)建模時(shí)需要涉及的用戶界面訪問(wèn)動(dòng)作,定義所引起的相關(guān)事件,這些方面都在窗體類中進(jìn)展定義,并組成用戶界面包,這里就不詳細(xì)介紹。動(dòng)態(tài)建模通常采用的方法是使用UL中的時(shí)序圖描繪用例,一個(gè)時(shí)序圖針對(duì)某個(gè)用例中的一個(gè)“場(chǎng)景進(jìn)展分析。所謂“場(chǎng)景是指一個(gè)用例中事件開(kāi)展的一條道路。根據(jù)活動(dòng)參與者的不同輸入或行為,通常一個(gè)用例會(huì)有多個(gè)“場(chǎng)景,也就需要分析出多個(gè)時(shí)序圖。通過(guò)時(shí)序圖描繪一個(gè)場(chǎng)景中各個(gè)對(duì)象之間所進(jìn)展的通信,同時(shí)可以

10、分析出系統(tǒng)中相應(yīng)的類需要具備的操作,從而不斷擴(kuò)大和細(xì)化類的設(shè)計(jì)。假如需要進(jìn)一步描繪類的狀態(tài)變化情況和操作流程,可以使用UL中的狀態(tài)圖和活動(dòng)圖。圖6登錄場(chǎng)景動(dòng)態(tài)建模時(shí)產(chǎn)生的時(shí)序圖較多,這里無(wú)法一一闡述。圖6給出了登錄系統(tǒng)場(chǎng)景的時(shí)序圖,在用戶界面包中定義了一個(gè)LginFr類,其對(duì)應(yīng)的eb窗體為用戶登錄窗體頁(yè)面Lgin.aspx,圖6描繪了在該窗體中實(shí)現(xiàn)用戶登錄的場(chǎng)景。前面系統(tǒng)設(shè)計(jì)動(dòng)態(tài)模型時(shí),通過(guò)時(shí)序圖已經(jīng)對(duì)每個(gè)用例的各項(xiàng)功能所涉及的場(chǎng)景進(jìn)展了詳盡的描繪,按照時(shí)序圖的規(guī)定把每個(gè)用例都分別進(jìn)展編碼實(shí)現(xiàn)即可。下面結(jié)合學(xué)生管理系統(tǒng)中的“登錄系統(tǒng)用例,介紹基于ASP.NET進(jìn)展系統(tǒng)實(shí)現(xiàn)的方法。首先需要考慮分

11、包,ASP.NET中包對(duì)應(yīng)的就是命名空間。在本學(xué)生管理系統(tǒng)中,規(guī)定業(yè)務(wù)邏輯包的命名空間為Resultanage.BusinessRule,數(shù)據(jù)訪問(wèn)包的命名空間為Resultanage.DataAess,而用戶界面包的命名空間為Resultanage.eb。然后進(jìn)展業(yè)務(wù)邏輯包和數(shù)據(jù)訪問(wèn)包中相關(guān)類的設(shè)計(jì),對(duì)于“登錄系統(tǒng)用例,從上圖6的登錄場(chǎng)景時(shí)序圖中可以看出,相關(guān)的類有業(yè)務(wù)邏輯包的Users類和數(shù)據(jù)訪問(wèn)包的UsersDB類,分別對(duì)這些類的屬性和方法進(jìn)展定義和實(shí)現(xiàn),并設(shè)計(jì)一些測(cè)試用例或測(cè)試程序?qū)ζ溥M(jìn)展單元測(cè)試。最后按照用戶界面包和上圖6的登錄場(chǎng)景時(shí)序圖中的規(guī)定,對(duì)用戶登錄窗體頁(yè)面Lgin.aspx進(jìn)

12、展設(shè)計(jì)實(shí)現(xiàn),其實(shí)現(xiàn)登錄的代碼如下所示:privatevidbtnLgin_lik(bjetsender,Syste.EventArgse)stringUserNae=txbUserNae.Text;stringPassrd=txbPassrd.Text;tryFrsAuthentiatin.SetAuthkie(UserNae,false);Sheleessage(UserNae);elseessage.Text=用戶登錄失敗!;ath(SqlExeptinsqlexeptin)Respnse.rite(sqlexeptin.essage);代碼中對(duì)于業(yè)務(wù)的處理,通過(guò)調(diào)用業(yè)務(wù)邏輯包Users類

13、的Lgin方法實(shí)現(xiàn)登錄信息的檢查,其代碼如下:publistatiblLgin(stringUserNae,stringPassrd)if(UserNae=)returnfalse;elsereturnUsersDB.hekLgin(UserNae,Passrd);上述Users類的Lgin方法的代碼中,首先進(jìn)展業(yè)務(wù)邏輯檢查,判斷用戶名是否為空,涉及數(shù)據(jù)庫(kù)訪問(wèn)那么通過(guò)數(shù)據(jù)訪問(wèn)類完成,通過(guò)數(shù)據(jù)訪問(wèn)包的UsersDB類的hekLgin方法從數(shù)據(jù)庫(kù)中檢查是否存在符合相應(yīng)登錄信息的用戶。前面已經(jīng)提到,包括UsersDB類在內(nèi)的數(shù)據(jù)訪問(wèn)層所有類都從一個(gè)基類DBn繼承,該基類封裝了所有數(shù)據(jù)庫(kù)訪問(wèn)類公共的特性,其中包括定義了公共屬性:數(shù)據(jù)連接字符串DBnnetinString。UsersDB類的hekLgin方法中使用DBnnetinString進(jìn)展數(shù)據(jù)庫(kù)的連接,并調(diào)用數(shù)據(jù)庫(kù)中存儲(chǔ)過(guò)程hekLgin查找用戶登錄信息是否正確。本文介紹了三層B/S構(gòu)造系統(tǒng)的UL建模和基于ASP.NET進(jìn)展實(shí)現(xiàn)的過(guò)程和方法,實(shí)現(xiàn)的三層構(gòu)造不僅程序邏輯上構(gòu)造明晰,而且由于容易發(fā)生需求變更的業(yè)務(wù)邏輯部分實(shí)現(xiàn)了別離,因此具有更強(qiáng)的可擴(kuò)展性和可維護(hù)性。同時(shí)這種系統(tǒng)在部署時(shí)具有很強(qiáng)的靈敏性,可以將各個(gè)包分別編譯成.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論