Notice : 内容無保証。禁無断転載。リンク自由。

UML - Unified Modeling Language

UMLの紹介。

UMLとは何か

UMLはコミュニケーションツールである。開発対象についての共通認識を関係者間で作り上げるのに有用である。特別なCASEツールなどは必要なく、紙と鉛筆(会議の席上ならホワイトボードとフェルトペン、etc.)さえあればUMLを使うことができる。

また、デザインパターン、アナリシスパターン等、UMLで記述された有用な文書を理解するための基礎でもあり、UMLの知識はソフトウェア技術者にとって必須だと言える。

UMLの構成部品

  1. もの
    1. 構造的なもの
    2. 振る舞い的なもの
    3. グループ化するもの
    4. 注記するもの
  2. 関係
    1. 依存
    2. 関連
    3. 汎化
    4. 実現
  3. ダイアグラム
    1. 構造
      • クラス図
      • オブジェクト図
      • コンポーネント図
      • 配置図
    2. 振る舞い
      • ユースケース図
      • シーケンス図
      • コラボレーション図
      • ステートチャート図
      • アクティビティ図

UMLとは何で *無い* か

UMLは詳細仕様を記述するためのものでは無い。(詳細仕様の記述はコードの役割である。)

ユースケース

ユースケース間の関係

汎化

クラス間の汎化関係とほとんど同じように考えてよい。 例えば以下のように、あるユースケースをより具体化したユースケースが現れた場合、

ユースケース間には汎化の関係があり、ダイアグラム上では以下のように記述する。

具体例。

拡張

ある一つのユースケース中に、 主シナリオと、主シナリオにオプショナルな処理の加わったバリエーションがある場合、

主シナリオの拡張される点を明確にするとともに、 オプショナルな処理を外にくくり出す。 ダイアグラム上では、ステレオタイプ "<<extend>>" を付けた依存関係で表す。

具体例。wrap処理をオプショナルなものとして外に出した例。

包含

複数のユースケースの主シナリオ中に、共通に現れるシナリオの断片があった場合、

共通部分を一つのユースケースとしてくくりだす。 ダイアグラム上では、ステレオタイプ "<<include>>" を付けた依存関係で表す。

具体例。パケット送信/受信、両方のユースケースの主シナリオ中で統計情報更新が行われている。

[オブジェクト指向システム分析設計入門]

[オージス総研]

UML技術者認定制度のチュートリアルに一般的な使用法の解説があります。UMLを勉強し始めるのにとてもよい資料だと思います。

また、ObjectDay2000の配布資料ダウンロードのページに、組込み用途にUMLを使うためのプレゼン資料「かんたん組込みUML」があります。上のチュートリアルでUMLに慣れた後読むのに良い資料です。

組み込みシステムへのUMLの適用については、リアルタイムUML 第2版 という書籍が参考になります。

また、オブジェクトの広場のESC2000参加報告中に、Real-Time UML 等 最新のUML関係のセミナの概要が報告されてます。

[分厚すぎる「ドキュメント」]

Martine Fowler氏の記事、「The Almighty Thud」の日本語訳。ドキュメントはコミュニケーションのために書くものであり、簡潔でなければならないという主張がされてます。(エクストリームプログラミング - 変化ヲ抱擁セヨのページからも辿れます。)

[Martine Fowler 講義録]

2000年2月8、9日に行われた、「西暦2000年:eー時代のためのコンポーネント技術」で、Martine Fowler氏が行ったセミナーの内容。

[初歩のUML]

@IT - アットマーク・アイティでの連載記事。(2001/05/02〜連載中)

内容はビジネス寄りなのですが、基礎を確認するのに良いと思います。

[見やすいUMLダイアグラムの描き方] ( IBM : developerWorks : Components : Tips )

UMLの外見に関するコーディング標準に使えると思います。