写真1●UML設計ツールの例(グレープシティのWithClass)<BR>UML設計ツールは,(1)UMLで規定した各種設計図の作成を支援,(2)UMLの図からソース・コードを生成,(3)ソース・コードからUMLの図を生成――などの機能を備える
写真1●UML設計ツールの例(グレープシティのWithClass)<BR>UML設計ツールは,(1)UMLで規定した各種設計図の作成を支援,(2)UMLの図からソース・コードを生成,(3)ソース・コードからUMLの図を生成――などの機能を備える
[画像のクリックで拡大表示]
表1●UMLの9種類の図
表1●UMLの9種類の図
[画像のクリックで拡大表示]

UMLは統一モデリング言語であり,システム開発においてはシステム設計書やプログラム設計書の表記法として使われる。OMG(Object Management Group)が定めた標準的な表記法である。システムやプログラムの設計に携わるのであれば,ぜひとも習得したい技術の一つだ。本セミナーの目的は,UMLの本質を知り,UMLの基本的な使い方をマスターすること。第1回は,UMLのベースとなっているオブジェクト指向を解説する。クラス,オブジェクト,メッセージ,カプセル化,多態性といった言葉の意味を理解し,オブジェクト指向の基本的な考え方を身に付ける。

 皆さんは,システム開発者にUML(Unified Modeling Language)*の知識が必要であることを,なんとなく意識されているはずだ。ところが,これまでにUMLの解説書に目を通したことがあっても,あまりにも難しそうなので,学習を断念してしまったのではないだろうか。少しだけ学習したが,面白くないのでやめてしまったという人もいるだろう。UMLのベースとなるオブジェクト指向*という言葉を聞いただけで嫌悪感を感じ,逃げ出したくなる人さえいるかもしれない。

 筆者は,そんな皆さんに「必ずUMLを使えるようにしてみせる」という意気込みで,このセミナーを引き受けた。短い誌面の中で,リファレンス的にUMLのすべてを網羅することなどできないが,そもそもその必要はない。本セミナーの目標は,UMLの重要性を知り,UMLの基本的な使い方をマスターすることだ。すなわち,技術の本質を知るということである。本質が分かれば,だんだん楽しくなってくる。セミナー終了後に,皆さん自身で学習を続けることが苦痛でなくなる。実際のシステム開発で,自然とUMLを使えるようになる。

 歴史的な経緯から,UMLとオブジェクト指向は一緒になって説明されるが,UMLは汎用的なモデリング言語である。モデリング言語というと分かりにくいが,設計書の表記法と考えて構わない。システム開発で必ず作成する設計書の書き方の一つである。どんな書き方でも分かりやすければいいのだが,標準であるUMLを使うべきだ。UMLは,OMG(Object Management Group)*が認定した標準の表記法で,しかも,設計者の意図を的確に表現し,それをシステムの発注者やチーム・メンバーに伝える方法として優れている。これから設計書の書き方を学ぶのなら,UMLが最も適当なのである。

 ただ,UMLは表記法であって設計手法は規定していない。どのように書けばいいかを決めているが,何を書けばいいかには触れていない。UMLの場合の設計手法は,オブジェクト指向設計を標準的に使う。UMLは,オブジェクト指向設計と一緒に使うのが最も効果が高い。

 そこで第1回は,UMLの概要と,オブジェクト指向の考え方を説明する。「私が知りたいのはUMLであって,オブジェクト指向ではない」と思う方もいらっしゃるだろう。だが,UMLを習得するのに,オブジェクト指向の学習は無駄ではない。UMLは,オブジェクト指向設計から生まれている。オブジェクト指向の考え方が理解できれば,UMLの習得が容易になる。オブジェクト指向というと難解なイメージがあるが,ここで学びたいことは,オブジェクト指向の基本的な考え方だけである。

UMLの概要

 UMLは,Unified Modeling Language(統一モデリング言語)の略である。言語と言っても,C++やJavaのようなプログラミング言語ではなく,システムをモデリングして図示するための表記方法を定義したものだ。

 UMLの仕様は,オープンであり,特定の企業に依存したものではない。UMLは,オブジェクト指向技術の標準化団体であるOMGによって認可されている。現時点のUMLの最新バージョンは1.3。OMGのホームページ(http://www.omg.org/)から仕様書をダウンロードできる。

 UMLが登場する前には,James Rumbaugh氏が開発したOMT法*,Grady Booch氏が開発したBooch法*,Ivar Jacobson氏が開発したOOSE法*など,数十種類の異なるモデリング言語が存在していた*1。ただし現在では,「オブジェクト指向の設計図の表記方法は,UMLで決まり」という状況になっている。なぜなら,過去にあったいくつかのモデリング言語を統一してUMLが開発されたからだ。

 企業戦略的な意味合いがあるかもしれないが,1995年に上記の3氏が同じ米Rational Softwareに加わったことから,統一的なモデリング言語であるUMLが開発された*2

支援ツールは豊富,UML図は9種類ある

 米Rational Softwareは,UMLを使ったシステム設計ツール「Rational Rose」を販売している。Rational Softwareの日本法人である日本ラショナルソフトウェアのホームページ(http://www.rational.co.jp/)から,UMLに関する様々な情報を入手できる。米Microsoftのプログラム開発ツール「Visual Studio 6.0」に同こんしている「Visual Modeler」という設計ツールは,「Rational Rose」のサブセット版だ。米Microsoftのドローイング・ツールである「Visio 2002」を使ってUMLの様々な図を描くこともできる。コンポーネントを提供するグレープシティが「WithClass」というUML設計ツールを販売するなど,ツールは豊富にある。

 手書きでUMLの図を作成しても構わないが,UML設計ツールを使った方が修正などが楽だ。UML設計ツールには,UMLの図からプログラムのソース・コードを自動生成したり,逆に,ソース・コードからUMLの図を自動生成したりといった,便利な機能も装備されている。UMLをマスターし,実際に使うようになったら,何らかのUML設計ツールのお世話になるだろう(写真1[拡大表示])。

 UMLでは,9種類の図(ダイアグラム)が定義されている(表1[拡大表示])。ただし,これらの図をすべて使わなければシステム設計ができないというわけではない。目的に応じて必要な図だけを使えばよい。図の種類が多いのは,開発者やユーザーの考え方を様々な角度から分析して表現できるようにしているためだ。

 UMLの図の違いは,システムを見る視点の違いだと考えられる。例えば,ユース・ケース図は,ユーザーから見たシステムを表すものだ。クラス図やオブジェクト図などは,プログラマから見たシステムを表し,デプロイメント図は,システムのインストール担当者から見たシステムを表す*3


矢沢 久雄(やざわ ひさお)
1961年栃木県足利市生まれ。(株)ヤザワ取締役社長,グレープシティ(株)アドバイザリースタッフ。アプリケーションの開発・販売,プログラミングに関する書籍や雑誌記事の執筆,およびセミナーなどにおける講演活動を行っている。自称,ソフトウエア芸人。