【正文】
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 測(cè)題 DAO操作測(cè)題信息表類圖 測(cè)題 DAO( questionDI)通過(guò)數(shù)據(jù)庫(kù)連接 connect 類中的連接數(shù)據(jù)庫(kù)的方法來(lái)獲取數(shù)據(jù)庫(kù)連接,再將連接和 SQL 語(yǔ)句傳遞給數(shù)據(jù)庫(kù)操作 dbOperator 類中的方法來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中 question 表的操作。 22 ( DAO)數(shù)據(jù)訪問(wèn)層設(shè)計(jì) ( DAO)數(shù)據(jù)訪問(wèn)層主要實(shí)現(xiàn)的功能是對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行操作,簡(jiǎn)而言之就是一系列的對(duì)數(shù)據(jù)庫(kù)中的記錄進(jìn)行增加、刪除、修改、查找操作。業(yè)務(wù)邏輯層不需要知道如何操作具體數(shù)據(jù),只要知道通過(guò) DAO 層的什么方法得到什么參數(shù),或者傳遞什么參數(shù)從而能達(dá)到功能的實(shí)現(xiàn)。老師同意學(xué)生預(yù)選則可以分配課題給學(xué)生,學(xué)生可以查看課題信息;拒絕則給出拒絕信息,學(xué)生可以查看老師拒絕信息。 19 登陸開(kāi)始測(cè)試查看個(gè)人信息是否已經(jīng)測(cè)試?進(jìn)行測(cè)試是查看測(cè)試成績(jī)是否測(cè)試完畢?否是查看測(cè)試報(bào)告退出系統(tǒng)預(yù)選老師否 圖 43 學(xué)生活動(dòng)圖 當(dāng)學(xué)生為登陸后可以進(jìn)行測(cè)試或查看個(gè) 人信息,如果還未進(jìn)行測(cè)試則測(cè)試成績(jī)、測(cè)試報(bào)告、預(yù)選老師業(yè)務(wù)都無(wú)數(shù)據(jù)顯示,如果已經(jīng)測(cè)試則可以查看到測(cè)試成績(jī)、測(cè)試報(bào)告、預(yù)選老師、退出系統(tǒng)。 Ajax 技術(shù)實(shí)現(xiàn)了瀏覽器與服務(wù)器之間數(shù)據(jù)的異步傳輸, Ajax 中是使用 JavaScript 來(lái)傳遞數(shù)據(jù)給業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層將處理后要返回的數(shù)據(jù)傳回給請(qǐng)求數(shù)據(jù)的客戶端 JSP 頁(yè)面,頁(yè)面再通過(guò) DOM( Document Object Model)顯示新數(shù)據(jù),在整個(gè)過(guò)程中用戶可以不手動(dòng)刷新頁(yè)面。其中又用到了Struts2 的標(biāo)簽和 Ajax 技術(shù)。關(guān)系型數(shù)據(jù)庫(kù)要滿足三類完整性約束,即實(shí)體完整性,參照完整性,用戶自 定義的完整性 [7]。 DAO 層調(diào)用 Bean 中對(duì)象實(shí)現(xiàn)持久化方法,對(duì)關(guān)系數(shù)據(jù)庫(kù)進(jìn)行操作。系統(tǒng)體系結(jié)構(gòu)如下圖 41 所示。為了能設(shè)計(jì)出符合需求的系統(tǒng),設(shè)計(jì)時(shí)要遵守以下原則: ( 1)結(jié)構(gòu)應(yīng)該 分層次,從而建立軟件成分之間的控制 [6]。對(duì)于數(shù)據(jù)庫(kù)的設(shè)計(jì),要充分考慮到數(shù)據(jù)的存儲(chǔ)需求并充分利用不同數(shù)據(jù)類型的優(yōu)勢(shì)來(lái)選擇存儲(chǔ)數(shù)據(jù)類型。從用戶的使用感受考慮,系統(tǒng)設(shè)計(jì)時(shí)應(yīng)該盡量以使用簡(jiǎn)單、操作一目了然、界面友好、有交互性為主。 15 4 系統(tǒng)設(shè)計(jì) 系統(tǒng)設(shè)計(jì)時(shí)站在對(duì)系統(tǒng)規(guī)劃的角度來(lái)考慮系統(tǒng)該如何實(shí)現(xiàn)、如何將需求轉(zhuǎn)換為軟件設(shè)計(jì)的問(wèn)題。 小結(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:管理題庫(kù) add_questions_infor:添加測(cè)題 delete_questions_infor:刪除測(cè)題 update_questions_infor:更新測(cè)題 view_questions_infor:查找測(cè)題 manage_thesis_infor:管理課題信息 view_thesis_infor:查看課題信息 14 update_password:修改密碼 管理員的主要功能之一是對(duì)學(xué)生信息進(jìn)行管理。 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:填寫(xiě)課題要求課程 view_student_test_result:查看學(xué)生測(cè)試結(jié)果 manage_apply_information:管理學(xué)生預(yù)選情況 manage_thesis:管理課題 add _thesis:添加課題 12 delete_thesis:刪除課題 update_thesis:更新課題 view_thesis:查看課題 manage_personal_infor:管理個(gè)人信息 change_password:修改密碼 view_personal_infor:查看個(gè)人信息 教師的主要功能給出選題內(nèi)容及建議,通過(guò)查看學(xué)生的測(cè)試結(jié)果和測(cè)試報(bào)告了解學(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:測(cè)試 extract_questions:抽取試題 answer_questions:回答測(cè)題 10 submit_test_paper:提交考卷 manage_personal_infor:管理個(gè)人信息 view_personal_infor:查看個(gè)人信息 change_password:修改密碼 view_test_result:查看測(cè)試結(jié)果 view_test_report:查看測(cè)試報(bào)告 save_test_report:保存測(cè)試報(bào)告 manage_thesis:管理論文 upload_thesis:上傳論文 download_thesis:下載已批改論文 apply_teacher:預(yù)選導(dǎo)師 對(duì)于學(xué)生的功能可以看到選題測(cè)試功能包括:抽取試題、回答問(wèn)題、提交答卷用例。由于本系統(tǒng)與其他系統(tǒng)和進(jìn)程沒(méi)有直接的聯(lián)系,是一個(gè)獨(dú)立的系統(tǒng),所以系統(tǒng)主要參與的角色分為三個(gè):學(xué)生、教師和系統(tǒng)管理員。為了能夠?qū)崿F(xiàn)學(xué)生的專業(yè)