仕様が増えたらどうなる?

2026年2月25日

広告

― 設計の進化を体験する回 ―

🎯 ねらい

同じ仕様を異なる方法で実装しながら、

「仕様が増えたときに何が起こるか」
「なぜ設計が必要になるのか」

を自分の手で体験すること。

今回は“完成させること”よりも、
“設計の違いに気づくこと”を重視します。


📘 参照資料

参照できる資料は 教科書のみ とします。

まずは自分の理解の範囲で組み立ててください。


🗂 ソリューション構成

ソリューション名

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 = 人に説明できる

次の機能追加

訪問数 129 回, 今日の訪問数 1回

広告

C#

Posted by hidepon