软件测试面向系统建模的模型集成[3] 软件测试工具
关键字:系统建模 模型集成
• 同一领域同一问题同一模型类的两个模型实例的接合;
• 同一领域同一问题不同模型类的两个模型实例的接合;
• 同一领域不同问题的不同模型类的两个模型实例的接合;
• 不同领域的不同问题的不同模型类的两个模型实例的接合;
其中类型( 1-3 )的集成由于涉及建模领域和问题的混杂属于病态结构问题,只有当其他类型的集成讨论清楚后才好深入讨论。显然, 4<5<6 和 7<8<9<10 ;这里 < 表示更容易研究。这样的偏序关系用于指导研究投入的分配是很谨慎的,因为功能集成不必像纵深集成那样协调不同的模型类或实例。它更适合处理更难研究的集成类型,所以功能集成比纵深集成更实际些。类型 (8-10) 可能没有多少意义,因为多数基于模型的工作更多地关注模型的类。在这样的前提下, Geoffrion 认为应当更关注类型 (4-7) 。如果类型 (4-5) 的研究没有显著的进展时,类型 (6) 的研究也是很难深入的。文 [14] 给出了各种类型的例子。
• 集成建模环境
自 1988 年以来集成建模环境 (integrated modeling environment) 就是夏威夷国际系统科学会议知识与决策支持系统主题中的一个分主题,讨论包括模型管理方面所有的论题并围绕决策支持建模有关的不同的理论与实践问题。 IME 可加快模型集成的过程,主要用于模型集成的快速实现。在模型实现过程中需要考虑 4 个原则: ① 模型数据的独立性; ② 模型求解器的独立性; ③ 模型模板的独立性; ④ 元表达和元推理。
电子数据表和计划系统是很流行的模型实现工具;但它们不支持模型数据的独立性,因为每个电子数据表模型是一个模型实例。这在理解、验证和维护方面限制了模型的规模。不过电子数据表保证求解器的独立。如这些工具中有优化模型、回归模型,它们互有联系。
此外建模语言及其支持环境也是一种 IME 。代数建模语言是一种提高建模效率的工具,较有名的有 GAMS [15] 和 AMPL [16] 。 GAMS 支持求解器独立,但不支持模型数据或模板独立。 AMPL 支持模型数据和求解器独立,但不支持模板独立。没有一种代数建模语言支持元表达或推理。关系型建模语言则根据一些数学规划模型扩展了数据库中常用 SQL 语言。这种方式最显著的优点是采用数据字典获得一些元信息,以支持元推理。还有基于三种模型表达而发展的模型语言如结构建模语言有 SML ,逻辑建模语言 TEFA [17] 和图建模语言 NETWORKS [8] 。它们的设计发展也努力遵循模型实现的四原则。
模型集成支持工具的发展紧随技术进步,如软件集成提高了支持模板集成的建模环境的可行程度,互联网技术特别是分布式计算触发了新一代的模板集成,还有软件工程领域基于面向对象的分析与设计的统一建模语言 (unified modeling language –UML) 等等。
Agent 技术为系统建模和 IME 的发展提供了新的契机。马里兰大学开发的集成建模工具箱 (integrating modeling toolkit – IMT) 是一个功能全面可扩展的集成建模环境,其中可定义并能共同使用模型组件,建模者可创建由 IMT agent 组成的 IMT 世界,这些 agent 在建模过程中完成各自的任务。 IMT agent 的核心集合可以描述一般性的、模块化的、分布式的模型组件,它们分别完成诸如简单计算、仿真、优化、 GIS 分析和高级的统计分析,这些 agent 很容易与上一层的仿真粘合起来,从而集成了不同的模型模板和工具集 (http://ima.umces.edu/) 。这些巨大的进步反映了人们对模型集成视角的变化。国内也有一些基于 agent 技术的专用 IME [18] 。下面我们讨论如何实现模型集成。