15
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

アーキテクチャパターンとは何か

Last updated at Posted at 2019-08-19

概要

ソフトウェアのアーキテクチャの種類について調べようとすると、アーキテクチャパターンという用語に遭遇する。似た表現としてデザインパターン、アーキテクチャスタイルなどがあるため、混乱してしまう人もいるだろう。本記事ではソフトウェアにおけるアーキテクチャパターンという言葉の定義を検証してみる。
なお、アーキテクチャスタイルについてはアーキテクチャスタイルとは何かで検証している。

パターン(pattern)とは

語源はラテン語のpatronus。中世ラテン語では模倣すべき見本という意味であり、中世の英語ではpatron(=父)という語形になった。patronの綴りがpatarne,patternなどと変わっていき、最終的にpatronとpatternが独立した2語になった。

ソフトウェアのアーキテクチャパターンとは

wikipediaによると、アーキテクチャパターンとは「ソフトウェアアーキテクチャで発生する問題の解決策」と説明されている。

ソフトウェアのアーキテクチャパターンの例

POSA本エンタープライズアプリケーションアーキテクチャパターンには下記が挙げられている。

  • 階層化
  • パイプアンドフィルター
  • ブラックボード
  • キャッシュサーバー
  • MVC(Model-View-Controller)
  • PAC(person-abstract-controll)
  • マイクロカーネル
  • リフレクション
  • webプレゼンテーション
  • ドメインロジック

デザインパターンとの違い

ソフトウェアの世界ではアーキテクチャパターンと似たデザインパターンという用語もよく利用される。クリーンアーキテクチャによると「デザイン(=設計)とアーキテクチャには違いがない」と説明されている。もちろん本来的な意味において、アーキテクチャ(=建築)とデザイン(=設計)は異なる意味を持っている。あくまでソフトウェアの開発現場において、アーキテクチャとデザイン(=設計)とという用語が区別されることなく利用されると捉えていいだろう。よってソフトウェア開発においては、デザインパターンもアーキテクチャパターンも同じ意味を表す用語として捉えて良いと思われる。

建築のアーキテクチャパターンとの比較

建築ではアーキテクチャパターン、もしくはArchitectural Patternではなく、Pattern (architecture)という言葉で定義されている。wikipediaによると、建築におけるPatternとは「建築設計のアイデアを典型的かつ再利用可能な記述として取り込む考え方である。」と説明されている。

結論

アーキテクチャパターンと似た表現であるアーキテクチャスタイルという言葉の定義についてはアーキテクチャスタイルとは何かで検証している。結論としては、アーキテクチャパターンもアーキテクチャスタイルも言葉の意味するものはほとんど変わらないと思われる。語源を辿ってみても、スタイル(=型)、パターン(=見本)なのでどちらも意味としては通る。
ただし、インターネット検索や出版されている書籍を調べると、アーキテクチャスタイルよりもアーキテクチャパターンという表現の方が多く利用されている印象がある。これを考慮すれば、アーキテクチャスタイルもパターンも一纏めにしてアーキテクチャパターンで表現しても問題ないように思われる。

参考

15
15
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?