ソフトウェアアーキテクチャ
計算機科学の分野は、その草創期から複雑性に関する問題を扱ってきた。初期の複雑性の問題は、開発者が正しいデータ構造を使い、アルゴリズムを開発し、問題を分割する手法を用いることによって解決されていた。その一方で、「ソフトウェアアーキテクチャ」という用語は、業界でも比較的新しいものである。その分野の根本原理は、1980年代ごろからソフトウェア工学の先駆者たちによって散発的に適用されてきた。そのため、システムのソフトウェアアーキテクチャを説明する初期の試みは、不正確で混乱したものであった(四角形と線で描かれた図など)。1990年代、ソフトウェアアーキテクチャの根本的な記述方法の成文化が集中的に行われた。その結果、初期のデザインパターン、ベストプラクティス、記述言語、形式論理などが開発された。
ソフトウェアアーキテクチャとは、抽象化と問題の分割によって複雑性を減らすことを主に念頭に置いたものである。ただし、今までのところ「ソフトウェアアーキテクチャ」という用語に関して、万人が合意した厳密な定義は存在しない。