




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
-33-
第1章系統(tǒng)的概述1.1系統(tǒng)及需求分析1.1.1系統(tǒng)需求隨著社會發(fā)展,我國各高校每年都在擴(kuò)招,學(xué)生人數(shù)每日劇增,以前的管理手段已不能適應(yīng)時代的發(fā)展,因?yàn)樗速M(fèi)了了許多的人力和物力,在當(dāng)今信息時代這種傳統(tǒng)的管理方法必然被計算機(jī)為基礎(chǔ)的信息管理系統(tǒng)所代替。我國每所高校的學(xué)生人都較多,學(xué)校要管理每個學(xué)生的檔案很困難,通過建立數(shù)據(jù)庫對學(xué)生檔案進(jìn)行管理具有重要的意義,幫助廣大教師和學(xué)校提高工作效率。學(xué)生檔案管理系統(tǒng)是學(xué)校決策和管理的重要的組成部分,是一種典型的學(xué)生檔案管理系統(tǒng)。操作系統(tǒng)選擇目前常用的Windowsxp。系統(tǒng)性質(zhì)為MIS(管理信息系統(tǒng))或財務(wù)軟件。欄目包括學(xué)生基本信息、專業(yè)管理、班級管理、信息查詢、設(shè)置用戶權(quán)限,可實(shí)現(xiàn)修改、添加、刪除等基本功能。系統(tǒng)界面力求簡潔、易用,在標(biāo)準(zhǔn)化的基礎(chǔ)上考慮界面的美觀和新穎。1.1.2可行性分析由于本系統(tǒng)管理的對象單一,都是在校學(xué)生,且每個數(shù)據(jù)內(nèi)容具有較強(qiáng)的關(guān)聯(lián)性,涉及的計算過程不是很復(fù)雜。因此,比較適合于采用數(shù)據(jù)庫管理。且學(xué)校用于學(xué)生管理的微機(jī)都是PIII以上的機(jī)器,在存儲量、速度方面都能滿足數(shù)據(jù)庫運(yùn)行的要求。在技術(shù)難度方面,由于有指導(dǎo)老師的指導(dǎo)和相關(guān)參考文獻(xiàn),特別是網(wǎng)上資料,特別是參考其它程序的功能,因此完全可以實(shí)現(xiàn)。學(xué)生管理中總是面對大量的信息如學(xué)生個人信息,學(xué)生查詢成績,學(xué)生過級情況等。因此需要信息進(jìn)行及時管理,及時了解各個環(huán)節(jié)中信息的變更,力求提高管理效率。本系統(tǒng)力求使系統(tǒng)功能簡潔明了,但功能齊全且易于操作。系統(tǒng)具有效率高、成本低、質(zhì)量高、功能強(qiáng)等特點(diǎn),建立一個學(xué)生信息管理的數(shù)據(jù)庫比較容易,經(jīng)濟(jì)費(fèi)用開支不大。1.2系統(tǒng)的功能簡介本系統(tǒng)主要可以實(shí)現(xiàn)以下的管理功能:學(xué)生基本信息、專業(yè)管理、班級管理、信息查詢、設(shè)置用戶權(quán)限,可實(shí)現(xiàn)修改、添加、刪除等基本功能等等。通過本管理系統(tǒng)能夠?qū)W(xué)生基本信息進(jìn)行修改,添加,查詢,刪除的操作,從而進(jìn)一步提高學(xué)校辦學(xué)效益和現(xiàn)代化水平,實(shí)現(xiàn)學(xué)生信息管理工作流程的系統(tǒng)化、規(guī)范化和自動化。1.3系統(tǒng)建設(shè)目標(biāo)的技術(shù)可行性開發(fā)語言:JSP系統(tǒng)軟件:WindowsXPDBMS:MYSQL5.0就整個系統(tǒng)的技術(shù)構(gòu)成上來看,它屬于一個數(shù)據(jù)庫應(yīng)用類的系統(tǒng)。其基本操作還是對存在數(shù)據(jù)庫進(jìn)行添加、刪除、查找、編輯等。所以就單純的數(shù)據(jù)庫應(yīng)用來看,暫不存在太大的技術(shù)問題。1.4為用戶提供的服務(wù)本系統(tǒng)的學(xué)生用戶主要功能是此系統(tǒng)上檔案的查看與查詢,為了保障數(shù)據(jù)庫的安全性,特設(shè)置一個登錄界面,使學(xué)生只能進(jìn)入到學(xué)生信息服務(wù)的界面。對學(xué)生來說,不能修改信息,這樣可以保障別人的隱私權(quán),這樣在一定程度上做到管理信息的安全性;另外針對工作人員使其進(jìn)入管理員操作的界面,主要是幫助學(xué)校進(jìn)行學(xué)生信息的管理、統(tǒng)計及維護(hù),管理員根據(jù)實(shí)際情況來瀏覽、查詢、添加、刪除、修改、統(tǒng)計學(xué)生的基本信息從而保障一切工作順利進(jìn)行。1.4.1添加權(quán)限管理模塊該模塊的主要任務(wù)是添加用戶、設(shè)置用戶權(quán)限等功能。1.4.2學(xué)生檔案信息管理模塊該模塊的功能是實(shí)現(xiàn)對全校學(xué)生檔案信息的添加、修改、查詢,使學(xué)校更好的管理學(xué)生的信息。1.4.3學(xué)籍信息管理模塊該模塊的主要功能是實(shí)現(xiàn)對學(xué)生的專業(yè)、班級信息的管理工作。1.5系統(tǒng)開發(fā)的目標(biāo)出于本系統(tǒng)是學(xué)校學(xué)生管理的一個綜合性的系統(tǒng),同時基于對設(shè)計本系統(tǒng)的現(xiàn)實(shí)角度考慮,所以將本系統(tǒng)的設(shè)計目標(biāo)將最終定位于完成以上所述的系統(tǒng)主要業(yè)務(wù)的基本模型上。
第2章系統(tǒng)分析2.1JSP運(yùn)行環(huán)境2.1.1相關(guān)軟件介紹JSP(JavaServerPages)是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)的Web應(yīng)用是跨平臺的,即能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示分離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。2.2開發(fā)軟件的介紹2.2.1DreamweaverMX2004的簡介對于創(chuàng)建專業(yè)Web站點(diǎn)而言,世界上最好的方法現(xiàn)在莫過于最簡單的建立功能強(qiáng)大的Internet應(yīng)用程序的方法。您可以在單一環(huán)境下工作,從而快速創(chuàng)建、建立和管理Web站點(diǎn)和Internet應(yīng)用程序。獲取Dreamweaver?的可視布局工具、Dreamweaver?UltraDev?的快速Web應(yīng)用程序功能以及HomeSite?的代碼編輯支持,所有這些都可以在Dreamweaver?MX這一完整的集成解決方案中完成。2.2.2DreamweaverMX2004的特點(diǎn)[1]卓越的可視環(huán)境--簡單易用使用macromedia的可視化開發(fā)環(huán)境,你只需通過簡單的拖拉技術(shù)(Drag&Drop),將"Objects"窗口中的對象拖到"Documentwindow"中即可。[2]所見即所得的強(qiáng)大功能
沒有一個Web編輯軟件能像Dreamweaver一樣,具有所見即所得的功能,你可以在"Properties"(屬性)窗體中調(diào)整參數(shù),即刻在"Documentwindow"窗體中看到它的改變,如果你按下"F12",Dreamweaver會自動生成HTML文件格式,供欲覽,以便開發(fā)人員進(jìn)一步調(diào)整。[3]方便快速的文本編排
與"Word"相似,具有強(qiáng)大的文本編輯能力,你可以在"Layer"、"Table"、"Frame"或直接在"Documentwindow"窗體中輸入文字,通過快捷的右鍵,選擇例如"Font"(字體)類的選項進(jìn)行編輯,也可以利用"Text"菜單進(jìn)行更為細(xì)致的排版編輯。[4]專業(yè)的HTML編輯--RoundtripHTML
Dreamweaver與現(xiàn)存的網(wǎng)頁有著極好的兼容性,不會更改任何其他編輯器生成的頁面。這將大幅度降低由于HTML源代碼的變更而給設(shè)計者帶來的困惑。[5]高質(zhì)量的HTML生成方式
由Dreamweaver生成的HTML源代碼保持了很好的可讀性。代碼結(jié)構(gòu)基本上同手工生成的代碼相同,這使得設(shè)計者可以輕易掌握代碼全局并加以修改。[6]實(shí)時的HTML控制設(shè)計者可以在可視化或者文本這兩種方式下進(jìn)行頁面的設(shè)計,并且可以實(shí)時的監(jiān)控HTML源代碼。當(dāng)設(shè)計者對代碼作出任何改動時,結(jié)果將立刻顯示出來。[7]與流行的文本HTML代碼編輯器之間的協(xié)調(diào)工作
Dreamweaver可以與目前流行的HTML代碼編輯器(如BBEdit、HomeSite等)全面協(xié)調(diào)工作。已經(jīng)習(xí)慣于使用這些純文本編輯器的設(shè)計者將在不改變他們原有工作習(xí)慣的基礎(chǔ)上,充分享受到Dreamweaver帶來更多功能。設(shè)計者可以使用文本編輯器直接編輯HTML,同時使用Dreamweaver生成較為復(fù)雜的動畫、表格、Frame、JavaScript等。(Dreamweaver分別為Windows用戶以及Macintosh用戶提供了完全版的HomeSite及BBEdit這兩個目前最流行的代碼編輯器)。[8]強(qiáng)大的DHTML支持
動態(tài)HTML是4.0瀏覽器支持的新功能,將在未來廣泛應(yīng)用于網(wǎng)絡(luò)。這項技術(shù)可以增強(qiáng)頁面的交互性、提高下載速度、使頁面更美觀更易于設(shè)計且富有動感。Dreamweaver對DHTML完全支持,并提供了與之相關(guān)聯(lián)的四大功能。而其它的可視化網(wǎng)頁編輯工具幾乎不提供或只小部分提供動態(tài)HTML的制作。[9]重復(fù)元素庫
在Dreamweaver中定義的一個站點(diǎn)內(nèi),設(shè)計者可以將重復(fù)使用的內(nèi)容(例如Header、Footer等)獨(dú)立定義。這樣設(shè)計者在需要這些內(nèi)容的地方只需做一個簡單的插入就可以了。而且當(dāng)元素庫中定義的內(nèi)容被修改后,整個站點(diǎn)中設(shè)計同樣內(nèi)容的地方將統(tǒng)一發(fā)生變化而無需再逐一修改。[10]基于目標(biāo)瀏覽器的檢測
目前瀏覽器更新?lián)Q代很快,從2.0到4.0層出不窮。同時又有IE和Netscape兩大陣營競爭。設(shè)計者制作出的網(wǎng)頁必須面向功能不同的瀏覽器并保持其正確性。這是一項比較困難的工作。而Dreamweaver不僅在設(shè)計時可以基于不同的目標(biāo)瀏覽器進(jìn)行不同的設(shè)計,而且在頁面制作完畢后,Dreamweaver可以基于目標(biāo)瀏覽器對頁面進(jìn)行檢測并給出報告。在報告中將顯示出被檢測頁面的兼容性以及在不同瀏覽器中頁面的區(qū)別,同時還將指出頁面中HTML的句法錯誤。[11]FTP
在Dreamweaver中包含了一個界面極為友好的FTP工具。通過它,設(shè)計者可以非常方便的將設(shè)計的單一頁面或者一個站點(diǎn)上傳至服務(wù)器。同時,設(shè)計者還可以非常方便的將已經(jīng)上傳至服務(wù)器的文件下載以供參考和修改。在文件傳輸?shù)倪^程中,Dreamweaver將記錄下整個過程以供錯誤分析。[12]文件鎖定這是一種專為合作開發(fā)環(huán)境設(shè)置的檔案機(jī)制??梢酝ㄟ^標(biāo)記和取出機(jī)制設(shè)置只讀或可編寫屬性來進(jìn)行文檔的保護(hù)。通過這種方法可以防止不必要的數(shù)據(jù)丟失,增強(qiáng)了安全性。2.3業(yè)務(wù)流程分析如圖2.1,圖中三個模塊為業(yè)務(wù)流程分析。圖2.1實(shí)體間關(guān)系E-R圖如圖2.2,圖中顯示管理員所有的身份信息驗(yàn)證。圖2.2管理員實(shí)體圖如圖2.3,圖中顯示學(xué)生身份驗(yàn)證信息。圖2.3學(xué)生實(shí)體圖如圖2.4,圖中顯示了學(xué)生各個屬性的信息。圖2.4學(xué)生信息實(shí)體圖如圖2.5,圖中顯示了學(xué)生檔案管理系統(tǒng)管理員和學(xué)生所賦予的系統(tǒng)功能操作權(quán)限,這是權(quán)限的一個體現(xiàn)。圖2.5功能模塊圖如下修改數(shù)據(jù):管理員對學(xué)生檔案進(jìn)行修改刪除數(shù)據(jù):管理員對某些學(xué)生檔案(如畢業(yè)生等)進(jìn)行刪除查看信息:管理員通過查看學(xué)生檔案了解學(xué)生的基本情況添加數(shù)據(jù):管理員在數(shù)據(jù)庫中添加新生的檔案查看信息:查看自己或者其他學(xué)生的信息查詢信息:根據(jù)具體情況查詢所需要的信息系統(tǒng)網(wǎng)頁框架結(jié)構(gòu)分析與設(shè)計本系統(tǒng)包括三個表:Table:liuyan->記錄學(xué)生檔案數(shù)據(jù)Table:users->管理員用戶管理表Table:student-user->學(xué)生用戶管理表七個文件:index.jsp: 學(xué)生檔案信息的顯示頁面post.jsp: 學(xué)生檔案的追加,修改頁面search.jsp:學(xué)生檔案的查詢頁面admin_login:系統(tǒng)的管理頁面(修改,刪除處理入口)student_login:學(xué)生登陸系統(tǒng)頁面delete.jsp: 學(xué)生檔案的刪除頁面logout.jsp:退出系統(tǒng)style.css: 樣式文件
第3章系統(tǒng)設(shè)計3.1簡要分析3.1.1系統(tǒng)方案調(diào)研及確定通過對系統(tǒng)的調(diào)研與分析,系統(tǒng)主要應(yīng)完成的功能有:班級管理、學(xué)生成績管理、學(xué)生交費(fèi)管理、課程管理、成績管理、系統(tǒng)管理等功能;但是在具體設(shè)計的過程中,由于個人能力以及時間有限,不能夠?qū)⑸鲜龉δ苤鹨粚?shí)現(xiàn);所以將本系統(tǒng)設(shè)計為簡潔、方便、實(shí)用的系統(tǒng)。3.1.2軟件結(jié)構(gòu)設(shè)計本系統(tǒng)在執(zhí)行時,先根據(jù)不同的操作人員的需要來進(jìn)行相應(yīng)的模塊,然后可以輸入數(shù)據(jù)或者進(jìn)行其它的查詢或?yàn)g覽等操作;總體來說,本系統(tǒng)屬于一個事務(wù)型管理系統(tǒng)。3.2數(shù)據(jù)庫設(shè)計3.2.1本系統(tǒng)中所涉及到的主要實(shí)體數(shù)據(jù)表:class表:{年級,班級,教室,年制,專業(yè),備注}use表:{username,password,admin,readonly,qx1,qx2,qx3,qx4} xd表:{學(xué)號,姓名,性別,班級,出生年月,家庭住址,郵政編碼,聯(lián)系電話,入學(xué)時間,備注}3.2.2各表的物理結(jié)構(gòu)如下:表3.1Class表字段名稱類型寬度小數(shù)位年級文本16
班級文本20
年制文本8
專業(yè)文本16
備注備注
表3.2Use表:字段名稱類型寬度小數(shù)位username文本20
password文本20
Admin文本2
Readonly文本2
Qx1文本2
Qx2文本2
Qx3文本2
Qx4文本2
表3.3xd表:字段名稱類型寬度小數(shù)位學(xué)號文本9
姓名文本8
班級文本10
備注備注
第4章系統(tǒng)的實(shí)現(xiàn)4.1系統(tǒng)登陸界面:本界面的主要功能是為了對系統(tǒng)進(jìn)行安全性管理,本系統(tǒng)的用戶名和密碼保存在USE表中,本系統(tǒng)根據(jù)不同的用戶而設(shè)置了不同的權(quán)限,可以用909;909為用戶名和密碼來登陸本系統(tǒng)。如圖4.1,此頁面是登錄頁面的前臺頁面顯示,在Login.jsp中控制頁面格式。圖4.1學(xué)生檔案系統(tǒng)登錄界面4.2系統(tǒng)主界面:本模塊是本系統(tǒng)的應(yīng)用界面,在本界面上集成了本系統(tǒng)的所有功能,共有6個功能菜單和19個子菜單(功能模塊),從而實(shí)現(xiàn)了本系統(tǒng)從班級管理、檔案管理、繳費(fèi)管理、課程管理、成績管理等系統(tǒng)的具體功能,同時,在系統(tǒng)管理模塊中可以完成對本系統(tǒng)的安全性管理。如圖4.2,是頁面登錄之后顯示的前臺頁面。由index.jsp的jsp文件控制頁面。圖4.2學(xué)生檔案管理系統(tǒng)登錄頁面4.3用戶管理模塊:本模塊是本系統(tǒng)的安全性設(shè)置模塊,根據(jù)學(xué)校不同部門以及不同使用人員對本系統(tǒng)的要求和需要,從而實(shí)行了分級管理,對用戶的權(quán)限和類別進(jìn)行了分類管理。如圖4.3,是學(xué)生基本信息的前臺頁面顯示,是實(shí)現(xiàn)邏輯處理和記錄學(xué)生信息的重要顯示。圖4.3學(xué)生基本信息頁面
第5章系統(tǒng)調(diào)試5.1程序調(diào)試分析在設(shè)計系統(tǒng)的過程中,存在一些錯誤是必然的。對于語句的語法錯誤,在程序運(yùn)行時自動提示,并請求立即糾正,因此,這類錯誤比較容易發(fā)現(xiàn)和糾正。但另一類錯誤是在程序執(zhí)行時由于不正確的操作或?qū)δ承?shù)據(jù)的計算公式的邏輯錯誤導(dǎo)致的錯誤結(jié)果。這類錯誤隱蔽性強(qiáng),有時會出現(xiàn),有時又不出現(xiàn),因此,對這一類動態(tài)發(fā)生的錯誤的排查是耗時費(fèi)力的。5.2程序的測試5.2.1測試的重要性及目的1.測試的重要性軟件的測試在軟件生命周期中占據(jù)重要的地位,在傳統(tǒng)的瀑布模型中,軟件測試學(xué)僅處于運(yùn)行維護(hù)階段之前,是軟件產(chǎn)品交付用戶使用之前保證軟件質(zhì)量的重要手段。近來,軟件工程界趨向于一種新的觀點(diǎn),即認(rèn)為軟件生命周期每一階段中都應(yīng)包含測試,從而檢驗(yàn)本階段的成果是否接近預(yù)期的目標(biāo),盡可能早的發(fā)現(xiàn)錯誤并加以修正,如果不在早期階段進(jìn)行測試,錯誤的延時擴(kuò)散常常會導(dǎo)致最后成品測試的巨大困難。事實(shí)上,對于軟件來講,不論采用什么技術(shù)和什么方法,軟件中仍然會有錯。采用新的語言、先進(jìn)的開發(fā)方式、完善的開發(fā)過程,可以減少錯誤的引入,但是不可能完全杜絕軟件中的錯誤,這些引入的錯誤需要測試來找出,軟件中的錯誤密度也需要測試來進(jìn)行估計。測試是所有工程學(xué)科的基本組成單元,是軟件開發(fā)的重要部分。自有程序設(shè)計的那天起測試就一直伴隨著。統(tǒng)計表明,在典型的軟件開發(fā)項目中,軟件測試工作量往往占軟件開發(fā)總工作量的40%以上。而在軟件開發(fā)的總成本中,用在測試上的開銷要占30%到50%。如果把維護(hù)階段也考慮在內(nèi),討論整個軟件生存期時,測試的成本比例也許會有所降低,但實(shí)際上維護(hù)工作相當(dāng)于二次開發(fā),乃至多次開發(fā),其中必定還包含有許多測試工作。在實(shí)踐中,軟件測試的困難常常使人望而卻步或敷衍了事,這是由于對測試仍然存在一些不正確的看法和錯誤的態(tài)度,這包括:(1)認(rèn)為測試工作不如設(shè)計和編碼那樣容易取得進(jìn)展難以給測試人員某種成就感;(2)以發(fā)現(xiàn)軟件錯誤為目標(biāo)的測試是非建設(shè)性的,甚至是破壞性的,測試中發(fā)現(xiàn)錯位是對責(zé)任者工作的一種否定;(3)測試工作枯燥無味,不能引起人們的興趣;(4)測試工作是艱苦而細(xì)致的工作;(5)對自己編寫的程序盲目自信,在發(fā)現(xiàn)錯誤后,顧慮別人對自己的開發(fā)能力的看法。這些觀點(diǎn)對軟件測試工作是極為不利的,必須澄清認(rèn)識、端正態(tài)度,才可能提高軟件產(chǎn)品的質(zhì)量。2.測試的目的如果測試的目的是為了盡可能多地找出錯誤,那么測試就應(yīng)該直接針對軟件比較復(fù)雜的部分或是以前出錯比較多的位置。如果測試目的是為了給最終用戶提供具有一定可信度的質(zhì)量評價,那么測試就應(yīng)該直接針對在實(shí)際應(yīng)用中會經(jīng)常用到的商業(yè)假設(shè)。在談到軟件測試時,許多人都引用GrenfordJ.Myers在《TheArtofSoftwareTesting》一書中的觀點(diǎn):(1)軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程;(2)測試是為了證明程序有錯,而不是證明程序無錯誤;(3)一個好的測試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;(4)一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。這種觀點(diǎn)可以提醒人們測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。但是僅憑字面意思理解這一觀點(diǎn)可能會產(chǎn)生誤導(dǎo),認(rèn)為發(fā)現(xiàn)錯誤是軟件測試的唯一目,查找不出錯誤的測試就是沒有價值的,事實(shí)并非如此。首先,測試并不僅僅是為了要找出錯誤。通過分析錯誤產(chǎn)生的原因和錯誤的分布特征,可以幫助項目管理者發(fā)現(xiàn)當(dāng)前所采用的軟件過程的缺陷,以便改進(jìn)。同時,這種分析也能幫助我們設(shè)計出有針對性地檢測方法,改善測試的有效性。其次,沒有發(fā)現(xiàn)錯誤的測試也是有價值的,完整的測試是評定測試質(zhì)量的一種方法。5.2.2系統(tǒng)測試與開發(fā)過程類似,測試過程也必須分步驟進(jìn)行,每個步驟在邏輯上是前一個步驟的繼續(xù)。大型軟件系統(tǒng)通常由若干個子系統(tǒng)組成,每個子系統(tǒng)又由若干個模塊組成。因此,大型軟件系統(tǒng)的測試基本上由下述幾個步驟組成:(1)模塊測試在這個測試步驟中所發(fā)現(xiàn)的往往是編碼和詳細(xì)設(shè)計的錯誤。(2)子系統(tǒng)測試這個步驟著重測試模塊的接口。(3)系統(tǒng)測試在這個測試步驟中發(fā)現(xiàn)的往往是軟件設(shè)計中的錯誤,也可能發(fā)現(xiàn)需求說明中的錯誤。(4)驗(yàn)收測試在這個測試步驟中發(fā)現(xiàn)的往往是系統(tǒng)需求說明書中的錯誤。5.2.3測試的主要內(nèi)容為了保證測試的質(zhì)量,將測試過程分成幾個階段,即:代碼審查、單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試。1.單元測試單元測試集中在檢查軟件設(shè)計的最小單位—模塊上,通過測試發(fā)現(xiàn)實(shí)現(xiàn)該模塊的實(shí)際功能與定義該模塊的功能說明不符合的情況,以及編碼的錯誤。身份認(rèn)證時候要保證在以下輸入情況時候系統(tǒng)能夠健康運(yùn)行:(1)輸入用戶ID時候鍵入非法字符,如:?#¥%……等(2)在操作員編碼框輸入非數(shù)字字符,如abc,!?#¥《》(3)輸入的用戶ID,或者操作員編碼不存在。(4)輸入的用戶ID,或者操作員編碼與密碼不相符合。(5)輸入的用戶ID,操作員編碼不能登陸本模塊。(6)輸入的信息超過規(guī)定字符長度(7)輸入的信息有一項為空。2.集成測試集成測試是將模塊按照設(shè)計要求組裝起來同時進(jìn)行測試,主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。如一個模塊與另一個模塊可能有由于疏忽的問題而造成有害影響;把子功能組合起來可能不產(chǎn)生預(yù)期的主功能;個別看起來是可以接受的誤差可能積累到不能接受的程度;全程數(shù)據(jù)結(jié)構(gòu)可能有錯誤等。3.確認(rèn)測試確認(rèn)測試的目的是向未來的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作。經(jīng)集成測試后,已經(jīng)按照設(shè)計把所有的模塊組裝成一個完整的軟件系統(tǒng),接口錯誤也已經(jīng)基本排除了,接著就應(yīng)該進(jìn)一步驗(yàn)證軟件的有效性,這就是確認(rèn)測試的任務(wù),即軟件的功能和性能如同用戶所合理期待的那樣。4.系統(tǒng)測試軟件開發(fā)完成以后,最終還要與系統(tǒng)中其他部分配套運(yùn)行,進(jìn)行系統(tǒng)測試。包括恢復(fù)測試、安全測試、強(qiáng)度測試和性能測試等。
第6章全文總結(jié)在本系統(tǒng)的開發(fā)過程中,由于本人是初次開發(fā)軟件,在知識、經(jīng)驗(yàn)方面都存在著不足。另外,整個開發(fā)的過程都是在工作至于抽時間完成,時間也比較倉促。因此,該系統(tǒng)必然會存在一些缺陷和不足,很多預(yù)想的功能和模塊都沒有能夠在規(guī)定時間內(nèi)完成。因?yàn)閷W(xué)生檔案管理的整個流程不夠熟悉,在需求分析時未能做到完全滿足用戶的需求。雖然網(wǎng)絡(luò)在學(xué)生檔案管理系統(tǒng)中的應(yīng)用不是很多,但是作為未來的發(fā)展方向勢必將成為一種趨勢,而在本次開發(fā)過程中,由于硬件的限制,未能實(shí)現(xiàn)網(wǎng)絡(luò)功能,因此在以后的系統(tǒng)更新過程中可能會造成一些不必要的數(shù)據(jù)損失。盡管本管理系統(tǒng)存在著很多不足,但其基本功能全面、易于日后程序更新、數(shù)據(jù)庫管理容易、界面友好、操作方便、效率高、安全性好等優(yōu)點(diǎn)是本管理系統(tǒng)所必需的。相信本學(xué)生檔案管理系統(tǒng)是一套學(xué)校在日常管理中必不可少的管理軟件,通過開發(fā)這個系統(tǒng),我掌握了的項本過程,了解了的基本知識鞏固了我對jsp的學(xué)習(xí),但在這次畢業(yè)設(shè)計中的最大收獲并不是掌握這幾門開發(fā)工具的應(yīng)用,而是學(xué)會了設(shè)計系統(tǒng)的思維方法,以及與同學(xué)們之間相互幫助的精神。由于方案不成熟,時間緊迫,人力,物力方面的原因,此系統(tǒng)還是有許多地方需要進(jìn)一步的完善和提高,因而,我們的系統(tǒng)不可避免的有一些不足之處,希望老師們給予批評指正。在本次課程設(shè)計中困難遇到不少,比如數(shù)據(jù)庫的連接,全局參數(shù)的傳遞等。在這次系統(tǒng)開發(fā)的過程中,我深深體會到了做一個系統(tǒng),首先進(jìn)行需求分析的重要性,了解了一個系統(tǒng)的制作,從功能分析到功能模塊分析、與其他系統(tǒng)的關(guān)系,再到數(shù)據(jù)庫設(shè)計、數(shù)據(jù)庫結(jié)構(gòu)實(shí)現(xiàn)及各功能模塊的創(chuàng)建都需要從整體上考慮設(shè)計。這些都有待以后進(jìn)一步改進(jìn)。通過實(shí)踐對于我以后的學(xué)習(xí)將會帶來很大的幫助!
致謝在本次畢業(yè)設(shè)計過程中,得到了指導(dǎo)老師的指導(dǎo)與支持。在此特別感謝崔略老師的大力幫助。指導(dǎo)老師的悉心指導(dǎo)和大力支持,在總體結(jié)構(gòu)、功能的把握上給予了非常大的幫助,同時對我在編程、數(shù)據(jù)庫設(shè)計等細(xì)節(jié)工作上給予了耐心的指導(dǎo),對于我順利完成這次畢業(yè)設(shè)計起到了關(guān)鍵性的作用。轉(zhuǎn)眼間,大學(xué)生活即將結(jié)束,回首過去四年的大學(xué)生活,真是有苦也有樂,然而更多的則是收獲,感謝母校的各位老師不但無私地傳授給我們知識,也教會了我們?nèi)绾巫鋈?。同時也要感謝學(xué)校提供我們到杰普實(shí)習(xí)的機(jī)會。對于這次機(jī)會,我們都倍加珍惜,在此期間學(xué)到了學(xué)校沒有學(xué)到或者學(xué)的不完善的知識,同時,在學(xué)完這邊的課程之后杰普還會提供就業(yè)的機(jī)會,對于我們這群將要馬上畢業(yè)走上社會的青年來說無疑是一個良好的發(fā)展平臺。而我自己也有幸能夠通過杰普找到自己心儀的一份工作,充分的在自己的工作崗位上發(fā)揮自己的能量。這對于我自己、學(xué)校、杰普三方面來說無疑都是一個好的結(jié)果。對于這次的畢業(yè)設(shè)計,在杰普實(shí)習(xí)的半年一來,學(xué)到了很多學(xué)校學(xué)不到的知識,之后又參與到工作中,更加開拓了視野,由于在工作之余進(jìn)行畢業(yè)設(shè)計,就凸顯了任務(wù)的繁重,但正是在這幾個月緊張而充實(shí)的設(shè)計中,我感到自己的知識得到了一次升華,我相信:我的畢業(yè)設(shè)計會給我的四年大學(xué)畫上一個圓滿的句號。
21世紀(jì)已經(jīng)到來了,在新的世紀(jì)里,人們自然對未來有許多美好的愿望和設(shè)想。現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,改變了世界,也改變了世界的生活。作為新世紀(jì)的大學(xué)生,應(yīng)當(dāng)站在世界的發(fā)展前列,掌握現(xiàn)代科學(xué)技術(shù)知識,調(diào)整自己的知識結(jié)構(gòu)和能力結(jié)構(gòu),以適應(yīng)社會發(fā)展的要求。新世紀(jì)需要具有豐富現(xiàn)代科學(xué)知識、能夠獨(dú)立解決面臨任務(wù)、有創(chuàng)新意識的新型人才。
參考文獻(xiàn)[1]孫衛(wèi)琴,李洪成.《Tomcat與JavaWeb開發(fā)技術(shù)詳解》.電子工業(yè)出版社,2003年6月:1-205[2]BruceEckel.《Java編程思想》.機(jī)械工業(yè)出版社,2003年10月:1-378[3]FLANAGAN.《Java技術(shù)手冊》.中國電力出版社,2002年6月:1-465[4]孫一林,彭波.《Java數(shù)據(jù)庫編程實(shí)例》.清華大學(xué)出版社,2002年8月:30-210[5]LEEANNEPHILLIPS.《巧學(xué)活用HTML4》.電子工業(yè)出版社,2004年8月:1-319[6]飛思科技產(chǎn)品研發(fā)中心.《JSP應(yīng)用開發(fā)詳解》.電子工業(yè)出版社,2003年9月:32-300[7]耿祥義,張躍平.《JSP實(shí)用教程》.清華大學(xué)出版社,2003年5月1日:1-354[8]孫涌.《現(xiàn)代軟件工程》.北京希望電子出版社,2003年8月:1-246[9]薩師煊,王珊.《數(shù)據(jù)庫系統(tǒng)概論》.高等教育出版社,2002年2月:3-460[10]Brown等.《JSP編程指南(第二版)》.電子工業(yè)出版社,2003年3月:1-268[11]清宏計算機(jī)工作室.《JSP編程技巧》.機(jī)械工業(yè)出版社,2004年5月:1-410[12]朱紅,司光亞.《JSPWeb編程指南》.電子工業(yè)出版社,2001年9月:34-307[13]賽奎春.《JSP工程應(yīng)用與項目實(shí)踐》.機(jī)械工業(yè)出版社,2002年8月:23-294
附錄源代碼:packagecom.bean;importjava.MYSQL5.0.ResultSet;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Calendar;importjava.util.List;importcom.util.Constant;importcom.util.DBO;publicclassCaiWu{ privateListlist; privateResultSetrs; privateStringdate=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss").format(Calendar.getInstance().getTime()); //增加分類 publicintaddFenLei(Stringfenlei){ StringMYSQL5.0="insertintoclassname(flmc,addtime)values('"+fenlei+"','"+date+"')"; DBOdbo=newDBO(); dbo.open(); try{ inti=dbo.executeUpdate(MYSQL5.0); if(i==1) returnConstant.SUCCESS; else returnConstant.SYSTEM_ERROR; }catch(Exceptione){ e.printStackTrace(); returnConstant.SYSTEM_ERROR; }finally{ dbo.close(); } } //修改分類 publicintupFenLei(intid,Stringfenlei){ StringMYSQL5.0="updateclassnamesetflmc='"+fenlei+"'whereid='"+id+"'"; DBOdbo=newDBO(); dbo.open(); try{ inti=dbo.executeUpdate(MYSQL5.0); if(i==1) returnConstant.SUCCESS; else returnConstant.SYSTEM_ERROR; }catch(Exceptione){ e.printStackTrace(); returnConstant.SYSTEM_ERROR; }finally{ dbo.close(); } } //刪除分類 publicintdelFenLei(intid){ StringMYSQL5.0="deletefromclassnamewhereid='"+id+"'"; DBOdbo=newDBO(); dbo.open(); try{ inti=dbo.executeUpdate(MYSQL5.0); if(i==1) returnConstant.SUCCESS; else returnConstant.SYSTEM_ERROR; }catch(Exceptione){ e.printStackTrace(); returnConstant.SYSTEM_ERROR; }finally{ dbo.close(); } } //所有分類 publicListgetAllFenLei(){ StringMYSQL5.0="select*fromclassnameorderbyiddesc"; DBOdbo=newDBO(); list=newArrayList(); dbo.open(); try{ rs=dbo.executeQuery(MYSQL5.0); while(rs.next()){ Listlist2=newArrayList(); list2.add(rs.getString(1)); list2.add(rs.getString(2)); list2.add(rs.getString(3)); list.add(list2); } returnlist; }catch(Exceptione){ e.printStackTrace(); returnnull; }finally{ dbo.close(); } } //增加輸入 publicintaddCaiWu(Stringfenlei,Stringxingzhi,Stringshuoming,Stringshuliang,Stringremark){ StringMYSQL5.0="insertintoinmoney(fenlei,xingzhi,shuoming,shuliang,remark,addtime)"+ "values('"+fenlei+"','"+xingzhi+"','"+shuoming+"','"+shuliang+"','"+remark+"','"+date+"')"; DBOdbo=newDBO(); dbo.open(); try{ inti=dbo.executeUpdate(MYSQL5.0); if(i==1) returnConstant.SUCCESS; else returnConstant.SYSTEM_ERROR; }catch(Exceptione){ e.printStackTrace(); returnConstant.SYSTEM_ERROR; }finally{ dbo.close(); } }// 修改輸入 publicintupCaiWu(intid,Stringfenlei,Stringxingzhi,Stringshuoming,Stringshuliang,Stringremark){ StringMYSQL5.0="updateinmoneysetfenlei='"+fenlei+"',xingzhi='"+xingzhi+"',shuoming='"+shuoming+"',shuliang='"+shuliang+"',remark='"+remark+"'whereid='"+id+"'"; DBOdbo=newDBO(); dbo.open(); try{ inti=dbo.executeUpdate(MYSQL5.0); if(i==1) returnConstant.SUCCESS; else returnConstant.SYSTEM_ERROR; }catch(Exceptione){ e.printStackTrace(); returnConstant.SYSTEM_ERROR; }finally{ dbo.close(); } }// 刪除輸入 publicintdelCaiWu(intid){ StringMYSQL5.0="deletefrominmoneywhereid='"+id+"'"; DBOdbo=newDBO(); dbo.open(); try{ inti=dbo.executeUpdate(MYSQL5.0); if(i==1) returnConstant.SUCCESS; else returnConstant.SYSTEM_ERROR; }catch(Exceptione){ e.printStackTrace(); returnConstant.SYSTEM_ERROR; }finally{ dbo.close(); } }// 所有輸入 publicListgetAllCaiWu(){ StringMYSQL5.0="select*frominmoneyorderbyiddesc"; DBOdbo=newDBO(); list=newArrayList(); dbo.open(); try{ rs=dbo.executeQuery(MYSQL5.0); while(rs.next()){ Listlist2=newArrayList(); list2.add(rs.getString(1)); list2.add(rs.getString(2)); list2.add(rs.getString(3)); list2.add(rs.getString(4)); list2.add(rs.getString(5)); list2.add(rs.getString(6)); list2.add(rs.getString(7)); list.add(list2); } returnlist; }catch(Exceptione){ e.printStackTrace(); returnnull; }finally{ dbo.close(); } }// 單個輸入 publicListgetOneCaiWu(intid){ StringMYSQL5.0="select*frominmoneywhereid='"+id+"'"; DBOdbo=newDBO(); list=newArrayList(); dbo.open(); try{ rs=dbo.executeQuery(MYSQL5.0); while(rs.next()){ list.add(rs.getString(1)); list.add(rs.getString(2)); list.add(rs.getString(3)); list.add(rs.getString(4)); list.add(rs.getString(5)); list.add(rs.getString(6)); } returnlist; }catch(Exceptione){ e.printStackTrace(); returnnull; }finally{ dbo.close(); } } publicintchuShiHua(){ StringMYSQL5.0="deletefrominmoney"; StringMYSQL5.02="deletefromclassname"; StringMYSQL5.03="deletefromadminlog"; DBOdbo=newDBO(); dbo.open(); try{ dbo.executeUpdate(MYSQL5.0); dbo.executeUpdate(MYSQL5.02); dbo.executeUpdate(MYSQL5.03); returnConstant.SYSTEM_ERROR; }catch(Exceptione){ e.printStackTrace(); return0; }finally{ dbo.close(); } }// 所有輸入 publicListgetAllCaiWu1(Stringxingzhi){ StringMYSQL5.0="select*frominmoneywherexingzhi='"+xingzhi+"'orderbyiddesc"; DBOdbo=newDBO(); list=newArrayList(); dbo.open(); try{ rs=dbo.executeQuery(MYSQL5.0); while(rs.next()){ Listlist2=newArrayList(); list2.add(rs.getString(1)); list2.add(rs.getString(2)); list2.add(rs.getString(3)); list2.add(rs.getString(4)); list2.add(rs.getString(5)); list2.add(rs.getString(6)); list2.add(rs.getString(7)); list.add(list2); } returnlist; }catch(Exceptione){ e.printStackTrace(); returnnull; }finally{ dbo.close(); } } publicListgetAllCaiWu2(Stringks,Stringjs){ StringMYSQL5.0="select*frominmoneywhereaddtime>'"+ks+"00:00:01'andaddtime<'"+js+"23:59:59'orderbyiddesc"; DBOdbo=newDBO(); list=newArrayList(); dbo.open(); try{ rs=dbo.executeQuery(MYSQL5.0); while(rs.next()){ Listlist2=newArrayList(); list2.add(rs.getString(1)); list2.add(rs.getString(2)); list2.add(rs.getString(3)); list2.add(rs.getString(4)); list2.add(rs.getString(5)); list2.add(rs.getString(6)); list2.add(rs.getString(7)); list.add(list2); } returnlist; }catch(Exceptione){ e.printStackTrace(); returnnull; }finally{ dbo.close(); } } publicListgetAllCaiWu3(Stringjs){ StringMYSQL5.0="select*frominmoneywhereaddtime<'"+js+"23:59:59'orderbyiddesc"; DBOdbo=newDBO(); list=newArrayList(); dbo.open(); try{ rs=dbo.executeQuery(MYSQL5.0); while(rs.next()){ Listlist2=newArrayList(); list2.add(rs.getString(1)); list2.add(rs.getString(2)); list2.add(rs.getString(3)); list2.add(rs.getString(4)); list2.add(rs.getString(5)); list2.add(rs.getString(6)); list2.add(rs.getString(7)); list.add(list2); } returnlist; }catch(Exceptione){ e.printStackTrace(); returnnull; }finally{ dbo.close(); } } publicListgetAllCaiWu4(Stringks){ StringMYSQL5.0="select*frominmoneywhereaddtime>'"+ks+"00:00:01'orderbyiddesc"; DBOdbo=newDBO(); list=newArrayList(); dbo.open(); try{ rs=dbo.executeQuery(MYSQL5.0); while(rs.next()){ Listlist2=newArrayList(); list2.add(rs.getString(1)); list2.add(rs.getString(2)); list2.add(rs.getString(3)); list2.add(rs.getString(4)); list2.add(rs.getString(5)); list2.add(rs.getString(6)); list2.add(rs.getString(7)); list.add(list2); } returnlist; }catch(Exceptione){ e.printStackTrace(); returnnull; }finally{ dbo.close(); } } publicListgetAllCaiWu5(Stringks,Stringjs,Stringxingzhi){ StringMYSQL5.0="select*frominmoneywhereaddtime>'"+ks+"00:00:01'andaddtime<'"+js+"23:59:59'andxingzhi='"+xingzhi+"'orderbyiddesc"; DBOdbo=newDBO(); list=newArrayList(); dbo.open(); try{ rs=dbo.executeQuery(MYSQL5.0); while(rs.next()){ Listlist2=newArrayList(); list2.add(rs.getString(1)); list2.add(rs.getString(2)); list2.add(rs.getString(3)); list2.add(rs.getString(4)); list2.add(rs.getString(5)); list2.add(rs.getString(6)); list2.add(rs.getString(7)); list.add(list2); } returnlist; }catch(Exceptio
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廠區(qū)用工合同范本
- 合同范本售賣
- 口罩贈與合同范本
- 卡購買合同范本
- 雙人合同范本
- 信息咨詢銷售合同范本
- 合作續(xù)約合同范本
- 勞務(wù)代理協(xié)議合同范本
- 合同能源托管合同范本
- 包含質(zhì)保金合同范本
- 企業(yè)安全文化建設(shè)導(dǎo)則
- 八年級語文上冊第六單元作業(yè)設(shè)計 品格與志趣
- 鐵道游擊隊測試題6.1總1文檔資料
- 電機(jī)與電氣控制技術(shù)(第2版)全套完整教學(xué)課件
- 掘進(jìn)機(jī)液壓培訓(xùn)課件
- 農(nóng)產(chǎn)品質(zhì)量安全風(fēng)險防范措施
- 麻醉科臨床技術(shù)操作規(guī)范2022版
- 奉賢東部分區(qū)單元(FX3)地質(zhì)災(zāi)害危險性評估報告
- 現(xiàn)代企業(yè)管理專業(yè)實(shí)踐考核試題
- 支氣管鏡吸痰操作考核評分標(biāo)準(zhǔn)
- 2023年病歷書寫基本規(guī)范文
評論
0/150
提交評論