版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、大連東軟信息學院本科畢業(yè)設計(論文)論文題目論文題目:基于OSGI的學科競賽管理子系統(tǒng)的設計與實現(xiàn)系 所: 電子工程系 專 業(yè): 電子信息工程(嵌入式系統(tǒng)工程方向) 學生姓名: 學生學號: 指導教師: 導師職稱: 講師 完成日期: 2014年 5月 2日 大連東軟信息學院Dalian Neusoft大連東軟信息學院畢業(yè)設計(論文) 摘要 IV基于OSGI的學科競賽管理子系統(tǒng)的設計與實現(xiàn)摘 要隨著科技和需求的發(fā)展變化,現(xiàn)在的軟件正在變得越來越龐大,軟件的復雜程度也在成指數(shù)級增長,使現(xiàn)在軟件的開發(fā)和維護都變得越來越困難。為了擺脫這樣的困境,將軟件化整為零,將龐大的系統(tǒng)劃分成一個個易于開發(fā)和維護的模
2、塊。使資源能夠合理分配,增加軟件重用性,易于開發(fā)和維護。在JAVA領域,OSGi是它實現(xiàn)模塊化最重要的方法。OSGi是比較成熟的技術,因為它存在了10多年了,OSGi為企業(yè)級應用程序開發(fā)帶來了極大的便利和好處。模塊化使每個模塊的邏輯和功能方面都是完整獨立的,增加了可重用性。每個模塊都定義了外部接口和依賴項,使各個模塊松散耦合。模塊有效的隔離,避免更新對系統(tǒng)的影響。OSGi為動態(tài)擴充,修改系統(tǒng)功能和改編系統(tǒng)行為提供了支撐,避免了傳統(tǒng)開發(fā)方式下,要實現(xiàn)動態(tài)擴充,修改以及改變的麻煩。本文主要論述了OSGi的體系結構,OSGi中的熱插拔的插件體系結構,spring框架,MySQL數(shù)據(jù)庫。應用熱插拔體系
3、結構,可以將學科競賽管理子系統(tǒng)與其他子系統(tǒng)相連接,當子系統(tǒng)進行維護時,不會影響整個系統(tǒng)的運行。關鍵詞:JAVA,OSGi,Spring大連東軟信息學院畢業(yè)設計(論文) AbstractOSGI-based discipline competition management subsystemAbstractWith the development of changes in technology and demand, and now the software is becoming increasingly large, the complexity of the software is a
4、lso exponential growth, So that now the software development and maintenance are becoming increasingly difficult. To get out of this predicament, the software split up, will be divided into one large system development and maintenance of the modules is easy. Rational allocation of resources can incr
5、ease software reusability, ease of development and maintenance. In JAVA field, OSGi is the most important way to achieve it is modular. OSGi is a relatively mature technology as it existed 10 years, OSGi for enterprise application development has brought great convenience and benefits. Modular make
6、complete logic and function of each module is independence, increasing the reusability. Each module defines the external interfaces and dependencies, so that each module is loosely coupled. Effective isolation module, avoid updating impact on the system. OSGi is a dynamic expansion, modification and
7、 adaptation of the system behavior system functions provide support, to avoid the traditional development methods, to achieve dynamic expansion, modification and trouble to change.This paper discusses the architecture of OSGi, OSGi in hot-swappable plug-in architecture, spring framework, MySQL datab
8、ase. Application of hot-swappable architecture, academic competitions management subsystem can be connected with other subsystems.Key words: JAVA, OSGi, Spring大連東軟信息學院畢業(yè)設計(論文) 目錄目 錄 TOC o 1-3 u 摘 要 PAGEREF _Toc387765764 h IAbstract PAGEREF _Toc387765765 h II第1章緒 論 PAGEREF _Toc387765766 h 11.1 課題研究背景
9、與意義 PAGEREF _Toc387765767 h 11.2 課題研究內容與方法 PAGEREF _Toc387765768 h 11.3 課題研究現(xiàn)狀 PAGEREF _Toc387765769 h 1第2章關鍵技術介紹 PAGEREF _Toc387765770 h 22.1 關鍵技術一 PAGEREF _Toc387765771 h 22.2 關鍵技術二 PAGEREF _Toc387765772 h 3第3章系統(tǒng)需求分析 PAGEREF _Toc387765773 h 43.1 系統(tǒng)設計目標 PAGEREF _Toc387765774 h 43.2 系統(tǒng)功能需求 PAGEREF _
10、Toc387765775 h 43.3 系統(tǒng)非功能需求 PAGEREF _Toc387765776 h 53.4 系統(tǒng)開發(fā)環(huán)境 PAGEREF _Toc387765777 h 53.5 系統(tǒng)可行性分析 PAGEREF _Toc387765778 h 5第4章系統(tǒng)設計 PAGEREF _Toc387765779 h 74.1 系統(tǒng)設計指導原則 PAGEREF _Toc387765780 h 74.2 體系結構設計 PAGEREF _Toc387765781 h 74.3 軟件設計 PAGEREF _Toc387765782 h 94.3.1 UI界面設計 PAGEREF _Toc38776578
11、3 h 104.3.2 功能模塊設計 PAGEREF _Toc387765784 h 134.3.3 數(shù)據(jù)庫設計 PAGEREF _Toc387765785 h 13第5章系統(tǒng)實現(xiàn) PAGEREF _Toc387765786 h 165.1環(huán)境配置 PAGEREF _Toc387765787 h 165.2功能模塊實現(xiàn) PAGEREF _Toc387765788 h 16第6章系統(tǒng)測試 PAGEREF _Toc387765789 h 186.1 測試概述 PAGEREF _Toc387765790 h 186.2 測試用例 PAGEREF _Toc387765791 h 18第7章結論 PAG
12、EREF _Toc387765792 h 21參考文獻 PAGEREF _Toc387765793 h 22致 謝 PAGEREF _Toc387765794 h 23大連東軟信息學院畢業(yè)設計(論文)- 第1章緒 論1.1 課題研究背景與意義現(xiàn)在計算機技術和互聯(lián)網(wǎng)的快速發(fā)展,我國的信息基礎設施和信息產(chǎn)業(yè)也在高速發(fā)展,給人們的生活,工作帶來了極大的便利,充分利用先進的網(wǎng)絡技術和資源實現(xiàn)學科競賽的信息管理化。使大家能更快的看到競賽的資料。傳統(tǒng)的競賽管理要對學生的報名信息進行收集,還要人工進行的錄入,核對以及給學生發(fā)通知等,容易出現(xiàn)很多錯誤。這種既繁瑣又無用的工作也影響了辦公效率?,F(xiàn)今社會的網(wǎng)絡化,
13、便捷化,各種競賽的管理應該有相對便捷的管理方式和方法。通過網(wǎng)絡發(fā)布各種競賽信息,報名及結果的公布等。基于OSGi的學科競賽管理子系統(tǒng),為指導老師和相關人員提供了方便,用一些簡單的操作獲取和上傳了需要的信息,便于數(shù)據(jù)的保存,修改和完善,提高了競賽中信息公布的效率。1.2 課題研究內容與方法本系統(tǒng)是基于OSGi的學科競賽管理子系統(tǒng),是一個子系統(tǒng),為了方便老師和相關人員上傳和修改成績,讓同學能更快的看到成績。希望廣大同學可以通過此平臺更加便利的參加競賽,同時也希望借助此平臺幫助老師更輕松的管理競賽的相關事宜。應用了OSGi中的熱插拔的插件體系結構,即使因為需要修改了這個子系統(tǒng),也不會影響到大系統(tǒng),大
14、系統(tǒng)的其他功能可以正常使用。采用Spring框架,實現(xiàn)類之間的松耦合,提高整體程序的穩(wěn)定性。1.3 課題研究現(xiàn)狀模塊化的編程好處一應很好的被理解了約40年,但在OSGi之前,開發(fā)人員不得不自己發(fā)明模塊化設計和系統(tǒng)。OSGi標準為軟件提供了模塊化,動態(tài)性,面向組建和服務的特性,因此越來越受到軟件開發(fā)商及開源社區(qū)的關注。在網(wǎng)絡計算機和云計算機體系高速發(fā)展的帶動下,單一節(jié)點的傳統(tǒng)應用程序正逐漸被分布式多節(jié)點應用程序所取代。OSGi標準正向著分布式,跨虛擬機的方向發(fā)展,跨虛擬機的組件和服務訪問成為了構建分布式OSGi應用程序的重要方式。OSGi控制臺對于OSGi組建和服務生命周期管理以及模塊的調試和診
15、斷的作用是至關重要的。組件和服務的管理者可以通過控制臺向OSGi框架提交控制命令,由于控制臺傳遞到命令解釋器,然后解釋器再去命令提供者那里查找執(zhí)行命令,并返回執(zhí)行結果到控制臺,從而完成管理過程的交互。大連東軟信息學院畢業(yè)設計(論文)第2章關鍵技術介紹本系統(tǒng)中采用了Java,它是跨平臺的,不同的操作系統(tǒng)都可以通過JVM來解釋Java程序,解決方案多,技術新穎,靈活多變。Java開發(fā)的安全性最高,線程很好控制,運行速度是依據(jù)框架而定的。.net是不能跨平臺的,運行時速度和Java不相上下,.net中的線程很難控制,移植性差。性能上,中小級的運用,.net的效率更高,瀏覽下載素的速度快,但是百萬級后
16、的不如Java。2.1 關鍵技術一Java是一種高級的面向對象的編程語言。Java平臺是一種純軟件平臺。平臺由JVM和Java應用程序編程接口組成。Java應用編程接口為Java應用提供了一個獨立于操作系統(tǒng)的標準接口。Java API涵蓋從基本對象到連網(wǎng)和安全性,再到XML生產(chǎn)和Web服務的所有東西。Java API組成相關類和接口的庫。J2EE提供Web服務,組件模型,管理和聽信應用程序接口,這些接口使J2EE成為實現(xiàn)企業(yè)級的面向服務的體系結構和Web2.0應用程序的行業(yè)標準。J2EE全面支持兩層和三層的應用程序。EJB架構是J2EE平臺的核心,EJB架構規(guī)范了用Java語言開發(fā)和部署服務器
17、應用程序的業(yè)務邏輯。OSGi作為事實標準的Java模塊化實現(xiàn)得到了長足的發(fā)展,尤其是隨著云計算和分布式技術的興起,OSGi這種模塊化,動態(tài)部署的核心功能將會受到越來越多的重視。每個OSGi框架運行的邏輯單元稱為一個Bundle,Bundle是個符合特定形式的jar文件。每一個Bundle的功能不僅可以是抽象的也可以是具體的。OSGi中控制的Bundles彼此之間依賴的關系是通過自身的類的加載機制,生命周期的管理也是OSGi亮點,通過可動態(tài)對這些加載的Bundles進行安裝和卸載,啟動和停止等一些操作,所以應用程序運行的狀態(tài)可以動態(tài)的改變。OSGi框架包括一個安全層,OSGi的安全層擴展了Jav
18、a的安全機制,增加了一些新的約束填補了Java安全機制中的遺漏?;贠SGi的應用程序可以對運行狀態(tài)和行為進行動態(tài)的更改。它是一個即穩(wěn)定又高效的系統(tǒng),它是一個微核的系統(tǒng),微核是指它的核心只有為數(shù)不多的幾個jar包?;贠SGi框架的系統(tǒng)可分可合,其結構的優(yōu)勢性導致具體的Bundle不至于影響到全局,不會因為局部的錯誤導致全局系統(tǒng)的崩潰??蓮陀眯詮?,每一個Bundle都是一個可復用的單元。Spring 是能夠替代EJB技術的強大的輕量級的框架。Spring的輕盈體現(xiàn)在框架本身的基礎結構以及對其他應用工具的支持和裝配能力。Spring架構的基礎是基于JavaBean屬性的Inversion of
19、Control容器,可以將對象之間的依賴關系交由Spring進行控制,避免編碼造成過度的程序耦合。組成Spring框架的每個模塊或組建都可以單獨存在,或者與其他一個或多個模塊聯(lián)合實現(xiàn)。Spring的DI機制降低了業(yè)務對象替換的復雜性。Spring提供了唯一的數(shù)據(jù)訪問抽象,包括簡單和有效率的JDBC框架,改進了效率并且減少了錯誤。Spring還提供了事物管理抽象,它能夠在各種底層事物管理技術。Spring對很多難用的Java EE API提供了一個薄薄的封裝層,通過Spring的簡易封裝,這些Java EE API的使用難度大大降低了。2.2 關鍵技術二.net側重點在從連接到互聯(lián)網(wǎng)的單一網(wǎng)站或
20、設備上,轉移到極端及設備和服務群組上,使他們通力合作,提供更廣泛的,更豐富的解決方案。使用戶能夠控制信息的傳說方式,時間和內容。計算機,設備和服務能夠相輔相成,進而提供豐富的服務,并不是像孤島那樣,由用戶提供唯一的集成。.net平臺建立在XML和因特網(wǎng)標準協(xié)議的基礎上,包含了.net基礎結構和基礎工具,為開發(fā)新型的互動協(xié)助的軟件提供了一個先進的體系結構模型。.net具有高效的開發(fā)速度,穩(wěn)定可靠的安全機制,并且簡單易行。CLR是.net的執(zhí)行引擎,只支持IL的代碼。因為所有的.net語言都是基于IL而設計的,就是CLR消除了不同的.net語言之間的差異,所以.net語言具有很高兼容性。CLR能有
21、效的消除很多常見的錯誤,主要是針對底層語言很容易出現(xiàn)的編譯錯誤。因為.net語言都編譯為IL,也就是說CLR消除了不同.net語言之間的差異。.net的核心技術就是Web Services。Web Services是新一代計算機和計算機之間一種通用數(shù)據(jù)的傳輸格式,它可以讓不同的運算系統(tǒng)更容易進行數(shù)據(jù)交換。Web Services允許應用程序之間共享數(shù)據(jù),并且分散了代碼單元?;赬ML這樣Internet數(shù)據(jù)交換的通用語言,實現(xiàn)跨平臺和跨操作系統(tǒng)且跨語言。.net的環(huán)境中使用了統(tǒng)一的Internet標準將不同系統(tǒng)進行對接。它是Internet上第一個大規(guī)模高度分布式的應用服務架構,使用了名為“聯(lián)
22、盟”的管理程序,這個程序能夠全方面的管理平臺中運行的服務程序,并為它們提供強大而安全保護后臺。.net可以使用戶輕松的進行互聯(lián)網(wǎng)的連接,并輕松的完成那些在現(xiàn)在看來十分費時且費力的事務,.net架構將把用戶從Web數(shù)據(jù)束縛中解脫出來,用戶可以自由的訪問,自由的查看,自由的使用它們的數(shù)據(jù)。第3章系統(tǒng)需求分析3.1 系統(tǒng)設計目標本子系統(tǒng)主要就是對系內學科競賽,獲獎情況,進行管理和維護。相關指導老師可以根據(jù)自己的權限,對競賽的相關的數(shù)據(jù)進行維護和及時的更新,管理員可以更改用戶等信息。使學生可以更快,更實時的查到學科競賽的相關情況,例如新增的競賽信息,競賽的進程,競賽的結果,獲獎人員等等。本系統(tǒng)基本上,
23、可以使學科競賽的每個環(huán)節(jié)都達到開放化,網(wǎng)絡化,規(guī)范化的管理,讓每一個參加比賽的同學都能感到學科競賽的快樂,大大增強了同學們參賽的熱情與積極性,大大的減少競賽管理的工作量,進而提高了學科競賽的工作效率,同時也確保學科競賽的公平、公正和公開。3.2 系統(tǒng)功能需求根據(jù)需求調研結果確定本系統(tǒng)主要包括以下功能模塊。教師管理模塊,包括查詢競賽信息,增加競賽信息,刪除競賽信息,修改競賽信息等功能,權限包括增加競賽信息,刪除競賽信息,更改競賽信息,查找相關的競賽信息。學生查詢模塊,包括查詢競賽信息,競賽報名,查詢與自己相關的競賽信息等功能,學生權限包括查找競賽的相關信息,競賽報名,查找自己參加的競賽信息管理員
24、模塊,包括增加用戶信息,刪除用戶信息,更改用戶信息,查詢用戶的相關信息等功能,權限包括增加用戶,刪除用戶,更改用戶信息,查找相關的用戶信息。管理員權限用來維護,可以隨時增加,刪除,修改用戶的信息。管理員可以對老師用戶或者學生用戶的個人信息進行修改。各個模塊的描述如表所示。表3.1 教師管理模塊的功能功能編號功能名稱功能描述優(yōu)先級1查詢競賽信息對競賽的相關信息進行查詢,如比賽時間2增加競賽信息增加新的比賽及比賽的相關信息,如初賽,復賽3刪除競賽信息刪除不需要的或者取消的競賽及相關信息4修改競賽信息對競賽的相關信息進行修改,如比賽時間表3.2 學生查詢模塊的功能功能編號功能名稱功能描述優(yōu)先級1查詢
25、競賽查詢全部的競賽及競賽的相關信息,如比賽結束時間2競賽報名對自己想?yún)⒓拥母傎愡M行報名3查詢與自己相關的競賽信息查詢自己報名的競賽的相關信息,如報了哪個競賽表3.3 管理員模塊的功能功能編號功能名稱功能描述優(yōu)先級1增加用戶增加可以登錄的用戶的相關信息2刪除用戶刪除無用的用戶3更改用戶對用戶的信息進行更改,教師用戶和學生用戶4查詢用戶信息查詢相關的用戶信息 3.3 系統(tǒng)非功能需求支持多個線程的同時執(zhí)行,并提供多線程之間的同步機制。 動態(tài)變化的環(huán)境,需要的類能夠動態(tài)地加載到運行環(huán)境,也可以通過網(wǎng)絡來載入所需要的類,有利于軟件的升級。具有無比的健壯性和可靠性,減少了應用系統(tǒng)的維護費用。具有很強的可移
26、植性。具有模塊化,可動態(tài)部署,復用性高和擴張性強等特點。3.4 系統(tǒng)開發(fā)環(huán)境 軟件環(huán)境:PowerDesigner Version 850MySQL Version 4.1JDK1.6STS(Spring Tools Suite) Version 3.3.0.RealeaseFreeMarker Version 2.3.19WebWork Verison2.1Hibernate Version4.3.03.5 系統(tǒng)可行性分析本系統(tǒng)采用Java中的OSGi框架,數(shù)據(jù)庫采用MySQL。軟件是否穩(wěn)定不是只看開發(fā)階段可能出現(xiàn)多少異常就能衡量的,軟件的“穩(wěn)定”應試多方面共同作用的結果。除
27、了關注開發(fā)階段是否穩(wěn)定之外,還要關注是否能積累重用穩(wěn)定的代碼,問題出現(xiàn)時能否隔斷連鎖反應蔓延,缺陷是否容易修復。在這些方面,OSGi就可以帶來相當多的好處,OSGi中提出一個概念叫做Bundle,系統(tǒng)的其他各個功能都可以作為一個獨立的Bundle,這樣一個復雜的系統(tǒng)就可以看作一系列Bundle的集合,就像搭積木一樣,需要哪個功能就開發(fā)哪個Bundle,做好后添加到OSGi框架中即可。OSGi作為事實標準的Java模塊化實現(xiàn)得到了長足的發(fā)展,尤其是隨著云計算和分布式技術的興起,OSGi這種模塊化,動態(tài)部署的核心功能將會受到越來越多的重視。OSGi會引導程序員開發(fā)出可積累可重用的軟件。經(jīng)過良好的設
28、計,能夠很方便的在其他項目中使用。一些項目中出現(xiàn)的一些“萬能的包”,這些包中存放了在項目中被多次調用的代碼,但是這樣的包不叫做可重用包。當這些包越來越大,類越來越多,功能越來越強是,與項目的耦合就越緊密,一般也就無法在其他項目中使用了。每個OSGi框架運行的邏輯單元稱為一個Bundle,Bundle是個符合特定形式的jar文件。每一個Bundle的功能不僅可以是抽象的也可以是具體的。OSGi中控制的Bundles彼此之間依賴的關系是通過自身的類的加載機制,生命周期的管理也是OSGi亮點,通過可動態(tài)對這些加載的Bundles進行安裝和卸載,啟動和停止等一些操作,所以應用程序運行的狀態(tài)可以動態(tài)的改
29、變。OSGi框架包括一個安全層,OSGi的安全層擴展了Java的安全機制,增加了一些新的約束填補了Java安全機制中的遺漏?;贠SGi的應用程序可以對運行狀態(tài)和行為進行動態(tài)的更改。它是一個即穩(wěn)定又高效的系統(tǒng),它是一個微核的系統(tǒng),微核是指它的核心只有為數(shù)不多的幾個jar包?;贠SGi框架的系統(tǒng)可分可合,其結構的優(yōu)勢性導致具體的Bundle不至于影響到全局,不會因為局部的錯誤導致全局系統(tǒng)的崩潰??蓮陀眯詮?,每一個Bundle都是一個可復用的單元。在OSGi環(huán)境下,“大雜燴”形式的模塊式很難生存的。必須把模塊設計的粒度合理, 精心挑選對外發(fā)布的接口和引入的依賴,這樣可以積累出可重用的模塊,也利于
30、提高程序的穩(wěn)定性。系統(tǒng)主要就是對系內學科競賽,獲獎情況,進行管理和維護。相關指導老師可以根據(jù)自己的權限,對競賽的相關的數(shù)據(jù)進行維護和及時的更新,管理員也可以設置系內學科競賽的相關的最新數(shù)據(jù)和更改用戶等信息。使學生可以更快,更實時的查到學科競賽的相關情況。第4章系統(tǒng)設計4.1 系統(tǒng)設計指導原則(1)先進性采用了OSGi框架,整個系統(tǒng)使用了插件式的設計方法。OSGi可以承載任意組件或粒度的任意變化。OSGi為動態(tài)擴充,可以為修改系統(tǒng)功能,和為改變系統(tǒng)行為提供了支撐,避免了傳統(tǒng)開發(fā)方式下,要實現(xiàn)動態(tài)擴充,修改和改變的麻煩。OSGi帶來了規(guī)范化的組建組織以及同一的開發(fā)方式,這是組件中的組織,組件的開發(fā)
31、和組件的積累有了一個全新的指導和支持?;贠SGi的系統(tǒng)可以在系統(tǒng)運行的狀況下給它動態(tài)的增加新的功能或者卸載不需要的功能。可以通過安裝新的Bundle,更新或停止現(xiàn)有的Bundle來實現(xiàn)組件的熱插拔?;贠SGi架構的模塊化推動架構師設計出能再一定范圍內自治的代碼,可以使開發(fā)人員只了解當前模塊的知識就能高效編碼,也有利于代碼出現(xiàn)問題是隔斷連鎖反應。Spring構建的松耦合,使在變更時,只需要修改少量的代碼,大大降低了應用開發(fā)的難度和復雜度,提高了開發(fā)速度。(2)可靠性及安全性本子系統(tǒng)采用了OSGi和Spring的結合,OSGi的強項是它的動態(tài)加載和對Bundle之間的通信和管理及依賴關系,而更
32、細粒度bundle內部則沒有嚴格的管理體系,Spring可以對bundle內部進行更為細粒度的管理,Spring將在配置文件中增加直接支持OSGi的配置項。修改一個特定的Bundle不會影響到系統(tǒng)中的所有應用的使用,運行的時候很大以部分的應用可以正常工作。當修改后的Bundle再部署上去的時候,系統(tǒng)從來沒有重新啟動,在外界看來,這個過程似乎從未發(fā)生過。這種可動態(tài)更改狀態(tài)的特性使得系統(tǒng)變得更有及時性,也方便了軟件的維護。系統(tǒng)中采用的Spring框架,提高了整體程序的穩(wěn)定性。OSGi框架分為安全層,模塊層,生命周期層,服務實現(xiàn)層。OSGi的安全層擴展了Java的安全機制,增加了一些新的約束以填補了
33、Java安全機制中的遺漏。系統(tǒng)設置了不同等級的使用者權限,僅有老師和管理員才可對整個系統(tǒng)進行設置或更改,沒有權限的用戶只能進行查詢。4.2 體系結構設計MVC架構模式是模型(Model)、視圖(View)和控制器(Controller)三個英文單詞的首字母組合。Model(模型)表示應用程序核心(比如數(shù)據(jù)庫記錄列表),是應用程序中用于處理應用程序數(shù)據(jù)邏輯的部分,通常模型對象負責在數(shù)據(jù)庫中存取數(shù)據(jù)。View(視圖)顯示數(shù)據(jù)(數(shù)據(jù)庫記錄),是應用程序中處理數(shù)據(jù)顯示的部分,通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的。Controller(控制器)處理輸入(寫入數(shù)據(jù)庫記錄),是應用程序中處理用戶交互的部分,通??刂?/p>
34、器負責從視圖讀取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù)。MVC模式是一個復雜的架構模式。Views可以看作一棵樹,顯然可以用Composite Pattern(合成模式)來實現(xiàn)。Views和Models之間的關系可以用Observer Pattern(觀察者模式)體現(xiàn)。Controller控制Views顯示,可以用策略模式實現(xiàn)。Model通常是一個調停者,可采用Mediator Pattern(調停者模式)來實現(xiàn)。MVC系統(tǒng)體系架構如圖4.1所示。 圖4.1 MVC系統(tǒng)體系結構框架層次結構層次分為四層:表現(xiàn)層、持久層、業(yè)務層、域對象層。每個框架分別扶著一個層次的實現(xiàn),表現(xiàn)層使用Web MVC,業(yè)
35、務層使用Spring,持久層使用Hibrenate,這些框架層次以一種松散耦合的方式彼此作用。Spring在整個框架中,負責了管理事物,預留了可以與其它層進行交互的接口,業(yè)務層對象之間的依賴的管理,增加了表現(xiàn)層和持久層之間的靈活性,使得它們互相都不直接進行通訊,從表現(xiàn)層中提供了一個上下文,使業(yè)務層得到業(yè)務服務,管理了業(yè)務邏輯到持久層的實現(xiàn),處理應用程序的業(yè)務的邏輯和業(yè)務驗證。Hibernate在框架中負責查詢相關的信息,保存、更新、刪除儲存在數(shù)據(jù)庫中的信息。域對象層,負責封裝底層的數(shù)據(jù)訪問細節(jié),不僅可能使概念清晰,而且可以提高開發(fā)效率。域對象層主要是編寫相關接口,實現(xiàn)相關接口。Web MVC+
36、Spring+Hibernate框架體系結構如圖4.2所示。圖4.2 Web MVC+Spring+Hibernate框架體系結構OSGi主要包括:執(zhí)行環(huán)境,模塊,生命周期,服務和安全等幾個層次。執(zhí)行環(huán)境層次主要定義了在具體的執(zhí)行環(huán)境平臺中,哪些方法和類可以被上面幾個層次訪問。模塊層次是OSGi的核心層次,定義了Bundle的模型,Bundle如何Import和Export代碼,以及如何定義和解析Bundle之間的依賴關系。生命周期層次定義了Bundle的生命周期包括狀態(tài)以及狀態(tài)之間如何轉換,并且定義了接口支持Bundle的生命周期操作,包括Install,start,stop,update和
37、uninstall。OSGi提供了Bundle庫,服務層定義了如何將一個Java對象注冊發(fā)布在某個、某些接口下面成為由這些接口表示的服務,獲取服務,以及監(jiān)聽某些服務的啟動和停止事件等等。安全層次定義了如何簽名和驗證一個Bundle。OSGi體系結構如圖4.3所示。圖4.3 OSGi體系結構4.3 軟件設計MySQL是一個多用戶,多線程SQL數(shù)據(jù)庫服務器。MySQL是由一個服務器守護程序mysqld和很多不同的客戶程序和庫組成的。MySQL主要是快速,健壯和易用。MySQL可以減少記錄編檔的時間,減小記錄檢索時間,靈活的查找序列,靈活的輸出格式,多個用戶同時訪問記錄。MySQL是完全網(wǎng)絡化的,其
38、數(shù)據(jù)庫可在因特網(wǎng)上的任何地方訪問,可以在任何地方的任何人共享數(shù)據(jù)庫。在MySQL中,mysql是個交互式的程序,允許將SQL語句發(fā)放到服務器上然后瀏覽它的結果。mysqladmin是一個管理程序,允許執(zhí)行,比如關閉服務器,創(chuàng)建或者刪除數(shù)據(jù)庫工作。假如服務器運行的不正常,那么可以通過mysqladmin進而來檢查服務器狀態(tài)。isamchk和myisamchk,這些使用程序有助于完成表的分析和優(yōu)化,以及在表損壞是進行崩潰恢復。mysqldump是一個工具,用于備份數(shù)據(jù)庫或者將數(shù)據(jù)庫拷貝到另一個服務器中。服務器的語言是SQL。MVC是一種架構設計模式,該模式主要應用于圖形化用戶界面應用程序,它使應用
39、程序的輸入,處理和輸出分開。MVC由三個部分組成:Model(模型)、View(視圖)及Controller(控制器)。Model是應用程序的數(shù)據(jù)模型,它擁有對數(shù)據(jù)直接訪問的權力,例如對數(shù)據(jù)庫的訪問。Model是對這些數(shù)據(jù)的抽象,不論數(shù)據(jù)采取何種存儲形式,應用程序都會通過Model來對數(shù)據(jù)進行操作,而不必關心數(shù)據(jù)的存儲形式。數(shù)據(jù)實體類是一種常用的Model。由于應用與Model(模型)的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復性。View(視圖)是用戶看到并與之交互的界面,用戶通過視圖來操作應用程序,View提供了可視化的界面來顯示Model中定義的數(shù)據(jù),用戶通過View來操作
40、數(shù)據(jù),并對Model數(shù)據(jù)操作的結果返回給用戶。Controller(控制器)起到不同層面間的組織作用,用于控制應用程序的流程。它處理事件并作出響應。該事件包括數(shù)據(jù)模型和用戶行為的改變。用戶通過View發(fā)送操作命令給Controller,由Controller按照程序設計的邏輯來更新Model定義的數(shù)據(jù),然后將操作的結果通過View返回給用戶。4.3.1 UI界面設計本子系統(tǒng)中主要包括三個模塊,分別是管理員,教師登錄,學生登錄。用戶先進行登錄,不同的用戶有不同的權限。管理員登錄后,有按鈕,可以對增加用戶信息,刪除用戶信息,更改用戶信息或者權限,查找用戶信息。教師登錄后,可以看見增加競賽信息,刪除
41、競賽信息,修改競賽信息,查找競賽的相關信息,這樣對應的按鍵,來選擇操作。學生登錄后,可以看見查看競賽信息,競賽報名,查看自己參加的競賽的相關信息,這樣的對應的按鍵,可以用來選擇操作。界面清潔簡單,讓人一目了然。圖4.4 登錄界面圖4.5管理員登錄后界面圖4.6 教師登錄后界面圖4.7 學生登錄后界面4.3.2 本子系統(tǒng)中主要包括三個模塊,分別是管理員,教師登錄,學生登錄。管理員權限包括增加用戶,刪除用戶,更改用戶信息,查找相關的用戶信息。教師權限包括增加競賽信息,刪除競賽信息,更改競賽信息,查找相關的競賽信息。學生權限包括查找競賽的相關信息,競賽報名,查找自己參加的競賽信息。管理員權限用來維護
42、,可以隨時增加,刪除,修改用戶的信息。管理員可以對教師用戶或者學生用戶的個人信息進行修改和更新。管理員登錄可以實現(xiàn)用戶信息的增加,用戶信息的刪除,用戶信息的修改,用戶信息的查看。教師登錄可以實現(xiàn)競賽信息的查詢,競賽信息的修改,競賽信息的刪除,競賽相關信息的查看。學生登錄可以實現(xiàn)查詢競賽的相關信息,競賽的報名,查詢與自己相關的競賽信息的一些功能。系統(tǒng)軟件功能框圖如圖4.8所示。圖4.8 系統(tǒng)軟件功能框圖4.3.3 數(shù)據(jù)庫設計本子系統(tǒng)中包括四個實體和一個中間實體。分別是學生,老師,學科和競賽。每個實體中包含如姓名,年齡等各種信息。學號,員工編號,競賽編號,學科編號分別為學生,老師,學科和競賽的主鍵
43、。中間主體中包含和其他四個實體相關聯(lián)的某一項,中間主體和其他四個實體構成多對多的關系。圖4.9 E-R圖每個實體對應一個基本表,基本表示只數(shù)據(jù)庫中“實在”的表格,它存儲的就是數(shù)據(jù)本身?;颈硎且詳?shù)字文字揭示一件工程或一個文件的特性特征。表4.1 學生基本表字段名字段類型字段長度是否主鍵備注student_IDInteger11是nameText255否sexText255否departmentText255否majorText255否classText255否nationalityText255否placeOfOriginText255否dateOfBirthText255否idNumberI
44、nteger255否表4.2 老師基本表字段名字段類型字段長度是否主鍵備注teacherNumInteger11是nameText255否genderText255否ageInteger255否entryTimeText255否departmentText255否specialtyText255否schoolText255否表4.3 學科基本表字段名字段類型字段長度是否主鍵備注subjectNumInteger11是subjectText255否departmentText255否majorText255否表4.4 競賽基本表字段名字段類型字段長度是否主鍵備注ItemNumberInteger
45、11是nameText255否續(xù)表4.4 競賽基本表字段名字段類型字段長度是否主鍵備注departmentText255否majorText255否starTimeText255否endTimeText255否CompetitorText255否HeatText255否RematchText255否comWorkText255否大連東軟信息學院畢業(yè)設計(論文)第5章系統(tǒng)實現(xiàn)5.1環(huán)境配置配置的環(huán)境:如表5.1所示:表5.1 環(huán)境配置Java開發(fā)工具JDK 1.6Java集成開發(fā)環(huán)境STS(Spring Tools Suite) Version 3.3.0. Release內部包含:Spring
46、 Framework Version 3.30201307091516-ReleaseEquinoxVirgo Version 1.0.0Web MVC框架WebWork Version 2.1數(shù)據(jù)庫連接Hibernate Version 4.3.0Jdbc本系統(tǒng)用到了Spring Tools Suite軟件。該軟件,可以很輕易的生產(chǎn)一個Spring的工程,比如web工程,工程里的配置文件都會自動為你生成,再也不用操心配置文件的格式及各種配置文件。在Java編輯器中有了針對Spring注解的自動不全和內容輔助?;诖碇匦录虞d的特性,在很大程度上減少了等待應用重新部署的時間,很多代碼變更可以立
47、刻反映在運行的應用程序中,無需重啟服務器。5.2功能模塊實現(xiàn)本系統(tǒng)主要有四個類,用戶,學生,教師和學科競賽。在查詢或者修改相關信息時,需要先進行用戶登錄,然后才能查詢競賽信息或者修改競賽信息。繼承,聚合,依賴,類圖如圖5.1所示:圖5.1 類圖本系統(tǒng)使用了AOP的編程思想,提供從另一個角度來考慮程序結構以完善面向對象編程。AOP利用一種稱為“橫切”的技術,剖解開封裝的對象內部,并將那些影響了多個類的行為封裝到一個可重用模塊,名為“Aspect”,即方面,它能夠將那些與業(yè)務無關,卻為業(yè)務模塊所共同調用的邏輯或責任封裝起來,便于減少系統(tǒng)的重復代碼,降低模塊間的耦合度。并有利于未來的可操作性和可維護
48、性。還是用了IOC設計模式,IOC就是控制反轉。一層是控制權的轉移,由傳統(tǒng)的在程序中控制依賴轉移到由容器來控制,一層是將相互依賴的對象分離,在Spring配置文件中描述他們的依賴關系。他們的依賴關系只在使用的時候才建立。AOP和IOC解決了系統(tǒng)代碼耦合度過高的問題,是代碼重用度高,易于維護。第6章系統(tǒng)測試基于OSGi的學科競賽管理子系統(tǒng)是用于管理學科競賽信息,有兩個權限,分別是老師權限和學生權限,老師對競賽信息進行實時更新,學生可以實時的查到關于競賽信息。本次主要對于管理員登錄,教師登錄,學生登錄后的各個功能進行測試。主要目的是為了保證在系統(tǒng)投入使用后,不會出現(xiàn)錯誤,導致教師或者學生登錄不上系
49、統(tǒng),無法查找競賽的相關信息。6.1 測試概述測試主要是對本子系統(tǒng)的各個功能進行測試,看是否能正常運行。先對管理員用戶進行測試,登錄管理員,然后增加一個用戶,查看是否增加成功。刪除一個用戶,查看是否刪除成功。修改一個用戶的信息,然后查看修改是否成功,修改用戶的信息,查看用戶信息,判斷用戶信息是否修改成功。能否查看相關的用戶信息。教師登錄,增加競賽信息,查看是否成功的增加競賽信息。刪除競賽信息,查看是否成功的刪除競賽信息。修改競賽的信息,查看是否成功修改。查看競賽的相關信息,查看是否能成功。如果不能增加競賽信息,刪除競賽信息,修改競賽信息,而只能進行查詢,那么很有可能是權限不夠,需要管理員對其進行
50、更改。學生登錄,查看競賽信息,看是否能夠查看,對競賽進行報名,查看報名是否成功,查看自己參加的相關的競賽信息,查看是否能夠查看成功。主要目的是為了保證在系統(tǒng)投入使用后,不會出現(xiàn)導致教師或者學生登錄不上系統(tǒng),無法查找競賽的相關信息。6.2 測試用例在本子系統(tǒng)中,首先先對學生登錄的功能進行測試,先用學生的賬號進行登錄例如student,密碼默認111111,登錄成功。會有查看競賽信息,競賽報名,查看與自己相關的競賽的三個按鈕。點擊查看競賽信息,顯示出當前所有的競賽,可以進行查看。點擊競賽報名,例如:填寫競賽所需的姓名:張三三,性別:女,所報競賽項目:c語言大賽等信息,并成功報名。點擊查看與自己相關
51、的競賽,顯示出當前報名參加的競賽,沒有報名競賽則顯示無。然后對教師登錄進行測試,用教師的賬號登錄例如teacher,密碼默認111111,登錄成功。會顯示增加競賽信息和查看競賽信息兩個按鈕。點擊增加競賽信息,例如:填寫競賽名:c語言大賽,競賽編號:01,競賽開始時間:2014-4-10,競賽結束時間:2014-5-15等信息,填寫完畢,保存。然后點擊查看競賽信息,顯示出所有的競賽信息。在每條信息后面會有修改,刪除,查看三個按鈕。點擊查看按鈕,會顯示出當前競賽的詳細信息。點擊刪除競賽信息,提示是否刪除項目信息,選擇是,成功刪除信息。點擊更改競賽信息,顯示出所有的這個競賽的全部信息,都可以進行修改
52、,例如:點擊c語言大賽,更改競賽開始時間為2014-4-15。修改結束點擊,保存,成功保存修改信息。最后測試管理員登錄,用admin進行登錄,默認密碼為admin,登錄成功。顯示出增加用戶信息和查看用戶信息兩個按鈕。點擊增加用戶信息,彈出新建學生信息的界面按照界面的提示我們可以填寫用戶詳細信息,例如姓名:李四四,性別:男,系別:電子信息工程,專業(yè):嵌入式系統(tǒng)工程,班級嵌入10002班,民族:漢族,籍貫:湖北,出生年月1991-10-15,身份證42900619911015xxxx等等。點擊查看,即可顯示所有用戶,每條用戶信息后面有修改,刪除和查看按鈕,點擊修改按鈕,會顯示這條用戶的詳細信息,然
53、后用戶可以根據(jù)提示進行直接修改,然后保存。測試截圖如下:圖6.1 新建學生信息圖6.2 查看全部信息大連東軟信息學院畢業(yè)設計(論文)第7章結論當前,計算機和互聯(lián)網(wǎng)的快速發(fā)展給人們的生活,工作帶來了極大地便利,充分利用先進的網(wǎng)絡技術和資源實現(xiàn)學科競賽管理的信息化。計算機具有運算速度快,存儲數(shù)據(jù)量大的特點。用計算機網(wǎng)絡發(fā)布競賽信息,報名,驗證報名信息,評選等工作可使學生和老師從繁重的勞動中解脫出來,僅僅一些簡單的操作便可以迅速,準確地獲取需要的信息,大大提高參賽學生和評審教師的效率,有效的減少了管理人員的工作量,使成績管理更加有效,快捷,從而提高了工作的效率。在本系統(tǒng)中,我們不僅站在學生的角度來思考問題,還從老師的方面著想,有更方便工作的功能設置。學科競賽管理子系統(tǒng)實現(xiàn)了對系內學科競賽,獲獎情況的管理和維護。指導老師根據(jù)競賽情況實時的更新競賽情況
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省清遠市2022-2023學年高三上學期期末教學質量檢測英語試題
- 旅行社后勤管理工作概述
- 健身行業(yè)教練技能提升總結
- 餐飲行業(yè)市場推廣總結
- 服裝行業(yè)設計師工作經(jīng)驗分享
- 皮革行業(yè)助理的工作概括
- 兒童用品行業(yè)營業(yè)員工作總結
- 證券公司前臺工作總結
- 銀行業(yè)務培訓總結
- 《漫話探險》課件
- “三排查三清零”回頭看問題整改臺賬
- 大連市小升初手冊
- 《自然辯證法》課后習題答案自然辯證法課后題答案
- 造價咨詢結算審核服務方案
- 中國人民財產(chǎn)保險股份有限公司機動車綜合商業(yè)保險條款
- 燃氣工程監(jiān)理實施細則(通用版)
- E車E拍行車記錄儀說明書 - 圖文-
- 人才梯隊-繼任計劃-建設方案(珍貴)
- 《健身氣功》(選修)教學大綱
- 王家?guī)r隧道工程地質勘察報告(總結)
- 《昆明的雨》優(yōu)質課一等獎(課堂PPT)
評論
0/150
提交評論