UMLの手軽で有効な利用方法

2010年9月7日(火)
中原 慶近藤 寛喜

ところで、「モデリングを行い、モデルを作成する」ことのメリットは、何でしょうか。筆者が最も強く感じるメリットは、「コミュニケーションのサポートとなる」ことです。

モデリングする人(モデラー)は、モデリングという活動を通して、対象に存在する要素や要素間の関係、状態などを整理し、対象を正確に把握できます。

一方、情報を受け取る側の人にとっても、対象がビジュアライズ(可視化)されていることによって、口頭や文章、ソース・コードなどで説明を受けるよりも、より直観的に本質を理解できます。

さらに、UMLのような形式的な表記法に基づいて厳密に対象を表現することで、あいまいさの少ない情報伝達が可能になります。

このように、モデリングには、情報を伝達する側、受け取る側の双方にとってメリットがあるうえ、情報伝達時のコミュニケーション・ロスを軽減できるのです。

対象が単純な場合や、伝える目的が1つの場合は、1つの視点で描かれた1種類のモデルで間に合うかもしれません。しかし、対象が複雑な場合は、さまざまな視点に立ったモデルを作成しなければ、対象についての情報を正確に伝えられません。

しかも、今日のソフトウエアが対象とするビジネスの仕組みや、ソフトウエアに求められること(要求)、ソフトウエア自体の内部構造は、とても複雑です。このため、ソフトウエア開発においてモデリングを行う際は、さまざまな視点で対象をとらえる必要があります(図2)。

図2: さまざまな視点でソフトウエアをとらえる(クリックで拡大)

2.2. ソースコード読解時にモデルを用いる

UMLモデルは、新しく構築するソフトウエアの情報を表すために使えるだけでなく、既存のソース・コードを読解する際にも役立ちます。

既存のソース・コードから、ある処理の流れを読み解く例を考えてみましょう。クラス数がとても多い場合や、クラス間の関係が複雑な場合、ソース・コードだけで処理の流れを理解することは、とても困難です。

ソース・コードの読解時にUMLモデルを記述することによって、この問題を解決できます。UMLモデルを記述すれば、クラスの責務やインタフェース、オブジェクト間の相互作用などを明確化できます。

このように、ソース・コードからモデルを作成することを、「リバース・エンジニアリング」と呼びます。多くのモデリング・ツールには、リバース・エンジニアリングの機能があります。

しかし、ツールを用いたリバース・エンジニアリングは、ソース・コードのすべてをUMLモデルに変換してしまいます。このため、注目したい一部の情報だけをモデル化するには、何らかの工夫が必要です。

株式会社チェンジビジョン

生年月日: 1977年1月6日 大阪市出身。ソフトハウスにて大規模データベースシステムからCTIシステム、WEBシステム等、多種多様なシステム開発に従事する。しかし、次々に登場する理想的な技術と、実際の開発現場で使われる技術に温度差を感じる。そして、自分自身がよりよい技術を実際の開発現場に浸透させる橋渡しなろうと考え、株式会社豆蔵に入社。現在は、株式会社チェンジビジョンにて、理想的なコンセプトを現場に浸透させるためのツール開発に従事している。

株式会社チェンジビジョン

株式会社チェンジビジョンにて製品開発を行うかたわら、Eclipseプラグイン開発など、オープンソース活動に従事。OSGiなどアプリケーションのモジュール化技術に興味があり、趣味で実践し、仕事に生かしている。また、かんばんとスクラムなど、ソフトウェア開発に役立つ記事や書籍の翻訳活動にも従事している。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています