




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
圖書(shū)系統(tǒng)所要解決的核心問(wèn)題,計(jì)算機(jī)信息管理論文本篇論文目錄導(dǎo)航:【題目】【第一章】【第二章】【第三章】【第四章】圖書(shū)系統(tǒng)所要解決的核心問(wèn)題【第五章】【6.1-6.3】【6.46.5】【結(jié)論/以下為參考文獻(xiàn)】第4章系統(tǒng)所要解決的核心問(wèn)題4.1核心問(wèn)題概述。1.對(duì)于需求的準(zhǔn)確理解和將其怎樣用程序?qū)崿F(xiàn);2.怎樣合理設(shè)計(jì)數(shù)據(jù)庫(kù);3.盡量多的使代碼重用,避免代碼冗余。4.努力做到視圖層,業(yè)務(wù)層,數(shù)據(jù)訪問(wèn)層相分離,以便于系統(tǒng)的擴(kuò)展和維護(hù)。5.怎樣規(guī)范化自個(gè)的代碼和注釋6.系統(tǒng)安全性的設(shè)計(jì)4.2解決問(wèn)題的方式方法。4.2.1面向?qū)ο缶幊?。固然從?yán)格意義上來(lái)講VB并不算是真正的面向?qū)ο缶幊蹋皇腔诿嫦驅(qū)ο缶幊塘T了,不過(guò)在本系統(tǒng)的設(shè)計(jì)當(dāng)中還是引入了類(lèi)來(lái)進(jìn)行編程。將每一個(gè)實(shí)體抽象成類(lèi),針對(duì)這個(gè)實(shí)體的操作都封裝到相應(yīng)的類(lèi)中,這樣能夠使自個(gè)的設(shè)計(jì)構(gòu)造清楚明晰化。面向?qū)ο蟊绕鹈嫦蚪?jīng)過(guò)而言,有很多優(yōu)點(diǎn),主要能夠具體表現(xiàn)出在下面幾個(gè)方面:〔1〕面向?qū)ο蟮脑O(shè)計(jì)方式愈加符合人類(lèi)自個(gè)的考慮方式。程序的設(shè)計(jì)中經(jīng)常使用的方式方法有面向經(jīng)過(guò)的設(shè)計(jì)方式方法和面向?qū)ο蟮脑O(shè)計(jì)方式方法。面向經(jīng)過(guò)的設(shè)計(jì)方式方法是以函數(shù)為基礎(chǔ),通過(guò)對(duì)流程的控制,以及對(duì)算法的實(shí)現(xiàn),來(lái)到達(dá)處理數(shù)據(jù)的目的。在這個(gè)經(jīng)過(guò)中,數(shù)據(jù)和處理數(shù)據(jù)的經(jīng)過(guò)是分開(kāi)來(lái)考慮的,是獨(dú)立的。面向?qū)ο蟮脑O(shè)計(jì)方式方法則不同于面向經(jīng)過(guò)的設(shè)計(jì)方式方法,它的基礎(chǔ)單元就是對(duì)象。對(duì)象是對(duì)現(xiàn)實(shí)生活中實(shí)體的抽象表示,是由屬性和方式方法組成的集合體。屬性紀(jì)錄著當(dāng)下實(shí)體的狀態(tài)數(shù)據(jù),而通過(guò)方式方法能夠操作該實(shí)體,進(jìn)而到達(dá)改變對(duì)象當(dāng)下?tīng)顟B(tài)的目的。對(duì)象和對(duì)象之間的聯(lián)絡(luò)能夠通過(guò)傳遞消息來(lái)實(shí)現(xiàn)。面向?qū)ο蟮拈_(kāi)發(fā)方式方法和面向經(jīng)過(guò)的開(kāi)發(fā)方式方法的出發(fā)點(diǎn)是不同的,所以本質(zhì)上也是不一樣的。面向?qū)ο蟮拈_(kāi)發(fā)方式方法是從人類(lèi)考慮的角度出發(fā),通過(guò)模擬人類(lèi)相互聯(lián)絡(luò)交互的方式,來(lái)設(shè)計(jì)系統(tǒng)中實(shí)體之間的交互。它強(qiáng)調(diào)的是實(shí)體之間交互的接口,而不是一味的強(qiáng)調(diào)控制流程和算法。面向?qū)ο蟮拈_(kāi)發(fā)方式方法倡導(dǎo)開(kāi)發(fā)人員在構(gòu)建軟件的經(jīng)過(guò)中,應(yīng)該多從業(yè)務(wù)的方向去考慮系統(tǒng)的實(shí)現(xiàn),而不是從計(jì)算機(jī)的角度去設(shè)計(jì)程序應(yīng)該怎樣執(zhí)行。這樣開(kāi)發(fā)的好處是,開(kāi)發(fā)的代碼更容易理解,也更方便系統(tǒng)后期的維護(hù)和擴(kuò)展。另外,由于對(duì)象封裝了自個(gè)的屬性數(shù)據(jù),所以當(dāng)業(yè)務(wù)發(fā)生變更的時(shí)候,通過(guò)這種方式,更容易進(jìn)行修正而不至于毀壞實(shí)體之間的聯(lián)絡(luò)?!?〕更好的重用性。用現(xiàn)有的零部件裝配新的產(chǎn)品無(wú)疑是最方便、快速的。這就是我們所講的重用技術(shù)。重用能夠使得開(kāi)發(fā)的效率大大提高。由于面向?qū)ο笫轻槍?duì)業(yè)務(wù)模型進(jìn)行設(shè)計(jì),所以對(duì)于類(lèi)似或者通用的業(yè)務(wù),更容易被組件化,進(jìn)而到達(dá)重用的目的。比方,對(duì)日志組件,報(bào)表組件等的封裝和獨(dú)立,就能夠把這些組件應(yīng)用到其他的系統(tǒng)當(dāng)中。另外,假如在現(xiàn)有業(yè)務(wù)的基礎(chǔ)上衍生出了新的需求,能夠通過(guò)面向?qū)ο笾欣^承的特性,來(lái)同時(shí)知足現(xiàn)有代碼的重用和新業(yè)務(wù)的開(kāi)發(fā)?!?〕更好的穩(wěn)定性。面向?qū)ο蟮拈_(kāi)發(fā)方式方法是以現(xiàn)實(shí)世界中的業(yè)務(wù)實(shí)體模型為基礎(chǔ)進(jìn)行設(shè)計(jì)的,而不是針對(duì)系統(tǒng)應(yīng)該實(shí)現(xiàn)的功能流程來(lái)設(shè)計(jì)。這樣使得系統(tǒng)中實(shí)體之間的關(guān)系更像是現(xiàn)實(shí)世界中各個(gè)實(shí)體之間的關(guān)系?;谶@樣的設(shè)計(jì),當(dāng)有新的需求發(fā)生時(shí),或者現(xiàn)有的業(yè)務(wù)模型發(fā)生變更時(shí),局部的變化并不會(huì)引起整體軟件構(gòu)造的改變,只需要針對(duì)變更的部分重新進(jìn)行抽象和設(shè)計(jì)就能夠了。這樣做能夠使得變更發(fā)生在很小的范圍內(nèi),而不至于牽一發(fā)而動(dòng)全身,更好的保證了系統(tǒng)的穩(wěn)定性?!?〕更好的維護(hù)性。面向?qū)ο蟮拈_(kāi)發(fā)方式是根據(jù)人類(lèi)自個(gè)的考慮方式設(shè)計(jì)的,而面向經(jīng)過(guò)的開(kāi)發(fā)方式是符合計(jì)算機(jī)的執(zhí)行方式的。這樣的話,通過(guò)面向?qū)ο蟮姆绞皆O(shè)計(jì)的系統(tǒng)更容易被不熟悉系統(tǒng)的人員快速把握上手。而且由于使用的一些通用組件,都是經(jīng)過(guò)完善的測(cè)試的,所以更不容易出現(xiàn)大的問(wèn)題。同時(shí),由于對(duì)象之間通過(guò)消息傳遞,而真正的邏輯都封裝在了類(lèi)的內(nèi)部,所以當(dāng)出現(xiàn)問(wèn)題時(shí),更容易對(duì)問(wèn)題類(lèi)進(jìn)行調(diào)試而不至于影響到全局系統(tǒng)的運(yùn)行。另外由于面向?qū)ο蟮脑O(shè)計(jì)中可重用組件的使用以及相對(duì)于業(yè)務(wù)獨(dú)立的設(shè)計(jì),使得系統(tǒng)的擴(kuò)展和添加新的需求變得容易,這樣當(dāng)需要擴(kuò)展和修正時(shí),能夠減少維護(hù)人員的投入,實(shí)現(xiàn)事半功倍的效果。4.2.2訪問(wèn)數(shù)據(jù)庫(kù)接口設(shè)計(jì)。由于訪問(wèn)數(shù)據(jù)庫(kù)接口頻繁,假如對(duì)于每個(gè)窗體都寫(xiě)數(shù)據(jù)庫(kù)接口,則會(huì)造成代碼冗余,而且假如有數(shù)據(jù)庫(kù)的變更,則需要修改的地方會(huì)很多,不利于系統(tǒng)維護(hù)。所以有必要開(kāi)發(fā)一些公用的數(shù)據(jù)庫(kù)訪問(wèn)接口。PublicFunctionconnectToServer〔〕AsBoolean連接數(shù)據(jù)庫(kù)接口,若返回值為true則數(shù)據(jù)庫(kù)連接成功,若返回值為false則數(shù)據(jù)庫(kù)連接失敗。PublicFunctioncloseConnection〔〕AsBoolean關(guān)閉數(shù)據(jù)庫(kù),若返回值為true則關(guān)閉數(shù)據(jù)庫(kù)成功,若返回值為false則表示關(guān)閉數(shù)據(jù)庫(kù)失敗。PublicFunctionopenConnection〔〕AsBoolean打開(kāi)數(shù)據(jù)庫(kù),若返回值為true則打開(kāi)數(shù)據(jù)庫(kù),若返回值為false則表示打開(kāi)數(shù)據(jù)庫(kù)失敗。PublicFunctionexecuteSql〔sqlAsString〕AsBoolean執(zhí)行單條SQL語(yǔ)句,華而不實(shí)sql表示所要執(zhí)行的語(yǔ)句。返回值為true則表示執(zhí)行成功,反之則表示執(zhí)行失敗。PublicFunctionexecuteTransation〔sqlArrayAsVariant〕AsBoolean執(zhí)行事務(wù),華而不實(shí)sqlArray表示一個(gè)存放多個(gè)sql的string數(shù)組。這個(gè)接口會(huì)把這些sql語(yǔ)句根據(jù)一個(gè)事務(wù)來(lái)執(zhí)行,即要么全部執(zhí)行成功,要么全部執(zhí)行失敗。PublicFunctionqueryDataBySql〔ByValstrSQLAsString,rstResultAsADODB.Recordset〕AsBoolean根據(jù)指定的SQL語(yǔ)句執(zhí)行查詢(xún),將查詢(xún)結(jié)果返回到recordset中。PublicSubcloseRst〔rstdbAsADODB.Recordset〕關(guān)閉記錄集。PublicFunctionfindFieldExist〔tableNameAsString,fieldNameAsString,fieldValueAsString〕AsBoolean從特定表中查詢(xún)特定字段的記錄能否存在。PublicFunctionfindTableField〔tableNameAsString,fieldNameAsString,rstResultAsADODB.Recordset〕AsBoolean從特定表中取出所有的特定字段。tableName表示特定的表的名稱(chēng),fieldName表示所要取出的字段名。PublicFunctiongetPK〔tableNameAsString,pkNameAsString,field1NameAsString,field1ValueAsString,field2NameAsString,field2ValueAsString〕AsString根據(jù)條件取出主鍵信息。4.2.3三層架構(gòu)形式。對(duì)于設(shè)計(jì)人員來(lái)講,一個(gè)系統(tǒng)能夠分為三個(gè)層次:視圖層,即用戶(hù)界面的設(shè)計(jì);業(yè)務(wù)層,即詳細(xì)的業(yè)務(wù)需求,比方借書(shū)業(yè)務(wù),還書(shū)業(yè)務(wù);數(shù)據(jù)訪問(wèn)層,即對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)。一個(gè)好的系統(tǒng)應(yīng)該盡量做到這三個(gè)層次相分離,各司其職,這樣才能使系統(tǒng)的可擴(kuò)展性,可維護(hù)性到達(dá)更高層次。本系統(tǒng)中視圖層也就是用戶(hù)窗體的設(shè)計(jì),業(yè)務(wù)層是通過(guò)窗體代碼來(lái)實(shí)現(xiàn),而數(shù)據(jù)訪問(wèn)層則是通過(guò)類(lèi)的實(shí)例--對(duì)象調(diào)用相應(yīng)的數(shù)據(jù)庫(kù)接口,或者是直接調(diào)用數(shù)據(jù)庫(kù)接口來(lái)實(shí)現(xiàn),真正做到了三者的分離。各個(gè)模塊的獨(dú)立性和可靠性是三層架構(gòu)的最大特征。使用者只能根據(jù)規(guī)定的規(guī)則進(jìn)行各個(gè)層級(jí)的訪問(wèn),這樣能夠控制各個(gè)層級(jí)的入口,當(dāng)發(fā)生問(wèn)題時(shí)更容易快速定位,進(jìn)而使得系統(tǒng)愈加穩(wěn)定。4.2.4模塊化,通用化。由于系統(tǒng)設(shè)計(jì)當(dāng)中經(jīng)常對(duì)輸入項(xiàng)進(jìn)行格式檢查,而且很多格式檢查都是一樣的,所以就有必要將這些一樣的檢查寫(xiě)成通用的模塊,這樣能夠減少代碼的重復(fù)書(shū)寫(xiě)。比方檢查輸入項(xiàng)能否為空,能夠用下面的通用函數(shù)來(lái)進(jìn)行檢查:查輸入項(xiàng)能否為空,能夠用下面的通用函數(shù)來(lái)進(jìn)行檢查:PublicFunctionisNull〔strAsString〕AsBooleanIfTrim〔str〕=Orstr=NullThenisNull=TrueElseisNull=FalseEndIfEndFunction4.2.5權(quán)限設(shè)計(jì)。安全性對(duì)于一個(gè)多用戶(hù)的系統(tǒng)而言是相當(dāng)重要的,所以對(duì)于一個(gè)系統(tǒng)來(lái)講引入權(quán)限的管理非常必要。本系統(tǒng)中根據(jù)業(yè)務(wù)的不同大致分了幾個(gè)大的權(quán)限,同時(shí)實(shí)現(xiàn)了對(duì)用戶(hù)的受權(quán)。這樣實(shí)現(xiàn)了只要擁有相應(yīng)權(quán)限的管理員才能進(jìn)行相應(yīng)操作的功能,提高了系統(tǒng)的安全性。4.2.6測(cè)試驅(qū)動(dòng)開(kāi)發(fā)。TDD〔測(cè)試驅(qū)動(dòng)開(kāi)發(fā)〕,是XP〔極限編程〕開(kāi)發(fā)中一個(gè)很重要的規(guī)范,也是一種編程技術(shù),他的作用主要是確保自個(gè)的代碼能徹底的被單元測(cè)試所覆蓋和檢查。對(duì)于軟件開(kāi)發(fā)而言,單元測(cè)試的重要性不言而喻。而相對(duì)于手動(dòng)測(cè)試來(lái)講,使用代碼測(cè)試能使測(cè)試的范圍更廣,測(cè)試覆蓋率更高層次。另外,還有一個(gè)重要的優(yōu)勢(shì)是,通過(guò)代碼測(cè)試能夠很大程度降低降級(jí)Bug.所謂降級(jí)Bug就是在修改系統(tǒng)Bug時(shí),又引出了其他新的Bug.而通過(guò)TDD,能夠構(gòu)建完備的測(cè)試用例庫(kù),每次修改了代碼之后,重新進(jìn)行自動(dòng)測(cè)試,進(jìn)而保證本次修改不影響其他模塊。本系統(tǒng)中使用了vbUnit來(lái)進(jìn)行測(cè)試驅(qū)動(dòng)開(kāi)發(fā)。vbUnit是對(duì)VB工程進(jìn)行自動(dòng)化測(cè)試的庫(kù),類(lèi)似于Java和JUnit的關(guān)系。比方對(duì)于isNull函數(shù),能夠通過(guò)如下測(cè)試用例進(jìn)行測(cè)試:PublicSubTest
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2022年北京市平谷初三二模英語(yǔ)試卷及答案
- 財(cái)稅知識(shí)專(zhuān)題培訓(xùn)課件
- 喝果汁問(wèn)題教學(xué)設(shè)計(jì)-2024-2025學(xué)年五年級(jí)下冊(cè)數(shù)學(xué)人教版
- 2025年?duì)I養(yǎng)午餐主題班會(huì)標(biāo)準(zhǔn)教案
- 古董煙斗購(gòu)買(mǎi)合同范例
- 農(nóng)商展期合同范例
- 產(chǎn)品加工轉(zhuǎn)讓合同范例
- 產(chǎn)品推廣與渠道建設(shè)方案計(jì)劃
- 工作技能培訓(xùn)與考核制度建立計(jì)劃
- 社區(qū)醫(yī)療服務(wù)的工作安排計(jì)劃
- 高等教育數(shù)字化轉(zhuǎn)型心得體會(huì)
- 2025年安徽財(cái)貿(mào)職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案1套
- 2025年天翼云解決方案架構(gòu)師認(rèn)證考試指導(dǎo)題庫(kù)-上(單選題)
- 日式保潔培訓(xùn)課件大全
- 2025年廣東省深圳市高考語(yǔ)文一模試卷
- 2025年陜西工商職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)學(xué)生專(zhuān)用
- 2025年春人教版英語(yǔ)八年級(jí)下冊(cè)同步課件 Unit 7 Whats the highest mountain in the world課件 Section A 1a-2d
- 2025年哈爾濱鐵道職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)必考題
- 行為規(guī)范教育中學(xué)校長(zhǎng)在國(guó)旗下講話:嚴(yán)格要求自己規(guī)范自己的行為
- 2025年福建省高職單招職業(yè)適應(yīng)性測(cè)試題庫(kù)及答案解析
- 七下綜合世界真奇妙-共享“地球村”
評(píng)論
0/150
提交評(píng)論