《圖書(shū)管理系統(tǒng)》設(shè)計(jì)指導(dǎo)書(shū)(最完整版)_第1頁(yè)
《圖書(shū)管理系統(tǒng)》設(shè)計(jì)指導(dǎo)書(shū)(最完整版)_第2頁(yè)
《圖書(shū)管理系統(tǒng)》設(shè)計(jì)指導(dǎo)書(shū)(最完整版)_第3頁(yè)
《圖書(shū)管理系統(tǒng)》設(shè)計(jì)指導(dǎo)書(shū)(最完整版)_第4頁(yè)
《圖書(shū)管理系統(tǒng)》設(shè)計(jì)指導(dǎo)書(shū)(最完整版)_第5頁(yè)
已閱讀5頁(yè),還剩43頁(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、長(zhǎng)江大學(xué) 數(shù)據(jù)庫(kù)課程設(shè)計(jì)任務(wù)書(shū)數(shù)據(jù)庫(kù)課程設(shè)計(jì)任務(wù)書(shū)1. 任務(wù)與要求(1) 先修課程:數(shù)據(jù)庫(kù)原理及應(yīng)用,面向?qū)ο蟪绦蛟O(shè)計(jì)C#、ASP.NET或JAVA等。(2) 課程設(shè)計(jì)題目:圖書(shū)管理系統(tǒng)若自選題目,則需在課程設(shè)計(jì)第一天上報(bào)題目名稱,以及開(kāi)發(fā)工具和數(shù)據(jù)庫(kù)。(3) 時(shí)間:2周,在數(shù)據(jù)庫(kù)原理及應(yīng)用課程結(jié)束后進(jìn)行,建議提前58周開(kāi)始準(zhǔn)備。(4) 開(kāi)發(fā)工具和環(huán)境開(kāi)發(fā)工具:VC、VB、C#、ASP.Net、Java、Delphi等任選。數(shù) 據(jù) 庫(kù): SQL Server、Oracle、DB2、Sybase等任選。應(yīng)用程序:Windows界面程序(C/S),或Web界面程序(B/S)。(5) 設(shè)計(jì)報(bào)告正文字

2、數(shù)不少于5千字,報(bào)告附錄應(yīng)包括主要源代碼。要求層次清楚、整潔規(guī)范,不得相互抄襲,凡正文內(nèi)容有整段相同者一律以作弊論處。明確課程設(shè)計(jì)的目的和重要性,認(rèn)真領(lǐng)會(huì)課程設(shè)計(jì)的題目,讀懂課程設(shè)計(jì)指導(dǎo)書(shū)的要求,學(xué)會(huì)設(shè)計(jì)的基本方法與步驟,積極認(rèn)真地做好準(zhǔn)備工作。課程設(shè)計(jì)中,學(xué)會(huì)應(yīng)用理論知識(shí),收集、歸納相關(guān)資料,以及解決實(shí)際問(wèn)題的方法。嚴(yán)格要求自己,自信但不固執(zhí),獨(dú)立完成課程設(shè)計(jì)任務(wù),善于接受教師的指導(dǎo)和聽(tīng)取同學(xué)的意見(jiàn),有意識(shí)地樹(shù)立嚴(yán)謹(jǐn)?shù)目茖W(xué)作風(fēng),要獨(dú)立思考,刻苦鉆研,勇于創(chuàng)新,按時(shí)完成課程設(shè)計(jì)任務(wù)。2. 考勤、考核與成績(jī)(1) 嚴(yán)格考勤制度,每次上機(jī)都要記錄,學(xué)生有事必須請(qǐng)假??记谟涗浻绊懽罱K成績(jī)。(2) 因

3、實(shí)驗(yàn)室環(huán)境不能滿足課題要求的,可以申請(qǐng)?jiān)趯?shí)驗(yàn)室外進(jìn)行設(shè)計(jì)工作。(3) 在課程設(shè)計(jì)的最后一次上機(jī)之前,必須向老師申請(qǐng)考核,考核時(shí)要求演示程序并回答老師提出的問(wèn)題。(4) 最終成績(jī)以考核成績(jī)?yōu)橹?,考核成?jī)占80%以上。(5) 課程設(shè)計(jì)完成后的一周內(nèi)提交設(shè)計(jì)報(bào)告的Word電子文檔和打印件,以及程序源代碼文件(含解決方案文件和工程文件)、數(shù)據(jù)庫(kù)腳本文件和數(shù)據(jù)庫(kù)文件。3. 設(shè)計(jì)報(bào)告(1)要求采用統(tǒng)一格式的報(bào)告封面。(2)目錄,要求目錄層次結(jié)構(gòu)清晰、合理。(3)正文,要求包括概況、系統(tǒng)分析與設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)、總結(jié)、參考文獻(xiàn)等方面內(nèi)容。系統(tǒng)分析與設(shè)計(jì)可包括:系統(tǒng)功能分析、概念模型、數(shù)據(jù)表結(jié)構(gòu)、三層架構(gòu)、類(lèi)的設(shè)

4、計(jì)等。系統(tǒng)實(shí)現(xiàn)可包括:數(shù)據(jù)庫(kù)實(shí)現(xiàn)(SQL腳本)、程序界面、界面操作、關(guān)鍵技術(shù)及實(shí)現(xiàn)代碼、調(diào)試中遇到的問(wèn)題等??偨Y(jié)可包括:結(jié)論(已完成功能、涉及的主要技術(shù))、下一步工作安排、收獲與體會(huì)等。(4)附錄,要求包括數(shù)據(jù)庫(kù)對(duì)象(含存儲(chǔ)過(guò)程等)的SQL腳本代碼,以及主要源程序代碼。2/48圖書(shū)管理系統(tǒng)C# 設(shè)計(jì)指導(dǎo)書(shū) V2.02013.8.1 9.20 LSH圖書(shū)管理系統(tǒng)設(shè)計(jì)指導(dǎo)書(shū)1. 設(shè)計(jì)題目圖書(shū)管理系統(tǒng)2. 設(shè)計(jì)目的通過(guò)對(duì)圖書(shū)管理系統(tǒng)的系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、編碼和調(diào)試等工作的實(shí)踐,熟悉管理信息系統(tǒng)的開(kāi)發(fā)過(guò)程、設(shè)計(jì)方法及相關(guān)編程技術(shù),熟練掌握數(shù)據(jù)庫(kù)設(shè)計(jì)的基本理論及方法。3. 設(shè)計(jì)任務(wù)要求完成一個(gè)具有一定實(shí)

5、用價(jià)值的圖書(shū)管理系統(tǒng),主要任務(wù)包括: 在Microsoft SQL Server 2000/2005/2008環(huán)境下建立圖書(shū)管理系統(tǒng)所使用的數(shù)據(jù)庫(kù),利用企業(yè)管理器或查詢分析器建立各種數(shù)據(jù)庫(kù)對(duì)象,包括:數(shù)據(jù)表、視圖、約束、存儲(chǔ)過(guò)程和觸發(fā)器等; 掌握ADO.NET編程技術(shù),對(duì)MS SQL Server數(shù)據(jù)庫(kù)進(jìn)行連接和操縱; 掌握使用C#語(yǔ)言開(kāi)發(fā)一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的基本方法和步驟,熟悉一些基礎(chǔ)功能的實(shí)現(xiàn)方法,如:數(shù)據(jù)維護(hù)(插刪改等操作),數(shù)據(jù)查詢、瀏覽和Excel導(dǎo)出,統(tǒng)計(jì)與報(bào)表,用戶登錄和權(quán)限管理等。 了解C/S或B/S應(yīng)用程序的多層體系結(jié)構(gòu)及三層架構(gòu)方案設(shè)計(jì)思想,了解迭代式開(kāi)發(fā),熟悉面向?qū)ο笤O(shè)計(jì)

6、方法及其分析與設(shè)計(jì)過(guò)程,了解UML文檔及其開(kāi)發(fā)過(guò)程中的作用。指導(dǎo)書(shū)說(shuō)明:(1)開(kāi)發(fā)環(huán)境與目標(biāo):微軟 C#、SQL Server,基于C/S結(jié)構(gòu)的Windows應(yīng)用程序。(2)僅給出了部分功能的設(shè)計(jì)與實(shí)現(xiàn),以說(shuō)明面向?qū)ο蠓治雠c設(shè)計(jì)的一般方法以及關(guān)鍵編程技術(shù),其它功能部分需要自己完成。(3)為減少篇幅和降低閱讀門(mén)檻,沒(méi)有追求使用標(biāo)準(zhǔn)的UML設(shè)計(jì)文檔和術(shù)語(yǔ)。4. 設(shè)計(jì)準(zhǔn)備4.1 系統(tǒng)準(zhǔn)備操作系統(tǒng):Windows xp/7/8數(shù)據(jù)庫(kù)系統(tǒng):SQL Server 2005/2008/2012客戶端開(kāi)發(fā)工具:Visual Studio 2005/2008/2010/20124.2 知識(shí)準(zhǔn)備熟悉SQL Ser

7、ver 2005/2008/2012的使用;熟悉C#、ASP.NET語(yǔ)言及其數(shù)據(jù)庫(kù)編程技術(shù)。了解:迭代式開(kāi)發(fā)過(guò)程、UML設(shè)計(jì)文檔、設(shè)計(jì)模式;以及圖書(shū)館相關(guān)業(yè)務(wù)知識(shí)4.3 迭代式開(kāi)發(fā)迭代式開(kāi)發(fā)(統(tǒng)一過(guò)程UP) 系統(tǒng)開(kāi)發(fā)被組織成一系列固定的短期(一段為2-6周)小項(xiàng)目,稱為迭代;每次迭代都產(chǎn)生可執(zhí)行的系統(tǒng)。每次迭代都包括計(jì)劃、需求、分析、設(shè)計(jì)、編碼、測(cè)試等過(guò)程以及文檔編寫(xiě)工作;第一次迭代考慮系統(tǒng)的核心功能,隨后的迭代逐步擴(kuò)展系統(tǒng)功能;每次迭代的成果(含需求、分析、設(shè)計(jì)、代碼和文檔等)均為下一次迭代的工作基礎(chǔ),直至滿足最終需求。這種開(kāi)發(fā)過(guò)程是基于面向?qū)ο蠓椒ǖ摹?. 系統(tǒng)分析系統(tǒng)邊界與約定(1) 系

8、統(tǒng)限定在實(shí)體書(shū)庫(kù)的借閱和管理等業(yè)務(wù)范圍;(2) 不考慮圖書(shū)館的電子書(shū)庫(kù)、訂購(gòu)、情報(bào)、人事管理等業(yè)務(wù);(3) 不考慮圖書(shū)館的跨區(qū)分布情況,如長(zhǎng)江大學(xué)圖書(shū)館包括多個(gè)校區(qū)圖書(shū)館;(4) 不考慮圖書(shū)的通借通還,如長(zhǎng)江大學(xué)讀者可在湖北省高校任何一家圖書(shū)館借還圖書(shū);(5) 不考慮珍藏圖書(shū)的借閱業(yè)務(wù);(6) 暫不考慮與校園一卡通系統(tǒng)的外部接口。一卡通系統(tǒng)為外部系統(tǒng)(外部參與者),卡內(nèi)記錄有身份及相關(guān)信息,該系統(tǒng)負(fù)責(zé)身份驗(yàn)證工作。(7) 期刊庫(kù)和論文庫(kù)的借閱和管理等業(yè)務(wù)可作為二期項(xiàng)目目標(biāo),視本系統(tǒng)使用情況而定。需求概要(1) 圖書(shū)管理系統(tǒng)的基本功能需求包括:讀者管理、圖書(shū)管理、借閱管理、用戶登錄與用戶管理等;

9、其它功能需求包括:讀者查詢與預(yù)約借書(shū)*、統(tǒng)計(jì)與報(bào)表*、數(shù)據(jù)備份*、書(shū)架管理*、期刊管理*、期刊借閱*、論文管理*、論文借閱*等。(* 表示留待以后的迭代周期完成,下同)(2) 相關(guān)領(lǐng)域概念:借書(shū)證(讀者)、圖書(shū)、借還書(shū)記錄。(3) 系統(tǒng)外部參與者:讀者、借書(shū)證管理員、圖書(shū)管理員、借閱管理員、系統(tǒng)管理員。將圖書(shū)館工作人員劃分為借書(shū)證管理、圖書(shū)管理、借閱管理等三類(lèi)人員;系統(tǒng)管理員負(fù)責(zé)數(shù)據(jù)庫(kù)和軟件系統(tǒng)管理,包括各類(lèi)管理員用戶的創(chuàng)建和授權(quán)、數(shù)據(jù)庫(kù)備份等工作。系統(tǒng)分析目標(biāo)找出系統(tǒng)用例,書(shū)寫(xiě)用例文檔,建立領(lǐng)域模型(概念模型)。用例 use case,或譯為使用案例、用況。是指為了完成一個(gè)領(lǐng)域目標(biāo)或任務(wù),提

10、供一個(gè)或多個(gè)場(chǎng)景來(lái)說(shuō)明其在系統(tǒng)內(nèi)部與外部(人員或外部系統(tǒng)等)之間的交互過(guò)程。如辦理借書(shū)證、借書(shū)、還書(shū)、用戶登錄等均為用例;而借閱管理不是用例,因?yàn)樗ǘ鄠€(gè)任務(wù);讀者可否借書(shū)也不是用例,因?yàn)樗皇且粋€(gè)領(lǐng)域任務(wù)或業(yè)務(wù)目標(biāo)。參見(jiàn)“參考資料01 用例.doc”。用例是一個(gè)事件流,一個(gè)事件對(duì)應(yīng)一個(gè)系統(tǒng)操作;如借書(shū)用例中的“根據(jù)借書(shū)證號(hào)查詢讀者信息”、“根據(jù)借書(shū)證號(hào)查詢超期未歸還圖書(shū)”、“判斷讀者可否借書(shū)”、“判斷圖書(shū)是否在館”、“確認(rèn)借書(shū)”等均為事件或系統(tǒng)操作。找出系統(tǒng)用例后,對(duì)每個(gè)用例的交互操作過(guò)程進(jìn)行描述(即書(shū)寫(xiě)用例),通過(guò)用例發(fā)現(xiàn)領(lǐng)域概念及其屬性,并建立領(lǐng)域模型(即概念模型)。用例與領(lǐng)域模型的建

11、立過(guò)程一般是交互進(jìn)行的,并相互參考、印證和補(bǔ)充完善。通過(guò)用例發(fā)現(xiàn)事件或系統(tǒng)操作,可進(jìn)行下一步的設(shè)計(jì)和實(shí)現(xiàn)工作,是系統(tǒng)設(shè)計(jì)主要內(nèi)容。在面向?qū)ο蠓椒ǖ拈_(kāi)發(fā)過(guò)程中,分析與設(shè)計(jì)沒(méi)有明顯的界限,只是側(cè)重面不同而已。5.1 讀者管理讀者管理即借書(shū)證管理,包括的業(yè)務(wù)(即用例)有:辦理借書(shū)證、借書(shū)證變更、借書(shū)證掛失、解除掛失、補(bǔ)辦借書(shū)證、注銷(xiāo)借書(shū)證、批量辦理新生借書(shū)證*等。(*表示留待迭代2及以后完成,下同。完成此類(lèi)用例文檔并實(shí)現(xiàn)其功能者,教師可酌情加分)借書(shū)證(讀者)可分為2種類(lèi)別:教師、學(xué)生。借書(shū)證(教師)=借書(shū)證號(hào)、姓名、性別、所在單位、辦證日期、照片等。借書(shū)證(學(xué)生)=借書(shū)證號(hào)、學(xué)號(hào)、姓名、性別、專(zhuān)業(yè)

12、、班級(jí)、辦證日期、有效期、照片等。其中,有效期由學(xué)生類(lèi)別決定,本科生4年、專(zhuān)科生3年、碩士生3年等。相關(guān)業(yè)務(wù)規(guī)則:(1)讀者憑借書(shū)證借書(shū);(2)教師最多借書(shū)12本,借書(shū)期限最長(zhǎng)為60天,可續(xù)借2次;學(xué)生最多借書(shū)8本,借書(shū)期限最長(zhǎng)為30天,可續(xù)借1次;(3)處于掛失、注銷(xiāo)狀態(tài)的讀者不能借書(shū);(4)未歸還圖書(shū)者不能注銷(xiāo)其借書(shū)證。分析:增加讀者類(lèi)別概念,統(tǒng)一并簡(jiǎn)化讀者信息,采用教師屬性項(xiàng),而學(xué)生可在所在單位填寫(xiě)班級(jí),學(xué)生特有讀者信息可留待以后的開(kāi)發(fā)周期處理??傻玫?個(gè)概念:讀者、讀者類(lèi)別。讀者=借書(shū)證號(hào)、姓名、性別、所在單位、讀者類(lèi)別、辦證日期、照片等。(另可加:電話、郵箱等)讀者類(lèi)別=讀者類(lèi)別號(hào)、

13、類(lèi)別名稱、可借書(shū)本數(shù)、可借書(shū)天數(shù)、可續(xù)借次數(shù)。思考:學(xué)生借書(shū)證的有效期如何處理?1. 辦理借書(shū)證用例名稱:辦理借書(shū)證迭 代:1 (說(shuō)明:第1次迭代期間的用例文檔)參 與 者:借書(shū)證管理員(或系統(tǒng)管理員)、讀者綜 述:用例起始于讀者來(lái)到借書(shū)證管理辦公室,管理員給讀者辦理新借書(shū)證。觸 發(fā) 器: (說(shuō)明該用例的觸發(fā)條件)前置條件:登錄用戶具備讀者管理權(quán)限。過(guò)程描述: (標(biāo)題名或?yàn)椋夯玖鞒?、基本事件流、主要成功?chǎng)景等)1. 管理員輸入:讀者類(lèi)別、所在單位、姓名。2. 點(diǎn)擊“查詢”。3. 系統(tǒng)查詢讀者信息,并顯示查詢結(jié)果。4. 管理員判斷該讀者是否已辦理借書(shū)證,若是,則可取消辦證過(guò)程。(人工操作)5.

14、 管理員輸入讀者信息:讀者類(lèi)別、姓名、性別、所在單位、辦證日期、照片等。(類(lèi)別、姓名、單位等可預(yù)置為過(guò)程1中輸入值,辦證日期可預(yù)置為系統(tǒng)日期)6. 確認(rèn)辦證。后置條件:創(chuàng)建新的讀者對(duì)象,并具有新的借書(shū)證號(hào);系統(tǒng)記錄讀者信息。業(yè)務(wù)規(guī)則:借書(shū)證號(hào)應(yīng)具有唯一性。待解決問(wèn)題: 1. 打印借書(shū)證;注 釋?zhuān)何纯紤]校園一卡通做為借書(shū)證使用的情況作者與日期: 2013-7-24日,LSH,版本號(hào)1.0思考:讀者分成教師和學(xué)生2個(gè)概念時(shí),用例有何不同?2. 變更借書(shū)證變更借書(shū)證類(lèi)別、有效期、所在單位等,以及其它信息;借書(shū)證號(hào)不可更改。用例(略 要求自己完成)3. 掛失借書(shū)證用例名稱:掛失借書(shū)證參 與 者:借書(shū)證

15、管理員、讀者綜 述:用例起始于讀者來(lái)到借書(shū)證管理辦公室,管理員給讀者辦理借書(shū)證掛失。前置條件:登錄用戶具備讀者管理權(quán)限,且讀者已經(jīng)存在過(guò)程描述:1. 輸入借書(shū)證號(hào),或輸入讀者的類(lèi)別、單位、姓名。2. 點(diǎn)擊“查詢”。3. 系統(tǒng)查詢并顯示讀者信息。4. 找到其借書(shū)證,且讀者狀態(tài)為有效。5. 確認(rèn)掛失。系統(tǒng)修改讀者狀態(tài)為掛失。后置條件:系統(tǒng)記錄讀者信息。業(yè)務(wù)規(guī)則:借書(shū)證掛失后禁止讀者借書(shū)。分析:修改讀者概念,增加屬性“借書(shū)證狀態(tài)”;并修改辦理借書(shū)證用例。4. 解除掛失用例名稱:解除掛失參 與 者:借書(shū)證管理員、讀者綜 述:用例起始于讀者來(lái)到借書(shū)證管理辦公室,管理員給讀者辦理解除借書(shū)證掛失。前置條件:

16、登錄用戶具備讀者管理權(quán)限,且讀者已經(jīng)存在過(guò)程描述:1. 輸入借書(shū)證號(hào),或輸入讀者的類(lèi)別、單位、姓名。2. 點(diǎn)擊“查詢”。3. 系統(tǒng)查詢并顯示讀者信息。4. 找到其借書(shū)證。5. 確認(rèn)解除掛失。(前提:讀者狀態(tài)為掛失)6. 系統(tǒng)修改讀者狀態(tài)為有效。后置條件:系統(tǒng)記錄讀者信息。5. 補(bǔ)辦借書(shū)證補(bǔ)辦借書(shū)證過(guò)程:創(chuàng)建新借書(shū)證(復(fù)制原讀者信息,但借書(shū)證需取新號(hào),其它信息不變),并將原借書(shū)證的借閱記錄轉(zhuǎn)移到新證上,原借書(shū)證注銷(xiāo)。用例(略 自己完成)6. 注銷(xiāo)借書(shū)證相關(guān)規(guī)則:有未歸還圖書(shū)者不能辦理注銷(xiāo)。用例(略 自己完成)7. 批量辦理新生借書(shū)證*從教務(wù)管理系統(tǒng)導(dǎo)入新生信息,系統(tǒng)生成借書(shū)證信息,管理員核實(shí)后辦

17、理借書(shū)證。用例(略,思考:聯(lián)機(jī)在線導(dǎo)入,離線導(dǎo)入)8. 讀者類(lèi)型管理從系統(tǒng)的功能完整性來(lái)看,還存在一個(gè)隱性的功能需求:讀者類(lèi)型管理,即讀者類(lèi)型信息的插、刪、改、查等數(shù)據(jù)維護(hù)操作。用例(略 要求自己完成)5.2 圖書(shū)管理包括業(yè)務(wù)(用例):圖書(shū)編目*、新書(shū)入庫(kù)、圖書(shū)信息維護(hù)、圖書(shū)變賣(mài)與銷(xiāo)毀處理*等。圖書(shū)信息=書(shū)號(hào)、書(shū)名、作者、出版社、出版日期、ISBN、分類(lèi)號(hào)、語(yǔ)言、頁(yè)數(shù)、單價(jià)、內(nèi)容簡(jiǎn)介、圖書(shū)封面、圖書(shū)狀態(tài)等;(圖書(shū)狀態(tài)包括:在館、借出、遺失、變賣(mài)、銷(xiāo)毀)1. 圖書(shū)編目*新書(shū)入庫(kù)前,圖書(shū)管理員對(duì)圖書(shū)進(jìn)行圖書(shū)編目工作,即根據(jù)該館的現(xiàn)有圖書(shū)分類(lèi)目錄信息編寫(xiě)新書(shū)的分類(lèi)號(hào),需要時(shí)根據(jù)圖書(shū)分類(lèi)法增加新的圖書(shū)

18、分類(lèi)條目。圖書(shū)信息= 、分類(lèi)號(hào)、圖書(shū)分類(lèi)目錄=分類(lèi)號(hào)、分類(lèi)名。圖書(shū)分類(lèi)信息主要用于統(tǒng)計(jì),如中文圖書(shū)分類(lèi)條目:-分類(lèi)號(hào)分類(lèi)名TP自動(dòng)化技術(shù)、計(jì)算機(jī)技術(shù)TP3計(jì)算技術(shù)、計(jì)算機(jī)技術(shù)TP31計(jì)算機(jī)軟件TP311程序設(shè)計(jì)、軟件工程TP312程序語(yǔ)言、算法語(yǔ)言TP311.13數(shù)據(jù)庫(kù)理論與系統(tǒng)TP311.131數(shù)據(jù)庫(kù)理論新書(shū)分類(lèi)號(hào),如圖書(shū)“C#高級(jí)編程(第7版)”可編為:TP312/3033.2圖書(shū)分類(lèi)概念暫不考慮, 可留待以后開(kāi)發(fā)周期處理。用例名稱:圖書(shū)編目(略)2. 新書(shū)入庫(kù)用例名稱:新書(shū)入庫(kù)參 與 者:圖書(shū)管理員前置條件:登錄用戶具備圖書(shū)管理身份和權(quán)限過(guò)程描述:1. 輸入或系統(tǒng)生成起始書(shū)號(hào)(BkNO)

19、。2. 輸入:圖書(shū)信息(書(shū)名、作者、出版社、出版日期、語(yǔ)言、頁(yè)數(shù)、單價(jià)、ISBN、分類(lèi)號(hào)、內(nèi)容簡(jiǎn)介等)、入庫(kù)數(shù)量(N,N>=1)、入館日期。3. 確認(rèn)圖書(shū)入庫(kù)。4. 圖書(shū)館工作人員對(duì)圖書(shū)進(jìn)行貼書(shū)簽(分類(lèi)號(hào))、印書(shū)號(hào)(或條形碼)、蓋圖書(shū)館印章。5. 圖書(shū)上架。后置條件:創(chuàng)建N個(gè)圖書(shū)對(duì)象,書(shū)號(hào)分別為BkNO、BkNO+1、BkNO+N-1,這N本圖書(shū)的狀態(tài)均修改為在館;系統(tǒng)記錄圖書(shū)信息。注 釋?zhuān)築kNO+N可作為下一次新書(shū)入庫(kù)的起始書(shū)號(hào)。思考:圖書(shū)信息劃分為2個(gè)概念是否更為合理?館藏圖書(shū)目錄=書(shū)名、作者、出版社、出版日期、ISBN、分類(lèi)號(hào)、語(yǔ)言、頁(yè)數(shù)、單價(jià)、內(nèi)容簡(jiǎn)介、圖書(shū)封面、入庫(kù)數(shù)量、入館

20、日期圖書(shū)=書(shū)號(hào)、分類(lèi)號(hào)、圖書(shū)狀態(tài)3. 圖書(shū)信息維護(hù)圖書(shū)信息的查、刪、改等信息維護(hù)操作。用例名稱:圖書(shū)信息維護(hù)(略 自己完成,提示:先查找,再刪改)4. 在館圖書(shū)變賣(mài)與銷(xiāo)毀處理*長(zhǎng)期沒(méi)有借閱記錄且失去保存價(jià)值的圖書(shū)可以進(jìn)行變賣(mài)或銷(xiāo)毀處理。用例名稱:在館圖書(shū)銷(xiāo)毀和變賣(mài)處理(略)5.3 借閱管理包括業(yè)務(wù)用例:借書(shū)、續(xù)借、還書(shū)等。還書(shū)過(guò)程涉及超期罰款、遺失圖書(shū)罰款等業(yè)務(wù)規(guī)則。罰款規(guī)則:(1)超期罰款規(guī)則 應(yīng)罰款金額=超期天數(shù)*罰款率,罰款率=0.05元/天,罰款率可能隨時(shí)間或讀者類(lèi)別而變化;實(shí)際罰款金額<=應(yīng)罰款金額,根據(jù)實(shí)際情況可以進(jìn)行減免。(2)遺失罰款規(guī)則 遺失圖書(shū)應(yīng)罰款金額=3*圖書(shū)單價(jià)

21、;實(shí)際罰款金額在(1*圖書(shū)單價(jià),3*圖書(shū)單價(jià))之間。(3)遺失罰款規(guī)則優(yōu)先于超期罰款規(guī)則。借書(shū)記錄=借書(shū)證號(hào)、書(shū)號(hào)、借書(shū)操作員、借書(shū)日期、應(yīng)還日期續(xù)借記錄=借書(shū)證號(hào)、書(shū)號(hào)、續(xù)借操作員、續(xù)借日期、應(yīng)還日期,續(xù)借次數(shù)還書(shū)記錄=借書(shū)證號(hào)、書(shū)號(hào)、還書(shū)操作員、還書(shū)日期、應(yīng)還日期,超期天數(shù)、應(yīng)罰款金額,實(shí)際罰款金額分析:借書(shū)記錄、續(xù)借記錄、還書(shū)記錄等信息可合并為借閱記錄,續(xù)借可舍去部分信息。借閱歷史記錄應(yīng)該長(zhǎng)期保存在數(shù)據(jù)庫(kù)中,以便于統(tǒng)計(jì)分析,另外,讀者對(duì)一本書(shū)可能多次借閱,故借閱信息應(yīng)該增加一個(gè)標(biāo)識(shí)項(xiàng):借書(shū)順序號(hào)。借閱信息=借書(shū)順序號(hào)、借書(shū)證號(hào)、書(shū)號(hào)、借書(shū)操作員、借書(shū)日期、應(yīng)還日期,續(xù)借次數(shù)、還書(shū)操作員、

22、還書(shū)日期,超期天數(shù)、應(yīng)罰款金額,實(shí)際罰款金額1. 借書(shū)用例名稱:借書(shū)參 與 者:借閱管理員、讀者綜 述:用例起始于讀者帶著圖書(shū)來(lái)到圖書(shū)借閱大廳,管理員給讀者辦理借書(shū)手續(xù)。前置條件:登錄用戶具備借閱管理權(quán)限。過(guò)程描述:1. 管理員輸入借書(shū)證號(hào),點(diǎn)擊“查詢讀者”。2. 系統(tǒng)查詢讀者信息、未歸還圖書(shū)信息(含超期),并進(jìn)行顯示。3. 系統(tǒng)判斷讀者可否借書(shū)(借書(shū)證狀態(tài)為有效,已借書(shū)數(shù)量小于可借書(shū)數(shù)量,不存在超期未歸還圖書(shū))。若不可借書(shū),則禁止借書(shū)。4. 管理員輸入待借圖書(shū)的書(shū)號(hào),點(diǎn)擊“查詢圖書(shū)”。5. 系統(tǒng)查詢,并顯示圖書(shū)信息。6. 系統(tǒng)判斷圖書(shū)是否在館,若不在館,則禁止借書(shū)。7. 管理員點(diǎn)擊“借書(shū)”。

23、8. 系統(tǒng)完成以下操作:8.a 創(chuàng)建借閱記錄對(duì)象(借書(shū)順序號(hào)由系統(tǒng)自動(dòng)產(chǎn)生,借書(shū)證號(hào)和書(shū)號(hào)為上述輸入值,借書(shū)操作員=登錄用戶,借書(shū)日期=系統(tǒng)日期,應(yīng)還日期=系統(tǒng)日期+可借書(shū)天數(shù),續(xù)借次數(shù)=0,還書(shū)日期=NULL,還書(shū)操作員=NULL),并標(biāo)記為未歸還;8.b 修改讀者對(duì)象的已借書(shū)數(shù)量+1;8.c 修改圖書(shū)狀態(tài)為借出;后置條件:系統(tǒng)記錄借閱對(duì)象、讀者對(duì)象、圖書(shū)對(duì)象。業(yè)務(wù)規(guī)則:(1)借書(shū)證狀態(tài)為掛失、注銷(xiāo)者不能借書(shū);(2)借書(shū)數(shù)量不能超過(guò)可借書(shū)數(shù)量;(3)有超期未歸還圖書(shū)者不能借書(shū)。注 釋?zhuān)何礆w還圖書(shū)狀態(tài)可采用還書(shū)日期為空(NULL)來(lái)標(biāo)記,或另加屬性表示是否還書(shū)。修改讀者信息:增加“已借書(shū)數(shù)量”

24、;修改用例辦理借書(shū)證:后置條件中,已借書(shū)數(shù)量=0。練習(xí):修改用例以滿足讀者攜帶多本圖書(shū)進(jìn)行借書(shū)的要求。2. 續(xù)借用例名稱:續(xù)借參 與 者:借閱管理員、讀者前置條件:登錄用戶具備借閱管理權(quán)限、圖書(shū)狀態(tài)為借出過(guò)程描述:1. 輸入待續(xù)借圖書(shū)書(shū)號(hào)。2. 系統(tǒng)查詢并獲取圖書(shū)對(duì)象、未歸還狀態(tài)的借閱記錄對(duì)象、及其讀者對(duì)象,并進(jìn)行顯示。3. 系統(tǒng)判斷可否續(xù)借(續(xù)借次數(shù)<可續(xù)借次數(shù), 讀者狀態(tài)為有效)。4. 點(diǎn)擊“續(xù)借”。后置條件:修改借閱記錄對(duì)象(續(xù)借次數(shù)+1,應(yīng)還日期+=可借書(shū)天數(shù)),圖書(shū)狀態(tài)為借出,并保存到數(shù)據(jù)庫(kù)中。業(yè)務(wù)規(guī)則:(1)借書(shū)證狀態(tài)為掛失、注銷(xiāo)者不能續(xù)借;(2)續(xù)借次數(shù)不能超過(guò)可續(xù)借次數(shù)。

25、注 釋?zhuān)豪m(xù)借前后圖書(shū)狀態(tài)應(yīng)為借出3. 還書(shū)還書(shū)用例需要處理超期罰款、遺失圖書(shū)罰款處理2種情況。用例名稱:歸還圖書(shū)(略 要求自己完成,完成罰款處理者,教師可酌情加分)5.4 用戶登錄與用戶管理包括用例:用戶登錄、密碼修改、用戶管理*,為本系統(tǒng)的基礎(chǔ)和主要功能。用戶包括2類(lèi):讀者、管理員。其中,管理員用戶權(quán)限是4種角色的組合:借書(shū)證管理、圖書(shū)管理、借閱管理、系統(tǒng)管理;系統(tǒng)管理員負(fù)責(zé)所有管理員用戶及其權(quán)限的管理,借書(shū)證管理員負(fù)責(zé)讀者管理(即借書(shū)證管理)。管理員是讀者,但讀者不一定是管理員;讀者與管理員間存在(1對(duì)0.1)聯(lián)系。讀者信息+=密碼。管理員信息=用戶號(hào)、用戶名、密碼、管理角色管理角色設(shè)計(jì):

26、可采用4位二進(jìn)制,借書(shū)證管理(0001)2=1、圖書(shū)管理(0010)2=2、借閱管理(0100)2=4、系統(tǒng)管理(1000)2=8。如表示圖書(shū)管理和借閱管理權(quán)限:2+4=6;判斷7是否具備圖書(shū)管理權(quán)限:7位與2,即(0111)2位與(0010)2=(0010)2,表示有此權(quán)限。分析:將管理員信息合并到讀者中,可簡(jiǎn)化概念,此時(shí),非管理員的管理角色(0000)2=0。好處:簡(jiǎn)化用戶登錄用例;壞處:概念不夠清晰,給用戶管理帶來(lái)不便。第1個(gè)迭代周期采用簡(jiǎn)化概念設(shè)計(jì)。另外也可用4個(gè)邏輯數(shù)據(jù)項(xiàng)分別表示4個(gè)管理角色。讀者信息+=密碼、管理角色。需修改用例辦理借書(shū)證(自己完成)。1. 用戶登錄用例名稱:用戶登

27、錄參 與 者:讀者或管理員前置條件:無(wú)過(guò)程描述:1. 輸入用戶號(hào)(即借書(shū)證號(hào))、密碼;密碼采用掩碼“*”號(hào)顯示。2. 點(diǎn)擊“登錄”。3. 系統(tǒng)根據(jù)借書(shū)證號(hào)獲取讀者對(duì)象。3a. 未獲取讀者對(duì)象時(shí),顯示無(wú)此用戶,轉(zhuǎn)入1;3b. 密碼未匹配時(shí),顯示密碼錯(cuò)誤,并清空密碼,轉(zhuǎn)入1;4. 進(jìn)入系統(tǒng)主程序界面。后置條件:根據(jù)登錄用戶權(quán)限顯示或隱藏相應(yīng)的系統(tǒng)功能(菜單等)。待解決問(wèn)題:1. 掛失或注銷(xiāo)借書(shū)證者不能登錄。注 釋?zhuān)涸摰卿浻脩簦ㄗx者)對(duì)象應(yīng)為全局可見(jiàn)系統(tǒng)功能與用戶角色之間的關(guān)系參見(jiàn)“表1 系統(tǒng)功能與用戶角色關(guān)系表”。2. 密碼修改用例名稱:修改密碼參 與 者:用戶綜 述:用戶登錄后修改自己的登錄密碼

28、。.(略)3. 用戶管理*用例名稱:用戶管理參 與 者:系統(tǒng)管理員、圖書(shū)館工作人員綜 述:系統(tǒng)管理員對(duì)圖書(shū)館工作人員進(jìn)行權(quán)限管理。前置條件:登錄用戶為系統(tǒng)管理員,圖書(shū)館工作人員需先辦理借書(shū)證過(guò)程描述:1. 輸入借書(shū)證號(hào),或輸入讀者的類(lèi)別、單位、姓名。2. 點(diǎn)擊“查詢”。3. 系統(tǒng)查詢,并顯示讀者信息。4. 找到借書(shū)證后,設(shè)置該讀者的管理角色。5. 確認(rèn)完成。后置條件:修改讀者的管理員角色,系統(tǒng)記錄讀者信息。注 釋?zhuān)?管理角色有4種:借書(shū)證管理、圖書(shū)管理、借閱管理、系統(tǒng)管理5.5 讀者查詢與預(yù)約借書(shū)*讀者(非管理員用戶)的功能需求,包括用例:未歸還圖書(shū)查詢與續(xù)借*(含超期、即將到期查詢操作)、預(yù)

29、約借書(shū)*(含在館圖書(shū)查詢操作)等。該類(lèi)讀者所使用的功能最好是采用web程序?qū)崿F(xiàn),Web程序功能可包括:讀者登錄、密碼修改、未歸還圖書(shū)查詢與續(xù)借*、預(yù)約借書(shū)*等。用例名稱:未歸還圖書(shū)查詢與續(xù)借(略,思考:與續(xù)借用例有不同嗎?)用例名稱:預(yù)約借書(shū)(略,思考:對(duì)借書(shū)用例有何影響?可在迭代2完善借書(shū)用例)5.6 統(tǒng)計(jì)與報(bào)表*包括:館藏圖書(shū)統(tǒng)計(jì)、借閱情況統(tǒng)計(jì)、借閱時(shí)段統(tǒng)計(jì)等等。館藏圖書(shū)統(tǒng)計(jì)可按圖書(shū)類(lèi)別、入館時(shí)間統(tǒng)計(jì)圖書(shū)數(shù)量、金額等,可得圖書(shū)分布情況;借閱情況統(tǒng)計(jì)可按單位(含專(zhuān)業(yè)、年級(jí))、圖書(shū)類(lèi)別、借閱時(shí)間(年、學(xué)期、月份)等統(tǒng)計(jì)借閱次數(shù)和天數(shù),統(tǒng)計(jì)結(jié)果可作為訂購(gòu)新書(shū)的參考依據(jù);借閱時(shí)段統(tǒng)計(jì)按工作日(星期

30、一、二、)和時(shí)段(8:00-8:30、8:30-9:00、)統(tǒng)計(jì)借還書(shū)次數(shù),可得各時(shí)段的借閱工作量,并可依此安排借閱管理人員。注:涉及OLAP(聯(lián)機(jī)分析處理)技術(shù),開(kāi)發(fā)者需理解“多維數(shù)據(jù)模型”及相關(guān)概念。用例(略)5.7 數(shù)據(jù)備份*用戶備份是對(duì)SQL Server數(shù)據(jù)庫(kù)進(jìn)行備份,由系統(tǒng)管理員操作。5.8 系統(tǒng)功能與用戶角色表1 系統(tǒng)功能與用戶角色關(guān)系表序號(hào)系統(tǒng)功能借書(shū)證管理圖書(shū)管理借閱管理系統(tǒng)管理讀者1讀者管理()2圖書(shū)管理3借閱管理4用戶登錄5密碼修改6用戶管理7讀者預(yù)約8統(tǒng)計(jì)與報(bào)表9數(shù)據(jù)備份105.9 領(lǐng)域模型領(lǐng)域概念小結(jié)讀者=讀者號(hào)(借書(shū)證號(hào))、姓名、性別、所在單位、電話、郵箱地址、辦證

31、日期、照片、借書(shū)證狀態(tài)、已借書(shū)數(shù)量、密碼、管理角色。(借書(shū)證狀態(tài):有效、掛失、注銷(xiāo))讀者類(lèi)別=讀者類(lèi)別號(hào)、讀者類(lèi)別名稱、可借書(shū)數(shù)量、可借書(shū)天數(shù)、可續(xù)借次數(shù),罰款率,證件有效期。圖書(shū)=書(shū)號(hào)、書(shū)名、作者、出版社、出版日期、ISBN、分類(lèi)號(hào)、語(yǔ)言、頁(yè)數(shù)、單價(jià)、內(nèi)容簡(jiǎn)介、圖書(shū)封面、圖書(shū)狀態(tài)。(圖書(shū)狀態(tài)包括:在館、借出、遺失、銷(xiāo)毀、賣(mài)出)借閱信息=借書(shū)順序號(hào)、讀者號(hào)、書(shū)號(hào)、借書(shū)操作員、借書(shū)日期、應(yīng)還日期、續(xù)借次數(shù)、還書(shū)操作員、還書(shū)日期,超期天數(shù)、應(yīng)罰款金額、實(shí)際罰款金額。領(lǐng)域模型圖1 圖書(shū)管理系統(tǒng)概念模型(V1)重要提示:在領(lǐng)域模型建立后、以及數(shù)據(jù)庫(kù)設(shè)計(jì)完成后,均應(yīng)檢查所有的用例文檔(檢查重點(diǎn):事件流、

32、前置條件和后置條件),檢查兩者的一致性,發(fā)現(xiàn)缺漏點(diǎn)及矛盾之處,并進(jìn)行修正。6.系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)6.1 數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)1. 讀者類(lèi)別表(TB_ReaderType)序號(hào)字段名數(shù)據(jù)類(lèi)型說(shuō)明1rdTypeSmallInt讀者類(lèi)別【主鍵】2rdTypeNameNvarchar(20)讀者類(lèi)別名稱【唯一、非空】3CanLendQtyInt可借書(shū)數(shù)量4CanLendDayInt可借書(shū)天數(shù)5CanContinueTimesInt可續(xù)借的次數(shù)6PunishRateFloat罰款率(元/天)7DateValidSmallInt證書(shū)有效期(年)【非空,0表示永久有效】2. 讀者信息表(TB_Reader)序號(hào)字段

33、名數(shù)據(jù)類(lèi)型說(shuō)明1rdIDInt讀者編號(hào)/借書(shū)證號(hào)【主鍵】2rdNamenvarchar(20)讀者姓名3rdSexnchar(1)性別,男/女4rdTypeSmallInt讀者類(lèi)別【外鍵TB_ReaderType】【非空】5rdDeptnvarchar (20)單位代碼/單位名稱6rdPhonenvarchar(25)電話號(hào)碼7rdEmailnvarchar(25)電子郵箱8rdDateRegdatetime讀者登記日期/辦證日期9rdPhotoimage讀者照片10rdStatusnchar(2)證件狀態(tài),3個(gè):有效、掛失、注銷(xiāo)11rdBorrowQtyInt已借書(shū)數(shù)量(缺省值0)12rdP

34、wdnvarchar (20)讀者密碼(初值123),可加密存儲(chǔ)13rdAdminRolesSmallInt管理角色,0-讀者、1-借書(shū)證管理、2-圖書(shū)管理、4-借閱管理、8-系統(tǒng)管理,可組合分析提示:(1)可將管理員另外建表,與讀者信息分開(kāi)單獨(dú)進(jìn)行設(shè)計(jì)。(2)單位rdType可以采用名稱,若采用代碼則需另建一張表:?jiǎn)挝淮a與名稱對(duì)照表,這樣便于按單位統(tǒng)計(jì)。(3)管理角色(rdAdminRoles)也可設(shè)計(jì)為4個(gè)bit類(lèi)型字段。3. 圖書(shū)信息表(TB_Book)序號(hào)字段名數(shù)據(jù)類(lèi)型說(shuō)明1bkIDInt圖書(shū)序號(hào)【標(biāo)識(shí)列,主鍵】2bkCodeNvarchar (20)圖書(shū)編號(hào)或條碼號(hào)(前文中的書(shū)號(hào))

35、3bkNameNvarchar(50)書(shū)名4bkAuthorNvarchar(30)作者5bkPressNvarchar(50)出版社6bkDatePressdatetime出版日期7bkISBNNvarchar (15)ISBN書(shū)號(hào)8bkCatalogNvarchar(30)分類(lèi)號(hào)(如:TP316-21/123)9bkLanguageSmallInt語(yǔ)言,0-中文,1-英文,2-日文,3-俄文,4-德文,5-法文10bkPagesInt頁(yè)數(shù)11bkPriceMoney價(jià)格12bkDateInDateTime入館日期13bkBriefText內(nèi)容簡(jiǎn)介14bkCoverimage圖書(shū)封面照片15

36、bkStatusNChar(2)圖書(shū)狀態(tài),在館、借出、遺失、變賣(mài)、銷(xiāo)毀說(shuō)明:bkCode為前文中的書(shū)號(hào),這里沒(méi)有設(shè)計(jì)為關(guān)鍵字,而增加bkID字段作為表關(guān)鍵字,其原因?yàn)椋悍乐剐聲?shū)入庫(kù)時(shí)起始書(shū)號(hào)輸入錯(cuò)誤時(shí),因關(guān)鍵字而不易修改。4. 借閱信息表(TB_Borrow)序號(hào)字段名數(shù)據(jù)類(lèi)型說(shuō)明1BorrowIDNumeric(12,0)借書(shū)順序號(hào)【主鍵】2rdIDInt讀者序號(hào)【外鍵TB_Reader】3bkIDInt圖書(shū)序號(hào)【外鍵TB_Book】4ldContinueTimesInt續(xù)借次數(shù)(第一次借時(shí),記為0)5ldDateOutDateTime借書(shū)日期6ldDateRetPlanDateTime應(yīng)還

37、日期7ldDateRetActDateTime實(shí)際還書(shū)日期8ldOverDayInt超期天數(shù)9ldOverMoneyMoney超期金額(應(yīng)罰款金額)10ldPunishMoneyMoney罰款金額11lsHasReturnBit是否已經(jīng)還書(shū),缺省為0-未還12OperatorLendNvarchar(20)借書(shū)操作員13OperatorRetNvarchar(20)還書(shū)操作員分析提示:借閱信息即用于圖書(shū)的借還管理,同時(shí)又是統(tǒng)計(jì)分析的主要信息來(lái)源,故要求保持其歷史信息。設(shè)計(jì)時(shí)不能以(讀者序號(hào)+圖書(shū)序號(hào))為關(guān)鍵字,否則讀者不能第二次借閱同一本書(shū)了。5. 數(shù)據(jù)庫(kù)實(shí)現(xiàn)內(nèi)容:(1) 創(chuàng)建數(shù)據(jù)庫(kù):Libr

38、ary;(2) 創(chuàng)建登錄名:LibAdmin,密碼:123;并設(shè)置為數(shù)據(jù)庫(kù)Library的dbo;(3) 創(chuàng)建上述4張數(shù)據(jù)表及約束;實(shí)現(xiàn)方法:(1) 采用SQL Server企業(yè)管理器手工操作方法完成創(chuàng)建工作;(自己完成)(2) 編寫(xiě)SQL腳本文件,并在查詢窗口工具中運(yùn)行并創(chuàng)建;如創(chuàng)建TB_ReaderType表:CREATE TABLE dbo.TB_ReaderType(rdType smallint NOT NULL,rdTypeName nvarchar(20) NOT NULL,CanLendQty int NULL,CanLendDay int NULL,CanContinueTi

39、mes int NULL,PunishRate float NULL,DateValid smallint NULL DEFAULT (0), PRIMARY KEY (rdType), UNIQUE (rdTypeName)GOinsert into TB_ReaderTypevalues(10,'教師',12,60,2,0.05,0);insert into TB_ReaderTypevalues(20,'本科生',8,30,1,0.05,4);insert into TB_ReaderTypevalues(21,'專(zhuān)科生',8,30,1,0

40、.05,3);insert into TB_ReaderTypevalues(30,'碩士研究生',8,30,1,0.05,3);insert into TB_ReaderTypevalues(31,'博士研究生',8,30,1,0.05,4);GO6.2 三層架構(gòu)簡(jiǎn)介采用三層體系結(jié)構(gòu),即表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問(wèn)層,如圖2所示,圖中箭頭表示調(diào)用和依賴關(guān)系。圖2 三層架構(gòu)示意圖表示層(USL):也稱UI,提供交互式界面,形式:WinForm或HTML Web界面。業(yè)務(wù)邏輯層(BLL):實(shí)現(xiàn)業(yè)務(wù)功能,為表示層提供服務(wù),形式:類(lèi)庫(kù)。數(shù)據(jù)訪問(wèn)層(DAL):實(shí)現(xiàn)數(shù)據(jù)訪

41、問(wèn)功能(如數(shù)據(jù)庫(kù)、文件等數(shù)據(jù)的讀取、保存和更新),為業(yè)務(wù)邏輯層提供服務(wù),形式:類(lèi)庫(kù)。微軟公布的SQLHelper類(lèi)提供了對(duì)SQL Server數(shù)據(jù)庫(kù)的一般訪問(wèn)方法(JAVA有類(lèi)似的類(lèi)或組件)。實(shí)體類(lèi)(Model):描述一個(gè)業(yè)務(wù)實(shí)體的類(lèi),也即應(yīng)用系統(tǒng)所涉及的業(yè)務(wù)對(duì)象。對(duì)數(shù)據(jù)庫(kù)來(lái)講,每個(gè)數(shù)據(jù)表對(duì)應(yīng)于一個(gè)實(shí)體類(lèi),數(shù)據(jù)表的每個(gè)字段對(duì)應(yīng)于類(lèi)的一個(gè)屬性。表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層都依賴于業(yè)務(wù)實(shí)體。各層之間數(shù)據(jù)的傳遞主要是實(shí)體對(duì)象,業(yè)務(wù)信息封裝在實(shí)體對(duì)象中。6.3 搭建三層架構(gòu)解決方案創(chuàng)建C#應(yīng)用程序解決方案,包括4個(gè)項(xiàng)目:BookManage(Windows窗口應(yīng)用程序)、BookManage.Mod

42、el(類(lèi)庫(kù))、BookManage.DAL(類(lèi)庫(kù))、BookManage.BLL(類(lèi)庫(kù))。1. 新建項(xiàng)目BookManage(啟動(dòng)項(xiàng)目)MS VS菜單:“文件”->“新建”->“項(xiàng)目”,在新建項(xiàng)目窗口中,選擇“C#”->“Windows”->“Windows窗口應(yīng)用程序”,選擇項(xiàng)目文件的存儲(chǔ)位置,并輸入項(xiàng)目名稱:BookManage,如圖3。項(xiàng)目BookManage即為UI層,該項(xiàng)目在VS .NET編譯后產(chǎn)生BookManage.exe文件。圖3 新建項(xiàng)目BookManage2. 添加新項(xiàng)目BookManage.ModelMS VS菜單:“文件”->“添加”-&g

43、t;“新建項(xiàng)目”,選擇“類(lèi)庫(kù)”,輸入項(xiàng)目名稱,如圖4。VS .NET編譯后產(chǎn)生BookManage.Model.dll文件(.DLL后綴文件稱為動(dòng)態(tài)鏈接庫(kù))。圖4 添加新建項(xiàng)目BookManage.Model3. 添加新項(xiàng)目BookManage.DAL操作與BookManage.Model類(lèi)似,項(xiàng)目名稱設(shè)置為:BookManage.DAL。VS .NET編譯后產(chǎn)生BookManage.DAL.dll文件。4. 添加新項(xiàng)目BookManage.BLL操作與BookManage.Model類(lèi)似,項(xiàng)目名稱設(shè)置為:BookManage.BLL。VS .NET編譯后產(chǎn)生BookManage.BLL.dl

44、l文件。至此,解決方案參見(jiàn)圖5。圖5 圖書(shū)管理項(xiàng)目解決方案5. 設(shè)置啟動(dòng)項(xiàng)目和項(xiàng)目引用關(guān)系在解決方案中設(shè)置BookManage為啟動(dòng)項(xiàng)目(“BookManage”右鍵菜單“設(shè)為啟動(dòng)項(xiàng)目”)。項(xiàng)目引用關(guān)系如表2所示。如BookManage.BLL項(xiàng)目引用DAL和Model,其設(shè)置方法:解決方案中項(xiàng)目“BookManage.BLL”的右鍵菜單“添加引用”,并按圖6進(jìn)行設(shè)置。表2 項(xiàng)目引用關(guān)系。BookManageBookManage.BLLBookManage.DALBookManage.ModelBookManage×BookManage.BLLBookManage.DALBookMa

45、nage.Model圖6 給BookManage.BLL項(xiàng)目添加引用6.4 類(lèi)總體設(shè)計(jì)(迭代1)實(shí)體類(lèi)、數(shù)據(jù)訪問(wèn)層類(lèi)、業(yè)務(wù)邏輯層類(lèi)、表示層窗口類(lèi)的初步設(shè)計(jì)如表3。表3 實(shí)體類(lèi)、數(shù)據(jù)訪問(wèn)層、業(yè)務(wù)邏輯層的類(lèi)設(shè)計(jì)層類(lèi)名說(shuō)明實(shí)體類(lèi)模塊(Model)ReaderType讀者類(lèi)型實(shí)體類(lèi)Reader讀者實(shí)體類(lèi)Book圖書(shū)實(shí)體類(lèi)Borrow借閱記錄實(shí)體類(lèi)數(shù)據(jù)訪問(wèn)層(DAL)ReaderTypeDAL讀者類(lèi)型數(shù)據(jù)表訪問(wèn)類(lèi)(插、刪、改、查、存儲(chǔ)過(guò)程等)ReaderDAL讀者數(shù)據(jù)表訪問(wèn)類(lèi)(插、刪、改、查、存儲(chǔ)過(guò)程等)BookDAL圖書(shū)數(shù)據(jù)表訪問(wèn)類(lèi)(插、刪、改、查、存儲(chǔ)過(guò)程等)BorrowDAL借閱數(shù)據(jù)表訪問(wèn)類(lèi)(插、

46、刪、改、查、存儲(chǔ)過(guò)程等)SQLHelper微軟提供的對(duì)SQL Server數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)的通用類(lèi)業(yè)務(wù)邏輯層(BLL)ReaderTypeAdmin讀者類(lèi)型管理類(lèi),實(shí)現(xiàn)插、刪、改、查等信息維護(hù)操作。ReaderAdmin讀者管理類(lèi),實(shí)現(xiàn)借書(shū)證辦理、變更、補(bǔ)辦、掛失、解除掛失、注銷(xiāo)等用例中的各種系統(tǒng)操作。BookAdmin圖書(shū)管理類(lèi),實(shí)現(xiàn)圖書(shū)管理各用例中的系統(tǒng)操作BorrowAdmin借閱管理類(lèi),實(shí)現(xiàn)借書(shū)、還書(shū)、續(xù)借等用例中的系統(tǒng)操作。UserAdmin用戶管理類(lèi),表示層(UI)frmLogin登錄窗口類(lèi)frmMain程序主窗口類(lèi),含菜單、工具欄、狀態(tài)欄等f(wàn)rmReader讀者管理窗口類(lèi)6.5 M

47、odel層實(shí)體類(lèi)設(shè)計(jì)在BookManage.Model項(xiàng)目中添加4個(gè)實(shí)體類(lèi):ReaderType、Reader、Book、Borrow,分別對(duì)應(yīng)4個(gè)數(shù)據(jù)庫(kù)表。實(shí)體類(lèi)的屬性與數(shù)據(jù)庫(kù)表結(jié)構(gòu)保持一致(名稱、類(lèi)型);實(shí)體類(lèi)應(yīng)盡量簡(jiǎn)單,除了實(shí)體對(duì)象的復(fù)制與比較等方法外,不宜添加過(guò)多方法。其實(shí)實(shí)體類(lèi)就是實(shí)現(xiàn)ORM。ORM Object Relational Mapping 對(duì)象關(guān)系映射,是為了解決面向?qū)ο蟮念?lèi),與關(guān)系數(shù)據(jù)庫(kù)的表之間,存在的不匹配的現(xiàn)象,通過(guò)使用描述對(duì)象和關(guān)系之間映射的元數(shù)據(jù),在程序中的類(lèi)對(duì)象,與關(guān)系數(shù)據(jù)庫(kù)的表之間建立持久的關(guān)系,用于在程序中描述數(shù)據(jù)庫(kù)表。本質(zhì)上就是將數(shù)據(jù)從一種形式轉(zhuǎn)換到另外

48、一種形式。ORM是一個(gè)廣義的概念,適應(yīng)于關(guān)系數(shù)據(jù)庫(kù)與應(yīng)用程序之間的各類(lèi)數(shù)據(jù)轉(zhuǎn)換,目前有許多自動(dòng)轉(zhuǎn)換工具可用,如codesmith 等,也可手工書(shū)寫(xiě)實(shí)體類(lèi)代碼來(lái)實(shí)現(xiàn)ORM。1. ReaderType類(lèi)在Model項(xiàng)目中添加新建項(xiàng):C#代碼類(lèi)ReaderType.cs,如圖7所示。圖7 添加C#代碼類(lèi)文件ReaderType.cs表字段映射為實(shí)體類(lèi)屬性的基本方法(VS 2005及以上版本)如下: private string _rdTypeName; public string rdTypeName get return _rdTypeName; set _rdTypeName = value;

49、而在VS 2008及以上版本中可簡(jiǎn)化為: public string rdTypeName get; set; 表4 SQL字段類(lèi)型與實(shí)體類(lèi)屬性類(lèi)型的映射關(guān)系SQL Server字段類(lèi)型DataTable中類(lèi)型C#實(shí)體類(lèi)設(shè)計(jì)屬性nchar, nvarchar, textSystem.Stringstringint, smallintSystem.Int32, System.Int16intnumeric(12,0)System.DecimallongdatetimeSystem.DateTimeDateTimeFloat, moneySystem.Single, System.Decimalf

50、loatbitSystem.BooleanboolimageSystem.ByteByte在VS 2008及以上版本中ReaderType類(lèi)的實(shí)現(xiàn)代碼如下:在VS 2005(含2008及以上版本)中ReaderType類(lèi)的實(shí)現(xiàn)代碼如下:另外,可添加復(fù)制構(gòu)造函數(shù),如下: public ReaderType(ReaderType rt) this.rdType = rt.rdType; this.rdTypeName = rt.rdTypeName; this.CanLendQty = rt.CanLendQty; this.CanLendDay = rt.CanLendDay; this.Can

51、ContinueTimes = rt.CanContinueTimes; this.PunishRate = rt.PunishRate; this.DateValid = rt.DateValid; 2. Reader類(lèi)(略)3. Book類(lèi)(略)4. Borrow類(lèi)(略)6.6 DAL層類(lèi)設(shè)計(jì)除SqlHelper外,每個(gè)數(shù)據(jù)庫(kù)表對(duì)應(yīng)一個(gè)DAL層類(lèi),主要實(shí)現(xiàn)該表的插刪改查操作。1. SqlHelper類(lèi)在BookManage.DAL項(xiàng)目中添加SqlHelper.cs文件,該類(lèi)是微軟SqlHelper類(lèi)(參見(jiàn)文件“參考資料03 微軟的SQLHelper類(lèi)(含完整中文注釋).cs”)的簡(jiǎn)化版(有

52、源碼提供)。SqlHelper類(lèi)主要包括的成員函數(shù)有:打開(kāi)數(shù)據(jù)庫(kù)連接、關(guān)閉數(shù)據(jù)庫(kù)連接、執(zhí)行SQL語(yǔ)句、執(zhí)行存儲(chǔ)過(guò)程等。表5 SqlHelper類(lèi)(簡(jiǎn)化版)成員1#private static string _strConnection = "Data Source=LSH-SL400SQLSERVER; Initial Catalog=Library;User ID=BookManage;Password=123;"<成員屬性> -連接SQL Server的字符串(常量)。- LSH-SL400SQLSERVER為服務(wù)器名稱,可在SQL Server Manag

53、ement Studio的“已注冊(cè)服務(wù)器”中查看(菜單:“視圖”->“已注冊(cè)服務(wù)器”)。- 需修改為自己的連接??墒謩?dòng)修改,或可采用MS VS的服務(wù)器資源管理器得到(菜單:“視圖”->“服務(wù)器資源管理器”,“數(shù)據(jù)連接”->“添加連接”)。2#private static SqlConnection conn = new SqlConnection(_strConnection);<成員屬性> -SQL Server數(shù)據(jù)庫(kù)連接對(duì)象(常量);3#private static void OpenConn()<成員函數(shù)> -打開(kāi)數(shù)據(jù)庫(kù)連接4#private static void CloseConn()<成員函數(shù)> -關(guān)閉數(shù)據(jù)庫(kù)連接5public static int ExecuteNonQuery(string sql)<成員函數(shù)> -執(zhí)行非查詢的SQL語(yǔ)句,返回受影響的行數(shù)- sql指定要執(zhí)行的SQL語(yǔ)句,- 例:sql = "delete from TB_ReaderType where rdType=12"6#public static int ExecuteNonQuery(string sql, SqlParameter parameters)<成員函數(shù)>

溫馨提示

  • 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)論