杨军
摘 要:企业信息化的发展,对软件开发提出了新的要求。本文针对提高软件模块的复用性和扩展性,提出提出了一种基于 UML 全程建模和基于构件的多层体系结构解决方案,并利用这一理论基础设计开发了油田电力MIS系统中用电管理子系统。
关键词:构件 UML J2EE 用电管理子系统
随着信息时代的来临,信息技术的迅速发展加快了企业信息化的进程。现在软件系统的开发也由技术驱动向业务驱动转变。当前企业组织结构、产品研发和业务流程需要适应市场竞争的激烈变化,伴随着企业应用集成范围的不断扩大、集成度的不断提高。企业为了适应市场不断进行动态重组,旨在实现企业活动中三要素(人、经营、技术)和三流(物流、信息流、价值流)的集成与优化,从而改善企业的 T(时间)、Q(质量)、C(成本)、S(服务),提高竞争能力。企业资源规划等企业信息化应用软件系统外延与内涵的扩展,对软件复用和体系结构都提出了较高的要求。软件建模、复用技术和体系结构的研究是软件开发和软件工程中一个重点的研究领域。怎样提高软件模块的可复用和重构能力、怎样实现较好的可扩展性和集成能力?怎样实现企业业务模型、设計模型到实现的平滑过渡?怎样解决传统应用软件系统灵活性差的弊端?本文探讨了企业级应用软件系统的建模和复用问题,阐述了一种基于 UML 全程建模和基于构件的多层体系结构解决方案,并提出了“以 UML 为基础,以体系结构为中心,构件封装业务逻辑”的软件开发策略,实现了基于J2EE 平台——**油田电力MIS系统中用电管理子系统的设计与实现。
一、构件
现在对于构件还没有一个公认的定义,下面选取了两个具有代表性的:(1)构件是指应用系统中可以明确辩识的 、具有一定功能的构成模块。(2)构件是有一定功能,能独立工作和能同其他构件装配起来协同工作的程序体,构件的使用和它的开发、生产无关。基于构件的软件开发方法是一种社会化的软件开发方法,它使得开发者可将由不同语言、不同供应商开发的构件组合在一起来构造软件。一般地,基于构件的软件开发方法具有以下几个优点:提高开发速度;降低开发成本;增加应用软件的灵活性、降低软件维护费用、促进软件产业的合理分工。由此可见,构件技术可以使原来周期较长的、复杂的软件开发工作变得简单、快速且成本较低。这样的应用软件系统不再是一个固化的整体性系统,而是通过构件间互相提出请求及提供服务的协同工作机制来达到系统的目标。当前业界几种主流构件技术,包括 Microsoft 的分布式构件对象模型(COM/ COM+、DCOM)、OMG 的公共对象请求代理体系结构(CORBA)、Sun 公司的 Enterprise JavaBeans(EJB)等。
二、基于构件的体系结构
通过软件复用,在应用系统开发中可以充分地利用已有的开发成果,消除包括分析、设计、编码、测试在内的许多重复劳动,提高软件生产的效率和质量,降低开发成本。但是传统意义下的代码重用已经不能满足现有的企业级要求。如何较好地实现软件复用?如何满足复杂系统的独特特征?这两个因素是软件体系结构产生和发展的内在驱动力。构件和体系结构是紧密相关的。从理论层面看,虽然软件工程领域对于软件复用与构件技术以及软件体系结构没有达成统一的认识和理解,北大杨芙清院士对以构件技术为支持的软件复用作了很多的理论研究。如基于软件体系结构的可复用构件制作和组装,软件复用与构件技术等,着重对构件的制作和组装等方面展开研究。国外对于软件复用与构件技术和软件体系结构的研究已经早就开始了。针对软件体系结构的研究始于Dewayne Perry和Alexander Wolf,David Garlan和Mary Shaw 所作的工作,目前软件体系结构领域的研究主要集中于体系结构描述语言,体系结构风格及其分类特定领域的体系结构,体系结构的形式化基础等。由于软件体系结构描述语言本身并不是一个可编译执行的语言,目前主要的实现策略是基于框架模型来建立描述语言到实现语言的转化过程。国内中科院软件所、北大计算机科学技术系、北航计科系等对软件体系结构作了较多的理论研究。武大的软件工程国家重点实验室提出了基于软件体系结构的需求分析与设计等。软件体系结构是当今软件工程的重要研究领域之一。系统的复杂性和软件复用技术是软件体系结构发展的内在驱动力。Dewnyne Peny 在 2000 年 8 月北京举行的 WCC2000 软件理论与应用技术专题研讨会上的专题报告中指出:“软件体系结构的核心问题和它对软件工程的根本影响的源泉在于,它有助于把软件系统的基本结构特征与算法和数据结构的设计划分开。把软件体系结构看作是制作和发展软件系统的第一重要因素,软件体系结构有利于更好地设计软件系统”。
三、 UML
UML,Unified Modeling Language 统一建模语言。UML 于 1997 年被 OMT 组织批淮作为标淮。UML 可以对任何大型的系统包括软件、机械系统、企业过程、复杂的信息系统、实时系统、分布系统、商业系统等进行建模。UML 方法的类和模型图是一个整体,可以采用任何一种模型图或者其组合实现可视化和面向对象技术的建模。UML包括用例图、类图、对象图、状态图、顺序图、协作图、活动图、构件图、配置图等。用例图描述了一组用例和参与者以及他们之间的关系,描述系统提供的功能,显示了系统的外部角色以及他们与系统所提供的用例之间的关系(由“谁”提供了哪些功能或哪些服务)。类图显示了一组类、接口、协作以及他们之间的关系,描述了系统中类的静态结构,定义了系统类的内部结构属性和操作。对象图显示了一组对象以及他们之间的关系。状态图显示了一个由状态、转换、事件和活动组成的状态机,描述类的对象所有可能的状态以及事件发生时状态的转移条件。顺序图描述对象之间的动态协作和消息传递,强调消息的时间次序的交互图。协作图描述对象之间的协作关系,强调收发消息的对象的结构组织的交互图。活动图显示了系统从活动到活动的流以及活动之间的约束关系。构件图显示了程序代码的物理结构。配置图显示了软件在硬件环境中的配置关系。
四、电力MIS用电管理子系统分析与设计
863CIMS 主题专家组提出了 CIMS 的概念:CIMS 将信息技术、现代管理技术、制造技术相结合,并应用于企业产品全生命周期(从市场需求分析到最终报废处理)的各个阶段。通过信息集成过程优化、运行,达到人(组织、管理)、经营、技术三要素的集成,以加强企业新产品开发的 T、Q、C、S、E,从而提高企业的市场应变能力和竞争能力。电力MIS系统中的用电管理子系统不只是一个软件系统,而是一个集各种企业模型、用电相关设备管理以及相关业务流程、管理规范和信息技术、实施方法为一体的综合管理应用体系。该子系统帮助企业对用电信息进行卓有成效的管理,充分发挥资产的效能,保证企业生产经营活动的顺利进行。对企业的用电全业务流程进行管理,对用电设备的档案、用电设备设备运行状态等进行维护、查询,为各级管理部门提供所需的统计、查询数据。 本子系统将设备管理部门、设备使用部门、财务等相关部门联系起来,以用电子系统的流程为核心,实现数据共享和流程之间的共享,形成一个较完整的管理体系。电力MIS中的用电管理子系统从管理上突出特点便是事前控制和事中控制,强调生产流程各个环节之间的衔接、协调和统一。从软件系统的结构而言,与其他子系统之间有广泛的数据、业务逻辑的接口,具体反应在三个方面:用电管理子系统是从企業的业务流程出发;用电子系统提现了现代化的管理思想、用电子系统与其他子系统数据共享。用 Servlets/JSP、EJB 构件解决软件模块的复用和重构问题、用基于J2EE体系结构实现用电子系统较好的可扩展性和集成能力。从业务流程的角度看,用 UML 实现业务模型到软件建模的映射;从 UML 建模的角度看,用 UML 实现全程的、集成的企业建模。UML为分析、设计和部分实现提供了“共同语言”,而且构件和多层体系结构的分析也需要用UML来体现,并能生成代码框架。这样不但解决了系统分析、设计和实现之间不能平滑过渡的缺点,而且基于构件的多层层体系结构实现了对业务的复用和重构。
五、结语
本文提出了基于业务规则、业务逻辑的构件封装以及构件颗粒度的划分;阐述了多层体系结构能较好地解决软件系统的可扩展性和集成的问题 ,实现了企业模型到软件模型由传统的“转化”向“优化”的转变,在理论上重点研究了基于UML的集成企业建模和构件封装业务规则和业务逻辑,并应用于实际电力MIS系统用电管理子系统开发。