基于struts架框的AMSystem系统设计

来源 :硅谷 | 被引量 : 0次 | 上传用户:shewe111
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]软件复用是在软件开发中避免重复劳动的解决方案。通过软件复用,可以提高软件开发的效率和质量。软件复用被视为解决软件危机,提高软件生产效率和质量的现实可行的途径。主要研究以日本一家中型自动售货连锁店信息管理系统中总部业务管理子系统(AMSystem)为背景,探讨在struts框架下,MVC Model2设计模式在系统中的实现,并在此基础上对系统中通用性功能进行抽象,设计并实现这些通用性组件,以方便各个模块开发人员复用,提高开发效率和产品质量。
  [关键词]软件复用 struts框架 组件 log4j
  中图分类号:TP311.52 文献标识码:A 文章编号:1671-7597(2008)1110065-02
  
  一、引言
  
  项目开发背景是应用于日本一家中型自动售货连锁店信息管理系统,系统的功能是实现该自动售货连锁店日常经营活动的管理以及财务管理。它分为如下三个子系统:总部业务管理子系统、店铺业务管理子系统以及财务管理子系统。AMSystem是该系统的核心子系统总部业务管理子系统的英文名称。本论文以下的讨论也是基于此子系统来展开的。
  该连锁店公司下属各店铺分布于日本全国各大中城市,主要通过各种自动售货机或游戏机销售各种小型商品,每年销售额大约二百多亿日元,员工两百多人。各个分店在总部的统一管理下,按相同模式统一经营管理。
  
  二、AMSystem系统功能性需求分析
  
  AMSystem系统分为五个模块:基础数据维护模块、商品管理模块、售货机管理模块、预算和库存盘点业务模块和批处理业务模块。系统结构图如图1所示,各个模块的功能如下所述。
  


  (一)基础数据维护模块
  在AMSystem系统中各店铺、供应商及商品的信息数据相对稳定,需要对其进行修改或新增需要一定级别的人员才能有权操作,比如部门经理等。这些数据是系统管理的基础,其它模块的运行都依赖于这些基础数据。该模块实现对这些基础数据的维护,比如增加、删除、修改等等。该模块还完成对系统的日常维护管理。
  (二)商品管理模块
  实现总部对连锁店所销售的商品的业务管理。主要完成以下功能:总部接受到各店铺(包括总部)的订货请求后形成订货申请书(总部有权修改订货数据),获得批准后向供应商发出订货请求,商品入库验收形成入库单、出库配送向各分店配送商品。总部根据店铺业务子系统上传的订货需求,自动生成订货申请书经批准后向供应商发出订货请求。总部根据库存商品及各店铺前一段时间的销售情况,自动将库存商品配送到各店铺。
  (三)售货机管理模块
  该连锁店主要通过两种途径来销售商品。一种就是通过自动售货机来销售各种小型商品;另一种就是通过游戏机,在娱乐中销售毛绒玩具类的小型商品。该模块实现自动售货机(包括游戏机)的购买、转移、报废、出售的整个生命周期的业务管理。
  (四)预算和盘点业务分系统
  完成商品的每周库存盘点,每月财务预算功能。完成售货机的固定资产管理,财务预算功能。并且生成财务系统所需的特定格式的数据文件。
  (五)批处理业务分系统
  实现与外系统的通讯。主要是与运行于AS/400中的财务系统,店铺业务系统之间的通讯。该类操作在日常办公业务处理完成后,通常在夜间采用批处理方式完成作。
  
  三、系统技术背景
  
  (一)基于复用的软件开发思想
  随着软件规模的不断扩大,人们对软件生产效率和软件质量的要求越来越高。目前,软件复用是提高软件生产效率和软件质量的现实可行的途径。软件复用的思想最早是在1968 年NATO 的软件过程会议上提出的。软件复用是指重复使用“为了复用而设计软件”的过程,目的是在软件开发中将已有的软件成分用于构造新的软件系统,避免重复劳动。
  软件复用不仅仅是对程序的复用,它还包括对软件生产过程中任何活动所产生的结果的复用。目前最有可能产生显著效益的复用是对软件生命周期中一些主要开发阶段的软件制品的复用,按抽象程度的高低,可以划分为:(a)代码复用;(b)设计复用;(c)分析复用;(d)测试信息复用等。大部分软件的生产过程是使软件产品从抽象级别较高的形态向抽象级别较低的形态演化,较高级别的复用容易带动较低级别的复用,因而复用的级别越高,可得到的回报也越大。
  (二)Struts框架简介
  Struts是一个免费的Open Source的J2EE Web层的应用架构,它继承了MVC的各项特性,包括框架类、帮助类和定制的JSP标签库,以及所有基于J2EE Model2设计模式的应用技术。Struts框架的应用使系统支持增量式开发,具有良好的可扩展性。它还有助于提高代码的可重用性和灵活性,可以大大提高WEB应用的开发速度。通过将问题划分为更小的组件,当技术空间或问题空间中出现变化时,就有更多的机会重用代码。此外,Struts 使网页设计人员和 Java 开发人员能将精力集中于自己最擅长的方面。
  
  四、AMSystem系统架构设计
  
  (一)AMSystem系统架构
  根据基于软件复用的开发思想及struts框架的应用,设计出系统架构如图2所示。系统逻辑上分成四个层次:客户端、Web服务器、应用服务器和数据库服务器。客户端主要负责人机交互,通常由一组JSP文件构成;Web服务器主要负责对客户端访问请求的集中授理和信息发布,接收HTTP请求信息,然后再调用相应的业务逻辑,控制器是由ActionServlet实现的;应用服务器主要负责应用逻辑程序的集中管理,即事务处理,可以根据其处理的具体业务不同而分为多个;数据服务器主要负责数据的存储和组织、数据库的分布式管理、数据库的备份和同步等。
  在实际应用中,我们在系统的业务处理逻辑中抽取其中公共的功能,比如日志操作、权限判断和数据检验等等,这些都是几乎在每个模块的实现中都需要的功能。这些通用功能归类到一起,形成一个逻辑上的通用模块。这也是我们后面将要提到的通用性组件的基础。
  


  1.客户端Browser通过Browser发出请求。
  2.Controller(在本系统中是ActionServlet)把请求转发至Model(在本系统中由ActionForm和Java Bean组成),调用相应的业务处理逻辑。
  3.Model调用Uitl模块,发送用户信息操作信息,进行业务处理前操作。
  4.Uitl(由日志操作、数据校验等通用组件组成)进行访问前的日志操作。这里的日志主要是指用户登录的日志信息,在AMSystem系统中每一步业务处理中或异常情况发生时都有日志信息输出。
  5.Uitl进行业务种别判断。在AMSystem中业务种别分为日常办公和批处理。在白天办公时间不可以进行批处理业务,在夜间进行批处理业务时不可以进行办公操作。
  6.用户权限判断。
  7.Uitl返回业务种别和权限判断结果。
  8.Model向Util传递表单数据。
  9.表单数据的正准确性检验。
  10.返回表单数据校验结果。
  11.Model进行相应的业务处理。
  12.Model调用Util模块,发送用户的会话和操作信息,进行业务处理后操作。
  13.Util进行访问后的日志操作。这里的日志主要是指用户退出系统的日志信息,在AMSystem系统中每一步业务处理中或异常情况发生时都有日志信息输出。
  14.Util返回操作结果。
  15.Model将操作得到的结果集以及将要跳转的页面返回给Controller。
  16.Controller将结果集转发至相应的View(由一系列JSP文件组成)。
  17.生成相应的HTML页面并返回客户端浏览器进行显示。
  
  五、软件复用技术在AMSystem中的运用
  
  在AMSystem项目开发中我们也遵循着软件复用的开发思想。首先尽可能地复用现有的软件成果。主要就复用在技术上已经成熟的开源软件,比如:1. 在架构上采用struts框架,Struts是当非常流行的java web应用框架,它可以大大提高WEB应用的开发速度。2. 在日志输出组件的实现中我们采用了log4J日志操作包,log4J是目前最灵活,通用性最好的日志输出软件包,我们在log4J的基础上开发出适合于本系统的日志输出组件。3. 数据库操作组件的实现中我们采用了开源项目org.apache.commons.dbutils
  组件,这一组件的使用我们在进行数据操作的代码量大为减少。其次,自行开发本系统的通用性组件。在AMSystem系统的开发中运用软件复用的思想对系统需求进行分析,提取出系统中的通用性功能并进行分类,在系统架构的基础上设计并实现这些通用性组件,以方便各个模块开发人员的复用,提高开发效率和产品质量。
  
  六、总结
  
  AMSystem系统项目从最初的详细设计到最终的产品交付,只有短短的六个多月的时间,在这六个多月的时间里要完成详细设计、代码编写、测试用例设计、单元测试、集成测试的整个过程。为了在这么短的时间里能交付出满足用户要求的产品,最好的办法就是尽可能的采用软件复用技术,经过讨论我们确定了复用方案。首先在架构上我们采用struts框架这一开源项目,节省了大量框架设计时间,同时我们在一功能性的设计上也尽可能复用当前流行的开源软件,比如日志输出组件Log4J和数据库操作上复用org.apache.commons.dbutils组件等。另外一个最重要的措施是我们在系统中分析提炼出本系统的通用功能,形成通用性组件,以提供给各个模块去复用。我们在项目的设计阶段,根据系统模块划分将开发人员分成四个小组,同时每个小组抽出一人再组成一个通用模块组,各个小组长定期由项目经理召集在一起开会,并由各个小组向项目经理提出通用功能,经讨论通过后提交给通用模块组设计。通用模块组在设计完以后,会马上进行编码实现并测试。这样保证各个模块的开发人员在需要复用通用模块的时候,能有东西可以复用。正是由于我们采用了软件复用技术,尤其是这些通用模块的复用,才保证了能在规定的时间里按质按量向客户交付产品,同时也大大减少了程序中的代码冗余,提高了我们的开发效率,提高了系统的质量和可维护性。
  本文是作者根据自己的实际工作对AMSystem系统中通用性组件的分析与总结,尤其是重点论述了该系统中最重要也是复用率最高的两类组通用性组件即日志输出组件和数据库操作组件的设计与实现。
  
  参考文献:
  [1]杨芙清,梅宏,吕建,金芝 浅论软件技术发展.电子学报.2002.30(12A):1901-1906.
  [2]杨芙清,软件复用及相关技术.计算机科学 1999.26(5)1-4.
  [3]王千祥,应用服务器原理与实现.电子工业出版社.2003年.
  [4]冯汉平、何踊跃、吴琢琼,通用数据库操作模块的设计与实现.计算机工程 1999年第10期.
  [5]肖文、尹建伟、陈刚、董金祥,基于J2EE的日志管理中间件的设计和实现.计算机应用研究.2004年第10期.
  作者简介:
  徐义晗,男,汉族,安徽安庆人,讲师,主要研究方向:软件复用,软件构件技术。
其他文献
[摘要]kelk测宽仪是邯钢CSP生产线精轧机出口带钢在线检测设备之一,能够测量轧制带钢的宽度、宽度偏差、中心线偏差等。在其运行期间也出现了不少故障率。根据多年的现场经验,对该设备的概况和在CSP的使用情况进行了总结。  [关键词]C965A型 扫描器 边缘处理器  中图分类号:TH7 文献标识码:A 文章编号:1671-7597(2008)1010144-01    一、引言    邯钢CSP生
期刊
[摘要]电荷耦合器件(CCD)的应用前景广阔,其新技术的发展与研究也非常迅速。介绍几种特殊结构的CCD,分析它们的创新之处以及对CCD性能的改善,并分别对超级CCD(SuperCCD)的八角型二极管阵列与传统的CCD感光单元结构,FOVEON X3全色彩影像感测芯片与传统的RGB三原色CCD作了比较分析。  [关键词]特殊结构CCD 电子倍增CCD 超级CCD FOVEON X3多层感光CCD  
期刊
[摘要]如何利用现代化的手段,提高消防部队的科技含量,确保系统正常运行已成为消防管理者面前的一个重大课题。简要介绍VSAT技术及其在消防通信指挥系统中的应用。  [关键词]VSAT 卫星 消防通信指挥系统  中图分类号:TN91 文献标识码:A 文章编号:1671-7597(2008)1010137-01    一、引言    随着社会经济的发展,消防部队灭火救援形势逐步严峻,如何保障消防通信指挥
期刊
[摘要]数字印刷是一个完全数字化的生产流程,体现了最新的计算机技术与印刷技术。数字印刷的过程是从计算机直接到印版,即直接制版(CTP)技术。直接制版技术省却了许多工艺过程,缩短了印刷周期,提高了生产的自动化程度,给印刷界带来了革命性的变革。在直接制版系统中,光栅图像处理器(RIP)是一个非常重要的技术,它对于提高CTP的性能有很大的影响。  [关键词]数字印刷 直接制版(CTP)光栅图像处理器(R
期刊
[摘要]Oracle作为强大的数据库管理系统,被应用到生产和实践的各个领域。介绍以Oracle为后台,结合SQL技术的试验设计管理系统的数学原理,并详细叙述开发过程中碰到的负载平衡问题和数据交换问题及解决办法。  [关键词]试验设计 Oracle数据库系统 数据交换  中图分类号:TP31 文献标识码:A 文章编号:1671-7597(2008)1010146-01    一、引言    试验设计
期刊
[摘要]C语言作为一门专业基础课和程序设计的入门语言,概念多、抽象、难学,从教学语言、内容和方式等方面,以提高C语言的趣味性进行相应的探讨。  [关键词]C语言 教学现状 趣味教学 多媒体  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)1110054-01    C语言自1972年问世以来,因其功能强大、使用灵活、可移植性好、能对硬件直接操作,既有高级语言的特点,又
期刊
[摘要]分析EPON的工作原理,总结EPON接入网的常见故障,并给出解决方案。  [关键词]EPON OLT ONU 故障   中图分类号:TP3文献标识码:A 文章编号:1671-7597(2008)1110045-01    一、EPON的主要原理分析    EPON传输体系主要由OLT,ONU,分光器组成。  OLT是光线路单元,放在局端机房,实现业务的聚合和下发;  ONU是光网络单元,放
期刊
[摘要]办公自动化系统在机关事业单位应用非常广泛,公文处理留痕是一个较为关键的技术问题,对基于Lotus Domino的办公自动化系统的公文留痕处理的各种方法进行比较分析,并提出了自己的解决方法。  [关键词]办公自动化 公文留痕 Lotus Domino 控件  中图分类号:TP3文献标识码:A 文章编号:1671-7597(2008)1110049-02    一、引言    办公自动化系统(
期刊
[摘要]随着Internet的普及,越来越多的企事业单位建立了自己的WWW网站,单位通过网站可以展示产品,发布最新动态,与用户进行交流和沟通,与合作伙伴建立联系,以及开展电子商务等。与此同时,企事业单位内部也建立了功能完善的办公自动化系统,可以快速的实现传统办公无法实现的功能。现今,包括政府部门、事业单位、学校等单位大多都建立了具有自身特色的办公自动化系统。所以作为设计人员,笔者认为有必要在开发系
期刊
[摘要]传统网络程序的开发是基于页面的、服务器端数据传递的模式,把网络程序的表现层建立于HTML页面之上,而HTML是适合于文本的,传统的基于页面的系统已经渐渐不能满足网络浏览者的更高的、全方位的体验要求了。而富互联网应用(Rich Internet Applications,缩写为RIA)的出现就是为了解决这个问题。主要探讨在Web2.0标准下,如何使用Adobe Flex 3构建富互联网应用程
期刊