DFD图练习(图书管理系统)
某學(xué)校欲開發(fā)圖書管理系統(tǒng),以記錄圖書館所藏圖書及其借出和歸還情況,提供給借閱者借閱圖書功能,提供給圖書館管理員管理和定期更新圖書表功能。主要功能的具體描述如下:
處理借閱。借閱者要借閱圖書時,系統(tǒng)必須對其身份(借閱者ID)進(jìn)行檢查。通過與教務(wù)處維護(hù)的學(xué)生數(shù)據(jù)庫、人事處維護(hù)的職工數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行比對,以驗證借閱者ID是否合法。若合法,則檢查借閱者在逾期未還圖書表中是否有逾期未還圖書,以及罰金表中的罰金是否超過限額。如果沒有逾期未還圖書并且罰金未超過限額,則允許借閱圖書,更新圖書表,并將借閱的圖書存入借出圖書表。借閱者歸還所借圖書時, 先由圖書館管理員檢查圖書是否缺失或損壞,若是,則對借閱者處以相應(yīng)罰金并存入罰金表;然后,檢查所還圖書是否逾期,若是,執(zhí)行“處理逾期”操作;最后,更新圖書表,刪除借出圖書表中的相應(yīng)記錄。
維護(hù)圖書。圖書館管理員查詢圖書信息;在新進(jìn)圖書時錄入圖書信息,存入圖書表;在圖書丟失或損壞嚴(yán)重時,從圖書表中刪除該圖書記錄。
處理逾期。系統(tǒng)在每周一統(tǒng)計逾期未還圖書,逾期未還的圖書按規(guī)則計算罰金,并記入罰金表,并給有逾期未還圖書的借閱者發(fā)送提醒消息。借閱者在借閱和歸還圖書時,若罰金超過限額,管理員收取罰金,并更新罰金表中的罰金額度。
現(xiàn)采用結(jié)構(gòu)化方法對該圖書管理系統(tǒng)進(jìn)行分析與設(shè)計,獲得如圖1-1所示的頂層數(shù)據(jù)流圖和圖1-2所示的0層數(shù)據(jù)流圖。
【問題1】
使用說明中的詞語,給出附件圖1-1中的實體E1?E4的名稱。
【問題2】
使用說明中的詞語,給出附件圖1-2中的數(shù)據(jù)存儲D1?D4的名稱。
【問題3】
在DFD建模時,需要對有些復(fù)雜加工(處理)進(jìn)行進(jìn)-步精化,繪制下層數(shù)據(jù)流圖。針對附件圖1-2中的加工“處理借閱”,在1層數(shù)據(jù)流圖中應(yīng)分解為哪些加工?(使用說明中的術(shù)語)
【問題4】
說明【問題3】中繪制1層數(shù)據(jù)流圖時要注意的問題。
答案:
【問題1】
E1:借閱者 E2: 圖書管理員
E3/E4:學(xué)生數(shù)據(jù)庫/職工數(shù)據(jù)庫
【問題2】
D1:圖書表 D2: 借出圖書表
D3:逾期未還圖書表 D4:罰金表
【問題3】
檢查借閱者身份或檢查借閱者ID;
檢查逾期未還圖書;
檢查罰金是否超過限額;
借閱圖書;
計算圖書損壞或丟失罰金額;
【問題4】
保持父圖與子圖平衡
解析:
【問題1】
由題干中的關(guān)鍵信息“(1)處理借閱。借閱者要借閱圖書時,系統(tǒng)必須對其身份(借閱者ID)進(jìn)行檢查”、“(3) 處理逾期。系統(tǒng)在每周一統(tǒng)計逾期未還圖書,……并給有逾期未還圖書的借閱者發(fā)送提醒消息”,結(jié)合如圖1-2所示的0層數(shù)據(jù)流圖中與外部實體E1相關(guān)的輸出數(shù)據(jù)流“借閱者ID”和處理“處理借閱”、輸入數(shù)據(jù)流“逾期未還提醒”和處理“處理逾期”等,可知圖1-1和圖1-2中實體E1的名稱是“借閱者”
根據(jù)題干中給出的關(guān)鍵信息“(1)處理借閱。……借閱者歸還所借圖書時,先由圖書館管理員檢查圖書是否缺失或損壞,若是,則對借閱者處以相應(yīng)罰金并存入罰金表”,結(jié)合圖1-2中與外部實體E2相關(guān)的輸出數(shù)據(jù)流“損壞罰金”和處理“處理借閱”;關(guān)鍵信息“(2)維護(hù)圖書。圖書館管理員查詢圖書信息;在新進(jìn)圖書時錄入圖書信息,存入圖書表;在圖書丟失或損壞嚴(yán)重時,從圖書表中刪除該圖書記錄”,結(jié)合圖1-2中與外部實體B2相關(guān)的輸入數(shù)據(jù)流“查詢到的圖書”、輸出數(shù)據(jù)流“待刪除的圖書”“待添加的圖書”和處理“維護(hù)圖書”;關(guān)鍵信息“(3)處理逾期。……借閱者在借閱和歸還圖書時,若罰金超過限額,管理員收取罰金,并更新罰金表中的罰金額度”,結(jié)合圖1-2中與外部實體B2相關(guān)的輸出數(shù)據(jù)流“交罰金額”和處理“處理借閱”等,可知圖1-1和圖1-2中實體E2的名稱是“圖書管理員(或圖書館管理員)”。
基于題干中給出的 “(1) 處理借閱。借閱者要借閱圖書時,系統(tǒng)必須對其身份(借閱者ID)進(jìn)行檢查。通過與教務(wù)處維護(hù)的學(xué)生數(shù)據(jù)庫、人事處維護(hù)的職工數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行比對,以驗證借閱者ID是否合法…”等關(guān)鍵信息,結(jié)合圖1-2中與外部實體E3/E4相關(guān)的輸入數(shù)據(jù)流“借閱者ID”、輸出數(shù)據(jù)流“驗證結(jié)果”和處理“處理借閱”等,可知圖1-1和圖1-2中實體E3、E4的名稱分別是“學(xué)生數(shù)據(jù)庫”、“職工數(shù)據(jù)庫”
【問題2】
結(jié)合問題1的分析結(jié)果,基于題干中給出的關(guān)鍵信息“(1)處理借閱。……如果沒有逾期未還圖書并且罰金未超過限額,則允許借閱圖書,更新圖書表,……借閱者歸還所借圖書時,……最后,更新圖書表,刪除借出圖書表中的相應(yīng)記錄”,結(jié)合圖1-2中與數(shù)據(jù)存儲D1相關(guān)的輸入數(shù)據(jù)流“借閱的圖書”、“歸還的圖書”和處理“處理借閱”;關(guān)鍵信息“(2)維護(hù)圖書。……在 新進(jìn)圖書時錄入圖書信息,存入圖書表;在圖書丟失或損壞嚴(yán)重時,從圖書表中刪除該圖書記錄”,結(jié)合圖1-2中與數(shù)據(jù)存儲D1相關(guān)的輸入數(shù)據(jù)流“新書信息”、“ 待刪除圖書ID”和處理“維護(hù)圖書”等,可知圖1-1和圖1-2中數(shù)據(jù)存儲D1的名稱是“圖書表”。
由題干中給出的“(1) 處理借閱。……如果沒有逾期未還圖書并且罰金未超過限額,則允許借閱圖書,更新圖書表,并將借閱的圖書存入借出圖書表。借閱者歸還所借圖書時,……最后,更新圖書表,刪除借出圖書表中的相應(yīng)記錄”等關(guān)鍵信息,結(jié)合圖1-2中與數(shù)據(jù)存儲D2相關(guān)的輸入數(shù)據(jù)流“借閱的圖書”、“歸還的圖書”和處理“處理借閱”等,可知數(shù)據(jù)存儲D2的名稱是“借出圖書表”。
根據(jù)題干中的關(guān)鍵信息“(1) 處理借閱。借閱者要借閱圖書時,……若合法,則檢查借閱者在逾期未還圖書表中是否有逾期未還圖書……”等,結(jié)合圖1-2中與數(shù)據(jù)存儲D3相關(guān)的輸出數(shù)據(jù)流“逾期未還圖書”和處理“處理借閱”等,可知數(shù)據(jù)存儲D3的名稱是“逾期未還圖書表”
基于題干中給出的關(guān)鍵信息“(1)處理借閱。借閱者要借閱圖書時,……檢查借閱…罰金表中的罰金是否超過限額。…借閱者歸還所借圖書時,先由圖書館管理員檢查圖書是否缺失或損壞,若是,則對借閱者處以相應(yīng)罰金并存入罰金表; ……”,結(jié)合圖1-2中與數(shù)據(jù)存儲D4相關(guān)的輸入數(shù)據(jù)流“損壞/丟失罰金額”、輸出數(shù)據(jù)流“罰金額”和處理“處理借閱”等;關(guān)鍵信息“(3)處理逾期。……逾期未還的圖書按規(guī)則計算罰金,并記入罰金表,…… 借閱者在借閱和歸還圖書時,若罰金超過限額,管理員收取罰金,并更新罰金表中的罰金額度”,結(jié)合圖1-2中與數(shù)據(jù)存儲D4相關(guān)的輸入數(shù)據(jù)流“交罰金額/逾期罰金額”和處理“處理逾期”等,可知數(shù)據(jù)存儲D4的名稱是“罰金表”。
【問題3】
根據(jù)題干中給出的關(guān)鍵信息“(1)處理借閱。借閱者要借閱圖書時,系統(tǒng)必須對其身份(借閱者ID)進(jìn)行檢查。……合法,則檢查借閱者在逾期未還圖書表中是否有逾期未還圖書,以及罰金表中的罰金是否超過限額。……則允許借閱圖書,更新圖書表,……惜閱者歸還所借圖書時,先由圖書館管理員檢查圖書是否缺失或損壞,若是,則對借閱者處以相應(yīng)罰金并存入罰金表;然后,檢查所還圖書是否逾期,若是,執(zhí)行“處理逾期”操作;……” 等,圖1-2中加工“處理借閱”在1層數(shù)據(jù)流圖中應(yīng)分解為“檢查借閱者身份(或檢查借閱者ID)”、“ 檢查逾期未還圖書”、“ 檢查罰金是否超過限額”、“ 借閱圖書”、“計算圖書損壞或丟失罰金額”、“歸還圖書” 等加工。題干中已明確說明“處理逾期”是一個操作,而且在描述“(3)處理逾期”中單獨(dú)描述,圖1-2中 已經(jīng)建模為單獨(dú)一個處理,因此在本問題中不需要進(jìn)一步分解。
【問題4】
父圖中某加工的輸入輸出數(shù)據(jù)流必須與它的子圖的輸入輸出數(shù)據(jù)流在數(shù)量和名字上相同。如果父圖的一個輸入(或輸出)數(shù)據(jù)流對應(yīng)于子圖中幾個輸入(或輸出)數(shù)據(jù)流,而子圖中組成這些數(shù)據(jù)流的數(shù)據(jù)項全體正好是父圖中的這一個數(shù)據(jù)流,那么它們?nèi)匀凰闶瞧胶獾?br /> 基于0層數(shù)據(jù)流圖繪制1層數(shù)據(jù)流圖時,需要注意保持父圖與子圖平衡。具體而言,父圖中某加工的輸入輸出數(shù)據(jù)流必須與它的子圖的輸入輸出數(shù)據(jù)流在數(shù)量和名字上相同。如果父圖的一個輸入(或輸出)數(shù)據(jù)流對應(yīng)于子圖中幾個輸入(或輸出)數(shù)據(jù)流,而子圖中組成這些數(shù)據(jù)流的數(shù)據(jù)項全體正好是父圖中的這一個數(shù)據(jù)流,那么它們?nèi)匀凰闶瞧胶獾摹?/p>
總結(jié)
以上是生活随笔為你收集整理的DFD图练习(图书管理系统)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 万年日历
- 下一篇: 2020-06-05