模型驱动开发:基本模型+插件模型的开发方法

任何一个复杂的系统都应该存在简单的规则,可以使用一些基本元素组合构建而成。这样的系统在数学上被认为是简洁和优美的。这一点在软件中最容易归纳出来。人们也一直试图找出一种简洁方便方法和系统来构建软件。

软件的一个特性是相似性。我们写过大量代码后会发现:很多代码都有相当程度的相似性。我们每个人每天只是重复写其他人写过的代码或者组合别人的代码。软件的相似性,让我们有可能找到组成软件的简单规则和基本元素。

首先每一个软件的基本架构所包含的要素都是相同的,如界面、实体、功能等等。将基本要素用结构化的数据描述组成一种模型,可以称其为基本模型。

其次软件的处理模式有相似性, 如果我们为这种模式命名,用属性描述模式的变化,最后抽象成另一种模型,我们称之为插件模型。这些模型依附于基本模型。

基本模型是软件系统的共性,插件模型是软件的特殊性。特殊性建立在共性基础之上。基本模型是固定的,插件模型是多样的。当遇到新的模式,只需增加新的插件或者新的属性。这样就能解决软件多样性的问题,做出丰富的软件功能。

构造插件模型的方法和人们归纳认识新事物相似:观察特性,归纳共性,创立新概念,建立新模型供人使用。使用插件让软件复用更加容易和有效。

如果将软件元数据比作骨架,将不容易修改代码比作肌肉,那么现在的软件全部用代码构成,就像软体动物一样,只有肌肉组织没有骨架,不能适应变化。“基本模型+插件模型”的方式将软件的基本架构用结构化的数据描述,将实现功能的代码以插件的形式附着在这些基本结构之上,这样的软件就像有骨有肉的脊柱动物,适应性更广阔的环境。

目前虽然有一些公司也提供模型驱动开发平台,但大部分都停留在使用基本模型描述软件系统这一阶段,没有提供通过插件或其他方式扩展基本模型的功能,这样开发人只能使用平台提供的大量内置功能,平台提供的无用功能无法去掉,而用户需要的特殊功能加不进去。很难扩展平台的本身,因此很难做出丰富多样的软件。

通过多年摸索和实践,西安赛斐软件公司开发出一套模型驱动的软件开发平台—iModel Studio。它包括建模工具和模型运行引擎,使用“基本模型+插件模型”的方法描述和构建软件系统。它使用基本模型描述软件的各个部件和基本功能,用插件模型描述特殊的业务功能,用模型引擎加载并运行模型,在运行态修改模型、调整插件,同时iModel Studio 实现了抽象模型、模型继承、模型接口等高级模型复用技术,进一步简化开发步骤,快速完成软件开发。

iModel Studio 让计算机直接运行抽象层次较高的模型,而不是低级的代码,解决了设计人员、编程人员和计算机因为使用不同语言需要互相翻译而产生的"阻抗“的问题。

iModel Studio使用微内核技术,它的运行引擎很小,基本模型也只包括了实体、界面、功能、菜单等软件基本元素,但它同时包括了超过100个插件模型,使用这些插件,可以简单地处理极为复杂的企业级应用逻辑。最为难能可贵的是它的建模工具本身也是使用“模型+插件”配置出来的,实现了模型工具的自描述功能。在此基础之上用户也可以使用“模型+插件”这一概念,通过自定义模型和插件扩展平台本身,从而实现任何复杂的应用系统。

使用过面向过程、面向对象的语言和各种设计模式之后,首次遇到模型驱动的开发方法时,多数设计师会认为模型就是构建软件的基石。但是模型驱动方法已经提出近十年,一直没有推广开来。我们认为它没有有效解决软件多样性的问题,也没有充分归纳软件的相似性。而基本模型和插件模型相结合的技术,解决了单一模型和软件多样性的的矛盾,是软件开发方法从面向机器、面向过程、面向对象到面向模型发展道路上一个新的里程碑。

 

转载请注明出处 jlee2cacn@gmail.com

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值