基本情報技術者試験 平成31年度 春期 午前 問46
--------------------------
平成31年度 春期 午前 問46
UML における振る舞い図の説明のうち、アクティビティ図のものはどれか。
ア
ある振る舞いから次の振る舞いへの制御の流れを表現する。
イ
オブジェクト間の相互作用を時系列で表現する。
ウ
システムが外部に提供する機能と、それを利用する者や外部システムとの関連を表現する。
エ
一つのオブジェクトの状態がイベントの発生や時間の経過とともにどのように変化するかを表現する。
--------------------------
解説
UML(Unified Modeling Language:統一モデリング言語)はシステムや情報を表すために使われる言語のこと。
“言語" となっているけど、クラス図とかユースケース図などの図でシステムや情報を表すので、図の記載ルールと考えた方がしっくりくるかも。
UML は大きく二つの種類に分かれる。
- 構造図
- 振る舞い図
構造図はシステムの静的な情報を表す。
どんなオブジェクトがあるか、どんな構成要素であるか、サーバにどのように配置されているか。
といった、ある時点をスナップショットした情報が表現されている。
振る舞い図はシステムの動的な情報を表す。
状態がどう変わっていくか、ユーザーの視点でどう利用するか、フローチャートはどうなるか。
といった、システムに関わる動きの情報が表現されている。
UML で定義されている図は 13 種類もある。
(全部書くのはしんどいので)選択肢の物だけ書く。
実際の仕事でも 13 種類全て作る必要はなく、目的のために必要な物だけ作れば良い。13 種類も作ったらメンテナンスだけですごい時間がかかる。
作ることが目的にならないように。
選択肢ア「ある振る舞いから次の振る舞いへの制御の流れを表現する」は制御の流れとあるので、要するにフローチャートのようなもの。
次の動作にどうやって移っていくかを表現する。UML でこのために用いる図をアクィビティ図と呼ぶ。と言うことで問題の正解は選択肢ア。
フローチャートのような、でありフローチャートとは別物らしい。細かな定義は触れない(説明が大変そうであった)。
選択肢イ「オブジェクト間の相互作用を時系列で表現する」は相互作用と時系列がキーワード。
オブジェクト同士が時間の経過とともにどんな相互作用をしながら(メッセージを交換しながら)動いているかを表現する。UML でこのために用いる図をシーケンス図と呼ぶ。
選択肢ウ「システムが外部に提供する機能と、それを利用する者や外部システムとの関連を表現する」はシステムが周囲のユーザーや他のシステムからどのように使われるかを表現する、ということ。UML でこのために用いる図をユースケース図と呼ぶ。
ユーザーから見てそのシステムをどう使うか、どんな機能が使えるようになるのか、といった情報がわかるので、顧客と会話するときに役に立つ。
完成してから「この使い方は面倒だね」といったコメントをもらうと悲しいので、早いうちからユースケース図を活用して、使う際のイメージにズレがないようにしたい。試作品があるのが一番ではあるが、なかなか難しい。
選択肢エ「一つのオブジェクトの状態がイベントの発生や時間の経過とともにどのように変化するかを表現する」は "状態" がイベントや時間で変化することを表現する。UML でこのために用いる図をステートマシン図と呼ぶ。
状態遷移図と呼ぶほうがわかりやすい。
状態A:電源ON、状態B:電源OFF という二つの状態があるとき、スイッチを入れるというイベントで状態B → 状態A という遷移が起きる。といったことが表現できる。
状態が複数あるような要素の振る舞いを理解する助けになる。
エレベータを例にすると、エレベータの状態には上昇中、下降中、停止中があり、現在の階や行先階、どこかの階で呼ばれた、といったイベントをトリガーにして、状態が次々に変化する。
パートナーの機嫌を例にすると、多様な状態が存在し、状態が遷移するイベントは書ききれないほどある。地雷になるイベントだけでも把握しておきたい。
前後の問題はこちら。