|
简要回答
> 软件工厂是怎么回事
> 和普元、思维加速、用友、金蝶等等公司的平台、中间件有什么异同?
> IBM、ORACLE等公司的集成平台或者中间件相比又有什么异同呢?
软件工厂模式是微软提出来的, 要理解软件工厂, 需要先理解MDA, 目前软件工程中最前沿的技术之一:
MDA是模型转换技术, 是由OMG推动的技术, 基于OMG另外一个非常成功的作品--UML,他们提出了MDA的概念
它是一种模型驱动代码的基础架构体系, OMG的构想是将目前的开发行为提升到更高的抽象层级--分析模型级,
把针对特定计算平台的编码工作交由机器自动完成,这样的情况下,业务逻辑与实现技术被成功地解耦,二者相
对独立变化,因此模型的价值在包容已有技术的条件下被最大化。这种目的根源于软件开发的现状,在传统的软件
开发方法中,随着项目的进展,设计阶段产生的UML模型和代码之间的同步变得越来越困难--代码为了应付新
增加的需求和新产生的想法而不断变化,模型却一直停留在原地不动,这使得模型在一段时间之后就失去了它的
价值。OMG提出了一个最根本的解决方案--在MDA中,模型不再是一种辅助工具,而是开发过程的产品。一个完整的
MDA应用程序包含:
一个权威的PIM;
一个或者多个PSM;
一个或者多个完整的实现 - 开发人员决定支持的所有平台上的应用程序实现。
MDA在目前技术的基础上,分离出了两个抽象级别的模型:PIM(Platform Independent Model 平台无关模型)
和(Platform Specialize Mode 平台相关模型),PIM是一个纯粹的不考虑实现技术的分析模型,而PSM可以视为
一个基于特定实现技术,比如J2EE的设计模型。工程师们只需要建立表达业务逻辑的PIM,剩下的工作都将由MDA引擎
自动完成。描述业务逻辑的PIM将具有长久的价值,而针对特定平台的PSM则可能会随着平台技术的进步而快速地
迁移。在MDA开发过程中,系统的开发工作的最终产品是PIM,从PIM到PSM及至代码实现都是由第三方的自动化工具来完成的。
这曾经被微软认为是不可能或极其困难的事情, 所以, 它提出软件工厂的概念, 事实上, 在相关的方法论的层面, 一
直就存在争论, 微软公司提出了自己的软件工厂概念。微软的软件工厂的定义是:一个使用基于软件架构(Software Schema)
的软件模板来配置的可扩展的工具,从而为产品系列提供生产设备的软件产品系列。
微软在这里使用了一个新的术语——软件架构。所谓软件架构实际上就是一个对软件开发过程中产品和半成品进行分类和概括的文档。
软件架构是可以自定义的。接着为了生产物化的产品,我们还需要有原材料,这就是微软软件工厂概念中的另一个核心构件——软件模板。
使用模板进行代码生成并不是新的东西,但微软的软件模板包含了更丰富的元素。其中DSL是一个新的概念。即领域特定语言(Domain
Specific Language)。DSL可以抽象某个特定领域的复杂度,它描述要在这个问题领域上要解决何种问题,而不关心内部如何运作。
对照MDA术语,我们可以认为DSL实际是一种PIM的描述方式。但是,微软采取了更现实的态度,认为描述平台无关的抽象模型脱离不
开具体的领域,而且只有这样描述及描述方法本身才能简化和易于理解。
所以, 我们BJBR的软件工厂技术事实上是MDA的DSL或MDA的PSM层面的实现, 及MDA的模型转换引擎的最终机器实现的总和.
即不是完全的微软模式, 也不是完全的MDA架构, 而是两者各有取舍并有自己的创新, 所以, 在2007年获科技部创新基金(国内同类唯一).
业界早已声如洪钟: 中间件战争已经结束,下一个战场是模型转换!!
软件工厂技术相当复杂, 集我们公司多位泥秋一样的海归多年心血, 不知谭总对软件工程是否有兴趣探讨, 所以这里仅简单说明一下, 另外,
我们把软件工厂象猴儿献宝似的忙不迭的拿出来PIAN3, 不知能否入谭总等的法眼...
> 希望不是拿来忽悠客户的。
同时也应该看出来与普元、思维加速或WebSphere等的不同吧, 不是一个层的东东也...ZL谭总担心尽是拿来忽悠客户的花架子, 真是很有见底, 不可不防,
这里在下保证, 本公司体检系统95%左右的代码是由软件工厂生成, HIS也是(HIS这盘菜现在还没有做完,不方便端出来给各位看官签赏,
请见谅). 同时, BR的软件工厂没有什么花哨的界面, 因为是内部使用, 非常非常朴素, 甚至几乎没有什么开发者UI, 同时因为与终端用户
无关, 通常是不会拿出来忽悠客户的, 除非他们感兴趣非要试图搞搞清楚, 就像现在这里一样, 那在下就勉为其难, 花拳绣腿地耍上两耍,
以搏得看官一笑... |
|