「アーキテクチャ」って、何を指すの?


「アーキテクチャ」という言葉はソフトウェアエンジニアとして働いているとよく聞きますが、そういえば曖昧に、漠然としたイメージだけで捉えていたので、整理するために書きました。

「アーキテクチャ」という言葉は何を意味するのか?

辞書を参照すると

「アーキテクチャ」じゃなくて「アーキテクチャー」で入ってましたが、この記事では「アーキテクチャ」で統一します。

新明解国語辞典 第7版

①建築物。建築術。建築学。
②コンピューターシステム全体の設計思想・構成方式。

大辞林 第4版

①建築。建築学。建築様式。構造。
②構造。構成。組織。
③コンピューターを機能面から見たときの構成方式。記憶装置のアドレス方式、入出力装置の構成方式などをさす。一般に、同じアーキテクチャーのコンピューターには、ソフトウエアの互換性がある。

「構成方式」という言葉がどちらにも入っています。新明解の方がより具体的ですね。
少し抽象的な意味を取ると、既に組み上がった具体的な何かではなく、その組み合わせ方、組み立て方というような抽象的なものを指す言葉だと言えそうです。
その中でも、特定の事物としては建築やコンピュータが挙げられるようですね。

Wikipediaを参照すると

辞書だけでなく、一般的にはどういう定義や理解なのか、という意味でWikipediaも見てみます。

Architectureに対応する日本語版のWikiページは、建築でした。
ここに記載されているのは「人間が活動するための空間を内部に持った構造物を、計画、設計、施工そして使用するに至るまでの行為の過程全体、あるいは一部のこと」。辞書の①の定義ですかね。

では②③の定義は、というと、コンピュータ・アーキテクチャの項目にありました。コンピュータ(特にハードウェア)における基本設計や設計思想などを意味するとのこと。

辞書とWikipediaを合わせて考えると、まず、「アーキテクチャ」という言葉は、具体的には「建築」と「コンピュータ・アーキテクチャ」を指す。加えて、抽象的には「構成方式」を意味する言葉ということになるでしょうか。

また、建築の項には存在しませんが、英語版のArchitectureの項にはOther types of architectureという項目があり、どんなアーキテクチャがあるのかという点で参考になりそうです。ソフトウェアエンジニアに関係がありそうな項目を抜粋します。

  • Business architecture(ビジネス・アーキテクチャ)
  • Computer architecture(コンピュータ・アーキテクチャ)
  • Enterprise architecture(エンタープライズ・アーキテクチャ)
  • Network architecture(ネットワーク・アーキテクチャ)
  • Software architecture(ソフトウェア・アーキテクチャ)
  • System architecture(システム・アーキテクチャ)

ビジネス、コンピュータ、エンタープライズ、ネットワーク、ソフトウェア、システムと、どれもある程度複雑なものが挙がってますね。こうしたある程度複雑な物事を指す単語と組み合わせると、それらの「構成方式」を意味すると言えそうです。

まとめ

  • 「アーキテクチャ」という言葉は、具体的に「建築」や「コンピュータ・アーキテクチャ」を意味したり、抽象的に「構成方式」を意味したりする
  • ビジネス・アーキテクチャ、ソフトウェア・アーキテクチャのように、ある程度複雑な物事の構成方式を指す時に使われる

アーキテクチャという言葉の定義っぽい部分を整理してみました。
「アーキテクチャってそもそも何なんだっけ?」と思って、記事を探したり本を読もうとしても、「アーキテクチャとは何か?」というタイトルで中身はソフトウェア・アーキテクチャの記事だったりして、「そもそも何なんだっけ?」という点がなかなかクリアにならなかったので。

もっとシンプルに定義されてるよ、などあれば、コメントいただけると嬉しいです。