.NET建模
| .NET建模 |
| Deborah Melewski, Jack Vaughan |
| [2004/1/1] 建模和軟件設計又將迎來新一波的高峰。UML和模型驅動架構MDA目前在業界越發引人注目,清晰地進行前置設計(design up front,譯者注:這是過去批判得比較多的,是瀑布開發中的思想,在迭代開發中批判較多)也吸引了更多的興趣。 建模的各種熱鬧氣氛似乎在.NET這邊還沒有太大影響。和其它程序員一樣,.NET開發者想得最多的就是編碼。但建模的改進同樣發生.NET領域,正如在java領域發生的一樣。 軟件應用的建模提供了一個輔助保證應用是否和用戶需求相吻合的藍圖(blueprint)。在.NET軟件開發方面投資的公司當然不愿意看到以下的場景發生:因為最初設計和架構的不合理,每隔幾年就要把應用重寫一遍。 最近的一些工具上的改進如Borland的Together Control Center和IBM的Rose XDE Developer都在幫助保證底層的代碼和UML模型的同步。這些努力使得人們接納UML,也使得建模事業得以穩步發展。 當然,.NET的復雜性導致了很多建模的挑戰。對那些熟悉OO技術的人而言,為.NET建模還不是太困難。但并不是所有的開發人員都熟悉面向對象的,而且,也不是每個人都是設計可重用構件方面的專家。 事實上微軟也發現為即將推出的Visual Studio .NET版本提供自己的建模產品是如此重要。這個軟件巨人的加入意味著這個領域將變得更加有趣,競爭也更加激烈。 什么驅動模型? 現在而言,對象裝配(object assembly)還是需要的。例如,微軟新推出的Visual Basic .NET和舊版的Visual Basic是不兼容的,新的Visual Basic .NET要求開發人員要掌握一些新的面向對象的概念。 早在幾年前,微軟就在Visual Studio box中提供了一個基本的Rational Rose建模工具。并且在購買Visio幾年前就在其工具中加入了Visio的一些特性。微軟還曾經幾次和第三方聯合創建有用的開發者倉庫。 但遺憾的是,在進入面向對象設計領域時,微軟開發者竟然沒有一個合適的工具,這不能不說是一個缺陷。現在情況可能會有所改善了,微軟正在著手開發代號為“白馬(Whitehorse)”的設計工具集。不過,越來越多的跡象顯示,微軟在進入建模領域的時候似乎并沒有采納UML或者MDA的標準。 模式和實踐 為了幫助開發人員可視化OO的概念,為復雜的.NET應用建模。許多工具提供商,包括IBM Rational、Borland、Telelogic、Interactive Objects Software GmbH、 Computer Associates、Compuware、Embarcadero、微軟及其它一些公司,要么為Visual Studio .NET開發環境專門推出新的建模工具,要么改進已有的工具。 Pittsburgh-based LogicLibrary公司的創辦人之一以及分管技術的副總裁Brent Carlson認為,建模可以由不同層次中的任意多層來驅動,“例如,今天的業務過程建模,在圖形環境中它對應為很多的過程工作流,將其轉換為需求,這個轉換過程并沒有必要通過工具實現,但人工實現是需要的”。 “我希望這個情況會得到改變,當然,這需要時間。通常說來,在.NET開發者考慮應用架構之前,很多工作都已經完成了,例如架構模型、.NET組件架構以及微軟已經開發的各種模式和實踐。” 為此,LogicLibrary和微軟建立了伙伴關系,力圖使得知識內容更加“可消費(consumable)”。這些都圍繞為開發和部署架構定義的模式和實踐展開,而且很多都是使用UML、模型驅動的。LogicLibrary管理這些內容并將它們提供給Visual Studio .NET的用戶。 LogicLibrary過去和微軟一起致力于以一種基于模型的形式表示這些參考應用。LogicLibrary的Logidex for .NET產品強調的是Carlson所提的“信息寶藏(the glut of information issue)”,幫助企業更好地組織已有的應用,并和微軟發布的參考應用放在一起,發揮作用。 “現在經常發生的情況是,你會發現信息太多而無處下手,” Carlson說,“但是,當一個開發者要開發一個.NET的應用,當他進入Visual Studio后,會看見如何進行數據存儲,或者如何進行例外處理、如何在業務層做緩沖以提高性能的例子。這就好像有一個非常好的團隊在幫助他,他會有一個飛躍,更快地構建出他的應用。” IBM繼續其.NET策略 Rational軟件公司是OMG的UML標準的早期開發者之一,如今它是IBM的一部分。在收購了Rational之后,IBM在其portfolio開發平臺的基礎上有了一個完整的開發平臺,并且包含了對.NET的支持。 IBM歷史上一直偏向Java,而不是.NET。IBM 進入開發工具領域的時候就是倚重為其WebSphere中間件服務器等中間件技術服務的工具,顯然,WebSphere是對基于Java的開發環境的補充。 Rational早在1999年就與IBM合作開發其Eclipse開發工具。也曾經和微軟緊密合作開發for. NET的可視化建模工具。在IBM收購Rational之后,關于Rational是否繼續支持微軟技術遭到了懷疑,關于這一點,IBM和Rational都聲明和微軟的關系將不會改變,對微軟技術的支持將一如既往。 實際上,IBM Rational提供了for .NET的覆蓋面很廣的全周期開發平臺。其語言無關性保證它們對Java和其它的軟件開發都是適用的。 Oberg補充說,從某種程度上說,今天的Visual Basic的開發人員明天可能會轉向Java。“對軟件組織而言,學習UML,并從具體底層的組件技術中抽象出來是一個非常有效的策略,這樣做的話,今天為一個.NET項目工作的人員可能明天就可以承擔一個Java項目,我們的工具可以應用于這兩種不同的組件技術,因此你學習的是如何去建模,UML是可以應用到Java和.NET技術上的。” IBM Rational的Rose XDE Developer包括了Eclipse IDE,既可以在微軟 Visual Studio .NET中運行,也可以在IBM WebSphere Studio中運行。“在一個環境中建模的成果可以重用到其它環境中;顯然,我們還沒有實現足夠高的抽象,還沒有將用戶與底層的組件技術分開,如果達到那一步的話,用戶甚至不需要知道底層技術是用的什么”。 白板,白馬(Whitehorse) 自從公司老板Bill Gates宣布之后,微軟就開始更新其建模工具,開發現在已經是眾人皆知的“Whitehorse”軟件。它是面向“為操作設計(design for operations)”的,允許用戶在開發過程的早期定義底層的需求邏輯,并進行驗證。 微軟開發部產品管理負責人,Prashant Sridharan認為, “目前的情況是,在底層架構和架構小組之間幾乎沒有交流”。而在Whitehorse中,業務底層架構的設計師和服務的設計師是共同工作的。“秘密在于他們如何協作”,Whitehorse將改進不同的軟件團隊之間的溝通,他認為Whitehorse將和微軟Visual Studio .NET的下一版本Whidbey一同推出,發行日期預計是2004年末。 ADT向Sridharan詢問Whitehorse對UML建模的支持。回答是,軟件內部沒有對UML建模的支持,但可以通過插件的形式提供。 “UML只是很多不同的建模環境中的一種。在Whitehorse中采取的方法就稍有差異。我們努力創建一個建模的平臺。”,這個平臺將包括一個建模引擎以及一個建模框架。他認為這個建模框架將是公共的(“在推出的時候”),而且公司已經和一些選定的第三方在這一點上進行合作。 Sridharan對此寄予厚望,“我們希望開拓建模的新時代,我們堅信模型驅動的開發—當然,我們也相信傳統的代碼編寫。” 和UML的偏離會讓一些人感到困惑(在微軟早期的Rose插件中是支持UML的),“微軟現在要走的道路不是基于各種標準的,”基于San Francisco的設計與建模Embarcadero技術公司的總裁Greg Keller認為,“他們對UML或者MDA并不感興趣,他們的工具將是好的,有效的,但其中將不包含除XML之外的其它標準。” 合作伙伴們的這些信息是否是從Whitehorse得到的呢?IBM Rational的主管Mike Devlin的回答是“是”。“對于如何建模,微軟有自己的看法。我們的看法和他們的看法的差別在于,我們的不是綁定在特定的平臺上的。” 微軟也在投身于建模事業,僅僅這個事實本身已經說明了很多。Grady Booch這么認為,他是UML的創始人之一,如今是IBM的一員。“他們的進入是非常振奮的一件事情。”他補充說,微軟的行動證明了IBM和Rational從90年代中期以來的努力方向是正確的。 .NET本質 .NET環境使用了特有的一些技術來幫助用戶創建Web-based以及傳統的肥客戶端應用。例如,在ADO.NET中的ADO.NET技術和Web service。IBM Rational的Rose XDE Developer建模工具中提供了一個用來在對ADO.NET以及web service應用建模的profile。 “最大的問題在于人們在不知情的情況下試圖改變Web service的定義,最后的結果是中斷了使用這些Web service的客戶端。”IBM Rational的開發主管Kevin Murphey認為,“這里,建模的作用非常關鍵,它可以幫助用戶管理自己的Web service以及基于Web的應用,用戶可以為GUI及其后臺的代碼建模,我們使得用戶可以使用UML為這些建模并實現可視化。” 在.NET的程序語言中引入了一些對軟件行業而言嶄新的概念如代理(delegate)、事件(events)、特性(properties)或者索引(indexers)等,這些概念至少還從未在編程語言中出現過。 通過輔助的建模技術,IBM Rational Rose XDE Developer允許對這些概念還不熟悉的開發人員可視化地使用他們。對理解這些編程概念并且熟練的開發人員來說,還提供了無需掌握復雜的UML細節的的可視化建模支持。 值得一提的是最近正由OMG評審的可重用資產規約。該規約通過一個標準的描述方式提供了創建資產的能力。例如,資產可以是代碼,代碼以及關于代碼的信息,描述代碼的作用或者要求、測試的結果、版本歷史或者支持可重用資產的關于代碼的各種元信息。 IBM Rational的Oberg認為,對軟件開發人員而言,這也許會帶來巨大的好處。因為有關資產重用的符號已經不是一個新東西了,但卻從來沒有真正實現過。IBM Rational已經在XDE中加入了有關支持,可以使用這種描述語言搜索并得到需要的組件了。 Java/.NET之謎 隨著.NET環境下提供的各種工具和標準越來越多,.NET環境下的建模和開發已經得到了飛速的發展,但.NET和Java之爭仍然是一個問題。微軟正在將java轉換為.NET,但是對很多團隊而言,Java還是第一站。當被問及IBM Rational將站在哪一邊時,Oberg毫不猶豫地選擇了Java。 “Java給用戶們帶來了太多,這正是為什么Java如今這么流行而且還將更加流行的原因,”Oberg說,“我們的顧客已經成功地使用Java開發了非常復雜和規模龐大的應用。而且具有可擴展性、魯棒性,并且,Java是一個不被任何一家特定公司所把持的開放的環境。” “更明確地說,如果有顧客在.NET和Java中間猶疑的話,IBM將會推薦Java,因為我們認為這將給顧客帶來最大的利益,但是,如果顧客由于其它原因選擇了.NET,我們也將繼續幫助他們開發大型的.NET應用。” 在這些建模工具和標準中,適應性已經被證明是一個關鍵的因素。UML支持很多平臺、語言和開發環境。MDA更是允許用戶保持模型和代碼的同步。另外,MDA還將UML擴展到代碼生成和程序生命周期的其它領域;借助其平臺無關性,MDA還支持到其它平臺的接口。 LogicLibrary的Cralson認為他的團隊已經可以很好地構建應用的架構,并且成功地從J2EE環境的應用轉換到.NET上。“兩個環境下的產品可以共用大部分的源碼,因為微軟為J#提供了強大的支持,可以直接以J#格式讀入Java代碼” “大部分情況下,我們的大部分Java源碼都可以以J#格式成功編譯并且部署在.NET框架中,這對我的團隊而言是個好事,對微軟而言也同樣如此,因為他們為傳統的Java開發者提供了無縫的環境。” 中間的環節呢? 微軟還將在建模領域投入更多的注意力,只要他還想維持和Java工具開發商的競爭局面。類似于Visual Studio的各種Java陣營的好用的IDE似乎在建模領域已經占據了優勢地位,也就是說,微軟現在扮演的是追趕者的角色,建模領域將成為一塊即將火熱的戰場。 “Java社團接受各種建模概念的速度要快得多,工具也要流行的多”,Embarcadero公司的Keller認為,“微軟現在拖著包袱在前進,他們的工具-Visual Studio-并沒有提供太多清晰的可視化特性。” “舉例說吧,Compuware和其它公司正在竭力將VB開發者吸引到Java陣營中,微軟在努力挽留VB的用戶,而Java陣營正在爭取他們。” “大部分的努力都是為了簡化應用開發。但并不停留在應用上,也不僅限于中間件上”,他說,“問題在于:如何簡化從類到數據庫組件的過程,以及中間的環節?” 更廣泛使用的.NET Visual Basic .NET的開發人員可能也想開發移動設備上的應用。總部位于Atlanta的AppForge公司的產品主管Bob Holt說,“打個比方,如果你想為一個Palm手持操作系統、Pocket PC、Symbian或者某些歐洲的智能手機寫應用的話,你在Visual Basic上的經驗可以繼續有效,你可以在Visual Basic Studio .NET寫程序,并進行測試,在寫好之后,AppForge的MobileVB.NET軟件開發平臺可以將這些代碼編譯為這些手持設備上的應用。” MobileVB.NET使用了for Visual Studio的一個插件。AppForge 的操作將可以從Visual Studio中多出來的一個菜單中得到。用戶可以通過和創建桌面應用同樣的方式使用各種Form。 按照Holt的說法,為Visual Studio .NET環境開發這些基于UML的插件已經很好地解決了建模的方方面面。在設計好之后,就可以使用Mobile VB.NET。 企業環境中典型的移動應用是具有組合框、連接指示以及數據庫邏輯的目錄操作。通過無線設備遠程操作的用戶可以在中央數據庫上進行目錄分析等工作。 AppForge跨越了包括航空、運輸、旅社、醫藥和財政的多個市場領域。可口可樂使用AppForge開發的產品,通過手持設備、顧客序列號和連接來統計關于可口可樂售貨機上賣出了什么,什么還沒有被賣出。 (自 adtmag,袁峰 摘譯,不得轉載用于商業用途) |
轉載于:https://www.cnblogs.com/voyage/archive/2004/07/04/21002.html
總結
- 上一篇: 在mojoportal项目中发邮件使用的
- 下一篇: 高等数学(第七版)同济大学 习题2-5