SAシステムアーキテクト試験 午前Ⅱ

平成27年度秋期 システムアーキテクト 午前Ⅱ 問2

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

UMLを使って図のクラスPを定義した。このクラスの操作のうち,公開可視性(public)をもつものはどれか。
クラスPの操作として,公開を示す「+ 操作A」,非公開を示す「- 操作B」,保護を示す「# 操作C」が並ぶUMLクラス図。
クラスPの操作として,公開を示す「+ 操作A」,非公開を示す「- 操作B」,保護を示す「# 操作C」が並ぶUMLクラス図。

選択肢

  1. ア
    全ての操作
  2. イ
    操作A
  3. ウ
    操作B
  4. エ
    操作C
解き方のヒントを見る

可視性記号は誰から見えるかで読む

クラス図の操作に付く記号を読むときは、記号の形を覚えているかだけでなく、その操作をどの範囲のクラスから呼び出せるかという観点に置き換えて考えると、問われている内容が整理しやすくなります。

この問題で問われていること

確認すべき観点は一つで、操作に付いた可視性の表記が、どの範囲のクラスからその操作を呼び出すことを許しているのかを、記号と対応付けて自分の言葉で説明できるかどうかです。

視点

UMLの可視性は、ある要素を外部からどこまで参照・利用できるかという公開範囲を表す考え方です。クラス図では、属性や操作の名前の前に可視性の表記を置いて示します。学習の際は記号の見た目を暗記するだけでなく、公開範囲が広いか狭いかという軸で各表記を並べ、自分で説明できる状態にしておくと、どのような問われ方でも落ち着いて読み取れます。

確認ポイント

  • 注目している表記が、どの操作の名前に付いているのかを正確に対応付けられているか
  • その表記が許す呼出し元の範囲を、広い・狭いという軸で自分の言葉で説明できるか
  • 問われている立場のクラスが、その公開範囲の内側にあるか外側にあるかを確かめたか
正解と解説を見る

正解

イ

解説

UMLでは、クラス図の操作名の前にある記号が可視性を示します。図の操作Aには公開を表す「+」が付いているため、公開可視性をもつ操作は操作Aです。

理由

UMLの可視性記号では、「+」がpublic、「-」がprivate、「#」がprotectedを表します。図では操作Aが「+」、操作Bが「-」、操作Cが「#」なので、publicに該当するのは操作Aです。

比較

操作名だけでなく、その左側の記号を確認する必要がある。操作Bはクラス内部に限定されるprivate、操作Cはクラスとその派生クラスなどで利用するprotectedであり、publicとは異なる。

選択肢ア

これは不正解だよ。図では操作ごとに可視性記号が異なり、操作Aには「+」、操作Bには「-」、操作Cには「#」が付いている。「+」だけがpublicを示すため、全ての操作が公開可視性をもつわけではない。

選択肢イ(正解)

これは正解だよ。UMLのクラス図で操作名の前にある「+」はpublic、つまりクラスの外部からも利用できる公開可視性を表す。図では「+ 操作A」と示されているため、公開可視性をもつ操作は操作Aである。

選択肢ウ

これは不正解だよ。操作Bの前にある「-」はUMLでprivateを表す記号であり、クラス内部からの利用に限定される。したがって、操作Bは外部から利用できるpublicの操作には該当しない。

選択肢エ

これは不正解だよ。操作Cの前にある「#」はUMLでprotectedを表す記号である。protectedはpublicとは異なる可視性であり、図の操作Cを公開可視性の操作として扱うことはできない。

学習のポイント

UMLクラス図における可視性記号の読み取りと、public・private・protectedの区別を学ぶ。

出典:独立行政法人 情報処理推進機構(IPA)平成27年度秋期 システムアーキテクト試験 午前Ⅱ 問2(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針