カテゴリ:8.システム開発 > 8.3 UML詳細

UML(Unified Modeling Language)とは
UMLは、Unified Modeling Languageという言葉のとおり「統一モデリング言語」である
・Unified(統一された)という言葉のとおり、メーカや製品に依存しません。
・Modeling(モデリング)は模型(モデル)を作ることを意味します。データベースの世界ではモデリングとしてE-R図を描く。
・Language(言語)というと、JAVAなどのプログラム言語を思い浮かべるかもしれないが、そうではない。言語よりは図のほうが近いだろう。
・OMGという分散オブジェクト指向技術の標準化団体が定める。OMGはObject Management Groupの略であるがOh My Godと覚えると覚えやすいかもしれない。
UMLは「統一言語」なのに、オブジェクト指向との関連が強い。OMGというオブジェクト指向の団体が作成したことも理由であるが、オブジェクト指向のプログラム開発に利用される。
・以下が分かりやすい
http://www.objectclub.jp/technicaldoc/uml/umlintro2#usecase

UMLの必要性
・ネットワークの世界でいうと、ルータのConfigを読むのは難しいが、ネットワーク構成図があると全体像がわかりやすい。
プログラムの世界でも同じことが言えて、イメージ図があるとわかりやすい。その書き方が人によってまちまちであったら、大変。そこで、UMLで世界標準のモデリング方法が作成された。
・ただ、種類が多いことから逆に使いにくいとの評判もある。すべてのケースでUMLを使うのではなく、必要に応じて使う企業が多いと思う。

UMLの13のダイヤグラム(図)
(1)ユースケース
http://sm.seeeko.com/archives/65920682.html

(2)アクティビティ図
http://sm.seeeko.com/archives/65793281.html

(3)クラス図
http://sm.seeeko.com/archives/65793283.html

(4)シーケンス図
http://sm.seeeko.com/archives/65793282.html

(5)オブジェクト図
http://sm.seeeko.com/archives/65910838.html

(6)ステートマシン図
シーケンス図やコミュニケーションズでは、オブジェクト間の関係を表記していた。一方、ステートマシン図はあるオブジェクト内の状態を表す。

例えば、お店が「営業中」⇔「準備中」

(7)コンポーネント
ソフトウェアの構成を表す。
右上にLANのモジュールのような記号がついているのがトレードマーク

(8)配置図
システム構成図的なものである。
サーバ、クライアントなどのハードウェア環境とともに、ファイルの状態も表す。
ファイルの右上にはファイルのアイコンがついている。

(9)コミュニケーションズ
オブジェクト間の関係を表記


■資格は2種類
・OMG認定UML技術者(OCUP)
UMLモデリング技能検定・・日本独自 15750円  ・・・こっちが人気ありそう。

UMLを記述するツール
PPTで書くのも良いだろうが、便利なツールがたくさんある。
MicrosoftVisioUMLを書くのに便利なツールのひとつだ。
また、プログラムからUMLを自動で書くツールなどもある様子。(私は使ったことが無いので不明だが)

ユースケース(Use Case)とは、利用者(アクターと言います)がどんな場面(case)で使う(use)のかという「利用シーン」と考えてください。
・要件定義にて利用され、システムを理解するのに便利な図です。

過去問(H18春AD午前)を見てみましょう。
問31 次のユースケース図の説明はどれか。
usecase1
ア 在庫管理システムは人ではないので,アクターは注文担当者だけである。
イ システム化の対象には,注文管理システムと在庫管理システムが含まれる。
ウ 注文管理システムはシステム境界の中にあり,注文担当者と在庫管理システムはシステム境界の外にある。
ユースケースは四つあり,各ユースケース名は,注文管理システム,注文処理,注文変更処理,注文取消処理である。
ア:アクターは、注文担当者と在庫管理システムです。
イ:システム化の対象は,注文管理システムです。
ウ:正解選択肢です。
エ:ユースケースは3つあり,注文処理,注文変更処理,注文取消処理です。

正解はウ

過去問(H23秋AP午後問8)で、ユースケースの事例があります。

usecase
作成途中だが、以下がそのユースケース
usecase2
usecase3
応用情報技術者試験を勉強する成子

運転手というアクターが、「運賃を確定させる」というユースケースに関連づけられているのはなぜですか?
この点は、問題文に、「整理券箱にICバスカードをかざさず、かつ、IC整理券を取り忘れた場合は、始発バス亭からの運賃が適用され、運転手が運賃箱にその金額を運賃として設定する」とあります。
つまり、整理券を取り忘れた場合などに、運転手が運賃箱に金額を設定する場合があるからです。

ユースケース図に関する出題は、H20秋SW午後2でも出題されています。

◆過去問(H27秋AP午前)
問64 要件定義において,利用者や外部システムと,業務の機能を分離して表現することで,利用者を含めた業務全体の範囲を明らかにするために使用される図はどれか。

ア アクティビティ図  イ オブジェクト図
ウ クラス図   エ ユースケース

正解はエのユースケース

問46 UMLユースケース図の説明はどれか。

ア 外部からのトリガに応じて,オブジェクトの状態がどのように遷移するかを表現する。
イ クラスと関連から構成され,システムの静的な構造を表現する。
ウ システムとアクタの相互作用を表現する。
エ データの流れに注目してシステムの機能を表現する。
正解は、ウです。

問64 業務要件定義において,業務フローを記述する際に,処理の分岐や並行処理,処理の同期などを表現できる図はどれか。

ア アクティビティ図
イ クラス図
ウ 状態遷移図
エ ユースケース
正解は、アです。

・E-R図とほぼ一緒です。でも、厳密には違います。
・E-R図はエンティティの関連図ですが、クラス図はオブジェクトの関連図です。ただ、エンティティもオブジェクトも表現は違えど、実際に指し示しているものは同じであったりします。
・多重度(1対1や1対多)も記載できる。
UMLのクラス図が表わす内容は、汎化、集約、関連などのクラス間の関係(H21応用情報/秋問43)
・過去問(H20NW午前問14)では、「UMLのクラス図に記述できるものはどれか」という問題で、「多重度」が正解でした。


H20アプリケーションエンジニア試験 午後1問4にクラス図があるので、これをもとに解説します。
以下がその抜粋です。

クラス図1
また、凡例とその説明が書かれてあります。
クラス図2
凡例の解説を引用しながら補足します。

■クラスとオブジェクト
・クラスの前にオブジェクトを説明します。オブジェクトとは物と考えれば良いでしょう。この場合の、宿泊や顧客もすべてオブジェクトです。ただ、厳密にはちょっと違います。
顧客を例にとると、鈴木さん、伊藤さん、山田さん、それぞれがオブジェクトです。一方、クラスとは、それらを包含して概念化したものである。この場合は、顧客がクラスで、鈴木さん、伊藤さん、などの個々を特定するものがオブジェクト。
・□の上段にはクラス名として、宿泊や顧客、宿泊明細が記載されています。これがオブジェクトになる場合は、UMLではアンダーラインが引かれ、オブジェクトであることが明示されます。
・(参考)クラスを実体化するとオブジェクトになるように、このような実体のことをインスタンスという。

■属性
・クラス図の中段の長方形は属性を表します。顧客クラスを例にすると、顧客番号、顧客名が属性です。このあたりはE-R図と同じです。

■操作
・クラス図の下段の長方形は操作を表します。
・操作とは文字通りの意味ですが、宿泊には「宿泊情報取得()」という操作があります。()の中は引数を表していますが、スペースの関係で省略されています。
・操作の例として以下が書かれています。
予約管理クラスの操作として、空室客室情報取得(客室番号のリスト)という操作があります。この操作の中身は、「予約済の客室番号のリストを引数として、予約済以外の客室番号と客室タイプコードの組のリストを取得」とあり、客室クラスへの操作であることが分かります。ちょっとややこしいですが、予約管理で保有している予約済の客室番号のリストを客室クラスに渡し、それを元に客室クラスから予約済以外の客室番号のリストを取得するという操作であると想定されます。

■多重度
・クラス間を結ぶ線はクラス間の関連を表します。
・その線に書かれてあるx...yは、クラス間の多重度を表します。これはE-R図と同じです。
・ひし形の部分は、部分と全体を表し、集約と言います。「部分と全体」という表現がなんとなくしっくりきません。外部キーで接続されていると考えるのがよいかもと思っていますが、ちょっと怪しい。
スーパークラスとサブクラスの関係である汎化とは違う概念なので、注意が必要です。汎化の関係は、テーブル上の属性が一部異なると考えるとよい。一般顧客、優良顧客、関連顧客などがあり、名前、住所などの共通する属性をスーパークラスの顧客とするような場合である。この場合は、△矢印であらわされる。それ以外には、依存関係は点線矢印、インターフェースは△点線矢印

コンポジション(黒のひし形◆)は、全体と一部分を表す関係です。
白のひし形(◇)もありますが、こちらは「一部分」がインスタンスとして独立できる関係か否かです。
たとえば、「注文」が取り消されれば「注文明細」は存在できなくなります。その場合が黒で、一部分が存在し続けるのであれば白です。

↑このページのトップヘ