UMLとは

「Javaプログラミング = クラスを使う/作成する」ということがわかってきたと思います。オブジェクト指向の考え方の下では、オブジェクト=モノ=クラスです。つまり、オブジェクト指向設計とは次のように説明できます。

オブジェクト指向設計(Java)

    • 利用者を含めたシステム全体を眺めて、どのようなモノ(クラス)が存在するかを定義する。
    • そのモノ(クラス)がどのようなデータ(変数)を持ち、動作(関数)をするのかを定義する
    • クラス間でどのようなデータのやり取りをするのかを定義する

非オブジェクト指向設計(C言語)

    • 利用者を含めたシステム全体を眺めて、どのようなデータ(変数、構造体)や動作(関数)が必要になるかを定義する
    • 関数間でどのようなデータのやりとりをするのかを定義する

さて話が少し変わりますが,皆さんはプログラムを作成しろと言われたら,最初に何に取り掛かりますか?

「とりあえず,エディター(vi, emacs等)を開いて,main関数を書いて。。。。。。。。」

な んて言ってる人がいればちょっと問題です。優秀なプログラマーになるためには,まずは「紙と鉛筆」を用意する必要があります。そして,C言語のプログラ マーなら,関数と変数の定義を。Javaプログラマーならどのようなクラスが必要なのかを先に考えておく必要があります。いわゆる仕様書作りです。そし て,Javaなどのオブジェクト指向言語においてプログラミングを行う時,その仕様を記述する統一的な表記法がUMLなのです。

UMLの概要

UML(Unified Modeling Language)

オブジェクト指向言語設計において,モデルの書き方のルールを定めた表記法

モデルとはずばり,図を使って書き表すことです。UMLには設計の段階におうじて

    • ユースケース図
    • クラス図
    • シーケンス図
    • コラボレーション図
    • 状態図
    • 実装図

等の種類の表記法を用意しています。今回取り上げるのは,「クラス図」です。

クラス図の書き方

クラス図の目的,つまり,クラス図を書いて何を決めるのかといえば

    • クラスの構造(メンバ変数名,メソッド名など)
    • クラス間の関係

です。クラスの構造は以下のように表します。

属性(メンバ変数)の書き方

名前:型 (=初期値)

メソッドの書き方

名前(引数:型):戻り値の型

となります。このとき,名前の前には

    • + : public
    • # : protected
    • - : private

と書きます。

クラス間の関係については,別の項で説明します。