架構描述語言

架構描述語言(Architecture Description Language),簡稱ADL。目前,兩個重要的團體在使用架構描述語言術語。它們是:

在軟件工程團體,架構描述語言(ADL)是一種電腦語言,用來描述軟件或系統架構。這意味着如果是技術性架構,該架構必須被清楚的傳達給軟件開發者。功能架構下,該軟件架構必須被清楚的傳達給利益相關者和企業工程師。一些軟件工程團體開發了若干ADL,如ACME(CMU開發),AADL(SAE標準化),C2(UCI開發),Darwin(英國倫敦帝國學院開發)和Wright(CMU開發) 。

企業建模和工程團體也開發了企業級的架構描述語言。例子包括ArchiMate(現在是 The Open Group 發佈的標準),DEMO等。這些語言並不需要參照軟件構件等。但他們大多數認為應用架構應該能清楚的傳達給軟件工程師。

下面所寫的內容主要從軟件工程團體的角度考慮。

簡介

如有標準標記(ADL)表現架構,下列方面將會更好:

  • 相互溝通
  • 體現早期設計決策
  • 系統抽象可轉換

過去的架構主要是通過畫方塊和線表述。圖中通常定義下列內容:

  • 構件的自然特性
  • 構件屬性
  • 語意連接
  • 整個系統行為

ADL起源於正式表現架構的語言學方法,因此也表明了其缺點。複雜的ADL允許架構設計決策的早期分析和可行性測試。

特徵

有許多種ADL,或由學術機構開發或由工業組織開發。有些語言不試圖成為一個ADL,但事實證明它們適合表現和分析架構。ADL原則上的不同之處:

  • 需求語言,因為ADL植根於解決方案,而需要說明問題。
  • 程式語言,因為ADL不能繫結架構抽象到具體解決方案
  • 建模語言,因為ADL往往側重於表現構件而不是整體行為。然而,有重點表現構件的特定域建模語言(DSML)。

下面列表是ADL語言最基本的要求。必須:

  • 適合架構表達給所有有關方面
  • 支援架構建立,完善和驗證任務
  • 提供一個進一步實現的基礎,因此它必須能夠給ADL規範添加資訊,使最終的系統規範衍生自ADL
  • 提供表現通用類型架構的能力
  • 支援分析能力或提供快速生成原型的實現

ADL的共同點:

  • 圖形語法,帶有通常是文字形式並正式定義的語法和語意
  • 分散式系統建模的特性
  • 不支援捕捉設計資訊,除非使用通用註釋機制
  • 能夠表現細節層次,包括通過實例模板建立子結構

ADL的不同能力:

  • 在架構層次,處理即時構造,如期限和任務優先次序,
  • 支援不同風格架構的規範。很少處理物件導向類繼承或動態架構
  • 支援分析
  • 處理相同架構的不同實例,涉及產品線架構

ADL積極因素

  • ADL代表表現架構的正式方式
  • ADL,人和機器可讀
  • 支援在可能比原先較高的水平描述一個系統
  • ADL支援架構分析-完整性,一致性,歧義,和效能
  • ADL支援自動生成軟件系統

ADL消極因素

  • 沒有普遍一致的意見:ADL應表現什麼,特別是架構的行為
  • 目前使用的表現,分析困難且無商業工具支援
  • 大多數ADL傾向於垂直最佳化特定的分析

架構的共同概念

ADL團體普遍認為,軟件體系結構是一套組件以及它們之間的連接。但也有如下不同類型的架構:

對象連接架構

  • 組態包括介面和物件導向系統的連接的
  • 介面指定由模組必須提供的特性與介面一致
  • 介面所代表的連接與呼叫圖一起
  • 通常程式語言強制一致性

o 分解- 介面關聯到唯一的模組 o 介面一致性-句法規則的靜態檢查 o 通訊完整性-模組之間可見性

介面連接架構

  • 擴充介面和連接的角色

o 介面指定「需要」和「提供」特性 o 連接被定義在「需要」和「提供」特性之間

  • 包括介面,連接和約束

o 約束架構中介面和連接的嚴格行為 o 架構中的約束對映為系統需求

大多數ADL實現了介面連接架構。

架構與設計

架構和設計區別是什麼?架構鑄造非功能性決策和劃分功能需求,而設計是貫穿功能需求完成過程的原則。架構探索意味着,有必要更深一層驗證選擇,因此,架構必須做高層次的設計,以驗證劃分。

例子

下面的列表給出了目前為止最好的ADL候選

架構解決方案

  • 學院派解決方案
    • 專注於架構化模型的分析評估
    • 單獨模型
    • 嚴格的建模標記
    • 強大的分析技術
    • 深度優先廣度
    • 特殊用途的解決方案
  • 工業解決方案
    • 專注於廣泛的開發問題
    • 模型家族化
    • 實用性優先於嚴謹性
    • 架構作為開發的藍圖
    • 廣度優先深度
    • 通用解決方案

結論

  • 有豐富的研究可借鑑
  • 已經學習了很多表現和分析架構的知識
  • 現在需要總結共同知識並付諸實踐