• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于SSH架構(gòu)的高職院校成績(jī)管理系統(tǒng)的分析和設(shè)計(jì)

      2010-08-20 01:54:30陜晉軍
      關(guān)鍵詞:用例邏輯用戶

      陜晉軍

      1江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院 江蘇 214122

      2山西建筑職業(yè)技術(shù)學(xué)院計(jì)算機(jī)工程系 山西 030006

      0 引言

      如今,Web應(yīng)用開發(fā)變得越來越復(fù)雜,傳統(tǒng)的單個(gè)應(yīng)用框架往往很難滿足日益增長(zhǎng)的應(yīng)用需求,實(shí)際的開發(fā)過程常常需要綜合多個(gè)框架的長(zhǎng)處才能滿足用戶的需求。

      表現(xiàn)層的開源 Struts2,數(shù)據(jù)持久層的 Hibernate框架以及中間層的Spring框架,這三者構(gòu)成了當(dāng)前主流的開發(fā)J2EE應(yīng)用的輕量級(jí)框架組合,即 Struts2+Spring+Hibernate。使用Struts2架構(gòu)作為了整個(gè)系統(tǒng)的基礎(chǔ)框架,它負(fù)責(zé)了MVC模型中各層的分離。利用 Hibernate作為系統(tǒng)持久層的底層結(jié)構(gòu)。中間業(yè)務(wù)邏輯層由Spring支持。根據(jù)需求來提出一個(gè)模型,將這些模型采用Java語(yǔ)言實(shí)現(xiàn)出基本的Java對(duì)象,然后寫出基本的DAO接口,并給出Hibernate的DAO實(shí)現(xiàn),采用Hibernate架構(gòu)實(shí)現(xiàn)的DAO類來實(shí)現(xiàn)Java類與數(shù)據(jù)庫(kù)之間的轉(zhuǎn)換和訪問,然后由Spring來完成業(yè)務(wù)邏輯。

      1 系統(tǒng)概要分析

      概要分析要做的工作是描述目標(biāo)系統(tǒng)的功能和性能,確定軟件設(shè)計(jì)的限制和軟件同其他系統(tǒng)元素間的接口細(xì)節(jié),定義軟件的其他有效性需求。運(yùn)用統(tǒng)一建模語(yǔ)言(Unified Modeling Language, UML)來找出系統(tǒng)的功能需求、分析,提取所開發(fā)系統(tǒng)領(lǐng)域的類以及描述它們之間相互關(guān)系,在完成系統(tǒng)的面向?qū)ο蠓治?Object-Oriented Analysis, OOA)的基礎(chǔ)上,對(duì)系統(tǒng)進(jìn)行面向?qū)ο笤O(shè)計(jì)(Object-Oriented Design, OOD)。圖1為整個(gè)系統(tǒng)的基本框架圖。

      圖1 系統(tǒng)的基本框架圖

      針對(duì)不同的用戶群,其功能也各部相同。實(shí)現(xiàn)分角色登錄,對(duì)不同的角色由不同的功能實(shí)現(xiàn)。可以實(shí)現(xiàn)平時(shí)及期末成績(jī)錄入、查詢、修改、統(tǒng)計(jì)分析;學(xué)生補(bǔ)考成績(jī)錄入、查詢、修改、統(tǒng)計(jì)分析;數(shù)據(jù)備份、導(dǎo)入和導(dǎo)出;成績(jī)報(bào)表打印、數(shù)據(jù)報(bào)表打??;并且還可以對(duì)教師、學(xué)生的基本信息錄入、查詢、導(dǎo)入和導(dǎo)出;并且還可以對(duì)教師的授課情況將行統(tǒng)一管理,實(shí)現(xiàn)根據(jù)授課情況統(tǒng)計(jì)教師的工作量。成績(jī)錄入提供四種方式:教務(wù)人員錄入或?qū)胂到y(tǒng);教師錄入或?qū)胨淌谡n程的學(xué)生成績(jī)。成績(jī)一般有百分制和學(xué)分制(如包括優(yōu)秀、良好、中等、及格、不及格)。百分制總評(píng)成績(jī)由平時(shí)成績(jī)、考勤成績(jī)、期末考試成績(jī)結(jié)合學(xué)校制定的比例計(jì)算而來。

      1.1 系統(tǒng)高層用例模型

      我們通過 UML語(yǔ)言來分析高職院校成績(jī)管理系統(tǒng)。UML作為一種圖形語(yǔ)言,用于對(duì)軟件系統(tǒng)建模和開發(fā)工作。在軟件開發(fā)的每個(gè)步驟中,從對(duì)需求的分析到技術(shù)規(guī)范,再到結(jié)構(gòu)設(shè)計(jì)及配置要求,UML都提供了模型化和可視化的支持。

      用例是用戶和計(jì)算機(jī)系統(tǒng)進(jìn)行交互的描述。用例圖是被稱為參與者的外部用戶所能觀察到的系統(tǒng)功能的模型圖,呈現(xiàn)了一些參與者和一些用例,以及它們之間的關(guān)系,主要用于對(duì)系統(tǒng)、子系統(tǒng)或類的功能行為進(jìn)行建模。

      用例圖展示了用例之間以及同用例參與者之間是怎樣相互聯(lián)系的。用例圖用于對(duì)系統(tǒng)、子系統(tǒng)或類的行為進(jìn)行可視化,使用戶能夠理解如何使用這些元素,并使開發(fā)者能夠?qū)崿F(xiàn)這些元素。

      1.1.1 使用用例圖描述系統(tǒng)需求的步驟

      (1)識(shí)別用戶角色

      一般而言,定義用戶角色的基本思路是,先從涉眾中找到用戶,用戶是指將與要建設(shè)的系統(tǒng)發(fā)生關(guān)系的那些涉眾。再?gòu)挠脩舻慕嵌瘸霭l(fā),考慮系統(tǒng)建立以后將發(fā)揮什么作用,哪些事務(wù)與它進(jìn)行交互。除此之外,系統(tǒng)還有可能跟其他系統(tǒng)相聯(lián)系,如招生系統(tǒng)、教務(wù)管理系統(tǒng)等,它通過數(shù)據(jù)庫(kù)進(jìn)行接口,所以數(shù)據(jù)庫(kù)也可能是一個(gè)角色,還有與該系統(tǒng)交互的設(shè)備,如打印機(jī)也是角色??傮w來說,該系統(tǒng)主要角色有:系統(tǒng)管理員、學(xué)生、教師。

      (2)識(shí)別系統(tǒng)中的用例

      用例是系統(tǒng)的功能描述,從用戶角色的角度,分析每個(gè)角色的主要任務(wù)是什么?如教師角色,他的任務(wù)有查看和修改個(gè)人信息、成績(jī)錄入、成績(jī)查詢等。

      (3)確定系統(tǒng)中角色與用例間的關(guān)系角色和用例的關(guān)系反映了角色與系統(tǒng)的互動(dòng),即角色的動(dòng)作,角色向系統(tǒng)輸入或從系統(tǒng)輸出什么信息。

      1.1.2 系統(tǒng)管理員角度的頂層用例圖

      下面我們分別從系統(tǒng)管理員、教師、學(xué)生這三類用戶的角度得到頂層用例圖。項(xiàng)目用例圖如圖2所示。

      圖2 系統(tǒng)頂層角色用例圖

      系統(tǒng)管理員頂層用例圖

      用例分析:該用例角色是系統(tǒng)管理員。系統(tǒng)管理員負(fù)責(zé)學(xué)生學(xué)籍信息的管理(包括學(xué)生注冊(cè)、學(xué)籍異動(dòng)、學(xué)生調(diào)班以及學(xué)生畢業(yè)后的數(shù)據(jù)處理)、教師基本信息的錄入(導(dǎo)入)和查詢(設(shè)置多種查詢方式)、課程管理(開課情況、開課學(xué)期、任課教師、以及教材信息等)學(xué)生成績(jī)的錄入和查詢(設(shè)置多種查詢方式)、生成各種報(bào)表(班級(jí)名單、班級(jí)成績(jī)、補(bǔ)考名單以及教師的課程表等)、身份及角色管理、數(shù)據(jù)備份(所有師生及學(xué)生成績(jī)等數(shù)據(jù)的導(dǎo)入和導(dǎo)出等)以及打印功能。

      教師角度的頂層用例圖

      用例分析:該用例角色是教師。教師可以進(jìn)行個(gè)人信息維護(hù)(查看任課信息、查看個(gè)人信息、查看學(xué)生信息和修改以及登錄用戶名和密碼的設(shè)定)、學(xué)生成績(jī)管理(包括導(dǎo)入或錄入學(xué)生成績(jī)、查詢本班學(xué)生成績(jī)并且可以對(duì)成績(jī)進(jìn)行簡(jiǎn)單的統(tǒng)計(jì),生成補(bǔ)考學(xué)生名單等)、報(bào)表打印(打印本人信息、打印班級(jí)名單、打印本班成績(jī)以及打印本班補(bǔ)考成績(jī)名單)。

      從學(xué)生角度的頂層用例圖

      用例分析:該用例角色是學(xué)生??梢圆榭春托薷膫€(gè)人的信息(登錄用戶名和密碼的設(shè)置等)、個(gè)人成績(jī)查詢、個(gè)人選課情況,以及相應(yīng)選修學(xué)分的情況等。

      1.2 業(yè)務(wù)建模

      在上述用例圖的基礎(chǔ)上,進(jìn)一步對(duì)用戶需求進(jìn)行分析。劃分業(yè)務(wù)用例,并針對(duì)業(yè)務(wù)用例,必要時(shí)可以結(jié)合UML提供的時(shí)序圖、協(xié)作圖、活動(dòng)圖描述業(yè)務(wù)用例。選擇業(yè)務(wù)用例的粒度十分重要,如學(xué)生信息修改的功能,是應(yīng)該把增加學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息、查詢學(xué)生信息分別作為一個(gè)用例,還是整體作為一個(gè)用例都是需要考慮的。

      1.2.1 確定業(yè)務(wù)用例

      確定業(yè)務(wù)用例的時(shí)候,可以從以下幾個(gè)方面出發(fā):

      (1)用例是針對(duì)一個(gè)完整的業(yè)務(wù)。一般不必把增加、刪除、修改、查詢分別作為一個(gè)完整的業(yè)務(wù)。作為一個(gè)管理業(yè)務(wù),數(shù)據(jù)只有先增加,才有可能修改或者刪除。增加、刪除、修改、查詢結(jié)合起來才能完成管理目的,單獨(dú)每一項(xiàng)都不是業(yè)務(wù)的全部。

      (2)考慮實(shí)施成本和風(fēng)險(xiǎn)。如果將增加、刪除、修改、查詢都分別作為一個(gè)業(yè)務(wù)用例,很容易造成這些原本與用戶這個(gè)實(shí)體緊密關(guān)聯(lián),共同組成用戶實(shí)體生命周期的業(yè)務(wù),被割裂成多個(gè)獨(dú)立的業(yè)務(wù),一個(gè)用例可以看作一個(gè)分析單元,設(shè)計(jì)單元,開發(fā)單元,測(cè)試單元甚至部署單元。把緊密關(guān)聯(lián)的業(yè)務(wù)分成多個(gè)獨(dú)立部分去實(shí)施是高成本的,高風(fēng)險(xiǎn)的。

      (3)盡量提高可復(fù)用性。增加、刪除、修改。查詢對(duì)一個(gè)用戶來說是不會(huì)同時(shí)發(fā)生的,每次用戶只會(huì)完成其中的一個(gè)行為。分開來有利于詳細(xì)分析、模擬這一行為的細(xì)節(jié)而不至于混淆。就Web應(yīng)用而言,針對(duì)數(shù)據(jù)的增加、刪除、修改、查詢等,很容易形成“模板”,增加用戶用這個(gè)模板,增加其它基礎(chǔ)數(shù)據(jù)可能也用同一個(gè)模板,只是操作的數(shù)據(jù)(實(shí)體)不同而已。因此,在這種情況下,這些模板是可以復(fù)用的。

      (4)具體問題具體分析。查詢是比較特殊的,查詢一般不一定只局限于一類用戶,也不一定局限這個(gè)用例,一般都是所謂的綜合查詢,是可能跨用例的。比如管理員可以查詢學(xué)生學(xué)籍信息,學(xué)生也可以查詢自己的學(xué)籍信息。所以根據(jù)實(shí)際情況,查詢可以作為一個(gè)業(yè)務(wù)用例出現(xiàn)。

      1.2.2 業(yè)務(wù)建模舉例

      由于高職院校教學(xué)管理是十分龐大而復(fù)雜的,下面針對(duì)一小部分需求,進(jìn)行業(yè)務(wù)建模。具體需求描述如下:

      管理員登錄系統(tǒng)后,能夠維護(hù)(查找、增加、修改、刪除)學(xué)生信息,同時(shí)又能對(duì)教師的信息進(jìn)行查詢和修改(查找、增加、修改、刪除)等。根據(jù)對(duì)用戶需求的總結(jié)和歸納,從管理員的角度以及從每項(xiàng)業(yè)務(wù)的角度來繪制業(yè)務(wù)用例圖。在上述功能點(diǎn)中,比較重要的操作如下:

      (1)查詢學(xué)生信息;

      (2)修改學(xué)生信息;

      (3)增加學(xué)生信息;

      (4)刪除學(xué)生信息;

      (5)修改學(xué)生成績(jī);

      (6)查詢教師信息;

      (7)修改教師信息;

      (8)增加教師信息;

      (9)刪除教師信息。

      經(jīng)過分析,用例的粒度以每個(gè)用例能夠說明一件完整的事情為宜。即一用例可以描述一項(xiàng)完整的業(yè)務(wù)流程得到的業(yè)務(wù)用例如下:

      (1)學(xué)生信息維護(hù)(增加、刪除、修改);

      (2)教師信息維護(hù)(增加、刪除、修改);

      (3)學(xué)生信息查詢;

      (4)教師信息查詢。

      在具體分析業(yè)務(wù)用例的時(shí)候,可以使用UML提供的時(shí)序圖、協(xié)作圖、活動(dòng)圖等來幫助分析系統(tǒng)業(yè)務(wù)。以用戶登錄系統(tǒng)為例,其時(shí)序圖、協(xié)作圖和活動(dòng)圖分別如圖3、圖4和圖5所示。

      圖3 用戶登錄時(shí)序圖

      圖4 用戶登錄協(xié)作圖

      圖5 用戶登錄活動(dòng)圖

      2 系統(tǒng)的安全設(shè)計(jì)

      成績(jī)管理系統(tǒng)含有大量用戶信息,所以數(shù)據(jù)庫(kù)的安全就是一個(gè)必須要考慮的問題。保證系統(tǒng)安全涉及諸多方面,而對(duì)系統(tǒng)用戶進(jìn)行正確驗(yàn)證、實(shí)施權(quán)限管理則是保證系統(tǒng)安全的一項(xiàng)重要基礎(chǔ)工作。

      管理員每次登錄系統(tǒng)都要輸入自己的登錄用戶名、密碼以及該用戶名所屬的那個(gè)用戶身份類別,系統(tǒng)可以進(jìn)行身份驗(yàn)證。通過驗(yàn)證后,才會(huì)進(jìn)入相應(yīng)的系統(tǒng)界面,進(jìn)行和該用戶身份相關(guān)的操作和管理。這樣可以避免出現(xiàn)非法用戶的數(shù)據(jù)訪問請(qǐng)求,也避免合法用戶的越權(quán)數(shù)據(jù)請(qǐng)求。

      系統(tǒng)安全機(jī)制由兩部分組成:首先在用戶登錄系統(tǒng)時(shí)進(jìn)行身份認(rèn)證,防止非注冊(cè)用戶的訪問,并確定己登錄用戶的身份角色;然后,當(dāng)用戶通過身份認(rèn)證調(diào)用系統(tǒng)的操作時(shí),對(duì)每個(gè)操作根據(jù)系統(tǒng)的訪問策略驗(yàn)證用戶是否擁有相應(yīng)的權(quán)限,為系統(tǒng)提供進(jìn)一步的安全控制。

      權(quán)限管理的設(shè)計(jì)原則是,對(duì)于擁有本系統(tǒng)使用權(quán)的用戶,系統(tǒng)根據(jù)承擔(dān)的職務(wù),進(jìn)行角色和權(quán)限分配。系統(tǒng)根據(jù)其角色,分配相應(yīng)的系統(tǒng)操作權(quán)限,這樣當(dāng)用戶登錄本系統(tǒng)后,只能看到屬于自己操作權(quán)限的系統(tǒng),避免了操作者越權(quán)修改其職責(zé)之外的數(shù)據(jù)。

      3 系統(tǒng)架構(gòu)設(shè)計(jì)

      高職院校成績(jī)管理系統(tǒng)是一個(gè)B/S架構(gòu)系統(tǒng),采用網(wǎng)絡(luò)應(yīng)用標(biāo)準(zhǔn)的多層體系結(jié)構(gòu),每一層實(shí)現(xiàn)不同的系統(tǒng)功能。從系統(tǒng)架構(gòu)上將整個(gè)系統(tǒng)分成表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和域模型層。下面對(duì)系統(tǒng)各個(gè)層的設(shè)計(jì)及實(shí)現(xiàn)機(jī)制進(jìn)行闡述。架構(gòu)如圖6所示。

      圖6 系統(tǒng)總體架構(gòu)

      (1)客戶層

      客戶層運(yùn)行在用戶的瀏覽器中提供了客戶與應(yīng)用程序的交互方式,這些交互主要包括向Web層發(fā)出請(qǐng)求并接收由Web層發(fā)回的響應(yīng)。

      (2)表示層

      表示層為客戶層同業(yè)務(wù)邏輯層進(jìn)行通信提供了服務(wù),負(fù)責(zé)從客戶層接受請(qǐng)求和向客戶層發(fā)送結(jié)果及顯示內(nèi)容,只包含顯示邏輯。Web層主要采用MVC的技術(shù)架構(gòu)。實(shí)現(xiàn)技術(shù)包括:Struts、Servlet、JSP、JSTL、ValueList、JavaScript,HTML,DHTML,CSS等。

      Struts Action:Action類是業(yè)務(wù)邏輯的一個(gè)封裝,真正實(shí)現(xiàn)應(yīng)用程序的業(yè)務(wù)邏輯。

      Struts Form:用以封裝HTTP Request或Response中的數(shù)據(jù)。主要用于存放HTTP form提交的數(shù)據(jù),也可用于JSP頁(yè)面的數(shù)據(jù)顯示。

      (3)業(yè)務(wù)邏輯層

      業(yè)務(wù)邏輯層是該整合架構(gòu)的體系核心所在,它體現(xiàn)并處理企業(yè)的業(yè)務(wù)邏輯。處理Web層傳遞過來的用戶響應(yīng),實(shí)現(xiàn)業(yè)務(wù)邏輯,并將結(jié)果返回給Web層。所有的業(yè)務(wù)邏輯,都應(yīng)存放在這一層,由Spring管理該層。

      (4)數(shù)據(jù)持久層

      本層在業(yè)務(wù)邏輯層之后,利用Spring和Hibernate,iBatis開發(fā),主要負(fù)責(zé)實(shí)現(xiàn)與數(shù)據(jù)庫(kù)等系統(tǒng)連接,實(shí)現(xiàn)數(shù)據(jù)的管理和持久化。

      (5)域模型層

      由于本系統(tǒng)將Web應(yīng)用劃分為了多個(gè)層次,就需要一系列的 Java對(duì)象來實(shí)現(xiàn)不同層之間的數(shù)據(jù)傳遞和交互。域模型層包含了真實(shí)世界中的業(yè)務(wù)對(duì)象。Hibernate允許將數(shù)據(jù)庫(kù)中的信息讀取到域模型對(duì)象中,以便于可以直接呈現(xiàn)在表示層的用戶界面中。這些對(duì)象還可以被更新并且傳回到持久層,最后更新到數(shù)據(jù)庫(kù)中。

      4 小結(jié)

      本文對(duì)高職院校成績(jī)管理系統(tǒng)做了一個(gè)簡(jiǎn)要的概述之后,然后做了需求分析,最后做出了總體設(shè)計(jì),鑒于本文的篇幅,系統(tǒng)的分析和設(shè)計(jì)只是在總體上做了簡(jiǎn)單的闡述,并沒有給出很詳細(xì)的需求分析和設(shè)計(jì)文檔,需要我們?cè)趯?shí)踐中繼續(xù)完善。

      [1]張春枝等.基于C/S與B/S混合模式的MIS系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用研究.2001.

      [2]袁華強(qiáng),王亞強(qiáng),朱君.利用J2EE輕量級(jí)框架構(gòu)建Web應(yīng)用研究[J].計(jì)算機(jī)工程與設(shè)計(jì).2007.

      [3]劉艷霞.J2EE項(xiàng)目中的數(shù)據(jù)持久層設(shè)計(jì)[J].工程地質(zhì)計(jì)算機(jī)應(yīng)用.2005.

      [4]閻宏.Java與模式[M].北京:電子工業(yè)出版社.2002.

      [5]魏學(xué)松,張育平.IoC 框架的研究與設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展.2006.

      [6]夏聽.Spring開發(fā)指南0.8預(yù)覽版[M].2004.

      [7]羅時(shí)飛.精通 Spring開發(fā)專家之 Sun One[M].北京:電子工業(yè)出版社.2005.

      猜你喜歡
      用例邏輯用戶
      刑事印證證明準(zhǔn)確達(dá)成的邏輯反思
      法律方法(2022年2期)2022-10-20 06:44:24
      UML用例模型中依賴關(guān)系的比較與分析
      邏輯
      創(chuàng)新的邏輯
      聯(lián)鎖軟件詳細(xì)設(shè)計(jì)的測(cè)試需求分析和用例編寫
      從出土文獻(xiàn)用例看王氏父子校讀古書的得失
      女人買買買的神邏輯
      37°女人(2017年11期)2017-11-14 20:27:40
      關(guān)注用戶
      商用汽車(2016年11期)2016-12-19 01:20:16
      關(guān)注用戶
      商用汽車(2016年6期)2016-06-29 09:18:54
      關(guān)注用戶
      商用汽車(2016年4期)2016-05-09 01:23:12
      深州市| 卫辉市| 淮阳县| 洪泽县| 康平县| 花莲县| 洛阳市| 白山市| 固原市| 镶黄旗| 和顺县| 甘泉县| 时尚| 南投市| 顺昌县| 沙坪坝区| 鞍山市| 玉环县| 巫溪县| 巴里| 洪雅县| 广平县| 日照市| 开江县| 徐汇区| 湘潭市| 太白县| 屯留县| 根河市| 通化市| 樟树市| 阜宁县| 德保县| 十堰市| 胶南市| 琼海市| 开平市| 罗田县| 沙坪坝区| 来凤县| 溆浦县|