UML Design(設計)1〜UMLとは〜
UMLの用途
1990年代初頭、アプリケーションの構成などを、ラフスケッチにして記載するのにモデル(丸とか四角)を使用して記載し「身内だけに通じる設計書」を作っていました、当然新規参入者は1からその読み方を理解しなくてはなりませんでした。
つまり、設計工程の現場では火炎車になる危険性をはらんでいました。
そこで、世界共通の「書き方」を作ったのです。それをUML(Unified Modeling Language)と呼びました。
UMLツールとして「astah*」と言うのがフリーで使用できます。
UMLの内容
UMLは複数の図を指しています。人間に近いほど「レベルが高い」と表現します。そして、レベルの高い順に並べると以下の様になります。
・ユースケース図
・オブジェクト図
・コミニケーション図
・アクティビティ図
・ステートマシン図
・パッケージ図
・シーケンス図
・クラス図
その他にも以下の様な図があり、これらも記載ルールが決まっているので、世界共通で使えます。
その他
・コンポーネント図
・配置図
合成構造図
・タイミング図
・相互作用概要図
オブジェクト指向+UML
UMLを描く時には、オブジェクト指向で記載する必要があります。理由としては、以下の通り(自分の解釈です。)
・丸とか四角はオブジェクトを表現するのに適してる
・大規模、中規模でのシステム開発はオブジェクト指向でないと、厳しい。
・プログラム(システム)の動きと人の動きを表現するのに適している
注意
よく、オブジェクト指向の説明に「犬、猫」が出てきますが混乱するので忘れて下さい。
昔、自分がプログラムを学び始めた頃、それを犬とか猫で表現されると混乱しました。妙な認識で学習を進めると後で厄介なので注意が要ります。
オブジェクト指向
まずは「オブジェクト」は全て、パソコン内のアプリケーションやインスタンス、設定値を保持しているメモリ領域などのイメージです。つまり、パソコン内のプログラムに関するもの全ての事を指します。ただし、その内の1つだったり、まとまりだったりします。
具体的には
ウェブアプリを作る場合、ユーザーの操作などをユースケース図を使って大まかな概要を作ります。この時は人間の操作、行動などをオブジェクト(人の絵)として表現します。しかし、図に行動などを記載するためにプログラム(モジュール)などと同じレベルで記載しているので人の操作などは、プログラム中の「オブジェクト」とは別物です。
そして、人の操作により入力を受けてアプリケーションがどう動くのか?、もしくは、どう動かしたいのか?を図にしていきます。
例として、現在(2019/08/10)作成中の地図アプリの場合を記載します。
地図アプリ
- ユーザーが対象のURLにアクセスする
- 札幌駅中心の地図を表示し、DBに登録している情報を表示する
<簡単なユースケース図>
こんな感じです、このレベルでは現実に近い話なので「オブジェクト」とか意識する必要はありません。
ただし、サーバーはパソコン本体(機械)の事を指す言葉ではなく、アプリケーションの事を指すので勘違いしないように気をつけて下さい。
サーバーについて
サーバー(Server)は、パソコンに常駐してアクセスを待機するアプリケーションののとを指します。なので、大まかな種類としては、以下のものがあります。
1. ウェブサーバー: ホームページなど、よく見かけるサーバーです。これはApache(アパッチ)などが有名です。
2. DBサーバー:皆さんご存知のDBサーバーです。ORACLEなどが有名です
3. ファイルサーバー: ファイルを共有する時に使用します。身近なところだと学校や事務所などでネットワークを構築(パソコン同士を接続できる様に)してやるとウィンドズはファイルサーバーとして動いてくれます。FTPで接続するときなどはファイルサーバーにアクセスしています。そして、FTPはファイルサーバーにアクセスする時のプロトコルです。