




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年隴南貨運(yùn)從業(yè)資格證考試題
- 2025年甘肅貨運(yùn)從業(yè)資格證考試模擬題庫(kù)答案大全
- 陜西省延安市延川縣中學(xué)2026屆化學(xué)高二上期末復(fù)習(xí)檢測(cè)模擬試題含答案
- 2026屆福建省泉州市南安國(guó)光中學(xué)化學(xué)高三上期中聯(lián)考模擬試題含解析
- 工地消防培訓(xùn)課件
- 2026屆安徽省重點(diǎn)中學(xué)高一化學(xué)第一學(xué)期期中監(jiān)測(cè)試題含解析
- 2026屆浙江省寧波市鄞州中學(xué)化學(xué)高二第一學(xué)期期末復(fù)習(xí)檢測(cè)試題含答案
- 網(wǎng)絡(luò)文學(xué)2025年出海戰(zhàn)略:跨文化傳播與內(nèi)容合作報(bào)告
- 2025藥廠審計(jì)員試題及答案
- 2025天衡審計(jì)面試題及答案大全
- 質(zhì)量管理體系基礎(chǔ)知識(shí)培訓(xùn)教材
- 標(biāo)準(zhǔn)土方棄土堆放合同協(xié)議
- 馬鞍山房地產(chǎn)市場(chǎng)月報(bào)2024年08月
- 高考物理一輪復(fù)習(xí)考點(diǎn)精講精練第22講 磁場(chǎng)對(duì)運(yùn)動(dòng)電荷的作用(原卷版)
- 貸款三查制度
- 承包建筑寺廟合同范本
- 財(cái)務(wù)分析課件(54張)
- 育苗溫室鋼架棚報(bào)驗(yàn)技術(shù)資料(檢驗(yàn)批)
- 云南省昆明市嵩明縣2023-2024學(xué)年高一下學(xué)期期中數(shù)學(xué)試卷
- DL∕T 1664-2016 電能計(jì)量裝置現(xiàn)場(chǎng)檢驗(yàn)規(guī)程
- 高中信息技術(shù)學(xué)業(yè)水平測(cè)試知識(shí)點(diǎn)
評(píng)論
0/150
提交評(píng)論