写点什么

元模型驱动(三):构建我们自己的元模型 -KAYA

用户头像
KaYa
关注
发布于: 2020 年 11 月 02 日

我们的目标是建立一个通用的元模型驱动引擎平台!!!

元模型-KAYA 基本构成

(一)模型的世界(KaYa 的基础概念

老子<<道德经>>中里有一句话:一生二,二生三,三生万物。

客观世界里,组成万物的基础就是原子,原子又具有自己的组成特性。

基于上面的思维,我们需要在元模型里面创建我们自己的具有原子特性的元素。

举栗子:员工这个实体,具有名字,性别,年龄,身份证号码等属性。那么描述这些属性的元素,我们暂时可以把它看成是单个的原子。是描述系统元素的最小单位。我们可以叫它--Property

Property 是我们这个模型驱动系统里面的最小单位。

但是我们知道,原子也是有很多特性,比如说铁原子,原子核数等决定了原子的分类。所以我们需要赋予 Property 一些特性,用来区分不同的属性。为了建立全模型驱动,在软件世界中需要哪些属性呢?我们要照顾前台,数据库,还有业务操作。我们需要给 Property 提供一下属性。

关键字,类型,长度... ...等信息。不然我们的模型就没办法区分这些原子。

Property 被赋予了以下属性:

ObjectID:全局唯一的标识 ID(具有系统全局唯一性,是我们这个系统里面最重要的概念)

Name: 字段的名称

KindKey:关键字

DataType:字段类型

DefaultValue:默认初始值

DataLength:字段长度

ComponentType:前端的组件名称

Format:验证信息

StartDate:字段的有效开始日期

EndData:字段的有效结束日期

IndexNo:字段的排列顺序(只针对于前台 UI)

Comments:字段描述等信息

原子有了,我们用原子的组合来表示我们具体的客观世界。

举栗子:我们用上面的原子外加原子特性来实现我们软件系统中人的概念。

我们用关键字 Role 来作为原子的集合。

Role 被赋予了以下属性:

ObjectID:全局唯一的标识 ID(具有系统全局唯一性,是我们这个系统里面最重要的概念)

Name: 字段的名称

KindKey:关键字

StartDate:字段的有效开始日期

EndData:字段的有效结束日期

IndexNo:字段的排列顺序(只针对于前台 UI)

Comments:字段描述等信息

(暂时我们只给它这些特性,对于实现流程模型的时候,我们需要给它追加其他一些特性)

为了在模型中细化我们的系统我们再引入一个概念 ProductService,它该表系统或者某一个子系统。

ProductService 赋予几个特性:

ObjectID:全局唯一的标识 ID(具有系统全局唯一性,是我们这个系统里面最重要的概念)

Name: 字段的名称

KindKey:关键字

StartDate:字段的有效开始日期

EndData:字段的有效结束日期

Comments:字段描述等信息


上面的概念我们已经有了,我们怎么用上面的基本元素来描述我们现实的系统呢?

举栗子:

人(Role):

名字(Property)

性别(Property)

住址(Property)

等等,我们就可以描述软件世界的任何对象。我们再给属性(Property)添加具体的特性。就构成了软件系统里面最小的元素--字段。

比如名字(Property):

ObjectID:依赖工具自动生成(后面我们会讲)

Name: 名字

KindKey:Name

DataType:String

DefaultValue:Empty

DataLength:20

ComponentType:TextBox

Format:Empty

StartDate:9999-12-31(默认值表示永久有效)

EndData:9999-12-31(默认值表示永久有效)

IndexNo:0

Comments:表示人的名字

其他字段类似,不再赘述。


我们要按照上面的思路,构建我们自己的元模型。有兴趣的朋友可以自己试试。

如果想学习元模型构建,要花很多的时间在里面,这里不会详细介绍,如果真的有很多的朋友有需求的话,可以在评论区留言,考虑设立专门的元模型建模专区来为大家讲解。


发布于: 2020 年 11 月 02 日阅读数: 106
用户头像

KaYa

关注

MDA元模型驱动 2019.04.14 加入

模型驱动布道

评论

发布
暂无评论
元模型驱动(三):构建我们自己的元模型-KAYA