歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

軟件工程-課程設(shè)計(在線答疑系統(tǒng))

  • 資源ID:159225990       資源大?。?span id="jvagg1z" class="font-tahoma">814.31KB        全文頁數(shù):30頁
  • 資源格式: DOC        下載積分:10積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要10積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

軟件工程-課程設(shè)計(在線答疑系統(tǒng))

在線答疑系統(tǒng) 項目名稱: 在線答疑系統(tǒng) 班 級: 學(xué) 號: 姓 名: 小組成員: 2017年6月12日目錄1系統(tǒng)分析 1.1需求分析1.1.1 功能性需求分析1.1.2 非功能性需求分析1.1.3 系統(tǒng)流程圖.1.1.4 系統(tǒng)數(shù)據(jù)流圖1.2可行性分析.2系統(tǒng)總體設(shè)計2.1 項目規(guī)劃2.2 系統(tǒng)總體結(jié)構(gòu)2.3 系統(tǒng)功能模塊2.3.1學(xué)生模塊功能定義2.3.2 教師模塊功能定義2.3.3 管理員功能模塊定義3數(shù)據(jù)庫設(shè)計3.1 數(shù)據(jù)庫分析3.2 項目E-R圖3.3 數(shù)據(jù)庫表的設(shè)計4系統(tǒng)詳細(xì)設(shè)計與實現(xiàn)4.1 界面設(shè)計4.2 系統(tǒng)分層的實現(xiàn)4.2.1 表現(xiàn)層的設(shè)計4.2.2 控制層的設(shè)計4.3 數(shù)據(jù)連接與操作的實現(xiàn)4.3.1 數(shù)據(jù)源的配置4.3.2 數(shù)據(jù)庫操作的實現(xiàn)4.4 各個功能模塊的設(shè)計與實現(xiàn)4.4.1 用戶登錄和注冊4.4.2 學(xué)生用戶模塊4.4.3 教師用戶模塊4.4.4 管理員模塊5 系統(tǒng)測試5.1 測試目的5.2 系統(tǒng)關(guān)鍵部分測試分析5.2.1 注冊用戶名唯一性驗證5.2.2 分頁的實現(xiàn)6結(jié)論6.1 系統(tǒng)功能總結(jié)6.2 系統(tǒng)的特色之處6.3體會與總結(jié)7小組分工第一章 系統(tǒng)分析1.1需求分析在開發(fā)任何一個系統(tǒng)之前,進(jìn)行必需的系統(tǒng)分析是非常有必要的,主要是根據(jù)對客戶的需求和本系統(tǒng)的一些特點和模塊的分析等來確定如何有效地進(jìn)行實際的開發(fā)。需求分析是軟件設(shè)計的一個重要組成部分。為了確定系統(tǒng)的目標(biāo),應(yīng)在本階段對系統(tǒng)的應(yīng)用情況進(jìn)行全面的調(diào)查1.1.1 功能性需求分析本系統(tǒng)包含學(xué)生、教師和后臺管理員這3類用戶,其各用戶的具體功能如下。l 學(xué)生用戶功能 注冊和登錄,學(xué)生不僅可以很方便地進(jìn)行用戶注冊,也能夠登錄在線答疑系統(tǒng)。 資料的修改,注冊后學(xué)生可以修改自己的注冊資料。 查看提問,學(xué)生發(fā)起問題后,可以查看該問題的回復(fù)情況。 申請課程,如果學(xué)生還不能修某課程,可提交該課程的申請表。 查詢課程,搜索自己感興趣的課程,支持模糊檢索。 查看參與的提問,學(xué)生不僅可以對自己參與課程下的問題進(jìn)行討論,而且還可以查看這些問題。l 教師用戶功能 用戶的登錄,老師可自由地登錄在線答疑系統(tǒng)。 資料的修改,老師可以修改自己的資料。 查看未回答的提問,老師登錄后,可以查看待回答問題的列表。 查看已回答的提問,對于已經(jīng)回答的問題,老師不僅可查看,而且還可以繼續(xù)回復(fù)講解。 添加學(xué)生,老師能夠?qū)W(xué)生添加到自己所教授的某門課程。 刪除學(xué)生,老師能夠刪除自己所教課程下的學(xué)生。l 管理員功能 課程管理,管理員可以對課程信息進(jìn)行維護(hù)。 內(nèi)容管理,管理員可以對提問內(nèi)容和回復(fù)內(nèi)容進(jìn)行管理。 用戶管理,管理員可以對學(xué)生用戶和老師用戶進(jìn)行管理。 管理員管理,主要是超級管理員對普通管理員的管理。1.1.2 非功能性需求分析(1)系統(tǒng)安全性需求在軟件使用方面,學(xué)生用戶和教師用戶通過系統(tǒng)主界面登錄進(jìn)入系統(tǒng),但必須通過必要的身份驗證。管理員則通過專門的登錄頁面來進(jìn)入系統(tǒng),一旦管理員登錄成功就可以對系統(tǒng)進(jìn)行常規(guī)管理。用戶登錄的角色不同,從系統(tǒng)獲得的操作權(quán)限也不同。(2)系統(tǒng)開發(fā)運行環(huán)境需求JDK:作為整個Java的核心包含了Java的基礎(chǔ)類庫、運行環(huán)境和Java工具,是 Java 語言的軟件開發(fā)工具包。 MyEclipse:是一個非常杰出的Java開發(fā)工具,對各種開源產(chǎn)品的支持非常好。它不僅功能非常強大,而且具備非常廣泛的支持性能。 Tomcat服務(wù)器:適用于中小型系統(tǒng)開發(fā)的web應(yīng)用服務(wù)器,開放源代碼且免費。其性能穩(wěn)定、技術(shù)先進(jìn),因此不但博得了Java 開發(fā)人員的喜愛,而且也得到了一些軟件開發(fā)商的肯定,是當(dāng)今較流行的Web 應(yīng)用服務(wù)器。 MySQL數(shù)據(jù)庫:是目前小型應(yīng)用開發(fā)中比較流行的數(shù)據(jù)庫,且從MySQL5.0版本開始支持事務(wù),保證了數(shù)據(jù)庫的完整性和安全性。1.1.3 系統(tǒng)流程圖用戶進(jìn)入系統(tǒng)主界面后,會顯示所有課程列表,成功登錄后才能查看課程的提問以及進(jìn)行其它操作。如果是學(xué)生用戶,則可以查看個人資料、自己的課程、提問、參與的問題和申請?zhí)幚砬闆r,還可以進(jìn)行課程的申請,修改資料和登錄密碼。如果是老師用戶,則可以查看個人資料、自己的課程和申請列表,并能對學(xué)生進(jìn)行管理(添加或刪除學(xué)生),修改資料和登錄密碼,系統(tǒng)會提示老師未回答問題和未處理申請的個數(shù)。管理員經(jīng)由后臺登錄界面進(jìn)入系統(tǒng),成功地登錄以后,系統(tǒng)會根據(jù)管理員角色(超級管理員和普通管理員)的不同來顯示相應(yīng)的操作權(quán)限列表。管理員能夠?qū)φn程、提問和回復(fù)、學(xué)生和老師用戶以及管理員用戶進(jìn)行管理。本系統(tǒng)的流程圖如下頁圖1.1所示在線答疑系統(tǒng) 系統(tǒng)首頁 后臺登錄界面 用戶登錄 否 否 用戶登錄 登錄成功? 登錄成功? 是 是 老師用戶 學(xué)生用戶 管理員 修改資料 管理員用戶的管理 學(xué)生和老師用戶的管理 提問和回復(fù)管理 課程管理 查看老師的課程 添加和刪除學(xué)生 回答問題和處理申請 查看申請?zhí)幚砬闆r 修改資料 搜索課程和申請課程 查看自己的課程和提問 提出問題和參與討論 圖1.1 系統(tǒng)流程圖1.1.4 系統(tǒng)數(shù)據(jù)流圖本系統(tǒng)數(shù)據(jù)流的設(shè)計主要包括在線答疑信息管理、課程管理和用戶管理等的實現(xiàn),其相應(yīng)的數(shù)據(jù)流圖分別如下圖1.2所示。圖1.2 系統(tǒng)頂層數(shù)據(jù)流圖管理員管理部分主要實現(xiàn)了課程管理、提問和回復(fù)管理以及學(xué)生和老師用戶管理,其數(shù)據(jù)流圖如圖1.3所示。 圖1.3 第一層數(shù)據(jù)流圖管理員管理教師管理部分主要實現(xiàn)了學(xué)生管理、回答問題、處理申請以及查看課程信息,其數(shù)據(jù)流圖如圖1.4所示。圖1.4 第一層數(shù)據(jù)流圖教師管理學(xué)生管理部分主要實現(xiàn)了搜索課程和申請課程、提出問題和參與討論、查看自己的課程和提問以及產(chǎn)看申請?zhí)幚砬闆r,其數(shù)據(jù)流圖如圖1.5所示。圖1.5 第一層數(shù)據(jù)流圖學(xué)生管理1.2可行性分析可行性分析(Feasibility Analysis),即可行性研究,它是針對新系統(tǒng)的開發(fā)是不是具備必可能性和必要性并基于對系統(tǒng)的調(diào)查,對新系統(tǒng)的開發(fā)從技術(shù)、社會和經(jīng)濟等方面開展分析和研究工作,以避免投資失誤,從而保障新系統(tǒng)的開發(fā)成功??尚行匝芯康哪繕?biāo)是用最小的代價在盡量短的時間內(nèi)確定問題是否可以得到解決。其實質(zhì)上是要進(jìn)行一次大大壓縮簡化了的系統(tǒng)分析和設(shè)計過程,即以較抽象的方式在較高層次上進(jìn)行的系統(tǒng)分析和設(shè)計的過程。1.2.1 技術(shù)可行性分析技術(shù)可行性不僅要考慮使用現(xiàn)有的技術(shù)可否完成系統(tǒng)的開發(fā),而且還要考慮軟件和硬件的配置可否能夠滿足開發(fā)的需要等。本系統(tǒng)的開發(fā)是一個較具代表性的Java Web項目,采用Java程序語言,如今計算機硬件的配置已經(jīng)完全可以滿足開發(fā)過程的需求。從軟件方面來看,系統(tǒng)使用Java Web技術(shù)進(jìn)行開發(fā),前端界面使用的是DIV+CSS技術(shù),所需的軟件環(huán)境如下:JDK、MyEclipse、Web應(yīng)用服務(wù)器以及MySQL數(shù)據(jù)庫。這些軟件都已經(jīng)有了功能全面、穩(wěn)定的版本,故軟件的開發(fā)平臺成熟可行,它們不僅可靠性高而且穩(wěn)定,因此完全可以滿足系統(tǒng)的需求。1.2.2 經(jīng)濟可行性分析系統(tǒng)所需要的硬件環(huán)境,即計算機及其相關(guān)的硬件,從市場上可以很容易地購買到。所需軟件環(huán)境(JDK+MyEclipse+Tomcat+MySQL)可以從網(wǎng)上免費下載,從而降低了開發(fā)成本。本系統(tǒng)主要的開發(fā)與維護(hù)成本也不會造成太大的經(jīng)濟壓力。此系統(tǒng)正式投入使用后,學(xué)校的教學(xué)質(zhì)量能夠得到大幅度的提高,答疑工作也能更順利的開展,并且?guī)熒g的在線互動也可以更加方便地進(jìn)行。同時對于學(xué)校學(xué)生來說,有問題可以立即登入系統(tǒng)進(jìn)行提問,只要是該課程下的學(xué)生用戶都可以參與討論。對于教師來說,能夠很方便地查看學(xué)生提出的問題并回答,了解學(xué)生對知識的掌握程度,從而把握教學(xué)重點,這樣學(xué)校的教學(xué)質(zhì)量便得到了提高。1.2.3 操作可行性分析本系統(tǒng)主要是為了方便教師與學(xué)生之間的答疑工作的開展,提高學(xué)生的學(xué)習(xí)效率。學(xué)生將所學(xué)習(xí)課程的疑問通過系統(tǒng)呈現(xiàn)給教師,待教師解答后,可查看到問題回復(fù)。第二章 系統(tǒng)總體設(shè)計總體設(shè)計,也可以稱為概要設(shè)計或者初步設(shè)計,其基本目的便是回答“概括地說,應(yīng)當(dāng)如何實現(xiàn)系統(tǒng)”這個問題。經(jīng)過這個階段,將劃分出構(gòu)成系統(tǒng)的物理元素(數(shù)據(jù)庫、程序、文件、文檔和人工過程等),然而所有的物理元素依舊處于黑盒子級,這些黑盒子里的具體內(nèi)容將在之后進(jìn)行詳細(xì)的設(shè)計。總體設(shè)計階段的另外一項重要任務(wù)是確定系統(tǒng)中的每一個程序由哪些模塊構(gòu)成以及這些模塊相互之間的關(guān)系,即設(shè)計軟件的結(jié)構(gòu)。2.1 項目規(guī)劃總體規(guī)劃:在線答疑系統(tǒng)是一個非常典型的Java Web項目,它由系統(tǒng)前臺展示模塊和后臺數(shù)據(jù)管理模塊等兩大模塊構(gòu)成。前臺展示模塊主要提供身份登錄驗證,提出問題與回復(fù)、參與討論,查看課程和提問,申請課程和處理申請、修改資料以及添加/刪除學(xué)生等功能模塊。后臺管理模塊:該模塊主要進(jìn)行數(shù)據(jù)庫的管理和維護(hù),包含對學(xué)生和教師用戶的管理、課程的管理、提問和回復(fù)的管理、管理員用戶的管理等。2.2 系統(tǒng)總體結(jié)構(gòu)系統(tǒng)總體結(jié)構(gòu)是系統(tǒng)總體設(shè)計的核心部分,通過系統(tǒng)結(jié)構(gòu)圖可以很清楚地看出整個系統(tǒng)的結(jié)構(gòu)。根據(jù)各個結(jié)構(gòu)模塊分別進(jìn)行分析,從而為將來的設(shè)計和實現(xiàn)打下良好的基礎(chǔ)。根據(jù)前面對系統(tǒng)所做出的分析,本系統(tǒng)總體上包括3類用戶,即學(xué)生用戶、老師用戶和后臺管理員用戶。系統(tǒng)總體結(jié)構(gòu)如圖2.1所示。圖2.1 系統(tǒng)結(jié)構(gòu)圖2.3 系統(tǒng)功能模塊在線答疑系統(tǒng)依據(jù)用戶的類別共分成三個模塊:學(xué)生模塊、教師模塊和管理員模塊。2.3.1學(xué)生模塊功能定義表2.1 學(xué)生模塊功能列表功能名稱定義學(xué)生注冊用于注冊學(xué)生信息學(xué)生登錄用于學(xué)生登錄系統(tǒng)的身份驗證修改資料用于學(xué)生修改個人資料搜索課程用于學(xué)生搜索所有可提問的課程申請課程用于學(xué)生申請感興趣的課程提問問題用于學(xué)生提出對課程內(nèi)出現(xiàn)的疑問參與討論用戶學(xué)生之間針對問題進(jìn)行交流討論我的提問用于學(xué)生查看自己所提出問題的回復(fù)情況我的課程用于學(xué)生查看自己已經(jīng)申請的課程我的申請用于學(xué)生查看自己的申請?zhí)幚砬闆r退出學(xué)生退出系統(tǒng)登錄2.3.2 教師模塊功能定義表2.2 教師模塊功能列表功能名稱定義教師注冊用于注冊教師信息教師登錄用于教師登錄系統(tǒng)的身份驗證修改資料用于教師修改個人資料回答問題用于教師回答學(xué)生所提出的問題申請?zhí)幚碛糜诮處熖幚韺W(xué)生的課程申請?zhí)砑訉W(xué)生用于教師為自己的課程添加學(xué)生刪除學(xué)生用于教師刪除自己課程下的學(xué)生查看課程用于教師查看自己的課程退出教師退出系統(tǒng)登錄2.3.3 管理員功能模塊定義定義表2.3 管理員模塊功能列表功能名稱定義管理員登錄用于管理員登錄系統(tǒng)的身份驗證課程管理用于對課程信息進(jìn)行添加、修改和刪除提問管理用于問題信息的維護(hù),對過時答疑信息的刪除回復(fù)管理用于回復(fù)信息的維護(hù),對不良回復(fù)信息的刪除學(xué)生管理用于對學(xué)生用戶的信息進(jìn)行修改和刪除教師管理用于教師用戶信息的修改和刪除管理員管理用于管理用戶信息的修改、添加和刪除退出管理員退出系統(tǒng)登錄第三章 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫技術(shù)是管理信息資源的最佳方式。數(shù)據(jù)庫設(shè)計是針對一個特定的應(yīng)用環(huán)境構(gòu)造出最優(yōu)的數(shù)據(jù)庫模式來創(chuàng)建數(shù)據(jù)庫及其應(yīng)用系統(tǒng),從而實現(xiàn)對數(shù)據(jù)的有效存儲,以滿足用戶對信息和處理的要求。數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計將直接影響到應(yīng)用系統(tǒng)的效率和實現(xiàn)的效果。因此,合理的數(shù)據(jù)庫設(shè)計不但能夠提升數(shù)據(jù)存儲的效率,而且可以有效的確保數(shù)據(jù)的完整性和一致性。確定了系統(tǒng)需要開發(fā)的功能之后,接下來應(yīng)該進(jìn)行數(shù)據(jù)庫的設(shè)計工作,分析該系統(tǒng)的各個實體之間的關(guān)系,做好數(shù)據(jù)庫的設(shè)計對后期的開發(fā)有著非常重要的作用。3.1 數(shù)據(jù)庫分析由于本系統(tǒng)的規(guī)模不是很大,因此選用MySQL數(shù)據(jù)庫,該數(shù)據(jù)庫為開源免費產(chǎn)品,可以直接通過網(wǎng)上下載得到,從而大大節(jié)約了開發(fā)成本。MySQL數(shù)據(jù)庫是現(xiàn)今小型應(yīng)用開發(fā)中比較流行的數(shù)據(jù)庫,且從其5.0版本開始支持事務(wù),能夠確保數(shù)據(jù)的完整性和安全性。3.2 項目E-R圖在線答疑系統(tǒng)作為學(xué)生和老師之間針對于學(xué)生所提出的問題進(jìn)行溝通和交流的橋梁,所包含的實體有提問信息、回答信息、課程、用戶、申請信息和關(guān)系。下面將依次介紹各個實體所對應(yīng)的E-R圖。l 用戶的E-R圖主要包括用戶的編號、用戶名、密碼和電子郵件等信息,具體如圖3.1所示。圖3.1 用戶E-R圖l 課程實體包含課程名、課程編號和課程描述,具體如下圖3.2所示。圖3.2 課程E-R圖l 提問信息實體主要包括提問的編號、提問用戶的ID、提問標(biāo)題等信息,具體如圖3.3所示。圖3.3 提問信息E-R圖l 回復(fù)信息實體主要包括所回復(fù)問題的編號、回復(fù)標(biāo)題和內(nèi)容等信息,其E-R圖如圖3.4所示。圖3.4 回復(fù)信息E-R圖l 申請信息實體主要包含申請人編號、所申請課程編號、是否處理以及申請理由等的一些標(biāo)志信息,其E-R圖如圖3.5所示。圖3.5 申請信息E-R圖l 學(xué)生和課程之間存在學(xué)習(xí)的關(guān)系,該關(guān)系記錄了學(xué)生的ID和課程的ID信息,具體如圖3.6所示。圖3.6 關(guān)系信息E-R圖l 實體之間存在著一定的關(guān)系,如一個老師能教授多門課程,并且一門課程也能被多個學(xué)生學(xué)習(xí),具體關(guān)系如圖3.7所示。3.3 數(shù)據(jù)庫表的設(shè)計系統(tǒng)數(shù)據(jù)庫設(shè)計的好壞不僅對今后網(wǎng)站連接數(shù)據(jù)庫的速度有著非常重要的影響,而且也對查詢更新的復(fù)雜度有著非常重要的影響。本節(jié)介紹對本系統(tǒng)的數(shù)據(jù)庫表進(jìn)行的設(shè)計,是在完成系統(tǒng)功能分析的基礎(chǔ)上根據(jù)系統(tǒng)的需求目標(biāo)而進(jìn)行的設(shè)計。根據(jù)前面所介紹的實體所擁有的屬性以及實體之間的關(guān)系描述,下面將介紹數(shù)據(jù)庫中這些實體對應(yīng)的表的設(shè)計,分別是課程表、提問表、回復(fù)表、用戶表、申請表和關(guān)系表,具體設(shè)計如下所示。(1)用戶表:主要包含用戶名、用戶ID、登錄密碼、電子郵件和其它相關(guān)信息,表中各字段的詳細(xì)信息如下表3.1所示。表3.1 用戶信息表DY_User字段名稱數(shù)據(jù)類型字段大小是否主/外鍵字段說明備注UIDintN/A主鍵用戶編號非空UNamevarchar20否用戶名唯一且非空UPwdvarchar20否登錄密碼非空UGenderchar2否用戶性別無UEmailvarchar40否電子郵件無URoleintN/A否用戶角色默認(rèn)值UHeadvarchar50否圖像URL默認(rèn)值URegDatedateN/A否注冊日期無ULastLogindatetimeN/A否最后登錄時間無ULastEmitdatetimeN/A否最后發(fā)表時間無UPermitintN/A否用戶權(quán)限默認(rèn)值(2)課程信息表:包含課程名、課程ID以及課程描述信息,表中各字段的詳細(xì)信息如下表3.2所表3.2 課程信息表DY_Topic_Group字段名稱數(shù)據(jù)類型字段大小是否主/外鍵字段說明備注TGIDintN/A主鍵課程編號非空TGNamevarchar50否課程名非空TDetailvarchar200否課程描述非空(3)提問信息表:該表主要包括提問標(biāo)題、內(nèi)容和所屬課程等提問信息,表中各字段的詳細(xì)信息如下表3.3所示。表3.3 提問信息表DY_Topic字段名稱數(shù)據(jù)類型字段大小是否主/外鍵字段說明備注TIDintN/A主鍵提問編號非空UIDintN/A外鍵提問人ID無TGIDintN/A外鍵所屬課程ID無TTitlevarchar200否提問標(biāo)題非空TContenttextN/A否提問內(nèi)容非空TDatedatetimeN/A否提問時間非空TReadCountintN/A否閱讀次數(shù)默認(rèn)值(4)回復(fù)信息表:該表主要包含所回復(fù)問題ID、回復(fù)標(biāo)題、回復(fù)ID以及回復(fù)內(nèi)容等信息,各字段的詳細(xì)信息如下表3.4所示。表3.4 回復(fù)信息表DY_Revert字段名稱數(shù)據(jù)類型字段大小是否主/外鍵字段說明備注RIDintN/A主鍵回復(fù)編號非空TIDintN/A外鍵所回復(fù)提問ID無UIDintN/A外鍵回復(fù)人ID無RTitlevarchar200否回復(fù)標(biāo)題無RContenttextN/A否回復(fù)內(nèi)容非空RDatedatetimeN/A否回復(fù)時間非空(5)申請信息表:該表主要包含申請編號、申請人編號和所申請課程編號等,表中各字段的詳細(xì)信息如下表3.5所示。表3.5 申請信息表DY_Apply字段名稱數(shù)據(jù)類型字段大小是否主/外鍵字段說明備注AIDintN/A主鍵申請編號非空UIDintN/A外鍵申請人ID無TGIDintN/A外鍵所申請課程ID無AReasonvarchar200否申請理由非空AFlagintN/A否申請?zhí)幚順?biāo)志默認(rèn)值A(chǔ)Statuschar10否申請?zhí)幚頎顟B(tài)默認(rèn)值(6)用戶-課程關(guān)系表:用于記錄存在于用戶和課程之間的關(guān)系,包含用戶編號、課程編號和關(guān)系編號等信息,表中各字段的詳細(xì)信息如下表3.6所示。表3.6 用戶-課程關(guān)系表DY_TU字段名稱數(shù)據(jù)類型字段大小是否主/外鍵字段說明備注TUIDintN/A主鍵關(guān)系ID非空UIDintN/A外鍵用戶ID無TGIDintN/A外鍵課程ID無第四章 系統(tǒng)詳細(xì)設(shè)計與實現(xiàn)通過這一階段的工作進(jìn)行了詳細(xì)的設(shè)計,我們將會確切地描述所要開發(fā)的目標(biāo)系統(tǒng),其基本任務(wù)是要確定能夠具體地實現(xiàn)所要求的系統(tǒng)的方法途徑。4.1 界面設(shè)計對于任何系統(tǒng)來講,設(shè)計用戶界面都是相當(dāng)重要的。因為一個交互良好的界面不僅可以使瀏覽者對系統(tǒng)的印象更深刻,而且可以為與客戶進(jìn)行溝通提供方便。 本系統(tǒng)的界面使用JSP頁面來實現(xiàn),并采用DIV+CSS技術(shù)對界面進(jìn)行美化。在頁面的實現(xiàn)過程中,主要遵循了以下兩個原則:(1)統(tǒng)一連貫。頁面的整體風(fēng)格要與自己所要表達(dá)的內(nèi)容相符,本系統(tǒng)是在線答疑系統(tǒng),采用草綠色為界面的顏色基調(diào),能凸顯學(xué)生的活力和知識學(xué)習(xí)生機勃勃的景象。(2)布局合理、和諧。整個頁面要符合大眾人群的審美觀念。布局是一個頁面顯示的主體框架,一個設(shè)計良好的布局,能給用戶很好的使用效果和深刻的瀏覽記憶。本系統(tǒng)的主界面如下圖4.1所示。圖4.1 系統(tǒng)主界面4.2 系統(tǒng)分層的實現(xiàn)根據(jù)MVC設(shè)計思想,本系統(tǒng)以Struts2框架為控制器,用來管理各頁面?zhèn)鬟^來的請求,從而發(fā)給相應(yīng)的action處理;各JSP頁面作為動態(tài)頁面表示層來進(jìn)行顯示;DBUtil和各個Action等均作為Spring當(dāng)中的受管Bean。4.2.1 表現(xiàn)層的設(shè)計JSP技術(shù)能夠?qū)⑵胀o態(tài)的HTML技術(shù)和動態(tài)的HTML技術(shù)相結(jié)合起來進(jìn)行編碼。它具有運行效率高、跨平臺性等優(yōu)點。根據(jù)系統(tǒng)的分層情況,表示層選用的是JSP動態(tài)頁面技術(shù)。4.2.2 控制層的設(shè)計<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>控制層的采用的是Struts2框架。因為能夠使用Struts2的控件上傳文件,并且其攔截器機制也能夠?qū)μ囟ㄐ畔⑦M(jìn)行攔截。該系統(tǒng)中Struts2的工作原理體現(xiàn)如下:當(dāng)用戶從前臺JSP頁面選擇操作后,通過Struts2控制器轉(zhuǎn)發(fā)給相應(yīng)的action進(jìn)行處理,各action通過Spring的依賴注入的DBUtil來實現(xiàn)對數(shù)據(jù)庫的各項操作,最后將得到的數(shù)據(jù)傳到JSP頁面進(jìn)行顯示。本系統(tǒng)在項目結(jié)構(gòu)中WEB-INF文件夾下的web.xml文件中對Struts2進(jìn)行的配置如下:4.3 數(shù)據(jù)連接與操作的實現(xiàn)4.3.1 數(shù)據(jù)源的配置由于系統(tǒng)采用數(shù)據(jù)庫連接池技術(shù)訪問數(shù)據(jù)庫,所以在連接數(shù)據(jù)庫之前要對數(shù)據(jù)源進(jìn)行配置,本系統(tǒng)在項目結(jié)構(gòu)中WEB-INF文件夾下的web.xml文件中對其進(jìn)行的配置如下:<resource-ref><description>DB Connection</description><res-ref-name>jdbc/zxdy</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref> 4.3.2 數(shù)據(jù)庫操作的實現(xiàn)public class DBUtilprivate JdbcTemplate jt;/聲明JdbcTemplate對象引用private List rl = null;/聲明List對象引用private String sql = null;/聲明SQL字符串引用private DataSource ds;/聲明DataSource引用private DataSourceTransactionManager dtm;/聲明數(shù)據(jù)源事務(wù)管理類引用 private DefaultTransactionDefinition dtd; /聲明DefaultTransactionDefinition引用 public void setJt(JdbcTemplate jt)/jt成員的setter方法this.jt = jt;/設(shè)置jt屬性的值public void setDs(DataSource ds)this.ds=ds; /對數(shù)據(jù)庫進(jìn)行操作的各個方法本項目中的DBUtil類包含全部要用到的數(shù)據(jù)庫方法,需要將DBUtil類的資源注入到項目中開發(fā)的Action,并將Action配置成為Spring框架中的受管Bean。DBUtil類的具體實現(xiàn)代碼見附錄1,其大致結(jié)構(gòu)如下:4.4 各個功能模塊的設(shè)計與實現(xiàn)根據(jù)系統(tǒng)分析和系統(tǒng)的總體設(shè)計,基本確定了該系統(tǒng)所包含的模塊,下面具體介紹各個模塊的基本功能的設(shè)計與實現(xiàn)。4.4.1 用戶登錄和注冊依據(jù)系統(tǒng)分析和功能的需求,用戶在沒有登錄的情形下,除了對系統(tǒng)首頁進(jìn)行瀏覽外無法執(zhí)行其它操作。只有在登陸成功的情況下,才能夠發(fā)表疑問和回復(fù)并執(zhí)行其它操作。學(xué)生和老師用戶通過系統(tǒng)首頁登錄系統(tǒng),而管理員則通過后臺登錄界面進(jìn)入系統(tǒng)。在利用Struts2框架進(jìn)行開發(fā)的過程中,有時一個動作要與一個Action對應(yīng),可是這些Action中有些屬性或方法是通用的,倘若在每一個Action里面反復(fù)書寫相同的屬性或方法就會導(dǎo)致代碼看起來不僅冗長并且枯燥。因此,首先要定義一個可以讓之后的所有Action繼承的一個包含通用屬性和方法的基類Action,即BaseAction類。其具體實現(xiàn)類是DYBaseAction,DYBaseAction類的主要源代碼如下。public class DYBaseAction extends ActionSupport public String execute()throws Exception String result = SUCCESS; if("logout".equals(actionStr) String role = (String)getSession().get("role"); getSession().clear(); System.out.println("role:="+role); if("0".equals(role)|"1".equals(role) url = "IndexAction.action" message = "退出成功,現(xiàn)在將跳轉(zhuǎn)到主頁" else url = "adminLogin.jsp" message = "退出成功,現(xiàn)在將要跳轉(zhuǎn)到登陸頁" result = LOGIN; return result;(1)用戶注冊 用戶通過系統(tǒng)首頁進(jìn)入注冊頁面, 因為注冊的用戶有很多,本模塊使用了Ajax技術(shù),在客戶端還未提交注冊表之前可以對信息進(jìn)行驗證,倘若注冊信息不符合要求則禁止提交,這樣不但使得網(wǎng)絡(luò)流量在很大程度上得到減少,而且也使得服務(wù)器的負(fù)擔(dān)得到極大的減輕。采用Ajax技術(shù)向服務(wù)器發(fā)送異步請求,在創(chuàng)建好XmlHttpRequest對象后要獲取用戶注冊時所填寫的用戶名,而后再把驗證請求發(fā)送到服務(wù)器端。(2)用戶登錄l 學(xué)生和老師用戶通過系統(tǒng)主頁登錄。l 管理員通過后臺的登錄頁面進(jìn)入系統(tǒng)。4.4.2 學(xué)生用戶模塊學(xué)生用戶成功登錄系統(tǒng)后,主頁面顯示了所有的課程列表,學(xué)生可以搜索課程并查看自己課程下的所有提問,但無法查看未申請課程的提問。學(xué)生用戶主界面顯示了全部課程,實現(xiàn)了分頁功能,項目中的FenYeAction類是所要用到的全部分頁類的基類,單擊用戶名,可以進(jìn)入學(xué)生的個人控制頁面。4.4.3 教師用戶模塊教師用戶成功登錄系統(tǒng)后,主頁面顯示了自己的課程列表,具體頁面與學(xué)生用戶主頁面類似,單擊用戶名,可以進(jìn)入教師的個人控制頁面4.4.4 管理員模塊管理員分為普通管理員和超級管理員,普通管理與與超級管理員相比只是少了對管理員進(jìn)行管理的權(quán)限。接下來以超級管理員為例來描述管理員模塊的詳細(xì)設(shè)計與實現(xiàn)。管理員成功登錄系統(tǒng)后進(jìn)入系統(tǒng)的在線管理中心第五章 系統(tǒng)測試5.1 測試目的軟件測試的不但要對軟件是否完成了你所期望的那些事情進(jìn)行確認(rèn),還要對軟件是否使用了正確的方式來完成這個事情進(jìn)行確認(rèn),其目的之一便是確認(rèn)軟件質(zhì)量。軟件測試不但要測試軟件產(chǎn)品自身,同時也包含對軟件開發(fā)過程的測試。本系統(tǒng)在開發(fā)過程中通過了各項測試,測試工作與編碼工作同時進(jìn)行,每完成一個功能的我都做了相關(guān)的測試工作,并且一一通過。在測試過程中,會發(fā)現(xiàn)系統(tǒng)的不少問題,但是通過翻閱資料、上網(wǎng)查詢以及向同學(xué)請教,成功地解決了測試中發(fā)現(xiàn)的問題。在系統(tǒng)開發(fā)的過程中不出現(xiàn)錯誤是不正常也是不可能的,通過這個項目的開發(fā),我深刻體會到測試的重要性。下面我將對開發(fā)過程中的關(guān)鍵部分進(jìn)行闡述。5.2 系統(tǒng)關(guān)鍵部分測試分析5.2.1 注冊用戶名唯一性驗證本系統(tǒng)使用Ajax技術(shù)向服務(wù)器發(fā)送異步請求來進(jìn)行驗證,當(dāng)輸入焦點離開用戶名輸入框時便自動觸發(fā)注冊用戶名的唯一性驗證請求5.2.2 分頁的實現(xiàn)系統(tǒng)中的很多頁面都要實現(xiàn)分頁的效果,因此在項目中開發(fā)了一個所有分頁類的基類Action來實現(xiàn)分頁5.2.3 利用攔截器實現(xiàn)權(quán)限控制public class MyInterceptor extends AbstractInterceptor Override public String intercept(ActionInvocation invocation) throws Exception Map session = ActionContext.getContext().getSession();/得到session String result = "LOGIN"/返回結(jié)果字符串 if(session.get("uid")!=null)/如果從session里得到的uid不為null return invocation.invoke();/調(diào)用下一個Action得到返回結(jié)果并返回 return result;/返回結(jié)果result經(jīng)過前面的分析得到,如果用戶沒有登錄該在線答疑系統(tǒng),是不允許進(jìn)入提問列表和提問詳情頁面的,項目利用Struts2的攔截器編寫了自己的攔截器,很方便地實現(xiàn)了用戶權(quán)限控制。具體實現(xiàn)代碼如下。該攔截器類作為AbstractInterceptor類的子類重寫了基類的intercept方法以判別用戶是不是登錄了,倘若是則接著調(diào)用下一個Action,否則返回一個LOGIN視圖來提<package name="zxdyQT" extends="struts-default"> <interceptors><interceptor name="mi" class="hnust.MyInterceptor"/> <interceptor-stack name="zxdydefault"><interceptor-ref name="defaultStack"/><interceptor-ref name="mi"/></interceptor-stack></interceptors><default-interceptor-ref name="zxdydefault"/><global-results><result name="LOGIN">/login.jsp</result></global-results><package/>上述的struts配置文件配置了一個自定義的攔截器mi,并將其和系統(tǒng)默認(rèn)的攔截器一起組織成一個攔截器棧,而后再將這個攔截器棧配置成該包的默認(rèn)攔截器,最后定義了一個LOGIN的全局視圖,一旦該包里的Action返回的是LOGIN視圖就跳轉(zhuǎn)到登錄頁面。醒用戶還未登錄。在struts.xml中對其進(jìn)行的配置如下。第六章 開發(fā)計劃6.1 成本計劃 購買計算機4臺:2萬;購買開發(fā)工具:2000;購買域名:2000;開發(fā)調(diào)研費用:2000。合計:26000元人民幣。6.2 進(jìn)度計劃 其開發(fā)進(jìn)度如圖6.1所示 圖6.1 開發(fā)進(jìn)度甘特圖6.3 風(fēng)險計劃(一)技術(shù)風(fēng)險 目前開發(fā)人員大部分都是在校大學(xué)生,學(xué)的東西跟不上外面的,技術(shù)不是很先進(jìn)(二)資金風(fēng)險在開發(fā)階段,所需資金不能及時下?lián)?,在后期的推廣階段,項目的投資面臨一定的資金困難。

注意事項

本文(軟件工程-課程設(shè)計(在線答疑系統(tǒng)))為本站會員(小***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!