そもそもの言葉の意味から考えるアーキテクチャの定義

昨日は「architecture」という元々の単語の意味を全く無視して勝手に俺定義をしてしまった訳ですが。

そもそも、「architecture」の元々の意味ってなんでしょう。

建築用語でもIT用語でも無い元々の意味的には、「構造」とか「構成」とかいう意味みたいですね。

構造と構成では微妙に意味合いも違うような気はしますが、ここでは


アーキテクチャとは、構造である


としてみましょう。即ち、システムアーキテクチャとはシステムの構造であり、ソフトウェアアーキテクチャとはソフトウェアの構造であり、アプリケーションアーキテクチャとはアプリケーションの構造であるわけです。

では、構造って何でしょう?

Yahooの国語辞書によると、構造とは、

  1. 一つのものを作り上げている部分部分の材料の組み合わせ方。また、そのようにして組み合わせてできたもの。仕組み。
  2. 物事を成り立たせている各要素の機能的な関連。また、そのようにして成り立っているものの全体。

だ、そうです*1

ここで、「一つのもの」「物事」を「アプリケーション」、「材料」「各要素」を「コンポーネント」に置き換えてみると、

  1. アプリケーションを作り上げている部分部分のコンポーネントの組み合わせ方
  2. アプリケーションを成り立たせている各コンポーネントの機能的な関連
  3. 上記のように成り立っているものそのもの

・・・

なんだかこれって各問題領域毎のフレームワークを組み合わせて作成したフルスタックフレームワークのことを言っているような・・・

やっぱり、そもそもの言葉の意味的に考えると、「アプリケーション・アーキテクチャの確定=各問題領域毎のフレームワークコンポーネントを組み合わせて要件に適したフルスタックフレームワークを構築すること」と考えても差し支え無いような気がしてきました。

まぁ、そもそもの言葉の意味的な定義なんで狭義な定義の域は出ないんでしょうけど。

*1: 三つめの意味は、ちょっと数学的なのでここでは割愛します。