身近なモデリング体験
概要
- 日程: Day 2 / セッション 02
- 時間: 9:30-10:00
- 形式: 実習
- ゴール: 身の回りの物(コンビニ・図書館・電車など)から、属性・関係・制約の3観点で情報モデルを1つ書き出せる
- 学習形式: AI協働型(AIをペアプログラマー的に使い、観点漏れを指摘してもらう)
導入(5分)
前のセッションで「モデルとは何か」を学びました。地図や家系図のような身近な例で腹落ちさせた一方で、いざ自分でゼロから作ろうとすると手が止まります。「何から書けば?」と思うのが普通です。
そこでこのセッションでは、全員が知っている題材でモデリングを体験します。コンビニ、図書館、電車。誰でも何度も利用したことがあるからこそ、頭の中に「経験データ」が大量にあるはずです。それを整理して出すだけです。
このウォーミングアップが、午後の「自分の開発テーマでの情報モデル抽出」の準備運動になります。
本編(5分の解説 + 20分の実習)
1. モデルを取り出す3つの観点
どんな対象でも、次の3つの観点で見れば「情報モデル」として記述できます。
(何を持つか)"] O --> R["関係
(何と繋がるか)"] O --> C["制約
(どんなルールがあるか)"]
- 属性(Attribute):その対象物が持っている情報項目
- 例:本なら「タイトル」「著者」「ISBN」「ページ数」
- 関係(Relationship):他の対象物とどう繋がっているか
- 例:本は「貸出履歴」を持つ、本は「分類カテゴリ」に属する
- 制約(Constraint):成立するためのルール
- 例:1冊の本は同時に1人にしか貸せない、ISBNは必ずユニーク
ここがポイント
属性で詰まったらAIに「他にどんな項目があるか教えて」と聞くのが最速です。AIは類似ドメインの知識を持っているので、漏れを指摘してくれます。
コラム:図書館員の頭の中
プロの図書館司書は、本を見た瞬間に「分類記号、件名標目、書誌情報」を頭の中で組み立てます。日本では「日本十進分類法(NDC)」という体系があり、世界では「デューイ十進分類法」が使われます。彼らは数百年かけて「本」というモデルを磨き続けてきたプロフェッショナルです。私たちが今日30分でやろうとしているのは、彼らが何百年もかけて極めてきた作業の入口です。気楽にやりましょう。
実習・演習(20分)
課題
以下の3つの題材から1つを選び、情報モデルを書き出してください。
選択肢
- A. コンビニ(商品・店舗・店員・顧客などから1つ選ぶ)
- B. 図書館(本・利用者・貸出・予約などから1つ選ぶ)
- C. 電車(路線・駅・列車・座席などから1つ選ぶ)
進め方
- 対象物を1つ決める(例:「コンビニの商品」)
- 属性を10個以上書き出す(例:商品名、価格、JAN、賞味期限…)
- 関係を3個以上書き出す(例:商品はカテゴリに属する、商品は仕入先を持つ…)
- 制約を3個以上書き出す(例:価格はゼロより大、JANは13桁、賞味期限は今日以降)
- AIにレビューしてもらう(後述のプロンプト例参照)
成果物
| 項目 | 内容例(コンビニ商品の場合) |
|---|---|
| 対象物名 | 商品 |
| 属性 | 商品名、価格、JANコード、賞味期限、カテゴリID、仕入先ID、…(10個以上) |
| 関係 | 商品 - カテゴリ、商品 - 仕入先、商品 - 在庫、… |
| 制約 | 価格 > 0、JANは13桁、賞味期限は本日以降、… |
ヒント
AIへの質問例
コンビニの「商品」について情報モデルを作っています。
私が書き出した属性は[商品名、価格、JANコード、賞味期限]です。
コンビニの実務を考えると、他にどんな属性が必要そうですか?
特に「税率」や「キャンペーン対応」のような見落としがちな項目を教えてください。
詰まったときのコツ
- 「もし自分が店長だったら、何の情報を管理したい?」と考える
- 「もしこの情報がなかったら、業務でどう困る?」と逆から考える
- 似た業態(スーパー、ドラッグストア)を参考にする
💬 AIに聞いてみよう
- 「コンビニの商品と、スーパーの商品はモデルとして何が違う?」
- 「『制約』の出し方がよくわからない。何を考えれば出てくる?」
- 「私が出した属性に重複や冗長性はある?」
まとめ(5分)
今回は「身近な題材」だったので、自分の経験から属性をどんどん出せたはずです。「自分の経験」「お客さんの目線」「AIの知識」を組み合わせれば、初めての業務でもモデルが作れます。
次のセッション(Session03)では、いま体験した「属性・関係・制約」を情報モデルという用語で正式に定義し、さらに「状態遷移」という新しい武器を学びます。状態遷移が分かると、機能と画面が自動的に決まる魔法のような体験ができます。
🔄 振り返りチェック
- 自分が書いた属性は10個以上になりましたか?
- 「関係」と「属性」の違いを説明できますか?
- AIから指摘されて気づいた「漏れ」は何でしたか?
補足資料
- 参考リンク:日本十進分類法(NDC)、JANコード規格
- 発展課題:選ばなかった残り2題材についても、属性だけでいいので書き出してみる
学習ガイド
想定される質問と回答例
| 質問 | ヒント |
|---|---|
| 「属性」と「関係」の境目が曖昧 | 単体で完結する情報=属性、別の対象物を指す情報=関係 |
| 「制約」が思いつかない | 「ありえない値」を考える(マイナス価格、未来の購入履歴など) |
| 完璧に網羅したい | 完璧を目指さない。後で追加できる |
つまずきやすいポイント
| つまずきポイント | ヒント |
|---|---|
| 機能(〜できる)を書いてしまう | このセッションは「情報」のみ。「商品を検索する」はまだ書かない |
| 細かすぎる属性に時間をかける | まずは粒度を粗く。詳細化は後でよい |
| カテゴリと属性を混同する | カテゴリは「分類のためのラベル」、属性は「対象が持つ情報項目」 |