版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
太原理工大學畢業(yè)設計(論文)用紙緒論1.1開發(fā)背景近年來,隨著計算機技術的發(fā)展和互聯網時代的到來,我們已經進入了信息時代,也有人稱為數字化時代,在這數字化的時代里,學校的教學管理都受到了極大的挑戰(zhàn)。Internet技術持續(xù)迅猛的發(fā)展,也給傳統(tǒng)的教學提出了新的模式。以現代計算技術、網絡技術為基礎的數字化教學主要是朝著信息化、網絡化、現代化的目標邁進。作為新型的辦學模式,它們具有對于教育、教學過程來說極為寶貴的特性,可以為新型教學模式的建構提供理想的環(huán)境。在此開發(fā)的在線問題解答系統(tǒng),旨在探索一種以互聯網為基礎的教學模式。通過這種新的模式,使學生通過論壇的模式及時的掌握學習過程中遇到的問題,為學校營造一種新的教學模式,從而提高工作效率。根據中國互聯網信息中心(CNNIC)于2013年1月15日在北京發(fā)布的第31次《中國互聯網發(fā)展狀況統(tǒng)計報告》,截至2012年12月底,我國網民規(guī)模達到5.64億,互聯網普及率為42.1%,手機網民數量為4.2億,年增長率達18.1%,遠超網民整體增幅。此外,網民中使用手機上網的比例也繼續(xù)提升,由69.3%上升至74.5%。家中接入互聯網的比例繼續(xù)走高,有91.7%的網民在家中上網,增幅達到3.4%,個人上網設備持有比例的提升和網絡接入條件的改善是導致此現象產生的主要原因。截至2012年12月底,我國微博用戶規(guī)模為3.09億,較2011年底增長了5873萬,網民中的微博用戶比例達到54.7%。手機微博用戶規(guī)模2.02億,占所有微博用戶的65.6%,接近總體人數三分之二。在線問題解答是指通過互聯網把傳統(tǒng)的問題解答、分析方法在線化、智能化。所謂在線問題解答系統(tǒng)是指利用Internet技術進行調研的一種方法。其大多應用于學校內部網站中。在線的問提解答已經成為傳統(tǒng)調研形式的重要補充。在線問調查具有低成本、高速度、跨越空間局限等特點。由于在線問題解答依托網絡技術,可以插入圖片、音頻、視頻等等,使問題界面更加美觀,并且易于更改。隨著互聯網的進一步普及,在線問題解答將會迅速成為學校,公眾學習的主流方式。1.2項目提出的意義在線問題解答系統(tǒng)教學策略的設計應該著重提供給學生自主權,利用網絡環(huán)境讓學生主動的收集、探索,增加學生對學習活動的參與性。教師在學生的學習過程中充當幫助者的角色,為學生的學習提供充分的支持和保障。在線問題解答系統(tǒng)設計讓學生根據自己的情況進行個別化的學習或協作學習。學生可以通過課程內容結構,一步一步系統(tǒng)地學習;也可以通過專題以及常見問題的解答所搭成的支架,來學習課程的綜合應用;提供虛擬真實世界的某些環(huán)境,設置答疑專區(qū),讓學生能夠在其中進行探索研討。總之,讓學生順利的同化和順應外來的知識。為了適應新形勢的發(fā)展,我進行了這一系統(tǒng)的初步設計工作,也可以說是做一個初步的探索!2開發(fā)系統(tǒng)描述2.1系統(tǒng)的開發(fā)方法目前,網絡應用軟件運行的模式主要有二類:Client/server模式,Browser/Web模式。前者主要的缺點是維護、升級較麻煩,后者是近幾年伴隨Internet迅速發(fā)展起來的一種技術,它與客戶/服務器方式類似,客戶端是一個標準的瀏覽器,服務器端是WebServer,而WebServer與數據庫和應用服務器的緊密結合,使得這種模式的應用范圍不斷擴大,它已不僅僅用于網上查詢,有很多部門的業(yè)務系統(tǒng)、企業(yè)的MIS系統(tǒng)紛紛采用這種模式,它的主要優(yōu)點是便于擴充應用、升級維護簡便。另外,在線問題解答系統(tǒng)的軟件也必將不斷的更新;同時軟件產品本身就要經過一個不斷自我完善的過程?;谏鲜隹紤],用Browser/Web模式來設計考試系統(tǒng)比較合適,服務器端我們采用SQLServer數據庫系統(tǒng)和ASP組件來構成考試的應用服務系統(tǒng);客戶端采用瀏覽器來完成在線問題解答系統(tǒng)各個功能模塊的全過程,同時可進行遠程系統(tǒng)維護和管理。利用網絡和數據庫技術,結合目前硬件價格普遍下跌與寬帶網大力建設的有利優(yōu)勢,應用JAVA技術,開發(fā)了基于B/S模式多用戶在線問題解答系統(tǒng)這一程序。它運用方便、操作簡單,效率很高。實現了用戶注冊、答疑版塊管理、在線答疑、學生管理、教師管理、系統(tǒng)管理等功能,也就是說實現了真正的無紙化學習答疑,滿足任何授權的用戶可隨時隨地提問答疑等。2.2系統(tǒng)開發(fā)工具本設計以Sun公司的MyEclipse作為開發(fā)平臺,采用JSP網絡開發(fā)技術,以Tomcat服務器作為測試平臺,以SQLServer作為數據庫支持。MyEclipse企業(yè)級工作平臺(MyEclipseEnterpriseWorkbench,簡稱MyEclipse)是對EclipseIDE的擴展,利用它我們可以在數據庫和J2EE的開發(fā)、發(fā)布,以及應用程序服務器的整合方面極大的提高工作效率。它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調試、測試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,Javascript,SQL,Hibernate等。JSP(JavaServerPages)技術,自1999年問世以來,經過多年的發(fā)展,其廣泛的應用和穩(wěn)定的表現,為其作為表現層技術打下了堅實的基礎。在傳統(tǒng)的網頁HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標簽,就構成了JSP網頁。Java程序片段可以操縱數據庫、重新定向網頁以及發(fā)送E-mail等,實現建立動態(tài)網站所需要的功能。所有程序操作都在服務器端執(zhí)行,網絡上傳送給客戶端的僅是得到的結果,這樣大大降低了對客戶瀏覽器的要求,即使客戶瀏覽器端不支Java,也可以訪問JSP網頁。JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產生動態(tài)網頁的處理邏輯。網頁還能通過tags和scriptlets訪問存在于服務端的資源的應用邏輯。JSP將網頁邏輯與網頁設計的顯示分離,支持可重用的基于組件的設計,使基于Web的應用程序的開發(fā)變得迅速和容易。JSP是一種動態(tài)頁面技術,它的主要目的是將表示邏輯從Servlet中分離出來。JavaServlet是JSP的技術基礎,而且大型的Web應用程序的開發(fā)需要JavaServlet和JSP配合才能完成。JSP具備了Java技術的簡單易用,完全的面向對象,具有平臺無關性且安全可靠,主要面向因特網的所有特點。利用Tomcat服務器可以方便的在設計過程中對設計進行測試,以便于更好的解決問題,帶來更好的用戶體驗。Tomcat服務器是一個免費的開放源代碼的Web應用服務器。Tomcat是Apache軟件基金會(ApacheSoftwareFoundation)的Jakarta項目中的一個核心項目,由Apache、Sun和其他一些公司及個人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和JSP規(guī)范總是能在Tomcat中得到體現。因為Tomcat技術先進、性能穩(wěn)定,而且免費,因而深受Java愛好者的喜愛并得到了部分軟件開發(fā)商的認可,成為目前比較流行的Web應用服務器。SQLServer使用C和C++編寫,并使用了多種編譯器進行測試,保證源代碼的可移植性;支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多種操作系統(tǒng);為多種編程語言提供了API;支持多線程,充分利用CPU資源;提供TCP/IP、ODBC和JDBC等多種數據庫連接途徑;可以處理擁有上千萬條記錄的大型數據庫。對于一般的個人使用者和中小型企業(yè)來說,SQLServer提供的功能已經綽綽有余。2.2.1JAVA語言特點(1)平臺無關性Java的一個顯著優(yōu)點就是運行時環(huán)境提供了平臺無關性,它引進虛擬機原理,并運行于虛擬機,實現不同平臺之間的Java接口。使用Java編寫的程序能在不同的平臺運行。Java的數據類型與機器無關,Java規(guī)范中沒有“依賴具體實現”[1]的概念。Java中基本數據類型的大小及其算法都做了明確的規(guī)定。(2)安全性Java的編程類似C++,但舍棄了C++的指針對存儲器地址的直接操作,程序運行時,內存由操作系統(tǒng)分配,這樣可以避免病毒通過指針入侵系統(tǒng)。它提供了安全管理器,防止程序的非法訪問。(3)面向對象Java吸收了C++面向對象的概念,將數據和操作封裝于類中,實現了程序的簡潔性和便于維護性,使程序代碼可以只需一次編譯就可反復利用。(4)分布式Java建立在TCP/IP網絡平臺上,提供了用HTTP和FTP協議傳送和接收信息的庫函數,使用其相關技術可以十分方便的構建分布式應用系統(tǒng)。(5)健壯性Java致力與檢查程序在編譯和運行時的錯誤,并自動回收內存,減少了內存出錯的可能性。Java取消了C語言的結構、指針、#define語句、多重繼承、goto語句、操作符、重載等不易被掌握的特性,提供垃圾收集器自動回收不用的內存空間。(6)多線程多線程可以帶來更好的交互響應和實時行為。適當地使用多線程可以更充分地利用系統(tǒng)資源,使程序的效率大大提升。Java對多線程的處理十分簡單,在不同的平臺上,調用多線程的代碼是完全相同的。2.2.2數據庫簡介隨著科學技術的進步,信息已成為各行各業(yè)的重要資源。數據庫以其強大的操作和管理功能成為高速信息表達的途經。據我所知,數據庫的類型有很多,比如:"sqlserver","vf","framework","access","Oracle""MySQL""SYBASE""DB2"等等,然而本軟件選擇了用SQLServer2005來作為數據庫軟件。關于SQLServer2005的介紹:MicrosoftSQLServer2005是由Microsoft公司開發(fā)的,在MicrosoftSQLServer的發(fā)展歷程中,有兩版本具有重要的意義。那就是在1996年推出的SQLServer6.5和在2000年8月推出的SQLServer2005版本。6.5版本使SQLServer得到了廣泛的應用,而2005版本在功能和易用性上有很大的增強,并推出了簡體中文版,它包括企業(yè)版,標準版,開發(fā)版和個人版4個版本。MicrosoftSQLServer2005(簡稱SQLServer)由一系列相互協作的組件構成,能滿足最大的Web站點和企業(yè)數據處理系統(tǒng)存儲和分析數據的需求。用SQLServer2005作為數據庫軟件的理由為:SQLServer2005能夠滿足今天的商業(yè)環(huán)境要求不同類型的數據庫解決方案。它一種應用廣泛的數據庫管理系統(tǒng),具有許多顯著的優(yōu)點:易用性、適合分布式組織的可伸縮性、用于決策支持的數據倉庫功能、與許多其他服務器軟件緊密關聯的集成性、良好的性價比等。性能、可伸縮性及可靠性是基本要求,而進入市場時間也非常關鍵。除這些核心企業(yè)品質外,SQLServer2005還為數據管理與分析帶來了靈活性,允許單位在快速變化的環(huán)境中從容響應,從而獲得競爭優(yōu)勢。從數據管理和分析角度看,將原始數據轉化為商業(yè)智能和充分利用Web帶來的機會非常重要。作為一個完備的數據庫和數據分析包,SQLServer2005為快速開發(fā)新一代企業(yè)級商業(yè)應用程序、為企業(yè)贏得核心競爭優(yōu)勢打開了勝利之門。作為重要的基準測試可伸縮性和速度獎的記錄保持者,SQLServer2005是一個具備完全Web支持的數據庫產品,提供了對可擴展標記語言(XML)的核心支持以及在Internet上和防火墻外進行查詢的能力。2.2.3MyEclipse簡介MyEclipse,是一個十分優(yōu)秀的用于開發(fā)Java,J2EE的Eclipse插件集合,MyEclipse的功能非常強大,支持也十分廣泛,尤其是對各種開源產品的支持十分不錯。MyEclipse企業(yè)級工作平臺,(MyEclipseEnterpriseWorkbench,簡稱MyEclipse)是對EclipseIDE的擴展,利用它我們可以在數據庫和JavaEE的開發(fā)、發(fā)布以及應用程序服務器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調試、測試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。在結構上,MyEclipse的特征可以被分為7類:(1).JavaEE模型(2).WEB開發(fā)工具(3).EJB開發(fā)工具(4).應用程序服務器的連接器(5).JavaEE項目部署服務(6).數據庫服務(7).MyEclipse整合幫助對于以上每一種功能上的類別,在Eclipse中都有相應的功能部件,并通過一系列的插件來實現它們。MyEclipse結構上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任一模塊進行單獨的擴展和升級。簡單而言,MyEclipse是Eclipse的插件,也是一款功能強大的JavaEE集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯,MyEclipse6.0以前版本需先安裝Eclipse。MyEclipse6.0以后版本安裝時不需安裝Eclipse。2.3軟硬件要求硬件需求:CPU:Pentium以上計算機內存:512M以上軟件需求:操作系統(tǒng)版本:WindowsXP/vista/Win7開發(fā)工具:MyEclipse后臺服務器:ApacheTomcat6.0開發(fā)語言:Java3需求分析要實現一個軟件系統(tǒng),首先應該進行需求分析,這樣才能令設計出的軟件滿足用戶的各項功能。下面就對在線問題解答系統(tǒng)的設計進行需求分析。 3.1可行性分析可行性分析(FeasibilityAnalysis)也稱為可行性研究,是在系統(tǒng)調查的基礎上,針對新系統(tǒng)的開發(fā)是否具備必要性和可能性,對新系統(tǒng)的開發(fā)從技術、經濟、社會的方面進行分析和研究,以避免投資失誤,保證新系統(tǒng)的開發(fā)成功。可行性研究的目的就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。該系統(tǒng)的可行性分析包括以下幾個方面的內容。(1)經濟可行性:主要是對項目的經濟效益進行評價,本系統(tǒng)開發(fā)經費在經濟上是可以接受的,并且本系統(tǒng)實施后可以顯著提高工作效率,提高教學質量。所以本系統(tǒng)在經濟上是可行的。(2)技術上的可行性:技術上的可行性分析主要分析技術條件能否順利完成開發(fā)工作,硬、軟件能否滿足開發(fā)者的需要等。該管理系統(tǒng)采用了Browser/Server模式進行開發(fā)。Browser/Server體系結構緊密的結合了Internet/Intranet技術,是技術發(fā)展的大勢所趨,它把應用系統(tǒng)帶入了一個嶄新的發(fā)展時代。數據庫服務器SQL數據庫,它能夠處理大量數據,同時保持數據的完整性并提供許多高級管理功能。它的靈活性、安全性和易用性為數據庫編程提供了良好的條件。因此,系統(tǒng)的軟件開發(fā)平臺已成熟可行。硬件方面,科技飛速發(fā)展的今天,硬件更新的速度越來越快,容量越來越大,可靠性越來越高,價格越來越低,其硬件平臺完全能滿足此系統(tǒng)的需要。(3)操作可行性:本系統(tǒng)操作簡單,輸入信息頁面大多數都是下拉框的選擇形式,在某些頁面,信息可以自動生成,無需輸入,時間的輸入也是用的日歷控件,操作簡便,對操作人員的要求很低,只需對WINDOWS操作熟練。而且本系統(tǒng)可視性非常好,所以在技術上不會有很大難度。(4)法律可行性:在線問題解答系統(tǒng)是自行開發(fā)的系統(tǒng),是很有實際意義的系統(tǒng),開發(fā)環(huán)境軟件和使用的數據庫都是開源代碼,開發(fā)這個系統(tǒng)不同于開發(fā)普通的系統(tǒng)軟件,不存在侵權等問題,即法律上是可行的。綜上所述,此系統(tǒng)開發(fā)目標已明確,在技術和經濟等方面都可行,并且投入少、見效快。因此系統(tǒng)的開發(fā)是完全可行的。3.2系統(tǒng)需要解決的主要問題首先,因為在線問答是面向特定的某些對象的,所以學生進入系統(tǒng)應該進行身份驗證。進入系統(tǒng)可以對自己的密碼進行修改。然后,學生需要在線提問以及回答問題等,所以系統(tǒng)管理者需要對教師學生以及論壇版塊進行維護。3.3系統(tǒng)用戶用例圖3.3.1管理員用例圖管理員是系統(tǒng)的核心用戶,涉及到六大功能模塊,管理員對系統(tǒng)的所有注冊用戶有著操作的權限,能夠及時動態(tài)的掌握問題信息的各項情況。如圖3.1所示。圖3.1管理員用例圖3.3.2普通用戶用例圖普通用戶通過注冊加入系統(tǒng)后,實現在線參與問卷調、瀏覽公告信息等功能。如圖3.2所示。圖3.2普通用戶用例圖3.4設計的基本思想設計思想遵循以下幾點:1.采用B/S模式進行開發(fā),其優(yōu)點是后臺與前臺處理層次分明,而且符合眾多已經習慣網頁方式的用戶。2.采用面向對象的開發(fā)與設計理念。運用面向對象技術的前提是對整體系統(tǒng)的高度和準確抽象,通過它可以保證系統(tǒng)良好的框架,進而帶來產品較強的穩(wěn)定性和運行效率。3.采用模塊化設計。模塊化設計要求將整個系統(tǒng)劃分成基于小的模塊,有利于代碼的重載,簡化設計和實現過程。4.簡單方便的系統(tǒng)界面。設計簡單友好的系統(tǒng)界面,方便用戶較快的適應系統(tǒng)的操作。5.速度優(yōu)先原則。由于此工具最重要的評測標準就是速度,因此在設計過程中,具體過程盡量做到資源占用少,速度快。6.設計既要突出重點,又要細致周到。要符合設計需求,在有可能改進的地方進行擴充,使系統(tǒng)更適應用戶的需要。3.5性能需求1.系統(tǒng)的安全性問題解答系統(tǒng)在管理權限上要嚴格進行控制,具體要求如下:想登錄問題解答管理系統(tǒng)進行操作,必須有操作權限,沒有權限的用戶不能通過任何方式登錄系統(tǒng),只能查看已有的問題和回復,以確保系統(tǒng)的嚴密性和安全性。2.數據的完整性1.各種記錄信息的完整性,信息記錄內容不能為空2.各種數據間相互聯系的正確性3.相同數據在不同記錄中的一致性3.6界面需求界面設計目前已經成為評價軟件質量的一條重要指標,一個好的用戶界面可以增加用戶使用系統(tǒng)的信心和興趣,提高工作效率,J2EE技術是用JAVA語言作為腳本語言的,J2EE網頁為整個服務器端的JAVA庫單元提供了一個接口來服務于HTTP的應用程序。創(chuàng)建動態(tài)頁面非常方便。用戶界面是指軟件系統(tǒng)與用戶交互的接口,通常包括輸出、輸入、人-機對話的界面格式等。1.輸出設計輸出是由計算機對輸入的原始信息進行加工處理,形成高質量的有效信息,并使之具有一定的格式,提供管理者使用,這是輸出設計的主要職責和目標。系統(tǒng)設計的過程正好和實施過程相反,并不是從輸入設計到輸出設計,而是從輸出設計到輸入設計,這是因為輸出表格直接與使用者相聯系,設計的出發(fā)點應當是保證輸出表格方便地為使用者服務,正確及時反映和組成用于各部門的有用信息。輸出設計的原則是考慮既要全面反映不同管理層的各項需要,又要言簡意賅,不要將用戶需要和不需要的都提供給用戶。2.輸入設計輸入數據的收集和錄入需要大量的人力和一定設備,并且容易出錯。如果輸入系統(tǒng)的數據有錯誤,則處理后的輸出將擴大這些錯誤,因此輸入數據的正確性對于整個系統(tǒng)質量的好壞是具有決定性意義的。輸入設計的原則有如下幾點:(1)輸入量應保持在能滿足處理要求的最低限度。設計中可采用設置字段初值,下拉式數據窗口等方式盡量減少用戶鍵盤輸入量。輸入量越少,錯誤率就越少,數據準備時間也減少。(2)輸入的準備及輸入過程應盡量容易進行,從而減少錯誤的發(fā)生。(3)應盡量早對輸入數據進行檢查(盡量接近原數據發(fā)生點),以便使錯誤及時得到更正。(4)輸入數據盡早地用其處理所需的形式被記錄,以避免數據由一種介質轉移到另一種介質時需要轉錄而可能發(fā)生的錯誤。4系統(tǒng)設計本階段設計的基本目標是解決系統(tǒng)如何實現問題,也叫做概要設計,本階段主要任務是劃分出系統(tǒng)的物理元素及設計軟件的結構,完成軟件定義時期的任務之后就應該對系統(tǒng)進行總體設計,即根據系統(tǒng)分析產生的分析結果來確定這個系統(tǒng)由哪些系統(tǒng)和模塊組成,這些系統(tǒng)和模塊又如何有機的結合在一起,每個模塊的功能如何實現。系統(tǒng)設計的目標是使系統(tǒng)實現擁有所要求的功能,同時,力爭達到高效率、高可靠性、可修改性,并且容易掌握和使用。模塊化的依據是:把復雜問題分解成許多容易解決的小問題。原來的問題也就變得容易解決。模塊化設計是把大型軟件按照一定的原則劃分成一個較小的相對功能獨立又相關聯的模塊。每個模塊完成一個特定的子功能。把這些模塊結合起來組成一個整體。完成指定的功能,滿足問題的要求。采用模塊化原理的優(yōu)點在于可以使軟件結構清晰,容易測試和調試。從而提高軟件的可靠性,可修改性。有助于軟件開發(fā)的組織管理。一個大型軟件可分別編寫不同的模塊。模塊化理論的幾個重要概念如下:(1).抽象抽象就是抽象出事物的本質特性而暫時不考慮它們的細節(jié)。處理復雜系統(tǒng)唯一有效的方法是用層次的方式構造和分析它。一個復雜的動態(tài)系統(tǒng)首先可以用一些高級的抽象概念構造和理解,這些高級概念又可以用一些較低級的理解,直到最低層次的具體元素。(2).信息隱蔽和局部化信息隱蔽是指在設計和確定模塊時,應使得一個模塊內包含的信息對于不需要這些信息的模塊來說,是不能訪問。局部化是指把一些關系密切的軟件元素物理的放得彼此靠近。局部化有助于實現信息隱蔽。信息隱蔽原理和局部化有助于在測試期間以及軟件維護期間修改軟件。因為絕大多數數據和過程對于軟件的其它部分而言是隱蔽的,從而由疏忽引入的錯誤就很少可能傳播到軟件的其它部分。(3).逐步求精的模塊化概念逐步求精和模塊化的抽象是密切相關的。軟件結構每一層中模塊表示對軟件抽象層次的次細化。用自頂向下,逐步求精的方法由抽象到具體的方式分配控制,簡化了軟件設計和實施,提高了軟件的可理解性和可測試性,并使得軟件更容易維護。(4).模塊獨立性模塊的劃分要使模塊間盡可能的相互獨立,獨立模塊較易維護。度量模塊的獨立程度有兩個標準:內聚和耦合。耦合是對一個軟件結構內不同模塊之間互連程度的度量。耦合強弱取決于模塊間接口的復雜程度,進入或訪問一個模塊的點,以及通過接口的數。在軟件的設計中應追求盡可能松散的耦合。內聚標志一個模塊內各個元素彼此結合的緊密程度,它是信息隱藏和局部化概念的自然擴展,理想內聚的模塊只做一件事情。在設計時應力求做到高內聚[1]。4.1基本簡介該系統(tǒng)是專門用于在線答疑、登錄、答疑查詢的應用web程序。它應該具有開放性、方便性和靈活性。管理員可以輕松地管理答疑的內容以及教師和學生的管理帳號等信息。4.2運行環(huán)境為了保證系統(tǒng)運行的效率和可靠性,系統(tǒng)服務器端應具有較高的軟硬件配置,客戶端的要求不是很高。此應用程序可廣泛運行于國際互聯網即Internet,也可適用于內部的局域網。其運行要求如下:☆軟件環(huán)境:客戶端:Windows7,InternetExplorer(IE)等服務器端:Windows7,InternetInformationServer(IIS)6.0及其以上版本,IE等。數據庫:SQLserver,運行于服務器端?!钣布h(huán)境:服務器CPU:雙核以上,內存:1G以上客戶機CPU:雙核以上,內存:1G以上4.3系統(tǒng)結構圖根據需求分析,在線問題解答系統(tǒng)的結構如下圖4.1。在線問題解答系統(tǒng)在線問題解答系統(tǒng)圖4.1系統(tǒng)結構圖4.4系統(tǒng)性能除了滿足用戶的功能要求外,系統(tǒng)的性能要求也很重要。系統(tǒng)的性能要求通常包括:運行時間、存儲容量、界面的友好性、系統(tǒng)的安全性、可靠性以及容錯能力等。系統(tǒng)的性能要求應按以下幾個方面確定:(1)容量要求:確定系統(tǒng)的容量,如處理的記錄數和處理數據的最大容量等。(2)精度要求:確定系統(tǒng)的精度。如數據或數值計算的精度和數據傳輸的精度等。(3)時間特性要求:確定系統(tǒng)的時間特性,如處理時間、響應時間及其峰值負載期間允許偏離范圍,系統(tǒng)各項功能的關系。(4)適應性要求:必須指明反映系統(tǒng)環(huán)境變化和系統(tǒng)適應能力的各種參數。如當需求發(fā)生變化時,系統(tǒng)的適應能力,并指出為適應這些變化而需要設計的軟件和過程。(5)界面友好性:要有適應用戶特點的智能化人——機交互界面,以便用戶經過簡單的培訓就可操作使用。(6)系統(tǒng)可靠性:為提高系統(tǒng)可靠性必須采用模塊化和結構化設計,提高系統(tǒng)的容錯能力,并保障系統(tǒng)不會因人為的操作錯誤而死機或崩潰。如果系統(tǒng)對時效要求非常高,還必須考慮雙機系統(tǒng)和磁盤陣列等措施。此外,還應采用可靠的供電設備。對信息系統(tǒng)的性能而言,其要求是:信息查詢的平均響應時間、連接的終端數、數據存儲容量、可擴充存儲容量(可存儲幾年、幾個月的數據)、打印報表的種類和數量等。4.5系統(tǒng)功能描述4.5.1前臺系統(tǒng)功能描述(1)用戶瀏覽模塊 完成用戶對問題解答系統(tǒng)的內容的瀏覽,問題解答系統(tǒng)內容是分類存放的,用戶可以瀏覽自己感興趣的問題內容。這是前臺管理模塊的主要功能。(2)回復模塊當用戶瀏覽完自己感興趣的問題后,可以對問題發(fā)表自己的評論,也可以提出自己的疑問。(3)問題解答系統(tǒng)搜索模塊由于網站的問題量比較大,用戶想要瀏覽某個特定的問題時,可以使用此功能來查找,以便快速定位,可以輸入關鍵字,按文章發(fā)布系統(tǒng)的標題和文章發(fā)布系統(tǒng)的內容進行查找。4.5.2后臺系統(tǒng)功能描述用戶管理模塊用戶管理模塊包括添加用戶,對用戶基本信息的瀏覽,更改用戶密碼等功能。(2)添加問題解答系統(tǒng)內容模塊此模塊完成文章發(fā)布系統(tǒng)內容的添加的功能。需要輸入要添加問題的標題,文藝的內容,所提出問題的類別,發(fā)布人的信息等。此處添加的問題將在前臺系統(tǒng)中以分類的形式進行顯示。問題解答管理模塊此模塊的功能是對已有的問題的各項信息進行修改,對過期的問題進行刪除操作。評論管理模塊此模塊的功能是對用戶的評論信息進行修改或刪除。4.6詳細設計詳細設計是整個設計過程中,最重要的步驟之一。下面就分如下幾個部分對系統(tǒng)進行詳細設計:用戶個人信息設計數據庫中表的設計數據庫邏輯ER圖設計功能模塊的詳細設計主要模塊的流程圖顯示。4.6.1用戶個人信息設計用戶個人信息設計,首先應該實現用戶名和密碼的設計。用戶名要求不能為空、重復,密碼輸入的兩次信息應該一致,然后應該實現用戶名密碼的修改,最后要求管理員對用戶的維護操作。4.6.2數據庫中表的設計我們知道,數據庫概念模型獨立于任何特定的數據庫管理系統(tǒng),因此,需要根據具體使用的數據庫管理系統(tǒng)的特點進行轉換。即轉化為按計算機觀點處理的邏輯關系模型,E-R模型向關系數據庫模型轉換應遵循下列原則:*每一個實體要轉換成一個關系*所有的主鍵必須定義非空(NOTNULL)*對于二元聯系應按照一對多、弱對實、一對一、多對多等聯系來定義外鍵。根據E-R模型,問卷調查管理系統(tǒng)建立了以下邏輯數據結構,下面是各數據表的詳細說明。數據庫名稱為db_dayi。管理員信息表,如表4-1所示。表4-1管理員信息表表名字段名數據類型空/非空字段說明字段說明t_admin
(管理員)userIdint(4)非空主鍵自增列userNamevarchar(50)空登錄名userPwvarchar(50)空密碼(2)學生信息表,如表4-2所示。表4-2學生信息表表名字段名數據類型空/非空字段說明字段說明t_user
(學生)idint(4)非空主鍵自增列l(wèi)oginnamevarchar(50)空用戶名loginpwvarchar(50)空密碼xuehaovarchar(50)空學號表4-2學生信息表(續(xù))表名字段名數據類型空/非空字段說明字段說明t_user
(學生)namevarchar(500)空姓名sexvarchar(50)空性別agevarchar(50)空年齡typeint(4)空類別delvarchar(50)空是否刪除(3)教師信息表,如表4-3所示。表4-3教師信息表表名字段名數據類型空/非空字段說明字段說明t_tea
(教師)idint(4)非空主鍵自增列bianhaovarchar(50)空編號namevarchar(50)空姓名sexvarchar(50)空性別agevarchar(50)空年齡loginnamevarchar(50)空登錄名loginpwvarchar(50)空密碼delvarchar(50)空是否刪除(4)問題管理表,如表4-4所示。表4-4問題管理表表名字段名數據類型空/非空字段說明字段說明t_wenti
(問題)idint(4)非空主鍵自增列titlevarchar(50)空標題contentvarchar(5000)空內容fujianvarchar(50)空附件user_idint(4)空用戶idtea_idint(4)空教師id(5)問題回復管理表,如表4-5所示。表4-5問題回復管理表表名字段名數據類型空/非空字段說明字段說明t_huifu
(問題回復)idint(4)非空主鍵自增列titlevarchar(500)空標題contentvarchar(5000)空內容shijianvarchar(50)空附件zhuti_idint(4)空問題idhuifuzhe_leixingint(4)空回復人類型(6)板塊管理表,如表4-6所示。表4-6板塊管理表表名字段名數據類型空/非空字段說明字段說明t_catelog
(板塊)idint(4)非空主鍵自增列namevarchar(50)空名稱jieshaovarchar(500)空介紹delvarchar(50)空是否刪除(7)主題管理表,如表4-7所示。表4-7主題管理表表名字段名數據類型空/非空字段說明字段說明t_zhuti
(主題)idint(4)非空主鍵自增列titlevarchar(50)空標題contentvarchar(50)空內容fujianvarchar(50)空附件fujianYuanshimingvarchar(50)空附件原始名shijianvarchar(50)空時間user_idint(4)空用戶idcatelog_idint(4)非空板塊iddelvarchar(50)空是否刪除4.6.3數據庫邏輯設計E—R圖1.實體與屬性之間的關系E-R模型的組成元素有:實體、屬性、聯系。E-R模型用E-R圖表示。實體是用戶工作環(huán)境中所涉及的事務,屬性是對實體特征的描述。(1)模型中的實體相當于實體集、一個表,而不是單個實體或表中的一行。實體用矩形框表示,實體名稱標注在矩形框內。用菱形表示實體間的聯系,菱形框內寫上聯系名,用無向邊把菱形分別與有關實體相連接,在無向邊旁標上聯系的類型。(2)屬性是實體的性質。用橢圓框表示,與實體之間用一條線相連表的主碼是關鍵屬性,關鍵屬性項加下劃線。(3)各子系統(tǒng)模塊中主鍵相同的字段之間存在著相互關聯的關系。(4)在程序中實現對他們的完整性和一致性控制。2.數據庫的E-R圖數據庫的E-R圖如圖4.2所示。圖4.2E-R圖4.6.4主要模塊的流程圖☆用戶管理如圖4.3所示。圖4.3用戶管理流程圖☆答疑模塊如圖4.4所示。圖4.4答疑模塊流程圖5系統(tǒng)程序實現5.1index(系統(tǒng)主界面)在瀏覽器里運行本系統(tǒng),出現系統(tǒng)的主界面,包括論壇板塊、問題內容、搜索內容以及內容發(fā)布等。如圖5.1所示。圖5.1系統(tǒng)主界面圖代碼實現過程如下:publicclasscatelog_servletextendsHttpServlet{ publicvoidservice(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException {Stringtype=req.getParameter("type"); if(type.endsWith("catelogAdd")) { catelogAdd(req,res); } if(type.endsWith("catelogDel")) { catelogDel(req,res); } if(type.endsWith("catelogMana")) { catelogMana(req,res);} if(type.endsWith("catelogAll")) { catelogAll(req,res); } if(type.endsWith("catelogDetail")) { catelogDetail(req,res); } } publicvoidcatelogAdd(HttpServletRequestreq,HttpServletResponseres) { Stringname=req.getParameter("name"); Stringjieshao=req.getParameter("jieshao"); Stringdel="no"; Stringsql="insertintot_catelogvalues(?,?,?)"; Object[]params={name,jieshao,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","catelog?type=catelogMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }5.2詳細內容頁面1.為了保證系統(tǒng)的安全性,對問題發(fā)布、回復等功能,需要首先登錄系統(tǒng)。如圖5.2,5.3所示。圖5.2登錄界面圖5.3登錄成功提示2.登錄成功后,點擊主題,可進入主題的詳細內容,可以查看到所有用戶的回復內容等信息。如圖5.4所示。圖5.4詳細內容頁面圖提出問題學生登陸后,點擊發(fā)布新問題,輸入問題信息后點擊提交按鈕,如果是沒有輸入完整的信息,都會給出相應的錯誤提示,不能提問成功。如圖5.5所示。圖5.5發(fā)布新問題示意圖代碼實現過程如下:publicStringwenjuanAdd(){ TWenjuanwenjuan=newTWenjuan(); wenjuan.setId(String.valueOf(newDate().getTime())); wenjuan.setMingcheng(mingcheng); wenjuan.setShijian(newSimpleDateFormat("yyyy-MM-dd").format(newDate())); wenjuanDAO.save(wenjuan); this.setMessage(""); this.setPath("wenjuanMana.action"); return"succeed"; } publicStringwenjuanMana() { Stringsql="fromTWenjuan"; ListwenjuanList=wenjuanDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("wenjuanList",wenjuanList); returnActionSupport.SUCCESS; } publicStringwenjuanDel() { TWenjuanwenjuan=wenjuanDAO.findById(id); wenjuanDAO.delete(wenjuan); this.setMessage(""); this.setPath("wenjuanMana.action"); return"succeed"; }4.回復問題學生可以選擇別的同學提出的問題,點擊進入,輸入回復信息后點擊提交按鈕,就可以回復其他同學們的問題。如圖5.6所示。圖5.6回復問題示意圖查看自己的信息點擊提示我的信息,就可以查看學生自己的學號,年齡等信息,也可以修改自己的部分信息,如修改自己的登錄名,密碼。修改后點擊修改按鈕即可,不修改則按取消按鈕即可。如圖5.7所示。圖5.7查看我的信息示意圖注冊信息有些同學沒有此網站的賬號,那么此時可以注冊賬號,點擊界面上方注冊按鈕,輸入相應的信息,設置自己的用戶名及密碼,下次用此用戶名和密碼即可登錄提出及回答問題。如圖5.8所示。圖5.8注冊頁面代碼實現過程如下:publicvoidhuifuAdd(HttpServletRequestreq,HttpServletResponseres) { HttpSessionsession=req.getSession(); Stringtitle=req.getParameter("title"); Stringcontent=req.getParameter("content"); Stringshijian=newDate().toLocaleString(); intzhuti_id=Integer.parseInt(req.getParameter("zhuti_id")); inthuifuzhe_leixing=0; inthuifuzhe_id=0; if(session.getAttribute("userType").toString().equals("1"))//學生 { huifuzhe_leixing=1; huifuzhe_id=((Tuser)(session.getAttribute("user"))).getId(); } if(session.getAttribute("userType").toString().equals("2"))//老師 { huifuzhe_leixing=2; huifuzhe_id=((Ttea)(session.getAttribute("tea"))).getId(); } if(session.getAttribute("userType").toString().equals("100"))//管理員 { huifuzhe_leixing=100; huifuzhe_id=((Tuser)(session.getAttribute("user"))).getId(); } Stringdel="no"; Stringsql="insertintot_huifuvalues(?,?,?,?,?,?,?)"; Object[]params={title,content,shijian,zhuti_id,huifuzhe_leixing,huifuzhe_id,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("msg","操作成功");StringtargetURL="/common/msg.jsp"; dispatch(targetURL,req,res); }5.3后臺登錄后臺登錄是提供給管理員的登錄窗口,管理員輸入用戶名及密碼后,系統(tǒng)會進行識別,如果是合法用戶即可登錄到后臺主頁面。如圖5.9所示。圖5.9后臺登錄圖代碼實現其過程如下:publicvoidadminAdd(HttpServletRequestreq,HttpServletResponseres) { StringuserName=req.getParameter("userName"); StringuserPw=req.getParameter("userPw"); Stringsql="insertintot_admin(userName,userPw)values(?,?)"; Object[]params={userName,userPw}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","admin?type=adminMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }5.4修改密碼修改密碼功能可以修改本人的登陸密碼,需要輸入原密碼,然后輸入2遍新密碼,待系統(tǒng)確認信息后,方可修改成功。如圖5.10所示。圖5.10修改密碼界面圖其代碼實現過程如下:publicvoiduserEdit(HttpServletRequestreq,HttpServletResponseres) { intid=Integer.parseInt(req.getParameter("id")); Stringloginname=req.getParameter("loginname"); Stringloginpw=req.getParameter("loginpw"); Stringname=req.getParameter("name"); Stringsex=req.getParameter("sex"); Stringage=req.getParameter("age"); Stringsql="updatet_usersetloginpw=?,name=?,sex=?,age=?whereid=?"; Object[]params={loginpw,name,sex,age,id}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("msg","修改成功,重新登錄后生效"); StringtargetURL="/common/add_success.jsp"; dispatch(targetURL,req,res); }5.5管理員管理管理員管理模塊可以添加管理員帳號,同時可以根據需要來刪除相應的管理員帳號信息等,如圖5.11所示。圖5.11管理員管理功能圖其代碼實現過程如下:publicvoidadminDel(HttpServletRequestreq,HttpServletResponseres) { System.out.println(req.getParameter("userId")+"**"); Stringsql="deletefromt_adminwhereuserId="+Integer.parseInt(req.getParameter("userId")); Object[]params={}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功");req.setAttribute("path","admin?type=adminMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }}5.6板塊管理板塊管理功能可以添加論壇的板塊,可以添加板塊名稱、介紹,同時可以根據需要來刪除板塊名稱等。如圖5.12所示。圖5.12板塊管理圖其代碼實現過程如下:publicvoidcatelogAdd(HttpServletRequestreq,HttpServletResponseres) { Stringname=req.getParameter("name"); Stringjieshao=req.getParameter("jieshao"); Stringdel="no"; Stringsql="insertintot_catelogvalues(?,?,?)"; Object[]params={name,jieshao,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","catelog?type=catelogMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }5.7學生管理管理員可以添加學生的相關信息,如:用戶名、密碼、學號、姓名、性別、年齡等信息。如圖5.13所示。圖5.13學生管理圖其代碼實現過程如下:publicvoiduserMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListuserList=newArrayList(); Stringsql="select*fromt_userwheredel='no'andtype=1"; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Tuseruser=newTuser(); user.setId(rs.getInt("id")); user.setLoginname(rs.getString("loginname")); user.setLoginpw(rs.getString("loginpw")); user.setXuehao(rs.getString("xuehao")); user.setName(rs.getString("name")); user.setSex(rs.getString("sex")); user.setAge(rs.getString("age")); user.setType(rs.getInt("type")); userList.add(user); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("userList",userList); req.getRequestDispatcher("admin/user/userMana.jsp").forward(req,res); }5.8教師管理管理員可以添加教師的相關信息,如:編號、姓名、性別、年齡、登錄帳號、密碼等信息,如圖5.14,5.15所示。圖5.14教師管理界面圖圖5.15教師管理操作圖其代碼實現過程如下:publicvoidteaAdd(HttpServletRequestreq,HttpServletResponseres) { Stringbianhao=req.getParameter("bianhao"); Stringname=req.getParameter("name"); Stringsex=req.getParameter("sex"); Stringage=req.getParameter("age"); Stringloginname=req.getParameter("loginname"); Stringloginpw=req.getParameter("loginpw"); Stringdel="no"; Stringsql="insertintot_teavalues(?,?,?,?,?,?,?)"; Object[]params={bianhao,name,sex,age,loginname,loginpw,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","tea?type=teaMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); }6軟件測試測試是開發(fā)時期最后一個階段,是保證軟件質量的重要手段。軟件測試就是在受控制的條件下對系統(tǒng)或應用程序進行操作并評價操作結果的過程,所謂控制條件應包括正常條件與非正常條件。軟件測試過程中應該故意地去促使錯誤的發(fā)生,也就是事情在不該出現的時候出現或者在應該出現的時候沒有出現。從本質上說,軟件測試是"探測",在"探測"中發(fā)現軟件的毛病。6.1軟件測試的意義系統(tǒng)測試是管理信息系統(tǒng)開發(fā)周期中一個十分重要而漫長的的階段。其重要性體現在他是保證系統(tǒng)質量與可靠性的最后關口,是對整個系統(tǒng)開發(fā)過程包括系統(tǒng)分析、系統(tǒng)設計和系統(tǒng)實現的最終審查[15]。系統(tǒng)測試的任務是盡可能徹底的檢查出程序中的錯誤,提高軟件系統(tǒng)的可靠性,其目的是檢驗系統(tǒng)“做得怎樣”。這這階段又可以分為三個步驟:模塊測試,測試每個模塊的程序是否正確;組裝測試,測試模塊之間的接口是否正確;確認測試,測試整個軟件系統(tǒng)是否滿足用戶功能和性能的要求[15]。測試發(fā)現問題之后要經過調試找出錯誤原因和位置,然后進行改正。基于系統(tǒng)整體需求說明書的黑盒測試,應覆蓋系統(tǒng)隨偶聯合的部件,系統(tǒng)測試是正對整個產品系統(tǒng)進行的測試,目的是驗證系統(tǒng)是否滿足了需求規(guī)格的定義,找出需求規(guī)格不符合或與之矛盾的地方。軟件危機曾經是軟件界甚至整個計算機界最熱門的話題。為了解決這場危機,軟件從業(yè)人員、專家和學者做出了大量的努力。現在人們已經逐步認識到所謂的軟件危機實際上僅是一種狀況,那就是軟件中有錯誤,正是這些錯誤導致了軟件開發(fā)在成本、進度和質量上的失控。有錯是軟件的屬性,而且是無法改變的,因為軟件是由人來完成的,所有由人做的工作都不會是完美無缺的。問題在于我們如何去避免錯誤的產生和消除已經產生的錯誤,使程序中的錯誤密度達到盡可能低的程度。6.2軟件測試的重要性軟件測試在軟件生命周期中占據重要的地位,在傳統(tǒng)的瀑布模型中,軟件測試學僅處于運行維護階段之前,是軟件產品交付用戶使用之前保證軟件質量的重要手段。近來,軟件工程界趨向于一種新的觀點,即認為軟件生命周期每一階段中都應包含測試,從而檢驗本階段的成果是否接近預期的目標,盡可能早的發(fā)現錯誤并加以修正,如果不在早期階段進行測試,錯誤的延時擴散常常會導致最后成品測試的巨大困難。事實上,對于軟件來講,不論采用什么技術和什么方法,軟件中仍然會有錯。采用新的語言、先進的開發(fā)方式、完善的開發(fā)過程,可以減少錯誤的引入,但是不可能完全杜絕軟件中的錯誤,這些引入的錯誤需要測試來找出,軟件中的錯誤密度也需要測試來進行估計。測試是所有工程學科的基本組成單元,是軟件開發(fā)的重要部分。自有程序設計的那天起測試就一直伴隨著。統(tǒng)計表明,在典型的軟件開發(fā)項目中,軟件測試工作量往往占軟件開發(fā)總工作量的40%以上。而在軟件開發(fā)的總成本中,用在測試上的開銷要占30%到50%。如果把維護階段也考慮在內,討論整個軟件生存期時,測試的成本比例也許會有所降低,但實際上維護工作相當于二次開發(fā),乃至多次開發(fā),其中必定還包含有許多測試工作。6.3軟件測試的范圍軟件測試貫穿于軟件定義與開發(fā)的整個周期,軟件的需求規(guī)格說明書,結構設計及程序編碼,都屬于軟件測試的對象。6.4軟件測試的方法測試在軟件開發(fā)過程中一直都是備受關注的,即使在傳統(tǒng)的軟件工程中,也有一個明確、獨立的測試階段。隨著軟件危機的頻頻出現以及人們對于軟件本質的進一步認識,測試的地位得到了前所未有的提高。測試已經不僅僅局限于軟件開發(fā)中的一個階段,它已經開始貫穿于整個軟件開發(fā)過程,人們已經開始認識到:測試開始的時間越早,測試執(zhí)行的越頻繁,所帶來的整個軟件開發(fā)成本的下降就會越多。ExtremeProgramming更是把測試推到了極限的位置,一切軟件開發(fā)活動都要從首先編寫測試代碼開始。6.5軟件測試的目的和原則在開發(fā)大型軟件系統(tǒng)的過程中,需要面對錯綜復雜的問題,因此,在軟件生存周期的每個階段都不可避免地會產生錯誤。我們力求在每個階段結束之前通過嚴格的技術審查,盡可能早的發(fā)現并糾正錯誤。測試的目的就是在軟件投入生產性運行之前,盡可能多地發(fā)現軟件中的錯誤。目前軟件測試仍然是保證軟件質量的關鍵步驟,它是對軟件規(guī)格說明、設計和編碼的最后復審。盡管面向對象技術的基本思想保證了軟件應該有更高的質量,但無論采用什么樣的編程技術,編程人員的錯誤都是不可避免的,而且由于面向對象技術開發(fā)的軟件代碼重用率高,更需要嚴格測試,避免錯誤的繁衍。因此,軟件測試在面向對象編程里更具有它的重要性。與開發(fā)過程類似,測試過程也必須分步驟進行,每個步驟在邏輯上是前一個步驟地繼續(xù)。大型軟件系統(tǒng)通常由若干個子系統(tǒng)組成,每個子系統(tǒng)又由許多模塊組成。因此,大型軟件系統(tǒng)的測試的基本層次如圖6.1所示。圖6.1測試的基本層次(1)單元測試單元測試的用例從單元詳細設計中導出。在單元測試中可以采用功能性測試和結構性測試兩種。(2)集成測試在這個測試步驟中所發(fā)現的往往是概要設計的錯誤。(3)系統(tǒng)測試在這個測試步驟中所發(fā)現的往往是需求規(guī)格說明的錯誤。一般來說,系統(tǒng)測試是功能性測試,不是結構性測試。為了使本軟件運行更加穩(wěn)定,我對它進行了全面的測試,測試分為二部分來進行,一是:界面測試;二是功能測試。首先是界面測試,為了使軟件在不同的的操作系統(tǒng)平臺上運行界面能保持原來的風格。在Windows7環(huán)境下,程序運行界面正常,界面上的字體等設置都保持得相當好。沒有出現類似字體變形的情況!如圖6.2所示。圖6.2界面測試圖二是進行功能的測試。經過測試,所有功能都能得以實現,沒有任何變形。至此到這里在功能的測試上也已經比較圓滿的完成了!7結論與總結在設計過程中,為了解決遇到的問題,查閱了大量的相關資料,總結了很多前人的經驗。該系統(tǒng)設計的是一個基于Web的在線問題解答系統(tǒng),系統(tǒng)的服務器端采用的都是開放源代碼軟件產品,例如ApacheTomcat服務器、SQL數據庫服務器,節(jié)省了一些開發(fā)成本。該系統(tǒng)設計的一個重點和難點是在如何處理JAVA客戶端和JAVA服務器端的通信優(yōu)化問題,它不僅要考慮到網絡瓶頸的問題,還要權衡客戶端和服務器端代碼編寫的難易。針對這個問題,專門查閱了相關書籍和網絡資料,得以有效解決。從總體上看,該系統(tǒng)實現了在線問題解答系統(tǒng)的基本功能。而且這樣的設計使得整個系統(tǒng)的可移植性、伸縮性、可維護性、可擴展性、可重用性和可管理性等性能有了很大的提升。但是,系統(tǒng)仍然存在一些需要改進的地方,例如答疑模塊的功能還不夠強大,缺少直觀的后臺管理功能。這些問題都是將來可以升級、擴展和努力改進的方向。參考文獻1潘曉雷.Java2入門經典.JDK5.北京:機械工業(yè)出版社,2009.1-10582劉甲耀,嚴桂蘭.CoreJava應用程序設計教程.北京:電子工業(yè)出版社,2006(2).97-3043孫衛(wèi)琴.精通Struts:基于MVC的JavaWeb設計與開發(fā).北京:電子工業(yè)出版社,2008(8).7-354菜劍,景楠.JavaWeb應用開發(fā):J2EE和Tomcat.第2版.北京:清華大學出版社,2007(1).35-2505孫衛(wèi)琴,李洪成.Tomcat與Java.Web開發(fā)技術詳解.北京:電子工業(yè)出版社,2009(4).29-1346殷兆麟,張永平,姜淑娟.Java網絡高級編程.北京:清華大學出版社,北京交通大學出版社,2009(5).94-2357MarcoPistoia,NatarajNagaratnam,尹亞,明喻衛(wèi),嚴進寶譯.企業(yè)級Java安全性:構建安全的J2EE應用.北京:清華大學出版社,2008(3).72-1098William
Crawford,Jonathan
Kaplan.J2EEDesignPatterns.O’Reilly,2009(9).25-1029RodJohnson,JuergenHoeller.ExpertOne-on-OneJ2EEDevelopmentwithoutEJB.WileyPublishing,Inc.,2007.31-6310JasonHunter,WilliamCrawford.JJavaServletProgramming.O’Reilly,2008.86-14311Jayson
Falkner,Kevin
Jones.ServletsandJavaServerPages.TheJ2EETechnologyWebTier.AddisonWesley,2003(9).12-32致謝時間如梭,大學四年馬上就要結束了,在這四年的學習生活中,我學習到了很多知識,專業(yè)知識方面更是有了很大的提高,是我這一生當中最寶貴的財富,是不斷超越自我的歷程。在這最后的階段,我衷心的向學校的各位老師和我的同學表示我的感謝,感謝他們在這四年當中對我的幫助和關心。很感謝學校能夠提供我們這個鍛煉自我的機會,給我們一個能夠使大學四年所學到的知識加以實踐的機會。在整個設計過程中,我要感謝我的指導老師張光勝和陳永樂老師,他們對我的支持、幫助和信任,讓我順利完成了整個畢業(yè)設計。我還要感謝和我一起奮斗的同學們,他們在技術上給了我大量的建議和幫助。同時,我還要感謝在大學學習期間,受到所有老師的指導、關心和幫助,在這里向辛勤工作的老師們表示衷心地感謝。感謝陳永樂教授和所有杰普等老師在畢業(yè)設計工作中給予的幫助。 最后,衷心地感謝所有關心、幫助過我的老師、朋友和同學,謝謝大家!外文資料DevelopWebapplicationprogramusingASPthearchitecturethatmustfirstestablishWebapplication.Nowinapplicationfrequentlywithtohavetwo:ThearchitectureofC/SandthearchitectureofB/S.Client/serverandcustomerend/serverholdthearchitectureofC/S.Thecustomer/serverstructureoftwofloor.Customer/server(Client/Server)modelisakindofgoodsoftwarearchitecture,itistheoneofbestapplicationpatternofnetwork.Fromtechnology,seethatitisalogicconcept,denotewillaapplicationmanytasksofdecomposingdifferencecarryout,commoncompletionisentiretoapplythefunctionoftask.Oneachnetworkmaincomputerofwebsite,resource(hardware,softwareanddata)divideintostep,isnotbalanced,undercustomer/serverstructure,withouttheclientcomputerofresourcethroughsendingrequesttotheserverthathasresource,getresourcerequest,someettheresourcedistributioninnetworknotbalancedness.Withthiskindofstructure,cansynthesizevariouscomputerstocooperatewithwork,letiteachcan,realizethescaleforthesystemofcomputeroptimization(Rightsizing)withscalereducetomelt(Downsizing).Pictureisasfollows:Itismostoftodivideintocomputernetworkapplicationintotwo,inwhichtheresourceandfunctionthatpartsupportsmanyuserstoshare,itisrealizedbyserver;Anotherpartfaceseveryuser,isrealizedbyclientcomputer,alsonamely,clientcomputerisusualtocarryoutprosceniumfunction,realizesman-machineinteractionthroughuserinterface,oristheapplicationprogramofspecificconducteduser.Andserverusuallycarriesoutthefunctionofbackstagesupporter,managestheoutsiderequestconcerningsetingup,acceptingandreplyinguserthatshared.Foracomputer,itcanhavedoublefunction,isbeingcertainandmomentarytocarvetoactasserver,andagainbecomesclientcomputerinanothertime.Customer/servertypecomputerdivi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025航空旅游購物平臺營銷策略與收益模型打造實施報告
- 2025航空客運行業(yè)市場競爭格局及投資前景規(guī)劃分析研究報告
- 2025航空客運業(yè)務運作狀態(tài)研究及發(fā)展趨勢與管理策略研究報告
- 2025航海運輸行業(yè)智能化升級技術與市場需求分析研究報告
- 2025航海漁業(yè)行業(yè)市場深度調研及趨勢前景與投融資研究報告
- 學生養(yǎng)成教育實施方案與案例
- 物業(yè)承接前期管理流程方案
- 麥當勞廣告策劃活動方案(3篇)
- 蜜蜂攝影活動方案策劃(3篇)
- 鹽城奶茶活動方案策劃(3篇)
- 福建省福州市倉山區(qū)2024-2025學年三年級上學期期末數學試題
- 中醫(yī)特色護理在急診科的應用
- DB35T 2285-2025 低零碳工廠建設導則
- 新安全生產法2025年版全文
- 高層建筑火災避險自救逃生學習課件
- 在學校的一天記事并表達感情抒情作文7篇
- 貴州茅臺股份有限公司財務績效分析
- 2025年及未來5年中國計量校準行業(yè)市場調研及未來發(fā)展趨勢預測報告
- 2026年廣東省第一次普通高中學業(yè)水平合格性考試數學仿真模擬卷01(全解全析)
- 建筑施工安全生產管理方案
- 重慶安全a證題庫及答案解析
評論
0/150
提交評論