版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、畢 業(yè) 論 文 題 目 基于javaee的畢業(yè)設(shè)計(jì)選題測(cè)試及管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 英文題目 designment and implementation of testing and management system in graduation design topics selection based on javaee 畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明和使用授權(quán)說(shuō)明原創(chuàng)性聲明本人鄭重承諾:所呈交的畢業(yè)設(shè)計(jì)(論文),是我個(gè)人在指導(dǎo)教師的指導(dǎo)下進(jìn)行的研究工作及取得的成果。盡我所知,除文中特別加以標(biāo)注和致謝的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過(guò)的研究成果,也不包含我為獲得 及其它教育機(jī)構(gòu)的學(xué)位或
2、學(xué)歷而使用過(guò)的材料。對(duì)本研究提供過(guò)幫助和做出過(guò)貢獻(xiàn)的個(gè)人或集體,均已在文中作了明確的說(shuō)明并表示了謝意。作 者 簽 名: 日 期: 指導(dǎo)教師簽名: 日期: 使用授權(quán)說(shuō)明本人完全了解 大學(xué)關(guān)于收集、保存、使用畢業(yè)設(shè)計(jì)(論文)的規(guī)定,即:按照學(xué)校要求提交畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版本;學(xué)校有權(quán)保存畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù);學(xué)??梢圆捎糜坝?、縮印、數(shù)字化或其它復(fù)制手段保存論文;在不以贏利為目的前提下,學(xué)校可以公布論文的部分或全部?jī)?nèi)容。作者簽名: 日 期: 學(xué)位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以
3、標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫(xiě)的成果作品。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律后果由本人承擔(dān)。作者簽名: 日期: 年 月 日學(xué)位論文版權(quán)使用授權(quán)書(shū)本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國(guó)家有關(guān)部門(mén)或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán) 大學(xué)可以將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫(kù)進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。涉密論文按學(xué)校規(guī)定處理。作者簽名:日期: 年 月 日導(dǎo)師簽名: 日期: 年 月 日注 意 事 項(xiàng)1.設(shè)計(jì)
4、(論文)的內(nèi)容包括:1)封面(按教務(wù)處制定的標(biāo)準(zhǔn)封面格式制作)2)原創(chuàng)性聲明3)中文摘要(300字左右)、關(guān)鍵詞4)外文摘要、關(guān)鍵詞 5)目次頁(yè)(附件不統(tǒng)一編入)6)論文主體部分:引言(或緒論)、正文、結(jié)論7)參考文獻(xiàn)8)致謝9)附錄(對(duì)論文支持必要時(shí))2.論文字?jǐn)?shù)要求:理工類(lèi)設(shè)計(jì)(論文)正文字?jǐn)?shù)不少于1萬(wàn)字(不包括圖紙、程序清單等),文科類(lèi)論文正文字?jǐn)?shù)不少于1.2萬(wàn)字。3.附件包括:任務(wù)書(shū)、開(kāi)題報(bào)告、外文譯文、譯文原文(復(fù)印件)。4.文字、圖表要求:1)文字通順,語(yǔ)言流暢,書(shū)寫(xiě)字跡工整,打印字體及大小符合要求,無(wú)錯(cuò)別字,不準(zhǔn)請(qǐng)他人代寫(xiě)2)工程設(shè)計(jì)類(lèi)題目的圖紙,要求部分用尺規(guī)繪制,部分用計(jì)算機(jī)
5、繪制,所有圖紙應(yīng)符合國(guó)家技術(shù)標(biāo)準(zhǔn)規(guī)范。圖表整潔,布局合理,文字注釋必須使用工程字書(shū)寫(xiě),不準(zhǔn)用徒手畫(huà)3)畢業(yè)論文須用a4單面打印,論文50頁(yè)以上的雙面打印4)圖表應(yīng)繪制于無(wú)格子的頁(yè)面上5)軟件工程類(lèi)課題應(yīng)有程序清單,并提供電子文檔5.裝訂順序1)設(shè)計(jì)(論文)2)附件:按照任務(wù)書(shū)、開(kāi)題報(bào)告、外文譯文、譯文原文(復(fù)印件)次序裝訂3)其它摘 要基于javaee的畢業(yè)設(shè)計(jì)選題測(cè)試及管理系統(tǒng)通過(guò)在畢業(yè)設(shè)計(jì)選題之前的測(cè)試來(lái)判斷學(xué)生能力,指導(dǎo)學(xué)生選擇自己優(yōu)勢(shì)方向來(lái)選擇題目,幫助畢業(yè)生正確選題。系統(tǒng)提供給學(xué)生有在線測(cè)試、查看評(píng)測(cè)結(jié)果、查看評(píng)測(cè)報(bào)告、推薦導(dǎo)師和課題、提交論文、下載論文等功能。系統(tǒng)提供給老師管理課題
6、、查看學(xué)生測(cè)試結(jié)果、分配課題、查看學(xué)生論文、上傳批閱的論文等功能。系統(tǒng)提供給系統(tǒng)管理員有管理用戶(hù)信息、管理題庫(kù)等功能。系統(tǒng)采用的struts架構(gòu)是對(duì)mvc設(shè)計(jì)模式的一種實(shí)現(xiàn),它繼承了mvc設(shè)計(jì)模式的所有特性,組件的模塊化、重用性、靈活性使得開(kāi)發(fā)更加快捷,管理和維護(hù)更加方便。學(xué)生測(cè)試后可以更了解自己的專(zhuān)業(yè)水平,通過(guò)系統(tǒng)推薦的導(dǎo)師和課題,協(xié)助學(xué)生選擇導(dǎo)師。導(dǎo)師可以通過(guò)系統(tǒng)更全面的了解學(xué)生的各方面能力同時(shí)選擇學(xué)生。在學(xué)生與導(dǎo)師雙向選定后對(duì)學(xué)生論文的進(jìn)度跟進(jìn),論文批改工作方面也起到了一定的協(xié)助作用。關(guān)鍵詞:框架,選題測(cè)試,論文管理abstractbased on javaee testing and
7、management system in graduation design topics selection can determine the ability of the students according to the testing result. the system can guide the students according to their own advantages to choose a topic, and help to evaluate them and select topic correctly. the system provides students
8、 with online testing, show evaluation results, show testing scores, recommend tutors and thesis, upload paper, and download paper and some other functions. the system provides teachers to submit topic, search student testing scores, distribute thesis, download students paper, and upload students pap
9、er. as system administrator can manage all the users information and manage all the questions information. struts framework is a realization of mvc design pattern. it inherited all the characteristics of mvc design pattern. its modularity, reusability, flexibility make the process of development mor
10、e efficient and convenient.after testing, students can better understand their professional level. through the recommendation by the system, students can select their tutors better; tutors can have a more comprehensive understanding of all aspects of students ability. the system also has assistant f
11、unction in following the track of papers writing and in correcting the papers. keywords: framework, topics testing, paper management 目 錄摘 要iabstractii1 概述1.1 課題意義(1)1.2 課題目標(biāo)(1)1.3 論文結(jié)構(gòu)簡(jiǎn)介(1)1.4 小結(jié)(2)2 技術(shù)介紹和分析2.1 struts簡(jiǎn)介(3)2.2 mysql簡(jiǎn)介(3)2.3 myeclipse簡(jiǎn)介(4)2.4 rational rose簡(jiǎn)介(5)2.5 小結(jié)(5)3 系統(tǒng)需求分析3.1 系統(tǒng)概
12、述(7)3.2 系統(tǒng)功能分析(7)3.3 系統(tǒng)用例建模(8)3.4 小結(jié)(14)4 系統(tǒng)設(shè)計(jì)4.1 設(shè)計(jì)目標(biāo)及原則(15)4.2 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)(16)4.3 表示層web設(shè)計(jì)(17)4.4 業(yè)務(wù)邏輯層設(shè)計(jì)(19)4.5 數(shù)據(jù)訪問(wèn)層dao設(shè)計(jì)(20)4.6 小結(jié)(22)5 系統(tǒng)實(shí)現(xiàn)5.1 選題測(cè)試模塊的實(shí)現(xiàn)(23)5.2 預(yù)選導(dǎo)師模塊的實(shí)現(xiàn)(31)5.3 開(kāi)發(fā)環(huán)境介紹(34)5.4 小結(jié)(34)6 系統(tǒng)測(cè)試6.1 單元測(cè)試(35)6.2 功能測(cè)試(37)6.3 集成測(cè)試(38)6.4 小結(jié)(42)致 謝(43)參考文獻(xiàn)(44) 1 概述1.1 課題意義畢業(yè)設(shè)計(jì)是對(duì)大學(xué)生們?cè)诖髮W(xué)期間所學(xué)的所有知
13、識(shí)的掌握程度進(jìn)行考核?,F(xiàn)在很多學(xué)生對(duì)大學(xué)學(xué)習(xí)的知識(shí)沒(méi)有進(jìn)行過(guò)系統(tǒng)的應(yīng)用和總結(jié),不了解自己總體的水平、優(yōu)勢(shì)和劣勢(shì)。導(dǎo)師與學(xué)生之間的交流還停留在紙質(zhì)論文交流的方式,效率較低1。由于不少學(xué)生正式選題時(shí)不了解有哪些導(dǎo)師的研究方向適合自己,造成選題盲目甚至做出來(lái)的畢業(yè)設(shè)計(jì)不符合要求等現(xiàn)象。出題的教師出題前也沒(méi)有渠道來(lái)充分了解學(xué)生具體情況,設(shè)置的選題可能無(wú)法體現(xiàn)學(xué)生的技能水平。學(xué)生在制作畢業(yè)設(shè)計(jì)期間與老師要進(jìn)行頻繁的交流,特別是在畢業(yè)論文的修改、提交、審核、評(píng)閱、意見(jiàn)反饋,畢業(yè)設(shè)計(jì)制作進(jìn)度的監(jiān)督、系統(tǒng)質(zhì)量的監(jiān)督方面。本系統(tǒng)就是為了方便學(xué)生科學(xué)的了解自己的專(zhuān)業(yè)技能水平,根據(jù)自己有優(yōu)勢(shì)的方面選擇畢業(yè)設(shè)計(jì),方便
14、導(dǎo)師與學(xué)生之間的交流和學(xué)生順利完成畢業(yè)設(shè)計(jì)而提出來(lái)的采用當(dāng)前流行架構(gòu)和技術(shù)完成的系統(tǒng)。1.2 課題目標(biāo)通過(guò)本課題的研究和課題系統(tǒng)的實(shí)現(xiàn),可以讓學(xué)生以學(xué)生身份登錄,通過(guò)學(xué)生的在線測(cè)試系統(tǒng)將提供測(cè)試結(jié)果,根據(jù)測(cè)試結(jié)果再提供給學(xué)生選題建議,如適合選擇的課題和導(dǎo)師。撰寫(xiě)論文期間可以上傳寫(xiě)好的論文和下載導(dǎo)師批改過(guò)的論文,導(dǎo)師可以以教師身份登錄,給每個(gè)選題填寫(xiě)題目要求和對(duì)學(xué)生的期望要求,可以查看學(xué)生的評(píng)測(cè)結(jié)果,對(duì)所帶的學(xué)生提交的論文可以下載下來(lái)進(jìn)行審閱,并提交到系統(tǒng)供學(xué)生查看。管理員通過(guò)該系統(tǒng)對(duì)所以系統(tǒng)用戶(hù)進(jìn)行管理,對(duì)題庫(kù)進(jìn)行管理。最終系統(tǒng)能幫助學(xué)生選題和教師出題,以及畢業(yè)論文高效設(shè)計(jì)和制作,搭建教師與學(xué)
15、生的有效交流平臺(tái)。1.3 論文結(jié)構(gòu)簡(jiǎn)介系統(tǒng)是根據(jù)軟件工程中軟件開(kāi)發(fā)過(guò)程來(lái)制作的,首先進(jìn)行的是可行性研究,需求分析,總體結(jié)構(gòu)設(shè)計(jì),詳細(xì)設(shè)計(jì),編碼實(shí)現(xiàn),系統(tǒng)測(cè)試,最后是系統(tǒng)維護(hù)2。根據(jù)這個(gè)過(guò)程來(lái)組織論文的結(jié)構(gòu)如下:(1)概述:主要敘述課題研究對(duì)用戶(hù)的意義,介紹最終系統(tǒng)應(yīng)該完成的功能和達(dá)到的效果。(2)技術(shù)介紹和分析:對(duì)系統(tǒng)所用的技術(shù)和工具作比較和介紹,闡述使用各項(xiàng)技術(shù)和工具的優(yōu)勢(shì)。(3)需求分析:根據(jù)實(shí)際的應(yīng)用和用戶(hù)需求概述得到開(kāi)發(fā)的系統(tǒng)的需求,通過(guò)對(duì)角色的分析得到系統(tǒng)使用對(duì)象的特點(diǎn)和功能需求。根據(jù)用戶(hù)之間的關(guān)系為系統(tǒng)內(nèi)部邏輯的設(shè)計(jì)和數(shù)據(jù)庫(kù)的設(shè)計(jì)提供參考。(4)系統(tǒng)設(shè)計(jì):根據(jù)系統(tǒng)需求設(shè)計(jì)系統(tǒng)總體的
16、架構(gòu)和數(shù)據(jù)庫(kù)。并解析javaee技術(shù)在各層之間的具體應(yīng)用。(5)系統(tǒng)實(shí)現(xiàn):根據(jù)系統(tǒng)設(shè)計(jì),闡述系統(tǒng)功能實(shí)現(xiàn)過(guò)程、數(shù)據(jù)庫(kù)創(chuàng)建過(guò)程、前后臺(tái)工作過(guò)程。通過(guò)對(duì)學(xué)生選題測(cè)試功能中struts架構(gòu)的運(yùn)作過(guò)程來(lái)更具體的闡述實(shí)現(xiàn)過(guò)程。(6)系統(tǒng)測(cè)試與維護(hù):通過(guò)測(cè)試工具的使用,測(cè)試系統(tǒng)是否符合用戶(hù)需求。通過(guò)測(cè)試完善系統(tǒng),改進(jìn)系統(tǒng),改正系統(tǒng)中存在的隱含的缺陷。1.4 小結(jié)通過(guò)本節(jié)的介紹,使得對(duì)系統(tǒng)的制作的意義和目的進(jìn)一步細(xì)化。堅(jiān)定了實(shí)現(xiàn)系統(tǒng)的決心,并對(duì)完成系統(tǒng)有了總體的把握。2 技術(shù)介紹和分析2.1 struts簡(jiǎn)介struts框架是一種流行的mvc框架,它是對(duì)mvc的實(shí)現(xiàn)3,將servlet和jsp標(biāo)記作為實(shí)現(xiàn)的
17、一部分。struts最早是作為apache基金會(huì)jakarta項(xiàng)目組的組成部分open source項(xiàng)目,項(xiàng)目的創(chuàng)立者希望通過(guò)對(duì)該項(xiàng)目的研究,改進(jìn)和提高javaserver pages 、servlet、標(biāo)簽庫(kù)以及面向?qū)ο蟮募夹g(shù)水準(zhǔn)4。struts采用mvc模式,能夠很好的幫助java開(kāi)發(fā)者利用javaee開(kāi)發(fā)web應(yīng)用。struts的使用能夠很好的幫助開(kāi)發(fā)團(tuán)隊(duì)減少在運(yùn)用mvc設(shè)計(jì)模型來(lái)開(kāi)發(fā)web應(yīng)用的時(shí)間。它的優(yōu)勢(shì)主要集中在:(1)是一款開(kāi)源軟件,開(kāi)發(fā)者可以深入了解其內(nèi)部實(shí)現(xiàn)機(jī)制,各種開(kāi)發(fā)要用的jar包可以通過(guò)網(wǎng)絡(luò)下載到本地,非常便捷。(2)有自己的標(biāo)記庫(kù)即taglib,一方面使得jsp頁(yè)面
18、盡可能少的嵌入java腳本,不必考慮java語(yǔ)法或其他jsp語(yǔ)法專(zhuān)注于頁(yè)面的可視特征上。另一方面給應(yīng)用開(kāi)發(fā)者很強(qiáng)的后臺(tái)支持。(3)頁(yè)面導(dǎo)航功能,通過(guò)一個(gè)配置文件struts.xml來(lái)控制整個(gè)系統(tǒng)各部分之間的聯(lián)系,對(duì)各個(gè)頁(yè)面的請(qǐng)求進(jìn)行分發(fā)。對(duì)后期的系統(tǒng)維護(hù)提供了很大的便利,對(duì)系統(tǒng)的脈絡(luò)也更加清晰。struts在實(shí)現(xiàn)mvc模型時(shí),模型層是將模型分為系統(tǒng)的內(nèi)部狀態(tài)和事物邏輯兩個(gè)部分,內(nèi)部狀態(tài)通常由一組actionform javabean表示,大型應(yīng)用程序的事物邏輯封裝在方法內(nèi)部,小型應(yīng)用程序則可能內(nèi)嵌在action類(lèi)中。視圖層采用jsp實(shí)現(xiàn)5,應(yīng)用struts的標(biāo)簽庫(kù)。控制層用的是繼承自actio
19、nsupport的action類(lèi),實(shí)際操作中是在struts.xml配置文件中進(jìn)行action映射。2.2 mysql簡(jiǎn)介mysql是目前非常流行的sql語(yǔ)言數(shù)據(jù)庫(kù),是開(kāi)放源代碼的非商用的關(guān)系型數(shù)據(jù)庫(kù)6。由于其開(kāi)源性使得當(dāng)前很多系統(tǒng)都使用mysql數(shù)據(jù)庫(kù)。雖然是免費(fèi)的但是與同類(lèi)商業(yè)用途的數(shù)據(jù)庫(kù)比并不遜色。其主要特性有:(1)數(shù)據(jù)的物理存儲(chǔ)和存取路徑對(duì)用戶(hù)是不透明的,這樣也減少了用戶(hù)的使用難度。對(duì)數(shù)據(jù)庫(kù)不是十分了解的用戶(hù)使用起來(lái)比較簡(jiǎn)單;(2)不僅在windows操作系統(tǒng)還可以在linux、unix、sun os等操作系統(tǒng)上使用;(3)mysql提供了不同的數(shù)據(jù)類(lèi)型供選擇,支持所有的sql數(shù)值類(lèi)
20、型。根據(jù)數(shù)據(jù)結(jié)構(gòu)可以選擇不同格式和大小的數(shù)據(jù)類(lèi)型,使得磁盤(pán)空間更加節(jié)省,數(shù)據(jù)庫(kù)的性能的到提高。如:char提供的是定長(zhǎng)的數(shù)據(jù)存儲(chǔ)類(lèi)型使得檢索該類(lèi)型的數(shù)據(jù)比較快,varchar類(lèi)型的數(shù)據(jù)可以保存變長(zhǎng)的字符串,通過(guò)設(shè)置其最大可存儲(chǔ)的數(shù)據(jù)的長(zhǎng)度可以在不知道數(shù)據(jù)長(zhǎng)度的情況下存儲(chǔ)任何小于該最大長(zhǎng)度的字符串;(4)查詢(xún)功能很強(qiáng)大,支持select和where語(yǔ)句的count()、avg()、min()、sum()函數(shù)和order by等命令,使得檢索時(shí)可以進(jìn)行一些運(yùn)算,對(duì)檢索出來(lái)的結(jié)果可以進(jìn)行一些處理;(5)支持多個(gè)用戶(hù)對(duì)數(shù)據(jù)庫(kù)的同時(shí)訪問(wèn)。與另一個(gè)比較常用的access數(shù)據(jù)庫(kù)比較,access只能運(yùn)行在w
21、indows操作系統(tǒng),主要應(yīng)用于小型的系統(tǒng)7。access數(shù)據(jù)庫(kù)適合數(shù)據(jù)量小的數(shù)據(jù)存儲(chǔ),但數(shù)據(jù)量太大時(shí)會(huì)造成服務(wù)器死機(jī)有時(shí)甚至服務(wù)器崩潰。本系統(tǒng)是面向信息學(xué)院所有學(xué)生和教師的,要存儲(chǔ)學(xué)生信息和教師信息以及題庫(kù)信息,不適合使用access數(shù)據(jù)庫(kù)。而開(kāi)發(fā)的系統(tǒng)對(duì)數(shù)據(jù)的查詢(xún)和速度要求比較大,所以使用mysql數(shù)據(jù)庫(kù)更加適合本系統(tǒng)。2.3 myeclipse簡(jiǎn)介myeclipse是企業(yè)級(jí)工作平臺(tái)是對(duì)eclipse ide的擴(kuò)展,它是功能非常豐富的javaee的集成開(kāi)發(fā)環(huán)境8。在myeclipse下可以對(duì)系統(tǒng)進(jìn)行編碼、調(diào)試、測(cè)試和發(fā)布,另外支持html的所有標(biāo)記。在使用myeclipse時(shí)對(duì)代碼能進(jìn)行提
22、示功能,并且對(duì)語(yǔ)法的錯(cuò)誤能提示和定位錯(cuò)誤。對(duì)于一些代碼如javabean中的get和set方法可以自動(dòng)生成相應(yīng)的代碼,節(jié)省了工作量。myeclipse就是eclipse的插件,它結(jié)構(gòu)上是模塊化得,在不影響其他模塊的情況下可以對(duì)任一模塊單褲升級(jí)和擴(kuò)展。系統(tǒng)開(kāi)發(fā)時(shí)使用的是myeclipse 8.0版本,從myeclipse 5.0版本就增加了uml雙向建模工具、可視化的hibernate/orm工具、web services支持和oracle數(shù)據(jù)庫(kù)開(kāi)發(fā)等。之后出現(xiàn)了myeclipse6.xga版本,它兼容了eclipse 3.3,可在windows,linux等操作系統(tǒng)上運(yùn)行,并且支持java持久
23、化結(jié)構(gòu)開(kāi)發(fā),能夠?qū)?xiàng)目自動(dòng)部署和啟動(dòng)服務(wù),另外還集成了myeclipse tomcat 6服務(wù)器。隨后又出現(xiàn)了myeclipse 7.0和8.0版本,7.9版本已經(jīng)不需要配置tomcat,只需安裝好myeclipse7.0即可,而8.0版本新增了對(duì)struts2的支持。2.4 rational rose簡(jiǎn)介rational rose是由美國(guó)的rational公司開(kāi)發(fā)的一種面向?qū)ο蟮目梢暬9ぞ?。利用rational rose可以建立用uml(統(tǒng)一建模語(yǔ)言)描述的軟件系統(tǒng)模型,而且可以自動(dòng)生成和維護(hù)c+、java、visual basic和oracle等語(yǔ)言和系統(tǒng)的代碼。rational ro
24、se包括了統(tǒng)一建模語(yǔ)言(uml)、面向?qū)ο蟮能浖こ蹋╫ose)及對(duì)象建模技術(shù)(omt)9。rational可以運(yùn)行在windows操作系統(tǒng)下,其主要的特點(diǎn)有:(1)保證模型和代碼高度一致,它實(shí)現(xiàn)了正向和逆向和雙向工程。它可以更具模型生成代碼,也可根據(jù)軟件系統(tǒng)導(dǎo)出系統(tǒng)的模型;(2)支持多種語(yǔ)言,rational rose支持包括c+、visual c+、java等語(yǔ)言,為rational rose用戶(hù)提供了便利;(3)為團(tuán)隊(duì)開(kāi)發(fā)提供強(qiáng)有力的支持,它提供了蔡榮scm(軟件配置管理)的團(tuán)隊(duì)開(kāi)發(fā)方式和沒(méi)有scm下的團(tuán)隊(duì)開(kāi)發(fā)方式,用戶(hù)可以根據(jù)具體項(xiàng)目規(guī)模和資源選擇;(4)支持模型的internet發(fā)布
25、,rose中有internet web publisher能將模型發(fā)布為html版本,使得其他人員可以通過(guò)ie等瀏覽器瀏覽模型;(5)生成使用簡(jiǎn)單且定制靈活的文檔,rose中的文檔生成工具soda可以提供模型文檔模板,可以自動(dòng)生成word格式的文檔;(6)支持關(guān)系型數(shù)據(jù)庫(kù)的建模,rose能為sql server、oracle等支持標(biāo)準(zhǔn)ddl的數(shù)據(jù)庫(kù)自動(dòng)生成數(shù)據(jù)描述語(yǔ)言。2.5 小結(jié)在選擇開(kāi)發(fā)和設(shè)計(jì)使用的工具時(shí)并不是選擇最好的而選擇的是比較適合本系統(tǒng)的工具。struts使得開(kāi)發(fā)的項(xiàng)目層次分明,便于管理。myeclipse的高度集成性使得與其它軟件的合作性比較好。rational rose在建立系
26、統(tǒng)模型過(guò)中起到了非常重要的作用。3 系統(tǒng)需求分析系統(tǒng)需求分析是在需求獲取結(jié)束之后進(jìn)行的,主要是根據(jù)獲取的需求提煉、分析和仔細(xì)審查收集到的需求,以確保項(xiàng)目參與者都明白其含義并分析每個(gè)需求與其他需求的關(guān)系,找出其中的錯(cuò)誤、遺漏、重疊、不一致或其他不足的地方10。通過(guò)分析得到系統(tǒng)可以實(shí)現(xiàn)的范圍和實(shí)現(xiàn)能力,根據(jù)用戶(hù)的需求對(duì)需求進(jìn)行排序。系統(tǒng)需求分析的目的在與開(kāi)發(fā)出高質(zhì)量和具體的需求,為軟件設(shè)計(jì)和實(shí)現(xiàn)提供依據(jù)。3.1 系統(tǒng)概述基于javaee的畢業(yè)設(shè)計(jì)選題測(cè)試及管理系統(tǒng)要求學(xué)生在設(shè)計(jì)選題前參加平臺(tái)提供的測(cè)試了解自己的專(zhuān)業(yè)知識(shí)掌握能力和動(dòng)手能力,以便選題。同時(shí)也為教師了解學(xué)生具體情況提供參考,確保畢業(yè)論文
27、(設(shè)計(jì))選題工作的順利開(kāi)展。此外系統(tǒng)也要解決畢業(yè)設(shè)計(jì)的相關(guān)管理業(yè)務(wù)功能,包括學(xué)生與教師在畢業(yè)設(shè)計(jì)制作期間的論文交流功能。為了保證系統(tǒng)能發(fā)揮其作用,系統(tǒng)管理員要把所有學(xué)生和教師信息和測(cè)試用題庫(kù)按照數(shù)據(jù)庫(kù)相應(yīng)的表的要求存入數(shù)據(jù)庫(kù)中,導(dǎo)師在學(xué)生測(cè)試之前應(yīng)該提供所有可選的課題和課題建議和每個(gè)課題特別要求哪些課程信息到系統(tǒng)。系統(tǒng)的功能應(yīng)該包括所有用戶(hù)的合法登陸,系統(tǒng)根據(jù)學(xué)生所在專(zhuān)業(yè)設(shè)置的課程出題,從學(xué)生的測(cè)試結(jié)果來(lái)判斷和推薦適合該學(xué)生做的課題和適合選擇的導(dǎo)師。教師可以從系統(tǒng)中查看預(yù)先選擇了自己的學(xué)生的測(cè)試成績(jī)。在畢業(yè)設(shè)計(jì)制作期間,學(xué)生可以通過(guò)系統(tǒng)來(lái)與導(dǎo)師交流制作的論文等。該系統(tǒng)使用應(yīng)該盡量簡(jiǎn)單,容易被理
28、解。3.2 系統(tǒng)功能分析系統(tǒng)功能分析可以幫助將整個(gè)系統(tǒng)的任務(wù)細(xì)化成較小的模塊,將一個(gè)大問(wèn)題進(jìn)行分解。為了能夠?qū)崿F(xiàn)學(xué)生的專(zhuān)業(yè)知識(shí)掌握能力和動(dòng)手能力的測(cè)試、教師通過(guò)學(xué)生的測(cè)試成績(jī)來(lái)了解學(xué)生綜合能力,系統(tǒng)管理員對(duì)系統(tǒng)的后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行管理,系統(tǒng)應(yīng)該分別對(duì)這三個(gè)角色的功能進(jìn)行實(shí)現(xiàn)。系統(tǒng)按角色的功能分為三大功能模塊,如圖3-1所示。學(xué)生操作教師操作管理員操作選題測(cè)試管理個(gè)人信息上傳論文預(yù)選老師保存測(cè)試報(bào)告管理題庫(kù)信息管理用戶(hù)信息查看測(cè)試結(jié)果畢業(yè)設(shè)計(jì)選題測(cè)試及管理系統(tǒng)功能下載教師批改論文修改密碼管理課題信息用戶(hù)登陸管理課程信息查看學(xué)生測(cè)試成績(jī)管理學(xué)生預(yù)選信息管理個(gè)人信息管理學(xué)生論文管理課題信息分配課題圖3-
29、1 功能模塊圖每個(gè)功能模塊之間是相互獨(dú)立的。3.3 系統(tǒng)用例建模系統(tǒng)的角色是指與系統(tǒng)功能有關(guān)的外部實(shí)體,一般系統(tǒng)參與者為系統(tǒng)用戶(hù)、與所建造系統(tǒng)交互的其他系統(tǒng)和一些可以運(yùn)行的進(jìn)程11。由于本系統(tǒng)與其他系統(tǒng)和進(jìn)程沒(méi)有直接的聯(lián)系,是一個(gè)獨(dú)立的系統(tǒng),所以系統(tǒng)主要參與的角色分為三個(gè):學(xué)生、教師和系統(tǒng)管理員。對(duì)于不同角色使用該系統(tǒng)是要保證系統(tǒng)部分信息已經(jīng)完善,部分用例有時(shí)間上的優(yōu)先順序。所有用戶(hù)使用系統(tǒng)時(shí)必須先登錄,學(xué)生和教師的部分必填的個(gè)人信息要導(dǎo)入到系統(tǒng)中,教師在學(xué)生測(cè)試之前要完成對(duì)課題的設(shè)置和課題建議工作。從系統(tǒng)概述可得到,學(xué)生參與者具有的功能如圖3-2所示。圖3-2 學(xué)生用例圖student(學(xué)生
30、)的用例有:login:登陸系統(tǒng)logout:退出系統(tǒng)testing:測(cè)試 extract_questions:抽取試題answer_questions:回答測(cè)題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:下載
31、已批改論文apply_teacher:預(yù)選導(dǎo)師對(duì)于學(xué)生的功能可以看到選題測(cè)試功能包括:抽取試題、回答問(wèn)題、提交答卷用例。選題測(cè)試用例說(shuō)明:前置條件:進(jìn)入主頁(yè)面,登錄系統(tǒng)?;臼录鳎海?)輸入用戶(hù)名、密碼和用戶(hù)身份(2)點(diǎn)擊“登錄”,系統(tǒng)通過(guò)對(duì)用戶(hù)信息驗(yàn)證和數(shù)據(jù)庫(kù)中用戶(hù)信息的對(duì)比檢測(cè)用戶(hù)的合法性,如果用戶(hù)合法則進(jìn)入學(xué)生后臺(tái)管理首頁(yè)(3)單擊“我要測(cè)試”菜單下的“開(kāi)始測(cè)試”,如果用戶(hù)還未測(cè)試則進(jìn)入測(cè)試頁(yè)面(4)單擊“抽取試題”按鈕,做完測(cè)題后,單擊“提交答卷”按鈕,測(cè)試完畢備選事件流:(1)當(dāng)用戶(hù)輸入的用戶(hù)名或密碼為空時(shí),系統(tǒng)將不進(jìn)行跳轉(zhuǎn),不出現(xiàn)用戶(hù)操作頁(yè)面(2)當(dāng)用戶(hù)已經(jīng)測(cè)試,則不跳轉(zhuǎn)到測(cè)試頁(yè)
32、面,而是跳轉(zhuǎn)到提示已經(jīng)測(cè)試的頁(yè)面后置條件:用戶(hù)測(cè)試完成,得到測(cè)試結(jié)果和測(cè)試報(bào)告。教師實(shí)體具有的功能如圖3-3所示。圖3-3 教師用例圖teacher(教師)的用例有:login:登陸系統(tǒng)logout:退出系統(tǒng)distribute_thesis:分配課題manage_student_paper:管理學(xué)生論文fill_in_thesis_requirement:填寫(xiě)課題要求課程view_student_test_result:查看學(xué)生測(cè)試結(jié)果manage_apply_information:管理學(xué)生預(yù)選情況manage_thesis:管理課題add _thesis:添加課題delete_thesi
33、s:刪除課題update_thesis:更新課題view_thesis:查看課題manage_personal_infor:管理個(gè)人信息change_password:修改密碼view_personal_infor:查看個(gè)人信息教師的主要功能給出選題內(nèi)容及建議,通過(guò)查看學(xué)生的測(cè)試結(jié)果和測(cè)試報(bào)告了解學(xué)生情況。查看學(xué)生測(cè)試結(jié)果用例說(shuō)明:前置條件:用戶(hù)登錄成功,學(xué)生完成測(cè)試。基本事件流:(1)輸入用戶(hù)名、密碼和用戶(hù)身份(2)點(diǎn)擊“登錄”,系統(tǒng)通過(guò)對(duì)用戶(hù)信息驗(yàn)證和數(shù)據(jù)庫(kù)中用戶(hù)信息的對(duì)比檢測(cè)用戶(hù)的合法性,如果用戶(hù)合法則進(jìn)入教師后臺(tái)管理首頁(yè)(3)教師點(diǎn)擊“學(xué)生測(cè)試成績(jī)”菜單下的“查看測(cè)試成績(jī)”,系統(tǒng)查找到
34、學(xué)生測(cè)試成績(jī),提取學(xué)生測(cè)試信息返回顯示備選事件流:學(xué)生未測(cè)試則提示學(xué)生尚未有測(cè)試結(jié)果。后置條件:顯示學(xué)生測(cè)試成績(jī)。系統(tǒng)管理員實(shí)體具有的功能如圖3-4所示。administrator(管理員)的用例有:login:登陸系統(tǒng)logout:退出系統(tǒng)manage_user_infor:管理用戶(hù)信息add_user_infor:添加用戶(hù)信息delete_user_infor:刪除用戶(hù)信息update_user_infor:更新用戶(hù)信息select_user_infor:查找用戶(hù)信息manage_questions_infor:管理題庫(kù)add_questions_infor:添加測(cè)題delete_ques
35、tions_infor:刪除測(cè)題update_questions_infor:更新測(cè)題view_questions_infor:查找測(cè)題manage_thesis_infor:管理課題信息view_thesis_infor:查看課題信息update_password:修改密碼圖3-4 管理員用例圖管理員的主要功能之一是對(duì)學(xué)生信息進(jìn)行管理。學(xué)生信息管理用例說(shuō)明: 前置條件:管理員合法登陸,進(jìn)入管理員后臺(tái)管理首頁(yè)。基本事件流:(1)單擊“學(xué)生信息管理”菜單下的“查看學(xué)生信息”菜單,系統(tǒng)從數(shù)據(jù)庫(kù)選出所有學(xué)生信息在頁(yè)面顯示(2)單擊一條學(xué)生信息記錄后的“編輯”按鈕,對(duì)信息進(jìn)行修改單擊“確定”(3)單擊
36、一條學(xué)生信息記錄后面的“刪除”按鈕,對(duì)信息進(jìn)行刪除備選事件流:當(dāng)用戶(hù)表中數(shù)據(jù)的外鍵被修改時(shí),如果與外鍵所在基本表中數(shù)據(jù)不符合,則無(wú)法修改。當(dāng)用戶(hù)要管理的表格中數(shù)據(jù)為空時(shí),系統(tǒng)不顯示數(shù)據(jù)。后置條件:數(shù)據(jù)管理成功,數(shù)據(jù)庫(kù)保存修改后的表信息,數(shù)據(jù)庫(kù)刪除記錄。3.4 小結(jié)系統(tǒng)需求分析需要注意很多原則,避免出現(xiàn)的需求出現(xiàn)沖突。通過(guò)分析得到的需求還必須與用戶(hù)所要的需求相一致。如果對(duì)用戶(hù)的需求誤解了將對(duì)以后的系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)造成很大的誤導(dǎo),并且不好改動(dòng),所以這一步需謹(jǐn)慎。通過(guò)對(duì)系統(tǒng)進(jìn)行需求分析,對(duì)系統(tǒng)的實(shí)現(xiàn)更加細(xì)化和明確。4 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)時(shí)站在對(duì)系統(tǒng)規(guī)劃的角度來(lái)考慮系統(tǒng)該如何實(shí)現(xiàn)、如何將需求轉(zhuǎn)換為軟件設(shè)
37、計(jì)的問(wèn)題。系統(tǒng)設(shè)計(jì)分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。根據(jù)軟件工程中軟件設(shè)計(jì)的抽象與逐步求精原則12,先從系統(tǒng)的整個(gè)結(jié)構(gòu)出發(fā)來(lái)設(shè)計(jì)系統(tǒng)總體架構(gòu)設(shè)計(jì),再設(shè)計(jì)系統(tǒng)需要實(shí)現(xiàn)的功能模塊、系統(tǒng)界面、數(shù)據(jù)庫(kù)表等。4.1 設(shè)計(jì)目標(biāo)及原則隨著科技的發(fā)展,越來(lái)越多的自動(dòng)化的產(chǎn)品被應(yīng)用于生活中,特別是年輕人對(duì)這些數(shù)字化產(chǎn)品特別熱衷,這樣使得現(xiàn)在的孩子們都不愿意去使用不易理解,使用復(fù)雜的產(chǎn)品。從用戶(hù)的使用感受考慮,系統(tǒng)設(shè)計(jì)時(shí)應(yīng)該盡量以使用簡(jiǎn)單、操作一目了然、界面友好、有交互性為主。基于主要用戶(hù)為學(xué)生團(tuán)體,所以界面風(fēng)格上設(shè)計(jì)的要清新,美觀。對(duì)于不同專(zhuān)業(yè)的學(xué)生要評(píng)測(cè)出真實(shí)的水平,測(cè)試系統(tǒng)題型應(yīng)該與學(xué)生所學(xué)專(zhuān)業(yè)設(shè)置的課程掛鉤,并且有
38、難易程度的過(guò)度。軟件總體框架要以javaee思想來(lái)設(shè)計(jì)。對(duì)于數(shù)據(jù)庫(kù)的設(shè)計(jì),要充分考慮到數(shù)據(jù)的存儲(chǔ)需求并充分利用不同數(shù)據(jù)類(lèi)型的優(yōu)勢(shì)來(lái)選擇存儲(chǔ)數(shù)據(jù)類(lèi)型。最終的系統(tǒng)能夠?qū)崿F(xiàn)所有需求獲取階段得到的需求,主要是學(xué)生在線測(cè)試和對(duì)測(cè)試進(jìn)行分析的功能以及論文交流的功能,能夠使老師通過(guò)系統(tǒng)了解學(xué)生的優(yōu)勢(shì)和劣勢(shì),對(duì)導(dǎo)師分配課題提供參考。系統(tǒng)設(shè)計(jì)還應(yīng)該以易于實(shí)現(xiàn)、易于測(cè)試、易于維護(hù)為基本理念。系統(tǒng)設(shè)計(jì)的原則是指導(dǎo)設(shè)計(jì)過(guò)程的。為了能設(shè)計(jì)出符合需求的系統(tǒng),設(shè)計(jì)時(shí)要遵守以下原則:(1)結(jié)構(gòu)應(yīng)該分層次,從而建立軟件成分之間的控制;(2)設(shè)計(jì)應(yīng)當(dāng)模塊化,邏輯上將軟件劃分為完成特定功能或子功能的部件;(3)設(shè)計(jì)應(yīng)該包含數(shù)據(jù)抽象
39、和過(guò)程抽象;(4)模塊與外部環(huán)境之間的接口盡量少;(5)系統(tǒng)盡量簡(jiǎn)單,減少處理的時(shí)間和費(fèi)用;(6)系統(tǒng)數(shù)據(jù)的一致性,對(duì)于系統(tǒng)中的相同信息的顯示和存儲(chǔ)要一致;(7)系統(tǒng)具備一定的出錯(cuò)處理功能,提高系統(tǒng)的可靠性。4.2 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)根據(jù)對(duì)系統(tǒng)的分析得到如下的實(shí)體關(guān)系圖如圖4-1所示:圖4-1 系統(tǒng)e-r圖從圖中可以看到各個(gè)實(shí)體間的聯(lián)系。關(guān)系型數(shù)據(jù)庫(kù)要滿足三類(lèi)完整性約束,即實(shí)體完整性,參照完整性,用戶(hù)自定義的完整性13。通過(guò)這三個(gè)約束將實(shí)體型轉(zhuǎn)換得到關(guān)系模式即為數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì):學(xué)生(學(xué)號(hào),學(xué)生姓名,登陸密碼,性別,專(zhuān)業(yè)號(hào),郵箱號(hào),測(cè)試標(biāo)記)課程(課程號(hào),課程名,專(zhuān)業(yè)號(hào))教師(教師號(hào),教師姓名
40、,登陸密碼,性別,允許指導(dǎo)學(xué)生數(shù),學(xué)院號(hào),郵箱號(hào))管理員(管理員號(hào),管理員姓名,登陸密碼)專(zhuān)業(yè)(專(zhuān)業(yè)號(hào),專(zhuān)業(yè)名,學(xué)院號(hào))學(xué)院(學(xué)院號(hào),學(xué)院名)測(cè)試(學(xué)號(hào),課程號(hào),課程名,得分,測(cè)試日期)問(wèn)題(問(wèn)題編號(hào),問(wèn)題內(nèi)容,選項(xiàng)a內(nèi)容,選項(xiàng)b內(nèi)容,選項(xiàng)c內(nèi)容,選項(xiàng)d內(nèi)容,答案選項(xiàng),分?jǐn)?shù),課程號(hào))論文指導(dǎo)(學(xué)號(hào),論文號(hào),論文主題,學(xué)生論文存放位置,更新標(biāo)志,學(xué)生上傳日期,教師號(hào),教師論文存放位置,教師上傳日期)課題(課題號(hào),課題名,出題日期,課題介紹,課題研究建議,教師號(hào))課題要求(課題號(hào),課題名,課程號(hào),課程名)預(yù)選老師(學(xué)號(hào),教師號(hào),預(yù)選標(biāo)志,教師同意標(biāo)志,拒絕原因)4.3 表示層web設(shè)計(jì)表示層是服務(wù)
41、器與用戶(hù)之間的接口。根據(jù)所見(jiàn)即所得原理,表示層將業(yè)務(wù)邏輯層返回的數(shù)據(jù)以用戶(hù)能理解的形式在頁(yè)面中顯示,用戶(hù)通過(guò)表示層提供的接口輸入數(shù)據(jù),通過(guò)頁(yè)面來(lái)傳遞數(shù)據(jù)到后臺(tái)業(yè)務(wù)邏輯層進(jìn)行處理。本系統(tǒng)的表示層主要通過(guò)不同的action控制在jsp頁(yè)面體現(xiàn)。其中又用到了struts2的標(biāo)簽和ajax技術(shù)。struts2標(biāo)簽使得數(shù)據(jù)顯示更加更加方便,代碼量減少,同時(shí)數(shù)據(jù)傳輸方便。當(dāng)業(yè)務(wù)邏輯層將數(shù)據(jù)傳遞給相應(yīng)的action后,通過(guò)struts.xml中的映射來(lái)跳轉(zhuǎn)到相應(yīng)的jsp頁(yè)面,在頁(yè)面中使用struts2標(biāo)簽就可以將傳遞過(guò)來(lái)的參數(shù)顯示在頁(yè)面中。用戶(hù)在使用系統(tǒng)時(shí)更希望界面簡(jiǎn)單,操作簡(jiǎn)便,有盡量少刷新操作和等待時(shí)間
42、。ajax技術(shù)實(shí)現(xiàn)了瀏覽器與服務(wù)器之間數(shù)據(jù)的異步傳輸,ajax中是使用javascript來(lái)傳遞數(shù)據(jù)給業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層將處理后要返回的數(shù)據(jù)傳回給請(qǐng)求數(shù)據(jù)的客戶(hù)端jsp頁(yè)面,頁(yè)面再通過(guò)dom(document object model)顯示新數(shù)據(jù),在整個(gè)過(guò)程中用戶(hù)可以不手動(dòng)刷新頁(yè)面。為了更好的實(shí)現(xiàn)導(dǎo)航的功能,系統(tǒng)表示層設(shè)計(jì)時(shí),讓不同角色的用戶(hù)的操作都顯示在導(dǎo)航欄,當(dāng)頁(yè)面跳轉(zhuǎn)時(shí),導(dǎo)航欄不會(huì)改變位置,而請(qǐng)求的頁(yè)面則顯示在一個(gè)固定的框架中。在頁(yè)面顯示數(shù)據(jù)時(shí)傳遞的是對(duì)象數(shù)組。當(dāng)學(xué)生登陸系統(tǒng)后可以進(jìn)行測(cè)試或查看個(gè)人信息,如果還未進(jìn)行測(cè)試則查看測(cè)試成績(jī)、查看測(cè)試報(bào)告、預(yù)選老師業(yè)務(wù)都無(wú)數(shù)據(jù)顯示,如果已經(jīng)
43、測(cè)試則可以查看到測(cè)試成績(jī)、查看測(cè)試報(bào)告、預(yù)選老師、查看個(gè)人信息,最后退出系統(tǒng)。根據(jù)需求分析得到學(xué)生登陸后的業(yè)務(wù)功能實(shí)現(xiàn)活動(dòng)圖如圖4-2所示。圖4-2 學(xué)生活動(dòng)圖學(xué)生選題活動(dòng)首先需學(xué)生進(jìn)行課程測(cè)試,系統(tǒng)根據(jù)學(xué)生擅長(zhǎng)的課程推薦課題及老師,學(xué)生可以預(yù)選課題對(duì)應(yīng)的老師。老師通過(guò)查看預(yù)選了課題的學(xué)生的測(cè)試成績(jī)決定是否同意學(xué)生預(yù)選。老師同意學(xué)生預(yù)選則可以分配課題給學(xué)生,學(xué)生可以查看課題信息;拒絕則給出拒絕原因等信息,學(xué)生可以查看老師拒絕信息。學(xué)生選題活動(dòng)圖如圖4-3所示。圖4-3學(xué)生選題活動(dòng)圖4.4 業(yè)務(wù)邏輯層設(shè)計(jì)業(yè)務(wù)邏輯層(service層)主要是針對(duì)不同的業(yè)務(wù)需求來(lái)調(diào)用數(shù)據(jù)訪問(wèn)層(dao層)的方法,從
44、而實(shí)現(xiàn)不同業(yè)務(wù)需求功能。業(yè)務(wù)邏輯層提供了一系列可提供給用戶(hù)的服務(wù),是對(duì)用戶(hù)問(wèn)題提供解決的方法。業(yè)務(wù)邏輯層的實(shí)現(xiàn)是通過(guò)調(diào)用數(shù)據(jù)訪問(wèn)層的方法來(lái)實(shí)現(xiàn)的。業(yè)務(wù)邏輯層不需要知道如何操作具體數(shù)據(jù),只要知道通過(guò)dao層的什么方法得到什么參數(shù),或者傳遞什么參數(shù)從而能達(dá)到功能的實(shí)現(xiàn)。對(duì)于數(shù)據(jù)訪問(wèn)層而言,業(yè)務(wù)邏輯層主要充當(dāng)?shù)氖钦{(diào)度者的角色,而對(duì)表示層(web層)而言,業(yè)務(wù)邏輯層充當(dāng)?shù)氖潜徽{(diào)度的角色。當(dāng)學(xué)生申請(qǐng)導(dǎo)師時(shí)要傳遞學(xué)號(hào)和教師號(hào)到service層來(lái)調(diào)用service層的申請(qǐng)方法,service層將參數(shù)傳遞至dao層,dao層再調(diào)用數(shù)據(jù)庫(kù)操作方法,操作完成后以applyinfor對(duì)象的形式返回申請(qǐng)導(dǎo)師表中的一條
45、記錄,其中applyinfor中的學(xué)號(hào)stunum和教師號(hào)teachernum分別依賴(lài)于學(xué)生表student中的學(xué)號(hào)和教師表teacher中的教師號(hào),具體如圖4-4所示。圖4-4 預(yù)選老師過(guò)程使用的類(lèi)圖service層的applyinforsi對(duì)象中的setapplyflag()方法為預(yù)選老師時(shí)調(diào)用的方法,該方法調(diào)用了dao層applyinfordi對(duì)象的setapplyflag()方法。4.5 數(shù)據(jù)訪問(wèn)層dao設(shè)計(jì)數(shù)據(jù)訪問(wèn)層dao主要實(shí)現(xiàn)的功能是對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行操作,簡(jiǎn)而言之就是一系列的對(duì)數(shù)據(jù)庫(kù)中的記錄進(jìn)行增加、刪除、修改、查找操作。dao層調(diào)用了bean實(shí)體類(lèi),使用sql語(yǔ)句來(lái)操作數(shù)據(jù)
46、庫(kù),為了體現(xiàn)類(lèi)的封裝性,實(shí)現(xiàn)時(shí)則是調(diào)用封裝好的數(shù)據(jù)庫(kù)操作對(duì)象中的方法來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。從數(shù)據(jù)庫(kù)設(shè)計(jì)中得到相應(yīng)的dao層的設(shè)計(jì)如圖4-5所示。圖4-5 dao層設(shè)計(jì)的類(lèi)文件admindi.java:對(duì)管理員表進(jìn)行操作applyinfordi.java :對(duì)學(xué)生預(yù)選導(dǎo)師表進(jìn)行操作coursedi.java:對(duì)課程表進(jìn)行操作institutedi.java:對(duì)學(xué)院表進(jìn)行操作majordi.java:對(duì)專(zhuān)業(yè)表進(jìn)行操作pagedi.java:對(duì)上下頁(yè)跳轉(zhuǎn)進(jìn)行判斷questiondi.java:對(duì)測(cè)題表進(jìn)行操作stucoursedi.java:對(duì)學(xué)生測(cè)試課程表進(jìn)行操作studentdi.java:對(duì)學(xué)
47、生表進(jìn)行操作teacherdi.java:對(duì)教師表進(jìn)行操作thesisinfordi.java:對(duì)課題表進(jìn)行操作thesisrequirementdi.java:對(duì)課題要求表進(jìn)行操作預(yù)選老師dao(applyinfordi)通過(guò)數(shù)據(jù)庫(kù)連接connect類(lèi)中的連接數(shù)據(jù)庫(kù)的方法來(lái)獲取數(shù)據(jù)庫(kù)連接,再將連接和sql語(yǔ)句傳遞給數(shù)據(jù)庫(kù)操作dboperator類(lèi)中的方法來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中applyinfor表的操作。applyinfordi中對(duì)applyinfor對(duì)象進(jìn)行了實(shí)例化作為dao層的返回參數(shù)。dao層與數(shù)據(jù)庫(kù)操作對(duì)象間的類(lèi)圖如圖4-6所示。圖4-6 預(yù)選信息dao操作預(yù)選信息表類(lèi)圖4.6 小結(jié)系統(tǒng)設(shè)
48、計(jì)在軟件工程中占了很重要的角色,是占用整個(gè)開(kāi)發(fā)周期中比較長(zhǎng)時(shí)間的階段。通過(guò)對(duì)系統(tǒng)設(shè)計(jì)的分析知道該從哪個(gè)方面開(kāi)始實(shí)現(xiàn),并且清楚了每個(gè)角色的操作。對(duì)數(shù)據(jù)庫(kù)每個(gè)字段的設(shè)計(jì)意義也更明確。理解了javaee思想在系統(tǒng)架構(gòu)中的表現(xiàn)方式。5 系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn)是系統(tǒng)設(shè)計(jì)之后的工作,是將系統(tǒng)設(shè)計(jì)轉(zhuǎn)換為可執(zhí)行的程序代碼的過(guò)程。只有在對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)、系統(tǒng)結(jié)構(gòu)充分分析之后進(jìn)行系統(tǒng)開(kāi)發(fā)工作才能符合需求。系統(tǒng)實(shí)現(xiàn)需要掌握系統(tǒng)開(kāi)發(fā)工具的使用方法和程序設(shè)計(jì)語(yǔ)言,本系統(tǒng)主要應(yīng)用程序設(shè)計(jì)語(yǔ)言有java、javascript,開(kāi)發(fā)技術(shù)有struts、ajax。系統(tǒng)實(shí)現(xiàn)按功能模塊的劃分來(lái)分別實(shí)現(xiàn),循序漸進(jìn)。5.1 選題測(cè)試模塊的實(shí)現(xiàn)選
49、題測(cè)試模塊主要是對(duì)測(cè)試后的結(jié)果進(jìn)行分析,根據(jù)學(xué)生根據(jù)測(cè)試課程分?jǐn)?shù)推薦合適的課題和老師給學(xué)生。學(xué)生測(cè)試完畢后系統(tǒng)自動(dòng)跳轉(zhuǎn)到顯示測(cè)試報(bào)告界面,在“查看測(cè)試報(bào)告”頁(yè)面會(huì)顯示學(xué)生測(cè)試成績(jī)最好的3門(mén)課程的測(cè)試結(jié)果和推薦的符合要求的課題及出題老師。5.1.1 表示層web實(shí)現(xiàn)選題測(cè)試模塊(web)表示層實(shí)現(xiàn)關(guān)鍵代碼如下:public class thesisrequirementaction extends actionsupport/給學(xué)生推薦課題并查找測(cè)試課程成績(jī)?yōu)榍?名的測(cè)試成績(jī)信息public string findsupportthesis() throws badelementexceptio
50、n, exception this.testflag = stusi.searchstu(stunum).gettestflag();/查看是否已測(cè)試標(biāo)記,1:已測(cè)試 0:未測(cè)試/已經(jīng)完成測(cè)試,可以推薦課題及老師if(1 = this.testflag)this.liststucourse = stucousi.searchbestbysn(stunum);/查找成績(jī)?yōu)榍?名的測(cè)試記錄int courseamount = liststucourse.size();/學(xué)生測(cè)試成績(jī)前3名的課程數(shù)量int coursenums = new intcourseamount;/根據(jù)課程號(hào)查找對(duì)該門(mén)課程有
51、要求的課題信息for(int i=0; i = 4)/每門(mén)課程測(cè)試分?jǐn)?shù)大于等于4則推薦老師 coursenumsi = this.liststucourse.get(i).getcoursenum(); thesisreq = this.thereqsi.searchallbycn(coursenumsi);/查找要求了該門(mén)課程的課題 for(int j=0; j thesisreq.size(); j+) this.listthesisreq.add(thesisreq.get(j);/記錄找到的符合要求的課題 /有符合的課題則根據(jù)課題找到出題老師if(0 != listthesisreq.
52、size()/根據(jù)課題號(hào)查找課題名for(int k=0; k this.listthesisreq.size(); k+)thesisinf = this.theinfsi.searchbythesisnum(this.listthesisreq.get(k).getthesisnum();this.listthesisinfor.add(thesisinf);applyinforsi.updatestutea(stunum, this.stusi.searchstu(stunum).getstuname(),thesisinf.getteachernum(), thesisinf.gett
53、eachername();/添加預(yù)選記錄else if(0 = listthesisreq.size()/所有課程測(cè)試成績(jī)不符合推薦要求applyinforsi.whenscoreisbad(stunum);/推薦指導(dǎo)學(xué)生數(shù)未滿的老師給學(xué)生/保存測(cè)試結(jié)果if(1 = saveflag)this.theinfsi.save(liststucourse, listthesisinfor);return success;else if(0 = this.testflag)/未測(cè)試,不推薦課題及老師return nottest;return success; 如果學(xué)生已經(jīng)完成測(cè)試,系統(tǒng)查找學(xué)生測(cè)試成績(jī)
54、排名前3的課程測(cè)試分?jǐn)?shù),如果課程測(cè)試分?jǐn)?shù)大于等于4則給學(xué)生推薦對(duì)該課程有要求的課題,根據(jù)課題找到推薦的出題老師。如果測(cè)試成績(jī)排名前3的測(cè)試課程分?jǐn)?shù)都不大于等于4,則表示該學(xué)生對(duì)測(cè)試課程掌握都不達(dá)要求,系統(tǒng)將不推薦課題給學(xué)生,將查找到的指導(dǎo)學(xué)生數(shù)未滿的老師推薦給學(xué)生。學(xué)生未完成測(cè)試則不進(jìn)行推薦課題及老師操作。5.1.2 業(yè)務(wù)邏輯層實(shí)現(xiàn)選題測(cè)試模塊業(yè)務(wù)邏輯層實(shí)現(xiàn)是通過(guò)調(diào)用dao層的方法來(lái)實(shí)現(xiàn)的,關(guān)鍵代碼如下:public class stucoursesi /按學(xué)號(hào)查找測(cè)試成績(jī)?yōu)榍?的測(cè)試課程信息public list searchbestbysn(string stunum)stucoursedi stucdi = new stucoursedi();return stucdi.searchbestbysn(stunum);public class thesisrequirementsi /查找要求了該門(mén)課程的課題要求信息public list
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級(jí)上冊(cè)數(shù)學(xué)教案第五單元第1課時(shí)加減法與乘法的混合運(yùn)算-西師大版
- 2025廣告制作安裝合同書(shū)
- 上海師范大學(xué)天華學(xué)院《數(shù)字媒體藝術(shù)概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025證券投資服務(wù)合同
- 課題申報(bào)書(shū):高耗能制造企業(yè)供應(yīng)鏈減排合作的運(yùn)行模式及實(shí)現(xiàn)路徑研究
- 課題申報(bào)書(shū):父母學(xué)業(yè)參與中的情緒教養(yǎng)對(duì)青少年學(xué)業(yè)倦怠的影響及作用機(jī)制
- 上海杉達(dá)學(xué)院《電氣工程前沿技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海歐華職業(yè)技術(shù)學(xué)院《園林工程管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 統(tǒng)編教材八年級(jí)上冊(cè)語(yǔ)文第8課列夫托爾斯泰 公開(kāi)課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 上海閔行職業(yè)技術(shù)學(xué)院《公共關(guān)系實(shí)務(wù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 兒童房間管理制度
- 中國(guó)石油大學(xué)(華東)2008年化工原理(含答案)考研真題
- 湖南課件大學(xué)
- 2024高校大學(xué)《輔導(dǎo)員》招聘考試題庫(kù)
- 景區(qū)智慧充電樁建設(shè)方案
- 培訓(xùn)班授課教師課時(shí)費(fèi)用領(lǐng)取表
- 2023年10月秘書(shū)學(xué)概論自考試卷及答案
- 小學(xué)數(shù)學(xué)教育現(xiàn)狀與發(fā)展趨勢(shì)分析
- 新版袁行霈中國(guó)文學(xué)史第3版
- 特殊教育概論第二版PPT完整全套教學(xué)課件
- 臨床藥學(xué)基地管理細(xì)則
評(píng)論
0/150
提交評(píng)論