特集
2004/03/05 16:00 更新
全2回「UML入門」
特集:前編 モデリング言語「UML」を学ぼう (1/2)
昨今注目されている言語の1つ「UML」。前編、後編で構成するこの特集では、UMLのメリットを紹介し、読者が導入するきっかけとなるよう解説していく。
本特集ではUMLの概要を解説します。前後編の2回連載の予定です。対象読者はUML入門者ですが、特にJavaプログラマー向けに解説したいと思います。2回の記事を通じ、UMLの概要、利点を理解し、実際に使用してみようという気になっていただけると幸いです。内容は以下の通りです。
前編:モデリング言語「UML」を学ぼう
- UMLの概要とその普及、最新動向など
- UMLダイアグラムの紹介
- UMLモデリングツールの導入メリット
後編:UMLとJavaコードの関係を学ぼう
- UMLとJavaコードのマッピング
- UMLモデリングツールとIDE(Eclipse)連携
|
UMLの概要−UMLとは
UMLとはUnified Modeling Languageの略で、ひとことで言えばソフトウェア開発における分析設計用の表記法です。
UMLを訳すと「統一モデリング言語」となります。「統一」というところがミソで、UMLが登場する前は、さまざまな人が自身の開発方法論を語る時、それぞれ好みの表記法を用いて説明していました(たとえばブーチさんはBooch法で、ランボーさんはOMT法で、というように)。日常やり取りする言葉もそうですが、表現方法がバラバラではお互いに話し合う時にいちいち翻訳する必要があります。それが統一化されると話が早いわけです。
そして「モデリング」とは、目に見えない、あるいはまだ目に見えていないものを、何らかの手段を使って視覚化する作業のことや、ものごとを単純化し表現することを指します。
また、「言語」という言葉が含まれていますが、日本語や英語といった自然言語やプログラミング言語とは異なり、シンプルな図形の組み合わせで構成されています。それらの図形の意味や文法は、OMG(Object Management Group)がまとめる「UML仕様書」で詳細に定義されています(http://www.omg.org/)。なお、この仕様書(2004年1月現在の最新版はUML1.5)はpdf版で約700ページと膨大です。まったく知らないのは困りますが、そのすべてを知らないと使えない、というわけではありません。「UMLオタク」になる必要はなく、最低限の知識を得たらどんどん使ってみる、という姿勢が大切です。
UMLの概要−UMLの普及
このUML、巷ではどのくらい普及しているでしょう。例えば本屋さんに立ち寄れば、「UML」とタイトルやサブタイトルのついた書籍がかなり多いことに気づくでしょう。
日本国内向けの某オンライン書店で検索してみると、洋書239冊、和書74冊が登録されています(2004年1月時点の登録数)。ちなみに米国サイトの洋書登録数は1217冊でした(なお、この中には「User Mode Linux」といった別の意味のUMLも含まれているかもしれません)。
さらに、ソフトウェア関連の書籍、雑誌で取り上げられることが多くなっているのはもちろんのこと、一般新聞紙上でも取り上げられたことがありました。それは何より一般的になった証拠です。UMLを扱ったトレーニングコースも数多く開催されています。ソフトウェア会社の新入社員研修で、必須科目としているところも多くなってきたようです。
実際の開発現場ではどうでしょう。UMLはそもそもオブジェクト指向の世界で生まれた表記法であるため、JavaやC++といったオブジェクト指向言語と組み合わせて使用できます。また、C言語など、UMLに直接マッピングができないような場合も、上流工程の仕様書の記述形式だけでも統一化したい、という要望からUMLが採用されることも多くなってきているようです。
UMLの概要−UMLの最新動向
UMLが世に出たのは1996年で、その後マイナーバージョンアップが幾度か繰り返され、現在(2004年1月)の最新バージョンは1.5となります。UMLの登場により、それまでバラバラだった表記法はひとつになりました。そして、その有効性が認められ、UMLの採用事例が増えつつあるのも事実です。そうとはいえ、一方ではUML自体の表現力の弱さや、UML仕様書の記述のあいまいさなどが指摘されているのも事実です。
このように、UMLはまだまだ完成されたものではなく、その改良は止むことなく進められています。2004年4月頃には初のメジャーバージョンアップとなる、UML 2.0が正式にリリースされる予定です。このUML 2.0では、既存のUMLダイアグラムの改良や新種のダイアグラムの追加により、表現能力が強化されます。また、MDA(Model Driven Architecture、注1)の取り込みにより、UMLが目指す、ソフトウェア開発における品質向上、開発作業の効率化といったコンセプトがさらに現実的なものになることが期待されます。
注1:モデル駆動型アーキテクチャ。上流工程で作成するモデルを重要視し、ソフトウェア開発作業の基盤とする手法。モデル作成時の着眼点を、実装技術から独立したPIM(Platform Independent Model)と実装技術に特化したPSM(Platform Specific Model)に分ける。PIMレベルのモデルの再利用性向上を、目的の1つとする。
UMLのダイアグラム−主なダイアグラム
前述の通り、UMLは図(ダイアグラム)の表現が中心となります。UMLのダイアグラムは約10種類です(Column 1参照)。各ダイアグラムはそれぞれ使用目的などが決められていて、相互に補完し合う関係にあります。どの図も重要ですが、ここではその中からクラス図、オブジェクト図、相互作用図といった、比較的Java言語環境や、プログラミング作業に身近な図をピックアップして紹介しましょう。
なお、今回はダイアグラムの紹介に留め、図中の細かい意味は後編で解説する予定です。ここでは大体のイメージをつかんでおいてください。
- クラス図
クラス図はクラス間の静的な関係を表す図です(図1)。プログラムソースに記述するクラス定義を図式化したもの、と思えばよいでしょう。
クラス図はシステムの構造や問題領域の概念の構造を理解するのに役立ちます。UMLを始めようとするとまず、その図の多さに圧倒されることがあります。そういう場合は割り切って、このクラス図に注力するのもよいでしょう。
- オブジェクト図
オブジェクト図は、オブジェクト間の関係を表す図です(図2)。プログラム実行時の、システムのメモリ上に展開されるインスタンス(オブジェクト)などを図式化したものです。
- 相互作用図
相互作用図は、シーケンス図(図3)や、コミュニケーション図(図4、UML1.xではコラボレーション図)などの総称です。その名の通り、オブジェクト同士の相互作用を表す図です。
シーケンス図とコミュニケーション図は、プログラム実行時におけるオブジェクト同士のメッセージのやりとりを表します。シーケンス図はメッセージの順序に着目したものであり、コミュニケーション図はオブジェクトの関係に着目したものです。両者とも同じ情報を記述することができますが、前者はオブジェクトのやりとりを真横から見ているようなもので、後者は真上からのぞき込んでいるようなものといえます。
- ユースケース図
ユースケース図は、システムが提供するサービスや機能(ユースケース)と、その利用者(アクター)の関係を表す図です(図5)。この図は、Java環境やプログラミング作業との関係は薄いのですが、対象システムへの要求仕様を整理する上で非常に役立ちます。ユースケースの詳細は、「ユースケースドキュメント」として、自然言語で記述します。
[蒔田修一,ITmedia]
Copyright © ITmedia, Inc. All Rights Reserved.