计算机工程
COMPUTER  ENGINEERING 
1999年 第25卷 第5期 Vol.25 No.5 1999



以面向对象与工作流技术相结合实现企业MIS系统
徐贵红 吉伟萍 陈良刚 施伯系
摘要 以电缆系统的设计和实现为例,介绍了彩面向对象与工作流技术相结合,实现企业MIS系统内任务间的协调.
关键词:MIS 面向对象 OMT C/S体系结构 工作流
Combination of Workflow and Object-oriented for the Implementation of Enterprise MIS
Xu Guihong Ji Weipring Chen Lianggang Shi Baile
(Dept.of Computer Science,Fudan University Shanghai 200433)
[Abstract] This paper presents the combination of workflow and object-oriented to realize enterprise MIS and attain coordination within enterprise MIS.
[Key words] MIS;Object-oriented;OMT;C/S architecture;Workflow
　　工作流技术是指基于企业的业务流程，将业务分解为状态传递（任务状态)集合的软件分析技术。工作流主要涉及的内容是工作任务的整体处理过程、工作组成员间依据一组已定义的规则及已指定的共同目标所交换的文本文件、各种媒体信息或任务。
　　面向对象方法是MIS系统开发的一种重要的软件方法，由于其生成的系统具有良好的可扩展性、易维护性等特点而被大多数大型、复杂的系统设计所采用。面向对象方法由对象构成软件系统与由实体构成实际系统是相对应的。
　　本文在电缆信息系统（PCIS)开发的实践的基础上提出采用面向对象技术与工作流技术相结合来开发和实现MIS系统，协调MIS系统中信息、业务与人的关系。由OMT的动态模型描述了对象在不同时刻的状态、对象的操作及其发生的次序，体现对象状态变化的方面。工作流的任务用一组对象的操作实现，工作流的业务流程用对象状态的变化实现，在对象的动态模型上用操作触发的约束条件保证操作的先后次序。
1 工作流技术在系统开发和设计中的运用
1.1 工作流
　　在当今的社会生活中，绝大多数工作都是在特定的群体环境中，由群体成员互相协作、共同完成的，人们的工作方式明显地具有群体性、交互性、分布性与协作性等基本特征。工作流技术为任务的协同处理提供了支持。
　　工作流包含多个事务，运行于多个数据库之上。系统运行由工作流的任务驱动。
　　工作流包括路由、规则、任务3个要素。路由是指工作流所经历的任务状态传递，规则决定传递方向，任务是企业业务的表现。使用部门、任务、外部库关系表(本文略去)描述不同部门工作时对外部数据库的访问，用部门、任务关系图即工作流图表现部门之间任务的相互作用与合作，由任务分配规则说明电缆工程处的内部任务分配。
1.2 工作流图(以生产管理子系统为例)

图1 生产管理子系统工作流图
1.3 任务分配规则(以生产管理子系统为例)
　　.计划股的生产月计划由工程股、运行股分别执行；
　　.运行股制订的周计划由工作类别指定的相应班组执行；
　　.工程股制订的周计划由工作类别指定的相应班组执行；
　　.资料班将资料归档，若工程股决定送电，则将有关资料移交运行股，否则回馈工程股。
2 面向对象方法在建模和实现中的运用
2.1 对象建模技术
　　OMT(Object Modeling Technique)是一个软件工程方法，即采用对象的概念和一组记法约定，支持软件开发过程中的需求分析、系统设计、实现、测试以及运行阶段的维护和升级。其方法的基本思想是：从空间、时间及功能这3个既独立又相互联系的角度去分析一个待求的信息系统或软件系统，得到组成系统的对象模型、动态模型和功能模型，分别由对象图、状态图、数据流图描述。
　　OMT方法从描述所求问题的陈述开始(即从分析现实世界的实体开始)，加上与用户的对话和现实世界领域知识，得到OMT的3种分析模型；系统设计阶段决定一个系统的全局体系结构，如系统的划分、硬件软件资源的分配等策略；对象设计阶段强调的是应用概念到计算机概念的转变。
　　OMT方法围绕对象来组织一个系统而不是像结构化方法那样围绕功能组织一个系统，为开发过程提供了一个稳定的基础。整个过程使用一个概念--对象，所有其他概念如功能、关系、事件等都围绕对象来组织，从而在分析阶段记录的信息不会在设计和实现阶段被丢失或改变。OMT方法的分析模型、子系统的定义易理解，设计直观。
2.2 MIS系统的OMT分析
　　从用户的角度看，不同企业对MIS的要求不同，但从开发者角度看，除个别特殊要求外，大部分要求的实质是数据或信息的编辑(如录入、删除、修改等)、存储、传输、查询、制表、维护、输出以及安全和权限的保证等。
　　OMT方法在MIS的分析期间，先把用户看到的、对其管理有意义的各种表格、卡片、文件、凭证等所有数据项以及需求陈述中的关键名词都看成是初始对象。把需求陈述中表达这些对象的关系(如动宾关系、所属关系等)抽象成这些初始对象的关系，得到MIS的一般对象模型。
2.2.1 表对象
　　由于MIS的主要任务是对数据进行存储与管理，分析阶段抽象出的大多数对象又是可以在实现阶段映射成数据库表的数据对象，故可以称这些对象为表对象，是MIS的对象主体部分。电缆信息系统(PCIS)中涉及到的表对象有：电缆名称表、缺陷表、巡查记录表、外力破坏单、电缆历史库、主卡表、次卡表、人员表等。如图2所示。

图2 电缆信息系统对象模型中的表对象
说明：标号表示的是关系(1)DLBH=DLBH；(2)DLBH=DLBH；(3)DLBH=DLBH
2.2.2 窗口对象和数据通道
　　现在，大多数MIS 系统用非面向对象的RDBMS 加面向对象的程序设计工具来实现面向对象的软件设计。通常，把属性与操作分离，用RDBMS的表来实现对象的属性，用面向对象的程序开发语言和RDBMS 的SQL处理来实现对象的操作。
　　MIS 的对象模型也应包括实现操作(如编辑、查询等)的窗口对象，这种对象可以看成是与设计域的对象，也可以看成是与用户使用中交互界面的应用域对象。这些对象与数据库表的不同联系由数据通道担当，对Delphi来说，通道是指数据明了(Data Access)部件和数据控制(Data Control)部件。
2.2.3 MIS 系统中的复杂对象
　　企业内部业务部门是一种客观存在，我们将它定义为一类对象，其内部操作由窗口对象完成。窗口对象与部门对象的关系是'属于'关系。以电缆信息系统为例，部门对象包括工程股、计划股、运行股、排管班、巡视班、运行班等。
　　虽然MIS系统的交互特点很突出，由于在可视化开发环境中，有许多高度抽象的部件及上面的可选事件集，使动态模型的分析设计及实现都较易完成。对于大多数MIS系统，功能模型往往退化，有时可以忽略。在此不做详细讨论。
2.3 系统设计阶段的OMT方法支持
　　系统设计阶段将系统分析阶段分析模型进行结合，加入便于实现的某些内部对象类，进行系统任务划分，将子系统分配给硬件和软件部件以及主要的策略决定。
2.3.1 子系统划分
　　大型复杂的MIS系统，数据多，关系复杂，并且往往由多个开发者共同开发，需要开发人员对系统有共同的理解，因此，要强调系统的设计逻辑。将问题划分成几个子系统，然后由设计者在不同的子系统上独立、并行地进行设计和实现，协同有序地完成开发。
2.3.2 服务器系统和客户机系统
　　考虑到信息系统的运行平台和在分析阶段的分析模型，我们把数据对象特别是共享数据对象、与数据存储相关的一些内部对象(如视图、验证规则、数据省缺、触发器、存储器等)以及事务逻辑放在服务器上，并运行数据库管理系统。客户端运行用户程序，把表示逻辑、用户接口对象及某些私用数据对象放在客户机上，实现数据访问(增添、查询、更新等操作)。
2.3.3 客户机上子系统的进一步划分
　　对于MIS 系统，由于数据管理集中在服务器上，在此不考虑表对象的子系统所属问题。根据分析阶段提出的对象类和对象之间的关系，主要是部门对象和窗口对象，得到相对独立的子系统。这与结构化方法从系统分析从功能模型开始，得到系统的功能结构图不同。电缆系统的子系统结构如图3。

图3 电缆信息系统
3 两种技术的结合
3.1 对象状态变化体现工作流的任务执行
　　OMT的动态模型描述了对象在不同时刻的状态、对象的操作及其发生的次序，表现了对象状态的变化。工作流的任务由一组对象的操作实现，在对象的动态模型上我们用操作触发的约束条件保证操作的先后次序。 
3.2 工作流的任务完成截止时间限制了事件处理时间
　　大多数由对象构成的系统(非实时系统)的逻辑正确性依赖于事件顺序，而不是确切的时间，但实际上企业业务处理是不能无限延迟的。因此，工作流的任务完成截止时间限制了事件的完成时间。
3.3 工作流的任务分配规则和任务状态传递决定复杂对象的操作
　　在MIS 系统中，将业务部门作为复杂对象，工作流的任务的开始触发复杂对象开始的操作，复杂对象的状态决定了后续的操作。工作流的业务流程用复杂对象状态的变化实现。如在图1中计划股计划做完，下达给工程股和运行股；运行股的周计划和临时计划激活下属各个班组的工作。 
3.4 利用对象实现工作流
　　在电缆系统原有数据上，加入用于工作任务管理的任务表对象实现工作流中任务的表示和处理。任务表是一种'虚构'对象，是为了实现业务流程的自动化而引入的。
　　任务表包含的内容：任务编号、计划类别、制定部门、制定人、完成部门、责任人、计划完成截止日期、完成条件、工作类别(如巡视、电试、排管等)、工程编号、电缆名称、工作内容、计划执行状态(完成、未完成、执行)、计划完成说明。
　　任务表在企业信息中可以作为历史资料保存，也可以在任务完成后将相应的任务删除。
3.5 面向对象和业务过程的动态协调
　　我们利用面向对象的方法为系统建模和实现系统，实现了数据处理的计算机化。使用工作流体现企业内部人员的任务分配关系和任务完成限制，而这是企业业务运作的纽带。可以协调一个企业内部的人员和部门，使其工作自动化，并将信息综合在一起，被各部门共享。
　　面向对象和工作流技术的结合实现了系统中各种信息处理的主动性和信息的唯一性、准确性，对数据处理做到协调一致，并将有关信息提供给上层，实现'全局、全过程'控制，实现了企业管理的自动化和企业成员的主动化。
4 结束语
　　在MIS系统的实现中充分利用面向对象技术与工作流技术的结合，为理解系统、实现系统以及系统运行提供了良好的保障，也保证了C/S模式中数据与应用程序分离的数据处理协调性。电缆信息系统的实现对工作流和面向对象的结合做了尝试。进一步的工作是实现企业内部的以及企业之间的工作流管理系统。
作者简介:徐贵红,女,29岁,研究生,主攻方向:数据库
作者单位:复旦大学计算机科学系 上海2000433
参考文献
1 汪成为.面向对象分析、设计及应用.北京：国防工业出版社，1992
2 姚庭宝.精通 DELPHI.北京：电子工业出版社，1997
3 Schur SG.Reengineering:Destination Workflow.Database Pro-gramming &Design,1994-12
收稿日期:1998-07-06
