Help us understand the problem. What is going on with this article?

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

概要

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

パターン(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とは「建築設計のアイデアを典型的かつ再利用可能な記述として取り込む考え方である。」と説明されている。

結論

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

参考

cocoa-maemae
Software Engineer, Project Manager
https://twitter.com/cocoa_maemae
infra-workshop
インフラ技術を勉強したい人たちのためのオンライン勉強会です
https://wp.infra-workshop.tech/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした