沒有特定的實作規範,眾家產品各展所長
微軟、IBM、Borland、CA、Sybase、鼎新等多家大廠,均表示支援MDA,然而OMG並沒有規定如何實作,也沒要求支援哪些標準才算MDA。在沒有基準起跑點的情況下,只要有支援UML、MOF、OCL、CWM、XMI等眾多MDA標準的其中一項,即可號稱支援MDA。也由於實作的方法及涵蓋MDA技術的範圍不同,因此各家工具廠商以不同構想及理念,研發出差異性頗大的MDA工具。
其中微軟雖然尚無自家的塑模工具推出,不過產品經理許建志透露目前已在開發,很有可能在2004年TechED發表。此外,微軟也會支援MDA,不過其所使用的塑模語言,非OMG組織推出的UML,而是DSL(Domain Specific Language)。鼎新SoftScore協助確認需求
鼎新的SoftScore是軟體需求塑模工具,著重CIM階段的應用。需求建立與需求管理不同,SoftScore是需求確認及建立的工具,以類似PowerPoint的方式,設計系統的畫面,並建立畫面之間的行關關連,以協助使用者確認流程,並提供模擬功能,類似播放電影的方式,讓使用者及開發人員確認系統的外觀及功能,比傳統文件化的表達方式更易理解。
在需求確認後,使用者的需求及開發人員想像不會有落差,桌子不會變成椅子後,再透過測試確認品質。SoftScore符合TDD(Test-Driven Development)的精神,可註解測試方法及系統功能,匯出需求模型成為PDF檔案,產出UML的Use Case及測試案例。
傳統的雛型發展法,也提供系統基本的雛型讓使用者確認需求,然而開發團隊往往捨不得丟棄雛型,繼續延用發展成正式的系統,屬於演化的作法。然而雛型本身是為確認需求所搭建的鐵皮屋,並沒有通盤考量系統架構及資料庫設計,因此完成的系統就成了拼拼湊湊的組合屋。SoftScore即希望打破疊床架屋的作法,以圖形化的方法建構及確認需求。
目前SoftScore停留在CIM的階段,對軟體開發商有比較大的用處,可方便確認客戶需求,降低溝通的成本,未來若延伸到PIM、PSM層,可由需求、塑模到產生實際的程式碼,將是完整的MDA產品。Borland Delphi for .NET及 C# Builder ECO版
Borland認為設計驅動應用程式開發所採取的策略,是模型應該被實作並且執行,而不是由開發人員來解釋模型。一個精確設計的模型包含足夠的資訊,可以讓工具自動產生可以執行這個模型的原始程式,無需開發人員再撰寫程式碼,讓開發人員專心於模型的設計工作。
ECO基於MDA的軟體工程為開發核心觀念,因此傳統的開發方式不同,應用程式從設計應用程式的模型開始,再藉由ECO的OR-Mapping機制繫結模型和資料來源。第3個步驟則是使用ECO元件和OCL來繫結模型和應用程式,最後開發人員再使用一般的.NET元件連結ECO元件並且使用Delphi、C#程式語言撰寫應用程式。
MDA是循環式的開發流程,因此開發人員在開發ECO應用程式時,可以在一個階段完成之後,再次回頭強化設計階段的ECO模型,並再持續往後的步驟來調整及補強ECO應用程式。在開發人員改變了模型之後,ECO也會自動的更新資料來源中的綱要(Table Schema),以搭配對應修改過後的模型。Compuware OptimalJ
Sybase PowerDesigner 10.0
OptimalJ非CASE Tool,根據MDA精神研發專注在Java領域的開發工具,包括PIM層級的Domain Model、PSM層級的Application Model,及根據PSM模型產出程式碼的Code Model。
即使不會寫Java程式也不會設計網頁的人,站在以業務的角度出發,在Domain Model設計商業模型、邏輯及行為後,即可轉換成Application Model,最後再轉換成Code Model產生JSP、EJB及SQL Script程式碼。只要使用者設定好搭配的資料庫及應用伺服器,OptimalJ即自動轉換成對應的SQL語法,編輯之後即可部署與執行應用程式,OptimalJ支援WebLogic、WebSphere、Oracle等多種應用伺服器,企業只要抽換PSM即可。
根據模型的商業邏輯設定,產生藍色區塊的程式碼是無法修改的,否則會影響模型;系統預留Free Block白色區塊,提供無關商業邏輯自行修改的空間,例如美化GUI介面。根據昇陽認證的Pattern產生的程式碼,程式的寫法及執行效能未必符合需求,但是為避免影響模型,藍色區塊無法修改,因此企業可修改或自訂Pattern,產生符合需求的程式碼。以一致性的風格產出符合需求的程式碼,避免個人風格強烈的程式難以維護。
以目前的MDA工具而言,仍無法產生完整的程式碼,OptimalJ 實現 OCL可以設定商業邏輯,而新增、刪除、修改等系統行為,是透過Pattern(模式)所產生程式碼。利用XMI的標準,OptimalJ的模型可與其他MDA產品互通,匯出至其他工具,即可抽換PSM產生各種程式語言的程式碼,不過由於如何實作MDA沒有一定的標準,如何產出與系統行為有關的程式碼,取決於工具提供的功能。
一般認為OptimalJ實踐了MDA的理想,產生「可執行」的程式碼,因此目前有中央及中原等大學,以OptimalJ作為教授MDA的工具。不過,從另一個角度來看,MDA是非關平臺的架構,OptimalJ專注於Java平臺,因此可以設定套用Pattern,產出細膩的程式碼,相對難免犧牲程式語言的包容性。
在PowerDesigner 9.0版時,支援30多種資料庫及Java與PowerScript語言,相隔一年推出10.0版已支援40多種資料庫及C#、C++、CORBA、Java及PowerScript等多種程式語言,主要的原因是Sybase的PowerDesigner 10.0強調與平臺無關的設計,可自訂程式語言的規則或資料庫的對應語法,再匯入PowerDesigner,即可新增支援的程式語言及資料庫。即使未來出現新的程式語言或資料庫,只要匯入描述檔PowerDesigner就可支援新的技術。
PIM概念性的模型透過Pattern(模式),結合PSM技術平臺產出程式碼。PowerDesigner並未內建任何模式,開發人員可利用VB Script自行定義PowerDesigner的運作機制,也就是定義模型轉換成實作的規則。開發人員也可在模型中撰寫程式,模型轉換成程式碼時,即可套用內容,但無法驗證程式的正確性,下一版的PowerDesigner將與整合開發環境結合,即可提供更成熟的開發功能。未來的趨勢
MDA的工具尚未成熟,未來將朝什麼樣的方向努力?Sybase系統顧問向質彬表示:「目前仍免不了與IDE及程式語言結合,最終可做到非關平臺的機制。」能產生細膩程式碼的工具,往往與特定平臺相結合;PowerDesigner強調非關平臺的設計,對程式語言的包容性較強的工具,則自動化實作程式碼的功能又顯得薄弱。相信隨著軟體技術的突飛猛進,終將出現非關平臺又能產出程式碼的工具。
李維認為:「模型驗證功能將是關鍵的機制。」除了完整UML的功能,其他MDA的規格也必須實作,最重要的是驗證模型正確性的功能。開發工具與CASE Tool的定位不同,也將有不同的發展趨勢。開發工具會著重實作模型,基本的功能必須可繪製Class Diagram設計圖,並支援MDA的功能,進而由模型轉換成實作的程式碼。CASE Tool則是設計及塑模的工具,不但所有UML的圖形皆需支援,還要可以繪製CIM、PIM的圖,並提供設定或撰寫OCL的介面,更重要的是,驗證語法及執行結果的正確性。
軟體開發商開發專案,必須根據用戶指定的資料庫或應用伺服器等實際環境調整程式,若使用MDA的架構,軟體開發商只需專注在各領域的產業知識,發揮軟體設計的專長,後續開發苦工,及對應各種軟硬體環境必須的調整,交給工具完成即可。文⊙李延華
熱門新聞
2026-01-12
2026-01-16
2026-01-12
2026-01-16
2026-01-12