• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

    劉艷

    摘要

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

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

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

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

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

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

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

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

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

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

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

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

    (3)MVC框架中的Controller(控制器)是最常用的作為模型和視圖之間的服務(wù)中介。在視圖和控制器之間有一對(duì)一的映射。在本系統(tǒng)中,對(duì)應(yīng)于每一個(gè)用于顯示頁(yè)面的JSP文件都有一個(gè)控制器與之對(duì)應(yīng)。該控制器也是用JSP文件表示。比如對(duì)應(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è)基本模塊構(gòu)成,分別是用戶模塊,編輯模塊和專家模塊。前臺(tái)的用戶可以在線投遞,并能在第一時(shí)間內(nèi)查看通知;后臺(tái)編輯和管理員則可在線閱讀、審批來稿,從而實(shí)現(xiàn)投稿、采編、發(fā)布一體化。

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

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

    2.4 功能模型

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

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

    2.5 框架模型

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

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

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

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

    2.7 動(dòng)態(tài)模型

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

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

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

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

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

    4 結(jié)束語(yǔ)

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

    參考文獻(xiàn)

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

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

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

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

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

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

    猜你喜歡
    軟件工程
    依托工作室的軟件工程實(shí)踐教學(xué)研究
    應(yīng)用瀑布模型的MOOC制作方法
    融合APTECH體系的軟件產(chǎn)業(yè)人才培養(yǎng)探究
    基于工程教育認(rèn)證的《軟件工程》課程教學(xué)質(zhì)量建設(shè)研究 
    關(guān)于提高軟件工程實(shí)踐教學(xué)質(zhì)量的幾點(diǎn)思考
    關(guān)于如何創(chuàng)新和完善計(jì)算機(jī)軟件工程管理的探討
    遂宁市| 沙坪坝区| 简阳市| 攀枝花市| 茂名市| 河北区| 永川市| 辉南县| 定陶县| 荃湾区| 宝应县| 宜章县| 锡林郭勒盟| 长子县| 黔西| 福贡县| 马关县| 松原市| 巢湖市| 正宁县| 新昌县| 柳州市| 体育| 天峨县| 陆丰市| 鄯善县| 普洱| 砚山县| 永城市| 木里| 尖扎县| 密云县| 武宁县| 昌图县| 房产| 大同市| 宿迁市| 松滋市| 镇雄县| 英超| 天柱县|