【正文】
e Q u e ( q u e s t ion N u m : in t ) : b ool e a n+s e a rc h Q u e s t ion B y Q A ( c ou rs e N u m : in t , q u e s t ion A m ou n t : in t ) : L is t q u e s t ion +u p d a t e Q u e ( q u e : q u e s t ion ) : b ool e a n+s e a rc h A llB y C ou rs e N u m ( c ou rs e N u m : in t ) : L is t q u e s t ion +g e t Q u e s t ion ( q u e s t ion N u m : in t ) : q u e s t ionu s eq u e s t io nq u e s t ion N u m : in tq u e s t ion C on t : S t ri n gop t ion A : S t ri n gop t ion B : S t ri n gop t ion C : S t ri n gop t ion D : S t ri n gk e y : in ts c or e s : in tc ou rs e N u m : in t+g e t Q u e s t ion N u m ( ) : in t+s e t Q u e s t ion N u m ( q u e s t ion N u m : in t )+g e t Q u e s t ion C on t ( ) : S t ri n g+s e t Q u e s t ion C on t ( q u e s t ion C on t : S t ri n g )+g e t O p t ion A ( ) : S t ri n g+s e t O p t ion A ( op t ion A : S t ri n g )+g e t O p t ion B ( ) : S t ri n g+s e t O p t ion B ( op t ion B : S t ri n g )+g e t O p t ion C ( ) : S t ri n g+s e t O p t ion C ( op t ion C : S t ri n g )+g e t O p t ion D ( ) : S t ri n g+s e t O p t ion D ( op t ion D : S t ri n g )+g e t K e y ( ) : in t+s e t K e y ( k e y : in t )+g e t S c or e s ( ) : in t+s e t S c or e s ( s c or e s : in t )+g e t C ou rs e N u m ( ) : in t+s e t C ou rs e N u m ( c ou rs e N u m : in t ) 圖 47 測題 DAO操作測題信息表類圖 測題 DAO( questionDI)通過數(shù)據(jù)庫連接 connect 類中的連接數(shù)據(jù)庫的方法來獲取數(shù)據(jù)庫連接,再將連接和 SQL 語句傳遞給數(shù)據(jù)庫操作 dbOperator 類中的方法來實現(xiàn)對數(shù)據(jù)庫中 question 表的操作。 22 ( DAO)數(shù)據(jù)訪問層設(shè)計 ( DAO)數(shù)據(jù)訪問層主要實現(xiàn)的功能是對數(shù)據(jù)庫中的數(shù)據(jù)進行操作,簡而言之就是一系列的對數(shù)據(jù)庫中的記錄進行增加、刪除、修改、查找操作。業(yè)務(wù)邏輯層不需要知道如何操作具體數(shù)據(jù),只要知道通過 DAO 層的什么方法得到什么參數(shù),或者傳遞什么參數(shù)從而能達到功能的實現(xiàn)。老師同意學(xué)生預(yù)選則可以分配課題給學(xué)生,學(xué)生可以查看課題信息;拒絕則給出拒絕信息,學(xué)生可以查看老師拒絕信息。 19 登陸開始測試查看個人信息是否已經(jīng)測試?進行測試是查看測試成績是否測試完畢?否是查看測試報告退出系統(tǒng)預(yù)選老師否 圖 43 學(xué)生活動圖 當(dāng)學(xué)生為登陸后可以進行測試或查看個 人信息,如果還未進行測試則測試成績、測試報告、預(yù)選老師業(yè)務(wù)都無數(shù)據(jù)顯示,如果已經(jīng)測試則可以查看到測試成績、測試報告、預(yù)選老師、退出系統(tǒng)。 Ajax 技術(shù)實現(xiàn)了瀏覽器與服務(wù)器之間數(shù)據(jù)的異步傳輸, Ajax 中是使用 JavaScript 來傳遞數(shù)據(jù)給業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層將處理后要返回的數(shù)據(jù)傳回給請求數(shù)據(jù)的客戶端 JSP 頁面,頁面再通過 DOM( Document Object Model)顯示新數(shù)據(jù),在整個過程中用戶可以不手動刷新頁面。其中又用到了Struts2 的標(biāo)簽和 Ajax 技術(shù)。關(guān)系型數(shù)據(jù)庫要滿足三類完整性約束,即實體完整性,參照完整性,用戶自 定義的完整性 [7]。 DAO 層調(diào)用 Bean 中對象實現(xiàn)持久化方法,對關(guān)系數(shù)據(jù)庫進行操作。系統(tǒng)體系結(jié)構(gòu)如下圖 41 所示。為了能設(shè)計出符合需求的系統(tǒng),設(shè)計時要遵守以下原則: ( 1)結(jié)構(gòu)應(yīng)該 分層次,從而建立軟件成分之間的控制 [6]。對于數(shù)據(jù)庫的設(shè)計,要充分考慮到數(shù)據(jù)的存儲需求并充分利用不同數(shù)據(jù)類型的優(yōu)勢來選擇存儲數(shù)據(jù)類型。從用戶的使用感受考慮,系統(tǒng)設(shè)計時應(yīng)該盡量以使用簡單、操作一目了然、界面友好、有交互性為主。 15 4 系統(tǒng)設(shè)計 系統(tǒng)設(shè)計時站在對系統(tǒng)規(guī)劃的角度來考慮系統(tǒng)該如何實現(xiàn)、如何將需求轉(zhuǎn)換為軟件設(shè)計的問題。 小結(jié): 系統(tǒng)需求分析需要注意很多原則,避免出現(xiàn)的需求出現(xiàn)沖突。 13 m a n a g e _ q u e s t io n s _ in f o rlo g ina d d _ u s e r _ in f o r d e le t e _ u s e r _ in f o ru p d a t e _ u s e r _ in f o rm a n a g e _ u s e r s _ in f o rs e le c t _ u s e r _ in f o ra d d _ q u e s t io n s _ in f o rd e le t e _ q u e s t io n s _ in f o ru p d a t e _ q u e s t io n s _ in f o rv ie w _ q u e s t io n s _ in f o rlo g o u tm a n a g e _ t h e s is _ in f o rv ie w _ t h e s is _ in f o r e x t e n d e x t e n d e x t e n d e x t e n d e x t e n d e x t e n d e x t e n d i n c l u d e i n c l u d e a d m in is t r a t o ru p d a t e _ p a s s w o r d 圖 34 管理員用例圖 administrator(管理員)的用例有: login:登陸系統(tǒng) logout:退出系統(tǒng) manage_users_infor:管理用戶信息 add_user_infor:添加用戶信息 delete_user_infor:刪除用戶信息 update_user_infor:更新用戶信息 select_user_infor:查找用戶信息 manage_questions_infor:管理題庫 add_questions_infor:添加測題 delete_questions_infor:刪除測題 update_questions_infor:更新測題 view_questions_infor:查找測題 manage_thesis_infor:管理課題信息 view_thesis_infor:查看課題信息 14 update_password:修改密碼 管理員的主要功能之一是對學(xué)生信息進行管理。 lo g inm a n a g e _ t h e s is e sa t t r ib u t e _ t h e s is e sm a n a g e _ a p p ly _ in f o r m a t io nm a n a g e _ s t u d e n t _ t h e s isv ie w _ t h e s isa d d _ t h e s isd e le t e _ t h e s isu p d a t e _ t h e s ism a n a g e _ p e r s o n a l_ in f o rc h a n g e _ p a s s w o r dv ie w _ p e r s o n a l_ in f o rlo g o u t i n cl u d e e x t e n d e x t e n d e x t e n d e x t e n d e x t e n d t e a c h e rf ill_ in _ t h e s is _ r e q u ir e m e n tv ie w _ s t u d e n t _ t e s t _ r e s u lt 圖 33 教師用例圖 teacher(教師)的用例有: login:登陸系統(tǒng) logout:退出系統(tǒng) attribute_thesises:分配課題 manage_student_thesis:管理學(xué)生論文 fill_in_thesis_requirement:填寫課題要求課程 view_student_test_result:查看學(xué)生測試結(jié)果 manage_apply_information:管理學(xué)生預(yù)選情況 manage_thesis:管理課題 add _thesis:添加課題 12 delete_thesis:刪除課題 update_thesis:更新課題 view_thesis:查看課題 manage_personal_infor:管理個人信息 change_password:修改密碼 view_personal_infor:查看個人信息 教師的主要功能給出選題內(nèi)容及建議,通過查看學(xué)生的測試結(jié)果和測試報告了解學(xué)生情況。 lo g int e s t in gm a n a g e _ p e r s o n a l_ in f o re x t r a c t _ q u e s t io n sa n s w e r _ q u e s t io n ss u b m it _ t e s t _ p a p e rv ie w _ t e s t _ r e p o r tu p lo a d _ t h e s ism a n a g e _ t h e s isv ie w _ p e r s o n a l_ in f o rc h a n g e _ p a s s w o r dv ie w _ t e s t _ r e s u lts a v e _ t e s t _ r e p o r tlo g o u td o w n lo a d _ t h e s is a p p ly _ t e a c h e r i n cl u d e i n cl u d e e x t e n d e x t e n d i n cl u d e e x t e n d e x t e n d s t u d e n t 圖 32 學(xué)生用例圖 student(學(xué)生)的用例有: login:登陸系統(tǒng) logout:退出系統(tǒng) testing:測試 extract_questions:抽取試題 answer_questions:回答測題 10 submit_test_paper:提交考卷 manage_personal_infor:管理個人信息 view_personal_infor:查看個人信息 change_password:修改密碼 view_test_result:查看測試結(jié)果 view_test_report:查看測試報告 save_test_report:保存測試報告 manage_thesis:管理論文 upload_thesis:上傳論文 download_thesis:下載已批改論文 apply_teacher:預(yù)選導(dǎo)師 對于學(xué)生的功能可以看到選題測試功能包括:抽取試題、回答問題、提交答卷用例。由于本系統(tǒng)與其他系統(tǒng)和進程沒有直接的聯(lián)系,是一個獨立的系統(tǒng),所以系統(tǒng)主要參與的角色分為三個:學(xué)生、教師和系統(tǒng)管理員。為了能夠?qū)崿F(xiàn)學(xué)生的專業(yè)