为了精确地复现,你可以用语言精确地叙述一个立方体,甚至10个立方体组合的形状,但你不会试图用语言描述一栋房子,适当的方式是用工程图纸。 建立企业应用系统的情形可以从以上例子得到启发,企业系统要表述的,主要是复杂的结构,过程占的比重很小,因此,模型就变得更加重要乃至必要了。 OMG组织的MDA战略 OMG最新的战略,是建立模型驱动体系架构(Model Driven Architecture, MDA),它的意义不是三言两语可以说清楚的,但从软件进化的角度来说,可能带有一种必然性,从上面的讨论,至少可以引申出两个理由: 更有效地描述复杂系统的需要; 系统复杂化带来的层级区分的需要。 关于模型的几个分析要素 笔者认为,以下特征对软件体系中模型的运用是十分重要,或者有特殊意义的: 模型的时效性(time-effectiveness of model):关于这一点最重要的区分在于,是“运行期模型”(Run-Time Model),还是开发期模型?这个区别,有点类似于解释的语言和编译的语言间的区别,但其意义却非同一般,笔者认为,“运行期模型”,揭示了模型驱动的本质。 模型的可进化性(evolutionableness of model):是否可以在系统的应用过程中,持续地适应应用环境与需求的变化,不断地由应用者或自适应地对模型进行改进?这是对模型“性能”的一种度量。 模型的层级性(hierarchy of model):正如语言有多个层次一样,没有理由认为模型只有一个层次,当系统足够复杂时,模型的层次划分将会是必要的。 UML和企业模型 运用上面的要素分析一下,可以发现: UML是“紧贴”高级软件语言(例如C++)的模型体系,其时效是在软件生命周期的开发期间,而不是运行期间,其描述的层级是在软件的组件、对象一级,典型要素是软件中的对象,软件上一个操作的动作等。 企业模型(比如ARIS, CIM-OSA, GERAM),典型的要素是组织,产品,过程等,它们是从企业的业务对象着眼的。二者在层级上有差距,而且企业模型追求的最终结果,是从“开发期模型”到达“运行期模型”,并且,笔者认为它最终应当是一种可进化的模型,这与UML的设计目标并不符合。 它们两者间并不相互排斥,而应当考虑它们的“层接”。按照笔者的理解,OMG的MDA即使全面实现,也仍然不能做为或替代企业模型,但有可能成为企业模型的基础,这不是模型好坏或能力的问题,而是层级定位的问题。 写在后面 面向对象(Object Oriented, OO)作为软件体系结构方面的一种演进而出现,也曾经被一些人误解为对过程化语言(或面向过程的体系结构)的取代。笔者认为,尽管OO反应了一种世界观,是一种思维的方式,但并不代表一切;且从层级和进化的观点上,也不应当将它看作是对既有东西的一种简单的取代。模型或模型驱动同样如此,它可能是继面向对象之后,软件体系结构的又一个重大的进化,但不是用来取代面向对象或结构化设计。笔者在1998年撰写《迈向21世纪的企业信息技术应用》一文时,对于模型的地位和作用并没有今天这样的认识,现在我坚信,对于企业信息系统这样复杂的系统,要想做到有效、可控制地规划与构建乃至具有“柔性”、可在运行期间不断地调整,“模型”是必须的,而且,表达与构建复杂企业系统时所需的模型,可能是多层次的,所谓“通用企业平台上的专用执行系统”,就应当是一个由运行期模型驱动的系统。 --------------------------------------------------------------------------------
chinakid (2002-5-20 9:41:02)
偶尔路过看到这些评论,我很气愤。一帮美国的走狗! UML,CMM都是人家美国人定下的标准,可笑的是软件公司象哈巴狗一样,跟在美国人后面摇尾巴。高展的playcase我没有用过,但我知道一点:中国人从来不输给别人!!!!!政府能扶助制造自己的CPU,自己的操作系统,自己的Office软件,也可以再扶助一个建模软件!这样我们就不用再仰视别人的鼻息!!!美国人的一套Rose多少钱?赚去了中国人多少血汗钱?而高展的playcase是免费下载的!!!为国家安全和产业利益,政府都应该对自主开发的软件进行扶持!起来,挑战UML霸权!
bigbat (2002-5-19 21:25:25)
文章来源于领测软件测试网 https://www.ltesting.net/