0 前 言
制造执行系统(MES)是当今制造型企业信息化的热点。MES填补了企业计划层与车间过程控制层的信息断层,能根据计划帮助组织生产,并能控制和记录产品的复杂生产流程,使得企业的计划与执行能得到很好的衔接,这对提高企业的管理水平与市场竞争力很有意义。因此,开发实施适用的MES系统是很有必要的。
建模是所有建造优质软件活动中的中心环节。通过建模,可以便于开发人员展现系统,使人们理解项目。一个成功的模型可以允许开发人员指定系统的结构或行为,提供指导开发人员构造系统的模板,记录开发人员的决策等。
2 UML概述
统一建模语言(UML)是一种用于提取面向对象分析和设计(OOAD)过程的产物的图形化语言。它为交流面向对象的设计中的需求、行为、体系结构和实现提供了一套综合的表示法。UML中所有事物都用对象的概念来描述:对象采取的行为、对象之间的关系、对象的部署,以及对象为了响应外部事件而改变状态的方式。
UML用于描述模型的基本词汇有三种:要素(Things)、关系(Relationships)和图(Diagrams)。其中,要素包括表述结构的要素,如“用例”、“类”、“接口”和“协作”等;表示行为的要素,如“交互”和“状态机”;表示组织的要素,如“包”;关系有关联关系、依赖关系、泛化关系和实现关系。图包括用例图、活动图、组建图、顺序图、协作图、类图、状态图、部署图、包图等9个不同类型。
3 UML对MES系统建模的优势
现代软件设计很大程度上或完全依赖于对象的概念,即将数据通过语法紧密绑定到可在该数据上执行的操作。面向对象的分析(OOA)是根据对象来定义问题的过程,而面向对象的设计(OOD)是定义组件、接口、对象、类、属性和操作的过程。一般情况下,以在分析期间定义的候选对象作为开始,然后,根据细化解决方案的需要而添加或改变对象。
在使用UML的OOAD情况中,模型主要由图组成:静态图描述了系统的结构,动态图则描述了系统的行为,使用动态图时,可以跟踪具体的行为,并且分析不同的情况如何结束。使用静态图时,可以确保每个组件或类可以访问执行它应当负责行为需要的接口和信息,并且可以很容易地在模型中进行改变。
其他建模工具,如常用的实体-关系图、数据流图及HIPO图等都是结构化分析与设计(SSAD)的工具,其符号和图形不统一,不便于项目中人员间的交流,而UML是面向对象建模语言的标准,避免了图例混乱和沟通不畅等问题,它适用于以面向对象技术来描叙任何类型的系统,最后还能直接生成构造系统的模板,UML贯穿于系统开发的不同阶段,具有较大的灵活性。
4 UML建模的流程
UML能在系统开发的不同阶段建立不同的模型,在分析阶段,模型的目的是捕获系统的需求,建立“现实世界”的类和协作的模型。在设计阶段,模型的目的是在考虑实现环境的情况下,将分析模型扩展为可行的技术方案。在实现阶段,模型是那些写并编译的实际源代码。在部署阶段,模型描述了系统是如何在物理结构中部署的。
系统建立模型的过程就是将任务划分为需求分析阶段、设计阶段、实现阶段、部署阶段等几个阶段连续的迭代的过程。用UML活动图模拟如图1所示。

运用UML进行面向对象的系统分析时,首先要对项目进行需求调研,分析项目的业务流程图和数据流程图,以及项目中涉及的各级操作人员,识别出系统中的所有用例和角色;接着分析系统中各角色和用例间的联系,使用UML建模工具画出系统的用例图;最后,勾画系统的概念层模型,借助UML建模工具描述概念层的类图和活动图。
UML建模过程具有如下特征:
(1)支持用例驱动。即首先将用户需求转换为系统需求(即用例),并根据对用例的描述和分析,得出系统类,然后进一步描绘出系统类的静态结构和动态行为,继而描述系统类的代码结构和物理配置。
(2)以系统架构为中心。以系统架构为中心就是在建模过程中要围绕系统架构,对系统进行抽象,并以用例为中心,构造出简单而又有效的体系结构。
(3)迭代增量式开发过程。迭代增量式开发过程使项目开发人员能够渐进地开发和完善系统,使得每次迭代都能对原有系统有所改善。
5 基于UML的MES建模的方法
MES是一种复杂的制造业信息系统,下面以某具体车间实施MES的案例作为本文的背景进行研究,描述基于UML的MES建模方法和过程。
5.1 MES系统的功能需求
系统建模前首先要明确需求。通过分析,该车间MES系统的功能需求主要包括以下几个方面:
(1)物料流程管理。管理各种生产物料资源,使其在开始工作之前备齐,记录和管理物料的分配与交接过程。
(2)分派生产单位。依据工作单、顺序、批量、批次及任务令来管理生产单位的流程,根据工厂内所发生的事件及时指示所需进行的作业,且能弹性的更改已定的排程。
(3)过程管理。能获得处理中产品及参数的数据,监控生产并自动修正或提供决策支持给操作人员。
(4)条码管理。管理条形码的使用,并监测条形码的正确粘贴及其相关的产品装箱与库存产品条形码管理。保证每批次产品的条形码序列不重号、不漏号、不错号。
(5)库存管理。提供成品批号登记、入库管理和数据上报公司等功能。
(6)绩效分析。提供实际制造情形、历史数据和预期状况三者比较的实时报告,包括资源利用率、产品合格率、资源耗费等数据。
5.2系统的UML基本模型
使用UML进行系统建模,即采用面向对象的方法来分析系统,然后用可视化的模型将该系统用直观的图形显示出来。一般首先构建系统的用例图。
用例图是作为参与者的外部用户所能观察到的系统功能的模型图,是系统角色与系统的一次典型交互的描述,代表系统提供的目标功能,这在需求分析阶段有很重要的作用,整个开发过程也都是围绕需求阶段的用例进行的。
创建用例图之前首先需要确定参与者。作为制造执行系统,首先有工艺员参与,工艺员可以登录系统录入生产任务,新建生产任务后能进一步为各个班组(生产线)进行任务调度分配。还可以查看生产进度,物料库存等。工艺员请求服务的用例图包含如下用例,如图2所示。

图2 工艺员使用MES的用例图
(1)Logon the system:登录系统用例。取得相关操作权限。
(2)Production task manage:车间生产任务管理用例。录入批次产品需求信息。
(3)Dispatching task:任务调度用例。为各班组(生产线)调配生产任务。
(4)Query production task:查看各班组(生产线)生产信息用例。
(5)Performance Analysis:绩效分析用例。提供实际制造情形、历史数据和预期状况三者比较的实时报告。
(6)Query materiel info:查看物料信息用例。
(7)View information:查看通知用例。查看公司通知,生产任务及指标等。
(8)View production schedule:查看生产排程用例。查看各生产线、班组的生产任务安排。
(9)View report forms:查看生产报表用例。
MES系统的参与者很多,所能画出的用例图也很多,在此不一一给出。
活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流。活动图看起来和流程图没什么两样,但两者是有区别的。具体如下:
(1)活动图描述的是对象活动的顺序关系所遵循的规律,它着重表现的是系统的行为,而流程图着重描述处理过程,其主要控制结构是顺序、分支和循环。
(2)活动图能够表示并发活动的情形,而流程图不能。
(3)活动图是面向对象的,而流程图是面向过程的。
利用UML活动图对工作流建模遵循如下步骤:
(1)识别要对工作流描述的类或对象。找出负责工作流实现的业务对象。
(2)确定工作流的初始状态和终止状态,明确工作流的边界。对动作状态或活动状态建模。找出随时间发生的动作和活动,将它们表示为动作状态或活动状态。
(3)对动作流进行建模。可以首先处理顺序动作,接着处理分支与合并等条件行为,然后处理分叉与汇合等并发行为。
(4)对对象流进行建模。找出与工作流相关的重要对象,并将其连接到相应的动作状态和活动状态。
(5)对建立的模型进行精化和细化。
本文为某车间所设计的MES中的物料传递流程如图3所示:

图3
其中的活动状态有:下达计划订单、上传工艺BOM数据、导入库存数据、生产物料明细、备料、领料及各生产班之间的组件交接等。从图3中,我们可以看出该生产车间物料的传递流程。MES系统中其他模块的活动图也一样建立。
6 结 语
本文利用UML语言为某生产车间MES系统建模,并给出了系统中典型用例图和活动图。可以看出,UML语言是面向对象的易于理解的建模语言,UML建模对项目人员之间的沟通很有帮助,是系统设计的必要过程。