在線考試系統(tǒng)畢業(yè)設(shè)計_第1頁
在線考試系統(tǒng)畢業(yè)設(shè)計_第2頁
在線考試系統(tǒng)畢業(yè)設(shè)計_第3頁
在線考試系統(tǒng)畢業(yè)設(shè)計_第4頁
在線考試系統(tǒng)畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、軟件工程碩士學(xué)位論文第1章 考試系統(tǒng)概述1.1 計算機考試系統(tǒng)的研究意義傳統(tǒng)的基于紙和筆的考試?yán)蠋熞ㄙM大量的時間和精力出題、改卷、統(tǒng)計分?jǐn)?shù)等,存在諸多弊端:工作量大、周期長、反饋能力弱、人為的因素影響考試成績。隨著高校擴招和各類考試自動化出卷批改的要求,迫切需要一種高效、快捷、科學(xué)的考試方式。隨著計算機技術(shù)與網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,利用計算機網(wǎng)絡(luò)技術(shù)實現(xiàn)的計算機網(wǎng)上考試取代傳統(tǒng)的手工考試成為一種趨勢。利用計算機對數(shù)據(jù)庫的并發(fā)存取功能和網(wǎng)絡(luò)傳輸特性,實現(xiàn)高效、準(zhǔn)確和科學(xué)的網(wǎng)上考試將成為現(xiàn)代教育方式中的一種重要手段。它的優(yōu)點主要體現(xiàn)在以下幾個方面:1.出卷方便快捷。通過現(xiàn)成的題庫系統(tǒng),只要輸入考卷的

2、難度級別、試卷的題型題量等約束條件,軟件會自動生成符合要求的試卷,簡便、快捷、公平;2.閱卷準(zhǔn)確快速。通過計算機閱卷,可以大大減輕教師閱卷的工作量,提高教師的工作效率,同時提高閱卷的準(zhǔn)確性;3.成績分析統(tǒng)計科學(xué)直觀。成績分析統(tǒng)計由計算機自動完成,可以方便地統(tǒng)計及格率、優(yōu)秀率和每題的得分情況等。計算機考試方式的優(yōu)越性較之傳統(tǒng)方式,既靈活方便,又高效可靠,還能及時反饋教學(xué)情況,減少諸多中間環(huán)節(jié),提高教學(xué)效率1。我校有一萬多學(xué)生,每個學(xué)期都要組織大規(guī)模的考試,耗費老師大量的時間和精力,如果能夠把本課題的考試系統(tǒng)應(yīng)用到教學(xué)實踐,一定能夠節(jié)省很多的時間和精力,提高閱卷效率和正確率。1.2 計算機考試系統(tǒng)

3、國內(nèi)外研究現(xiàn)狀計算機考試系統(tǒng)指的是由計算機軟件來輔助測試,計算機輔助測試簡稱CAT。60年代初CAT起源于美國,經(jīng)過40多年的發(fā)展,已經(jīng)在國內(nèi)外得到了廣泛應(yīng)用。1.2.1 國內(nèi)外在用的考試系統(tǒng)國外有許多專門的考試機構(gòu)采用計算機輔助測試對考試對象進行考核,比較著名的有美國Sylvan Learning System Inc,它在全世界一百多個國家和地區(qū)有數(shù)千個考試中心,提供近百個不同類型,一千多種考試。國內(nèi)也有許多考試采用了計算機考試系統(tǒng)。1.2000年開始TOEFL考試在中國采用計算機考試模式1;2.人事部組織的專業(yè)人員計算機應(yīng)用能力考試;3.微軟認(rèn)證、Cisco認(rèn)證等;4.全國范圍內(nèi)的“全國

4、計算機等級考試”,“NIT考試”都采用計算機考試模式;5.浙江省大學(xué)生計算機一級等級考試全部采用計算機考試,二級等級考試的部分內(nèi)容采用了計算機考試;6.還有很多大學(xué)和科研機構(gòu)采用了自主研發(fā)的考試系統(tǒng),例如浙江大學(xué)、浙江師范大學(xué)等院校;7.交通管理部門組織的駕駛員理論考試。以上的考試系統(tǒng)大多比較完善,但是一些計算機基礎(chǔ)考試系統(tǒng)還有一些不足,比如試題的實用性程度不高;為了方便計算機批改,操作題比較死板;批卷的智能化有待提高。1.2.2 考試系統(tǒng)分類以題庫構(gòu)成為標(biāo)準(zhǔn)可以把計算機考試系統(tǒng)分為三種:1.不以題庫為基礎(chǔ)的考試,試卷以單份為主,多用于心理測驗和調(diào)查研究;2.題庫由試卷庫構(gòu)成,試卷庫指多份試卷

5、,隨機抽取一份給學(xué)生考試;3.題庫由試題庫構(gòu)成,試題庫指海量試題,海量試題按照一定組卷策略組卷2。對計算機輔助測試系統(tǒng)的分類還有很多方法。按試卷是否基于題庫可分為基于題庫的考試系統(tǒng)和非基于題庫的考試系統(tǒng);按題量是否定長可分為定長和不定長的考試系統(tǒng);按采用的測試?yán)碚摽煞譃榛诮?jīng)典測試?yán)碚摵突陧椖糠磻?yīng)理論的考試系統(tǒng);按是否是自適應(yīng)考試可分為傳統(tǒng)的和自適應(yīng)的考試系統(tǒng),自適應(yīng)組卷指依靠大型題庫,自行適應(yīng)被測試人員水平,靈活實施測試難度。1.2.3 組卷算法分類和進展34組卷算法的好壞直接關(guān)系到試卷的成卷質(zhì)量,是考試系統(tǒng)的一個研究重點。試題庫組卷的計算機考試系統(tǒng)根據(jù)組卷算法的不同可以分為以下幾種:1.

6、隨機組卷,這是最低級的組卷算法,隨機地從試題庫中抽取一定數(shù)量的試題組成試卷,對抽取的題目沒有任何約束條件5。2.多重目標(biāo)約束組卷,試題設(shè)置題號、難度、分值、重要性、知識點等屬性值,然后根據(jù)多種屬性值的約束條件組卷??梢允褂蒙疃葍?yōu)先或者廣度優(yōu)先算法搜索試題。該組卷算法較之于隨機組卷算法有很大進步,生成試卷的質(zhì)量比較高。3.基于遺傳算法的組卷算法,遺傳算法是一種模擬大自然生物進化過程的計算模型。遺傳算法的群體搜索策略為多目標(biāo)優(yōu)化提供了非常合適的解決方案6。4.遺傳算法的改進,例如判斷優(yōu)化目標(biāo)個體優(yōu)劣的基于偏好的多目標(biāo)調(diào)和遺傳算法7。5.多種人工智能算法的組合,例如遺傳算法與模擬退火算法的結(jié)合8,遺

7、傳算法與螞蟻算法的結(jié)合9。6.各類算法的擴展,例如基于學(xué)生BOSM模型的智能組卷算法10;分段隨機抽選法對隨機組卷的改進11;增加信息反饋提高試題屬性質(zhì)量,將學(xué)生答題的情況反饋給試題,修正試題的難度等12。組卷算法的發(fā)展方向是在海量試題庫的基礎(chǔ)上運用人工智能生成試卷。1.2.4 考試系統(tǒng)的實現(xiàn)模式分類從邏輯上來說,一個典型網(wǎng)絡(luò)應(yīng)用由三部分組成:表示邏輯層、業(yè)務(wù)邏輯層和數(shù)據(jù)邏輯層。其中表示邏輯層直接面向用戶,主要完成應(yīng)用的前端界面處理,即人機界面處理;業(yè)務(wù)邏輯層實現(xiàn)應(yīng)用的業(yè)務(wù)規(guī)則處理,決定程序的流程;數(shù)據(jù)邏輯層是應(yīng)用中對數(shù)據(jù)進行管理的部分,主要完成應(yīng)用對數(shù)據(jù)的存取、更新、管理等工作以及訪問數(shù)據(jù)的

8、安全性、完整性、一致性。計算機考試系統(tǒng)有兩種主要模式:客戶機/服務(wù)器模式(Client/Server)和瀏覽器/服務(wù)器(Browser/Server)模式。C/S模式于1989年由麻省劍橋的ForesterResearch首先提出13,是客戶進程從服務(wù)進程中請求服務(wù)的一種計算方式,屬于協(xié)同處理的范疇。根據(jù)表示層、應(yīng)用層、數(shù)據(jù)層分布在幾層,C/S模式可以分成兩層C/S模式和三層C/S模式。兩層模式將一個考試系統(tǒng)的三個邏輯層分布在Client端和Server端,Client和Server通過網(wǎng)絡(luò)聯(lián)結(jié)起來。通常Client端和Server端分別運行在不同的計算機中,Client端一般安裝于普通計算機

9、,Server端一般安裝在功能更強的服務(wù)器。將業(yè)務(wù)邏輯獨立出來,就產(chǎn)生了三層C/S模式。在三層C/S模式中,表示邏輯位置不變,仍放在Client端,業(yè)務(wù)邏輯則放在一個獨立的中間服務(wù)器上,數(shù)據(jù)邏輯在另一個服務(wù)器上14。隨著網(wǎng)絡(luò)的發(fā)展,出現(xiàn)了B/S模式。B/S模式在本質(zhì)上也是一種C/S結(jié)構(gòu),它由傳統(tǒng)的C/S結(jié)構(gòu)發(fā)展而來,是一種在Web上的應(yīng)用。與傳統(tǒng)C/S結(jié)構(gòu)不同的是,B/S的表示層為Web瀏覽器,功能層為Web服務(wù)器,使用ASP、JSP或PHP等技術(shù)。相對C/S結(jié)構(gòu)而言,B/S結(jié)構(gòu)的優(yōu)點有:簡化客戶端;易于維護;易于升級;用戶操作簡便易學(xué);便于網(wǎng)上發(fā)布消息。但是B/S結(jié)構(gòu)也有一些缺點:1.交互性

10、弱。C/S模式的客戶端是完整的應(yīng)用程序,在出錯提示、幫助等方面都有強大的功能并且可以在子程序間自由切換。B/S模式雖然由JavaScript、VBScript提供了一定的交互能力,但和C/S相比功能就少多了;2.安全性低。由于采用開放的TCP/IP協(xié)議和解釋型的腳本語言編程,數(shù)據(jù)的流向不固定,容易被截取破譯,其安全性有限;3.數(shù)據(jù)處理能力弱。B/S模式的數(shù)據(jù)處理多用解釋腳本語言實現(xiàn),無法開發(fā)出利用可視化工具開發(fā)的功能強大的編譯型應(yīng)用程序。C/S和B/S模式各有優(yōu)缺點,適合不同的場合。一般而言,B/S模式的缺點就是C/S模式的優(yōu)點,而B/S模式的優(yōu)點就是C/S模式的缺點。C/S模式相比而言有以下

11、優(yōu)點:1.保密性好??梢栽O(shè)置專門的加密函數(shù),針對不同的數(shù)據(jù)設(shè)置不同的加密方式和加密等級。而B/S模式采用開放的TCP/IP協(xié)議和解釋型的腳本語言編程,安全性較低;2.數(shù)據(jù)處理能力強??梢赃B接多種關(guān)系數(shù)據(jù)庫;3.交互性強。相對瀏覽器而言可以生成更加復(fù)雜的圖形界面和允許更多的用戶交互方式15;4.可控性好。服務(wù)端可以控制連接的時間、連接的IP、連接用戶等信息,適合安全性要求高的應(yīng)用;5.數(shù)據(jù)分析統(tǒng)計功能強??梢耘亩喾N題型的試題,并且進行復(fù)雜的數(shù)據(jù)分析和統(tǒng)計。本課題的網(wǎng)上考試系統(tǒng)是使用Java語言實現(xiàn)的二層C/S模式系統(tǒng)。根據(jù)使用對象和實現(xiàn)功能的不同,客戶端分為三種類型:學(xué)生使用的客戶端,教師使用

12、的客戶端和管理員使用的客戶端。1.2.6 考試系統(tǒng)的開發(fā)平臺分類考試系統(tǒng)由應(yīng)用程序和數(shù)據(jù)庫組成,開發(fā)程序主要有微軟的Visual Basic、Visual C+、Visual FoxPro(VFP)和PowerBuilder、Delphi、JBuilder等,數(shù)據(jù)庫主要有本地數(shù)據(jù)庫Access和網(wǎng)絡(luò)數(shù)據(jù)庫SQL Server、MYSQL、ORACLE等。從理論上說開發(fā)平臺可以由任何一種開發(fā)程序和數(shù)據(jù)庫組成,也就是任意兩兩組合,但是綜合考慮系統(tǒng)需求、軟件的兼容性等方面,往往有比較合適的組合。對于數(shù)據(jù)庫的選擇,可以考慮數(shù)據(jù)存取速度、容量和網(wǎng)絡(luò)存取等要求。如果考試系統(tǒng)是單機版的,那么可以選擇Acce

13、ss數(shù)據(jù)庫;如果數(shù)據(jù)庫數(shù)據(jù)的容量在幾十萬行之內(nèi),并且要求網(wǎng)絡(luò)存取,那么可以選擇SQL Server;如果數(shù)據(jù)庫中的數(shù)據(jù)非常大,那么從安全性和速度等方面考慮采用ORACLE是最好的選擇。如果數(shù)據(jù)庫采用SQL Server,有很多開發(fā)程序支持它,分別使用不同的技術(shù)連接和管理數(shù)據(jù)庫。1.VB+SQL Server,DAOs方法、ODBC API或VBSQL方法管理數(shù)據(jù)庫;2.VC+SQL Server,開放數(shù)據(jù)庫連接Open Database Connectivity(ODBC)實現(xiàn)數(shù)據(jù)庫訪問;3.Delphi+SQL Server,數(shù)據(jù)庫引擎BorlandDatabaseEngine實現(xiàn)連接;4.

14、VFP+SQL Server,SQL Pass Through(SPT)技術(shù)直接訪問ODBC函數(shù),并把SQL語句發(fā)送給服務(wù)器執(zhí)行;5.Java+SQL Server,JDBC實現(xiàn)數(shù)據(jù)庫訪問。1.2.7 計算機考試系統(tǒng)的發(fā)展趨勢16計算機考試系統(tǒng)朝著智能化的方向發(fā)展,例如組卷的智能化,批卷的智能化等。另外考試系統(tǒng)對學(xué)生答題情況的統(tǒng)計和成績分析的要求也越來越高,據(jù)此掌握教學(xué)質(zhì)量。出于考試的嚴(yán)肅性,網(wǎng)上考試系統(tǒng)對安全性、容錯性和保密性的要求也越來越高。1.3 J2SE實現(xiàn)網(wǎng)上考試系統(tǒng)現(xiàn)在已經(jīng)有了多種實用的考試系統(tǒng),應(yīng)用于各種類型的考試,那么為什么要開發(fā)本網(wǎng)上考試系統(tǒng)呢,主要出于以下幾點考慮:1.雖然

15、各種類型考試系統(tǒng)研究很多,但是和操作系統(tǒng)無關(guān)或者支持多操作系統(tǒng)的考試系統(tǒng)的研究還比較少。Java語言和平臺無關(guān),可以使用JBuilder開發(fā)多平臺下的J2SE程序。2.商品化軟件一般只能獲得考試系統(tǒng)的學(xué)生端,出于系統(tǒng)保密的原因,有時甚至不能批改試卷,例如省計算機一級考試下發(fā)到學(xué)校的是考試客戶端,考試結(jié)束后學(xué)生答題數(shù)據(jù)包統(tǒng)一上交批改。但是教師希望批改后統(tǒng)計和分析學(xué)生成績,并且以直觀的方式顯示,從而發(fā)現(xiàn)問題改進教學(xué)。3.自主控制考試題目,可以用于單元學(xué)習(xí)后的單元測試。4.自主擴充修改題庫,隨時增加修改題目?,F(xiàn)有的考試系統(tǒng)不能完全符合我校定制的需求。我校的老師對考試系統(tǒng)有特定的要求,例如可以在,多種

16、方式分析成績等。結(jié)合教學(xué)和研究的需要,本人開發(fā)了基于J2SE的網(wǎng)上考試系統(tǒng)。本考試系統(tǒng)采用C/S模式的軟件體系結(jié)構(gòu),客戶端使用Java集成開發(fā)環(huán)境JBuilder開發(fā)調(diào)試生成,數(shù)據(jù)庫使用Microsoft SQL Server2000技術(shù),使用JDBC技術(shù)連接數(shù)據(jù)庫。1.3.1 J2SE概念本課題中的考試系統(tǒng)是基于J2SE的C/S模式考試系統(tǒng),具體使用Java的開發(fā)平臺JBuilder實現(xiàn)。JBuilder的集成開發(fā)環(huán)境IDE廣受業(yè)界贊譽,其可視化集成開發(fā)環(huán)境包括文本編輯器、工程創(chuàng)建工具、對象瀏覽器和調(diào)試器等。JBuilder集成了軟件開發(fā)、調(diào)試、部署、管理、版本控制等工具,提高了項目開發(fā)速度

17、17。Java的開發(fā)平臺稱之為JDK,運行平臺稱之為JRE。為了對Java技術(shù)的使用方向和范圍進行區(qū)分,避免開發(fā)中關(guān)注不必要的技術(shù)特性,Sun公司將Java平臺劃分成3個版本:1.J2SE(Java2 Platform Standard Edition):核心用于桌面系統(tǒng)的Java2平臺標(biāo)準(zhǔn)版,主要用于桌面應(yīng)用軟件的編程。2.J2EE(Java2 Platform Enterprise Edition):針對企業(yè)級軟件開發(fā)和應(yīng)用的Java2平臺企業(yè)版。用于創(chuàng)建服務(wù)器應(yīng)用程序和服務(wù),主要用于分布式的網(wǎng)絡(luò)程序的開發(fā),如電子商務(wù)網(wǎng)站和ERP系統(tǒng)。3.J2ME(Java2 Platform Micro

18、 Edition):適用于嵌入式系統(tǒng)開發(fā)的Java2平臺微型版,如手機和PDA的編程。開發(fā)環(huán)境主要包括:Java Virtual Machine(JVM)、核心API、集成API、用戶界面工具、部署技術(shù)、部署工具及API18。1.3.2 J2SE特點J2SE主要用于實現(xiàn)桌面應(yīng)用軟件開發(fā),其實現(xiàn)的系統(tǒng)有以下特點:1.支持多平臺:Java是一種與系統(tǒng)平臺無關(guān)的語言。在J2SE的開發(fā)模式下,使用JBuilder的Native Executable Builder工具可以生成在不同的系統(tǒng)和處理器平臺下執(zhí)行的程序,目前支持的平臺有Dos、Windows、Linux、Solaris和Mac OS。2.分布

19、性:Java帶有強大有關(guān)網(wǎng)絡(luò)協(xié)議族的庫,使Java網(wǎng)絡(luò)編程高效易用。3.面向?qū)ο螅涸O(shè)計重點放在對象及對象的接口上。4.簡單性:Java的語法比C+簡單,只能在一個類中定義公用和靜態(tài)的變量來實現(xiàn)一個全局變量,不支持goto語句,自動管理內(nèi)存并且進行垃圾收集。5.可靠性和安全性:Java可以用來構(gòu)建一定程度防病毒和防攻擊的系統(tǒng)。6.其余特性:多線程、動態(tài)性、解釋、結(jié)構(gòu)中立性、可移植性、魯棒性。第2章 需求分析和軟件估計2.1 軟件開發(fā)概述本課題“基于J2SE的網(wǎng)上考試系統(tǒng)的設(shè)計與實現(xiàn)”在軟件工程思想指導(dǎo)下開發(fā)。軟件工程Software Engineering指應(yīng)用計算機科學(xué)理論和技術(shù)以及工程管理原

20、則和方法,按照預(yù)算和進度,實現(xiàn)滿足用戶要求的軟件產(chǎn)品的定義、開發(fā)、發(fā)布和維護。在軟件開發(fā)過程中遵循模塊化、信息隱藏、局部化、一致性、構(gòu)造性和集成組裝性等原則。開發(fā)過程中實施有效的工程管理,例如配置管理、質(zhì)量保證等。2.1.1 軟件開發(fā)方法軟件開發(fā)方法指使用定義好的技術(shù)和表示符號來組織軟件生產(chǎn)過程的方法。經(jīng)過多年的軟件工程實踐,有多種軟件開發(fā)方法獲得了推廣。1.結(jié)構(gòu)化方法:由E.Yourdon 和 L.L.Constantine 提出,認(rèn)為軟件系統(tǒng)均以一定的結(jié)構(gòu)形式存在,由若干子系統(tǒng)構(gòu)成,子系統(tǒng)本身又是一個系統(tǒng),軟件實現(xiàn)過程有結(jié)構(gòu)化分析SA、結(jié)構(gòu)化設(shè)計SD和結(jié)構(gòu)化編程SP。實現(xiàn)結(jié)構(gòu)化方法的技術(shù)有

21、面向數(shù)據(jù)流圖的方法、Jackson方法、LCP方法等19。2.原型化方法:迅速開發(fā)出一個可以讓用戶看得見、摸得著的精簡系統(tǒng),適用于需求反復(fù)修改的情況。原型化開發(fā)的優(yōu)點有2021:有助于確定系統(tǒng)的可行性;原型法修改比最終軟件修改快且代價??;容易定義需求不確定的22。由于用戶在實際軟件方面的介入,開發(fā)組和用戶有更高層次的交流和溝通。3.凈室方法:測試之前程序設(shè)計開發(fā)組就開發(fā)出幾乎無錯的系統(tǒng)。4.形式化Formal Methods方法:以嚴(yán)密的數(shù)學(xué)證明為基礎(chǔ),包括形式化分析Formal Analysis、形式化設(shè)計Formal Design和翻譯Translation。5.面向?qū)ο蠓椒ǎ赫J(rèn)為客觀世界

22、是由對象組成的,不同對象間的相互作用和聯(lián)系構(gòu)成不同的系統(tǒng),以對象為中心來構(gòu)造模型、組織系統(tǒng)。6.基于組件的軟件方法:應(yīng)用邏輯和實現(xiàn)分離,提供標(biāo)準(zhǔn)接口和框架,使軟件開發(fā)變成組件的組合。模型有Sun公司的EJB、微軟公司的COM+/DCOM、OMG的CORBA/ORB20。7.敏捷軟件開發(fā):著眼于快速交付高質(zhì)量軟件,并使客戶滿意,包括極限編程Extreme Programming(XP)、動態(tài)系統(tǒng)開發(fā)方法Dynamic System Development Method、SCRUM、Crystal和Lean等。敏捷軟件開發(fā)有四個核心價值:溝通Communication、反饋Feedback、勇氣C

23、ourage和簡單Simplicity14。選擇何種軟件開發(fā)方法需綜合考慮各種因素。首先考慮軟件項目的特點;還有支持環(huán)境,如若沒有相應(yīng)的快速原型工具,就不可能采用快速原型方法;以及技術(shù)支持,如軟件工程規(guī)范、軟件工程管理經(jīng)驗、軟件人員的技術(shù)基礎(chǔ)和經(jīng)驗等。軟件的開發(fā)可以選用開發(fā)方法中的一種,也可以選用幾種方法的結(jié)合??紤]到本考試系統(tǒng)由JBuilder開發(fā),使用面向?qū)ο蟮拈_發(fā)語言Java語言實現(xiàn),所以本系統(tǒng)主要采用了面向?qū)ο蟮能浖_發(fā)方法。在開發(fā)的部分階段,還使用了原型化方法,這兩種方法的結(jié)合既具有穩(wěn)定性好、可復(fù)用性和可維護性的優(yōu)點又方便了系統(tǒng)開發(fā)者和最終用戶的溝通。2.1.2 軟件工程活動的階段軟

24、件工程活動的定義是:生產(chǎn)一個達到工程目標(biāo)并且滿足用戶需求的軟件產(chǎn)品所需要的步驟,主要包括需求分析、設(shè)計、實現(xiàn)、確認(rèn)以及維護等活動。隨著軟件工程思想的普及,大家認(rèn)識到軟件開發(fā)必須以軟件工程活動中定義的步驟指導(dǎo)軟件開發(fā),采用工程的概念、原理、技術(shù)和方法開發(fā)和維護軟件,提高軟件開發(fā)的效率,減少軟件開發(fā)和維護中的問題。系統(tǒng)開發(fā)的過程一般包括:1.需求階段建立系統(tǒng)模型,是軟件開發(fā)人員和客戶之間合同約定的基礎(chǔ),是下一步設(shè)計階段的基本輸入;2.設(shè)計階段定義實現(xiàn)需求所需的軟件結(jié)構(gòu);3.實現(xiàn)階段將軟件設(shè)計轉(zhuǎn)換為代碼;4.驗證是一項評估活動,貫穿于整個開發(fā)過程;5.維護指軟件發(fā)布之后所進行的修改,包括對發(fā)現(xiàn)錯誤的

25、修正,環(huán)境變化后進行的必要調(diào)整等23。軟件開發(fā)生存周期模型用來描述軟件從項目需求定義開始到開發(fā)成功投入使用一直到維護,軟件生命周期結(jié)束。隨著軟件工程學(xué)的發(fā)展,相繼提出了演化模型、螺旋模型、快速原型化模型、快速應(yīng)用開發(fā)模型、增量模型、噴泉模型等。本考試系統(tǒng)采用面向?qū)ο蟮能浖_發(fā)方法,開發(fā)步驟遵循面向?qū)ο筌浖_發(fā)的四個階段:1.面向?qū)ο蠓治鯫bject-Oriented Analysis(OOA)。系統(tǒng)分析員對將要開發(fā)的系統(tǒng)的定義和分析,主要描述工具是用例圖,這個階段的目的是建立系統(tǒng)提出問題領(lǐng)域的模型。這一階段的模型產(chǎn)品是用例圖。2.面向?qū)ο笤O(shè)計Object-Oriented Design(OOD

26、)。將OOA的結(jié)果轉(zhuǎn)化為適合于程序設(shè)計語言的具體描述,主要描述工具是各類靜態(tài)和動態(tài)模型圖,這個階段的目的是設(shè)計實現(xiàn)的類和方法,以及類之間的聯(lián)系,以滿足系統(tǒng)的功能要求和質(zhì)量要求。OOA的重點是做什么,而OOD的重點是如何做。這一階段的模型產(chǎn)品是靜態(tài)圖和動態(tài)圖。3.面向?qū)ο蟪绦蛟O(shè)計Object-Oriented Programming(OOP)。程序設(shè)計人員根據(jù)OOD得到的模型,采用面向?qū)ο蟪绦蛟O(shè)計語言實現(xiàn)程序,該網(wǎng)上考試系統(tǒng)使用JBuilder開發(fā)。這一階段的產(chǎn)品是類文件。4.面向?qū)ο鬁y試Object-Oriented Testing(OOT)。類的測試和類間測試等,和傳統(tǒng)測試的區(qū)別是可以從靜態(tài)

27、和動態(tài)模型圖獲取信息輔助測試。2.2 需求分析的目標(biāo)和內(nèi)容需求分析回答系統(tǒng)必須“做什么”的問題,是軟件開發(fā)的第一個階段,也是非常重要的階段,直接關(guān)系到軟件開發(fā)成敗。2.2.1 需求分析的目標(biāo)和實現(xiàn)階段19在進行需求分析之前我們必須弄清楚需求分析的目標(biāo)和實現(xiàn)目標(biāo)的階段,如表2-1所示。表2-1需求分析的階段和目標(biāo)階段目標(biāo)可行性研究決定是否建立一個系統(tǒng)需求導(dǎo)出和分析理解用戶需要系統(tǒng)解決哪些問題;引出這些問題和系統(tǒng)的一些相關(guān)問題;提供解決這些問題和系統(tǒng)的基礎(chǔ);決定系統(tǒng)應(yīng)該做什么;決定系統(tǒng)不應(yīng)該做什么;生成文檔生成需求規(guī)格說明需求有效性驗證驗證需求有效性2.2.2 可行性研究需求分析的第一件事情就是決

28、定是否建立一個系統(tǒng),也就是進行系統(tǒng)的可行性分析,可以從操作可行性、技術(shù)可行性和經(jīng)濟可行性三個方面著手分析。操作可行性分析系統(tǒng)是否符合總體目標(biāo)。本考試系統(tǒng)有許多相對于筆試的優(yōu)點,對學(xué)校的大學(xué)生計算機文化基礎(chǔ)考試有很大的幫助。技術(shù)可行性考慮系統(tǒng)是否可能在現(xiàn)有的技術(shù)條件、預(yù)算和時間限制內(nèi)完成,能否與已經(jīng)存在的其它系統(tǒng)集成。經(jīng)濟可行性考慮本考試系統(tǒng)受學(xué)校教改項目支持,投入使用后可以產(chǎn)生比較大的經(jīng)濟和社會效益。2.2.3 需求收集和分析可行性研究階段結(jié)束后,如果系統(tǒng)分析員認(rèn)為系統(tǒng)可行就進入系統(tǒng)開發(fā)的需求收集和分析階段。需求收集的內(nèi)容包括1.信息需求,開發(fā)系統(tǒng)處理的信息的屬性、內(nèi)容等;2.功能需求,開發(fā)系

29、統(tǒng)必須具備的功能;3.性能需求,開發(fā)系統(tǒng)的技術(shù)性能指標(biāo),例如響應(yīng)時間,存儲容量等;4.環(huán)境需求,運行的軟硬件環(huán)境。軟件工程要求軟件的開發(fā)非常重視需求過程,如果需求做得比較精確不但可以使開發(fā)人員清楚地了解用戶的想法,減少開發(fā)時間,還可以更容易交付軟件獲得用戶認(rèn)可。本系統(tǒng)充分運用軟件工程學(xué)總結(jié)的需求收集方法來收集需求,具體需求收集的方法有:1.會談。開發(fā)組成員和用戶就開發(fā)的系統(tǒng)面對面地交談,這是收集用戶需求的一種重要的方式。會談結(jié)束后,開發(fā)小組盡快將會談的結(jié)果整理出來,并且將整理出的會談資料交給用戶。2.問卷調(diào)查。事先準(zhǔn)備好問卷調(diào)查資料,將資料發(fā)給用戶方。這種方法的好處有兩個:一是問題集中和精確,

30、二是用戶回答問題的時間可以自由掌握。3.調(diào)查用戶當(dāng)前使用系統(tǒng)。如果用戶現(xiàn)在的操作方式是手工的,那么收集用戶手工操作的工作流程,如果用戶現(xiàn)在已經(jīng)使用軟件輔助工作,那么收集現(xiàn)在的軟件操作的相關(guān)表格和資料。4.用例分析。用例驅(qū)動獲取需求已經(jīng)成為面向?qū)ο蠓椒ǖ闹匾M成部分,是OOA階段的主要方法。5.使用場景獲取需求。訪問及觀察用戶的工作情況,得到一系列用戶場景,并根據(jù)用戶意見修改場景。本系統(tǒng)經(jīng)過分析可以得出考生考試、教師考前準(zhǔn)備試題、設(shè)置組卷規(guī)則、考后批改試卷、分析統(tǒng)計成績、用戶管理等場景。用例和場景是相輔相成的,可以從場景獲取系統(tǒng)用例24。6.快速原型。快速建立一個能夠展示系統(tǒng)關(guān)鍵功能的模型,使用

31、快速原型作為收集用戶需求的一種方法。2.3 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治龇椒▽⒖陀^世界中與應(yīng)用有關(guān)的實體及其屬性抽象為問題領(lǐng)域的對象及其屬性。分析人員通過對象、對象間消息傳遞等語言機制直接模擬問題領(lǐng)域的對象及其行為。OOD方法為需求建模提供了直觀、自然的語言支持和方法學(xué)指導(dǎo),其核心思想是尋找系統(tǒng)中最穩(wěn)定的因素對象。在本考試系統(tǒng)的需求獲取階段綜合運用了多種方法,比如建立快速原型、會談、場景分析等方法,主要使用用例分析Use Case Analysis獲取用戶需求。用例驅(qū)動25指以用例為驅(qū)動力驅(qū)動軟件開發(fā)。用例驅(qū)動的方法基于面向?qū)ο蠹夹g(shù),即從用例出發(fā),首先將用戶需求轉(zhuǎn)換為用例,使用用例描述用戶需求,并

32、根據(jù)用例的描述和分析,使用靜態(tài)圖描述系統(tǒng)核心類,然后進一步描述系統(tǒng)動態(tài)行為等。用例驅(qū)動需求分析之后設(shè)計、編碼、測試等階段的工作,將用例驅(qū)動的思想與UML這種面向?qū)ο蠓治鲈O(shè)計語言有機結(jié)合。2.3.1 用例分析概述用例是對一組動作序列的描述,用于描述系統(tǒng)的功能,也就是從外部用戶的角度觀察系統(tǒng)應(yīng)支持哪些功能,幫助分析人員理解系統(tǒng)的行為,它是對系統(tǒng)功能的宏觀描述。在用例模型中系統(tǒng)是實現(xiàn)各種用例的“黑盒子”,我們只關(guān)心該系統(tǒng)實現(xiàn)了哪些功能,并不關(guān)心內(nèi)部的具體實現(xiàn)細(xì)節(jié)。用例建模從組成系統(tǒng)的實際操作入手,站在使用者的角度觀察軟件,密切貼近實際。主要應(yīng)用在工程開發(fā)的初期需求分析階段26。引入用例的主要目的是確

33、定清晰地描述系統(tǒng)的功能要求;為系統(tǒng)驗證打下基礎(chǔ);提供從功能需求到實際類和操作的跟蹤能力。要分析用例,首先要找到用例的執(zhí)行者Actor,在一個實際的工程項目中可以通過以下方法發(fā)現(xiàn)Actor:使用系統(tǒng)主要功能的人;維護、管理和維持系統(tǒng)的日常運行的人;系統(tǒng)需要控制的硬件設(shè)備;系統(tǒng)需要交互的其他系統(tǒng)和對系統(tǒng)的結(jié)果感興趣的人。根據(jù)以上的方法分析本考試系統(tǒng),得出三種類型的Actor:學(xué)生、教師和管理員。2.3.2 用例分析結(jié)果用例分析過程中通過和系統(tǒng)的典型用戶交談等活動,得出本考試系統(tǒng)的Actor實現(xiàn)以下活動:1.學(xué)生通過客戶端連接上服務(wù)器,登陸后可以修改密碼,自動隨機獲取試題,試題以單項選擇題、多項選擇

34、題和填空題等客觀題為主。學(xué)生在一定的時間里面完成考試,在考試時間內(nèi)考生可以手動交卷,如果考試時間到了學(xué)生還沒有手動交卷,則系統(tǒng)自動結(jié)束考試強制交卷。2.教師的活動是學(xué)生的所有活動+制定組卷規(guī)則,設(shè)置考試參數(shù),批改學(xué)生試題得出每個學(xué)生的分?jǐn)?shù),查詢試題,統(tǒng)計和分析學(xué)生成績。3.管理員的活動是教師的所有活動+用戶管理。三類用戶的用例的活動是包容關(guān)系,教師的活動包括了學(xué)生的所有活動,管理員的活動包括了教師的活動。這樣考慮的原因是本考試系統(tǒng)目前僅僅在學(xué)校小范圍使用,這樣設(shè)置便于系統(tǒng)維護,如果下一步考試系統(tǒng)推向更廣泛范圍,可以縮減一部分教師和管理員的權(quán)限。下圖2-1是考試系統(tǒng)的學(xué)生的用例圖,圖2-2是教師

35、的用例圖,圖2-3是管理員的用例圖。圖2-1 學(xué)生用例圖圖2-2 教師用例圖圖2-3 管理員用例圖在用例圖中,參與者和用例都比較簡單,還需要進一步描述。參與者描述包括參與者名稱,是否抽象參與,對參與者的簡要描述。用例描述說明執(zhí)行者與系統(tǒng)如何交互,該說明要清晰明了,沒有二義性,包括用例的目標(biāo)、最終任務(wù);用例被啟動的方式;Actor和用例之間的消息流。用例描述可以分成文字和圖形兩種方法。1.使用文字的方法有:(1)簡單文字描述;(2)模板描述,套用模板描述用例,說明用例的名稱、時間流、特殊需求、前置和后置條件;(3)表格描述,使用表格描述用戶動作。例如圖2-2中教師設(shè)置組卷規(guī)則的用例可以進一步用文

36、字描述:設(shè)置組卷規(guī)則用例的最終任務(wù)是設(shè)置一次考試的試卷生成規(guī)則,得到一個由多條子規(guī)則組成組卷規(guī)則。該用例由教師或者管理員啟動,啟動的前置條件是用戶正確登陸。參與者通過定義各個約束點來設(shè)置規(guī)則。2.圖形描述方法有用例圖、順序圖和活動圖等,這一部分在論文的面向?qū)ο笤O(shè)計部分有詳細(xì)說明。2.3.3 面向?qū)ο蠼ο蟊硎粳F(xiàn)實世界的概念,它們的協(xié)同工作實現(xiàn)某一功能,面向?qū)ο蟮姆椒ㄊ且环N思考問題的方式,描述與模仿問題領(lǐng)域發(fā)生的事,其基本原則有:一切事物都是對象;任何系統(tǒng)都由對象組成;系統(tǒng)的運行都是由系統(tǒng)的內(nèi)部對象和外部對象之間或者內(nèi)部對象和內(nèi)部對象之間的相互作用完成。面向?qū)ο蟮奶卣魇牵嚎陀^世界都由對象組成;

37、所有的對象都劃分為各種類,每個類有屬性和方法;各個類組成一個層次結(jié)構(gòu)的系統(tǒng);對象之間通過傳遞消息進行通信。以上四點特征可以用公式(2-1)描述。面向?qū)ο? 對象+類+繼承+消息通信 式(2-1)Object-Oriented=Objects+ Classes+ Inheritances+ Communication with Messages formula (2-1) 現(xiàn)在,面向?qū)ο笤诤芏囝I(lǐng)域獲得了廣泛的應(yīng)用,它相對于面向過程有許多優(yōu)點。例如組件有利于代碼重用;設(shè)計模式Design patterns有利于設(shè)計方法重用;接口有利于代碼的靈活性和健壯性;使用接口合理分配個人和開發(fā)組職責(zé),有利于提

38、高開發(fā)組的工作效率;低耦合度和模塊性提高軟件可擴展性、靈活性、可重用性;封裝實現(xiàn)信息隱藏;對象的模塊性和信息隱藏,使得邏輯的變動被自然地隔離,軟件比較容易實現(xiàn)變動,且易于維護;OO中間件提供了平臺和語言的透明性;更好地支持原型開發(fā)和演化交付;OO技術(shù)有利于分布式系統(tǒng)的實現(xiàn)和應(yīng)用。2.3.4 統(tǒng)一建模語言UML面向?qū)ο蠹夹g(shù)出現(xiàn)以來出現(xiàn)了很多建模技術(shù),統(tǒng)一建模語言Unified Modeling Language (UML)使之標(biāo)準(zhǔn)化和統(tǒng)一化。UML是由Grady Booch、James Rumbaugh和Ivar Jacobson“三位好朋友”起草的用于面向?qū)ο箝_發(fā)的統(tǒng)一建模語言27 28。UM

39、L是一種簡單而易于使用的、表達能力強的、可視的建模語言,方便用戶形象化描述系統(tǒng),提供了一種獨立于過程、獨立于編程語言的交流和表達工具。UML的功能非常強大,可以用于描述軟件系統(tǒng),幫助構(gòu)建精確、無歧義和完整的模型;以預(yù)先統(tǒng)一定義的符號可視化地表示軟件系統(tǒng),無歧義地解釋由另一個開發(fā)者寫的模型;構(gòu)造可與種種不同的編程語言直接通信的軟件系統(tǒng)模型,并且直接生成框架代碼;在開發(fā)和部署階段,通過表達系統(tǒng)的需求使軟件系統(tǒng)的模型文檔化。UML提供各種圖來描述系統(tǒng)的結(jié)構(gòu)和行為,有用例圖use case diagram、類圖class diagram、狀態(tài)圖statechart diagram、活動圖activit

40、y diagram、順序圖sequence diagram、協(xié)作圖collaboration diagram、構(gòu)件圖component diagram、配置圖deployment diagram29等。面向?qū)ο蠓治龅哪繕?biāo)是建立一系列的模型用來描述軟件。所有系統(tǒng)均可表示為兩個方面:靜態(tài)結(jié)構(gòu)和動態(tài)行為。根據(jù)模型描述對象的不同,建??梢苑譃槿N30:1.用例建模:使用用例分析獲取用例模型。2.靜態(tài)建模:系統(tǒng)的靜態(tài)結(jié)構(gòu)說明系統(tǒng)包含什么對象以及對象之間的關(guān)系,但它并不解釋系統(tǒng)中的各個對象是如何協(xié)作來實現(xiàn)系統(tǒng)的功能。使用類圖將現(xiàn)實生活中的各種對象以及它們之間的關(guān)系抽象成類圖等模型。3.動態(tài)建模:系統(tǒng)的動態(tài)

41、行為指對象是如何進行通信以及通信的結(jié)果如何,使用交互時序圖、協(xié)作圖和活動圖描述。根據(jù)觀察系統(tǒng)的不同角度,UML模型可以分成5類,10種模型圖。1.用例圖,從用戶角度描述系統(tǒng)功能并指出各功能的操作者。2.靜態(tài)圖,包括類圖、對象圖和包圖。其中類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)。對象圖是類圖的實例,只能在系統(tǒng)某一時間段存在。包由包或類組成,表示包與包之間的關(guān)系。包圖用于描述系統(tǒng)的分層結(jié)構(gòu)。3.行為圖(Behavior diagram),描述系統(tǒng)的動態(tài)模型和組成對象間的交互關(guān)系。其中狀態(tài)圖描述類的對象所有可能的狀態(tài)以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移條件。活動圖描述滿足用例要求所進行的活動以及活動間的約束關(guān)系。4.交互圖

42、(Interactive diagram),描述對象間的交互關(guān)系。交互圖包括順序圖和合作圖。其中順序圖顯示對象之間的動態(tài)合作關(guān)系,強調(diào)對象之間消息發(fā)送的順序,同時顯示對象之間的交互;合作圖描述對象間的協(xié)作關(guān)系,與順序圖相似,顯示對象間的動態(tài)合作關(guān)系。除顯示信息交換外,合作圖還顯示對象以及它們之間的關(guān)系。順序圖強調(diào)時間和順序;合作圖強調(diào)上下級關(guān)系。5.實現(xiàn)圖(Implementation diagram),其中構(gòu)件圖描述代碼部件的物理結(jié)構(gòu)及各部件之間的依賴關(guān)系。構(gòu)件圖有助于分析和理解部件之間相互影響的程度。配置圖定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)。各個模型圖之間的關(guān)系如圖2-4所示31,如果把該圖當(dāng)

43、作一棵樹的話,則所有的葉子結(jié)點為UML定義的模型。圖2-4 UML的10種模型圖2.4 軟件估計1.軟件項目計劃概述需求分析后,如果項目可行,就進入了項目計劃階段。軟件項目計劃是軟件工程管理的主要任務(wù)之一,包括資源、成本、風(fēng)險、進度和項目組織進行合理的估計分析和調(diào)度,其具體內(nèi)容有:(1)成本估計。估計軟件費用,有自頂向下成本估計,自底向上成本估計,基于經(jīng)驗?zāi)P统杀竟烙?,COCOMO模型成本估計32。(2)風(fēng)險分析。在開發(fā)工作開始之前,找到潛在的風(fēng)險,評估風(fēng)險出現(xiàn)的概率和影響,然后建立管理風(fēng)險計劃。(3)進度安排。將工作量分解為特定的軟件工程任務(wù),可以用甘特圖完成。(4)項目組織。合理地組織開發(fā)

44、小組的各類人員,最大限度地發(fā)揮每一個人的作用。整個項目組的結(jié)構(gòu)有層次型和矩陣型等。在本網(wǎng)上考試系統(tǒng)具體開發(fā)之前,對軟件開發(fā)進行了成本估計、風(fēng)險分析、進度安排和項目組織。重點說明對本考試系統(tǒng)的軟件開發(fā)的成本估計。成本估計的方法有許多種,使用COCOMO模型成本估計軟件開發(fā)時間是一種比較精確估計的方法。有兩個步驟,首先估計系統(tǒng)代碼行,然后估計工作量。2代碼行估計代碼行估計的一種方法是根據(jù)項目特征和算法計算功能點,然后通過功能點計算代碼行。本系統(tǒng)的代碼行估算對此方法進行擴展,把功能點估算法和經(jīng)驗估算法結(jié)合,首先分析此前已經(jīng)完成的系統(tǒng)的功能點個數(shù),并且統(tǒng)計其代碼行,然后估算本考試系統(tǒng)的功能點,由這三個

45、值計算本系統(tǒng)的代碼行。功能點估算的方法是:首先分析系統(tǒng)的輸入、輸出、查詢、文件、外部接口,由表2-2獲得各種功能的權(quán)值,再由公式2-2計算總權(quán)值,最后根據(jù)公式2-3進行復(fù)雜度加權(quán)因子調(diào)整,計算功能點數(shù)FP。表2-2功能類型對應(yīng)權(quán)值表功能類型權(quán)值輸入4輸出5查詢4控制文件10接口7總權(quán)值=4輸入點數(shù)5輸出點數(shù)4查詢點數(shù)10控制文件數(shù)7接口數(shù) 式(2-2)FP=總權(quán)值(0.650.01) 式(2-3)公式(2-3)中Fi指復(fù)雜度調(diào)整因子,一共有14個調(diào)整因子,根據(jù)項目不同取值05之間,限于篇幅不一一列出。分析計算得到三個值:前一個項目的功能點記為FP0,前一個項目的千行代碼數(shù)記為KLOC0,本系統(tǒng)

46、的功能點記為FP1,則本系統(tǒng)千行代碼數(shù)KLOC1=(KLOC0FPl) / FP0。最后估計得到本系統(tǒng)的代碼行數(shù)是42KLOC。3.工作量估計COCOMO模型按照估計的詳細(xì)程度分為三個層次:基本層模型、中間層模型和詳細(xì)層模型,每個層次的模型按照軟件復(fù)雜度又可劃分為組織型、嵌入型和半獨立型33。COCOMO模型的分類如圖2-5所示?;緦又虚g層詳細(xì)層組織型嵌入型半獨立型圖2-5 COCOMO模型軟件劃分圖軟件開發(fā)的基本層模型將軟件開發(fā)工作量及成本作為程序規(guī)模的函數(shù)進行計算;中間層模型從產(chǎn)品、硬件、人員和項目等因素考慮15個調(diào)節(jié)因子;詳細(xì)層模型考慮調(diào)節(jié)因子對不同開發(fā)階段的影響。組織型軟件要求不高,

47、程序規(guī)模不大,在50000行之內(nèi);嵌入型系統(tǒng)和硬件設(shè)備緊密結(jié)合;半獨立型介于兩者之間。COCOMO模型數(shù)學(xué)公式為: MM=a(SIZE)b 式(2-4) TDEV=c(PM)d 式(2-5)其中MM為開發(fā)工作量,單位人月。SIZE為源代碼行數(shù),單位千行。fi為調(diào)節(jié)因子。TDEV為開發(fā)時間,單位月。a、b、c、d為可變系數(shù)。本考試系統(tǒng)采用中間層模型的組織型來估計成本,a=3.2,b=1.05,c=2.5,d=0.38。仔細(xì)分析軟件開發(fā)的15個調(diào)節(jié)因子,得f1f2f15=0.674;考慮本人一直在開發(fā)倉庫管理系統(tǒng),有一些類可以直接復(fù)用于考試系統(tǒng),例如數(shù)據(jù)庫連接類、查詢類、排序類、登錄類,有一些類可

48、以部分復(fù)用,例如用戶管理類。前面功能點計算得知系統(tǒng)SIZE42,減去復(fù)用類加權(quán)和,還需要生成22KLOC。使用JBuilder開發(fā),集成開發(fā)環(huán)境會自動生成許多界面和數(shù)據(jù)庫方面的代碼,根據(jù)開發(fā)經(jīng)驗需要自己手動編寫6KLOC。MM=3.2(6)1.050.674=14人月;TDEV=2.5(14)0.38=6.8月。本系統(tǒng)從2月份需求分析開始到8月份測試完成實際開發(fā)花費了半年時間,基本符合COCOMO模型估計開發(fā)時間。第3章 軟件架構(gòu)和系統(tǒng)設(shè)計3.1 軟件架構(gòu)軟件架構(gòu)又稱為軟件體系結(jié)構(gòu),指所有的軟件部件組合成系統(tǒng)的一個總的結(jié)構(gòu)、接口和通訊機制。軟件架構(gòu)可以進一步劃分為企業(yè)級和應(yīng)用級架構(gòu)34。3.1

49、.1 企業(yè)級架構(gòu)企業(yè)級架構(gòu)反映了企業(yè)的長期投資,包括硬件和軟件的設(shè)施、網(wǎng)絡(luò)布局等。企業(yè)級架構(gòu)的核心是技術(shù)架構(gòu),也就是對網(wǎng)絡(luò)、數(shù)據(jù)、應(yīng)用、安全和信息系統(tǒng)的整體集成等制定的實現(xiàn)藍圖,分別稱為網(wǎng)絡(luò)架構(gòu)、數(shù)據(jù)架構(gòu)、應(yīng)用架構(gòu)、安全架構(gòu)和集成架構(gòu)等。重點說明網(wǎng)上考試系統(tǒng)的網(wǎng)絡(luò)物理連接圖,如圖3-1所示。圖3-1 網(wǎng)絡(luò)物理連接圖3.1.2 應(yīng)用級架構(gòu)35本網(wǎng)上考試系統(tǒng)基于C/S模式,C/S模式的分類和特點在1.2.4小節(jié)做了說明。C/S軟件體系結(jié)構(gòu)基于資源的不對等,該結(jié)構(gòu)由三部分組成:數(shù)據(jù)庫服務(wù)器、客戶端應(yīng)用程序和網(wǎng)絡(luò)。C/S體系結(jié)構(gòu)需要定義工作站和服務(wù)器的連接方式,從而實現(xiàn)數(shù)據(jù)和應(yīng)用分布到多個客戶機上。在

50、應(yīng)用架構(gòu)開發(fā)過程中通常要做以下工作:1.層之間進行功能劃分;2.領(lǐng)域?qū)ο蠼#?.各層之間的聯(lián)系方式;4.分析已有的和需要開發(fā)的組件。數(shù)據(jù)庫服務(wù)端管理系統(tǒng)數(shù)據(jù)庫資源,其任務(wù)是數(shù)據(jù)庫安全性控制,數(shù)據(jù)庫訪問并發(fā)性控制,數(shù)據(jù)完整性控制,數(shù)據(jù)庫的備份和恢復(fù)??蛻舳藨?yīng)用程序的任務(wù)是提供交互界面,向數(shù)據(jù)庫提交用戶請求并且接收數(shù)據(jù),利用客戶端應(yīng)用程序處理數(shù)據(jù)并且在需要的時候傳回數(shù)據(jù)庫。3.2 系統(tǒng)設(shè)計3.2.1 系統(tǒng)設(shè)計概述軟件在需求分析結(jié)束后的下一個階段就是系統(tǒng)設(shè)計。系統(tǒng)設(shè)計的方法有:面向數(shù)據(jù)流的設(shè)計,面向功能的設(shè)計和面向?qū)ο蟮脑O(shè)計。本考試系統(tǒng)采用面向?qū)ο蟮脑O(shè)計。面向?qū)ο蠓治龊兔嫦驅(qū)ο蟮脑O(shè)計之間有密切的銜

51、接關(guān)系。從分析到設(shè)計是一個逐漸擴充的過程,是在同一個對象模型基礎(chǔ)上調(diào)整改進和擴充的過程。OOA以問題為中心,OOD則解決如何在計算機系統(tǒng)中實現(xiàn),它遵循抽象、求精和模塊獨立性的原則。抽象是一種思考和解決問題的方式,它關(guān)注于事物的一般特性,不考慮底層細(xì)節(jié)。求精是一個和抽象相反的過程,它將某個宏觀功能不斷分解,逐步細(xì)化36。模塊獨立性指模塊之間的接口唯一,高內(nèi)聚低耦合,各個模塊相對獨立式的軟件容易開發(fā),容易維護。3.2.2 系統(tǒng)功能劃分37按照本項目需求分析階段的用例圖,可以把用戶分成三大類:學(xué)生、教師和管理員,分析得出對應(yīng)的三個子系統(tǒng):學(xué)生考試子系統(tǒng),教師管理子系統(tǒng),管理員管理子系統(tǒng)。學(xué)生考試子系

52、統(tǒng)實現(xiàn)功能是:修改密碼、考試和成績查詢。教師管理子系統(tǒng)實現(xiàn)功能是:學(xué)生的所有活動,組卷規(guī)則管理、考試控制、批卷、考試情況統(tǒng)計、成績分析。管理員管理子系統(tǒng)實現(xiàn)功能是:教師的所有活動和用戶管理38。修改密碼:各種類型的用戶都可以自行修改密碼;考試:按照組卷規(guī)則從服務(wù)器的試題表格獲取試題組成試卷,上交學(xué)生答題情況到服務(wù)器;查詢成績:學(xué)生查詢某一次考試本人的成績;組卷規(guī)則管理:添加、修改、刪除組卷規(guī)則;考試控制:考試時間、開始考試和終止考試等設(shè)置。考試結(jié)束前學(xué)生可以手動交卷,考試結(jié)束時學(xué)生沒有交卷則系統(tǒng)強制交卷;批卷模塊:根據(jù)存儲在數(shù)據(jù)庫中的考題答案和學(xué)生上交信息對比批改成績,可以進行自動和手動批改;

53、考試情況統(tǒng)計:顯示每一張試卷的分?jǐn)?shù)、考生、批改人等信息;成績分析:以自定義統(tǒng)計分?jǐn)?shù)段的方式統(tǒng)計某一個分?jǐn)?shù)段的人數(shù)和百分比,并且以圖表的形式顯示出來??梢愿鶕?jù)自定義分?jǐn)?shù)段統(tǒng)計及格率、良好率、優(yōu)秀率等;用戶管理:增加刪除教師、學(xué)生類型用戶。學(xué)生考試子系統(tǒng)以客戶端形式安裝于多臺客戶端上。教師管理子系統(tǒng)和管理員管理子系統(tǒng)以客戶端形式安裝在一臺或兩臺計算機上,考試數(shù)據(jù)庫推薦單獨安裝在功能比較強大的服務(wù)器,這樣可以實現(xiàn)更快的運行速度和更好的保密性。3.2.3 面向?qū)ο笤O(shè)計概述36 面向?qū)ο笤O(shè)計Object-Oriented Design(OOD)是一種軟件設(shè)計方法,一種工程化規(guī)范。具體地說,OOD就是根據(jù)

54、需求決定所需的類、類的操作以及類之間關(guān)聯(lián)的過程。OOD的目標(biāo)是管理程序內(nèi)部各部分的相互依賴。面向?qū)ο笤O(shè)計認(rèn)為所有的事物都可以用類來表示,其核心概念是類。類具有三個基本特性:封裝性、繼承性和多態(tài)性。1.封裝又稱信息隱藏,把對象的屬性和行為打包起來,僅暴露公共接口,提供做什么,不提供如何做的信息。訪問或改變對象屬性的唯一方式是通過對象所規(guī)定的行為。對象有明確的功能,即作用于其屬性的功能或行為。2.繼承性是指對象類中的方法、屬性可被另一個對象類繼承或重用。3.多態(tài)性是指同一個操作作用于不同的對象可以有不同的解釋,并產(chǎn)生不同的執(zhí)行結(jié)果。即相同操作的消息發(fā)送給不同的對象時,每個對象將根據(jù)它所屬類中定義的

55、操作去執(zhí)行,因而會產(chǎn)生不同的結(jié)果。多態(tài)性代表了抽象概念共享特征的能力,通常由動態(tài)聯(lián)編實現(xiàn)。3.2.4 靜態(tài)建模39面向?qū)ο蟪绦虻幕緲?gòu)成是類Class,類是對一組具有相同屬性、操作、關(guān)系和語義的對象的描述,其成分包括名稱name、屬性attribute和操作operation40。使用JBuilder的UML視圖可以清晰地看到類的屬性和方法。根據(jù)考試系統(tǒng)的用例分析,設(shè)計該系統(tǒng)有關(guān)主要類的類圖如圖3-2所示,類圖中各個類的中文名字和功能如表3-1所示,類的方法如表3-2所示。圖3-2 系統(tǒng)靜態(tài)類圖表3-1 考試系統(tǒng)主要類類名類中文名備注App應(yīng)用程序主類Diglogin登錄FrmMain主界面通

56、過該類的方法調(diào)用各個功能類,菜單實現(xiàn)DlgChangePassword修改密碼“系統(tǒng)”菜單子菜單調(diào)用Frmyhgl用戶管理同上Frmzjgz組卷規(guī)則“設(shè)置”菜單調(diào)用,設(shè)置組卷規(guī)則FrmExamController考試控制“設(shè)置”菜單調(diào)用,設(shè)置考試控制器FrmExam考試“業(yè)務(wù)”菜單調(diào)用,考試和答題數(shù)據(jù)上交FrmLbDotest批卷“業(yè)務(wù)”菜單調(diào)用,列表顯示全部題目功能的和批改功能FrmExamTj考試情況統(tǒng)計“統(tǒng)計和分析”菜單調(diào)用,統(tǒng)計考試情況FrmKscjfbtj成績分布分析“統(tǒng)計和分析”菜單調(diào)用,考試成績分布統(tǒng)計ExamManager答題批卷方法類輔助類,封裝批卷方法表3-2 系統(tǒng)主要類的方法類類的方法功能說明FrmMainchangePassword修改密碼userManager用戶管理zjgz組卷規(guī)則examController考試控制exam考試lbDoTest批卷examTj統(tǒng)計kscjfbtj分析ExamManageranswerAqustion每做一題實時上交答題數(shù)據(jù)到服務(wù)器makeExam生成試卷makedotest生成答題情況統(tǒng)計表,答題數(shù)據(jù)保存到表格do-test_a、do-test_

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論