圖書管理系統(tǒng)的架構(gòu)設(shè)計_第1頁
圖書管理系統(tǒng)的架構(gòu)設(shè)計_第2頁
圖書管理系統(tǒng)的架構(gòu)設(shè)計_第3頁
圖書管理系統(tǒng)的架構(gòu)設(shè)計_第4頁
圖書管理系統(tǒng)的架構(gòu)設(shè)計_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學生學號 實驗課成績學 生 實 驗 報 告 書實驗課程名稱軟件設(shè)計與體系結(jié)構(gòu)開 課 學 院計算機科學與技術(shù)學院指導教師姓名陳明俊學 生 姓 名學生專業(yè)班級軟件14022016-2017學年第一學期實驗課程名稱:_軟件設(shè)計與體系結(jié)構(gòu)_ 實驗項目名稱 圖書管理系統(tǒng)的架構(gòu)設(shè)計實驗成績實 驗 者專業(yè)班級軟件1402組 別同 組 者實驗日期 年 月 日一部分:實驗預習報告(包括實驗目的、意義,實驗基本原理與方法,主要儀器設(shè)備及耗材,實驗方案與技術(shù)路線等)一 實驗目的1、以圖書管理系統(tǒng)為例,完成系統(tǒng)的架構(gòu)設(shè)計,了解架構(gòu)設(shè)計的過程和方法,并用UML建模工具正確的表達架構(gòu)結(jié)果。2、以圖書管理系統(tǒng)為例,完成系統(tǒng)

2、的詳細設(shè)計,了解詳細設(shè)計的過程和方法,程序運行流程的細節(jié),檢驗設(shè)計的合理性。二 實驗內(nèi)容第一部分圖書管理系統(tǒng)需求信息如下: 我們曾經(jīng)在UML建模技術(shù)中對圖書管理系統(tǒng)建模,本課程的實驗是在此基礎(chǔ)上對該系統(tǒng)提出更多的要求,并進行架構(gòu)和詳細設(shè)計。 在圖書館的圖書管理系統(tǒng)中,學生要想借閱圖書,必須先在系統(tǒng)中注冊一個賬號,然后系統(tǒng)為其生成一個借閱證,借閱證可以提供學生的姓名,系別和借閱證號。持有借閱證的借閱者可以借閱圖書,歸還圖書和查詢借閱信息,但這些操作都是通過圖書管理員代理與系統(tǒng)交互。在借閱圖書時,學生進入圖書館內(nèi)首先找到自己要借閱的圖書,然后到借書處將借書證和圖書交給圖書管理員辦理借閱手續(xù)。圖書管

3、理員進行借書操作時,首先需要輸入學生的借書證號,系統(tǒng)驗證借閱證是否有效(根據(jù)系統(tǒng)是否存在借閱證號所對應的賬戶),若有效,則系統(tǒng)還需要檢驗該賬戶中的借閱信息,以驗證借書者借閱的圖書是否超過了規(guī)定的數(shù)量,或者借閱者是否有超過規(guī)定借閱期限而未歸還的圖書;如果通過了系統(tǒng)的驗證,則系統(tǒng)會顯示借閱者的信息以提示圖書管理員輸入要借閱的圖書信息,然后圖書管理員輸入要借閱的圖書信息,系統(tǒng)記錄一個借閱信息,并更新該學生賬戶完成借閱圖書操作。 學生還書時只需要將所借的圖書交給圖書管理員,由圖書管理員負責輸入圖書信息,然后由系統(tǒng)驗證該圖書是否為本館藏書,若是則系統(tǒng)刪除相應的借閱信息,并更新相應的學生賬戶。在還書時也會

4、檢驗該學生是否有超期未歸還的圖書,學生也可以查詢自己的借閱信息。為了系統(tǒng)能夠正常運行和系統(tǒng)的安全性,系統(tǒng)還需要系統(tǒng)管理員進行系統(tǒng)的維護。通過對上述圖書管理系統(tǒng)的分析,可以獲得如下的功能性需求: 1 學生持有借書證 2 圖書管理員作為借閱者的代理完成借閱圖書,歸還圖書和查詢借閱信息工作3 系統(tǒng)管理員完成對系統(tǒng)的維護,對系統(tǒng)的維護主要包括辦理借閱證,刪除借閱證,添加管理員,刪除管理員,添加圖書,刪除圖書,添加標題信息,刪除標題信息4 圖書館服務(wù)的對象擴充到老師和學生,學生又分為博士生,研究生,本科生,??粕?,不同類型的對象可以借閱的圖書數(shù)量和期限都是不同的。 5 圖書的種類擴充到中外文圖書,中外

5、文雜志,論文等。 6 學生和老師可以通過網(wǎng)絡(luò)進行預約,查詢7 超期罰款,各種類型的借出物罰款規(guī)則不同(超期時間的規(guī)定和罰金都不同)第二部分 1以實驗一的結(jié)果為基礎(chǔ),設(shè)計每個具體類的數(shù)據(jù)結(jié)構(gòu),算法和程序運行流程。 2 界面元素的設(shè)計。 3 用代碼實現(xiàn)設(shè)計結(jié)果界面設(shè)計原則: 1.簡易性:界面的簡潔是要讓用戶便于使用、便于了解、并能減少用戶發(fā)生錯誤選擇的可能性。2.用戶語言:界面中要使用能反應用戶本身的語言,而不是游戲設(shè)計者的語言。3.記憶負擔最小化:人腦不是電腦,在設(shè)計界面時必須要考慮人類大腦處理信息的限度。人類的短期記憶極不穩(wěn)定、有限,24小時內(nèi)存在25%的遺忘率。所以對用戶來說,瀏覽信息要比記

6、憶更容易。4.一致性:是每一個優(yōu)秀界面都具備的特點。界面的結(jié)構(gòu)必須清晰且一致,風格必須與游戲內(nèi)容相一致。5.清楚:在視覺效果上便于理解和使用。6.用戶的熟悉程度:用戶可通過已掌握的知識來使用界面,但不應超出一般常識。7.從用戶的觀點考慮:想用戶所想,做用戶所做。用戶總是按照他們自己的方法理解和使用。8.排列:一個有序的界面能讓用戶輕松的使用。9.安全性:用戶能自由的作出選擇,且所有選擇都是可逆的。在用戶作出危險的選擇時有信息介入系統(tǒng)的提示。10.靈活性:簡單來說就是要讓用戶方便的使用,但不同于上述。即互動多重性,不局限于單一的工具(包括鼠標、鍵盤或手柄)。11.人性化:高效率和用戶滿意度是人性

7、化的體現(xiàn)。應具備專家級和初級玩家系統(tǒng),即用戶可依據(jù)自己的習慣定制界面,并能保存設(shè)置。三 實驗步驟1采用用例驅(qū)動的分析方法,分析業(yè)務(wù)領(lǐng)域的需求,識別系統(tǒng)中的參與者和用例,寫出用例的文本,建立用例模型。 要求正確識別系統(tǒng)的所有角色和用例;準確描述用例間的關(guān)系;描述系統(tǒng)中重要用例的基本事件流(正常情況),備選事件流和異常事件流。2根據(jù)步驟1的結(jié)果,進一步建立領(lǐng)域模型(類圖),完成靜態(tài)模型的建立。 要求正確識別出領(lǐng)域類,并給類增加屬性和關(guān)聯(lián)。3 結(jié)合某一種具體的框架(比如Java的JavaEE,Spring等)設(shè)計系統(tǒng)的架構(gòu),要求采用分層的架構(gòu)和MVC模式,用包圖表達架構(gòu)。4 根據(jù)1,2,3的結(jié)果以用

8、例或用例的場景為基本單元,設(shè)計各層包含的類,接口及其交互(類圖,順序圖等)以實現(xiàn)用例或場景,盡可能在設(shè)計中體現(xiàn)OO的設(shè)計原則,設(shè)計模式。可以選擇一步完成或分兩步完成設(shè)計,如果選擇一步完成,就沒有分析類圖,直接得出設(shè)計類圖。兩步完成: 第一步不考慮界面和持久化類,只考慮領(lǐng)域類,建立分析類圖及分析類之間的交互順序圖。 第二步考慮加入界面類和持久化類,在第一步的基礎(chǔ)上增強和完善分析類圖和交互圖,得到設(shè)計類圖和更精確的交互順序圖。5完成圖書管理系統(tǒng)的數(shù)據(jù)庫設(shè)計。 數(shù)據(jù)庫的設(shè)計是以領(lǐng)域模型為基礎(chǔ)的,經(jīng)過分析類圖和設(shè)計類圖的細化,找出需要持久化的類,轉(zhuǎn)化為關(guān)系模型。 第二部分:實驗過程記錄(可加頁)(包括

9、實驗原始數(shù)據(jù)記錄,實驗現(xiàn)象記錄,實驗過程發(fā)現(xiàn)的問題等)用例模型用例文檔登錄SCENARIOS Basic Path. Basic Path1. 用戶進入圖書館的登錄頁面2. 用戶輸入用戶名和密碼Alternate: 2a. 用戶輸入用戶名錯誤 Alternate: 2b. 用戶輸入的密碼錯誤 3. 登陸成功 Alternate. 用戶輸入用戶名錯誤1. 顯示用戶名錯誤2. 用戶重新輸入用戶名 Alternate. 用戶輸入的密碼錯誤1. 顯示密碼錯誤2. 用戶重新輸入用戶名借出書目 Basic Path. Basic Path1. 圖書管理員請求系統(tǒng)處理借書業(yè)務(wù)2. 系統(tǒng)顯示借書處理界面3.

10、圖書管理員輸入借閱證信息4. 系統(tǒng)驗證借閱證的有效性Exception: 4a. 借書證不合法 5. 圖書管理員輸入圖書信息6. 系統(tǒng)添加新的借閱記錄Exception: 6a. 借閱者借書數(shù)量已達到上限 Alternate: 6b. 書籍庫存為0 7. 系統(tǒng)顯示借書后的借閱信息,圖書管理員重復5-7步,直到結(jié)束 Exception. 借書證不合法1. 系統(tǒng)顯示借書證不合法2. 圖書管理員進行確認 Exception. 借閱者借書數(shù)量已達到上限1. 系統(tǒng)顯示借書者借書詳細信息并報警2. 圖書管理員處理報警并結(jié)束借書 Alternate. 書籍庫存為01. 顯示庫存為02. 管理員結(jié)束借書取消預

11、定SCENARIOS Basic Path. Basic Path1. 借閱者取消預定圖書Alternate: 1a. 系統(tǒng)收不到取消預定的信息 2. 圖書管理員修改借閱者信息3. 取消預定成功 Alternate. 系統(tǒng)收不到取消預定的信息1. 取消預定失敗2. 提醒借閱者重新取消預定圖書處理超期SCENARIOS Basic Path. Basic Path1. 圖書管理員檢查到歸還圖書超期2. 圖書管理員根據(jù)超出的時間計算罰金3. 圖書管理員要求借書證繳納罰金4. 超期處理完成處理賠償SCENARIOS Basic Path. Basic Path1. 圖書管理員檢查到借閱的圖書已損壞2

12、. 圖書管理員根據(jù)圖書的損壞情況要求借閱者賠償3. 處理賠償完成預定SCENARIOS Basic Path. Basic Path1. 借閱者登錄圖書管理系統(tǒng)2. 借閱者預定圖書Exception: 2a. 該圖書庫存為0,確定預定時間 Exception: 2b. 該圖書庫存不為0,確定預定時間 3. 預定圖書成功 Alternate. 圖書庫存為01. 顯示該圖書庫存為0 Exception. 該圖書庫存為0,確定預定時間1. 顯示該圖書的預定時間 Exception. 該圖書庫存不為0,確定預定時間1. 按規(guī)定顯示預定時間返還書目SCENARIOS Basic Path. Basic

13、Path1. 學生攜帶圖書借閱證,進入圖書館2. 學生歸還圖書3. 圖書管理員檢查學生所借閱圖書的情況Alternate: 3a. 學生借閱的圖書超期 Alternate: 3b. 學生借閱的圖書已損壞 Exception: 3c. 圖書是否超期 Exception: 3d. 圖書是否損壞 Exception: 3e. 學生是否繳納罰金 Exception: 3f. 圖書是不是本館的藏書 4. 系統(tǒng)刪除學生借閱信息 Alternate. 學生借閱的圖書超期1. 顯示借閱的圖書超期2. 圖書管理員根據(jù)規(guī)定和圖書的超期情況向?qū)W生收取相應的罰金 Alternate. 學生借閱的圖書已損壞1. 顯示圖

14、書已損壞2. 圖書管理員根據(jù)規(guī)定及圖書的損壞情況向?qū)W生收取相應的罰金 Exception. 圖書是否超期1. 圖書管理員檢查學生所借閱的圖書是否超期 Exception. 圖書是否損壞1. 圖書管理員檢查學生所借閱的圖書是否損壞 Exception. 學生是否繳納罰金1. 圖書管理員判斷學生是否繳納罰金 Exception. 圖書是不是本館的藏書1. 圖書管理員輸入圖書信息2. 系統(tǒng)驗證該圖書是不是本館藏書類圖(領(lǐng)域模型)包圖(三層架構(gòu))數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫概念數(shù)據(jù)模型CDM對象如下圖,該圖顯示了各實體的屬性及各實體之間的關(guān)系。由PDM對象自動生成的數(shù)據(jù)庫腳本文件代碼如下:if exists (s

15、elect 1 from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(books) and = FK_BOOKS_管理書籍_ADMIN)alter table books drop constraint FK_BOOKS_管理書籍_ADMINgoif exists (select 1 from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.consti

16、d and o.type = F) where r.fkeyid = object_id(borrow_information) and = FK_BORROW_I_BORROW_IN_BOOKS)alter table borrow_information drop constraint FK_BORROW_I_BORROW_IN_BOOKSgoif exists (select 1 from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid

17、 = object_id(borrow_information) and = FK_BORROW_I_BORROW_IN_READER)alter table borrow_information drop constraint FK_BORROW_I_BORROW_IN_READERgoif exists (select 1 from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(login) and

18、 = FK_LOGIN_LOGIN_ADMIN)alter table login drop constraint FK_LOGIN_LOGIN_ADMINgoif exists (select 1 from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(login) and = FK_LOGIN_LOGIN2_READER)alter table login drop constraint FK_LOGIN_LOG

19、IN2_READERgoif exists (select 1 from dbo.sysreferences r join dbo.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(reversation) and = FK_REVERSAT_REVERSATI_BOOKS)alter table reversation drop constraint FK_REVERSAT_REVERSATI_BOOKSgoif exists (select 1 from dbo.sysre

20、ferences r join dbo.sysobjects o on (o.id = r.constid and o.type = F) where r.fkeyid = object_id(reversation) and = FK_REVERSAT_REVERSATI_READER)alter table reversation drop constraint FK_REVERSAT_REVERSATI_READERgoif exists (select 1 from sysindexes where id = object_id(admin) and name = 權(quán)限_

21、FK and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 255) drop index reversation.reversation_FKgoif exists (select 1 from sysobjects where id = object_id(reversation) and type = U) drop table reversationgocreate table ad

22、min ( admin_id int not null, admin_name char(20) null, admin_password char(16) null, logins int null, last_login char(10) null, right int null, constraint PK_ADMIN primary key nonclustered (admin_id)gocreate index 權(quán)限_FK on admin ()gocreate table booktype ( type_id int null)gocreate table books ( boo

23、k_id int not null, admin_id int null, title char(20) null, type_id int null, author char(40) null, price money null, book concern char(50) null, addtime datetime null, amount int null, remain int null, constraint PK_BOOKS primary key nonclustered (book_id), constraint FK_BOOKS_管理書籍_ADMIN foreign key

24、 (admin_id) references admin (admin_id), constraint FK_BOOKS_BOOKTYPE_BOOKTYPE foreign key () references booktype)gocreate index 圖書類型_FK on books ()gocreate index 管理書籍_FK on books (admin_id ASC)go create table reader ( reader_id int not null, reader_name char(20) null, sex char(2) null, age tinyint

25、null, class char(15) null, address text null, memo text null, maxborrowed int null, reader_password char(16) null, right int null, constraint PK_READER primary key nonclustered (reader_id)gocreate table borrow_information ( book_id int not null, reader_id int not null, borrow_time datetime null, end

26、_time datetime null, amount int null, return_time datetime null, constraint PK_BORROW_INFORMATION primary key (book_id, reader_id), constraint FK_BORROW_I_BORROW_IN_BOOKS foreign key (book_id) references books (book_id), constraint FK_BORROW_I_BORROW_IN_READER foreign key (reader_id) references read

27、er (reader_id)gocreate index Association_1_FK on borrow_information (book_id ASC)gocreate index Association_2_FK on borrow_information (reader_id ASC)gocreate table login ( admin_id int not null, reader_id int not null, right int null, constraint PK_LOGIN primary key (admin_id, reader_id), constrain

28、t FK_LOGIN_LOGIN_ADMIN foreign key (admin_id) references admin (admin_id), constraint FK_LOGIN_LOGIN2_READER foreign key (reader_id) references reader (reader_id)gocreate index login_FK on login (admin_id ASC)gocreate index login2_FK on login (reader_id ASC)gocreate index 用戶權(quán)限_FK on reader ()gocreat

29、e table reversation ( book_id int not null, reader_id int not null, reservation_time datetime null, reservationcancel datetime null, constraint PK_REVERSATION primary key (book_id, reader_id), constraint FK_REVERSAT_REVERSATI_BOOKS foreign key (book_id) references books (book_id), constraint FK_REVE

30、RSAT_REVERSATI_READER foreign key (reader_id) references reader (reader_id)gocreate index reversation_FK on reversation (book_id ASC)gocreate index reversation2_FK on reversation (reader_id ASC)go系統(tǒng)的順序圖順序圖是顯示對象之間交互的圖,這些對象是按時間順序排列的。該圖書館管理系統(tǒng)主要含有以下幾個重要的順序圖,其他對象的順序圖和這些也類似。(1) 借書順序圖(2) 還書順序圖(3) 罰款順序圖1、 借

31、書順序圖(1) login():登錄系統(tǒng)。(2) checkstu_card():對讀者信息進行驗證,檢查是否符合本圖書館借書條件。(3) showinformation():顯示該讀者的基本信息函數(shù)。(4) borrow():讀者借書函數(shù)。(5) getreaders():取得讀者信息函數(shù)??丛撟x者是否符合借書條件,若符合,則返回可借信息。(6) gettitle():取得書目信息。(7) getreservation():檢驗書籍是否被預訂函數(shù)。(8) getnoreservation():書籍沒被預訂或取消預訂函數(shù)。(9) create(borrower,item):創(chuàng)建書籍外借函數(shù)。借

32、書時,讀者先將書拿予管理員,管理員對書籍和讀者進行檢驗,若書籍和讀者都符合借書條件,則借書成功。2、 還書順序圖(1) login():登錄系統(tǒng)。(2) getitem():取得書籍條目信息。(3) update():對圖書館書籍條目和借閱者信息進行更新條目。還書時,讀者先將書交給管理員,由管理員掃描書籍,若書籍沒有過期等違規(guī)現(xiàn)象,則對書目和讀者借閱信息進行更新,同時還書成功。3、 罰款順序圖管理員對書籍進行掃描,若發(fā)現(xiàn)書籍已經(jīng)超過了圖書館規(guī)定的還書期限,則按每天一定金額進行罰款,過期天數(shù)和罰款金額由系統(tǒng)自動計算。用戶交完罰金后,則對讀者借閱信息進行更新。系統(tǒng)的活動圖活動圖描述的是某流程中的任

33、務(wù)的執(zhí)行,活動圖描述活動是如何協(xié)同工作的,當一個操作必須完成一系列事情,而又無法確定以什么樣的順序來完成這些事情時,活動圖可以更清晰地描述這些事情。在本圖書館管理系統(tǒng)中,我們主要描述了圖書館系統(tǒng)的借書、還書和預訂的活動圖。1.借書活動圖 管理員首先要掃描讀者的借書證,檢驗證件是否符合圖書館借書條件,若該讀者的借書數(shù)量還未達到最大規(guī)定數(shù)量,并且其所借書籍均未屬于過期范圍,則符合借書條件。則再掃描書籍條形碼,檢查書籍是否是不可借書籍或者已經(jīng)被預訂,若被預訂,則取消預訂,方可借書。在這些條件都符合時則更新書籍信息和讀者的借閱信息,記錄好借書的時間。2、還書活動圖圖書管理員對書籍進行掃描,若書籍已經(jīng)過

34、期,則要求讀者還請欠款才能還書,讀者繳應交罰款后,更新書目信息和讀者信息。3、預訂圖書活動圖讀者先進入系統(tǒng)查詢自己所需要的書籍,顯示書籍信息,檢驗書籍是否屬于可預訂書籍,若符合條件則檢查書籍是否已經(jīng)被預訂或已經(jīng)被外借,若都未成立,則讀者登錄系統(tǒng),并對該書籍進行預訂。界面元素1) 系統(tǒng)登錄頁面系統(tǒng)登錄頁面主要是用戶進入系統(tǒng)驗證的一種手段,通過登錄頁面對用戶角色的判定,根據(jù)不同的用戶角色,控制不同的功能權(quán)限。超級管理員進入超級管理員頁面,管理員進入管理員頁面,學生進入學生頁面。2) 管理員頁面管理員系統(tǒng)實現(xiàn)頁面主要包括對學生信息管理頁面,圖書信息管理頁面,借閱信息管理頁面以及系統(tǒng)信息管理頁面四個方面,下面分別對這四個方面的系統(tǒng)實現(xiàn)作相關(guān)的介紹。3)學生管理信息頁面本系統(tǒng)對學生管理包括:添加學生信息,修改學生信息、刪除學生信息,查詢學生信息。在添加學生信息與修改學生信息時,進行相應的驗證,主要是必填與唯一性驗證。學生管理主頁面,主要是進行學生信息查詢,刪除學生信息操作。可以通過學院,專業(yè),班級索引進行查詢4)圖書管理信息頁面圖書信息管理包括:添加

溫馨提示

  • 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

提交評論