【文章內容簡介】
,而是跳轉到提示已經測試的頁面后置條件:用戶測試完成,得到測試結果和測試報告。 教師實體具有的功能如圖 33 所示。 11 信息科學與技術學院學士學位論文 v i e w _ t h e s i sa d d _ t h e s i sd e l e t e _ t h e s i su p d a t e _ t h e s i sc h a n g e _ p a s s w o r dv i e w _ p e r s o n a l _ i n f o rl o g o u tl o g i nd i s t r i b u t e _ t h e s i sm a n a g e _ t h e s i s i n c l u d e e x t e n d e x t e n d e x t e n d m a n a g e _ a p p l y _ i n f o r m a t i o nd i s t r i b u t e _ t h e s i sv i e w _ s t u d e n t _ t e s t _ r e s u l tm a n a g e _ p e r s o n a l _ i n f o r e x t e n d e x t e n d m a n a g e _ s t u d e n t _ p a p e rt e a c h e r 圖 33 教師用例圖 teacher(教師)的用例有: login: 登陸 系統(tǒng) logout: 退出系統(tǒng) distribute_thesis:分配課題 manage_student_paper: 管理學生論文 fill_in_thesis_requirement:填寫課題要求 課程 view_student_test_result:查看學生測試結果 manage_apply_information:管理學生 預選情況 manage_thesis:管理課題 add _thesis:添加課題 delete_thesis:刪除課題 update_thesis:更新課題 view_thesis:查看課題 manage_personal_infor:管理個人信息 12 信息科學與技術學院學士學位論文 change_password:修改密碼 view_personal_infor:查看個人信息 教師的主要功能給出選題內容及建議,通過查看學生的測試結果和測試報告了解學生情況。 查看學生測試結果用例說明: 前置條件:用戶登錄成功,學生完成測試。 基本事件流: ( 1) 輸入用戶名、密碼 和用戶身份 ( 2) 點擊“登錄”,系統(tǒng)通過對用戶信息驗證和數據庫中用戶信息的對比檢測用戶的合法性,如果用戶合法則進入教師后臺管理首頁 ( 3) 教師點擊“學生測試成績”菜單下的“查看測試成績”,系統(tǒng)查找到學生測試成績,提取學生測試信息返回顯示 備選事件流:學生未測試則提示學生尚未有測試結果。 后置條件:顯示學生測試成績 。 系統(tǒng)管理員實體具有的功能如圖 34 所示。 administrator(管理員)的用例有: login:登陸系統(tǒng) logout:退出系統(tǒng) manage_user_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:更新測題 13 信息科學與技術學院學士學位論文 view_questions_infor:查找測題 manage_thesis_infor:管理課題信息 view_thesis_infor:查看課題信息 update_password:修改密碼 add_user_infordelete_user_inforupdate_user_inforselect_user_inforadd_questions_info rdelete_questions_i nforupdate_questions_i nforview_questions_inf orview_thesis_inforupdate_passwordloginlogoutmanage_user_inforextendextendextendextendmanage_questions_i nforextendextendextendincludemanage_thesis_info rextendadministrator 圖 34 管理員用例圖 管理員的主要功能之一是對學生信息進行管理。 學生信息管理用例說明: 前置條件:管理員合法登陸,進入管理員后臺管理首頁 。 基本事件流: ( 1) 單擊 “ 學生信息管理 ” 菜單下的 “ 查看學生信息 ” 菜單,系統(tǒng)從數據庫選出所有學生信息在頁面顯示 ( 2) 單擊一條學生信息記錄后的 “ 編輯 ” 按鈕,對信息進行修改單擊 “ 確定 ” ( 3) 單擊一條學生信息記錄后面的 “ 刪除 ” 按鈕,對信息進行刪除 備選事件流:當用戶表中數據的 外鍵被修改時,如果與外鍵所在基本 表 中數據不符合,則無法修改。當用戶要管理的表格中數據為空時,系統(tǒng)不顯示數據。 14 信息科學與技術學院學士學位論文 后置條件:數據管理成功,數據庫保存修改后的表信息,數據庫刪除記錄。 小結 系統(tǒng)需求分析需要注意很多原則,避免出現的需求出現沖突。通過分析得到的需求還必須與用戶所要的需求相一致。如果對用戶的需求誤解了將對以后的系統(tǒng)的設計和實現造成很大的誤導,并且不好改動 ,所以這一步需謹慎 。通過對系統(tǒng)進行需求分析,對系統(tǒng)的實現更加細化和明確 。 15 信息科學與技術學院學士學位論文 4 系統(tǒng)設計 系統(tǒng)設計時站在對系統(tǒng)規(guī)劃的角度來 考慮系統(tǒng)該如何實現 、如何將需求轉換為軟件設計的問題。 系統(tǒng)設計分為概要設計和詳細設計。 根據 軟件工程 中軟件設計的抽象與 逐步求精原則 [12],先從系統(tǒng)的整個結構出發(fā)來設計系統(tǒng)總體架構設計,再設計系統(tǒng)需要實現 的 功能模塊、系統(tǒng)界面、數據庫表 等。 設計目標 及 原則 隨著科技的發(fā)展,越來越多的自動化 的 產品被應用于生活中,特別是年輕人對這些數字化產品特別熱衷,這樣使得現在的孩子們都不愿意去使用不易理解,使用復雜的產品。從用戶的使用感受考慮,系統(tǒng)設計時應該盡量以 使用 簡單、 操作 一目了然、界面友好、有交互性為主?;谥饕脩魹閷W生團體,所以 界面 風格上設計的要清 新 ,美觀。 對于不同專業(yè)的學生要評測出真實的水平,測試系統(tǒng)題型應該與學生 所 學專業(yè)設置的 課程 掛鉤,并且有難易程度 的過度 。軟件總體框架要以 JavaEE思想 來設計。對于數據庫的設計,要充分考慮到數據的存儲需求并充分利用不同數據類型的優(yōu)勢來選擇存儲數據類型。 最終的系統(tǒng)能夠實現 所有需求獲取階段得到的需求,主要是 學生在線測試和對測試進行分析的功能 以及論文交流的功能, 能夠使老師通過系統(tǒng)了解學生的優(yōu)勢和劣勢, 對導師 分配課題 提供參考。 系統(tǒng)設計還應該以 易于實現、易于測試、易于維護 為基本理念 。 系統(tǒng)設計的原則 是 指導設計過程的。 為了能設計出符合需求的系統(tǒng),設計時要遵守以下原則: ( 1) 結構應該分層次 ,從而建立軟件成分之間的控制 ; ( 2)設計應當模塊化,邏輯上將軟件劃分為完成特定功能或子功能的部件 ; ( 3)設計應該包含數據抽象和過程抽象 ; ( 4)模塊與外部環(huán)境之間的接口盡量少 ; ( 5) 系統(tǒng)盡量簡單,減少處理的時間和費用 ; ( 6)系統(tǒng)數據的一致性,對于系統(tǒng)中的相同信息的顯示和存儲要一致 ; 16 信息科學與技術學院學士學位論文 ( 7)系統(tǒng)具備一定的出錯處理功能, 提高系統(tǒng)的 可靠性。 系統(tǒng) 數據庫設計 根據對系統(tǒng)的分析得到如下的實體關系 圖如 圖 41 所示 : 學 生屬 于屬 于專 業(yè)學 院課 程測 試屬 于要 求課 題提 出教 師屬于論 文 指 導nm nmnn1n11n1n1n設 置問 題1n1預 選 老 師nm 圖 41 系統(tǒng) ER圖 從圖中可以 看 到各個實體間的聯系 。關系型 數據庫 要滿足 三類 完整性約束 , 即實體完整性,參照完整性,用戶 自 定義的完整性 [13]。 通過這三個約束將實體型轉換得到關系模式 即為 數據庫的邏輯結構設計 : 學生( 學號 , 學生姓 名, 登陸 密碼, 性別 ,專業(yè)號 ,郵箱號 ,測試標記 ) 課程( 課程號 ,課程名, 專業(yè) 號) 教師( 教師號 ,教師姓名,登陸密碼, 性別,允許指導學生數, 學院號 ,郵箱號 ) 管理員( 管理員號 ,管理員姓名 ,登陸密碼 ) 專業(yè)( 專業(yè)號 ,專業(yè)名,學院號 ) 學院( 學院號 ,學院名) 測試 ( 學號 , 課程號 ,課程名,得分 , 測試 日期 ) 問題( 問題編號 ,問題內容,選項 A 內容,選項 B 內容,選項 C 內容,選項 D內容,答案選項,分數,課程號) 17 信息科學與技術學院學士學位論文 論文指導( 學號 ,論文號,論文主題, 學生 論文存放位置,更新標志 , 學生 上傳日期,教師號 ,教師論文存放位置,教師上傳日期 ) 課題( 課題號 ,課題名, 出題日期,課題介紹,課題研究建議, 教師號) 課題要求( 課題號 ,課題名, 課程號 ,課程名 ) 預選 老師 ( 學號 , 教師號 , 預選 標志, 教師 同意標志,拒絕原因) 表示層 Web設計 表示層 是 服務器 與用戶之間 的接口。根據所見即所得原理,表示層將業(yè)務邏輯層返回的數據以用戶能理解的形式在頁面中顯示,用戶通過表示層提供的接口 輸入數據,通過頁面來 傳遞數據到后臺業(yè)務邏輯層 進行 處理。 本系統(tǒng)的表示層 主要 通過 不同的 Action 控制在 JSP 頁面 體現 。 其中 又 用到了Struts2 的標簽 和 Ajax 技術 。 Struts2 標簽 使得 數據顯示更加 更加 方便,代碼量減少,同時數據傳輸方便。 當業(yè)務邏輯層將數據傳遞給相應的 Action 后,通過 中的映射來跳轉到相應的 JSP 頁面,在頁面中使用 Struts2 標簽就可以將傳遞過來的參數顯示 在頁面中。 用戶 在 使用系統(tǒng)時更希望界面簡單,操作簡便,有盡量少刷新操作和等待時間。 Ajax 技術實現 了 瀏覽器與服務器 之間數據的 異步傳輸 , Ajax 中是使用 JavaScript 來傳遞數據 給業(yè)務邏輯層 ,業(yè)務邏輯層將處理后 要返回的 數據傳回給請求數據的客戶端 JSP 頁面,頁面再通過 DOM( Document Object Model)顯示新數據 ,在整個過程中用戶 可以不 手動刷新頁面 。 為了更好的實現導航的功能, 系統(tǒng)表示層設計時,讓不同角色的用戶的操作都顯示在 導航 欄,當頁面跳轉時, 導航 欄不會改變位置,而請求的頁面則顯示在一個固定的 框架中。 在頁面顯示數據時傳遞的是對象數組 。 當學生登陸 系統(tǒng) 后可以進行測試或查看個人信息,如果還未進行測試則 查看 測試成績、 查看 測試報告、預選老師業(yè)務都無數據顯示,如果已經測試則可以查看到測試成績、 查看 測試報告、預選老師、 查看個人信息 ,最后 退出系統(tǒng)。 根據需求分析得到學生登陸后的業(yè)務功能 實現 活動圖如 圖 42 所示 。 18 信息科學與技術學院學士學位論文 登陸開始測試查看個人信息是否已經測試?進行測試是查看測試成績是否測試完畢?否是查看測試報告退出系統(tǒng)預選老師否 圖 42 學生活動圖 學生選題 活動首先需 學生 進行 課程 測試,系統(tǒng)根據學生擅長的課程推薦課題及老師,學生 可以 預選課題對應的老師。老師通過查看預選了課題的學生的測試成績決定是否同意學生預選。老師同意學生預 選則可以分配課題給學生,學生可以查看課題信息;拒絕則給出拒絕原因等信息,學生可以查看老師拒絕信息。 學生選題活動 圖如圖 43 所示。 19 信息科學與技術學院學士學位論文 學生 教師測試課程預選導師 查看學生測試成績處理學生預選是否同意預選?顯示教師拒絕信息分配課題否是顯示課題信息 圖 43學生選題 活動圖 業(yè)務邏輯層設計 業(yè)務邏輯層 ( Service 層 ) 主要是針對不同的業(yè)務需求來調用數據訪問層 ( DAO層) 的方法,從而實現 不同 業(yè)務 需求 功能。 業(yè)務邏輯層提供了一系列可提供給用戶的 服務,是對用戶問題提供解決的方法。業(yè)務邏輯層的實現是通過調用數據訪問層