仕様が増えたらどうなる?
― 設計の進化を体験する回 ―
🎯 ねらい
同じ仕様を異なる方法で実装しながら、
「仕様が増えたときに何が起こるか」
「なぜ設計が必要になるのか」
を自分の手で体験すること。
今回は“完成させること”よりも、
“設計の違いに気づくこと”を重視します。
📘 参照資料
参照できる資料は 教科書のみ とします。
まずは自分の理解の範囲で組み立ててください。
🗂 ソリューション構成
ソリューション名
DesignEvolutionExperience
1つのソリューションを作成し、
その中に以下の3プロジェクトを追加してください。
- VariableVersion
- ArrayVersion
- OOPVersion
※同一ソリューション内で比較します。
🧠 フェーズ0:設計タイム(5分)
自己紹介の情報から、データを作成し、活用します
生徒全員がこの内容に基づいて、自己紹介していきます

実際のデータは別配布します
※この時間はキーボードに触れません。
頭の中で整理してください。
- 入力は何か?
- 出力は何か?
- 番号と名前はどう対応させるか?
- 範囲外はどう判断するか?
フェーズ1:VariableVersion(20分)
🔒 制約
- 配列禁止
- class禁止
- 変数のみで実装
- switch文推奨(if-else可。ただし入れ子は避ける)
📝 仕様
- 生徒は13人(1〜13)
- 番号を入力すると名前を表示
- 範囲外は「範囲外です」
20分後、その時点のコードを私へDMで提出。
未完成でも構いません。
★ 追加仕様
「趣味」も表示すること。
例:
名前:山田
趣味:ゲーム
3分間だけ修正時間を取ります。
フェーズ2:ArrayVersion(20分)
🔒 制約
- 配列を使用(必須)
- class禁止
📝 仕様
- 名前を配列で管理
- 趣味も配列で管理(並行配列)
20分後、DM提出。
ここで考えてください:
「増えたときに、少し楽になったか?」
フェーズ3:OOPVersion(20分)
🔒 制約
- class Student を作成
- Name と Hobby を持たせる
- Student[] で13人を管理
20分後、DM提出。
ここで考えてください:
「情報はどの単位でまとまっているか?」
📝 最終振り返り
■ 一番書きやすかったのはどれ?
■ 一番拡張に強いと思うのはどれ?
■ フェーズ1とフェーズ3で何が一番違うと感じた?
■ 今日の理解度(1〜5)
理解度の目安:
1 = まだ混乱している
3 = 違いは分かる
5 = 人に説明できる




ディスカッション
コメント一覧
まだ、コメントがありません