UTI UML教育研究所
トップページ> 読み物> コラム> はじめるUML 第2回
はじめるUML(全12回)
  はじめてみよう!
  モデル要素の整理整頓
  システム全体の構造(1)
  システム全体の構造(2)
  システム全体の構造(3)
  システム化対象の業務(1)
  システム化対象の業務(2)
  システムの動き(1)
  システムの動き(2)
  状態の移り変わり
  OCUPにチャレンジ!
  UML2.0総括(最終回)
続はじめるUML(全10回)
  使ってみよう!
  UMLによる業務分析
  営業職のOCUP受験体験記
  UMLによる要求分析
  インターメディエイト受験体験記
  UMLによるシステム分析
  アドバンスト受験体験記
  UMLによるシステム設計
  情報システム管理者が利用するUML
  続はじめるUML総括
使えるUML(全10回)
  使いこなしてみよう!
  物事を分けてとらえる
  コンポーネント図のいくつかの表現方法
  枠組みを使用してとらえる
  内容とその表現方法をわける
  パターンの表現
  続・パターンの表現
  モデルのモデル
  あいまいさを排除する
  「どのように(How)」から「何を(What)」へ
  大人のオブジェクト指向(最終回)
資格取得までのステップ
FAQ
教育コンテンツ
キャンペーン
ブックプラス
パートナープログラム
認定ユーザープログラム
メールマガジン登録
お問合わせ
はじめるUML 第2回
2005.4.1 掲載
モデル要素を整理整頓しよう!
今回からはUML2.0で変更となった点を中心に、具体的な利用方法を紹介していきます。
まずはOMGのUML仕様書「UML2.0 Superstructure Specification」の第7章Classesの中から、パッケージ図を見ていきます。

パッケージ図は、クラスなどのモデル要素が、どのパッケージにグループ化されているかを表現する図です。パッケージ間の依存関係や、入れ子構造も表現することができます。パッケージを用いてモデル要素をグループ化することで、モデル要素を名前空間ごとに管理できるので、各モデル要素の受け持つ役割を明確にすることができます。さらに、パッケージ単位での再利用も行えるようになります。 UML2.0では、このパッケージ単位での再利用をより行いやすくするために、「パッケージマージ」という概念が追加されました。

パッケージマージは、マージするパッケージからマージされるパッケージに向かって破線の矢印を引き、ステレオタイプ≪merge≫を付加して表現します。上の図は、パッケージAとパッケージBをマージして、パッケージCを作成することを表しています。

パッケージ単位での再利用は、パッケージマージの他に、「パッケージインポート」を用いても行うこともできます。それでは、「パッケージインポート」と「パッケージマージ」の違いはどこにあるのでしょうか。
両者の一番の大きな違いは、パッケージ内の要素に同じ名前の要素が存在した場合の対処方法です。パッケージインポートの場合、名前の衝突が発生すると元々の要素が隠されてしまいます。例えば、インポート元のパッケージに操作A1を持つクラスAがあり、インポート先のパッケージに操作A2を持つクラスAがあった場合、パッケージインポートを行うと、操作A2を持つクラスAが見えるようになります。
これに対してパッケージマージの場合は、名前の衝突が発生すると、汎化の関係となり、両方のクラスの特徴を持つクラスとなります。上記の例では、パッケージマージを行うと、クラスAは操作A1、操作A2の両方の操作を持つようになります。

パターンウィーバー2.0では、このパッケージマージの機能をサポートしています。前掲のモデルに対して、パッケージマージを行った結果を以下に示します。

パッケージマージの機能をツールがサポートすることで、既存のモデルを再利用しやすくなったのではないかと思います。


■筆者紹介
坂本武志/Takeshi Sakamoto
株式会社テクノロジックアート テクニカルデプト システムコンサルタント

パターンウィーバー(PatternWeaver) ver2.0

  • UML2.0 Superstructureの全てのダイアグラムに対応
  • Eclipse3.0にプラグインとして統合
  • 表現力の大幅な向上
  • 新規プラグインの追加

●商品に関するお問い合わせ
株式会社テクノロジックアート
e-mail : pw@tech-arts.co.jp
http://pw.tech-arts.co.jp/pw/index.html