UML Design(設計)8 〜AP設計 クラス図の準備〜
今回は、クラス図の作成に向けて、必要な仕様を決めていこうと思います。 前回は、アクティビティ図でゲームの処理フローを作成しました。概要のみなので詳細がありません。
クラス図は詳細設計
クラス図を書くために明確にする事は以下のようになります。
早い話が
- どんな処理をするか?
- どんなクラス構成で実現するか?
これらを明確にすればクラス図が書けます。 今回の場合は、タイトル表示〜new game〜キャラ作成〜ゲーム開始の処理フローに着目して考えてみようと思います。
クラス図を作る
アーキテクチャ
まずは、アプリケーションの骨組み(アーキテクチャ)部分を決定する必要があります。これは、ゲームループ付きの学習用アプリのロジックを使用しようと思います。 処理フローとしては以下のようになります。
- 入力待ちを行う
- 入力された文字からコマンドクラス取得
- 入力されたコマンドに対する処理を実行
アクティビティ図で描くと下のようになります。
<アクティビティ図>
処理一覧
- 処理(ゲーム)開始時にタイトル表示
- タイトル画面でA.new game, B.continueを選択
- A.を選択した場合は、キャラ作成を行う。現状continueは保留
- キャラ作成は、名前(ローマ字)と生年月日を入力→「キャラ作成」処理参照
- ダンジョン表示(テキスト表現)
- ダンジョン内のコマンド実行
- 終了処理
とりあえずは、こんな感じで処理を行います。
役割分担をする
前提として、オブジェクト指向で作成しますので、クラス毎に役割分担をしてやります。
<処理一覧から>
- メイン処理(アーキテクチャ部分)
- タイトル表示
- キャラ作成
- ダンジョン表示
- その他ユーティリティ(便利処理)
クラス一覧
- TextRPGクラス=アーキテクチャ部分の処理(メインメソッド)
- Titleクラス=タイトル表示
- CharactorCreatorクラス=キャラ作成
- Dungeonクラス=ダンジョンの文章描画
- Utilクラス=その他ユーティリティ
- コマンドクラス=実行するコマンドのクラス
。。。のようになりました。
まとめ
クラス図の作成準備として以下の疑問点を明確にしました。
- どのようなアーキテクチャ(全体の処理フローの仕組み)で実装するか?
- 必要なクラスは何か?
そして、各疑問に対する答えは以下のようになります。
- JavaMidBasicで使用しているゲームループ処理
- 必要なクラス
- A. TextRPGクラス
- B. Titleクラス
- C. CharactorCreatorクラス
- D. Dungeonクラス
- E. Utilクラス
- F. Commadクラス: コマンドの数だけ作る
こんな感じで必要な情報が揃ったので、次回はUML(クラス図)の作成に入っていこうと思います。
でわでわ。。。