3. UMLの問題点

3. UMLの問題点

筆者は日常的に、UMLモデルを用いてコミュニケーションを図り、UMLモデルを用いてソース・コードを読解しています。しかし、冒頭でも述べた通り、UMLモデルを使わない方が多くいることも事実です。

先日、筆者はとある勉強会で、ソース・コード・リーディングを実施しました。その際、ソース・コードを読む最中にUMLでメモを取っている人は、1~2人しかいませんでした。「UMLモデルを作成する」となると、構えてしまう人が多いようです。

UMLがあまり使われない理由は、UMLの仕様が大きいことにあると、筆者は考えています。

UMLの仕様は、とても量が多く、そのすべてを理解することは困難です。このため、「正しい記法を用いたUMLモデルを描くことができない」と思ってしまい、UMLモデルを書くことに抵抗を感じてしまうのです。

UMLの仕様が大きい理由は、大きく2つあります。1つは、汎用的なモデリング言語であるため、さまざまな分野に適用可能な仕様にする必要がある点です。もう1つは、OMGが提唱するMDA*1を実現するためです。

  • [*1] MDAは、(a)プラットフォームに依存しない、ソフトウエアの機能を表すモデル(PIM: Platform Independent Model)と、(b)性能や信頼性などにかかわる、プラットフォームを表すモデル(PSM: Platform Specific Model)、以上の2つのモデルを切り離して考える開発手法です。この2つを切り離すことで、PIMを変えることなくプラットフォームだけを変える、といったことが可能になります。MDD(Model Driben Development)やモデル駆動開発などとも呼ばれます。

3.1. UML仕様について

UMLの仕様は、表1で示す通り、4つのパートに分かれています。

表1: UML仕様の4つのパート

仕様名ページ数内容
Superstructure
Version 2.3 without change bars
742UMLユーザーのためのダイアグラム(図)の仕様
Infrastructure
Version 2.3 with out change bars
214UMLの基盤についての仕様
Diagram Interchange
Version 1.0 formal 06-04-04
76ダイアグラムの情報をツール間で交換するための仕様
Object Constraint Language
Version 2.2
224制約言語OCLについての仕様

2010年9月現在、UMLのカレント・バージョンは2.3であり、13種類の図が用意されています。この13種類の図は、大きく2つに分類できます。1つは、静的構造を表す構造図(Structure Diagram)です。もう1つは、動的な構造を表す振る舞い図(Behavior Diagram)です。この13種類の図を用いることで、ソフトウエアをさまざまな視点からモデリングすることができます。

しかし、必ずしもすべての図を使う必要はありません。それどころか、筆者の経験では、せいぜい5~6種類の図しか使わない場合がほとんどです。どの図を重点的に使うのかは、産業分野や技術分野、ソフトウエア開発の工程によって異なります。

3.2. UML仕様の使い方

本連載の目的は「UMLモデルの手軽で有効な利用方法」を紹介することです。特に、「コミュニケーションをサポートする」ことに着目しています。この場合、UML仕様の全体像と、必要最小限の表記法を知っていれば、それで事足ります。膨大なUML仕様やモデリングの難しさに悩む前に、まずは気軽にUMLモデルを使ってみましょう。

4. まとめと今後の予定

今回は、対象の本質を表したモデルが円滑なコミュニケーションを助ける、ということをお伝えしました。UMLの仕様の大きさにたじろがず、手軽にUMLモデルを作成し、利用してみましょう。

次回以降は、UMLモデルの有効的な利用方法を、具体的にご紹介していく予定です。本連載を読まれた後、UMLモデルを気軽に使っていただけるようになれば幸いです

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30