论文研究-改进的自适应遗传算法及在背包问题中的应用.pdf

所需积分/C币:9 2019-09-13 01:10:54 1.29MB .PDF
收藏 收藏
举报

在研究构件技术的基础上,结合工作流技术提出了一种新的软件开发模式,即通过将可视化的构件库与可视化的工作流编辑系统全面融合实现零编程的软件搭建平台。构件库包含了多层次和多粒度的可视化软件构件集合。工作流以业务流程为核心来组装各种构件以实现可视化的软件开发。论文提出了软件构件运行与逻辑控制分离的思想,通过构件库不同层次构件为用户提供良好的软件扩展性和移植性,通过工作流引擎的流程控制取代程序流程的过程控制实现面向业务的快速软件搭建,并支持任意流程的实时测试。这种软件开发模式拓展了传统软件工程的过程开发方式,能较好兼容自上而下和自下而上的软件工程方法,并能适用于BS/CS开发模式。该模型已在新一代GI
842008,44(10) Computer Engineering and Applications计算机工程与应用 两者优势有机整合到程序设计过程进一步提高软件开发的效无关。通过建立标准构件层,保证易组装性和适应性。 率呢?基于这种思路,做了一定的探索性研究 (3)领域构件,由中间粒度构件与基础构件重组而成,往往 文献15提出了一种面向行业的工作流系统构件化开发方面向某一个专业领域提供服务。该层提供具有髙可扩展性。 法。但这种方法仅适用于领域构件,通用性和移植性不强,且未 Layer2:构件调度层,负责构件运行环境的准备及与调用 能实现构件库对构件的可视化管理,可扩展性有限。本文将从端建立 Session,维护 Session中各种参数的生命周期。 可视化软件开发角度,结合软件构件及构件库设计和工作流的 Layer3: Handle过滤层,其作用主要是提供了扩展构件库 可视化流程建模实践提岀一整套基于构件库/作流的可视化系统的能力,用户可以写专用的插件来截获上层的每次调用及 软件开发解决方案。 其参数,这个功能可以用来调试构件,观察构件的行为,也可以 一个现实的软件系统一般地由数据、功能、界面、过程几个搜集调用数据做一些构件的调用统计,例如:在一个时间段上 层面的协同合作来完成。为了使构件库能更好面向实际应用,哪些构件被调用及其被调用的次数等等 需要建立相应的界面控制和过程控制的子系统以协助软件开 Layer4:用户调用接口层,对用户提供多样性的调用手段 发,即工作流管理系统。以工作流驱动构件运行,不同于构件在这层是用户最关心的与用户关系最大的,这一层对外要提供丰 特定构架下的运行模式。构件库作为通用功能和业务功能构件富的调用接口,例如:API调用、COM调用,以服务的方式提供 仓库,业务流程和权限的管理在工作流管理系统通过可视化界调用。注册到构件库的构件可能是某个COM组件,但在该层中 面预置定义。一个流程包含一连串按业务逻辑连接的节点,每个可以自动生成其它类型的调用接口。 节点上绑定一个功能构件。系统调用起始节点即启动整个流程, 构件库的主要功能是提供对构件的管理,包括构件的注 根据定条件依次执行被调用流程节点上绑定的功能构件以实册注销、删除、更新等。用户可以根据需要自行开发符合通用 现流程的功能目标。工作流负责管理业务控制流程和数据流。规范的各类构件,也可以直接导入已存在的外部构件。这些外 构件仅仅负责功能的执行,从而达到业务逻辑和功能的分离。部构件可以来自网络上远程分布式部署的子构件库、 Internet 2.1开放灵活的软件构件库设计 上的网络构件库,以及 WebService构件。外部构件的存在丰富 基于构件的软件开发必须建立相应的构件库以满足各种了构件库的功能满足各种应用需求,增强了构件库的扩展性 不同层次的软件开发需要。构件库支持纵向分层,横向分类管和完备性。 理,便于用户根据自身行业特点进行自定义细分子类和扩展。 值得说明的是,由于开发平台的局限,所描述的构件通常 通过对构件库的分层管理屏蔽构件的实现细节保证构件属指基于微软的COM技术(C++的COM组件,或者C#的程序 性的独立。多个低层细粒度的简单构件聚合可以组成复杂的粗集)实现的,因此构件库具有COM技术的部分特征,如跨平台 粒度高层构件,这种结构不同于以往构件库的描述,极大地提的异构特征,它不依赖于加载构件的操作系统和运行环境,使 高了构件库本身的完备性和扩展性,灵活性。用户可以根据需得构件库具有良好的平台兼容性和适应性。同理而言,基于 要用底层构件快速开发原型系统,并在适当的时候通过高层构 COrBa或 JAVA BEANS技术同样可以建立与之适应的构件 件直接替换复杂的聚合构件来提高系统的运行效率。 库。由此可见基于上述思路设计的构件库具有扩展性、移植性、 构件库的分层图如图1所示。 兼容性、适应性。其软件开发流程如图2所示。 Layer4coM通用调用 PI调用 服务方式提供 WebService 系统需求分析 构件修改 handle过滤层 域 构件提取 r3 avel 构件运行调度层 软件特殊需 件 构件库 求 交 构件实例化 ayer 领域构件或专用构件 专用构件开发→构件组装系统测试 中间粒度通用构件 系 基础构件 原子粒度构件(如加、减 乘、除等) 图1构件库分层图 图2基于构件的软件开发流程 Layerl:构件驻留层,其中按照构件粒度及应用性又可以2.2工作流系统设计 划分为3个子层 wFMC1994年发布的工作流参考模型约定了工作流管理 (1)基础构件,这一层提供原子粒度构件,可以由构件库系系统需要包含6个基本模块:(1)工作流执行服务:激活并解 统自带,也可以由用户添加。例如:加减,乘,除,乘方等基本构释过程定义,完成工作流过程实例的创建、执行与管理,为工作 件,由于这些原子粒度构件的引入,增强了构件库的完备性,才流程的运行提供一个运行时环境。(2)过程定义工具:提供对实 使得基于工作流的可视化编程具有强大的功能以至于取代手际业务过程进行分析、建模的手段,生成业务过程描述(过程定 工编写代码。这一层是基础性的构件,适应各种应用。本部分可义)。(3)其它工作流执行服务:与其它异质的工作流执行服务 以参考程序语言提供的基本操作,建立原子构件层,保证构件来辅助完成复杂系统。(4)客户应用程序:提供人工干预手段以 库的完备性。 辅助过程实例运行。(5)被调应用程序:工作流抉行服务在过程 (2)中间粒度的通用构件,可以通过基础性的构件组装而实例的运行过程中调用的、用以对应用数据进行处理的程序。 成,也可通过编写代码而得。这一层属于通用构件,与具体业务(6)管理及监控工具:对WFMS中过程实例的状态进行监控与 张成,吴信才,罗津,等:基于构件库/工作流的可视化软件开发 2008,44(10)85 管理。工作流参考模型如图3所示,下面结合该模型详细论述库记录与描述工作流设计的XPDL文档相互导入导出功能,极 设计思路。 大地方便了资源的共享。 (2)控制类型 过程定义工具 对于工作流的过程定义的控制类型部分。不同的文献有不 接口1 同的分类。简单起见,流程控制提供最简单的“顺序,选择, 工作流API与交换格式 其他工作流 循环”控制以匹配可视化的程序设计逻辑控制过程。其他文 工作流接口5工作流执行服务 接口4执行服务 献3:所描述的复杂控制流程均可由这三者复合而成。图 管理工具 工作流引擎 工作流引擎 4-图7为三种简单逻辑控制示意图。 构件运行控制的工作流模型 接口 接口3 (1)顺序(如图4) 工作流 工作流机 客户应用直接调用的应用 Start Nodel|…→ Noden→End 图3工作流参考模型 图4用工作流控制的构件顺序执行过程 221工作流执行服务 顺序控制,是最简单的控制,只要连接弧上的条件设为 工作流执行服务即工作流引擎。它负责解释流程定义(被tmue,工作流引擎就会按照顺序向构件库发送调用请求信息。 称为复合构件)及复合构件的实例化并向构件库发送构件执行 (2)选择(如图5) 命令,但在基于构件库的面向编程的工作流引擎中,主要依照 定义的构件运行逻辑激活相应的节点,激活节点的过程就是将 Node1 即将执行的任务发送给构件库,节点具体任务的执行是由构件 Start Node(N+1)→End 库来执行。由此实现了构件与业务逻辑的分离。构件库则负责 维护 Session的状态信息负责维护对象的创建及对象的生命周 图5用工作流控制的构件选择执行过程 期,功能的具体运行仍然在构件库的环境下运行。 222过程定义工具 选择控制,同样依赖连接弧上的条件是te还是 false,哪 工作流的过程定义部分包括对流程实体、控制类型、用户条连接弧上的条件为te,就按哪条路径执行。但这里与编程 权限等管理。其中用户权限管理在管理工具部分介绍。 中的逻辑控制可以有不同,两条或分支出来的多条连接弧上的 (1)流程实体 条件可以同时为真,这种控制能力实际上已经丰富了编程中逻 对于工作流的过程定义的实体部分,采用活动网络图模型辑控制能力,具体如何调度参见24节。 来实现工作流的过程建模,用XPDL来记录过程描述。为更好 (3)循环(如图6) 地结合软件构件建模,对活动网络图进行了适当的改进。 NodeN Node2 ①将文献(23所定义的15种节点抽象为4种节点 起始节点:一个工作流的开始 Start Node1-Node(N+1)一End 终止节点:一个工作流的结束 普通节点:工作流执行过程中的活动节点,执行完当前功 图6用工作流控制的构件循环执行过程 能后,程序逻辑过渡到下一节点。 循环控制,同样依赖连接弧上的条件是true还是 false,放 子流程节点:用于嵌套子流程的活动节点,主要负责主流在封闭的回路上的构件都将被循环执行,在闭合回路中只要有 程与子流程的控制流的切换。 条连接弧上的条件为 false,那么整个循环宣告结東。在循环 每一个独立的流程中只能有一个开始节点,但可以有多个体及循环体向下连接部分,基于工作流引擎调度算法中要优先 终止节点。因为流程可能会在不同状态下结束。 调度循环体,而仅当循环体执行完,才能继续向下执行。在循环 子流稈节点允许多层嵌套子流稈,子流稈节点不作为所负控制中,同样要注意循环条件的构造.避免条件永远为真而造 载子流程的起始节点和终止节点。它仅负责主流程与子流程的成死循环。 控制流切换。所嵌套子流程自身有起始节点和终止节点。子流 (4)带子流程的复合控制(如图7) 程不允许自身嵌套 ②将文献[23所定义的三种连接弧综合为一种有向连 接弧。 实际工作流由一系列节点和有向连接弧组成。基于构件库 的工作流可以理解为一个有向图构成。有向图中的节点元素表 图7夏合流程示意图 示可执行的任务,它被映射到构件库中的一个构件功能,节点 间的连接弧代表过程中的控制流。以连接弧体现过程逻辑,数 S表示开始( Start)节点,E表示终止(End)节点,C表示普 据的传递主要体现在构件参数之间的传递,再加上连接弧上的通( Common)节点,S表示子流程( Subnode)节点。 条件,就实现了用工作流的逻辑控制能力驱动构件的运行。 223其他工作流执行服务 为了适应工作流的移植性和扩展性,系统为流程设计提供 系统数据库清晰地记录了工作流建模中设计活动网络图 了一定数量的模板,用户在可视化的客户端程序通过简单的拖及其相互关系,只要将数据库记录按照一定的协议导出成 拽实现业务和逻辑控制的工作流建模,并允许设计模板的数据XPDL文档,再转发给异构的工作流系统。对方按约定协议解 862008,44(10) Computer Engineering and Applications计算机工程与应用 析ⅹML文档即可转换为相应的工作流模型,从而实现异构工程变化时只需要局部重建工作流模板,配置相应处理构件和权 作流系统的交互式的操作 限即可,甚至不需要去编译,调试就能再次启动应用系统,保持 224客户端程序 了工作流系统的灵活性和扩展性 工作流管理系统提供客户端可视化界面。目前工作流建模 (4)封装性高:通过构件库可以对外统一暴露调用接口,构 部分需要在服务器端进行配置,而权限管理部分可以通过Bs件库内部的变化不影响上层调用 模式的浏览器直接登录系统进行配置管理。 合作是指构件与工作流统一于业务应用流程,流程节点将 225被调用应用程序 各种层次和粒度的构件与工作流节点的直接绑定来实现业务 被调用的应用程序在本文前面重点描述的功能构件。工作应用目标。对于程序员来说,工作流与构件库的结合就是将 流建模中每一个节点都可以绑定一个构件。当流程驱动到当前个代码段(动态库,类,程序集)映射到一个流程,代码中的各个 节点时,系统将建模过程中节点预置的参数传给绑定的构件,函数映射为构件库中相应的构件,构件需要工作流引擎的调度 执行构件代码实现其相应功能。节点间的流程跳转通过连接节运行才能完成相应的功能。 点的有向连接线上的条件来实现。一个流程就是一连串按照条2.4编程的可视化 件执行预置构件的过程,以此来实现程序的逻辑控制从而实现 从汇编语言开始,人们就已经习惯用代码方式进行软件设 实际的业务流程 计,随着计算机技术的发展,编程语言及手段都在不断提高,可 226管理与监控工具 视化编程的出现正在逐步取代传统的手工编码方式。现在的可 为适应各个业务环境下不同用户角色与权限设置,在设计视化编程还主要集中在界面的可视化,编码的可视化即搭建式 工作流管理系统时,单独建立了一个开放式的机构管理模块 °开发领域较少有人涉足。在基于构件库/工作流的可视化软件 用来配置系统用户的机构,职务与特殊功能集。工作流节点的 开发中,假设基础构件足够完备时,仟何程序功能的实现都可 操作权限可以赋给机构(即机构内所有用户),单个用户,或者 以归结为对现有构件的组装,编码的可视化即可转换为构件的 某个职级的部分用户。不同级别之间的操作权限允许向下传 可视化组装,极大地降低了软件开发的门槛,更多的程序员将 递。对于用户机构、职务交错的特别操作允许以功能集的方式 从手工编写代码的工作中解脱出来 给特定用户赋权。 在工作流监控方面,流程设计过程中允许任意节点的热拔 将构件映射为流程节点上的活动,由连接弧上的条件控制 插,提供所见即所得的实时调试功能,并支持在节点和连接线来判定构件之间的运行次序。构件运行过程中参数的传递以及 上设置断点跟踪,而无需更改设置和频繁编译,为设计人员节参数的生命周期由构件库进行维护。在工作流可视化编辑环境 省了大量的调试时间。 中必须嵌入构件库的可视化表达。构件库可以采用树形结构按 该工作流设计模型提供了完整的工作流元素概念定义和照功能进行分类,用户在进行编程时只需要籽构件库中的构件 向流程面板中拖放,鼠标操作连接弧上的各个节点,通过界面 表达能力,且能随业务流程的变化而实时优化,总的说来,一定配置连接狐上的条件和节点上的传递参数,就可完成一个复合 程度具备文献(26提出的理想工作流模型的6点要求,即(1)形构件的可视化组合。在构件库完备的情况下,基于构件/工作流 式化要求。(2)图形化特征。(3)较完整的表达能力。(4)层次性。 可视化软件开发可以实现无编码的快捷编程。 (5)便于性能分析与优化。(6)柔性。 由于这种可视化开发方法对等于手工编写代码,因此适合 23构件与工作流的相互依赖 自下而上的软件开发,也适合CS,B/S的模式的开发。随着构 基于工作流构件可视化开发包括业务流程的建立和应用件库对外服务能力的增强,构件库可以部署在 intranet/internet 功能的实现两个部分,分别由工作流和构件库中的构件来实上对外提供功能服务。使用这种方法成功地开发了MapG可 现。两者相对独立,而又紧密合作 视化搭建平台,为用户提供了全新的可视化开发手段,证实了 独立是指构件和工作流的设计开发均可以脱离于对方环该方法的可行性。 境独立进行,彻底从软件开发角度将功能和控制逻辑分离,从 当然,不可否认,基于构件库/工作流的软件可视化开发方 而提高软件开发的效率。构件库负责管理构件运行的环境及调法目前还存在一些有待改进之处构件运行与流程控制逻辑分 用构件运行,返回工作流引擎关心的结果,维护调用状态(如 离带来了一些性能损失,不适合做性能要求非常高的功能。原 变量的生命周期,参数传递等),而工作流引擎完全负责解释构子粒度密集的复合构件也会影响系统的性能,建议首先采用编 件的执行逻辑,并将任务交给构件库去执行。 码方式实现中粒度的领域通用构件,然后再用领域通用构件来 构件运行与流程控制分离还有如下优势: 构建系统,有助于提高系统的性能。可视化工作流设计部分有 (1)部署灵活:构件库的部署可以与工作流的部署分开,它待进步丰富操作元素和界面,以增强系统的表现能力。 们即可以运行在本地,也可以运行在远程;运行的PC环境可 以相同,也可以不同;可以进程内,也可以在不同的进程中,这3结论与展望 种特性使开发出来的应用系统可以实现分布式; 在基于构件的软件开发方法下,程序开发模式也相应地发 (2)开发快捷构件库可以作为独立产品并行开发;流程与生了根本变化,软件开发不再是算法+数据结构,而是构件开 功能的分离简化了过程定义的复杂度,可先对已知的流程进行发+基于体系结构的构件组装。在基于构件库工作流的可视 定义,把未知部分流程留待构件完备后进行设计,也缩短了开化软件开发模式中,软件开发将更为简捷:软件开发=构件组 发周期; 装+流程拼接,称之为搭建式开发。目前,软件开发者已经从注 (3)扩展方便:构件库和工作流允许用户随意扩展和改装。重构件重用性开始转向构件库的体系结构建设,尚缺乏通用成 例如:可以增加构件库的负载均衡和系统过滤功能等;业务流熟的构件库管理系统。本文认为构件库系统应该象数据库系 张成,吴信才,罗津,等:基于构件库/工作流的可视化软件开发 2008,44(10)87 统一样去发展,通过不断抽象而最终建立相对成熟的符合 Based Systems(IEEE ECBS 2000), Edinburgh, Scotland, UK, 2000 定通用规范的标准构件库。就像数据库系统通过实现数据与13] Caballero r, Demurjian. Towards the formalization of a reusabil- 程序的分离而得到广泛应用一样,构件库/作流的可视化开 y framework for refactoring[ C]/Gacek Ced LNCS 2319: Proc of 发模式实现了流程与功能的分离以及无编码软件开发,将来也 the 7th Intil Conf on Software Reuse. Berlin: Springer-Verlag 定会受到人们的青睐,成为构建各种应用系统必不可少的基 2002:293-308 础设施。 [14] Alda S, Cremers A B Towards composition management for com ponent-based peer-to-peer architectures[J]. Electronic Notes in Theoretical Computer Science, 2005(114): 47-64 参考文献: 「15]金正晔.工作流系统的构件化开发门计算机工程与设计,2006,27 [1] Mcllroy M D Mass-produced software components, software engi (23):4592-4595 neering concepts and techniques[C]/1968 NATO Conference or[l6罗海滨工作流技术综述软件学报,200,01(7:89907 Software Engineering, Van Nostrand Reinhold, 1976: 88-98 17]付伟.工作流技术综述J河北北方学院学报:自然科学版,2007, 2]马亮,孙艳春软件构件概念的变迁计算机科学,2002,29(4) 23(1):68-70 28-30 ∏18蒋国银工作流过程建模理论综述J计算机系统应用,2006(3): 3]艾萍构件柔性组装描述的形式化方法研究及其在水利领域的应 用[D南京河海大学,2005 [1陈丽萍基于构件的工作流系统J科技信息,2007(17):214-216 4赵俊峰软件构件标准概述信息技术与标准化,200(6:1013.20赵瑞东工作流与工作流管理技术综述科技信息,2007(8): 5]杨芙清构件技术引领软件开发新潮流J中国计算机用户,2005 105-107 (6):42-43 21]朱金华OA系统中工作流引擎的设计肌微计算机信息,2007,24 6]李朝辉基于构件复用技术的组态模型及平台研究[D大连:大连理 (5):216-217 工大学,2005 2】谢熹基于工作流的继电保护定值管理系统电网技术,2006,30 7]张建奋基于构件的Gs软件开发研究D杭州:浙江大学,2002 (16):64-68 [8]杨芙清软件复用与软件构件技术电子学报,199927(2):68-75.[23]范玉顺.一种提高系统柔性的工作流建模方法研究软件学报 9]潘颖,赵俊峰,谢冰构件库技术研究与发展[JJ计算机科学,2003, 2002,13(4):833-838 30(5):90-93 124]范玉顺工作流管理技术基础M]北京:清华大学出版社,2001 「10]费玉奎构件技术发展综述!河海大学学报:自然科学版,2004, 63-66 32(6):696-698 25]杨芙清软件复用及相关技术J计算机科学,1999,26(5):1-4. ∏ 11 Ye Yun-wen. An active and adaptive reuse repository system[C26]曾炜.工作流模型研究综述J计算机应用研究,2005(5):11-13 Proc of34 th Hawaii Intl Conf on System Sciences(HC-SS-34),[27]蒋建民基于组件和工作流技术的系统模型J计算机工程与应 Software Technology Track. Maui, HI IEEE Press, 2001-10 用,2002,38(15):63-64 12]GuoJ, Luqi. A survey of software reuse repositoriesψ Proc of the[28]孙瑞志,史美林,支持工作流动态变化的过程元模型J软件学报, IEEE Intl Conf and Workshop on the Engineering of Computer 203,14(1):62-6 (上接63页) 多项式拟合条纹垂直方向的灰度数据,用极值法计算条纹中心 的精确位置,既避免了细化条纹方法的方法误差,又提高了条 纹中心的定位精度。该方法适合于噪声比较严重的干涉条纹处 理分析系统 (b) (c) 参考文献: [1 Malgorzata K, Wolfgang O Fringe pattern analysis methods: up-to date review[C]/Rastogi P K, Gyimesi F International Conference on Applied Optical Metrology, SPIE, 1998, 3407: 56-66 [2] Ge Zong-tao, Tkeda Mitsuo. A high precision 2-D angle measure ment interferometer[C/Wolfgang O, Interferometry XI: Applications SPIE,2002,4778:277-287 3]戴福隆,王朝阳条纹图像的数字化自动分析处理技术之一:条纹中 图3模拟图像条纹中心定位 心法J光子学报,1999,28(8):700-706 移,而极值方法则在周边随机分布对于后续的拟合计算来说,团4张伟,刘剑峰,龙夫年等,基于Zmke多项式进行波面拟合研究J 细化方法导致等相位面整体偏移更多。定位误差比较大的部分 光学技术,2005,31(5):675-678 为条纹两端.当条纹被截断方向与条纹方向不垂直的时候,条5】章航晋图像处理和分析M北京清华大学出版社,199:9 纹延伸方向产生了改变导致结果偏差特别大,需要进一步进6李自勤,王骐,李琦,等激光成像系统图像散斑抑制算法比较J红 外与激光工程,2003,32(2):130-133 行研究,可行的方法是摒弃两端的数据。 「7]杨利红,施浣芳,陈智利,等基于CCD采集的Mah- Zehnder干涉 条纹图的处理算法J应用光学,2005,26(2):40-42 4结束语 8]陶卫,张敏,浦昭邦,等基于多项式拟合的条纹图象处理方法J光 本文采用先去噪后分割条纹,再细化条纹的方法,最后用 电工程,2000,27(6):34-36

...展开详情
试读 6P 论文研究-改进的自适应遗传算法及在背包问题中的应用.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    抢沙发
    一个资源只可评论一次,评论内容不能少于5个字
    weixin_38744375 欢迎大家使用并留下宝贵意见
    2019-09-13
    • 至尊王者

      成功上传501个资源即可获取
    关注 私信 TA的资源
    上传资源赚积分,得勋章
    最新推荐
    论文研究-改进的自适应遗传算法及在背包问题中的应用.pdf 9积分/C币 立即下载
    1/6
    论文研究-改进的自适应遗传算法及在背包问题中的应用.pdf第1页
    论文研究-改进的自适应遗传算法及在背包问题中的应用.pdf第2页

    试读已结束,剩余4页未读...

    9积分/C币 立即下载 >