1章 OMTについて

オブジェクトとは何か
システム設計、分析はなぜ必要か
OMTはハードウェア設計に使えるか
オブジェクトモデルは三国志ゲームに使えるか

オブジェクトとは何か
オブジェクトとは何か、を説明するとどの本を読んでも「オブジェクトはオブジェクトである。」みたいな説明で初心者にはよくわからない。確かに言葉で説明するのは難しく、よって本ページでも説明しない。C++で簡単なプログラムを作って体感するのが一番わかりやすい。

システム設計、分析はなぜ必要か

あれだけ複雑なゲームをいきなりプログラミング出来るはずがない。その前に頭の中を整理する必要がある。また大人数で作るのだから各自の考えを一つに統一せねばならない。それを行うのがシステム設計,システム分析である。

OMTはハードウェア設計に使えるか

世間がハードウェアで実現しているものはさして複雑な構造ではない。アルゴリズムや実装方法が設計の勝負になるものが多く、各ブロック間の関連性は単純である。また、似たような機能ブロックがあったとしても一方がASICに、もう一方がDSPにある場合は継承を利用できない。

経験上、ハードウェアシステム設計にはオブジェクト分析を省いて機能モデルと動的モデルの構築から始めるのが妥当である。構造化分析の使用が適している。


オブジェクトモデルは三国志ゲームに使えるか

オブジェクト指向は従来の手続き型プログラムより、より現実に近く、エージェント指向なら,なおのこと近くなる。
オブジェクト指向を武将に適用したケースについて述べる。
 
オブジェクト指向の意味
適用
カプセル化 内部にデータと操作(作業手順,プログラムモジュール)を持っており、そのオブジェクトに対して外部からコマンドを与えると、オブジェクトは自分のデータと操作に従って実行する 部将にコマンドを与えると,部将特有の能力値に基づいて実行する。
継承 親クラスの持つデータと操作を、子クラスが継承する。 部将の特性には各自共通な要素と各自固有な要素がある。オブジェクト指向ではそれらの部品化が容易である。

武将の親子で性格を同じくするのもオブジェクト指向であれば容易である。

隠蔽 自分のデータ,操作のいくつかは,自分以外はアクセスできないように限定できる。
部将の性格データなど、本人以外は見ることが出来ないようにする。本人は性格データに基づいてコマンドを実行する。
多態性 同じコマンドを与えても,与えられたオブジェクトによって行動が違う。
同じコマンドを与えても,部将によって理解度が違い、行動も違う。