CN101303646B - 基于可执行元语言的电信领域建模方法 - Google Patents

基于可执行元语言的电信领域建模方法 Download PDF

Info

Publication number
CN101303646B
CN101303646B CN2008100508348A CN200810050834A CN101303646B CN 101303646 B CN101303646 B CN 101303646B CN 2008100508348 A CN2008100508348 A CN 2008100508348A CN 200810050834 A CN200810050834 A CN 200810050834A CN 101303646 B CN101303646 B CN 101303646B
Authority
CN
China
Prior art keywords
model
xkl
class
constraint
relation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2008100508348A
Other languages
English (en)
Other versions
CN101303646A (zh
Inventor
刘淑芬
王晓燕
彭君
张俊
韩璐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jilin University
Original Assignee
Jilin University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jilin University filed Critical Jilin University
Priority to CN2008100508348A priority Critical patent/CN101303646B/zh
Publication of CN101303646A publication Critical patent/CN101303646A/zh
Application granted granted Critical
Publication of CN101303646B publication Critical patent/CN101303646B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明的基于可执行元语言的电信领域建模方法属于电信网络管理的技术领域,具体涉及电信领域网络设备、网络性能、网络故障的建模方法和模型正确性的验证方法。建模过程的实现核心是适合电信领域的可执行元语言xKL;它指导元建模过程,描述并动态实例化领域模型,验证和执行实例化后的模型,使得生成的模型具有可执行性。本发明具有以下优点:具有良好的伸缩性和适应性;具有良好的重用性;对象模型的可执行性;领域模型可以在***需求和底层实现之间建立起良好的映射关系;可以缩短产品投放市场的时间,改善、提高产品质量,提高客户满意度。

Description

基于可执行元语言的电信领域建模方法
技术领域
本发明属于电信网络管理的技术领域,具体涉及电信领域网络设备、网络性能、网络故障的建模方法和模型正确性的验证方法。
背景技术
随着电信产业的飞速发展,各电信运营商之间的竞争日趋激烈,快速发展的用户群、多样化的业务以及经营竞争环境对电信企业的服务质量提出更高、更新的要求。面对市场挑战,电信运营商需要提高管理效率,提高网络管理水平。因而,建设一套跨平台的网络综合管理***势在必行,该平台能够从全网的高度,直观、综合、快速地对运营商电信业务网运行质量进行分析评判,进行故障发现、定位与排除,分析业务和客户影响性。在电信领域,网络设备多样化,网络业务多样化,领域建模的思想能够从根本上解决目前电信网络管理新业务、新设备不断发展给建设网络管理***带来的问题。
目前,流行的面向对象建模工具有Rational公司开发的Rational Rose。国内的有北大青鸟面向对象建模工具。这些建模工具基于一个共同的建模语言——统一建模语言。统一建模语言是对象管理组织发起的一个面向对象建模语言标准,目前已经成为了面向对象建模的标准。统一建模语言通过类、对象、关系等描述***的静态结构信息,通过序列图、状态转换图等描述***的动态行为。这种抽象化的对软件***地描述方便了开发人员之间思想的交流,也为文档处理提供了方便。统一建模语言是一个非常成功的建模语言,为软件过程的标准化、提高软件开发的效率做出了巨大的贡献。但是在实际应用的过程中也遇到了问题。最重要的问题就是统一建模语言目前还仅仅是应用在软件过程中的分析、设计阶段,使用该建模语言建立的模型是不可执行的,分析设计人员只能人工检验模型的正确性,这为模型的设计、代码的实现都带来了隐患。
发明内容:
本发明要解决的技术问题是,提供了一种基于可执行元语言的电信领域建模方法,并解决目前电信领域中领域模型建立后无法验证的问题。
模型是本发明所构建的***的功能、行为和结构的形式化表示,通过把领域模型表示成可执行模型,可以在领域层次测试模型的正确性,而不用考虑平台相关的问题,这样,领域模型永远不会因为技术的变化而过时,从而做到了可不断发展和可复用。
一种基于可执行元语言的电信领域建模方法,该方法包括以下步骤:
a)基于元对象设施(MOF)对统一建模语言进行扩展设计了一种适合电信领域的可执行元模型语言——xKL语言,并设计构建了基于xKL语言的建模工具和验证工具。
b)收集电信领域相关信息,把它们整合成领域模型并用可视化的组件描述成类图结构;用xKL填充类图中的约束以及静态语义部分,生成完整的图形化领域模型。
c)将图形化领域模型映射到完全基于xKL文本的电信领域模型。
d)从电信领域模型出发,根据需要解决的问题,选择领域模型中的类进行实例化,生成基于xKL的内存动态可操作对象,并将领域模型中类之间关系实例化为xKL内存对象之间的关系,形成对象模型。
e)执行领域模型中基于xKL的约束,验证对象模型中对象之间是否满足应有的约束,若不满足,则按照相应的约束动态修改模型,并返回修改的结果。
f)向模型中特定的对象发送指令,使其执行相应的方法,检验方法执行的效果。
所述的xKL语言由静态语法元模型和动态行为元模型组成,如图1所示。静态语法元模型是扩展了EMOF元模型,定义了表示模型所需的结构;动态行为元模型是对OCL做了***扩展,形成了xOCL语言,xOCL定义了对模型的操作。
从图1可知,xKL语言的组成更具体的叙述是:
1、静态语法元模型。EMOF是MOF2.0的基本核心,静态语法元模型通过扩展EMOF元模型,形成了xKL语言的语法结构部分。为了适应平台无关性的需求,它仅定义了一个模型所需要的结构,没有给出任何模型行为的规范。
2、动态行为元模型。行为元模型对OCL作了***扩展,形成了xOCL语言。xOCL规范完全基于UML和MOF的核心定义,这使得它可以被应用到MOF和UML中。由于EMOF是不可执行的,因此需要添加一些行为元素,通过在OCL语言中添加对模型的一些操作形成行为元模型,结构模型和行为模型通过在类的操作体中书写行为语句进行联系。
基于xKL语言的建模工具和验证工具的***架构如图2所示。图2中,最底层为Java虚拟机JVM部分,为可执行元模型的虚拟机提供基本指令支持。可执行元模型的核心语义的一部分和基本的输入输出采用Java实现,而其余扩展部分可由可执行元模型自身实现。可执行元模型虚拟机基于JVM实现,可执行虚拟机对可执行元核语言xKL的模型提供虚拟解释执行环境。xKL在EMOF虚拟机上提供基本的可执行模型概念,其它的可执行元模型基于xKL实现。xOCL提供约束语言,用于可执行元模型及其描述的其它模型语言提供抽象语法概念形式良好的关系的约束或模型查询功能。
领域信息主要来源于已有标准,已有***,领域专家,需求手册等。
所述的领域模型,包括从电信领域内抽象出来的概念,即类和类之间的关系。类之间的关系主要有继承、关联、聚合。继承关系是一般类与特殊类的关系,父类可以描述所有子类之间所有共同的属性和操作。关联是类之间的连接关系,使一个关联端知道另一个关联端的属性和方法,分为单向和双向关联。聚合是单向关联关系的一个特例,表示一个关联端拥有另一个关联端。
类图中的约束包括两种:类中的约束和方法中的约束,前一种约束描述为类中的成员,后一种描述为方法中的前置条件和后置条件。
所述的将图形化领域模型映射到完全基于xKL文本的电信领域模型,是一种图文法到文本文法的静态映射,主要有:图文法中的类元素映射到xKL中的class;聚合映射到xKL中的attribute;关联映射到xKL中的reference;继承映射到xKL中的inherits关系;其它文法填充元素(约束和方法等)直接原始映射到xKL文法中。
所述的类之间关系,可以实例化为xKL内存对象之间的关系,即,是将原有的关联关系实例化为xKL内存对象之间的引用关系,将原有的聚合关系实例化为xKL内存对象之间的属性关系。
在形成对象模型之后,应当进行验证过程,在领域层次测试模型的正确性,把领域模型表示成可执行模型。
所述的验证,是验证对象模型中对象之间是否满足应有的约束,包括语法映射、约束检查和方法执行。
采用以上架构建立的元模型和对象模型都是可验证的,保证了当用户需求发生变化时,可以在PIM层次验证模型的正确性。建模过程中模型可执行性主要表现在以下方面:
1、领域模型可验证性和正确性
建立领域模型主要有三个步骤:创建基于图文法领域框架模型;使用xKL文法对图元素的内容填充;最后把同时混有图元素和xKL文法的类图映射到完全基于xKL文法的领域模型。首先,领域模型可验证性可以全部转化为xKL元语言的文法验证,显然xKL元语言的文法是可验证的;其次,领域模型的正确性关键在于框架模型中图形元素到xKL文法映射是否是一一对应且正确,由于xKL元语言是完全基于MOF的,而MOF中对元数据给出了相应的图文法示例,本发明使用的图元素也是参考MOF规范文档的。
2、模型的动态可执行性
模型的最终表示形式是一个对象图,它逻辑上描述了这个模型中的对象以及对象之间的关系。模型是否动态可执行主要表现为:模型中对象之间满足的约束能够动态得到验证;对象自身的信息能够根据需要动态修改;不同对象之间能够相互协作模拟模型特定的工作流程。在模型中要实现以上动作,则必须将这些动作翻译成可执行指令在机器上运行。由前面可知,模型的对象图是通过xKL生成的,这就为模型的可执行性映射为xKL的可行性提供了条件,而相应的模型所执行的动作可以映射为xKL语言的动作语义。综上,根据xKL是可执行性,不难得出模型的动态可执行性。
综上,整个建模过程的实现核心是可执行元语言xKL。它指导元建模过程,描述并动态实例化领域模型,验证和执行实例化后的模型,使得生成的模型具有可执行性。
实施该方法建立电信领域模型及其实现该方法的软件具有以下优点:
1.具有良好的伸缩性和适应性。可以根据通信领域的不同情况,通过修改模型及模型之间的关系重新生成新的领域模型,形成新的领域应用。
2.具有良好的重用性。一个完整的领域模型可以是多个小的领域模型的组合,是低耦合的,每个小的领域模型都具有独立的完整逻辑,都可以实现不同程度和不同粒度的重用,还可以通过一定程度的修改迁移到相近的领域中。
3.对象模型的可执行性。在内存中实例化创建的对象模型,并可以模拟方法的执行,通过方法之间的调用实现程序功能的模拟。
4.领域模型可以在***需求和底层实现之间建立起良好的映射关系,这不仅满足了需求分析人员、开发人员的需要,也提高了模型之间的可追踪性以及建模结果的可复用性。
5.可以缩短产品投放市场的时间,改善、提高产品质量,提高客户满意度。
6.与背景技术相比较,本发明设计了一种适合电信领域的可执行元模型语言——xKL语言;采用了元建模、建模的两步的建模方法;经过验证的过程,证明建模方法在电信领域的可执行性。
附图说明
图1是本发明的可执行元语言xKL的形成过程图。
图2是本发明的基于xKL语言的建模工具和验证工具的***架构图。
图3是本发明的一个具体的网络领域元模型结构图。
图4是本发明的一个具体的网络领域对象图。
具体实施方式
实施例1  建立元模型
首先,领域专家和建模人员对领域知识进行抽象,通过领域工具建立领域元模型。包括建立领域概念和领域关系以及领域约束,还包括模型元素呈现的图标,复杂模型元素内部结构的视图等等。
图3是一个具体的网络领域元模型。
该元模型说明,一个网络拓扑图包括一个或者多个元模型元素:路由器(Router)、交换机、主机(Host),此外,各元素之间的关系也需要作为一种元建模元素包含进来,包括关联关系和聚合关系。一个路由器和交换机可以包含一个或者多个端口(Port),采用聚合关系表示,而路由器和交换机、交换机和服务器之间的链路,采用关联关系进行表示。同时需要对元模型中的元素进行约束。如路由器需要作为整个网络的核心设备,需要采用双CPU引擎的路由器,而且路由器要求配备快速以太网口。因此路由器上的约束可以写成
Router.CPUNum==2
Router.fastEthNum==1
同理,在交换机上的约束是要求有2个快速以太网口,
Switch.fastEthNum==2
实施例2  建立模型
建模时,可以根据领域元模型所建立的各种类型元素及其关系来建立相应的模型对象。
如图4所示,建立了一个网络模型,即网络核心采用了2台CoreBuilder9000,它们是通过2条千兆以太网链路互连在一起的,这样即提高了可靠性,又增加了2个设备之间的带宽。每台CoreBuilder 3500通过2条光纤快速以太网链路分别连至不同的CoreBuilder 9000,所有的服务器均插有2块网卡,分别接不同的核心交换机上,从而形成一个高可靠和高带宽的网络骨干。当想要在路由器之间,交换机和路由器之间建立链路时,领域模型工具的约束验证器将进行验证,保证这种不符合领域元模型的建模行为不会发生。从而保证了建立的模型遵循领域知识。
实施例3  验证模型的正确性
(1)语法映射
对网络领域模型图进行语法映射,将它映射成xKL表示的逻辑图,这部分功能由图形元素到文本元素的转换器实现,转换后的代码如下:
abstract class Device{
    //表示Device与Port之间的聚合关系
    attribute ports:Port[1..*]
    attribute deviceType:String
}
class Router extends Device{
     attribute cpuNum:Integer
     property fastEthNum:Integer
         getter is do
             this.ports.each{e|
               if(e instanceof FastEthernet)
                      result:=result+1
             }
         end
    //Router到Switch的关联,且指定自己的参与角色名为
routers
     reference switches:Switch[1..*]#routers
     //Router中CPU数量满足的约束
     constraint cpuNumConstraint is do
         this.cpuNum=2
     end
     //Router中快速以太网数量满足的约束
     constraint fastEthNumConstraint is do
         this.fastEthNum==1
     end
     //设置Router中的CPU数量
     operation setCPUNum(num:Integer):void
          //前提条件:设置的数量应该满足非负的隐形约束
          pre notPositiveInput is do
               num>0
          end
     is
          do
              this.cpuNum=num
         end
     //获取Router中的CPU数量
     operation getCPUNum():Integer
         //后置条件:获取的数量应该满足非负的隐形约束
         post notPositiveOutput is do
              num>0
          end
     is
          do
              result=num
          end
}
class Switch extends Device{
     attribute fastEthNum:Integer
     //Switch到Router的关联,且指定自己的参与角色名为
switches
    reference routers:Router[1..*]#switches
    constraint fastEthNumConstraint is do
             this.fastEthNumConstraint==1
    end
}
class Sever extends Device{
    attribute fastEthNum:Integer
}
class Port{
}
接下来由xKL的语法检查器自动检查生成的xKL代码,从而取代对图形化类图的语法检查。程序自动生成语法检查的结果,以文字报告的方式显示给元建模人员,报告的内容包括被创建的类的数量,关系的数量,约束的数量等,以及它们的明细单。若语法检查产生错误,则报告中给出修改的建议,并将错误自动定位到相应的图形元素上。例如Router::setCPUNum()方法体中“num>0”修改为“nun>0”,***提示“undefined variable“nun”!”并将图元素Sever显示为红色。
(2)约束检查
建立模型时,根据领域模型中的类创建相应对象,例如创建一个HWRouter对象coreRouterL,创建一个CiscoRouter对象coreRouterR等等。创建模型之后,可以实时检查coreRouterL和coreRouterR所满足约束,验证约束的动作翻译成如下代码:
//设置coreRouterL的CPU数量
coreRouterL.setCPUNum(2)
do
       //获得coreRouterL的快速以太网口数量
       coreRouterL.fastEthNum.getter
       //检查coreRouterL所有的约束成员
       coreRouterL.checkConstraints
       //捕获验证产生的异常信息
       rescue(err:ConstraintException)
       //处理验证产生的异常
       stdio.writeln(err.toString)
       stdio.write(err.message)
end
同理,可以按相同方式处理coreRouterR和其它设备满足的约束。根据被捕获的异常信息,相应地修正模型图,甚至修改领域模型图来达到目的。若根据需要,需要升级网络硬件设施,例如要求coreRouterR的快速以太网口数量达到3个,则需要修该领域模型图,使得Router的快速以太网口数量满足数量约束3;然后再修正模型中coreRouterR实际连接的以太网口数量;接着再验证模型的约束。
(3)方法执行
模型图展现的是一张内存对象图,可以直接通过模型图上的元素,调用模型中对应对象的方法,例如coreRouterR具有方法getCPUNum(),则可以通过鼠标事件激活它的调用。

Claims (6)

1.一种基于可执行元语言的电信领域建模方法,该方法包括以下步骤:
a)基于元对象设施对统一建模语言进行扩展设计了一种适合电信领域的可执行元模型语言——xKL语言,并设计构建了基于xKL语言的建模工具和验证工具;所述的xKL语言由静态语法元模型和动态行为元模型组成;静态语法元模型是扩展了EMOF元模型,定义了表示模型所需的结构;动态行为元模型是对OCL做了***扩展,形成xOCL语言,xOCL定义了对模型的操作;
b)收集电信领域相关信息,把它们整合成领域模型并用可视化的组件描述成类图结构;用xKL填充类图中的约束以及静态语义部分,生成完整的图形化领域模型;
c)将图形化领域模型映射到完全基于xKL文本的电信领域模型;
d)从电信领域模型出发,根据需要解决的问题,选择领域模型中的类进行实例化,生成基于xKL的内存动态可操作对象,并将领域模型中类之间关系实例化为xKL内存对象之间的关系,形成对象模型;
e)执行领域模型中基于xKL的约束,验证对象模型中对象之间是否满足应有的约束,若不满足,则按照相应的约束动态修改模型,并返回修改的结果;
f)向模型中特定的对象发送指令,使其执行相应的方法,检验方法执行的效果。
2.按照权利要求1所述的基于可执行元语言的电信领域建模方法,其特征在于,所述的领域模型,包括从电信领域内抽象出来的概念,即类和类之间的关系;类之间的关系包括继承、关联、聚合;其中,继承关系是一般类与特殊类的关系,父类可以描述所有子类之间所有共同的属性和操作;关联关系是类之间的连接关系,使一个关联端知道另一个关联端的属性和方法,分为单向和双向关联;聚合关系表示一个关联端拥有另一个关联端。
3.按照权利要求1所述的基于可执行元语言的电信领域建模方法,其特征在于,所述的类图中的约束,包括类中的约束和方法中的约束,类中的约束描述为类中的成员,方法中的约束描述为方法中的前置条件和后置条件。
4.按照权利要求1所述的基于可执行元语言的电信领域建模方法,其特征在于,所述的将图形化领域模型映射到完全基于xKL文本的电信领域模型,是一种图文法到文本文法的静态映射,包括:图文法中的类元素映射到xKL中的class;聚合映射到xKL中的attribute;关联映射到xKL中的reference;继承映射到xKL中的inherits关系;约束和方法直接原始映射到xKL文法中。
5.按照权利要求1所述的基于可执行元语言的电信领域建模方法,其特征在于,所述的类之间关系,是实例化为xKL内存对象之间的关系,即,是将原有的关联关系实例化为xKL内存对象之间的引用关系,将原有的聚合关系实例化为xKL内存对象之间的属性关系。
6.按照权利要求1所述的基于可执行元语言的电信领域建模方法,其特征在于,所述的验证,是验证对象模型中对象之间是否满足应有的约束,即语法映射、约束检查和方法执行。
CN2008100508348A 2008-06-18 2008-06-18 基于可执行元语言的电信领域建模方法 Expired - Fee Related CN101303646B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100508348A CN101303646B (zh) 2008-06-18 2008-06-18 基于可执行元语言的电信领域建模方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100508348A CN101303646B (zh) 2008-06-18 2008-06-18 基于可执行元语言的电信领域建模方法

Publications (2)

Publication Number Publication Date
CN101303646A CN101303646A (zh) 2008-11-12
CN101303646B true CN101303646B (zh) 2010-07-28

Family

ID=40113563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100508348A Expired - Fee Related CN101303646B (zh) 2008-06-18 2008-06-18 基于可执行元语言的电信领域建模方法

Country Status (1)

Country Link
CN (1) CN101303646B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102270130A (zh) * 2011-06-27 2011-12-07 浙江工业职业技术学院 一种运行时自适应软件体系结构的形式化描述方法
CN103166793A (zh) * 2013-01-31 2013-06-19 北京佳讯飞鸿电气股份有限公司 基于元模型的服务配置方法
CN103873297A (zh) * 2014-03-14 2014-06-18 浪潮通信信息***有限公司 一种数据采集处理***逆向继承建模的处理方法
CN103955369B (zh) * 2014-04-28 2017-05-17 中国人民解放军理工大学 一种基于扩展uml的软件模糊自适应建模工具构造方法
CN109359331B (zh) * 2018-09-07 2023-06-27 华东师范大学 基于可执行领域特定建模语言xSHS的CPS动态行为建模与仿真方法
CN116414376B (zh) * 2023-03-01 2023-09-15 杭州华望***科技有限公司 一种基于通用建模语言的领域元模型构建方法

Also Published As

Publication number Publication date
CN101303646A (zh) 2008-11-12

Similar Documents

Publication Publication Date Title
Malavolta et al. Providing architectural languages and tools interoperability through model transformation technologies
Guerra et al. Automated verification of model transformations based on visual contracts
Hu et al. Mapping UML Diagrams to a Petri Net Notation for System Simulation.
CN103198009B (zh) 一种通用测试方法、***及相应装置
CN109254905B (zh) 基于工作流的分布式并行自动化测试***
CN101303646B (zh) 基于可执行元语言的电信领域建模方法
Engelen et al. Integrating textual and graphical modelling languages
CN105224447A (zh) 发动机控制器软件诊断模块测试方法及测试***
EP1573524A2 (en) Model-based composable code generation
US7093264B2 (en) Method and apparatus for assembling Enterprise JavaBeans components
CN100561476C (zh) 一种基于asn类型对象的代码生成方法
CN103942086A (zh) 基于aadl的创建、分析和仿真混成***模型的方法
Gomaa et al. Automated software product line engineering and product derivation
Haitzer et al. DSL-based support for semi-automated architectural component model abstraction throughout the software lifecycle
Handley et al. Maintaining the consistency of sysml model exports to XML metadata interchange (XMI)
CN100417075C (zh) 接口测试方法
CN103971225A (zh) 一种工作流动态扩展方法及***
Kappel et al. Leveraging model-based tool integration by conceptual modeling techniques
CN112784417B (zh) 一种基于SysML的航电分布式联合仿真方法及***
Grau et al. A validation system for object-oriented specifications of information systems
Park et al. A component model supporting decomposition and composition of consumer electronics software product lines
Jang et al. Design of an Algorithm for the Validation of SCL in Digital Substations
CN108595166A (zh) 一种分布式物联网应用执行引擎实现方法及***
Ajit et al. Model-based tool support for Tactical Data Links: an experience report from the defence domain
Kozaczynski et al. Architecture specification support for component integration

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100728

Termination date: 20150618

EXPY Termination of patent right or utility model