Takunojiのプログラミング・プレイグラウンド(遊び場)

Javaプログラミングを基本にして、ゲーム作成に必要なことの調査結果、やったら面白そうなことなどを記載します。プログラミングのススメ的なことも記載します。プログラミングで楽しく遊ぶために色々と記載して行きます。

UML Design(設計)1〜UMLとは〜

UMLの用途

1990年代初頭、アプリケーションの構成などを、ラフスケッチにして記載するのにモデル(丸とか四角)を使用して記載し「身内だけに通じる設計書」を作っていました、当然新規参入者は1からその読み方を理解しなくてはなりませんでした。
つまり、設計工程の現場では火炎車になる危険性をはらんでいました。
そこで、世界共通の「書き方」を作ったのです。それをUML(Unified Modeling Language)と呼びました。 UMLツールとして「astah*」と言うのがフリーで使用できます。

UMLの内容

UMLは複数の図を指しています。人間に近いほど「レベルが高い」と表現します。そして、レベルの高い順に並べると以下の様になります。
ユースケース
・オブジェクト図
・コミニケーション図
・アクティビティ図
・ステートマシン図
・パッケージ図
・シーケンス図
・クラス図

その他にも以下の様な図があり、これらも記載ルールが決まっているので、世界共通で使えます。

その他

コンポーネント
・配置図
合成構造図
・タイミング図
・相互作用概要図

オブジェクト指向+UML

UMLを描く時には、オブジェクト指向で記載する必要があります。理由としては、以下の通り(自分の解釈です。) ・丸とか四角はオブジェクトを表現するのに適してる
・大規模、中規模でのシステム開発オブジェクト指向でないと、厳しい。
・プログラム(システム)の動きと人の動きを表現するのに適している

つまり、UMLオブジェクト指向で作られているわけです。

注意

よく、オブジェクト指向の説明に「犬、猫」が出てきますが混乱するので忘れて下さい。
昔、自分がプログラムを学び始めた頃、それを犬とか猫で表現されると混乱しました。妙な認識で学習を進めると後で厄介なので注意が要ります。

オブジェクト指向

まずは「オブジェクト」は全て、パソコン内のアプリケーションやインスタンス、設定値を保持しているメモリ領域などのイメージです。つまり、パソコン内のプログラムに関するもの全ての事を指します。ただし、その内の1つだったり、まとまりだったりします。

具体的には

ウェブアプリを作る場合、ユーザーの操作などをユースケース図を使って大まかな概要を作ります。この時は人間の操作、行動などをオブジェクト(人の絵)として表現します。しかし、図に行動などを記載するためにプログラム(モジュール)などと同じレベルで記載しているので人の操作などは、プログラム中の「オブジェクト」とは別物です。
そして、人の操作により入力を受けてアプリケーションがどう動くのか?、もしくは、どう動かしたいのか?を図にしていきます。
例として、現在(2019/08/10)作成中の地図アプリの場合を記載します。

地図アプリ

  1. ユーザーが対象のURLにアクセスする
  2. 札幌駅中心の地図を表示し、DBに登録している情報を表示する
    <簡単なユースケース図>

こんな感じです、このレベルでは現実に近い話なので「オブジェクト」とか意識する必要はありません。
ただし、サーバーはパソコン本体(機械)の事を指す言葉ではなく、アプリケーションの事を指すので勘違いしないように気をつけて下さい。

サーバーについて

サーバー(Server)は、パソコンに常駐してアクセスを待機するアプリケーションののとを指します。なので、大まかな種類としては、以下のものがあります。
1. ウェブサーバー: ホームページなど、よく見かけるサーバーです。これはApache(アパッチ)などが有名です。 2. DBサーバー:皆さんご存知のDBサーバーです。ORACLEなどが有名です
3. ファイルサーバー: ファイルを共有する時に使用します。身近なところだと学校や事務所などでネットワークを構築(パソコン同士を接続できる様に)してやるとウィンドズはファイルサーバーとして動いてくれます。FTPで接続するときなどはファイルサーバーにアクセスしています。そして、FTPはファイルサーバーにアクセスする時のプロトコルです。