版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
編號(hào)畢業(yè)設(shè)計(jì)(論文)題目勤工儉學(xué)管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)二級(jí)學(xué)院計(jì)算機(jī)科學(xué)與工程學(xué)院專業(yè)軟件工程班級(jí)學(xué)生姓名學(xué)號(hào)指導(dǎo)教師職稱時(shí)間目錄摘要 5Abstract 51緒論 61.1引言 61.2背景和意義 61.3系統(tǒng)特點(diǎn) 61.4系統(tǒng)目標(biāo) 71.5系統(tǒng)可行性分析 72系統(tǒng)環(huán)境介紹 82.1概述 82.1.1MyEclipse基本概述 82.1.2MySqL基本概述 82.2技術(shù)支持簡(jiǎn)介 92.2.1UML介紹 92.2.2TCP協(xié)議簡(jiǎn)單介紹 112.2.3Spring介紹 122.2.4Struts2介紹 142.2.5Hibernate介紹 152.2.6JavaScript開發(fā)技術(shù)介紹 173系統(tǒng)分析 203.1系統(tǒng)總需求 203.1.1需求描述與分析 203.1.2系統(tǒng)總功能 213.2系統(tǒng)需求分析 233.2.1系統(tǒng)活動(dòng)者與用例模型 233.2.2用例圖 243.2.3用例文檔描述 264勤工儉學(xué)系統(tǒng)設(shè)計(jì) 324.1系統(tǒng)中包含實(shí)體類及相互關(guān)系 324.1.1由前面文檔描述,得出以下類圖: 324.1.2確定類與類之間的關(guān)系 324.2時(shí)序圖 334.2.1用例“注冊(cè)”的時(shí)序圖 334.2.2用例“登錄”的時(shí)序圖 344.2.3用例“審核”的時(shí)序圖 354.2.4用例“報(bào)名”的時(shí)序圖 364.2.5用例“錄用”的時(shí)序圖 374.2.6用例“解雇”的時(shí)序圖 384.2.7用例“發(fā)放工資”的時(shí)序圖 394.3數(shù)據(jù)庫設(shè)計(jì) 404.3.1CDM(ConceptualDataModel) 404.3.2PDM(PhysicalDataModel) 414.3.3數(shù)據(jù)庫表對(duì)應(yīng)實(shí)體說明 425系統(tǒng)實(shí)現(xiàn) 475.1登錄 475.2注冊(cè) 485.3主頁面 495.4功能列表頁 505.5詳細(xì)信息頁面 505.6新增/修改頁面 516系統(tǒng)測(cè)試 526.1功能性測(cè)試 526.1.1系統(tǒng)登錄測(cè)試 526.1.2用戶管理模塊 526.2非功能性測(cè)試 536.2.1UI測(cè)試 536.2.2性能測(cè)試 536.2.3安全性測(cè)試 54參考文獻(xiàn) 55摘要 隨著各大高校勤工助學(xué)不斷擴(kuò)大,如何有效地幫助勤工儉學(xué)的學(xué)生,管理勤工助學(xué)所產(chǎn)生的信息,成為各大高校的一個(gè)難題,傳統(tǒng)手工管理模式已經(jīng)不適應(yīng)時(shí)代發(fā)展。由于信息化快速發(fā)展,開發(fā)適應(yīng)當(dāng)前工作需要的辦公管理軟件已經(jīng)成為必然。本文基于UML建模,結(jié)合JAVA編程語言和MySQL數(shù)據(jù)庫管理服務(wù)技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了大學(xué)生勤工儉學(xué)管理信息系統(tǒng)的運(yùn)行管理。整個(gè)管理系統(tǒng)的開發(fā)包括分析、設(shè)計(jì)、實(shí)現(xiàn)三個(gè)主要過程。該系統(tǒng)有機(jī)結(jié)合了勤工助學(xué)的現(xiàn)實(shí)情況,運(yùn)用信息化技術(shù)來完成任務(wù),減輕勤工助學(xué)日常工作的成本,提高勤工助學(xué)的工作效率。關(guān)鍵詞:勤工助學(xué)JAVAMySQLAbstractWithconstantlyexpandingofthenumberofwork-studystudents,ithasbecomeaproblemofmajorcollegesanduniversitiestoeffectivelyhelpthework-studystudentsandmanagetheirinformation.Thetraditionalmanualmanagementmodelhasbeenoutdated.DuetotheWiththerapiddevelopmentofinformationitisurgenttodevelopanofficemanagementsoftwaretoadapttothecurrentwork.ThisarticlebasedonUMLmodeling,combinedwithJAVAprogramminglanguageandMySQLdatabasemanagementservicestotechnologytodesignandrealizetherunningandmanagementofthecollegework-studyprogramsystem.Thedevelopmentofentiremanagementsystemincludingthreemainprocesses--analysis,designandimplementation.Thesystemorganicallycombinestherealityofwork-studytousetheinformationtechnologytoaccomplishthetask,reducingthecostofwork-studydailywork,eventuallytoachievethepurposeofimprovingtheefficiencyofwork-study.Keywords:Work-studyJavaMySQL1緒論1.1引言 在當(dāng)今信息高度發(fā)達(dá)的時(shí)代,勤工助學(xué)管理涉及的各環(huán)節(jié)已經(jīng)不再僅僅是傳統(tǒng)的勤工管理,助學(xué)管理,而是更廣泛、更全面的系統(tǒng)服務(wù),利用計(jì)算機(jī)管理及時(shí)了解各個(gè)環(huán)節(jié)中信息的變更,有利于提高管理的效率。同時(shí),勤工助學(xué)工作對(duì)解決貧困生的經(jīng)濟(jì)問題,鍛煉學(xué)生的工作能力、溝通能力、理解能力和自立能力等方面都起著重要作用。做好學(xué)生勤工助學(xué)管理工作對(duì)提高勤工助學(xué)管理系統(tǒng)的服務(wù)水平和勤工助學(xué)學(xué)生的綜合能力,實(shí)現(xiàn)雙贏有著重要的意義。因此為能夠?qū)崿F(xiàn)校方管理學(xué)生勤工助學(xué)而開發(fā)本系統(tǒng),學(xué)生能夠自主選擇勤工助學(xué)項(xiàng)目的功能,為學(xué)生提供一個(gè)自主選擇的平臺(tái)。1.2背景和意義 勤工儉學(xué)是社會(huì)主義教育的一個(gè)不可缺少的組成部分,是培養(yǎng)四有新人的重要途徑。近幾年來,學(xué)校的勤工儉學(xué)活動(dòng)越來越引起人們的重視,經(jīng)濟(jì)效益有了較大幅度的提高,機(jī)構(gòu)和隊(duì)伍得到充實(shí)和加強(qiáng),有利地促進(jìn)了社會(huì)主義一代新人的健康成長。所以,這項(xiàng)活動(dòng)不僅有利于學(xué)生德、智、體、美全面發(fā)展,而且可以使學(xué)生通過參加勞動(dòng)取得相應(yīng)報(bào)酬。這是對(duì)廣大學(xué)生,特別是家庭經(jīng)濟(jì)困難學(xué)生的有效資助辦法,是對(duì)他們安心完成在校學(xué)業(yè)的有力支持 隨著勤工儉學(xué)者的增多,如何合理管理,有效幫助勤工儉學(xué)者成為一個(gè)難題,本系統(tǒng)旨在幫助勤工學(xué)生、公司、以及管理者之間進(jìn)行快速通信,合理安排工作,合理利用人力資源,提高人員效率,降低勞動(dòng)成本和差錯(cuò)發(fā)生的概率。1.3系統(tǒng)特點(diǎn)安裝部署簡(jiǎn)單、靈活,無需安裝客戶端界面簡(jiǎn)潔美觀并且具有較強(qiáng)的交互能力數(shù)據(jù)統(tǒng)一管理分析,便于查詢統(tǒng)計(jì)豐富的輔助工具,具有較強(qiáng)的管理功能大量采用設(shè)計(jì)模式,擴(kuò)展靈活1.4系統(tǒng)目標(biāo) 學(xué)生能查看公司的招聘信息以及報(bào)名職位,對(duì)工作安排以及工資發(fā)放情況能一目了然;勤工儉學(xué)組織能發(fā)布招聘信息、添加職位、對(duì)學(xué)生工作數(shù)據(jù)進(jìn)行管理,能輕松的進(jìn)行用工分配,以及學(xué)生信息的查詢、管理、統(tǒng)計(jì),管理員能對(duì)審核信息進(jìn)行管理、發(fā)放工資。1.5系統(tǒng)可行性分析 1)技術(shù)可行性: 為了確定現(xiàn)有技術(shù)能否實(shí)現(xiàn)目標(biāo)系統(tǒng),Eclipse自帶的工具和空間、SQL擁有的表操作(建立、修改、刪除等)以及它協(xié)調(diào)操作完全可以實(shí)現(xiàn)本系統(tǒng)要求達(dá)到的功能,因此技術(shù)上可行操作可行性: 勤工儉學(xué)管理系統(tǒng)的建設(shè)是基于java平臺(tái)開發(fā)的,java是被廣泛應(yīng)用與數(shù)據(jù)庫開發(fā)和操作的一套成熟的軟件平臺(tái),而且它對(duì)于一個(gè)大型的數(shù)據(jù)庫處理具有不可比擬的優(yōu)點(diǎn)和簡(jiǎn)單方便。所以操作可行性方面是可行的。經(jīng)濟(jì)可行性: 勤工儉學(xué)工作如果光靠完全人工來操作執(zhí)行,不僅存在信息延后的問題,而且需要花費(fèi)大量的人力物力,通訊費(fèi),各類表格通知打印費(fèi)等一筆不小的長期開資,而且這筆開銷還將一直無限的擴(kuò)大下去,所以一次性的投入建設(shè)勤工儉學(xué)管理系統(tǒng)不僅方便管理而且可以節(jié)約大筆費(fèi)用。顯然,從長遠(yuǎn)考慮在軟件有效期內(nèi)預(yù)期經(jīng)濟(jì)效益大于開發(fā)成本,經(jīng)濟(jì)性收益明顯,有廣闊市場(chǎng)前景。有以上分析我們可以確定本系統(tǒng)在經(jīng)濟(jì)可行性上行得通。2系統(tǒng)環(huán)境介紹2.1概述2.1.1MyEclipse基本概述 MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipseEnterpriseWorkbench,簡(jiǎn)稱MyEclipse)是對(duì)EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。MyEclipse是一個(gè)十分優(yōu)秀的用于開發(fā)Java,J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開源產(chǎn)品的支持十分不錯(cuò)。MyEclipse目前支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC數(shù)據(jù)庫鏈接工具等多項(xiàng)功能??梢哉fMyEclipse是幾乎囊括了目前所有主流開源產(chǎn)品的專屬eclipse開發(fā)工具。[1]根據(jù)官方最新消息,MyEclipse2013已經(jīng)正式發(fā)布!MyEclipse2013[2]支持HTML5、JQuery和主流的Javascript庫。隨著MyEclipse2013支持Html5,你可以添加音頻、視頻和API元素到你的項(xiàng)目,從而為移動(dòng)設(shè)備創(chuàng)建復(fù)雜的Web應(yīng)用程序。你甚至還可以通過HTML5可視化設(shè)計(jì)器設(shè)計(jì)令人難以置信的用戶界面。同時(shí),隨著MyEclipse2013支持JQuery,你可以通過插件提升性能,并添加動(dòng)畫效果到設(shè)計(jì)中。2.1.2MySqL基本概述MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQLAB公司開發(fā),目前屬于Oracle公司。Mysql是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在WEB應(yīng)用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem:關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi),這樣就增加了速度并提高了靈活性。MySQL所使用的SQL語言是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL軟件采用了雙授權(quán)政策(本詞條“授權(quán)政策”),它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。由于其社區(qū)版的性能卓越,搭配PHP和Apache可組成良好的開發(fā)環(huán)境。MySQL是一個(gè)開放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。2.2技術(shù)支持簡(jiǎn)介2.2.1UML介紹UML全稱是UML-UnifiedModelLanguage統(tǒng)一建模語言,又稱標(biāo)準(zhǔn)建模語言。是用來對(duì)軟件密集系統(tǒng)進(jìn)行可視化建模的一種語言。UML的定義包括UML語義和UML表示法兩個(gè)元素。UML是在開發(fā)階段,說明,可視化,構(gòu)建和書寫一個(gè)面向?qū)ο筌浖芗到y(tǒng)的制品的開放方法。最佳的應(yīng)用是工程實(shí)踐,對(duì)大規(guī)模,復(fù)雜系統(tǒng)進(jìn)行建模方面,特別是在軟件架構(gòu)層次,已經(jīng)被驗(yàn)證有效。統(tǒng)一建模語言(UML)是一種模型化語言。模型大多以圖表的方式表現(xiàn)出來。一份典型的建模圖表通常包含幾個(gè)塊或框,連接線和作為模型附加信息之用的文本。這些雖簡(jiǎn)單卻非常重要,在UML規(guī)則中相互聯(lián)系和擴(kuò)展。UML作為一種模型語言,它使開發(fā)人員專注于建立產(chǎn)品的模型和結(jié)構(gòu),而不是選用什么程序語言和算法實(shí)現(xiàn)。當(dāng)模型建立之后,模型可以被UML工具轉(zhuǎn)化成指定的程序語言代碼。公認(rèn)的面向?qū)ο蠼UZ言出現(xiàn)于70年代中期。從1989年到1994年,其數(shù)量從不到十種增加到了五十多種。在眾多的建模語言中,語言的創(chuàng)造者努力推崇自己的產(chǎn)品,并在實(shí)踐中不斷完善。但是,OO方法的用戶并不了解不同建模語言的優(yōu)缺點(diǎn)及相互之間的差異,因而很難根據(jù)應(yīng)用特點(diǎn)選擇合適的建模語言,于是爆發(fā)了一場(chǎng)“方法大戰(zhàn)”。90年代中,一批新方法出現(xiàn)了,其中最引人注目的是Booch1993、OOSE和OMT-2等。Booch是面向?qū)ο蠓椒ㄗ钤绲某珜?dǎo)者之一,他提出了面向?qū)ο筌浖こ痰母拍睢?991年,他將以前面向Ada的工作擴(kuò)展到整個(gè)面向?qū)ο笤O(shè)計(jì)領(lǐng)域。Booch1993比較適合于系統(tǒng)的設(shè)計(jì)和構(gòu)造。Rumbaugh等人提出了面向?qū)ο蟮慕<夹g(shù)(OMT)方法,采用了面向?qū)ο蟮母拍?,并引入各種獨(dú)立于語言的表示符。這種方法用對(duì)象模型、動(dòng)態(tài)模型、功能模型和用例模型,共同完成對(duì)整個(gè)系統(tǒng)的建模,所定義的概念和符號(hào)可用于軟件開發(fā)的分析、設(shè)計(jì)和實(shí)現(xiàn)的全過程,軟件開發(fā)人員不必在開發(fā)過程的不同階段進(jìn)行概念和符號(hào)的轉(zhuǎn)換。OMT-2特別適用于分析和描述以數(shù)據(jù)為中心的信息系統(tǒng)。Jacobson于1994年提出了OOSE方法,其最大特點(diǎn)是面向用例(Use-Case),并在用例的描述中引入了外部角色的概念。用例的概念是精確描述需求的重要武器,但用例貫穿于整個(gè)開發(fā)過程,包括對(duì)系統(tǒng)的測(cè)試和驗(yàn)證。OOSE比較適合支持商業(yè)工程和需求分析。此外,還有Coad/Yourdon方法,即著名的OOA/OOD,它是最早的面向?qū)ο蟮姆治龊驮O(shè)計(jì)方法之一。該方法簡(jiǎn)單、易學(xué),適合于面向?qū)ο蠹夹g(shù)的初學(xué)者使用,但由于該方法在處理能力方面的局限,目前已很少使用。概括起來,首先,面對(duì)眾多的建模語言,用戶由于沒有能力區(qū)別不同語言之間的差別,因此很難找到一種比較適合其應(yīng)用特點(diǎn)的語言;其次,眾多的建模語言實(shí)際上各有千秋;第三,雖然不同的建模語言大多雷同,但仍存在某些細(xì)微的差別,極大地妨礙了用戶之間的交流。因此在客觀上,極有必要在精心比較不同的建模語言優(yōu)缺點(diǎn)及總結(jié)面向?qū)ο蠹夹g(shù)應(yīng)用實(shí)踐的基礎(chǔ)上,組織聯(lián)合設(shè)計(jì)小組,根據(jù)應(yīng)用需求,取其精華,去其糟粕,求同存異,統(tǒng)一建模語言。1994年10月,GradyBooch和JimRumbaugh開始致力于這一工作。他們首先將Booch93和OMT-2統(tǒng)一起來,并于1995年10月發(fā)布了第一個(gè)公開版本,稱之為統(tǒng)一方法UM0.8(UnitiedMethod)。1995年秋,OOSE的創(chuàng)始人IvarJacobson加盟到這一工作。經(jīng)過Booch、Rumbaugh和Jacobson三人的共同努力,于1996年6月和10月分別發(fā)布了兩個(gè)新的版本,即UML0.9和UML0.91,并將UM重新命名為UML(UnifiedModelingLanguage)。1996年,一些機(jī)構(gòu)將UML作為其商業(yè)策略已日趨明顯。UML的開發(fā)者得到了來自公眾的正面反應(yīng),并倡議成立了UML成員協(xié)會(huì),以完善、加強(qiáng)和促進(jìn)UML的定義工作。當(dāng)時(shí)的成員有DEC、HP、I-Logix、Itellicorp、IBM、ICONComputing、MCISystemhouse、Microsoft、Oracle、RationalSoftware、TI以及Unisys。這一機(jī)構(gòu)對(duì)UML1.0(1997年1月)及UML1.1(1997年11月17日)的定義和發(fā)布起了重要的促進(jìn)作用。UML是一種定義良好、易于表達(dá)、功能強(qiáng)大且普遍適用的建模語言。它溶入了軟件工程領(lǐng)域的新思想、新方法和新技術(shù)。它的作用域不限于支持面向?qū)ο蟮姆治雠c設(shè)計(jì),還支持從需求分析開始的軟件開發(fā)的全過程。面向?qū)ο蠹夹g(shù)和UML的發(fā)展過程可用圖形來表示,標(biāo)準(zhǔn)建模語言的出現(xiàn)是其重要成果。在美國,截止1996年10月,UML獲得了工業(yè)界、科技界和應(yīng)用界的廣泛支持,已有700多個(gè)公司表示支持采用UML作為建模語言。1996年底,UML已穩(wěn)占面向?qū)ο蠹夹g(shù)市場(chǎng)的85%,成為可視化建模語言事實(shí)上的工業(yè)標(biāo)準(zhǔn)。1997年11月17日,OMG采納UML1.1作為基于面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建模語言。UML代表了面向?qū)ο蠓椒ǖ能浖_發(fā)技術(shù)的發(fā)展方向,具有巨大的市場(chǎng)前景,也具有重大的經(jīng)濟(jì)價(jià)值和國防價(jià)值。2.2.2TCP協(xié)議簡(jiǎn)單介紹TCP的全稱是TransmissionControlProtocol/InternetProtocol的簡(jiǎn)寫,中譯名為傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議,又名網(wǎng)絡(luò)通訊協(xié)議,是Internet最基本的協(xié)議、Internet國際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成。TCP/IP定義了電子設(shè)備如何連入因特網(wǎng),以及數(shù)據(jù)如何在它們之間傳輸?shù)臉?biāo)準(zhǔn)。協(xié)議采用了4層的層級(jí)結(jié)構(gòu),每一層都呼叫它的下一層所提供的協(xié)議來完成自己的需求。通俗而言:TCP負(fù)責(zé)發(fā)現(xiàn)傳輸?shù)膯栴},一有問題就發(fā)出信號(hào),要求重新傳輸,直到所有數(shù)據(jù)安全正確地傳輸?shù)侥康牡亍6鳬P是給因特網(wǎng)的每一臺(tái)電腦規(guī)定一個(gè)地址。TCP/IP協(xié)議并不完全符合OSI的七層參考模型。傳統(tǒng)的開放式系統(tǒng)互連參考模型,是一種通信協(xié)議的7層抽象的參考模型,其中每一層執(zhí)行某一特定任務(wù)。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數(shù)據(jù)鏈路層、網(wǎng)路層、傳輸層、話路層、表示層和應(yīng)用層。而TCP/IP通訊協(xié)議采用了4層的層級(jí)結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。這4層分別為:
應(yīng)用層:應(yīng)用程序間溝通的層,如簡(jiǎn)單電子郵件傳輸(SMTP)、文件傳輸協(xié)議(FTP)、網(wǎng)絡(luò)遠(yuǎn)程訪問協(xié)議(Telnet)等。
傳輸層:在此層中,它提供了節(jié)點(diǎn)間的數(shù)據(jù)傳送服務(wù),如傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報(bào)協(xié)議(UDP)等,TCP和UDP給數(shù)據(jù)包加入傳輸數(shù)據(jù)并把它傳輸?shù)较乱粚又?,這一層負(fù)責(zé)傳送數(shù)據(jù),并且確定數(shù)據(jù)已被送達(dá)并接收。
互連網(wǎng)絡(luò)層:負(fù)責(zé)提供基本的數(shù)據(jù)封包傳送功能,讓每一塊數(shù)據(jù)包都能夠到達(dá)目的主機(jī)(但不檢查是否被正確接收),如網(wǎng)際協(xié)議(IP)。
網(wǎng)絡(luò)接口層:對(duì)實(shí)際的網(wǎng)絡(luò)媒體的管理,定義如何使用實(shí)際網(wǎng)絡(luò)(如Ethernet、SerialLine等)來傳送數(shù)據(jù)。2.2.3Spring介紹Spring是一個(gè)開源框架,它由RodJohnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。輕量——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個(gè)大小只有1MB多的JAR文件里發(fā)布。并且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應(yīng)用中的對(duì)象不依賴于Spring的特定類??刂品崔D(zhuǎn)——Spring通過一種稱作控制反轉(zhuǎn)(IoC)的技術(shù)促進(jìn)了松耦合。當(dāng)應(yīng)用了IoC,一個(gè)對(duì)象依賴的其它對(duì)象會(huì)通過被動(dòng)的方式傳遞進(jìn)來,而不是這個(gè)對(duì)象自己創(chuàng)建或者查找依賴對(duì)象。你可以認(rèn)為IoC與JNDI相反——不是對(duì)象從容器中查找依賴,而是容器在對(duì)象初始化時(shí)不等對(duì)象請(qǐng)求就主動(dòng)將依賴傳遞給它。面向切面——Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級(jí)服務(wù)(例如審計(jì)(auditing)和事務(wù)(transaction)管理)進(jìn)行內(nèi)聚性的開發(fā)。應(yīng)用對(duì)象只實(shí)現(xiàn)它們應(yīng)該做的——完成業(yè)務(wù)邏輯——僅此而已。它們并不負(fù)責(zé)(甚至是意識(shí))其它的系統(tǒng)級(jí)關(guān)注點(diǎn),例如日志或事務(wù)支持。容器——Spring包含并管理應(yīng)用對(duì)象的配置和生命周期,在這個(gè)意義上它是一種容器,你可以配置你的每個(gè)bean如何被創(chuàng)建——基于一個(gè)可配置原型(prototype),你的bean可以創(chuàng)建一個(gè)單獨(dú)的實(shí)例或者每次需要時(shí)都生成一個(gè)新的實(shí)例——以及它們是如何相互關(guān)聯(lián)的。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級(jí)的EJB容器,它們經(jīng)常是龐大與笨重的,難以使用。框架——Spring可以將簡(jiǎn)單的組件配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對(duì)象被聲明式地組合,典型地是在一個(gè)XML文件里。Spring也提供了很多基礎(chǔ)功能(事務(wù)管理、持久化框架集成等等),將應(yīng)用邏輯的開發(fā)留給了你。所有Spring的這些特征使你能夠編寫更干凈、更可管理、并且更易于測(cè)試的代碼。它們也為Spring中的各種模塊提供了基礎(chǔ)支持。Spring框架是一個(gè)分層架構(gòu),由7個(gè)定義良好的模塊組成。Spring模塊構(gòu)建在核心容器之上,核心容器定義了創(chuàng)建、配置和管理bean的方式。組成Spring框架的每個(gè)模塊(或組件)都可以單獨(dú)存在,或者與其他一個(gè)或多個(gè)模塊聯(lián)合實(shí)現(xiàn)。每個(gè)模塊的功能如下:
核心容器:核心容器提供Spring框架的基本功能。核心容器的主要組件是BeanFactory,它是工廠模式的實(shí)現(xiàn)。BeanFactory使用控制反轉(zhuǎn)(IOC)模式將應(yīng)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開。Spring上下文:Spring上下文是一個(gè)配置文件,向Spring框架提供上下文信息。Spring上下文包括企業(yè)服務(wù),例如JNDI、EJB、電子郵件、國際化、校驗(yàn)和調(diào)度功能。SpringAOP:通過配置管理特性,SpringAOP模塊直接將面向方面的編程功能集成到了Spring框架中。所以,可以很容易地使Spring框架管理的任何對(duì)象支持AOP。SpringAOP模塊為基于Spring的應(yīng)用程序中的對(duì)象提供了事務(wù)管理服務(wù)。通過使用SpringAOP,不用依賴EJB組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。SpringDAO:JDBCDAO抽象層提供了有意義的異常層次結(jié)構(gòu),可用該結(jié)構(gòu)來管理異常處理和不同數(shù)據(jù)庫供應(yīng)商拋出的錯(cuò)誤消息。異常層次結(jié)構(gòu)簡(jiǎn)化了錯(cuò)誤處理,并且極大地降低了需要編寫的異常代碼數(shù)量(例如打開和關(guān)閉連接)。SpringDAO的面向JDBC的異常遵從通用的DAO異常層次結(jié)構(gòu)。SpringORM:Spring框架插入了若干個(gè)ORM框架,從而提供了ORM的對(duì)象關(guān)系工具,其中包括JDO、Hibernate和iBatisSQLMap。所有這些都遵從Spring的通用事務(wù)和DAO異常層次結(jié)構(gòu)。SpringWeb模塊:Web上下文模塊建立在應(yīng)用程序上下文模塊之上,為基于Web的應(yīng)用程序提供了上下文。所以,Spring框架支持與JakartaStruts的集成。Web模塊還簡(jiǎn)化了處理多部分請(qǐng)求以及將請(qǐng)求參數(shù)綁定到域?qū)ο蟮墓ぷ?。SpringMVC框架:MVC框架是一個(gè)全功能的構(gòu)建Web應(yīng)用程序的MVC實(shí)現(xiàn)。通過策略接口,MVC框架變成為高度可配置的,MVC容納了大量視圖技術(shù),其中包括JSP、Velocity、Tiles、iText和POI。2.2.4Struts2介紹Struts2是Struts的下一代產(chǎn)品,是在struts1和WebWork的技術(shù)基礎(chǔ)上進(jìn)行了合并的全新的Struts2框架。其全新的Struts2的體系結(jié)構(gòu)與Struts1的體系結(jié)構(gòu)差別巨大。Struts2以WebWork為核心,采用攔截器的機(jī)制來處理用戶的請(qǐng)求,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯控制器能夠與ServletAPI完全脫離開,所以Struts2可以理解為WebWork的更新產(chǎn)品。雖然從Struts1到Struts2有著太大的變化,但是相對(duì)于WebWork,Struts2的變化很小。在Struts2體系結(jié)構(gòu)中當(dāng)Web容器收到請(qǐng)求(HttpServletRequest)它將請(qǐng)求傳遞給一個(gè)標(biāo)準(zhǔn)的的過濾鏈包括(ActionContextCleanUp)過濾器,然后經(jīng)過Otherfilters(SiteMesh,etc),接下來需要調(diào)用FilterDispatcher核心控制器,然后它調(diào)用ActionMapper確定請(qǐng)求那個(gè)Action,ActionMapper返回一個(gè)收集Action詳細(xì)信息的ActionMaping對(duì)象。接下來FilterDispatcher將控制權(quán)委派給ActionProxy,ActionProxy調(diào)用配置管理器(ConfigurationManager)從配置文件中讀取配置信息(struts.xml),然后創(chuàng)建ActionInvocation對(duì)象,ActionInvocation在調(diào)用Action之前會(huì)依次的調(diào)用所用配置攔截器(InterceptorN)一旦執(zhí)行結(jié)果返回結(jié)果字符串ActionInvocation負(fù)責(zé)查找結(jié)果字符串對(duì)應(yīng)的(Result)然后執(zhí)行這個(gè)ResultResult會(huì)調(diào)用一些模版(JSP)來呈現(xiàn)頁面,之后攔截器(InterceptorN)會(huì)在被執(zhí)行(順序和Action執(zhí)行之前相反)最后響應(yīng)(HttpServletResponse)被返回在web.xml中配置的那些過濾器和(核心控制器)(FilterDispatcher)。Struts2的攔截器在在AOP(Aspect-OrientedProgramming)中用于在某個(gè)方法或字段被訪問之前,進(jìn)行攔截然后在之前或之后加入某些操作。攔截是AOP的一種實(shí)現(xiàn)策略。在Webwork的中文文檔的解釋為——攔截器是動(dòng)態(tài)攔截Action調(diào)用的對(duì)象。它提供了一種機(jī)制可以使開發(fā)者可以定義在一個(gè)action執(zhí)行的前后執(zhí)行的代碼,也可以在一個(gè)action執(zhí)行前阻止其執(zhí)行。同時(shí)也是提供了一種可以提取action中可重用的部分的方式。大部分時(shí)候,攔截器方法都是通過代理的方式來調(diào)用的。Struts2的攔截器實(shí)現(xiàn)相對(duì)簡(jiǎn)單。當(dāng)請(qǐng)求到達(dá)Struts2的ServletDispatcher時(shí),Struts2會(huì)查找配置文件,并根據(jù)其配置實(shí)例化相對(duì)的攔截器對(duì)象,然后串成一個(gè)列表(list),最后一個(gè)一個(gè)地調(diào)用列表中的攔截器Struts2已經(jīng)為您提供豐富多樣的,功能齊全的攔截器實(shí)現(xiàn)。因此可以至struts2的jar包內(nèi)的struts-default.xml查看關(guān)于默認(rèn)的攔截器與攔截器鏈的配置。2.2.5Hibernate介紹Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫。Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。Hibernate的核心接口一共有6個(gè),分別為:Session、SessionFactory、Transaction、Query、Criteria和Configuration。這6個(gè)核心接口在任何開發(fā)中都會(huì)用到。通過這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對(duì)這6個(gè)核心接口分別加以介紹。 1)SessionSession接口負(fù)責(zé)執(zhí)行被持久化對(duì)象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對(duì)象是非線程安全的。同時(shí),Hibernate的session不同于JSP應(yīng)用中的HttpSession。這里當(dāng)使用session這個(gè)術(shù)語時(shí),其實(shí)指的是Hibernate中的session,而以后會(huì)將HttpSession對(duì)象稱為用戶session。 2)SessionFactorySessionFactory接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session對(duì)象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級(jí)的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè)SessionFactory就夠,當(dāng)需要操作多個(gè)數(shù)據(jù)庫時(shí),可以為每個(gè)數(shù)據(jù)庫指定一個(gè)SessionFactory。 3)TransactionTransaction接口是一個(gè)可選的API,可以選擇不使用這個(gè)接口,取而代之的是Hibernate的設(shè)計(jì)者自己寫的底層事務(wù)處理代碼。Transaction接口是對(duì)實(shí)際事務(wù)實(shí)現(xiàn)的一個(gè)抽象,這些實(shí)現(xiàn)包括JDBC的事務(wù)、JTA中的UserTransaction、甚至可以是CORBA事務(wù)。之所以這樣設(shè)計(jì)是能讓開發(fā)者能夠使用一個(gè)統(tǒng)一事務(wù)的操作界面,使得自己的項(xiàng)目可以在不同的環(huán)境和容器之間方便地移值。 4)QueryQuery接口讓你方便地對(duì)數(shù)據(jù)庫及持久對(duì)象進(jìn)行查詢,它可以有兩種表達(dá)方式:HQL語言或本地?cái)?shù)據(jù)庫的SQL語句。Query經(jīng)常被用來綁定查詢參數(shù)、限制查詢記錄數(shù)量,并最終執(zhí)行查詢操作。 5)CriteriaCriteria接口與Query接口非常類似,允許創(chuàng)建并執(zhí)行面向?qū)ο蟮臉?biāo)準(zhǔn)化查詢。值得注意的是Query接口也是輕量級(jí)的,它不能在Session之外使用。 6)ConfigurationConfiguration接口的作用是對(duì)Hibernate進(jìn)行配置,以及對(duì)它進(jìn)行啟動(dòng)。在Hibernate的啟動(dòng)過程中,Configuration類的實(shí)例首先定位映射文檔的位置,讀取這些配置,然后創(chuàng)建一個(gè)SessionFactory對(duì)象。雖然Configuration接口在整個(gè)Hibernate項(xiàng)目中只扮演著一個(gè)很小的角色,但它是啟動(dòng)hibernate時(shí)所遇到的每一個(gè)對(duì)象。hibernate優(yōu)點(diǎn):1、封裝了jdbc,簡(jiǎn)化了很多重復(fù)性代碼。2、簡(jiǎn)化了DAO層編碼工作,使開發(fā)更對(duì)象化了。3、移植性好,支持各種數(shù)據(jù)庫,如果換個(gè)數(shù)據(jù)庫只要在配置文件中變換配置就可以了,不用改變hibernate代碼。4、支持透明持久化,因?yàn)閔ibernate操作的是純粹的(pojo)java類,沒有實(shí)現(xiàn)任何接口,沒有侵入性。所以說它是一個(gè)輕量級(jí)框架。2.2.6JavaScript開發(fā)技術(shù)介紹JavaScript是一種基于對(duì)象(Object)和事件驅(qū)動(dòng)(EventDriven)并具有安全性能的腳本語言。它可以嵌入到HTML文檔中使網(wǎng)頁更加生動(dòng)活潑,并具有交互性。HTML語言是網(wǎng)頁設(shè)計(jì)普遍采取的一種超文本標(biāo)記語言,但HTML自身不能為網(wǎng)頁提供很多動(dòng)態(tài)支持,它只能創(chuàng)建超鏈接以允許用戶瀏覽不同的HTML文檔。HTML也不能接受用戶輸入,更不能對(duì)用戶請(qǐng)求作出反應(yīng)。JavaScript的出現(xiàn)彌補(bǔ)了HTML語言的缺陷,是Web上新的、強(qiáng)大的編程語言。一種編程語言通常是由另外一種編程語言演變而來的,JavaScript的發(fā)展歷史還得從Java談起。Java最初是SunMicrosystems公司為了在實(shí)時(shí)嵌入式系統(tǒng)中使用而開發(fā)的。最初只有HotJava支持Java,而HotJava正是Sun公司為支持Java而開發(fā)的一種實(shí)驗(yàn)性Web瀏覽器。當(dāng)Netscape公司在認(rèn)識(shí)到Java的巨大潛力后,便把它和自己開發(fā)的Web瀏覽器——NetscapeNavigator結(jié)合到一起。Netscape公司最初開發(fā)了一個(gè)LiveScript語言,在Navigator和Web服務(wù)器產(chǎn)品中加進(jìn)了基本的腳本功能。當(dāng)Navigator2.0中加進(jìn)了Java小程序支持后,Netscape公司便把最初的LiveScript更名成了JavaScript。接著,Microsoft公司的瀏覽器InternetExplorer3.0也開始支持JavaScript。此后,許多公司相繼宣布承認(rèn)JavaScript為Internet上的開放式腳本編寫標(biāo)準(zhǔn),并且把它添加到了自己的產(chǎn)品中。因此,目前流行的瀏覽器都支持JavaScript。JavaScript因而也日益流行起來。JavaScript是一種簡(jiǎn)單的腳本編程語言,主要適用于簡(jiǎn)單、小型的程序。它可以與HTML超文本標(biāo)記語言、Java腳本語言(Java小程序)一起實(shí)現(xiàn)在一個(gè)Web頁面中鏈接多個(gè)對(duì)象,與Web客戶交互作用,從而開發(fā)出客戶端的應(yīng)用程序等。它是通過嵌入或調(diào)入到標(biāo)準(zhǔn)的HTML語言中實(shí)現(xiàn)的,它的出現(xiàn)彌補(bǔ)了HTML語言的缺陷。JavaScript語言有以下特點(diǎn)。1.JavaScript是一種腳本編寫語言腳本(Script)是一種能夠完成某些特殊功能的指令序列(小程序段)。這些指令序列不像一般程序那樣需要被編譯才能執(zhí)行,而是在程序運(yùn)行過程中被逐行地解釋。在腳本中所使用的命令與語句集稱為腳本語言。JavaScript是一種腳本語言,它采用小程序段的方式實(shí)現(xiàn)編程。像其他腳本語言一樣,JavaScript同樣也是一種解釋性語言,它提供了一個(gè)開發(fā)過程,它的基本結(jié)構(gòu)形式與C、C++、VB十分類似,但它不像這些語言那樣,需要先編譯,而是在程序運(yùn)行過程中被逐行地解釋。它通過與HTML標(biāo)識(shí)結(jié)合在一起來方便用戶的使用操作。2.JavaScript是一種基于對(duì)象的語言JavaScript是一種基于對(duì)象的語言,這意味著它能運(yùn)用已經(jīng)創(chuàng)建的對(duì)象,但不能派生新的對(duì)象,也就是沒有面向?qū)ο蟪绦蛟O(shè)計(jì)語言(如Java就是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言)所具有的繼承、多態(tài)等特點(diǎn),這使JavaScript更容易學(xué)習(xí)。3.簡(jiǎn)單性JavaScript的簡(jiǎn)單性主要體現(xiàn)在:第一,它是一種基于Java基本語句和控制流之上的簡(jiǎn)單而緊湊的設(shè)計(jì),從而對(duì)學(xué)習(xí)Java是一種非常好的過渡;第二,它的變量類型采用弱類型,并未使用嚴(yán)格的數(shù)據(jù)類型;第三,JavaScript可以用很小的程序做大量的事,如創(chuàng)建交互式網(wǎng)頁、控制瀏覽器的行為等。用戶無須有高性能的電腦,也無須安裝復(fù)雜的軟件,僅需一個(gè)字處理軟件及一個(gè)瀏覽器,即可使用JavaScript進(jìn)行程序設(shè)計(jì)。JavaScript不需要耗時(shí)的編譯過程,從而使腳本程序的開發(fā)周期比較短。JavaScript的大多數(shù)界面特征,均由瀏覽器和HTML代碼處理,因此更加提高了開發(fā)速度。4.安全性JavaScript是一種安全性語言,它不允許訪問本地的硬盤,更不能將數(shù)據(jù)存入到服務(wù)器上,也不允許對(duì)網(wǎng)絡(luò)文檔進(jìn)行修改和刪除,只能通過瀏覽器實(shí)現(xiàn)信息瀏覽或動(dòng)態(tài)交互,從而可以有效地防止數(shù)據(jù)丟失。5.動(dòng)態(tài)性JavaScript是動(dòng)態(tài)的,它可以直接對(duì)用戶或客戶輸入作出響應(yīng),無須經(jīng)過Web服務(wù)程序。它對(duì)用戶反映的響應(yīng)是采用事件驅(qū)動(dòng)的方式進(jìn)行的。在主頁(HomePage)中執(zhí)行了某種操作所產(chǎn)生的動(dòng)作,就稱為“事件”(Event)。如按下鼠標(biāo)、移動(dòng)窗口、選擇菜單等都可以視為事件。當(dāng)事件發(fā)生后,就可能會(huì)引起相應(yīng)的事件響應(yīng)。6.跨平臺(tái)性JavaScript是依賴于瀏覽器本身的,與操作環(huán)境無關(guān),只要能運(yùn)行瀏覽器的計(jì)算機(jī),并有支持JavaScript的瀏覽器就可以正確執(zhí)行,從而實(shí)現(xiàn)了“編寫一次,走遍天下”的夢(mèng)想。正是以上的這些JavaScript的特點(diǎn),使JavaScript在Web編程領(lǐng)域中得到了廣泛的普及和運(yùn)用,具有廣闊的發(fā)展前景。為了能夠讓瀏覽器識(shí)別HTML文檔中的腳本代碼行,每個(gè)腳本必須包含在Script容器標(biāo)識(shí)符(也稱為標(biāo)簽)內(nèi),換言之,要用打開標(biāo)簽<script>開始腳本,用關(guān)閉標(biāo)簽</script>來結(jié)束腳本。無論是表單或者段落,在HTML中,都要使用首尾標(biāo)記對(duì)標(biāo)記內(nèi)容進(jìn)行封裝。在HTML文件中嵌入JavaScript的方法,可以通過<script>標(biāo)簽的屬性來決定。<script>…</script>標(biāo)簽對(duì)的位置并不是固定的,可以出現(xiàn)在HTML文檔的<head>…</head>或者<boda>…</body>標(biāo)簽對(duì)之間,也可以出現(xiàn)在文檔的多個(gè)位置。通過<script>…</script>標(biāo)簽對(duì)來嵌入多段JavaScript代碼,該<script>標(biāo)簽有兩個(gè)可選屬性,這兩個(gè)屬性決定著正在使用的JavaScript是以哪種方式并入HTML文件的。利用<script>標(biāo)簽及其屬性最終能夠用兩種不同的方法將JavaScript程序集成到HTML文件中。如果src屬性生效,開發(fā)者就能夠把存儲(chǔ)到某個(gè)單獨(dú)文件中的某段JavaScript代碼引用過來,并簡(jiǎn)單地將這些文件加載到單獨(dú)的Web頁面中。如果將language屬性設(shè)置為JavaScript,則表示文檔中的腳本語言是JavaScript,而不是其他腳本語言,開發(fā)者就可以直接在HTML文檔中編寫JavaScript腳本程序。這兩種屬性可以單獨(dú)使用,也可以并用。用上述兩種方法在HTML文檔中嵌入的JavaScript腳本都是在文檔載入時(shí)開始運(yùn)行的。這種在頁面載入時(shí)就運(yùn)行的腳本稱為實(shí)時(shí)腳本。如果JavaScript腳本是在文檔載入后或者響應(yīng)用戶動(dòng)作時(shí)才運(yùn)行,這種方式稱為延時(shí)腳本。延時(shí)腳本是通過將JavaScript代碼定義在函數(shù)中實(shí)現(xiàn)的。3系統(tǒng)分析3.1系統(tǒng)總需求3.1.1需求描述與分析 1)需求描述 勤工儉學(xué)勤工儉學(xué)管理信息系統(tǒng)的系統(tǒng)需求主要來自勤工儉學(xué)者和勤工儉學(xué)工作相關(guān)的工作人員,用以實(shí)現(xiàn)學(xué)生用戶和數(shù)據(jù)管理、用工分配、查詢、統(tǒng)計(jì)分析等功能。學(xué)生用戶的主要需求是能夠注冊(cè)自己的賬戶,填充自己的申請(qǐng)信息,瀏覽自己的信息,修改自己的信息。勤工助學(xué)相關(guān)工作人員需要能夠通過信息系統(tǒng)實(shí)現(xiàn)核實(shí)、審查、安排、核算、反饋等工作,以達(dá)到高效準(zhǔn)確完成勤工助學(xué)工作的目的。勤工儉學(xué)管理信息系統(tǒng)需要保證信息的安全,系統(tǒng)的用戶應(yīng)具有部門權(quán)限和操作權(quán)限。系統(tǒng)中的用戶具有不同的部門角色,處于不同部門的用戶只能進(jìn)行本部門職能范圍內(nèi)的操作。系統(tǒng)中的用戶具有不同的權(quán)限,用戶只能進(jìn)行自己權(quán)限相對(duì)應(yīng)的操作。 2)需求分析 從提出的需求來看,勤工儉學(xué)管理信息系統(tǒng)的參與者有三大類:學(xué)生用戶、工作人員用戶、管理員用戶,因此系統(tǒng)需要為三類用戶提供用戶接口,設(shè)計(jì)不同的操作權(quán)限。 系統(tǒng)需求描述中提出的操作要求需要通過功能模塊來實(shí)現(xiàn),由此可以確定管理信息系統(tǒng)的功能模塊,如圖3.1所示。圖3.1系統(tǒng)功能模塊圖3.1.2系統(tǒng)總功能學(xué)生注冊(cè) 學(xué)生登錄系統(tǒng)進(jìn)行注冊(cè),同時(shí)填寫學(xué)生自身信息(包括學(xué)號(hào)、登錄密碼、用戶姓名、身份證號(hào)、性別、年齡、專業(yè)、地址、電話、電子郵件、銀行卡號(hào)、備注等)。管理員審核后,即可報(bào)名勤工助學(xué)。學(xué)生登錄學(xué)生登錄系統(tǒng)進(jìn)行登錄,在填寫完學(xué)號(hào)、密碼后,如果賬號(hào)密碼正確則登錄成功,否則登錄失敗。學(xué)生查詢個(gè)人信息學(xué)生登錄系統(tǒng)后,可以查詢自身信息。學(xué)生更改個(gè)人信息學(xué)生登錄系統(tǒng)后,查看自身信息,如需修改個(gè)人信息,進(jìn)行修改個(gè)人信息。學(xué)生查詢用人單位信息學(xué)生登錄系統(tǒng)后,可以查看所有已審核的公司的信息。學(xué)生查詢招聘信息學(xué)生登錄系統(tǒng)后,可以查看管理員發(fā)布的招聘信息。學(xué)生報(bào)名勤工儉學(xué)學(xué)生登錄系統(tǒng)后,查看崗位信息,根據(jù)查看到的崗位信息選擇合適的職位。學(xué)生查看狀態(tài)學(xué)生登錄系統(tǒng)后,查看報(bào)名單信息,可以根據(jù)報(bào)名單查看自身是否被錄用。被錄用的可以查看工作開始時(shí)間,并且查看自身的工作狀態(tài)。如果已經(jīng)離職,可以查看離職時(shí)間。確認(rèn)收到工資學(xué)生登錄系統(tǒng)后,查看工資單信息,如果已經(jīng)收到工資,點(diǎn)擊收到工資按鈕,確認(rèn)已收到工資。公司注冊(cè) 公司登錄系統(tǒng)進(jìn)行注冊(cè),同時(shí)填寫公司自身信息(包括登錄賬戶、登錄密碼、公司名稱、公司地址、電話、電子郵件、聯(lián)系人、公司簡(jiǎn)介等)。管理員審核后,即可發(fā)布勤工職位信息。公司登錄公司登錄系統(tǒng)進(jìn)行登錄,在填寫完賬號(hào)、密碼后,如果賬號(hào)密碼正確則登錄成功,否則登錄失敗。公司查詢本公司信息 公司登錄系統(tǒng)后,可以查看到本公司的詳細(xì)信息。公司更改本公司信息公司登錄系統(tǒng)后,查看本公司信息,如需修改信息,進(jìn)行修改信息。公司查看職位信息 公司登錄系統(tǒng)后,可以查看已經(jīng)本公司已經(jīng)發(fā)布的職位信息。公司發(fā)布職位信息 公司登錄系統(tǒng)后,可以發(fā)布職位信息(包括標(biāo)題、職位名稱、簡(jiǎn)介、申請(qǐng)截止日期、面試地點(diǎn)、面試時(shí)間、預(yù)計(jì)工資、備注等)。管理員審核后,成功發(fā)布該職位。公司修改職位信息 公司登錄系統(tǒng)后,可以修改職位信息。修改后管理員審核該職位。公司刪除職位信息 公司登錄系統(tǒng)后,可以刪除本公司發(fā)布的信息。公司錄用招聘者 公司登錄系統(tǒng)后,查看報(bào)名表信息,可以錄用招聘者,開始。公司錄用招聘者 公司而登陸系統(tǒng)后,查看報(bào)名表信息,可以解雇招聘者。管理員注冊(cè) 管理員登錄系統(tǒng)進(jìn)行注冊(cè),同時(shí)填寫管理員信息(包括登錄賬戶、登錄密碼、管理員名稱、備注等)。管理員登錄管理員登錄系統(tǒng)進(jìn)行登錄,在填寫完賬號(hào)、密碼后,如果賬號(hào)密碼正確則登錄成功,否則登錄失敗。查詢用人單位信息 管理員登錄系統(tǒng)后,可以查看所以用人單位信息。審核用人單位信息 管理員登錄系統(tǒng)后,可以查看用人單位信息,審核單位信息。查看學(xué)生信息 管理員登錄系統(tǒng)后,可以查看所以學(xué)生信息。審核學(xué)生信息 管理員登錄系統(tǒng)后,可以查看學(xué)生信息,審核學(xué)生信息。發(fā)布招聘信息 管理員登錄系統(tǒng)后,可以發(fā)布招聘信息。發(fā)放工資 理員登錄系統(tǒng)后,查看工資表信息,發(fā)放工資。3.2系統(tǒng)需求分析3.2.1系統(tǒng)活動(dòng)者與用例模型 1)活動(dòng)者:系統(tǒng)的活動(dòng)者是用戶作用于系統(tǒng)的一個(gè)角色?;顒?dòng)者通過與系統(tǒng)交互達(dá)到目標(biāo)?;顒?dòng)者是用來建立系統(tǒng)外部用戶的,活動(dòng)者直接與系統(tǒng)交互作用?;顒?dòng)者是系統(tǒng)外邊界之外的對(duì)象的描述?;顒?dòng)者不一定是人,也可能是一個(gè)外部系統(tǒng),該系統(tǒng)與本系統(tǒng)相互通信。 根據(jù)系統(tǒng)的需求描述和分析,可以分析出活動(dòng)者,系統(tǒng)活動(dòng)者分為三類,分別為勤工儉學(xué)學(xué)生、公司、管理員。 2)用例:在不展現(xiàn)一個(gè)系統(tǒng)或子系統(tǒng)內(nèi)部結(jié)構(gòu)的情況下,對(duì)系統(tǒng)或子系統(tǒng)的某個(gè)連貫的功能單元的定義和描述。用例是系統(tǒng)單元提供外部可感知的功能單元,表達(dá)成系統(tǒng)單位和與之相交互的一個(gè)或多個(gè)活動(dòng)者的消息序列。用例的目的是定義清晰的行為塊而不解釋系統(tǒng)的內(nèi)部結(jié)構(gòu)。 3)用例模型主要由以下模型元素構(gòu)成:參與者是指存在于被定義系統(tǒng)外部并與該系統(tǒng)發(fā)生交互的人或其他系統(tǒng),他們代表的是系統(tǒng)的使用者或使用環(huán)境。用例用于表示系統(tǒng)所提供的服務(wù),它定義了系統(tǒng)是如何被參與者所使用的,它描述的是參與者為了使用系統(tǒng)所提供的某一完整功能而與系統(tǒng)之間發(fā)生的一段對(duì)話。 系統(tǒng)分為三個(gè)子系統(tǒng),分別是勤工學(xué)生信息管理子系統(tǒng)、用人單位信息管理子系統(tǒng)、和管理機(jī)構(gòu)信息子系統(tǒng)。3.2.2用例圖 用例圖定義:由參與者(Actor)、用例(UseCase)以及它們之間的關(guān)系構(gòu)成的用于描述系統(tǒng)功能的靜態(tài)視圖稱為用例圖。用例圖(UserCase)是被稱為參與者的外部用戶所能觀察到的系統(tǒng)功能的模型圖,呈現(xiàn)了一些參與者和一些用例,以及它們之間的關(guān)系,主要用于對(duì)系統(tǒng)、子系統(tǒng)或類的功能行為進(jìn)行建模。用例圖展示了用例之間以及同用例參與者之間是怎樣相互聯(lián)系的。用例圖用于對(duì)系統(tǒng)、子系統(tǒng)或類的行為進(jìn)行可視化,使用戶能夠理解如何使用這些元素,并使開發(fā)者能夠?qū)崿F(xiàn)這些元素。將每個(gè)系統(tǒng)中的用戶分出工作狀態(tài)的屬性和工作內(nèi)容,方便建模,防止功能重復(fù)和多余的類。用例圖定義了系統(tǒng)的功能需求,它是從系統(tǒng)的外部看系統(tǒng)功能,并不描述系統(tǒng)內(nèi)部對(duì)功能的具體實(shí)現(xiàn)。 1)勤工學(xué)生參與根據(jù)用例,分析參與者得到頂層初始用例圖。圖系統(tǒng)頂層用例圖用例圖(簡(jiǎn)略圖)圖用例圖簡(jiǎn)略圖3.2.3用例文檔描述 根據(jù)需求分析,建立的用例模型和確定了功能模塊。下面是幾個(gè)比較重要的用例注冊(cè)用例用例名稱注冊(cè)用例描述勤工學(xué)生注冊(cè)執(zhí)行者勤工學(xué)生前置條件這個(gè)用例打開登錄頁面后置條件登錄成功后跳轉(zhuǎn)到主頁面基本流勤工學(xué)生打開勤工中心主頁點(diǎn)擊勤工學(xué)生注冊(cè)填寫注冊(cè)信息用例終止擴(kuò)展流業(yè)務(wù)規(guī)則:注冊(cè)時(shí)默認(rèn)學(xué)號(hào)等不能為空。備注:登錄用例用例名稱登錄用例描述勤工學(xué)生登錄系統(tǒng)執(zhí)行者勤工學(xué)生前置條件在這個(gè)用例開始前,申請(qǐng)者必須進(jìn)入系統(tǒng)登錄頁面。后置條件登錄成功則跳轉(zhuǎn)到主頁面,否則返回登錄界面基本流用人單位打開勤工中心登錄界面點(diǎn)擊學(xué)生登錄輸入用戶名密碼用例終止擴(kuò)展流業(yè)務(wù)規(guī)則:賬號(hào)密碼默認(rèn)不能為空備注:審核勤工學(xué)生用例用例名稱審核勤工學(xué)生用例用例描述管理員對(duì)勤工學(xué)生信息進(jìn)行審核執(zhí)行者管理員前置條件在這個(gè)用例開始前,申請(qǐng)者必須登錄后置條件審核成功,勤工學(xué)生狀態(tài)改變,否則不變?;玖鞴芾韱T登錄系統(tǒng),點(diǎn)擊審核勤工學(xué)生列表查看所有學(xué)生信息點(diǎn)擊相應(yīng)的審核按鈕用例終止擴(kuò)展流業(yè)務(wù)規(guī)則:審核成功后將勤工學(xué)生狀態(tài)改為已審核,并將當(dāng)前管理員名字填入。備注:申請(qǐng)勤工助學(xué)用例用例名稱申請(qǐng)勤工助學(xué)用例描述勤工學(xué)生申請(qǐng)勤工助學(xué)職位執(zhí)行者勤工學(xué)生前置條件在這個(gè)用例開始前,申請(qǐng)者必須登錄到系統(tǒng)中后置條件如果勤工學(xué)生申請(qǐng)勤工儉學(xué),公司選擇是否錄用基本流勤工學(xué)生進(jìn)入登錄系統(tǒng)學(xué)生點(diǎn)擊查詢職位信息,選擇合適的職位學(xué)生報(bào)名職位,申請(qǐng)勤工儉學(xué)擴(kuò)展流業(yè)務(wù)規(guī)則:申請(qǐng)職位默認(rèn)填寫申請(qǐng)職位編號(hào),當(dāng)前學(xué)生,工資,當(dāng)前時(shí)間,狀態(tài),工作狀態(tài)。備注:錄用用例用例名稱錄用用例描述用人單位登錄系統(tǒng)進(jìn)行錄用操作執(zhí)行者用人單位前置條件在這個(gè)用例開始前,勤工學(xué)生已經(jīng)報(bào)名。后置條件用人單位雇傭?qū)W生后,學(xué)生開始勤工儉學(xué)?;玖饔萌藛挝贿M(jìn)入系統(tǒng)后,點(diǎn)擊申請(qǐng)表信息。點(diǎn)擊相對(duì)應(yīng)的申請(qǐng)表,進(jìn)行雇傭勤工學(xué)生。用例終止擴(kuò)展流業(yè)務(wù)規(guī)則:離職默認(rèn)將填寫當(dāng)前時(shí)間,對(duì)應(yīng)職位的金額,并且修改狀態(tài)為錄用。備注:離崗用例用例名稱離崗用例描述用人單位登錄系統(tǒng)進(jìn)行離崗操作執(zhí)行者用人單位前置條件在這個(gè)用例開始前,勤工學(xué)生已經(jīng)被雇傭。后置條件用人單位解雇學(xué)生后,管理員進(jìn)行發(fā)放工資。基本流用人單位進(jìn)入系統(tǒng)后,點(diǎn)擊申請(qǐng)表信息。點(diǎn)擊相對(duì)應(yīng)的申請(qǐng)表,進(jìn)行解雇勤工學(xué)生。用例終止擴(kuò)展流業(yè)務(wù)規(guī)則:離職默認(rèn)將填寫當(dāng)前時(shí)間,并且修改狀態(tài)為離職。備注:發(fā)放工資用例用例名稱發(fā)放工資用例描述管理員登錄系統(tǒng)發(fā)放勤工學(xué)生所選擇職位對(duì)應(yīng)工資執(zhí)行者管理員前置條件在這個(gè)用例開始前,勤工學(xué)生已經(jīng)離職,已經(jīng)建立相應(yīng)的工資表信息后置條件發(fā)放成功后,勤工學(xué)生登錄系統(tǒng)確認(rèn)收到工資基本流管理員登錄系統(tǒng),點(diǎn)擊工資單列表。點(diǎn)擊相對(duì)應(yīng)的發(fā)放工資按鈕用例終止擴(kuò)展流業(yè)務(wù)規(guī)則:發(fā)放工資默認(rèn)將申請(qǐng)表的工資填入工資單,并且將當(dāng)前時(shí)間、發(fā)放人信息寫入工資表。備注:確認(rèn)收到工資用例名稱確認(rèn)收到工資用例描述勤工學(xué)生登錄系統(tǒng)進(jìn)行確認(rèn)收到工資操作執(zhí)行者勤工學(xué)生前置條件在這個(gè)用例開始前,管理員已經(jīng)發(fā)放工資。后置條件勤工學(xué)生確認(rèn)收到工資,否則未收到?;玖髑诠W(xué)生登錄系統(tǒng),點(diǎn)擊工資單列表。點(diǎn)擊相對(duì)應(yīng)的工資單,確認(rèn)收到工資用例終止擴(kuò)展流業(yè)務(wù)規(guī)則:確認(rèn)工資默認(rèn)更改是否收到狀態(tài)為已收到。備注:4勤工儉學(xué)系統(tǒng)設(shè)計(jì)4.1系統(tǒng)中包含實(shí)體類及相互關(guān)系4.1.1由前面文檔描述,得出以下類圖: 1)確認(rèn)類:類是一類具有相同特征的對(duì)象的描述,類的特征包括行為和屬性。對(duì)象是類的實(shí)例。面向?qū)ο蟮暮诵乃枷刖褪怯妙惖母拍顏韯澐謫栴}中設(shè)計(jì)的各種對(duì)象,并且組織結(jié)構(gòu)。 2)根據(jù)以上分析,得到以下類圖有: 工資信息類(PaySheet) 新聞信息類(NewS) 管理信息類(Manager) 公司信息類(Company) 勤工學(xué)生類(Student) 職位信息類(Position) 報(bào)名/工資信息類(Application)4.1.2確定類與類之間的關(guān)系圖4.1.2系統(tǒng)類圖4.2時(shí)序圖 時(shí)序圖(SequenceDiagram)描述了一組交互對(duì)象間的交互方式,它表示完成某項(xiàng)行為的對(duì)象和這些對(duì)象之間傳遞消息的時(shí)間順序。一般情況,使用時(shí)序圖來描述一個(gè)用例的事件流,標(biāo)識(shí)參與這個(gè)用例的對(duì)象,并以服務(wù)的形式將用例的行為分配到對(duì)象上。通過對(duì)用例進(jìn)行時(shí)序圖建模,對(duì)用例的流程進(jìn)行細(xì)化,以便發(fā)現(xiàn)更多的對(duì)象和服務(wù)。 時(shí)序圖包含4個(gè)元素,分別是對(duì)象(Object)、生命線(Lifeline)、消息(Message)和激活(Activation)。4.2.1用例“注冊(cè)”的時(shí)序圖圖4.2.1注冊(cè)時(shí)序圖 備注:register():注冊(cè)學(xué)生add():添加學(xué)生save():新增學(xué)生4.2.2用例“登錄”的時(shí)序圖圖4.2.2登錄時(shí)序圖 備注:myLogin():學(xué)生登錄isExists():判斷學(xué)生是否存在checkStudentExists():判斷是否存在學(xué)生find():查詢數(shù)據(jù)庫4.2.3用例“審核”的時(shí)序圖圖4.2.3審核時(shí)序圖 備注:auditCompany():審核公司queryCompanyByName():根據(jù)公司名稱查詢公司find():查詢數(shù)據(jù)庫4.2.4用例“報(bào)名”的時(shí)序圖圖4.2.4報(bào)名時(shí)序圖 備注:addApplication():新增報(bào)名表add():新增報(bào)名表save():保存報(bào)名表4.2.5用例“錄用”的時(shí)序圖 圖4.2.5錄用時(shí)序圖 備注:hireStudent():雇傭?qū)W生updateApplication():更新報(bào)名表update():更新報(bào)名表4.2.6用例“解雇”的時(shí)序圖 圖4.2.6解雇時(shí)序圖 備注:fireStudent():解雇學(xué)生updateApplication():更新報(bào)名表update():更新報(bào)名表addPosition():新增工資表add():新增工資表save():新增工資表4.2.7用例“發(fā)放工資”的時(shí)序圖圖4.2.6發(fā)放工資時(shí)序圖 備注:givePaySheet():發(fā)放工資queryPaySheetsByIdAndCode():根據(jù)學(xué)號(hào)和職位號(hào)查詢工資表queryPaySheet():查詢工資表find():查詢數(shù)據(jù)庫4.3數(shù)據(jù)庫設(shè)計(jì)4.3.1CDM(ConceptualDataModel) CDM表達(dá)的是數(shù)據(jù)庫的整體邏輯結(jié)構(gòu),該結(jié)構(gòu)獨(dú)立于任何軟件和數(shù)據(jù)庫存儲(chǔ)結(jié)構(gòu),即它只是系統(tǒng)分析人員、應(yīng)用程序設(shè)計(jì)人員、維護(hù)人員和用戶之間相互理解的共同語言,并不是針對(duì)具體的數(shù)據(jù)庫平臺(tái)和工具。 下面是PowerDesigner類圖生成的CDM圖。圖4.3.1系統(tǒng)CDM圖4.3.2PDM(PhysicalDataModel) 物理數(shù)據(jù)模型(PhysicalDataModel)PDM,提供了系統(tǒng)初始設(shè)計(jì)所需要的基礎(chǔ)元素,以及相關(guān)元素之間的關(guān)系。即用于存儲(chǔ)結(jié)構(gòu)和訪問機(jī)制的更高層描述,描述數(shù)據(jù)是如何在計(jì)算機(jī)中存儲(chǔ)的,如何表達(dá)記錄結(jié)構(gòu)、記錄順序和訪問路徑等信息。使用物理數(shù)據(jù)模型,可以在系統(tǒng)層實(shí)現(xiàn)數(shù)據(jù)庫。數(shù)據(jù)庫的物理設(shè)計(jì)階段必須在此基礎(chǔ)上進(jìn)行詳細(xì)的后臺(tái)設(shè)計(jì),包括數(shù)據(jù)庫的存儲(chǔ)過程、操作、觸發(fā)、視圖和索引表等。 下圖由Powerdesigner的CDM轉(zhuǎn)換生成的PDM圖4.2.1系統(tǒng)PDM圖4.3.3數(shù)據(jù)庫表對(duì)應(yīng)實(shí)體說明1)勤工助學(xué)者表:Student(學(xué)生表)字段編號(hào)字段名稱字段類型中文名稱約束關(guān)系備注1idLongid主鍵自增長2studentStudent學(xué)生Id(學(xué)號(hào))外鍵唯一3passwordString密碼4nameString學(xué)生姓名5idCardString身份證6sexString性別男,女7ageInt年齡8professionString專業(yè)9addressStri
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025重慶市綦江區(qū)隆盛鎮(zhèn)人民政府招用公益性崗位人員2人考試重點(diǎn)試題及答案解析
- 滎經(jīng)縣財(cái)政局滎經(jīng)縣縣屬國有企業(yè)2025年公開招聘工作人員(14人)考試核心題庫及答案解析
- 2025烏魯木齊市第六十八中學(xué)教師招聘(8人)模擬筆試試題及答案解析
- 2025國家電投浙江公司招聘23人筆試參考題庫附帶答案詳解(3卷)
- 寧海傳媒集團(tuán)(寧海縣廣播電視臺(tái))下屬公司招聘工作人員考試題庫附答案
- 南充經(jīng)濟(jì)開發(fā)區(qū)投資集團(tuán)有限公司招聘?jìng)淇碱}庫及答案1套
- 貴陽市南明區(qū)五里沖街道社區(qū)衛(wèi)生服務(wù)中心招聘?jìng)淇碱}庫附答案
- 成都武侯資本投資管理集團(tuán)有限公司招聘考試題庫附答案
- 2026年貴州省黔西南布依族苗族自治州單招職業(yè)適應(yīng)性測(cè)試題庫附答案
- 2026年青島職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫附答案
- 高校桶裝水合同范本
- 一年級(jí)語文上冊(cè)第六單元復(fù)習(xí)課件
- 黨的二十屆四中全會(huì)精神丨線上知識(shí)有獎(jiǎng)競(jìng)答題庫
- 初中信息技術(shù)義務(wù)教育版(2024)七年級(jí)全一冊(cè)第四單元 校園活動(dòng)線上展教學(xué)設(shè)計(jì)及反思
- (人教A版)必修一高一數(shù)學(xué)上學(xué)期第5章 三角函數(shù) 章末測(cè)試(基礎(chǔ))(原卷版)
- 醫(yī)藥代表轉(zhuǎn)正述職報(bào)告
- 2025全國青少年文化遺產(chǎn)知識(shí)大賽試題答案
- 家裝水電施工流程
- 智算中心項(xiàng)目施工方案
- 2025年西藏公務(wù)員考試試題真題
- 民航招飛面試常見的面試問題及答案
評(píng)論
0/150
提交評(píng)論