|
最初由 rick_zt 发布
也许吧,不过可能是100年200年以后的事情,至少现在有这种想法的人基本上都放弃了,希尔伯特,霍金....
简单的说形式化语言就是用规范的形式描述事物。我认为UML就是其中一种。MDA应该是一个体系,但他不可避免的要用到UML或者类似的系统(说不定叫UML++ ),因为必须有方式来表达系统的模型。而类似UML的形式最后如果要描述超出框架代码的细节,本身(UML)就需要不断提高复杂度已适应复杂的要求,最后可能就走回了可执行UML的老路。]
你的想法很对, MDA的设计者们也想到了, UML不能表达一切, 也没有这个必要, 所以其他系统完全可能是其他模型表达的, 比如E-R, BPEL, OMT, XML, Java, .NET. 而且模型的完整性是由上下文决定的, 只要提取足够的语义信息就可以. MDA定义了MOF Metadata Architecture, 它的的M0: 实例层, M1:模型层, M2: 元模型层(MOF Model), M3: MOF.
http://www.omg.org/docs/formal/02-04-03.pdf Page 33.
MOF是UML超集, 就是你说的UML++. UML是一个MOF Model.
个人觉得MDA很可能会有两种结果,一种是在定义PIM的时候就会变得很复杂,要求很多细节,其结果是没有几个人能用,或者和写代码无异,无法进入实用阶段。
另一种是退化成和现在的CASE工具类似,只不过功能略强一点的只能生成粗框架代码的工具。
Divide and Conquer, 如果你做过开发的话, 应该明白大部分工作都是重复工作, 尤其是在Layered系统中, PIM加入的细节(主要是Marker)多数情况下不会比代码多.
最近上的一门课的老师说过他在美国的软件公司的经历,在UML最为红火的几年,[B]软件公司的会议室都挂满了UML图,几百张![/B]可是有些详细设计的UML图还没完全做出来,程序员已经把比设计好的多得代码交上来了。
我想这也就是Agile方法出炉并且有很多人支持的原因吧...
会议室可够大的, 几百张图想把大家都搞糊涂吧?! 
典型的Overdesign, 不明白这家公司走的是什么流程, 不象RUP, RUP是不鼓励系统化文档的. 更不会有所谓的详细设计. 详细设计一般是瀑布的概念.
出现这种情况估计他们是用Visio画的UML图. 没有做到模型的代码同步, 也不是叠代开发. 更没有懂得RUP或其他方法的项目经理. 如果我没猜错的话, 这家项目组的构成是有1-3个设计人员, 5-10个有经验的开发员, 项目小于2 men years, 以前是作坊式的开发方式. 设计人员全是新手. 问问你的老师, 看看我猜对了吗? 
RUP, XP, SCRUM, etc, 都是好东西, 可那一个都不时那么容易使用的. 尤其是RUP, 因为它实际是一个Process Template, 而不时想XP一个是个Process, 在一个项目运行前Process Engineer必须定制RUP, 否则很容易弄巧成拙.  |
|