簡介
在軟體工程團體,架構描述語言(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實現了接口連線架構。
架構與設計
架構和設計區別是什麼?架構鑄造非功能性決策和劃分功能需求,而設計是貫穿功能需求完成過程的原則。架構探索意味著,有必要更深一層驗證選擇,因此,架構必須做高層次的設計,以驗證劃分。
架構解決方案
•學院派解決方案
•專注於架構化模型的分析評估
•單獨模型
•嚴格的建模標記
•強大的分析技術
•深度優先廣度
•特殊用途的解決方案
•工業解決方案
•專注於廣泛的開發問題
•模型家族化
•實用性優先於嚴謹性
•架構作為開發的藍圖
•廣度優先深度
•通用解決方案