基于组件的柔性制造执行系统软件集成测试研究
为使企业快速适应内、外部环境的变化,充分利用企业制造资源,提高企业竟争力,制造执行系统(Manufacturing Execution System,MES)已成为国内外学术界和产业界的研究热点和发展趋势。为提高MES的通用性、可扩展性、可移植性和可重用性,研究均采用组件软件来构建柔性MES。但是,当这些系统组件、通用组件、专用组件在进行组装集成时,由于组件的混杂性(组件提供者不同)、源代码的不可知性(封装性)、组件开发环境(包括编程语言、操作系统、硬件平台)的不同,以及各种组件所遵循的开发标准(公共对象请求代理结构(Common Object Request Broker Architecture,CORBA)、Windows分布式应用结构(Windows Distribwted interNet application Architecture,Windows DNA)/组件对象模型(Component objectModel,COM)/分布式组件对象模型(Distributed Component Object Model,DCOM)/COM+、Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)/企业级Java bean(Enterprise Java Beans,EJB))和开发时间不同导致的版本不同等原因,在集成协同工作时,其功能不一定都能保证,甚至可能出现交互时的冲突与错误,这就需要对集成后的系统进行充分地测试,以提高可靠性。由于组件集成软件的特性,使对其进行的测试方法与传统的测试方法有所不同,给测试理论、测试架构、测试实现均带来了新的问题与挑战。
国际上,组件测试研究始于20世纪90年代后期,近年随着软件规模和复杂度增加,组件集成测试逐渐成为热门话题之一。在组件软件集成测试方面比较有代表性的研究工作包括基于统一建模语言(Unified Modeling Language,UML)的集成测试技术、组件交互测试(Component Interaction Test,CIT)、序列产生技术(sequence generation technique)、CIG(component interaction graph)模型困等。其中,基于uML的组件集成测试技术有很好的系统规约支持基础,可以从系统化的角度自动生成测试用例序列,但是这种测试技术在系统规模增大的情况下不可避免地会产生状态组合爆炸的难题;CIG将关注的焦点转移到组件与组件的交互问题上,但是方法前期构造面向系统的CIG图需要付出很大的代价。其他集成测试方法有的需要组件开发者提供测试支持,有的需要从组件源代码中提取测试需要的信息,还有的方法过于理论化,缺乏实际应用。
本文以合约理论为基础,针对组件集成测试问题,提出了一种新的适用于组件化软件集成测试体系架构(Integration Testing Architecture for Component-Based Software,ITACBS)和测试方法,克服了组件源代码不可知,组件与组件之间、组件与粘贴代码之间交互时组件状态信息不可获得,集成测试环境难于捕捉到交互错误等问题,为组件使用者集成测试组件软件提供了一种面向实际应用的体系结构。
1 被测制造执行系统软件结构
随着企业资源计划(Enterprise Resource Planning,ERP)的发展,越来越多的企业开始实施ERP,MES,以及车间控制(Shop Floor Control,SFC)之间的集成,以提升管理水平与生产效率,逐步强化规范化、电子化、自动化的流程管理。ERP在上层负责订单管理、销售预测和物料需求等与计划相关的任务;SFC在下层负责实际的生产过程管理;而MES在中间层,负责对生产过程进行实时的监视、诊断和控制,起到了ERP层与SFC层之间的桥梁作用,它向SFC层下发计划任务,同时向ERP层反馈实际生产状态。本文为某企业开发的MES软件的组件结构如图1所示。

图1 MES层组件图
该结构由公共组件层、自主开发的资源管理层和流程控制组件层组成。公共组件层采用通用软件,以.NET框架为基础,结合本MES的功能需求,调用第三方组件,为上层的软件系统提供数据库、系统及设备间通讯等服务;资源管理层由产品信息组件、设备信息组件、工艺信息组件和生产任务单信息组件构成,负责统一管理与生产过程相关的各种信息;流程控制层包括工艺路线管理组件、检验管理组件、生产管理组件和物料跟踪组件,它以工艺路线管理组件为核心,通过对生产、检验以及物料等进行管理,达到对整个生产过程进行统一监视和控制的目的。
该MES的核心是以工艺路线单为指导的生产任务执行过程,它主要涉及工艺路线单处理组件RoutingMaker、产品信息组件productsInfo、工艺信息组件ProcessesInfo、设备信息组件EquipmentsInfo、生产任务单信息组件TasksInfo的交互处理。各组件的交互如图2所示。

图2 组件及交互图
其中,TasksInfo来自原有的ERP系统,采用COM标准开发,ProductsInfo调用计算机辅助设计(Computer Aided Design,CAD)开发商提供的产品结构信息组件,各组件的接口功能如表1所示。
表1 接口功能表
由此可见,组件的混杂性、开发标准的不一致性,以及组件代码的不可知性,给整个软件系统集成测试带来了困难。为此,本文将在第2章中详细介绍ITACBS与其应用,并以图2为例说明其测试过程。
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
- 上一篇文章:基于射频识别的离散制造业制造执行系统设计与实现
- 下一篇文章:成长中的企业为什么需要MES?
