UTI UML教育研究所
トップページ> 読み物> コラム> はじめるUML 第3回
はじめる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 第3回
2005.5.2 掲載
システム全体の構造を整理しよう!(1)

今回はOMGのUML仕様書「UML2.0 Superstructure Specification」の第8章Componentsの中から、コンポーネント図を見ていきます。

最近のシステム開発では、IT技術の進歩によりシステムがより大規模化する傾向にあります。そのため、システムを部品(コンポーネント)単位に分割して開発を行う「コンポーネントベース開発(CBD)」という手法が普及しつつあります。UML2.0では、これらの開発手法にも対応するため、「コンポーネント」の定義が「インターフェースを持ったシステムのモジュール」と変わりました。またインターフェースについても、実現する機能を表現する「供給インターフェース」と、必要とする機能を表現する「要求インターフェース」の2種類が定義され、システムの構成要素であるコンポーネントの外部仕様をより明確に表現できるようになりました。
コンポーネント図は、ソフトウェアコンポーネントが全体としてどのような構成になっているのかを表現するための図です。従来のUML1.xでも存在していましたが、UML2.0ではコンポーネントの定義が変更になったため、ダイアグラムが表現する内容が全く異なったものとなりました。

上記の例で、白丸に棒を付けた表記(ボール)が提供インターフェースを、ボールを受けるような鉤爪の形(ソケット)が要求インターフェースをそれぞれ表しています。システムをコンポーネントという単位に分割して開発を行う場合、以下のような利点が考えられます。
システムをコンポーネントという単位に分割して開発を行う場合、以下のような利点が考えられます。

  • コンポーネント単位で管理を行うことができるようになるので、システム全体の保守性が向上する。
  • コンポーネントが実現する機能を明確に分離しておくことで、仕様変更発生時の修正箇所を限定することができる。
  • コンポーネント単位での再利用が行えるため、再利用性が向上する。
  • コンポーネント技術を採用する実装技術が増えてきているため、実装技術への展開が容易になる。

パターンウィーバー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