UML之父:架構(gòu)業(yè)務(wù)需求與軟件開發(fā)的橋梁
原創(chuàng)【51CTO獨(dú)家特稿】在天文學(xué)領(lǐng)域,他是最知名的計(jì)算機(jī)大師;在計(jì)算機(jī)領(lǐng)域,他聞名于世的不止是天文學(xué)家的稱號(hào),還有數(shù)據(jù)流計(jì)算機(jī)體系結(jié)構(gòu)和UML(統(tǒng)一建模語言)。他就是世界著名的軟件開發(fā)方法學(xué)家James Rumbaugh(詹姆斯-朗博)。
51CTO開發(fā)頻道年終巨獻(xiàn):架構(gòu)師最怕程序員知道的十件事
1947年出生在美國的James Rumbaugh擁有麻省理工學(xué)院的物理學(xué)學(xué)士學(xué)位和計(jì)算機(jī)科學(xué)博士學(xué)位,同時(shí),他還是加利福尼亞理工學(xué)院的天文學(xué)碩士。按照OMG(標(biāo)準(zhǔn)化組織對(duì)象管理組)的評(píng)價(jià),他是“全世界最早與計(jì)算機(jī)深入接觸的人類”。
早在上世紀(jì)七十年,Rumbaugh博士就開始研究軟件方法學(xué)以及相關(guān)的工具和概念,那時(shí)他在紐約斯卡奈塔第的通用電氣研發(fā)中心工作,主要進(jìn)行一些大型IT項(xiàng)目的設(shè)計(jì)和開發(fā)。
那是一個(gè)大型機(jī)橫行的年代,遍布機(jī)房的存儲(chǔ)設(shè)備和繁瑣的控制操作經(jīng)常讓人感到無法適從;但Rumbaugh卻樂在其中,他為自己的指令能與隔壁房間的龐然大物交流而感到興奮,為自己的代碼能被完整的映射到現(xiàn)實(shí)世界并解決實(shí)際的問題而榮幸。但在每個(gè)軟件系統(tǒng)開發(fā)之前,他們這群“最早與計(jì)算機(jī)深入交流的人”都要面對(duì)一個(gè)困惑,如何把現(xiàn)實(shí)世界的問題轉(zhuǎn)化到計(jì)算機(jī)里解決。
業(yè)務(wù)需求與軟件需求
無論當(dāng)時(shí)還是現(xiàn)在,業(yè)務(wù)領(lǐng)域跟計(jì)算機(jī)領(lǐng)域之間的概念存在著很大差別。一般來說,業(yè)務(wù)是用自然的語言來表述,但是軟件有可能是用一些非常低級(jí)的計(jì)算機(jī)語言來表述的。構(gòu)建一個(gè)軟件需要寫很多的代碼,要寫很多的控制邏輯,有很多復(fù)雜的東西在里面。正如目前很多的企業(yè)都在把業(yè)務(wù)與IT相結(jié)合作為一項(xiàng)重要的任務(wù)來做一樣,其根本是要業(yè)務(wù)與軟件之間建起一座橋梁。
為了建起這座橋梁,Rumbaugh博士開始探索新的需求分析和軟件架構(gòu)方法,提高軟件開發(fā)效率?,F(xiàn)在,我們把這門學(xué)問成為軟件方法學(xué),是指軟件設(shè)計(jì)的原理和原則,以及基于這些原理、原則的方法和技術(shù)。其關(guān)注的中心問題是如何設(shè)計(jì)正確的軟件和高效率地設(shè)計(jì)軟件。
GE歲月
在通用電氣研究發(fā)展中心,Rumbaugh博士陸續(xù)開發(fā)了DSM(Domain-Specific Modeling)面向?qū)ο缶幊陶Z言、OMT對(duì)象建模符號(hào)以及Object Modeling Tool圖形編輯器等。
#t#DSM(Domain-Specific Modeling)領(lǐng)域定義建模,是通過使用領(lǐng)域概念直接指定解決方案的軟件業(yè)務(wù)需求方法。DSM提高了超越程序代碼之上的抽象層次,最終軟件產(chǎn)品將從高層次的設(shè)計(jì)中直接自動(dòng)產(chǎn)生,這樣一個(gè)自動(dòng)過程是可以實(shí)現(xiàn)的,因?yàn)?語言和代碼產(chǎn)生器可以滿足某一個(gè)公司或領(lǐng)域的需求,建模專家使用定義這個(gè)自動(dòng)機(jī)器,而程序員只管使用即可。
OMT是Object Modeling Technology的縮寫, 意為對(duì)象建模技術(shù),我們可以將其堪稱UML的前身。它從三個(gè)方面對(duì)系統(tǒng)進(jìn)行建模,每個(gè)模型從一個(gè)側(cè)面反映系統(tǒng)的特性,三個(gè)模型分別是:對(duì)象模型、動(dòng)態(tài)模型和功能模型。目前,OMT法是目前最為成熟和實(shí)用的建模方法之一。Rumbaugh博士不止為OMT設(shè)計(jì)了完備的建模符號(hào)系統(tǒng),還同時(shí)開發(fā)了OMT的圖形編輯器。
UML統(tǒng)一建模語言
1994年,Rumbaugh博士來到Rational軟件公司,在此,他遇到了UML的另外兩位創(chuàng)始人,同樣為軟件工程和軟件方法學(xué)的專家Grady Booch和Ivar Jacobson。
左起分別是:Grady Booch、Ivar Jacobson和James Rumbaugh
Grady Booch自Rational于1981年創(chuàng)建以來,就擔(dān)任重要職位,是多個(gè)Rational產(chǎn)品的最初開發(fā)人員之一。Grady曾擔(dān)任全世界許多復(fù)雜精深軟件項(xiàng)目的架構(gòu)師和架構(gòu)指導(dǎo)。Rational被IBM收購后,他一直擔(dān)任IBM Rational的首席科學(xué)家,并于2003年3月榮獲IBM名士(IBM fellow)稱號(hào)。
Ivar Jacobson 在軟件工程學(xué)領(lǐng)域非常有名,他在使用對(duì)象方法設(shè)計(jì)大型實(shí)時(shí)系統(tǒng)方面已經(jīng)有超過25年的經(jīng)驗(yàn)。在大規(guī)模架構(gòu)重用方面也做了大量的工作,這是愛立信的AXE遠(yuǎn)程通信交換機(jī)取得成功的關(guān)鍵因素。
在Rational期間,Rumbaugh博士總結(jié)了自己在對(duì)DSM和OMT的研究,并在Grady Booch和Ivar Jacobson的共同努力下推出UML(Unified Modeling Language)統(tǒng)一建模語言。
UML的目標(biāo)是以面向?qū)ο髨D的方式來描述任何類型的系統(tǒng),具有很寬的應(yīng)用領(lǐng)域。其中最常用的是建立軟件系統(tǒng)的模型,但它同樣可以用于描述非軟件領(lǐng)域的系統(tǒng),如機(jī)械系統(tǒng)、企業(yè)機(jī)構(gòu)或業(yè)務(wù)過程,以及處理復(fù)雜數(shù)據(jù)的信息系統(tǒng)、具有實(shí)時(shí)要求的工業(yè)系統(tǒng)或工業(yè)過程等??傊琔ML是一個(gè)通用的標(biāo)準(zhǔn)建模語言,可以對(duì)任何具有靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的系統(tǒng)進(jìn)行建模。
1996年,一些機(jī)構(gòu)將UML作為其商業(yè)策略已日趨明顯。UML的開發(fā)者得到了來自公眾的正面反應(yīng),并倡議成立了UML成員協(xié)會(huì),以完善、加強(qiáng)和促進(jìn)UML的定義工作。當(dāng)時(shí)的成員有DEC、HP、I-Logix、 Itellicorp、 IBM、ICON Computing、MCI Systemhouse、Microsoft、Oracle、Rational Software、TI以及Unisys。1997年,UML被對(duì)象管理組織(OMG)正式確定為國際標(biāo)準(zhǔn)。
目前,UML已經(jīng)成為軟件架構(gòu)的核心工具,隨之產(chǎn)生的IBM Rational和微軟VSTS等工具也成為主流的軟件開發(fā)工具。在Rational公司2003年被IBM收購后,Rumbaugh博士一直擔(dān)任IBM建模工具的核心架構(gòu)師,并成為享譽(yù)全球的軟件開發(fā)方法學(xué)大師。