平成23年度 秋期 午前Ⅱ 問1
システム要件定義・ソフトウェア要件定義
UMLに関する問題
UML を使って図のクラス P を定義した。このクラスの操作のうち,公開可視性(public)をもつものはどれか。
クラスP(2段目の属性区画は空):
クラスP (クラス名区画) (空) (属性区画) + 操作A (操作区画) − 操作B # 操作C
- ア全ての操作
- イ操作A
- ウ操作B
- エ操作C
答えと解説を見る
✓ これが正解イ操作A
解説
+の付いた操作Aだけが公開可視性(public)をもちます。
UML のクラス図では、操作区画に並ぶ操作名の前に付けた記号で可視性を表します。見分ける軸は記号と可視性の対応です。+は公開(public)で、ほかのどのクラスからも呼び出せます。−は非公開(private)で、そのクラスの中からしか使えません。#は保護(protected)で、そのクラス自身と、それを継承したサブクラスから使えます。図のクラスPで+が付いているのは操作Aだけなので、公開可視性をもつ操作は操作Aです。属性区画が空であることは、この判定に関係しません。プラスは外へ開く、マイナスは閉じる、シャープはその中間と結び付けておくと、記号から可視性をすぐに引き出せます。
ほかの選択肢はなぜ違うのか
- ア全ての操作:操作に付いた記号が3種類に分かれていることを見落とした選び方です。−の付いた操作Bは非公開、#の付いた操作Cは保護の扱いで、どちらもクラスの外から自由に呼べる公開の操作ではありません。
- ウ操作B:操作Bに付いている−は、非公開(private)を表す記号です。定義したクラス自身の中からしか使えない操作であり、外部に開かれた公開可視性とは正反対の位置付けになります。
- エ操作C:操作Cの#は保護(protected)を表し、利用できるのはそのクラスとサブクラスに限られます。継承関係の外にあるクラスからは呼び出せないので、公開可視性には当たりません。
出典:平成23年度 秋期 システムアーキテクト試験 午前Ⅱ 問1
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)