科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道软件复用技术在产品开发中的实践

软件复用技术在产品开发中的实践

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

软件复用是当前软件开发研究的重点,本文针对电子政务领域产品的开发过程中的复用策略与方法从系统分析设计到编码各阶段讨论了软件的领域复用与层次复用等方面的问题。

来源:希赛网 2008年4月21日

关键字: 实践 中间件 开发 软件重用

  • 评论
  • 分享微博
  • 分享邮件

  摘要:软件复用是当前软件开发研究的重点,本文针对电子政务领域产品的开发过程中的复用策略与方法从系统分析设计到编码各阶段讨论了软件的领域复用与层次复用等方面的问题。

  关键词:电子政务、软件复用、领域架构、层次架构、可复用组织

  随着信息化技术的发展普及,电子化公文管理成为政府机关的一个战略性课题。为了进一步推动政府信息化的建设,必须进一步研究和开发适应新时代的基于Internet和Intranet的公文管理系统,以提高机关公文办理效率,提升政府绩效。正是在这一市场机遇下,我们研究开发了公文管理系统产品-DocMan公文管理系统(以下简称:DocMan)并取得了良好的市场效果。

  DocMan公文管理系统是面向政府机关的公文处理系统,是电子政务的主要组成部;因此,DocMan和其他电子政务子系统一样存在跨平台、分布、异构以及对原有应用系统进行整合的问题。为了面对各类机关的应用需要,DocMan公文管理系统,采用了多层B/S架构(客户端浏览器层、Web服务器层、应用服务器层、数据库层)、并采用了J2EE及EJB技术实现系统的分布异构及跨平台。为了满足各类机关的需要,DocMan对流行操作系统(Win32系列,Unix系列,linux系列)、Web服务器(Tomcat4.0,IBM WebSphere4.0,BEA WebLogic 5.0)以及数据库管理系统(Oracle ,SQL Server , Sybase,Infomix,DB2等)都给予支持。在考虑大型机关应用时,我们选用了代理服务器、多并行Web服务器及多应用服务器技术实现系统的负载均衡和流量管理。由于当前分布式数据库的应用不够成熟,DocMan采用了集中式数据库技术实现机关数据的存储。

  现就我们在开发DocMan产品时遇到的有关软件复用方面的问题、解决方法以及实现策略介绍如下。

  一、需求重用

  1 企业产品领域的定位

  随着政府上网工程的推进,电子政府与电子政务正逐步走向成熟;并给软件行业带来了新的业务领域,而我们所开发的公文管理系统只是电子政务的一小部分;因此我们公司将业务定位于电子政务行业。电子政务需要的软件产品众多,而公文管理系统可以看作是政府办公自动化软件的一个子系统,在公文管理系统开发完成后,我们将进一步开发政府办公所需的其他软件子系统,逐步为政府行业的应用提供全套的解决方案。

  2 领域工程核心的识别与抽取

  在产品领域定位的指导下,我们经过深入的分析调研,发现所有的事务型系统都有一个共同的特征:工作流程。在ISO9000中也规定任何组织的事务处理必须有标准,规范的工作流程。(在ISO9000中为了实现ISO9000规定的20个质量要素,必须制定相应的体系文件。这个体系文件分为3层:第一层质量手册,制定组织的质量方针、目标;第二层工作程序,制定为了实现质量目标所定义的工作程序即工作流程;第三层表单,制定了在工作程序运行过程所用的表单。)在系统分析时,可以将这些业务工作流程抽象出来,如公文管理中的收文流程、发文流程、归档流程、稽催流程、档案管理流程等;另在非公文管理的其他的业务中也可以抽取流程如:车辆管理业务流程、会议室管理流程、请假加班流程等等。因此,我们可以建立一个工作流平台,使所有的业务流程只要在工作流平台中进行定义就可以运作。从而实现"零代码编写的理想目标"。

  3 产品非业务性需求分析

  一般的应用软件产品除了完成业务所需要的功能外,还必须有一些支持模块,以支持系统的正常运行。这些模块通常包括:组织管理模块和系统支持模块。组织管理是机关业务得以正常运作的基础,这对于每一个电子政务领域内的应用系统来说都是必不可少的。通常系统支持模块是为了软件系统的正常运作所提供的必不可少的功能,如系统权限管理、日志管理、数据库备份/恢复功能等都属于此类。所有的这些都可以作为我司系列软件产品的公共模块加以复用。

  4 产品界面风格

  对于企业来说,保持系列产品在风格上的一致性是非常重要的。它不但可以减少系列产品的广告费用,减少系列产品的维护、培训费用;而且还可以在软件开发时进行界面风格复用,减少软件开发费用。因此在企业进行系列产品的开发时保证产品在风格上的一致性、操作方式上的一致性是至关重要的。

  二、设计重用

  1 领域架构的设计

  在产品开发之初,我们识别了所有的业务流程都可以运行于工作流平台之上。因此,我们在产品设计时,采用了以工作流平台为核心的领域软件产品设计架构。如图1所示。

  该工作流平台除了向产品最终用户提供流程自定义工具,使用户无需编程就可以自定义出所需要的工作业务流程,并可对流程流转过程进行实时监控;之外,还向软件开发人员提供了快速应用开发工具以及API接口,使开发人员只要调用该工作流平台API就可以实现复杂流程业务程序。

  2 层次架构的设计

  在选好系统领域框架和统一开发方针后, 系统构件的开发就应充分利用已有框架所提供的服务和工具;并力求实现大粒度构件重用。通过系统构件的分层,将频繁变动得业务逻辑层分离出来,实现通用类构件的完全复用。并且在各个模块之间设计统一的接口,当某一模块业务逻辑改变时,使系统之间的影响最小,使系统实现即插即用,让系统容易升级。为此将我们将产品的系统构件模型定义为四个层次:1)系统构件层、2)通用模块构件层、3)业务构件层、4)表现层。如图2所示。

图1 领域构架

图2 层次构架

  (1)系统构件层,指系统开发平台本身所提供的类库包括Java JDK类库等。

  (2)通用类构件层,是我们产品复用的核心。它不但能实现产品的纵向复用,而且还可以实现系列产品的横向复用。在这一层主要包含了工作流平台核心模块、组织管理模块、系统管理模块(包括:权限管理、存取控制、日志管理、数据备份/恢复等等)、页面风格函数以及JSP的CSS、JS等、字符串处理、数据库连接、日期处理等等与业务逻辑无关的类函数。

  (3)业务构件层,指为了满足各个不同业务的需要而设计的软件包,并在业务软件包中设置明确的接口,方便业务之间的交互,并可以实现系列产品之间的大粒度构件复用。

  (4)表现层。主要采用JSP、Serverlet页面来展现业务流程界面。在该层JSP只调用JavaBean业务逻辑接口方法实现业务逻辑的处理,而不涉及任何业务逻辑,在系统中取到用户与系统交互的作用。

  3 面向对象的设计

  在系统开发时,我们采用了面向对象的技术。通过面向对象的方法、消息、类、继承、封装、多态和实例等机制构造软件系统,并为软件复用提供强有力的支持。

  (1)模块化设计 在设计时我们采用了面向对象的包机制实现对业务流程的模块划分,如公文管理系统的发文流程、收文流程。在模块之间通过定义明确的消息机制与方法接口实现模块之间的交互。另外,在模块划分时,我们还注意到了底层模块的抽取,尽量将用户会话接口包与业务实体包相分离;如在工作流平台设计时我们从中抽取了与用户接口无关的工作流元模型包和工作流引擎包,他们可以向其他包提供调用接口方法,实现尽可能的大粒度重用。

  (2)类设计 在类设计时,我们采用了类的封装、继承、多态等机制实现类设计复用。在类中实现了所有的处理逻辑,这些类中一般都可以提供新增、删除、修改、查询四大类操作,并尽可能的提供处理逻辑所需要的方法接口,实现一次编写处处运行的理想目标。采用继承和多态机制后子类的实现可以继承父类的各个属性与操作,从而避免了相似功能的重复编码,提高了程序的可维护性,简洁性、可读性。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章