Enterprise Engineering Forum

企业工程论坛
Categorized as: 企业应用,模型驱动系统   Tagged as: ,, , , ,

模型驱动应用(MDApp):以模型驱动机制跨越业务与信息技术鸿沟

Author: 余彤鹰,  Source: 企业工程论坛,  Published: 2012-12-27

Excerpt: 本文是对一篇论文介绍。模型驱动就是用鼠标在工具盘和画布上拉拉扯扯吗?稍安毋躁。即使对不太成功的MDA/MDD(TM),这个描述也未免肤浅。对于MDE/MDSD更是如此。至于我们提出的模型驱动应用(MDApp)和它的基本原理模型驱动机制(MDM),更在上述产业与学界养成的研究领域之外。为什么要叫做“模型驱动”?事实上,模型驱动机制作为基本原理,诸如模型驱动架构(MDA)同样要遵循。这是我们对模型驱动工程(MDE)的贡献。模型驱动应用(MDApp)则是一种应用系统形态;与MDE相比,基本上,前者关于大厦,后者关于道路。当然,这里有更多的故事可讲。(这是2012最后的文字,谨此向所有关注过这里的人致以诚挚的祝福。)

导言:业务与信息技术之间的鸿沟及企业应用面临的挑战

有些话题看似老生常谈,但意义依旧。环境变化会带来许多新的挑战,但许多根本问题并没有自然消失。潮涌时,一些礁石不见了;倘若忽视它们的存在,最终还是会撞船的。

鸿沟的两侧及必然的中介模型

rcw&m_ch_20121227业务与信息技术鸿沟的背后,是计算机与现实世界的鸿沟。秉承Smith(1985)的经典论述,将计算机/信息技术放在左侧,而所谓现实世界,例如业务,放在右侧。在这个基本图景中,Smith表明了必然的中介模型。而这种中介关系还存在于人与现实世界之间。所以,在我们提出的基本图景中,包含了三个基本对象,即在Smith的图画里,增加了人的位置。 如图所示,人设定模型,计算机处理和基于模型运算,而模型表达人试图用计算机处理的现实世界事物;这一必须的中介模型,承担着为人和计算机两方连接到现实世界对象的双重作用,同时也是使计算机行为体现出“人”所预期的意义或目的的中介。这个基本图景,是展开讨论的基本背景。

左侧方法:软件工程

为填充鸿沟,来自信息技术产业的努力,大多数都可归结为从左向右。讨论了一些途径,基本属于软件工程领域。

从分析到设计的转换障碍与困难(Transforming Barrier)

这是软件工程中的实质性问题。虽然如此,但相关的研究并不太多。我们仍然以模型为重点,将这个基本问题界定为从分析模型到需求模型的转换障碍,即分析阶段的基本模型(例如,所谓领域模型,问题模型,业务模型,还可能包括功能模型或用例模型等)不能简单地,例如以自动化的线性转换,转换成软件设计模型。

面向对象与用例驱动(OO & Use-Case Driven)

对前一个问题的经典讨论,就是在面向对象背景下进行的。稍进一步看,面向对象里包含了如何对现实世界建模的思想,但是,这同时也像是一个陷阱。从模型的角度分析,问题的关键在于模型所表达的对象是谁——作为软件中实体的对象、类,是现实世界事物的模型吗?简单地回答“是”,可能很容易就得到了50分的收获,但同时也蒙住了双眼,几乎放弃了努力达到99分的可能性。

模型驱动工程(MDE)和抽象层级体系

模型驱动工程(MDE)在欧美技术开发与学术研究领域拓展了十余年,目前的走势两个字:纠结。所以,如果说,那些用鼠标在工具栏拉拉扯扯的东西,并不像他们自己宣扬或期待的那么有用,也不是冤枉。事实上,80年代一度在两界大受追捧的CASE已经演绎过这个故事,MDE迄今有多少本质的突破吗?可能不太多。一个最基本的问题,就表现在对前述转换障碍问题上:现有的MDE探索,实际上是在绕开这个问题。这样一绕,就实质性地,回到CASE的老路上了。在对提升抽象层次和抽象层级体系的理解上,MDE社区露出了一个盲点(这也是“继承”自面向对象):即混淆对现实世界的抽象和对软件系统的抽象。我们提出,关键不是盲目地进行所谓抽象升层次,而是两个抽象层级系统的匹配

关于计算无关模型(CIMs)的一些问题

MDA将CIM放在所谓抽象层次的顶层,大致相当于分析模型。按照它的基本口号,这个最高抽象层次的模型应该是最重要的,事实上,它却被大大地忽视了 ,甚至其定义也存有暧昧。这些也正是前面所说问题的表现。

领域驱动设计(DDD)

这是一个非常好的例子,反映了产业界对上述问题的意识和一些解决的努力。DDD的一个基本思想就是消灭分析模型和设计模型的差异,提倡在软件架构中建立独立的领域模型层。宏观地看,它显示了一种过渡性架构的特征:从传统的软件架构(无论是结构化风格还是面向对象风格)到如我们提出的模型驱动应用(MDApp)架构。DDD的确不是MDE,从一句口号上就可以看出来:MDA是要把建模语言当设计语言,而DDD对领域模型层的建构方法则是将编程语言当建模语言。这种过渡性结构带来一些好处,但也可能带来甚至加重一些问题,例如下一节所提出的“纠缠”问题。

敏捷及业务变化与开发过程的纠缠(Agile & Entanglement)

本来的“敏捷”首先是一种思想和行动指南,这从敏捷宣言中可以很清楚地看到。从具体的开发方法论上,它并没有直接提出什么新东西;反之,很多东西因此也很方便来附会,贴上敏捷这个标签。但敏捷之所以被提出,以及它的长期的流行,都与一个重要的问题有关,我们将其称为业务变化与开发过程的纠缠——最简单的表现就是所谓业务/需求的不确定性,易变性,即使在开发过程中,还是不断地变,所以什么需求工程方法学、建模都是浮云,还不如程序员亲自下海与需求者亲密合作来得实际。敏捷思想是实用主义和现实主义的,这并无不妥。但这是没有办法的办法。问题出在软件工程本身,以及对应用、需求、功能、软件生命周期、软件开发效率等的理解上。

右侧方法:企业工程

对企业应用而言,鸿沟右侧的方法基本上都可以归诸于企业工程(EE)之下。

企业建模(EM)

以信息技术的时间来衡量,企业建模的发展时间不可谓不长,学、技两界的投入不可谓不大。但它始终没有突破象牙塔。以现实来看,似乎有点两不搭:软件或信息系统开发方面,始终没有得到真正的重视或应用,或者说,没有进入到主流方法之中;从企业工程的立场看,它从来没有真正成为的企业建设/运营者的工具。这些都可以通过我们所提出的几个要点得到解释。

企业架构(EA)

在企业工程这个大范畴中,企业架构是近些年最风光的,因为得到了产业界一些大佬的提携。它还是一种比传统企业建模更亲近实践的方法。当前企业架构最大的问题就是复杂性和适应性:它不是普通企业的菜,实在地说,只适合于具有深入和大规模信息技术应用的大型企业去玩。但是,从道理上说,不应该是这样的。其中一个根本的问题仍然在于信息技术应用的解决方案本身:它们的僵化性、封闭性,决定了应用者的规划,都只能在“系统之系统”这样的宏观层次上起作用,或者在现有的应用孤岛、功能筒仓的集成上起作用。

模型驱动应用是跨越鸿沟的桥梁

信息技术与其应用对象企业中的业务是两种不同的事物,它们之间的鸿沟是天然的,永恒的。要充分地在业务中运用信息技术的威力,就要在二者间建立可靠的联系,也就是所谓的业务与信息技术的战略联合(Strategic Alignment),或简称联合。从联系业务与信息技术的角度看,现有的左侧方法和右侧方法,都没有真正发挥模型的中介作用,特别是其多重特征。有时甚至连模型表示什么,在哪里都没有真正厘清。

我们首先从实践中提出用企业模型直接驱动企业信息系统,进而厘清了这种方式下,模型工作的基本原理:模型驱动机制(MDM),揭示了中介模型起作用的基本原理,从而明确了模型驱动系统这一智能系统的基本形态,即模型驱动系统(MDS)和模型驱动应用(MDApp):运用模型驱动机制,基于中介模型的应用/信息系统。自然地,以企业模型为基本的应用模型即企业模型驱动应用(EMDA)。这些在企业工程论坛的中文内容中一直有许多的论述,论文中对这几个概念做了更系统和严谨的阐述。模型驱动应用是一种新的应用系统范式。它的基本特征可以这样描述:模型即所能做。这里所说的“做”,就是用电脑做与该目标相关的(或对该目标进行的)操作。基于软件领域现有的模型与建模研究,特别值得指明,MDApp的应用模型不是指传统的软件功能模型,而是应用目标(例如业务)的模型(尽管它可以包括关于软件自身的模型)。在MDApp的支持下,左侧方法和右侧方法的效力就被联系起来,特别是,它提供了前所未有的,令右侧方法落地的基础。

近年来,随着互联网的深入普及以及移动计算的兴起,企业应用的环境发生了巨大的变化。越是不确定、开放的环境,越需要MDM/MDApp。这一点以后再进行讨论。

Copyright

  本发布物版权归原作者所有,经原作者许可在企业工程论坛(EE-Forum.org)公开发布,并允许个人及公益性机构非牟利性使用及传播。传播中需保持从标题、署名到各项内容及此声明包括链接地址等完整内容不变。引用或摘编文中内容或观点应符合公认准则。其它机构,或牟利性使用,请预先取得作者许可。保留一切未说明的权利。
  详细说明见: http://www.ee-forum.org/about/copyright ,管理者电子邮箱:admin(at)ee-forum(.)org

Cite Style

GB7714 style: 余彤鹰. 模型驱动应用(MDApp):以模型驱动机制跨越业务与信息技术鸿沟[EB/OL]. 企业工程论坛, http://www.ee-forum.org/wp/pub/ty/2012-12-p3427.html, 2012-12-27[2016-09-28 04:34]

Chicago style: 余彤鹰, "模型驱动应用(MDApp):以模型驱动机制跨越业务与信息技术鸿沟", 企业工程论坛, http://www.ee-forum.org/wp/pub/ty/2012-12-p3427.html(accessed 2016-09-28 04:34)

Posted by   2012-12-27(Original)   Hits 12210   Modified 2013-04-12
Prev Post: 
Next Post: 

Related Entries:

一个模型驱动企业应用平台架构方案框架
元数据驱动的动态网络服务系统与方法:有关模型驱动应用的最新美国专利
跳出软件工程:Bezivin的模型驱动工程新视野
什么是模型驱动应用
提升软件领域模型驱动研究的境界

5 Comments

  1. 传统软件程序开发的需求分析说明书是客户与软件系统开发者的沟通桥梁.客户根据需求说明书提出需求,阐述系统能做什么.软件系统开发者根据此需求,阐述需求实现的功能与界面,并将之清晰明白的反映到本说明书中,以供客户审阅.     本说明书的预期读者为客户,业务需求分析人员,系统设计人员,项目管理人员,软件开发人员等系统开发的相干参与者.

    ================================================
    这就是一个接口语言,有两个方面的任务,可以讨论这种语言是否可能。不但是指软件工程,所有的设计都面临这个问题,比如一个产品的总体设计由总工程师来提出,主要是功能需求,而结构设计由结构工程师来完成,以特定的产品结构实现达到要求的功能。所以需求分析说明书具有普遍意义。

  2. 两个世界的匹配,目前在SOA架构中似乎就是采用这个观点。
    对于业务需求,它们一般分为四个层次,从流程、子流程、业务活动,最后找到服务组件,并以WEB服务的XML语言来写它的接口。它是业务层次的最小单元,但是只提供服务目录,它始终没有谈技术实现的问题。
    具体实现就是技术系统,它的匹配就是服务的实现,因为它采用了WEB的接口,所以具体物理系统可以都是异构的,不会影响彼此的系统集成和数据整合。

  3. 但是我的感觉是,IBM在寻找业务组件CBM方面似乎没有什么方法,就是在业务建模方法缺乏理论。

    • 对IBM,稍早确立的企业应用战略框架是EA+BPM+SOA,可以说都是跟风。近年的技术概念,云、移动、物联网、大数据等等,有没有新的框架我还不得而知。在建模方面,其早年收购了Rational,这个领域的UML/MDA等,她家是幕后主要推手之一。理论认识的缺乏是很明显的,实效恐怕也属差强人意。
      在IT产业近年的SOA常被庸俗化了,尽管如此,仍然是重要的基本思路。
      需求分析这个话题,可参看对实质性需求分析与研究,包括信息化话题中的一些讨论,不到那个层面上,许多讨论都是无解的。

  4. 出版物的计划发行时间为七月。感兴趣的朋友,可电邮至 tongying@ee-forum.org 获取作者手稿供个人评估(author’s final script, in English, 18 pages, 8 figures, pdf 144KB)。

    REFERENCES
    Atkinson, C. and Kuhne, T. (2003). Model-driven development: a metamodeling foundation. IEEE Software, 20(5):36-41.
    Baudoin, C., Covnot, B., Kumar, A., LaCrosse, K., and Shields, R. (2010). Business architecture: The missing link between business strategy and enterprise architecture. Michelson, B. (Ed.). EA2010 Working Group, SOA Consortium. Jan 2010. Retrieved October 15, 2012, from http://www.soa-consortium.org/EA2010.htm
    Beck, K., Beedle, M. and van Bennekum, et al. (2001). Principles behind the Agile Manifesto. Retrieved October 15, 2012, from http://agilemanifesto.org/principles.html
    Bézivin, J. (2004). In search of a basic principle for model driven engineering. UPGRADE, 5(2):21-24.
    Bézivin, J. (2005). On the unification power of models. Software and Systems Modeling, 4(2):171-188.
    Bézivin, J. (2006). Model driven engineering: An emerging technical space. In Lämmel, R., Saraiva, J. a., and Visser, J., editors, Generative and Transformational Techniques in Software Engineering, volume 4143 of Lecture Notes in Computer Science, chapter 2, pages 36–64. Springer, Berlin, Heidelberg.
    Blair, G., Bencomo, N., and France, R. B. (2009). Models@ run.time. Computer, 42(10):22-27.
    Bosch, J. and Molin, P. (1997). Software architecture design: Evaluation and transformation. Karlskrona
    ChinaLabs (2002). Business system infrastructure platform (in Chinese). Technical report, Beijing, China.
    Cuenca, L., Boza, A., and Ortiz, A. (2010). Enterprise engineering approach for business and IS/IT strategic alignment. In MOSIM’2010 Conference proceedings. Lavoisier.
    de Lemos, R., Giese, H., Müller, H., Shaw, M., Andersson, J., Baresi, L., Becker, B., Bencomo, N., Brun, Y., Cikic, B., Desmarais, R., Dustdar, S., Engels, G., Geihs, K., Goeschka, K. M., Gorla, A., Grassi, V., Inverardi, P., Karsai, G., Kramer, J., Litoiu, M., Lopes, A., Magee, J., Malek, S., Mankovskii, S., Mirandola, R., Mylopoulos, J., Nierstrasz, O., Pezzè, M., Prehofer, C., Schäfer, W., Schlichting, W., Schmerl, B., Smith, D. B., Sousa, J. P., Tamura, G., Tahvildari, L., Villegas, N. M., Vogel, T., Weyns, D., Wong, K., and Wuttke, J. (2011). Software engineering for Self-Adaptive systems: A second research roadmap. In de Lemos, R., Giese, H., Müller, H., and Shaw, M., editors, Software Engineering for Self-Adaptive Systems, number 10431 in Dagstuhl Seminar Proceedings, Dagstuhl, Germany. Schloss Dagstuhl – Leibniz-Zentrum fuer Informatik, Germany.
    Dubray, J.-J. (2011). Why did MDE miss the boat? InfoQ. Retrieved October 15, 2012, from http://www.infoq.com/news/2011/10/mde-missed-the-boat
    Elmasri, R. and Navathe, S. B. (2003). Fundamentals of Database Systems (4th Edition). Addison Wesley.
    Evans, E. (2003). Domain-driven design: tackling complexity in the heart of software. Addison-Wesley.
    Favre, J.-M. (2004). Foundations of Model (driven) (Reverse) Engineering – Episode I: Story of the Fidus Papyrus and the Solarus. In Language Engineering for Model- Driven Software Development.
    Fouad, A., Phalp, K., Kanyaru, J., and Jeary, S. (2011). Embedding Requirements within Model-Driven Architecture. Software Quality Journal, 19(2):411-430.
    Fox, M. S. and Gruninger, M. (1998). Enterprise modeling. AI Magazine, 19(3):109–121.
    France, R. and Rumpe, B. (2007). Model-driven development of complex software: A research roadmap. In 2007 Future of Software Engineering, FOSE ’07, pp. 37-54, Washington, DC, USA. IEEE Computer Society.
    Frankel, D. S. (2003). Model Driven Architecture: Applying MDA to Enterprise Computing. Wiley Publishing, Inc.
    Jacobson, I., Booch, G., and Rumbaugh, J. (1999). The Unified Software Development Process. Addison-Wesley Professional, First edition.
    Kaindl, H. (1999). Difficulties in the transition from OO analysis to design. Software, IEEE, 16(5):94–102.
    Kardoš, M., & Drozdová, M. (2010). Analytical method of CIM to PIM transformation in Model Driven Architecture (MDA). Journal of Information and Organizational Sciences, 34(1), 89-99.
    Karow, M., Gehlert, A., Becker, J., and Esswein, W. (2006). On the transition from computation independent to platform independent. In AMCIS 2006 Proceedings.
    Kent, S. (2002). Model driven engineering. In Butler, M., Petre, L., and Sere, K., editors, Integrated Formal Methods, volume 2335 of Lecture Notes in Computer Science, chapter 16, pages 286–298. Springer Berlin, Heidelberg.
    Kosanke, K. and Martin, R. (Ed.). (2008). SC5 glossary. ISO/TC 184/SC5 N994 Version 2 (2008-11-02).
    Kühne, T. (2006). Matters of (meta-) modeling. Software and Systems Modeling, 5(4):369-385.
    Kurtev, I. (2007). Metamodels: definitions of structures or ontological commitments? In Workshop on Towers of Models, pages 53–63. University of York.
    Larman, C. (2004). Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. Addison Wesley Professional, third edition.
    Larman, C. and Basili, V. R. (2003). Iterative and incremental developments: a brief history. Computer, 36(6):47–56.
    Liles, D. H. and Presley, A. R. (1996). Enterprise modeling within an enterprise engineering framework. In 96 Winter Simulation Conference.
    Liles, D. H., Johnson, M. E., and Meade, L. (1996). The enterprise engineering discipline. In 5th Industrial Engineering Research Conference, pages 479–484.
    Martin, J. (1995). The great transition: Using the seven disciplines of enterprise engineering to align people, technology, and strategy. AMACOM, New York.
    Miller, J. and Mukerji, J. (2003). MDA Guide V1.0.1. OMG.
    Morrison, M. and Morgan, M. S. (1999). Models as Mediating Instruments, chapter 2, pages 10–37. Cambridge University Press.
    Schmidt, D. C. (2006). Model-Driven engineering – guest editor’s introduction. Computer, 39(2):25–31.
    Selic, B. (2003). The pragmatics of model-driven development. Software, IEEE, 20(5):19-25.
    Sharifi, H. R., Mohsenzadeh, M., and Hashemi, S. M. (2012). CIM to PIM transformation: An analytical survey. International Journal of Computer Technology and Applications, 03(02):791-796.
    Smith, B. C. (1985). The limits of correctness. SIGCAS Comput. Soc., 14, 15(1, 2, 3, 4):18-26.
    Tamm, T., Seddon, P. B., Shanks, G., and Reynolds, P. (2011). How does enterprise architecture add value to organisations? Communications of the Association for Information Systems, 28(1).
    The Open Group. (2011). TOGAF Version 9. Retrieved October 15, 2012, from http://pubs.opengroup.org/architecture/togaf9-doc/arch/
    Vogel, T., Seibel, A., and Giese, H. (2011). The role of models and megamodels at runtime. In Dingel, J. and Solberg, A., editors, Models in Software Engineering, volume 6627 of Lecture Notes in Computer Science, pages 224-238. Springer Berlin Heidelberg.
    Yu, T.-Y. (1999). Toward 21st century new generation of enterprise information systems (in Chinese). Enterprise Engineering Forum, Retrieved October 15, 2012, from http://www.ee-forum.org/eis21c.html
    Yu, T.-Y. (2002a). Model-Driven Software Architecture and Hierarchical Principle to Complex Systems (in Chinese). Enterprise Engineering Forum. Retrieved October 15, 2012, from http://www.ee-forum.org/pub/1998-2009/hm.html
    Yu, T.-Y. (2002b). Emerging enterprise engineering (in Chinese). In Enterprise Engineering Conference’2001. EE-Forum.org, Industrial Engineering Department of Tianjin University. Beijing, China. Retrieved October 15, 2012, from http://www.ee-forum.org/eee/
    Yu, T.-Y. (2005). New generation of enterprise information system: From essential requirements analysis and research to model-driven system (in Chinese). Enterprise Engineering Forum. Retrieved October 15, 2012, from http://www.qiji.cn/eprint/abs/3641.html
    Yu, T.-Y. (2007). Lecture on enterprise engineering, model, and information system (in Chinese). Enterprise Engineering Forum. Retrieved October 15, 2012, from http://www.ee-forum.org/pub/1998-2009/downloads/ty_jnu070917a.pps

    作者手稿摘要(发行时也许会被编辑修改)
    Abstract. How to bridge the gap between business and information technology (IT) has always been a critical issue for both the developers and IT managers. The individualized, differentiated demands by different customers and situations, the constantly changing in both business and IT are great challenges to the applications for enterprises. In this chapter, we respectively discuss the problems from the left side (computer) in software engineering, with object-orientation (OO), model-driven engineering (MDE), domain-driven development (DDD), Agile, etc., and the right side (the real world) in enterprise engineering (EE) with enterprise modeling (EM) and enterprise architecture (EA), of the gap. It is shown there are some fundamental problems, such as the transforming barrier between analysis and design model, the entanglement of business change and development process, and the limitation to the enterprise engineering approaches such as EA by IT. Our solution is concentrated on the middle, the inevitable model as a mediator between human, computer and the real world. We introduce model-driven application (MDApp) which is based on model-driven mechanism (MDM), operated on the evolutionary model of the target thing at runtime; it is able to largely avoid the transforming barrier and remove the entanglement. Thus, the architecture for enterprise model driven application (EMDA) is emerged, which is able to strongly support EE and adapts to the business changing at runtime.

Leave a Response

You must be logged in to post a comment.