国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于UML的在線投稿系統(tǒng)的設(shè)計與實現(xiàn)

2018-02-28 11:19劉艷
電子技術(shù)與軟件工程 2018年21期
關(guān)鍵詞:軟件工程

劉艷

摘要

隨著軟件工程及軟件體系結(jié)構(gòu)的發(fā)展,軟件體系結(jié)構(gòu)建模成為軟件開發(fā)的必要部分。本文以一個在線投稿系統(tǒng)為例,使用UML對系統(tǒng)進(jìn)行體系結(jié)構(gòu)建模,并使用JSP、JavaBean等技術(shù)進(jìn)行開發(fā)。

【關(guān)鍵詞】UML 軟件工程 軟件體系結(jié)構(gòu) JSP

1 引言

隨著軟件工程的深入發(fā)展,軟件體系結(jié)構(gòu)設(shè)計已經(jīng)成為直接影響軟件開發(fā)的關(guān)鍵因素。而軟件體系結(jié)構(gòu)建模是軟件體系結(jié)構(gòu)設(shè)計中的重要組成部分,是否能夠?qū)浖w系結(jié)構(gòu)模型進(jìn)行精確的描述,決定了軟件系統(tǒng)開發(fā)的效率和成敗。對于軟件的建模,我們可以使用統(tǒng)一建模語言UML。UML是一種基于面向?qū)ο蟮目梢暬UZ言,它提供了豐富的視圖來描述系統(tǒng)的不同側(cè)面,可以有效地進(jìn)行系統(tǒng)建模、分析和設(shè)計。

本文以一個在線投稿系統(tǒng)為例,該系統(tǒng)根據(jù)基于Internet實現(xiàn)了在線投稿和審稿功能,解決了編輯部繁雜、低效的問題。采用可視化建模工具Rational Rose并利用LJML建立其體系結(jié)構(gòu)模型。并采用JSP、JavaBean技術(shù)在建模的基礎(chǔ)上實現(xiàn)了該在線投稿系統(tǒng)。

2 基于UML的體系結(jié)構(gòu)建模

本文對系統(tǒng)的基本體系結(jié)構(gòu)進(jìn)行描述,其次進(jìn)行了概要設(shè)計,繪制出其需求模型,數(shù)據(jù)庫模型,功能模型,框架模型,進(jìn)而進(jìn)行更加詳細(xì)的設(shè)計,建立了結(jié)構(gòu)模型和動態(tài)模型。

2.1 基于Web的三層體系結(jié)構(gòu)

本系統(tǒng)作為一個基于Internet和Web的系統(tǒng),要求能夠安全及時地服務(wù)大量的客戶端用戶,又能夠長時間安全穩(wěn)定地運(yùn)行所以要求其具有一種良好體系結(jié)構(gòu)。因此我們采用三層體系結(jié)構(gòu),如圖1所示。

服務(wù)器端由Web服務(wù)器和數(shù)據(jù)庫服務(wù)器構(gòu)成,這是當(dāng)前應(yīng)用比較多的一種結(jié)構(gòu)模式,可以將要發(fā)布信息分類保存到數(shù)據(jù)庫服務(wù)器,然后通過應(yīng)用程序或腳本程序根據(jù)用戶請求提取相應(yīng)的信息,這種模式克服了單一Web服務(wù)器只能發(fā)布靜態(tài)內(nèi)容的缺點,由于增加了后臺數(shù)據(jù)庫的支持,在Web Server中通過應(yīng)用程序的支持,就可以給用戶提供動態(tài)的信息服務(wù),通過定制頁面模板,添加到后臺數(shù)據(jù)庫的信息可即時發(fā)布到請求的客戶,因而也就保證了信息的時效性。這種模式對編程人員的素質(zhì)要求不是很高,并且開發(fā)周期快,適用于企業(yè)內(nèi)部的INTRANET或一些訪問量不大的中小網(wǎng)站,不用再添加一些中間層的應(yīng)用服務(wù)器了。

2.2 MVC體系結(jié)構(gòu)模型

本系統(tǒng)采用了MVC(視圖、模型、控制器)模型,該模型把一個應(yīng)用的輸入、處理、輸出流程按照Model、View、Controller(視圖、模型、控制器)的方式進(jìn)行分離,如圖2所示。模型封裝內(nèi)核數(shù)據(jù)與狀態(tài),視圖從模型獲取數(shù)據(jù),用戶輸入的數(shù)據(jù)通過控制器與系統(tǒng)交互。

在本系統(tǒng)的實現(xiàn)過程中,采用了JSP以及JAVABEAN的技術(shù), MVC模型與該實現(xiàn)技術(shù)的進(jìn)一步說明如下:

(1)MVC中的Model(模型)對應(yīng)于JAVABEAN。比如用戶類userjava,它主要用于獲取用戶信息以及與數(shù)據(jù)庫交互。在我們的應(yīng)用程序中,模型是通過Bean包里的各個Bean表示的。

(2)MVC框架中的View(視圖)是將要發(fā)布給客戶端的接口。視圖了解控制器和模型。在我們的應(yīng)用程序中,視圖是通過WEB模塊中的一些JSP頁面來表示,比如用于注冊的register.jsp。

(3)MVC框架中的Controller(控制器)是最常用的作為模型和視圖之間的服務(wù)中介。在視圖和控制器之間有一對一的映射。在本系統(tǒng)中,對應(yīng)于每一個用于顯示頁面的JSP文件都有一個控制器與之對應(yīng)。該控制器也是用JSP文件表示。比如對應(yīng)register.jsp就有rgistercontrollerjsp.

由此可以看出,該系統(tǒng)的體系結(jié)構(gòu)并不是單一的,三層Web體系結(jié)構(gòu)與MVC結(jié)構(gòu)模型相結(jié)合,體現(xiàn)出軟件體系結(jié)構(gòu)的一種異構(gòu)性,也就是說,該系統(tǒng)的體系結(jié)構(gòu)屬于異構(gòu)體系結(jié)構(gòu)的類型。

2.3 需求模型

本在線投稿系統(tǒng)主要由三個基本模塊構(gòu)成,分別是用戶模塊,編輯模塊和專家模塊。前臺的用戶可以在線投遞,并能在第一時間內(nèi)查看通知;后臺編輯和管理員則可在線閱讀、審批來稿,從而實現(xiàn)投稿、采編、發(fā)布一體化。

本文以用戶模塊為例,構(gòu)建出用戶的需求模型如圖3所示。第一次投稿前用戶必須先注冊登記,然后使用注冊成功的帳號和密碼進(jìn)行登陸,進(jìn)入用戶界面。在用戶界面中提供了在線投稿、查看個人發(fā)表的歷史稿件、查看當(dāng)前稿件、查看個人資料等服務(wù)。

在查看當(dāng)前稿件的過程中,如果專家已經(jīng)評審,則可以查看評審內(nèi)容。如果有修改的權(quán)限(比如用戶剛投稿,編輯還未分配給專家評;或者專家要求用戶修改其稿件);查看歷史稿件包括查看該稿件是否錄用,以及錄用時間;修改稿件將更新原來在服務(wù)器上的對應(yīng)文件。

2.4 功能模型

系統(tǒng)服務(wù)層次模型如圖4所示。本系統(tǒng)中用了大量的JSP文件來用于表示服務(wù),控制服務(wù)也是采用了JSP文件來實現(xiàn)。業(yè)務(wù)邏輯服務(wù)采用JAVABEAN來實現(xiàn)。數(shù)據(jù)訪問服務(wù)使用了一個Bean——DBHandler.java,專門與數(shù)據(jù)庫交互,包括與數(shù)據(jù)庫的連接,查詢等。而其上層服務(wù)通過傳遞SQL參數(shù)給它來實現(xiàn)數(shù)據(jù)庫操作。本系統(tǒng)中數(shù)據(jù)庫采用的Microsoft的Access數(shù)據(jù)庫。

所有的JSP與JavaBean都將被配置在應(yīng)用服務(wù)器,實現(xiàn)表示服務(wù),控制服務(wù)和業(yè)務(wù)邏輯服務(wù),數(shù)據(jù)庫則配置在數(shù)據(jù)庫服務(wù)器上。如圖5所示。由于本系統(tǒng)相對來說比較簡單,所以不用再將前幾個服務(wù)分層??蛻舳说闹饕饔檬菫g覽,用于表示服務(wù)的JSP文件也被放在應(yīng)用服務(wù)器上。

2.5 框架模型

本系統(tǒng)的子系統(tǒng)框架模型如圖6所示,包括用戶投稿子系統(tǒng)模塊,編輯子系統(tǒng)模塊和專家子系統(tǒng)模塊。以用戶在線投稿模塊這一實例說明MVC框架的實現(xiàn),如圖7所示。MVC框架中的控制器是最常用的作為模型和視圖之間的服務(wù)中介。在視圖和控制器之間有一對一的映射。因此,在線投稿子系統(tǒng)中,對應(yīng)于我們每一個用于表示的JSP對象都有一個JSP控制器與之對應(yīng)(如叩loadcontroller.jsp,xiugailunwencontroller.jsp),用戶接口控制器直接與表示頁面交互。讓控制器作為視圖和模型之間的代理,能夠使得用戶接口清晰。雖然有時不可避免用戶接口直接進(jìn)入實體類中檢索信息,但是通過保持表示層的相對無關(guān)聯(lián),我們最終會使得服務(wù)層高度內(nèi)聚,使其和其他服務(wù)層的耦合減少。

2.6 結(jié)構(gòu)模型

圖8是本系統(tǒng)各實體類的主要關(guān)系模型。主要的類有“User”(用戶),“ Article”(文章),“Editor”(編輯),“Expert”(專家),“DBHandler”(數(shù)據(jù)訪問)?!癠ser”與“Article”之間存在關(guān)聯(lián),其兩端多重性標(biāo)記表示一個用戶可以投零篇或多篇文章。Editor與Expert是User的泛化。User與Article類都使用DBHandler類來與數(shù)據(jù)庫交互。

圖9是用戶投稿實例的類圖,可以非常清楚地看到涉及的類。User首先將基本信息顯示到zaixiantougao.jsp的頁面上,然后zaixiantougao.jsp與uploadcontroller.jsp,Articlejava,以及DBHandler.java逐層交互,文件上傳并修改數(shù)據(jù)庫。限于篇幅,此處其他的實例的類圖不——列出。

2.7 動態(tài)模型

可用LYME順序圖進(jìn)一步對以上的概要設(shè)計細(xì)化。如圖10所示,是在線投稿子例子的順序圖Uploadcontroller.jsp調(diào)用Article類的articledb()方法,主要就是用于文件上傳,以及修改數(shù)據(jù)庫中的article表和submitarticle表。

圖11是修改稿件子例的協(xié)作圖。與在線投稿的流程類似,通過調(diào)用DBHandler類的conn()方法與數(shù)據(jù)庫建立連接,調(diào)用execute()方法來對數(shù)據(jù)庫進(jìn)行操作。

3 系統(tǒng)實現(xiàn)

目前,Jsp技術(shù)作為一個很好的動態(tài)網(wǎng)站開發(fā)語言得到了越來越廣泛的應(yīng)用,在各類Jsp應(yīng)用程序中,Jsp與JavaBean的組合成為了一種事實上最常見的Jsp程序的標(biāo)準(zhǔn),這也是本系統(tǒng)的主要技術(shù)。JavaBean在Jsp程序中用來封裝事務(wù)邏輯、數(shù)據(jù)庫操作等等,可以很好地實現(xiàn)業(yè)務(wù)邏輯和前臺程序(如jsp文件)的分離,使得系統(tǒng)具有更好的健壯性和靈活性。本系統(tǒng)中文件上傳采用了組件技術(shù),已經(jīng)封裝了各種方法。

本系統(tǒng)數(shù)據(jù)庫模型中主要建立了六張表:articles,submitarticles,articletype,comments,expert,user.用戶模塊與其中的大部分表相關(guān),限于篇幅,不再列出。系統(tǒng)主要界面如圖12所示。

4 結(jié)束語

本系統(tǒng)基于Web架構(gòu)實現(xiàn),由于采用了軟件體系結(jié)構(gòu)建模的開發(fā)方法,其開發(fā)過程更加高效和正確,其功能擴(kuò)展容易、與已有系統(tǒng)集成方便,具有跨平臺、易維護(hù)、易用等特點。

參考文獻(xiàn)

[1]麥中凡,戴彩霞.軟件體系結(jié)構(gòu)的概念[J].計算機(jī)工程與應(yīng)用,2001(11).

[2]梅宏,申峻嶸.軟件體系結(jié)構(gòu)研究進(jìn)展[J].軟件學(xué)報,2006(06).

[3][美]羅夫著,張瑜等譯.UML基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2004(03).

[4]司飚.MVC模式下的考試系統(tǒng)建模研究[J].計算機(jī)科學(xué),2013(S1).

[5]李志,賈克斌等.基于.NET MVC架構(gòu)的網(wǎng)上珠寶銷售系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機(jī)應(yīng)用與軟件,2013(03).

[6]馮纓.JSP-JavaBean開發(fā)模式研究及在網(wǎng)上答題系統(tǒng)中的應(yīng)用[J].計算機(jī)工程與設(shè)計,2006(05).

猜你喜歡
軟件工程
應(yīng)用瀑布模型的MOOC制作方法
融合APTECH體系的軟件產(chǎn)業(yè)人才培養(yǎng)探究
關(guān)于如何創(chuàng)新和完善計算機(jī)軟件工程管理的探討
兴山县| 克东县| 博湖县| 衢州市| 游戏| 武陟县| 霞浦县| 四川省| 五常市| 永宁县| 双辽市| 大丰市| 郁南县| 元朗区| 南木林县| 金溪县| 阳高县| 江阴市| 潞城市| 华池县| 聂荣县| 南漳县| 南开区| 台山市| 屯昌县| 息烽县| 乌审旗| 阳新县| 青浦区| 博白县| 凤山市| 汾西县| 罗江县| 临汾市| 邵武市| 资中县| 山丹县| 鄂托克旗| 额尔古纳市| 巫溪县| 高要市|