ソフトウェアアーキテクチャ
ソフトウェアアーキテクチャ(英: Software Architecture)は、ソフトウェアコンポーネント、それらの外部特性、またそれらの相互関係から構成される。また、この用語はシステムのソフトウェアアーキテクチャの文書化を意味することもある。ソフトウェアアーキテクチャの文書は開発依頼主とのコミュニケーションを容易にするもので、概要レベルの設計に関する早期の決定を促し、プロジェクト間でのコンポーネントとパターンの設計を再利用することを可能にする。
概念としてのソフトウェアアーキテクチャの起源は、1968年のエドガー・ダイクストラの研究や1970年代初期のデイビッド・パーナスの研究である。科学者たちは、ソフトウェアシステムの構造が重要であり、構造を正しくすることが肝要であることを強調した。1990年代初期には、この領域の研究は盛んになり、アーキテクチャ上のスタイル(パターン)、アーキテクチャ記述言語、アーキテクチャの文書化、形式手法などが主に研究されるようになった。カーネギーメロン大学やカリフォルニア大学アーバイン校(UCI)など多数の研究機関がソフトウェアアーキテクチャの研究を行っている。カーネギーメロン大学の Mary Shaw と David Garlan の著書 Software Architecture: Perspectives on an Emerging Discipline(1996年)で、コンポーネント、コネクター、スタイルといったソフトウェアアーキテクチャ上の概念を提唱した。UCI の Institute for Software Research では、アーキテクチャ上のスタイル、アーキテクチャ記述言語、動的アーキテクチャなどを主に研究している。
ANSI/IEEE 1471-2000: Recommended Practice for Architecture Description of Software-Intensive Systems(ソフトウェアシステムのアーキテクチャ記述のための指針)は、ソフトウェアアーキテクチャの領域での世界初の標準であり、最近 ISO によって ISO/IEC DIS 25961 として採用された。