《軟件設(shè)計(jì)案例分析》_第1頁(yè)
《軟件設(shè)計(jì)案例分析》_第2頁(yè)
《軟件設(shè)計(jì)案例分析》_第3頁(yè)
《軟件設(shè)計(jì)案例分析》_第4頁(yè)
《軟件設(shè)計(jì)案例分析》_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、華東交通大學(xué)軟件設(shè)計(jì)案例分析課程大作業(yè)圖書管理系統(tǒng)設(shè)計(jì)方案專業(yè)班級(jí):軟件工程+會(huì)計(jì)3班學(xué)院:軟件學(xué)院學(xué)生姓名:曾立歡學(xué)號(hào):20082110090305分 數(shù):學(xué)期:2011-2012(1)任課教師:彭仁夔系統(tǒng)設(shè)計(jì)方案一、系統(tǒng)總體需求項(xiàng)目名稱:圖書管理系統(tǒng)1)功能性需求在圖書管理系統(tǒng)中,管理員要為每個(gè)讀者建立借閱賬戶,并給讀者發(fā)放不同類別的借閱卡 (借閱卡可以提供卡號(hào)、讀者姓名),賬戶內(nèi)存儲(chǔ)的個(gè)人信息和借閱記錄信息。持有借閱卡的讀 者可以通過管理員(作為讀者的代理人與系統(tǒng)交互)借閱、歸還圖書,不同類別的讀者可借閱 圖書的范圍、數(shù)量和期限不同,可通過互聯(lián)網(wǎng)或圖書館內(nèi)查詢終端查詢圖書信息和個(gè)人借閱情

2、 況,以及續(xù)借圖書(系統(tǒng)審核符合續(xù)借條件)。借閱圖書時(shí),先輸入讀者的借閱卡號(hào),系統(tǒng)驗(yàn)證借閱卡的有效性和讀者是否可繼續(xù)借閱圖 書,無(wú)效則提示其原因,有效則顯示讀者基本信息(包括照片),供管理員人工核對(duì),然后輸入 要借閱的書號(hào),系統(tǒng)查閱圖書信息數(shù)據(jù)庫(kù),顯示圖書的基本信息,供管理員人工核對(duì)。最后提 交借閱請(qǐng)求,若被系統(tǒng)接受存儲(chǔ)借閱記錄,并修改其可借閱圖書的數(shù)量。歸還圖書時(shí),輸入讀 者借閱卡號(hào)和圖書號(hào)(或丟失標(biāo)記號(hào)),系統(tǒng)驗(yàn)證是否有些借閱記錄以及是否超期借閱,無(wú)則提 示,有則顯示讀者和圖書的基本信息供管理員人工審核。如有超期借閱或丟失情況,先轉(zhuǎn)入過 期罰款或圖書丟失處理。然后提交還書請(qǐng)求,系統(tǒng)接受后刪

3、除借閱記錄,并登記和修改可借閱 圖書的數(shù)量。圖書管理員定期或不定期對(duì)圖書信息進(jìn)行入庫(kù)、修改、刪除等圖書信息管理以及注銷(不外 借),包括圖書類別和出版社管理。為系統(tǒng)維護(hù)人員提供權(quán)限管理、數(shù)據(jù)備份等通用功能。2)非功能性需求性能需求編號(hào)性能名稱使用部門性能描述輸入系統(tǒng)響應(yīng)輸出1相應(yīng)的圖 書查詢會(huì)員、管 理員在數(shù)據(jù)庫(kù)中查找相應(yīng)的圖書的相關(guān)信 息(如書名、出在3秒內(nèi)列出 所有的記錄輸出符合要求圖書版社、作者等)的記錄2信息的錄 入、修改、 刪除會(huì)員、 理員管檢查錄入、修改、刪除相應(yīng)的信息錄入、修改、刪 除的信息在0.5秒內(nèi)對(duì) 數(shù)據(jù)進(jìn)行錄 入、修改和刪 除并輸出提示 信息輸出提 示信息3檢查信息 的規(guī)

4、范性會(huì)員、 理員管檢查錄入、修改、刪除信息的正確性輸入各種信息在0.1秒內(nèi)對(duì)信息進(jìn)行檢查輸出信 息是否 符合規(guī) 范4報(bào)表輸出會(huì)員、 理員管用報(bào)表形式 顯示出數(shù)據(jù) 庫(kù)的所有記 錄輸入需要顯示 的報(bào)表在10秒內(nèi)顯 示所有數(shù)據(jù)庫(kù) 中的記錄輸出需要顯示的報(bào)表用戶界面需求用戶界面:這是人機(jī)接口,定義用戶輸入控制(命令)和數(shù)據(jù)(參數(shù))的內(nèi)容和方式以及 計(jì)算機(jī)提供的命令處理結(jié)果(如報(bào)表)的內(nèi)容和格式等,例如需要向提供何種命令,帶哪些參 數(shù),通過命令驅(qū)動(dòng)方式還是菜單驅(qū)動(dòng)方式,使用圖形界面還是文本界面等。輸入設(shè)備:鍵盤,鼠標(biāo)。輸出設(shè)備:顯示器。顯示風(fēng)格:IE界面。顯示方式:1024*768.輸出格式:網(wǎng)頁(yè)方式。

5、軟硬件環(huán)境需求硬件環(huán)境需求:CPU: 586以上,內(nèi)存:16M以上,I/O設(shè)備,鼠標(biāo)、鍵盤、顯示器軟件環(huán)境需求:運(yùn)行環(huán)境,DOS以上操作系統(tǒng)。二、系統(tǒng)設(shè)計(jì)方案1、系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)管理員基本信息表字段名稱數(shù)據(jù)類型可否為空約束條件說明adminlDintNOT NULL主鍵IDadminNameVARCHARNOT NULL無(wú)姓名passwordVARCHARNOT NULL無(wú)密碼圖書信息表字段名稱數(shù)據(jù)類型可否為空約束條件說明bookIDVARCHARNOT NULL主鍵書籍IDbookNameVARCHARNOT NULL無(wú)書名authorVARCHARNOT NULL無(wú)作者PressVARCHA

6、RNOT NULL無(wú)出版社pricefloatNOT NULL無(wú)單價(jià)buyDatedatetimeNOT NULL無(wú)入庫(kù)時(shí)間totalNOintNOT NULL無(wú)總量currentNOintNOT NULL無(wú)現(xiàn)存量借閱者信息表字段名稱數(shù)據(jù)類型可否為空約束條件說明userIDVARCHARNOT NULL主鍵借閱卡IDuserNameVARCHARNOT NULL無(wú)姓名sexVARCHARNOT NULL無(wú)性別birthdaydatetimeNOT NULL無(wú)出生日期addressVARCHARNOT NULL無(wú)地址IDCardVARCHARNOT NULL無(wú)身份證號(hào)telephoneVARCH

7、ARNOT NULL無(wú)電話號(hào)碼countintNOT NULL無(wú)現(xiàn)借書里借書信息表字段名稱數(shù)據(jù)類型可否為空約束條件說明borrowIDintNOT NULL主鍵借書IDuserIDVARCHARNOT NULL外鍵借書卡IDBookIDVARCHARNOT NULL外鍵書籍IDborrowDatedatetimeNOT NULL無(wú)借出時(shí)間罰單信息表字段名稱數(shù)據(jù)類型可否為空約束條件說明PunishIDintNOT NULL主鍵罰單IDuserIDVARCHARNOT NULL無(wú)借書卡IDbookIDVARCHARNOT NULL無(wú)書籍IDborrowDatedatetimeNOT NULL無(wú)借出

8、時(shí)間returnDatedatetimeNOT NULL無(wú)還書時(shí)間punishMoneyfloatNOT NULL無(wú)罰金2、系統(tǒng)架構(gòu)設(shè)計(jì)采用的是Struts+Hibernate+JPA的架構(gòu),Struts負(fù)責(zé)顯示層,JPA負(fù)責(zé)持久化層,Spring負(fù)責(zé)業(yè)務(wù)邏輯層。該三大框架整體架構(gòu)圖如下:下面針對(duì)“還書”介紹三層代碼還書時(shí),只需要刷一下書上的條碼,若在時(shí)間范圍內(nèi)還即可,否則要交罰款。1、顯示層 在struts-config.xml中只需增加如下配置:2、模型層2.1 DAO 層Transactionalpublic abstract class CommonDAOImpl implements

9、 CommonDAO PersistenceContext EntityManager entityManager;/添加對(duì)象public void add(Object obj) entityManager.persist(obj);/查找對(duì)象Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true )public T find(Class clazz, Object id) return entityManager.find(clazz, id);/更新對(duì)象public void update(Object obj)

10、 ( entityManager.merge(obj); /根據(jù)where語(yǔ)句查找多個(gè)對(duì)象Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true )public List getAll(Class clazz,String whereSql, Object params)(Query query=entityManager.createQuery(from +getBeanName(clazz)+ +whereSql); setWhereParam(whereSql, query, params); return qu

11、ery.getResultList(); /根據(jù)clazz返回不含包的實(shí)體名Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true )protected String getBeanName(Class clazz) String entityName=;Entity entity=clazz.getAnnotation(Entity.class); if(entity!=null)entityName=clazz.getSimpleName(); return entityName; /設(shè)置傳入where條件名的參數(shù)

12、Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true )protected void setWhereParam(String whereSql, Query query, Object params)if(whereSql!=¶ms!=null)for (int i = 0; i params.length; i+) query.setParameter(i+1, paramsi); /獲得當(dāng)前時(shí)間public String getCurrentTime() SimpleDateFormat sdf = n

13、ew SimpleDateFormat(yyyyMMddHHmmss); return sdf.format(new Date();2.2 service 層Service(userService)Scope(prototype)public class UserServicelmpl extends CommonDAOImpl implements UserServicepublic void returnBook(int userID, int bookID) User user=this.find(User.class, userID); Book book=this.find(Book

14、.class, bookID);/根據(jù)借閱者和圖書來查找借書信息(由借閱者和圖書只對(duì)應(yīng)一個(gè)借書信息)String whereSql=where userID=? and bookID=?;Object params=new ObjectuserID,bookID;List borrowInfs=this.getAll(BorrowInf.class, whereSql, params);BorrowInf borrowInf=borrowInfs.get(0);/獲得借書時(shí)間Date borrowTime=borrowInf.getBorrowTime();Date returnTime=th

15、is.getCurrentDate();/還書時(shí)間和借書時(shí)間大于60則需處罰,多一天0.1元的罰款,則要增加罰款數(shù)據(jù)longbetweenDays=(returnTime.getTime()-borrowTime.getTime()/24*60*60*1000 ;double money=0;PunishInf punishInf=new PunishInf();if(betweenDays60)money=(betweenDays-60)*0.1;/添加罰款信息punishInf.setReturnTime(returnTime);punishInf.setBook(book);punish

16、Inf.setBorrowTime(borrowTime);punishInf.setUser(user);punishInf.setPunishMoney(money);this.add(punishInf);else/按時(shí)還書user.getBooks().remove(book);user.setCount(user.getCount()+1);book.getUsers().remove(user);this.update(user);3、控制層Controller(/user)Scope(prototype)public class UserAction extends Dispat

17、chActionprivate UserService userService;Resource(name=userService)public void setUserService(UserService userService) this.userService = userService;public ActionForward returnBook(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Exception int u

18、serID=Integer.parselnt(request.getParameter(userID);int bookID=Integer.parselnt(request.getParameter(bookID); userService.returnBook(userID,bookID);ActionForward actionForward=new ActionForward(); actionForward.setPath(/getAllBook.jsp);return actionForward; 四、系統(tǒng)測(cè)試及部署說明測(cè)試用例20111206-001軟件版本:V0.1子系統(tǒng):注冊(cè)

19、字符操作系統(tǒng):Windows XP測(cè)試人員姓名:曾立歡測(cè)試日期:2011-12-06初始設(shè)置1、點(diǎn)擊圖書管理系統(tǒng)圖標(biāo),進(jìn)入登錄界面,點(diǎn)擊界面上的注冊(cè)輸入1、用戶名zenglihuan,密碼:fendou,注冊(cè)2、用戶名 zenglihuan,密碼:空格,注冊(cè)3、用戶名cj,密碼:fendou,注冊(cè)4、用戶名 cengjingFD,密碼:fendou,注冊(cè)5、用戶名 cengjingFD,密碼:#&$,注冊(cè)6、用戶名 zenglihuan2,密碼:fendou,注冊(cè)預(yù)期結(jié)果1、注冊(cè)成功2、提示密碼不能為空3、提示用戶名過短4、注冊(cè)成功5、提示密碼不能全為字符6、注冊(cè)成功實(shí)際結(jié)果通過()失?。ǎ┱f

20、明測(cè)試用例20111206-003軟件版本:V0.1子系統(tǒng):登錄字符操作系統(tǒng):Windows XP測(cè)試人員姓名:曾立歡測(cè)試日期:2011-12-06初始設(shè)置1、打開圖書管理系統(tǒng),進(jìn)入登錄界面輸入1、用戶名 zenglihuan,2、用戶名 zenglihuan,密碼:fendou,登錄密碼:空格,登錄3、用戶名cj,密碼:fendou,登錄4、用戶名 cengjingFD,密碼:fendou,登錄5、用戶名 cengjingFD,密碼:#&$,登錄6、用戶名 zenglihuan2,密碼:fendou,登錄預(yù)期結(jié)果1、登錄成功,進(jìn)入系統(tǒng)主界面2、提示密碼不能為空,請(qǐng)重新登錄3、提示用戶名過短4

21、、登錄成功,進(jìn)入系統(tǒng)主界面5、提示密碼不能全為字符,請(qǐng)重新登錄6、登錄成功,進(jìn)入系統(tǒng)主界面實(shí)際結(jié)果通過()失?。ǎ┱f明測(cè)試用例20111206-003軟件版本:V0.1子系統(tǒng):右擊一本書籍的信息查看操作系統(tǒng):Windows XP測(cè)試人員姓名:曾立歡測(cè)試日期:2011-12-06初始設(shè)置1、登錄界面后,點(diǎn)擊借閱按鈕,進(jìn)入借閱界面輸入1、在借閱界面中,右擊一本書籍預(yù)期結(jié)果1、出現(xiàn)這本書的相關(guān)信息,如作者,出版社實(shí)際結(jié)果通過()失敗()說明測(cè)試用例20111206-004子系統(tǒng):借閱書籍測(cè)試人員姓名:曾立歡軟件版本:V0.1操作系統(tǒng):Windows XP測(cè)試日期:2011-12-06初始設(shè)置1、登錄

22、界面后,點(diǎn)擊借閱按鈕,進(jìn)入借閱界面輸入1、讀者借閱卡經(jīng)過掃描儀2、在借閱界面中,隨便點(diǎn)擊一本書籍3、在界面下方點(diǎn)擊借閱預(yù)期結(jié)果1、在借閱界面中,點(diǎn)擊剛剛借出的書籍,可看到書籍庫(kù)存減12、讀者借閱書籍信息欄中顯示出這本書的借出時(shí)間和應(yīng)歸還時(shí)間實(shí)際結(jié)果通過()失?。ǎ┱f明測(cè)試用例20111206-005軟件版本:V0.1子系統(tǒng):借閱書籍?dāng)?shù)量操作系統(tǒng):Windows XP測(cè)試人員姓名:曾立歡測(cè)試日期:2011-12-06初始設(shè)置1、登錄界面后,點(diǎn)擊借閱按鈕,進(jìn)入借閱界面2、對(duì)讀者借書卡進(jìn)行掃描輸入1、隨便拖曳5本書籍2、對(duì)選中的5本書籍進(jìn)行借閱預(yù)期結(jié)果1、提示最多可借書籍?dāng)?shù)量為4本實(shí)際結(jié)果通過()失

23、敗()說明測(cè)試用例20111206-006子系統(tǒng):歸還書籍測(cè)試人員姓名:曾立歡軟件版本:V0.1操作系統(tǒng):Windows XP測(cè)試日期:2011-12-06初始設(shè)置1、保證掃描儀正常運(yùn)作2、對(duì)讀者借書卡進(jìn)行掃描3、對(duì)一讀者借書卡進(jìn)行2本書的借閱輸入1、對(duì)讀者借書卡再次進(jìn)行掃描2、進(jìn)入借閱主界面,點(diǎn)擊歸還書籍按鈕3、把剛剛借出的其中一本經(jīng)過掃描儀掃描4、把不是用戶所借出的其中一本經(jīng)過掃描掃描預(yù)期結(jié)果1、歸還成功,同生讀者借閱信息中少了該本借閱書籍2、提示歸還書籍與用戶所借閱的書籍信息不吻合實(shí)際結(jié)果通過()失?。ǎ┱f明測(cè)試用例20111206-007軟件版本:V0.1子系統(tǒng):新書入庫(kù)操作系統(tǒng):Wi

24、ndows XP測(cè)試人員姓名:曾立歡測(cè)試日期:2011-12-06初始設(shè)置1、保證掃描儀正常運(yùn)作2、登錄系統(tǒng)主界面輸入1、點(diǎn)擊書信息管理按鈕,進(jìn)入此界面2、點(diǎn)擊界面下方的新書入庫(kù)按鈕3、把新書的條形碼經(jīng)過掃描儀掃描預(yù)期結(jié)果1、在書籍信息管理中增加了一個(gè)書籍,并可對(duì)其進(jìn)行編輯,歸類實(shí)際結(jié)果通過()失?。ǎ┱f明測(cè)試用例20111206-008軟件版本:V0.1子系統(tǒng):書籍下架操作系統(tǒng):Windows XP測(cè)試人員姓名:曾立歡測(cè)試日期:2011-12-06初始設(shè)置1、保證掃描儀正常運(yùn)作2、登錄系統(tǒng)主界面輸入1、點(diǎn)擊書信息管理按鈕,進(jìn)入此界面2、點(diǎn)擊界面下方的書籍下架按鈕3、把要下架書籍的條形碼經(jīng)過掃

25、描儀掃描預(yù)期結(jié)果1、在書籍信息管理中查詢不到書籍和相關(guān)信息實(shí)際結(jié)果通過()失敗()說明測(cè)試用例20111206-009軟件版本:V0.1子系統(tǒng):書籍查詢搜索操作系統(tǒng):Windows XP測(cè)試人員姓名:曾立歡測(cè)試日期:2011-12-06 初始設(shè)置1、登錄系統(tǒng)主界面2、書籍庫(kù)中有軟件設(shè)計(jì)案例分析和軟件設(shè)計(jì)模式這2本書和相關(guān)信息3、有馬士兵寫的2本相關(guān)書籍4、有清華大學(xué)出版社的一本書籍輸入1、點(diǎn)擊書籍信息管理按鈕,進(jìn)入此界面2、在界面下方的書籍搜索對(duì)話框中輸入軟件設(shè)計(jì)案例分析,選中按書名查詢3、再在對(duì)話框中輸入“馬士兵”,按作者查詢4、再在對(duì)話框中輸入“清華大學(xué)出版社”,按出版社查詢5、再在對(duì)話框

26、中輸入“軟件設(shè)計(jì)”選擇高級(jí)查詢,選中按關(guān)鍵字查詢 預(yù)期結(jié)果1、出現(xiàn)軟件設(shè)計(jì)案例分析和這本書相關(guān)信息2、出現(xiàn)“馬士兵”所寫的相關(guān)2本書籍3、出現(xiàn)清華大學(xué)出版社的一本書籍4、出現(xiàn)軟件設(shè)計(jì)案例分析和軟件設(shè)計(jì)模式2本書籍和相關(guān)信息實(shí)際結(jié)果通過()失敗() 測(cè)試結(jié)果測(cè)試用例20111206-001實(shí)際結(jié)果1注冊(cè)成功2提示密碼不能為空3提示用戶名過短4注冊(cè)成功5提示密碼不能全為字符6注冊(cè)成功測(cè)試用例20111206-002實(shí)際結(jié)果1、登錄成功,進(jìn)入系統(tǒng)主界面2、提示密碼不能為空,請(qǐng)重新登錄3、提示用戶名過短4、登錄成功,進(jìn)入系統(tǒng)主界面5、提示密碼不能全為字符,請(qǐng)重新登錄6、登錄成功,進(jìn)入系統(tǒng)主界面測(cè)試用例

27、20111206-003實(shí)際結(jié)果1、出現(xiàn)這本書的相關(guān)信息,如作者,出版社測(cè)試用例20111206-004實(shí)際結(jié)果1、在借閱界面中,點(diǎn)擊剛剛借出的書籍,可看到書籍庫(kù)存減12、讀者借閱書籍信息欄中顯示出這本書的借出時(shí)間和應(yīng)歸還時(shí)間測(cè)試用例20111206-005實(shí)際結(jié)果1、提示最多可借書籍?dāng)?shù)量為4本測(cè)試用例20111206-006實(shí)際結(jié)果1、歸還成功,同生讀者借閱信息中少了該本借閱書籍2、提示歸還書籍與用戶所借閱的書籍信息不吻合測(cè)試用例20111206-007實(shí)際結(jié)果1、在書籍信息管理中增加了一個(gè)書籍,并可對(duì)其進(jìn)行編輯,歸類測(cè)試用例20111206-008實(shí)際結(jié)果1、在書籍信息管理中查詢不到書籍和相關(guān)信息測(cè)試用例20111206-009實(shí)際結(jié)果1出現(xiàn)軟件設(shè)計(jì)案例分析和這本書相關(guān)信息2、出現(xiàn)“馬士兵”所寫的相關(guān)2本書籍3、出現(xiàn)清華大學(xué)出版社的一本書籍4、出現(xiàn)軟件設(shè)計(jì)案例分析和

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論