(演習)「アーキテクチャ」「設計」「駆動」「アプローチ」「パターン」の違いを考察する
概要
- 日程: Day 3 / セッション4
- 時間: [10:50-11:30]
- 形式: 演習
- ゴール: 5つの用語の違いをLATCH法やカードソーティングなどIAの手法を使って整理し、チームで説明できる
- 学習形式: AIディスカッション
導入(5分)
🗣️ 要約
「アーキテクチャ」「設計」「駆動」「アプローチ」「パターン」という似た言葉が混乱を生みやすい この演習では、Day1で学んだ情報整理・分類の手法を使って5つの用語を整理する
前のセッションでは、MDA・SOA・ROA・OOADという設計アプローチと、GoFのデザインパターンを学びました。ここまでで、「アーキテクチャ」「設計」「駆動」「アプローチ」「パターン」という似たような言葉がたくさん出てきましたね。正直、混乱していませんか?
実は、この混乱こそがチャンスです。今日はこの5つの用語を、Day1で学んだ「情報を整理・分類する手法」そのものを使って整理してみます。IAの手法は情報システムの設計にだけ使うものではなく、こうした抽象的な概念の整理にも使えます。このセッションが終わる頃には、5つの用語の違いを自分の言葉で説明できるようになっています。
本編(10分)
🗣️ 要約
5つの用語は同じ言葉が複数の用語とセットで使われるために混乱しやすい Day1で学んだLATCH法・カードソーティングは、情報だけでなく抽象的な概念の整理にも使える
1. なぜこの5つが混乱するのか
🗣️ 要約
5つの用語はそれぞれ異なる「軸」を表しているが、無意識に1つの軸で理解しようとすると混乱する 料理のたとえでは、アーキテクチャ=キッチンの間取り、設計=間取りを決める行為、駆動=レシピの起点、アプローチ=向き合い方、パターン=よく使う型
まず、なぜこの5つの用語が紛らわしいのか考えてみましょう。「MVCアーキテクチャ」「MVCパターン」「モデル駆動アーキテクチャ」のように、同じ言葉が複数の用語とセットで使われることがあります。これは、5つの用語がそれぞれ違う「軸」を表しているのに、私たちが無意識に1つの軸で理解しようとしてしまうために起きる混乱です。
たとえば、料理に例えるとこうです。
- 「アーキテクチャ」は、キッチン全体の間取りや設備配置(構造)
- 「設計」は、その間取りをどう決めるかという行為そのもの
- 「駆動」は、何を起点にレシピを組み立てるか(食材起点か、盛り付け起点か)
- 「アプローチ」は、料理への向き合い方(手順重視か、素材重視か)
- 「パターン」は、よく使う型(下ごしらえの手順のテンプレート)
ここまでで、5つの用語が別々の軸を指していそうだ、というイメージは湧きましたか? 湧かなくても大丈夫です。この後の演習で実際に手を動かしながら整理していきます。
2. IAの手法をメタ的に使う
🗣️ 要約
LATCH法・カードソーティングは特定の業務知識に依存しない汎用的な手法であり、アーキテクチャという概念自体の整理にも使える この演習に唯一の正解はなく、チームがどう理解し設計判断に活かせるかを言語化することがゴール
ここで思い出してほしいのが、Day1で学んだLATCH法とカードソーティングです。LATCH法は「Location, Alphabet, Time, Category, Hierarchy」という5つの軸で情報を整理する手法でした。カードソーティングは、情報をカードに書き出し、グルーピングしながら分類軸を発見する手法でした。
これらは「情報アーキテクチャ」を学ぶための手法として紹介しましたが、実は「アーキテクチャという概念そのもの」を整理するのにも使えます。なぜなら、LATCH法やカードソーティングは特定の業務知識に依存せず、どんな情報群にも適用できる汎用的な手法だからです。ここで少し考えてみてください。もし5枚のカードに「アーキテクチャ」「設計」「駆動」「アプローチ」「パターン」と書いたら、あなたはどんな軸でグルーピングしますか?
ここがポイント
特に注意してほしいのは、この演習に「唯一の正解」はないということです。よくある間違いとして、辞書的な定義を丸暗記して終わりにしてしまうことがありますが、正しくは「自分たちのチームがどう理解し、開発テーマの設計判断にどう活かせるか」を言語化することがゴールです。
コラム
実はソフトウェア工学の用語は、料理のレシピ本のように「同じ食材(概念)が本によって違う名前で呼ばれる」ことがよくあります。たとえば「デザインパターン」という言葉は、もともと建築家クリストファー・アレグザンダーが街づくりや建築の「よくある良い解決策」を指すために使った言葉です。それをソフトウェア開発者たちが「自分たちの世界にも同じような『よくある良い解決策』があるはずだ」と借用してGoF(Gang of Four、4人の著者を指すニックネーム)のデザインパターンが生まれました。建築の言葉がプログラミングの世界に「引っ越してきた」と考えると、少し愛着が湧いてきませんか。
💬 AIに聞いてみよう
🗣️ 要約
アーキテクチャと設計の違い、MVCがパターンかアーキテクチャか、駆動という言葉が付く他の用語などをAIに質問できる
ここまでの内容で疑問があれば、AIに質問してみましょう。たとえば:
- 「アーキテクチャと設計の違いを、もっと簡単な例で説明して」
- 「MVCは『パターン』?それとも『アーキテクチャ』?なぜそう呼ばれるの?」
- 「駆動という言葉が付く用語を他にも教えて」
実習・演習
🗣️ 要約
5枚のカードを使い、オープンカードソーティングとLATCH法で5つの用語の整理軸を見つけ、一文で説明する演習
課題
🗣️ 要約
5枚のカードを自由にグルーピング→LATCH法で整理軸を見つける→5つの用語を一文で説明→AIにレビューしてもらう、という5ステップ
- チームで「アーキテクチャ」「設計」「駆動」「アプローチ」「パターン」の5枚のカード(付箋でも可)を用意する
- オープンカードソーティングの要領で、まず自由にグルーピングしたり、関係性を線で結んだりしてみる
- LATCH法の考え方を応用し、「抽象度の高さ(Hierarchy)」や「使われる場面(Category)」など、自分たちなりの整理軸を1つ以上見つける
- 見つけた整理軸をもとに、5つの用語をそれぞれ一文で説明する
- チームの結論をAIに見せて、抜け漏れや誤解がないかレビューしてもらう
成果物
🗣️ 要約
5つの用語の違いを説明する一文ずつのメモ(考察メモ)
5つの用語の違いを説明する一文ずつのメモ(考察メモ)
ヒント
🗣️ 要約
アーキテクチャを最上位の箱とし、設計(行為)・駆動(起点)・アプローチ(向き合い方)・パターン(型)という包含関係で考えると整理しやすい
うまく整理できない場合は、「アーキテクチャ」を一番大きな箱(全体構造)に置き、その中に「設計」という行為があり、設計を進める起点が「駆動」、設計への向き合い方が「アプローチ」、繰り返し使える型が「パターン」、という包含関係から考えてみてください。それでも迷ったら、AIに「この5つの用語を、大きさや抽象度の順に並べ替えて」と聞いてみると整理の糸口が見つかります。
まとめ(5分)
🗣️ 要約
用語の違いは辞書の定義を覚えるのではなく、自分たちで手を動かして整理すると腑に落ちる Day1のIAの手法は情報システムの設計以外にも応用できる汎用的な道具である 次回は多層アーキテクチャ(3層アーキテクチャ・MVC・MVVM・DDD)に進む
今回学んだことを一言でまとめると、「用語の違いは、辞書の定義を覚えるのではなく、自分たちで手を動かして整理すると腑に落ちる」ということです。そして、Day1で学んだIAの手法は情報システムの設計以外にも応用できる汎用的な道具であることも体感できたはずです。
次回は多層アーキテクチャ(3層アーキテクチャ・MVC・MVVM・DDD)を学びます。今回整理した「アーキテクチャ」と「パターン」の違いの理解が土台になるので、しっかり復習しておきましょう。
🔄 振り返りチェック
🗣️ 要約
「アーキテクチャ」と「パターン」の違いを自分の言葉で説明できるか チームで見つけた整理軸を他のチームに1分で説明できるか
以下の問いに答えられるか確認してみましょう:
- 「アーキテクチャ」と「パターン」の違いを、自分の言葉で説明できますか?
- チームで見つけた整理軸を、他のチームに1分で説明できますか?
答えに自信がない場合は、該当部分を読み返すか、AIに質問してみてください。
補足資料
🗣️ 要約
参考資料は、使用しているフレームワーク公式ドキュメントの「アーキテクチャ」「デザインパターン」解説ページ 発展課題は、GoFの23のデザインパターンから1つを選び、パターンでありアーキテクチャでない理由を説明すること
- 参考リンク: 各自の開発環境で利用しているフレームワーク公式ドキュメントの「アーキテクチャ」「デザインパターン」の解説ページ
- 発展課題: GoFの23のデザインパターンから1つを選び、それが「なぜパターンであってアーキテクチャではないのか」を説明してみる
学習ガイド
🗣️ 要約
受講者からよく出る質問への回答例と、つまずきやすいポイントへの対処法をまとめている
このセクションは、受講者が理解を深めることをサポートする参考情報です。
想定される質問と回答例
🗣️ 要約
フレームワークは「パターン」や「アプローチ」を実装として提供する道具と位置づけられる 「アプローチ」は向き合い方全般、「駆動」は設計の起点となる要素という違いがある 正解は1つに決めなくてよく、チームなりの整理軸を持てればよい
| 質問 | ヒント |
|---|---|
| 「フレームワーク」はこの5つのどれに近い? | フレームワークは「パターン」や「アプローチ」を具体的な実装として提供する道具、と位置づけると整理しやすい |
| 「アプローチ」と「駆動」は何が違う? | 「アプローチ」は向き合い方全般(プロセス中心か、データ中心か等)、「駆動」は設計の起点となる要素(モデル駆動ならモデルが起点)という違いで整理できる |
| 正解を1つに決めないといけない? | 決めなくてよい。チームなりの整理軸を持ち、説明できることが重要 |
つまずきやすいポイント
🗣️ 要約
5つの用語を同列に並べてしまいやすいが、「アーキテクチャ」が最上位で他4つはその異なる側面 辞書的な定義を書き写すだけで終わり、自分たちの開発テーマに当てはめられないことがある
| つまずきポイント | ヒント |
|---|---|
| 5つの用語をすべて同列(横並び)に並べてしまう | 「アーキテクチャ」を最上位の箱として、他の4つがその中の異なる側面(行為・起点・向き合い方・型)であるという包含関係を意識するとよい |
| 辞書的な定義をそのまま書き写して終わる | 開発テーマの具体的な設計判断に当てはめて一文を作り直すと、自分たちの理解として定着する |