一种从元模型生成实例图的方法及系统的制作方法

文档序号:6399710阅读:230来源:国知局
专利名称:一种从元模型生成实例图的方法及系统的制作方法
技术领域
本发明涉及一种软件开发的方法及系统,尤其是一种从元模型生成实例图的方法及系统,属于软件开发的技术领域。
背景技术
目前软件开发的主要方法主要有两类,一类是基于软件重用的思想,利用软件组件、中间件来快速形成所需的软件系统;另一类是基于软件自动生成的思想,利用相应领域的元模型,经过自动生成模型进而直接生成与模型对应的软件。与利用软件组件、中间件来快速形成所需的软件系统的技术路线比较,软件自动生成的技术路线的主要不同在于元模型可以作为一种领域描述语言提供给领域工程师使用,由领域工程师通过修改元模型生成的模型来修改所需的软件代码,而领域工程师通常不是计算机专家,可以不懂编程技术。所述相应的领域指一些特定工程领域,如自动控制系统设计,嵌入式系统设计,系统集成,乃至软件设计等。在这些领域中开发所需的软件系统需要建立这些领域特定系统的模型,如描述特定系统的类图。对这些领域的各种特定模型进行抽象,可以得到描述这些特定模型的模型,这就是所述的元模型。元模型也可以是类图。而由元模型可以生成符合相应领域系统需求的模型,这就是所述的元模型的实例或实例图。利用相应领域的元模型,经过自动生成模型而直接生成与模型对应的软件的技术目前尚不成熟,这一过程有诸多技术难点需要解决。而由元模型对应实例自动生成方法就是要解决的技术难点之一。在软件开发过程中,由元模型自动生成实例模型进而生成相应代码的方法,可以认为是开发特定领域应用软件的一种先进方法。目前已有一些软件开发环境支持从实例模型自动生成相应应用软件框架或部分代码(如ROSE平台可以根据类图生成程序中类和方法的框架),但不支持从元模型自动生成实例模型。在这些目前已有的软件开发环境中,从元模型生成实例模型的工作仍由手工完成。对于较为复杂的软件模型,这种从元模型生成实例模型的手工完成方式存在以下问题:
(I)、不能保证所生成实例模型的正确性。(2)、降低了开发效率。

发明内容
本发明的目的是克服现有技术中存在的不足,提供一种从元模型生成实例图的方法及系统,其能确保软件开发过程中从元模型生成实例模型环节中手工完成方式的正确性,提高操作的效率,适应范围广,安全可靠。按照本发明提供的技术方案,一种从元模型生成实例图的方法,所述从元模型生成实例图的方法包括如下步骤:
a、提供所需的元模型图形文件,将所述元模型图形文件中包含的类以及类之间的关系映射到第一关系中;
b、在上述第一关系中添加所需的应用环境约束条件,以形成对应的约束中转关系; C、将上述约束中转关系生成与应用环境约束条件对应的具体模型的第二关系;
d、将上述第二关系逆映射得到第二图形文件。还包括步骤e、将第二图形文件导入可视化软件开发环境中,通过所述可视化软件开发环境得到需要的实例图。所述步骤a中,元模型图形文件包括由UML描述的类形文件。所述步骤b中,在第一关系中添加所需的应用环境约束条件的方法包括在第一关系中添加属性列和属性值。所述第一关系为符合关系数据库的关系,所述元模型图形文件中包含的类以及类之间的关系对应于第一关系中的行。所述步骤C包括如下步骤:
Cl、扫描第一关系,将第一关系中表示类的行根据应用环境约束条件生成第二关系中对应实例的类的行;
c2、扫描第一关系,将第一关系中表示类间关系的行根据应用环境约束条件生成第二关系中对应实例的类间关系的行。所述步骤Cl中,所述第一关系中表示类的行为抽象类时,在第二关系中生成的对应为所述抽象类的部分或全部非抽象派生类。所述步骤c2包括如下步骤:
c21、当第一关系中表示类间关系行的两端均为抽象类,则任选一端的抽象类,并找到所述抽象类的非抽象派生类,对于每一个所述抽象类的非抽象派生类,执行步骤c22 ;c22、当第一关系中表示类间关系行的两端中有一端为非抽象类,另一端为抽象类时,则找到所述抽象类的非抽象派生类,对于每一个所述非抽象类的非抽象派生类,执行步骤c23 ;
c23、当所述第一关系中表示类间关系行的两端均为非抽象类时,根据应用环境约束条件直接生成第二关系中对应实例间的类间关系的行。一种实现从元模型生成实例图的系统,包括
第一可视化建模平台,用于生成元模型图形文件,并将所述元模型图形文件输入映射模块;
映射模块,用于将接收元模型图形文件,并将所述元模型图形文件中包含的类以及类之间的关系映射成第一关系;
约束关系添加模块,接收应用环境约束条件,并将所述应用环境约束条件添加到第一关系中,形成约束中转关系;
应用模型关系生成模块,接收约束中转关系,并根据应用环境约束条件,将约束中转关系生成第二关系;
逆映射模块,接收第二关系,并将第二关系中表示的类以及之间的关系逆映射得到第二图形文件;
第二可视化建模平台,接收第二图形文件,并由第二图形文件得到所需的实例图。所述第一关系为符合关系数据库的关系,所述元模型图形文件中包含的类以及类之间的关系对应于第一关系中的行。本发明的优点:利用第一关系表示元模型图形文件中包含的类以及类之间的关系,通过添加应用环境约束关系得到约束中转关系,并根据应用环境约束关系生成第二关系,由第二关系逆映射得到第二图形文件,第二图形文件通过可视化建模平台得到元模型的实例图,能确保软件开发过程中从元模型生成实例模型环节中手工完成方式的正确性,提高操作的效率,适应范围广,安全可靠。


图1为本发明的结构框图。图2为本发明的一种元模型图形文件的示意图。
具体实施例方式下面结合具体附图和实施例对本发明作进一步说明。为了能够确保从元模型生成实例图的正确性,同时提高开发效率,本发明所述从元模型生成实例图的方法包括如下步骤:
a、提供所需的元模型图形文件,将所述元模型图形文件中包含的类以及类之间的关系映射到第一关系中;
所述元模型图形文件是由统一建模语言UML (unified modeling language)描述的类形文件,所述类形文件可以在支持UML的软件开发环境中创建并导出,本发明实施例中,元模型图形文件为第一图形文件。所述第一关系为符合关系数据库的关系,所述元模型图形文件中包含的类以及类之间的关系对应于第一关系中的行。本发明实施例中,“关系”指数学集合论中的关系,图形文件中的“图”指数学图论中的图。描述同一事物的“关系”与“图”之间存在着一一对应,因而可以据此通过映射相互转换,即能够由元模型图形文件映射得到第一关系。由于UML类图描述了类以及类之间的关系,因此可以将类图表示成顶点的集合和边的集合,并进而用第一关系来表示这两个集合。为了方便起见,将顶点的集合和边的集合表示到同一个关系中,即所述两个集合的元素对应于所述关系的一行,利用关系的属性值标志元素是属于顶点的集合还是边的集合。本发明实施例中,元模型图形文件中的类映射为顶点的集合,元模型图形文件中的类间关系映射为边的集合。b、在上述第一关系中添加所需的应用环境约束条件,以形成对应的约束中转关系;
原则上,一个元模型图形文件可以生成无数个不同的实例。为了使从元模型生成的实例图符合需要应用环境的需求,必须将应用环境的特定信息添加到所述第一关系中,比如对元模型图形文件中某条边的生成实例数量的限制等等。这些应用环境的信息就是所述所需要的应用环境约束条件。本发明中,由于第一关系为符合关系数据库的关系,对所述关系添加特定应用环境约束条件可以通过对第一关系添加相应的属性列和对应行的属性值列实现的。C、将上述约束中转关系生成与应用环境约束条件对应的具体模型的第二关系;
由于从元模型图形文件生成的实例图仍然是一个由UML类图描述的模型,因此也可以用一个关系来表示。本发明实施例中,第二个关系就是表示所述元模型实例的关系。本发明实施例中,第一关系描述元模型图形文件,第二关系描述对应的实例模型。第一关系中的一行可以对应于第二关系中的O行、一行、或多行,究竟对应多少行取决于应用环境约束条件。为了确保层次清晰,确保生成实例模型的正确性,本发明第一关系通过添加的应用环境约束条件来生成第二关系,由第二关系通过逆映射得到第二图形,降低从约束中转关系直接生成第二图形文件的算法的复杂度。根据面向对象原理,抽象类不能有实例,只有非抽象类才能有实例;因此步骤c包括如下步骤:
Cl、扫描第一关系,将第一关系中表示类的行根据应用环境约束条件生成第二关系中对应实例的类的行;
对于所有表示顶点的行,根据约束条件生成第二个关系的若干顶点行。如果所述第一个关系的某顶点行表示的是抽象类,则根据所述要求在第二个关系中生成所述抽象类的部分或全部非抽象派生类的若干顶点行。所述第一个关系中,有些行描述顶点,称之为顶点行;有些行表示边,称之为边行。生成元模型的实例,首先生成元模型中类的实例即顶点的实例。若顶点行描述的是抽象类,则只能生成抽象类的非抽象派生类的实例。c2、扫描第一关系,将第一关系中表不类间关系的行根据应用环境约束条件生成第二关系中对应实例的类间关系的行。所述步骤c2包括如下步骤:
c21、当第一关系中表示类间关系行的两端均为抽象类,则任选一端的抽象类,并找到所述抽象类的非抽象派生类,对于每一个所述抽象类的非抽象派生类,执行步骤c22 ;c22、当第一关系中表示类间关系行的两端中有一端为非抽象类,另一端为抽象类时,则找到所述抽象类的非抽象派生类,对于每一个所述非抽象类,执行步骤c23 ;
c23、当所述第一关系中表示类间关系行的两端均为非抽象类时,根据应用环境约束条件直接生成第二关系中对应实例间的类间关系的行。执行步骤c23后,根据执行路径决定下一步的执行点。所述步骤c2的依据是面向对象原理,根据面向对象的原理,只有找到非抽象类时才能直接生成实例。d、将上述第二关系逆映射得到第二图形文件。当生成第二关系后,根据前述说明可知,由第二关系中表示的类以及类之间的关系,逆映射能得到第二图形文件,本发明实施例中,第二图形文件为XML (ExtensibleMarkup Language)格式的图形文件。将所述第二个图形文件导入到所述支持UML的开发环境中并打开,即可以得到所述元模型实例图。得到所述实例图后,可以进一步生成该实例图的程序框架甚至整个程序,至于能够生成到什么程度取决于开发平台的功能。本发明的软件可以作为从元模型到程序的软件自动生成开发平台的组成部分。如图1所示:为了实现从元模型生成需要的实例图,本发明的系统包括
第一可视化建模平台,用于生成元模型图形文件,并将所述元模型图形文件输入映射模块;
映射模块,用于将接收元模型图形文件,并将所述元模型图形文件中包含的类以及类之间的关系映射成第一关系;
约束关系添加模块,接收应用环境约束条件,并将所述应用环境约束条件添加到第一关系中,形成约束中转关系;
应用模型关系生成模块,接收约束中转关系,并根据应用环境约束条件,将约束中转关系生成第二关系;
逆映射模块,接收第二关系,并将第二关系中表示的类以及之间的关系逆映射得到第二图形文件;
第二可视化建模平台,接收第二图形文件,并由第二图形文件得到所需的实例图。所述第一可视化建模平台与第二可视化建模平台可以采用相同的平台,本发明实施例中,可以采用VP Ssuite4.2平台。
实施例如图1和图2所示:采用支持UML的开发环境VP Ssuite4.2平台绘制得到元模型图形文件,图2中为状态机模型的模型,一些物理过程或计算过程可以用状态空间来描述。状态空间一般包括初始状态、终止状态、状态的集合和从某一状态到另一状态的转换规则或条件-动作对的集合。状态机模型描述了状态空间的要素,而状态机元模型是对状态机模型的描述。从UML语义看,图1中有十个类或顶点,即状态机、抽象顶点状态、初始状态、抽象状态、复合状态、终态、简单状态、行动、转移、事件。这些顶点之间的边描述了类之间的关系。从状态机元模型语义看,顶点状态机表明该图是一个状态机的元模型图,该模型显示状态机由状态抽象顶点状态和状态之间的转换转移组成。抽象顶点状态可以是初始状态、复杂状态、终止状态或简单状态,转移是在某事件触发下的动作。所述元模型图形文件对于本发明的方法而言是已知的,对于本发明的算法或软件而目是输入。将所述元模型图形文件的矩形框视作顶点,矩形框之间的连接线视作边,再将所有所述顶点和边一一表示成相应的记录,可以将所述元模型映射到一个关系中,这就是所述的第一个关系。所述第一个关系可以由一个关系数据库表文件实现。在表示第一个关系的数据库表中,根据实际应用环境添加某些属性列和属性值。比如,可以根据具体应用,来设定元模型实例中终止状态的数量,简单状态的数量,边的特定顶点,等等。本实施例中,设定了顶点转移的实例个数为3。所述的这些设定是通过对表示第一个关系的数据库表添加某些属性和属性值实现的。本实施例中,在生成第二关系时,若扫描到描述抽象顶点状态的顶点行,则根据抽象类的语义,只能在第二个关系中生成初始状态、复合状态、终态或简单状态的对应行。生成第二关系后,由第二关系逆映射得到第二图形文件,本实施例中,将所述XML格式的第二图形文件导入到VP Ssuite4.2平台中,即可以得到所需的实例图。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种从元模型生成实例图的方法,其特征是,所述从元模型生成实例图的方法包括如下步骤: (a)、提供所需的元模型图形文件,将所述元模型图形文件中包含的类以及类之间的关系映射到第一关系中; (b)、在上述第一关系中添加所需的应用环境约束条件,以形成对应的约束中转关系; (C)、将上述约束中转关系生成与应用环境约束条件对应的具体模型的第二关系; (d)、将上述第二关系逆映射得到第二图形文件。
2.根据权利要求1所述的从元模型生成实例图的方法,其特征是:还包括步骤(e)、将第二图形文件导入可视化软件开发环境中,通过所述可视化软件开发环境得到需要的实例图。
3.根据权利要求1所述的从元模型生成实例图的方法,其特征是:所述步骤(a)中,元模型图形文件包括由UML描述的类形文件。
4.根据权利要求1所述的从元模型生成实例图的方法,其特征是:所述步骤(b)中,在第一关系中添加所需的应用环境约束条件的方法包括在第一关系中添加属性列和属性值。
5.根据权利要求1所述的从元模型生成实例图的方法,其特征是:所述第一关系为符合关系数据库的关系,所述元模型图形文件中包含的类以及类之间的关系对应于第一关系中的行。
6.根据权利要求5所述的从元模型生成实例图的方法,其特征是,所述步骤(c)包括如下步骤: (Cl)、扫描第一关系,将 第一关系中表示类的行根据应用环境约束条件生成第二关系中对应实例的类的行; (c2)、扫描第一关系,将第一关系中表示类间关系的行根据应用环境约束条件生成第二关系中对应实例的类间关系的行。
7.根据权利要求6所述的从元模型生成实例图的方法,其特征是:所述步骤(Cl)中,所述第一关系中表示类的行为抽象类时,在第二关系中生成的对应为所述抽象类的部分或全部非抽象派生类。
8.根据权利要求6所述的从元模型生成实例图的方法,其特征是,所述步骤(c2)包括如下步骤:(c21)、当第一关系中表示类间关系行的两端均为抽象类,则任选一端的抽象类,并找到所述抽象类的非抽象派生类,对于每一个所述抽象类的非抽象派生类,执行步骤(c22);(c22)、当第一关系中表示类间关系行的两端中有一端为非抽象类,另一端为抽象类时,则找到所述抽象类的非抽象派生类,对于每一个所述非抽象类的非抽象派生类,执行步骤(c23); (c23)、当所述第一关系中表示类间关系行的两端均为非抽象类时,根据应用环境约束条件直接生成第二关系中对应实例间的类间关系的行。
9.一种实现从元模型生成实例图的系统,其特征是,包括 第一可视化建模平台,用于生成元模型图形文件,并将所述元模型图形文件输入映射模块; 映射模块,用于将接收元模型图形文件,并将所述元模型图形文件中包含的类以及类之间的关系映射成第一关系; 约束关系添加模块,接收应用环境约束条件,并将所述应用环境约束条件添加到第一关系中,形成约束中转关系; 应用模型关系生成模块,接收约束中转关系,并根据应用环境约束条件,将约束中转关系生成第二关系; 逆映射模块,接收第二关系,并将第二关系中表示的类以及之间的关系逆映射得到第二图形文件; 第二可视化建模平台,接收第二图形文件,并由第二图形文件得到所需的实例图。
10.根据权利要求9所述实现从元模型生成实例图的系统,其特征是:所述第一关系为符合数据库的关系,所述元模型图形文件中包含的类以及类之间的关系对应于第一关系中的行。
全文摘要
本发明涉及一种软件开发的方法及系统,尤其是一种从元模型生成实例图的方法及系统,属于软件开发的技术领域。按照本发明提供的技术方案,一种从元模型生成实例图的方法,所述从元模型生成实例图的方法包括如下步骤a、提供所需的元模型图形文件,将所述元模型图形文件中包含的类以及类之间的关系映射到第一关系中;b、在上述第一关系中添加所需的应用环境约束条件,以形成对应的约束中转关系;c、将上述约束中转关系生成与应用环境约束条件对应的具体模型的第二关系;d、将上述第二关系逆映射得到第二图形文件。本发明能确保软件开发过程中从元模型生成实例模型环节中手工完成方式的正确性,提高操作的效率,适应范围广,安全可靠。
文档编号G06F9/44GK103116496SQ20131005911
公开日2013年5月22日 申请日期2013年2月25日 优先权日2013年2月25日
发明者朱嘉钢, 陆晓, 邓跃设 申请人:江苏晓山信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1