Googleで「ソフトウェアアーキテクチャ説明書」を検索してみるとわかるんだけど、
この単語はかなりマイナーらしい。自分のブログのエントリが一番最初にくるんだもん(笑)。
でも検索結果の一番最初に来ることってなかなか無いよね、ってことで、
記念にもう少し書いてみる。何回かに分けます。
で、ソフトウェアアーキテクチャ説明書の話の前に、そもそも「ソフトウェアアーキテクチャ」って何よ?
という話を書こうと思います。
いろいろなご高説があって、たとえば今手元にある本の定義はこれ。
これはRUPの「アーキテクチャ」の定義なんだけど。
「ソフトウェアシステムの構成」
「システムを構成する構造的要素とそのインターフェース、およびこれらの要素間の連携動作により規定された振る舞いの選択」
「これらの要素によって、より大きなサブシステムが階層的に構成される構造」
...続く
もう少しシンプルなのは、
「アーキテクチャはシステム構造とそれを構成するいくつかのもの(モジュール分割、プロセス、配備、レイヤーなど)を記述したものである」
ちょっと微妙な気もするけど、これは「実践ソフトウェアアーキテクチャ」という分厚い本から。
私が自分で書いたときに用語集に載せた定義は、
「ソフトウェアの基本構造。アプリケーションの実行環境、クラス構成、およびそれらに関する各種方針のこと」
今見るとこれも微妙だ(笑)
はっきりいって、どの定義も抽象度が高すぎると思う。こんなのじゃ頭に入ってこないでしょ。
アーキテクチャってこんな話です。
「何をどう分けて、どうつなげるの? それは何のため?」
いろいろなレベルのアーキテクチャがあると思うけど、「何を」が違うだけで考え方は同じ。
たとえば、プロセスやスレッドをどう分ける、とか、クラス構成をどうする、とか、
もっとローな話で、IDE上のプロジェクトをどう分ける、とか。
そんな話は「ソフトウェアアーキテクチャ」ってことになります。
次回からは、前回書いた目次に沿って、その意図や具体的な記述内容を書いていきます。
(続く)