APP下载

基于UML的在线投稿系统的设计与实现

2018-02-28刘艳

电子技术与软件工程 2018年21期
关键词:软件工程

刘艳

摘要

随着软件工程及软件体系结构的发展,软件体系结构建模成为软件开发的必要部分。本文以一个在线投稿系统为例,使用UML对系统进行体系结构建模,并使用JSP、JavaBean等技术进行开发。

【关键词】UML 软件工程 软件体系结构 JSP

1 引言

随着软件工程的深入发展,软件体系结构设计已经成为直接影响软件开发的关键因素。而软件体系结构建模是软件体系结构设计中的重要组成部分,是否能够对软件体系结构模型进行精确的描述,决定了软件系统开发的效率和成败。对于软件的建模,我们可以使用统一建模语言UML。UML是一种基于面向对象的可视化建模语言,它提供了丰富的视图来描述系统的不同侧面,可以有效地进行系统建模、分析和设计。

本文以一个在线投稿系统为例,该系统根据基于Internet实现了在线投稿和审稿功能,解决了编辑部繁杂、低效的问题。采用可视化建模工具Rational Rose并利用LJML建立其體系结构模型。并采用JSP、JavaBean技术在建模的基础上实现了该在线投稿系统。

2 基于UML的体系结构建模

本文对系统的基本体系结构进行描述,其次进行了概要设计,绘制出其需求模型,数据库模型,功能模型,框架模型,进而进行更加详细的设计,建立了结构模型和动态模型。

2.1 基于Web的三层体系结构

本系统作为一个基于Internet和Web的系统,要求能够安全及时地服务大量的客户端用户,又能够长时间安全稳定地运行所以要求其具有一种良好体系结构。因此我们采用三层体系结构,如图1所示。

服务器端由Web服务器和数据库服务器构成,这是当前应用比较多的一种结构模式,可以将要发布信息分类保存到数据库服务器,然后通过应用程序或脚本程序根据用户请求提取相应的信息,这种模式克服了单一Web服务器只能发布静态内容的缺点,由于增加了后台数据库的支持,在Web Server中通过应用程序的支持,就可以给用户提供动态的信息服务,通过定制页面模板,添加到后台数据库的信息可即时发布到请求的客户,因而也就保证了信息的时效性。这种模式对编程人员的素质要求不是很高,并且开发周期快,适用于企业内部的INTRANET或一些访问量不大的中小网站,不用再添加一些中间层的应用服务器了。

2.2 MVC体系结构模型

本系统采用了MVC(视图、模型、控制器)模型,该模型把一个应用的输入、处理、输出流程按照Model、View、Controller(视图、模型、控制器)的方式进行分离,如图2所示。模型封装内核数据与状态,视图从模型获取数据,用户输入的数据通过控制器与系统交互。

在本系统的实现过程中,采用了JSP以及JAVABEAN的技术, MVC模型与该实现技术的进一步说明如下:

(1)MVC中的Model(模型)对应于JAVABEAN。比如用户类userjava,它主要用于获取用户信息以及与数据库交互。在我们的应用程序中,模型是通过Bean包里的各个Bean表示的。

(2)MVC框架中的View(视图)是将要发布给客户端的接口。视图了解控制器和模型。在我们的应用程序中,视图是通过WEB模块中的一些JSP页面来表示,比如用于注册的register.jsp。

(3)MVC框架中的Controller(控制器)是最常用的作为模型和视图之间的服务中介。在视图和控制器之间有一对一的映射。在本系统中,对应于每一个用于显示页面的JSP文件都有一个控制器与之对应。该控制器也是用JSP文件表示。比如对应register.jsp就有rgistercontrollerjsp.

由此可以看出,该系统的体系结构并不是单一的,三层Web体系结构与MVC结构模型相结合,体现出软件体系结构的一种异构性,也就是说,该系统的体系结构属于异构体系结构的类型。

2.3 需求模型

本在线投稿系统主要由三个基本模块构成,分别是用户模块,编辑模块和专家模块。前台的用户可以在线投递,并能在第一时间内查看通知;后台编辑和管理员则可在线阅读、审批来稿,从而实现投稿、采编、发布一体化。

本文以用户模块为例,构建出用户的需求模型如图3所示。第一次投稿前用户必须先注册登记,然后使用注册成功的帐号和密码进行登陆,进入用户界面。在用户界面中提供了在线投稿、查看个人发表的历史稿件、查看当前稿件、查看个人资料等服务。

在查看当前稿件的过程中,如果专家已经评审,则可以查看评审内容。如果有修改的权限(比如用户刚投稿,编辑还未分配给专家评;或者专家要求用户修改其稿件);查看历史稿件包括查看该稿件是否录用,以及录用时间;修改稿件将更新原来在服务器上的对应文件。

2.4 功能模型

系统服务层次模型如图4所示。本系统中用了大量的JSP文件来用于表示服务,控制服务也是采用了JSP文件来实现。业务逻辑服务采用JAVABEAN来实现。数据访问服务使用了一个Bean——DBHandler.java,专门与数据库交互,包括与数据库的连接,查询等。而其上层服务通过传递SQL参数给它来实现数据库操作。本系统中数据库采用的Microsoft的Access数据库。

所有的JSP与JavaBean都将被配置在应用服务器,实现表示服务,控制服务和业务逻辑服务,数据库则配置在数据库服务器上。如图5所示。由于本系统相对来说比较简单,所以不用再将前几个服务分层。客户端的主要作用是浏览,用于表示服务的JSP文件也被放在应用服务器上。

2.5 框架模型

本系统的子系统框架模型如图6所示,包括用户投稿子系统模块,编辑子系统模块和专家子系统模块。以用户在线投稿模块这一实例说明MVC框架的实现,如图7所示。MVC框架中的控制器是最常用的作为模型和视图之间的服务中介。在视图和控制器之间有一对一的映射。因此,在线投稿子系统中,对应于我们每一个用于表示的JSP对象都有一个JSP控制器与之对应(如叩loadcontroller.jsp,xiugailunwencontroller.jsp),用户接口控制器直接与表示页面交互。让控制器作为视图和模型之间的代理,能够使得用户接口清晰。虽然有时不可避免用户接口直接进入实体类中检索信息,但是通过保持表示层的相对无关联,我们最终会使得服务层高度内聚,使其和其他服务层的耦合减少。

2.6 结构模型

图8是本系统各实体类的主要关系模型。主要的类有“User”(用户),“ Article”(文章),“Editor”(编辑),“Expert”(专家),“DBHandler”(数据访问)。“User”与“Article”之间存在关联,其两端多重性标记表示一个用户可以投零篇或多篇文章。Editor与Expert是User的泛化。User与Article类都使用DBHandler类来与数据库交互。

图9是用户投稿实例的类图,可以非常清楚地看到涉及的类。User首先将基本信息显示到zaixiantougao.jsp的页面上,然后zaixiantougao.jsp与uploadcontroller.jsp,Articlejava,以及DBHandler.java逐层交互,文件上传并修改数据库。限于篇幅,此处其他的实例的类图不——列出。

2.7 动态模型

可用LYME顺序图进一步对以上的概要设计细化。如图10所示,是在线投稿子例子的顺序图Uploadcontroller.jsp调用Article类的articledb()方法,主要就是用于文件上传,以及修改数据库中的article表和submitarticle表。

图11是修改稿件子例的协作图。与在线投稿的流程类似,通过调用DBHandler类的conn()方法与数据库建立连接,调用execute()方法来对数据库进行操作。

3 系统实现

目前,Jsp技术作为一个很好的动态网站开发语言得到了越来越广泛的应用,在各类Jsp应用程序中,Jsp与JavaBean的组合成为了一种事实上最常见的Jsp程序的標准,这也是本系统的主要技术。JavaBean在Jsp程序中用来封装事务逻辑、数据库操作等等,可以很好地实现业务逻辑和前台程序(如jsp文件)的分离,使得系统具有更好的健壮性和灵活性。本系统中文件上传采用了组件技术,已经封装了各种方法。

本系统数据库模型中主要建立了六张表:articles,submitarticles,articletype,comments,expert,user.用户模块与其中的大部分表相关,限于篇幅,不再列出。系统主要界面如图12所示。

4 结束语

本系统基于Web架构实现,由于采用了软件体系结构建模的开发方法,其开发过程更加高效和正确,其功能扩展容易、与已有系统集成方便,具有跨平台、易维护、易用等特点。

参考文献

[1]麦中凡,戴彩霞.软件体系结构的概念[J].计算机工程与应用,2001(11).

[2]梅宏,申峻嵘.软件体系结构研究进展[J].软件学报,2006(06).

[3][美]罗夫著,张瑜等译.UML基础教程[M].北京:清华大学出版社,2004(03).

[4]司飚.MVC模式下的考试系统建模研究[J].计算机科学,2013(S1).

[5]李志,贾克斌等.基于.NET MVC架构的网上珠宝销售系统的设计与实现[J].计算机应用与软件,2013(03).

[6]冯缨.JSP-JavaBean开发模式研究及在网上答题系统中的应用[J].计算机工程与设计,2006(05).

猜你喜欢

软件工程
应用瀑布模型的MOOC制作方法
融合APTECH体系的软件产业人才培养探究
关于如何创新和完善计算机软件工程管理的探讨