跳至內容

Acceleo

出自Taiwan Tongues 繁中維基
這是此頁批准,以及是最近的修訂。

Acceleo 是 Eclipse 基金會旗下的一款開源程式碼產生器,允許使用者採用模型驅動方法來建構應用程式。它是物件管理組織 (OMG) 提出的「MOFM2T」標準的實作,用於執行模型至文字轉換。

歷史與發展

早期版本

Acceleo 專案於 2006 年隨著網站 Acceleo.org 的推出而誕生。Acceleo 1.0 採用 GNU 通用公共授權條款 (GPL) 授權,並相容於 Eclipse 3.0、3.1 以及數個基於 EMF 和 UML 1.2 的建模工具。數週後,Acceleo 1.1 支援 Eclipse 3.2 和 UML 1.3。隨著 Acceleo 1.2 的發行,Acceleo 變更了其授權條款,改為採用 Eclipse 基金會專案所使用的 Eclipse 公共授權條款 (EPL)。Acceleo 2 於 2007 年 6 月 5 日推出,在此之前,網站 planet.acceleo.org 上線,其中收錄了 Acceleo 社群成員撰寫的文章以及包含基於 Acceleo 2 的程式碼產生器的 Acceleo 模組儲存庫。

加入 Eclipse 基金會

2009 年,在轉向 Acceleo 3 的過程中,該專案被 Eclipse 基金會接受。在此過渡期間,Acceleo 用於定義程式碼產生器的語言已變更為使用 OMG 針對模型至文字轉換的新標準 MOFM2T。隨著 Eclipse 3.6 Helios 的發行,Acceleo 作為 Eclipse 基金會的官方專案,被納入 Eclipse 同步發行列車。Acceleo 是一款 Eclipse 外掛程式,因此整合於 Eclipse IDE 中。Acceleo 建構於數個關鍵的 Eclipse 技術之上,例如 EMF,以及自 Acceleo 3 發行以來的 Eclipse OCL 實作。OCL 是 OMG 的一門標準語言,用於導覽模型並定義模型元素的約束。

商標

雖然 Acceleo 的原始碼是開源的,但整合在 Acceleo 中的 Acceleo 商標及其標誌並非開源。它們曾是 Acceleo 創建者 Obeo 公司的商標,並在 Acceleo 被接受為官方專案時轉讓給了 Eclipse 基金會。

原始碼

Acceleo 是一個 Eclipse 專案,主要以 Java 開發,並依據 Eclipse 公共授權條款 (EPL) 提供。Acceleo 1.x 和 2.x 的原始碼可在 OW2 聯盟網站的 SVN 上取得。隨著 2009 年加入 Eclipse 基金會,Acceleo 3 的原始碼從 SVN 轉移到 Eclipse 基金會伺服器上一個基於 CVS 的儲存庫。在 2011 年 Eclipse 3.7 Indigo 發行後,Acceleo 專案追隨數個 Eclipse 基金會官方專案發起的遷移,已遷移至 Git,自 2011 年 7 月起,Acceleo 的原始碼可在 GitHub 上取得。

發行版本

  • 首個穩定版:Acceleo 1.0.0,自 2006 年 4 月 1 日起提供

支援平台

Acceleo 以 Java 編寫,並作為外掛程式部署於 Eclipse IDE 中。Acceleo 支援基於 Java 5+ 的環境,於以下平台:

  • Linux
  • macOS
  • Windows XP, Windows Vista, Windows 7

語言

從 Acceleo 3 開始,用於定義 Acceleo 程式碼產生器的語言是 MOFM2T 標準的實作。此程式碼產生語言採用範本式方法。在此方法中,範本是一個包含專用部分的文字,其中的文字將根據輸入模型提供的元素計算而得。這些專用部分多數是指定於輸入模型實體上的運算式,用於從這些模型中選擇和提取資訊。在 Acceleo 中,這些運算式基於 Eclipse 的 OCL 語言實作。

功能

Acceleo 提供從基於 EMF 的模型產生程式碼的工具。藉由這些工具,Acceleo 允許(例如)增量產生。增量產生讓使用者能夠產生一段程式碼,然後修改產生的程式碼,最後再次重新產生程式碼而不會遺失先前的修改。

Acceleo 還允許:

  • 從任何與 EMF 相容的元模型(如 UML 1、UML 2,甚至是自訂元模型 (DSLs))產生程式碼
  • 使用使用者自訂範本來自訂產生過程
  • 產生任何文字語言(C、Java、Python 等)

編輯器

Acceleo 包含一個程式碼產生模組編輯器,具備語法高亮、自動完成、即時錯誤偵測和重構功能。

除錯器

Acceleo 除錯器能夠監控產生進度。它讓使用者能透過中斷點暫停產生過程、檢查變數的狀態,並在產生過程中逐步執行以找出問題。

分析器

分析器讓使用者能夠找出在產生過程中執行的所有指令、這些指令被執行的次數,以及每條指令所花費的時間。使用分析器啟動產生過程後,分析資料可在 EMF 模型中取得。它讓使用者能夠找到所建立的程式碼產生器中的瓶頸。

可追溯性

Acceleo 引擎能夠計算一個檔案產生過程中涉及的所有元素的可追溯性資訊。這個系統允許(例如)確定用於產生特定文字片段的輸入模型元素,以及所涉及的程式碼產生器部分。

獨立使用

Acceleo 的關鍵元件—剖析器和產生引擎,也可以「獨立」使用,無需部署在 Eclipse 上。Acceleo 會產生一個 Java 類別,以程式化方式啟動產生過程,從而允許將 Acceleo 產生器整合到任何 Java 應用程式中。這個 Java 啟動器也可以從 Ant 或 Maven 呼叫。

相容性

Acceleo 的最新版本相容於:

  • 獨立的 Java 6 執行環境
  • Eclipse 3.7 Indigo
  • Eclipse 3.8 Juno
  • Eclipse 4.3 Kepler
  • Eclipse 4.4 Luna
  • Eclipse 4.5 Mars
  • Eclipse 4.6 Neon

Acceleo 基於 EMF 建模框架。因此它相容於任何能夠產生與 EMF 相容模型的工具。

範例

Acceleo 可以使用任何由各類元模型(如 UML 或自訂 DSLs)定義的、與 EMF 相容的模型。使用者可基於此元模型定義一個程式碼產生器,該產生器將從使用該元模型的模型中產生任何種類的文字語言。

在此我們使用來自 EMF 的以下元素:EClass、EAttribute 和 EOperation。藉由此簡單模組和這個輸入模型,Acceleo 可以產生相應的程式碼。此範例中定義的模組被參數化以產生 Java,但 MOFM2T 標準與產生的程式碼無關。產生器建立後,使用者可以使用另一個模型來產生外觀相似但內容不同的程式碼片段。Acceleo 整合了數個程式碼產生範例,用於產生 Java 和 Python。

獎項

社群與交流

Acceleo 社群聚集於 Eclipse 基金會網站的 Acceleo 專區。Acceleo 文件可在 Eclipse 說明中心及 Acceleo 專案的 wiki 線上存取。

會議

Acceleo 的開發者也透過在 MDA 或 Eclipse 會議中發表的簡報與社群進行交流。

參考資料

外部連結

Category:Eclipse (軟體) Category:UML 工具 Category:免費 UML 工具 Category:2006 年軟體