UML之父:架构业务需求与软件开发的桥梁
51CTO开发频道年终巨献:架构师最怕程序员知道的十件事
1947年出生在美国的James Rumbaugh拥有麻省理工学院的物理学学士学位和计算机科学博士学位,同时,他还是加利福尼亚理工学院的天文学硕士。按照OMG(标准化组织对象管理组)的评价,他是“全世界最早与计算机深入接触的人类”。
早在上世纪七十年,Rumbaugh博士就开始研究软件方法学以及相关的工具和概念,那时他在纽约斯卡奈塔第的通用电气研发中心工作,主要进行一些大型IT项目的设计和开发。
那是一个大型机横行的年代,遍布机房的存储设备和繁琐的控制操作经常让人感到无法适从;但Rumbaugh却乐在其中,他为自己的指令能与隔壁房间的庞然大物交流而感到兴奋,为自己的代码能被完整的映射到现实世界并解决实际的问题而荣幸。但在每个软件系统开发之前,他们这群“最早与计算机深入交流的人”都要面对一个困惑,如何把现实世界的问题转化到计算机里解决。
业务需求与软件需求
无论当时还是现在,业务领域跟计算机领域之间的概念存在着很大差别。一般来说,业务是用自然的语言来表述,但是软件有可能是用一些非常低级的计算机语言来表述的。构建一个软件需要写很多的代码,要写很多的控制逻辑,有很多复杂的东西在里面。正如目前很多的企业都在把业务与IT相结合作为一项重要的任务来做一样,其根本是要业务与软件之间建起一座桥梁。
为了建起这座桥梁,Rumbaugh博士开始探索新的需求分析和软件架构方法,提高软件开发效率。现在,我们把这门学问成为软件方法学,是指软件设计的原理和原则,以及基于这些原理、原则的方法和技术。其关注的中心问题是如何设计正确的软件和高效率地设计软件。
GE岁月
在通用电气研究发展中心,Rumbaugh博士陆续开发了DSM(Domain-Specific Modeling)面向对象编程语言、OMT对象建模符号以及Object Modeling Tool图形编辑器等。
DSM(Domain-Specific Modeling)领域定义建模,是通过使用领域概念直接指定解决方案的软件业务需求方法。DSM提高了超越程序代码之上的抽象层次,最终软件产品将从高层次的设计中直接自动产生,这样一个自动过程是可以实现的,因为 语言和代码产生器可以满足某一个公司或领域的需求,建模专家使用定义这个自动机器,而程序员只管使用即可。OMT是Object Modeling Technology的缩写, 意为对象建模技术,我们可以将其堪称UML的前身。它从三个方面对系统进行建模,每个模型从一个侧面反映系统的特性,三个模型分别是:对象模型、动态模型和功能模型。目前,OMT法是目前最为成熟和实用的建模方法之一。Rumbaugh博士不止为OMT设计了完备的建模符号系统,还同时开发了OMT的图形编辑器。
UML统一建模语言
1994年,Rumbaugh博士来到Rational软件公司,在此,他遇到了UML的另外两位创始人,同样为软件工程和软件方法学的专家Grady Booch和Ivar Jacobson。
左起分别是:Grady Booch、Ivar Jacobson和James Rumbaugh
Grady Booch自Rational于1981年创建以来,就担任重要职位,是多个Rational产品的最初开发人员之一。Grady曾担任全世界许多复杂精深软件项目的架构师和架构指导。Rational被IBM收购后,他一直担任IBM Rational的首席科学家,并于2003年3月荣获IBM名士(IBM fellow)称号。
Ivar Jacobson 在软件工程学领域非常有名,他在使用对象方法设计大型实时系统方面已经有超过25年的经验。在大规模架构重用方面也做了大量的工作,这是爱立信的AXE远程通信交换机取得成功的关键因素。
早期的Rational软件界面
在Rational期间,Rumbaugh博士总结了自己在对DSM和OMT的研究,并在Grady Booch和Ivar Jacobson的共同努力下推出UML(Unified Modeling Language)统一建模语言。
UML的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。总之,UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模。