[2004/12/1] 兩年前,OMG推出了MDA,用UML來自動化來自應用、中介軟體或者定製組件的軟體整合。顧問公司META集團的副總裁Thomas Murphy認為,從某種程度上說,軟體工廠和與之相關的領特定領域語言DSL(Domain Specific Languages)的概念,是微軟對MDA的回應。 “MDA是OMG的軟體工廠。微軟的目標是DSL領域,因此很多事情都是建立在觀察建模以及事情運轉的不同視角(View)的價值之上”那麼,微軟認為一個DSL是什麼呢?微軟企業架構和工具組的架構師Keith Short指出,許多開發人員已經在使用DSL工作了-雖然他們自己還不知道。 “SQL就是我們用得很好的一種DSL”,Keith解釋,開發人員使用SQL的過程中並不需要瞭解關聯式資料庫是如何工作的。 好,那麼這和軟體工廠的概念有什麼關係嗎?對初學者而言,微軟把軟體工廠作為自動化一些手工任務和封裝領域知識的一種方式。舉例來說,領域知識可以被封裝為代碼或者組件,並可以容易地被複用。Short認為,這也就是DSL的設計目的:從開發人員的角度來看,DSL可以協助抽象某個特定領域的複雜度(例如架構、過程、技術標準等)。如Web services就很複雜,要求開發人員要瞭解哪些service是可用的,如何串連的細節等。Short指出,“設想你可以把這些抽象到一個DSL,這個DSL就是關注特定開發環境的工具”。 和Web services一樣,SQL 是多年來標準化努力的成果。微軟和其它開發商都有義務來開發好的工具協助開發人員建立自己的DSL。Short說,“要實現理想的情境,我們要做的事情之一就是要協助設計人員簡單地構建DSL並實現它們……” 這個軟體巨人在九月的OOPSL會議上發出了DSL的呼籲,並捧出了一個新的工具集,協助開發人員在圖形化環境下定義、編輯DSL。Short指出,藏在該工具集後面的想法就是使得“軟體工廠的建立者可以更容易地描述一些事物之間的互動,例如原始碼和schema之間。” 微軟的動作已經引起了開發人員的關注,即使是像Michael Hudson這樣過去對微軟的技術通常不屑一顧的程式員。Hudson是Praxis公司的程式員,J2EE專家。他認為DSL是微軟的軟體工廠中最有震撼力的思想。但他認為很多思想都是從其它的技術例如XDE中借用過來的。XDE是Rational支援MDA方法的RAD工具。 Hudson 說,“我覺得他們找對了關鍵的地方,那就是:高層建模必須用領域特定的語言來描述。你可以更快地得到你所面對領域的商務邏輯,開發過程更快更有效。我覺得,軟體工廠這個概念如果能夠獲得成功的話,應該是因為在DSL上的創新。” 開發人員是可以將他們的經驗用DSL的方式進行封裝的,這是完全有可能的。這實際上也是他們對自己工作或多或少的抽象。 但Thomas Murphy認為這種事情將不會發生,“我們已經推動這個概念很久了:通過抽象來簡化軟體開發,使得誰都可以進行軟體開發。但未來還是會需要大量有創造力的開發人員,在軟體開發的最前線去開發組件、進行設計”。 (自adtmag,UMLChina袁峰 摘譯,不得轉載用於商業用途) |