アーキテクチャ記述言語
学術界や産業界で様々なADLが開発されている。その多くは単にADLであるだけでなく、アーキテクチャの表現や分析にも対応している。ADLはソリューション(解法)を記述するための言語であり、問題を記述するための要求仕様記述言語ではない。また、ADLは抽象化されたアーキテクチャを特定の解法に結び付けるものではないため、プログラミング言語ではない。ADLはコンポーネントを表現するものであり、全体の振る舞いを記述するモデリング言語とも異なる。ただし、ドメイン固有モデリング (DSM) の言語はコンポーネントを表現することに集中している。
ADLの最低限備えるべき特徴は以下の通りである:
あるシステムの関係者全員がそのアーキテクチャについてやり取りするのに適していること。
アーキテクチャ作成/修正/検証に必要な機能を備えていること。
その後の実装に必要な情報が提供できること。
長所
アーキテクチャを形式的に表現できる。
人間もマシンも読むことができる。
従来の手法よりも高い抽象レベルでシステムを記述できる。
アーキテクチャを分析できる(完全性、一貫性、あいまい性、性能)。
ソフトウェアの自動生成に対応できる。
短所
UMLのような汎用的なもの以外に国際的な標準規格がない。
現状のADLの構文解析は複雑であり、商用ツールで対応していない。
今のところ研究レベルに留まっており、商業的に広く使われるには至っていない。
特定の分析に特化して最適化しているものがほとんどである。
アーキテクチャ記述言語(Architecture Description Language、ADL)とは、ソフトウェアアーキテクチャやシステムアーキテクチャを記述するためのコンピュータ言語または概念モデルである。ソフトウェア開発者がアーキテクチャについてやり取りする場合や、開発者と発注元との認識あわせに使う。またエンタープライズモデリングでも使われる。
ソフトウェア工学分野では、Acme(CMUが開発)、AADL(SAEが標準化)、C2(UCIが開発)、Darwin(インペリアル・カレッジ・ロンドンが開発)、Wright(CMUが開発)などがある。
ISO/IEC/IEEE 42010 (Systems and software engineering — Architecture description)では、アーキテクチャ記述言語を「アーキテクチャ記述で使用される任意の表現形式」と定義し、ADLに最低限要求されることを示している。
事業体モデリングの分野では企業レベルのアーキテクチャ記述言語が開発されている。例えば、ArchiMate(The Open Group)、DEMO、ABACUS(シドニー工科大学が開発)などがある。これらは必ずしもソフトウェアコンポーネントなどを記述しないが、アプリケーションのアーキテクチャをソフトウェア技術者に伝えるのに使われる。
以下では主にソフトウェア工学でのADLについて解説している。