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

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

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

問題

デザインパターンの中のストラテジパターンを用いて,帳票出力のクラスを図のとおりに設計した。この帳票出力ストラテジクラスの説明として,適切なものはどれか。
コンテキスト,帳票出力ストラテジ,PDF帳票出力ストラテジ及びHTML帳票出力ストラテジのクラス図
コンテキスト,帳票出力ストラテジ,PDF帳票出力ストラテジ及びHTML帳票出力ストラテジのクラス図

選択肢

  1. ア
    クライアントは,どの帳票出力ストラテジクラスがどのフォーマットに対応するかを意識せずに利用できる。
  2. イ
    新規フォーマット用のアルゴリズムの追加が容易である。
  3. ウ
    帳票出力ストラテジクラスの中で,どのフォーマットで帳票を出力するかの振分けを行っている。
  4. エ
    帳票出力のアルゴリズムは,コンテキストクラスの中に記述する。
解き方のヒントを見る

役割を整理するための着眼点

設計の役割を考えるときは、名称から意味を決めつけず、与えられた情報の中で各要素がどの責任を担うと記述されているかに注目しましょう。責任の範囲をそろえた視点で整理することが、検討の出発点になります。

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

この問題では、各要素の責任がどこまで及ぶかという一点を確認しましょう。名称や一般的なイメージだけで役割を補わず、与えられた情報に基づいて、責任の範囲について述べられている内容を整理してください。

視点

役割の整理では、要素の呼び名ではなく、示された責任の範囲を手掛かりにします。明示されている内容と、自分が想像して補った内容を区別すると、同じ観点で検討しやすくなります。

確認ポイント

  • 責任の範囲を示す情報を確認できたか
  • 名称だけから責任を決めつけていないか
  • 責任の範囲に、記述のない推測を加えていないか
正解と解説を見る

正解

イ

解説

正解はイです。形式ごとの出力処理を具体的なストラテジクラスに持たせ、コンテキストから共通の操作で呼び出す設計なので、新規フォーマットの処理を新しいクラスとして追加しやすくなります。

理由

ストラテジパターンでは、アルゴリズムを共通の操作を持つクラスとして扱います。図では、PDF帳票出力ストラテジとHTML帳票出力ストラテジが帳票出力ストラテジを継承し、それぞれ帳票出力の操作を持っています。新しい形式にも、その形式のアルゴリズムを実装したクラスを追加して対応できるため、イが適切です。

比較

アが述べているのは、出力処理の実装詳細ではなく、ストラテジクラスとフォーマットの対応関係です。クライアントは目的の形式に対応する具体的なストラテジを選び、コンテキストに設定するため、この対応関係を知る必要があります。一方、選んだストラテジの内部でどのように出力するかという実装詳細は、意識せずに利用できます。

選択肢ア

これは不正解だよ。クライアントは、目的のフォーマットに対応する具体的なストラテジを選び、コンテキストに設定する必要がある。そのため、どのクラスがどのフォーマットに対応するかを知っている必要がある。出力処理の実装詳細を意識せずに済むこととは別の話である。

選択肢イ(正解)

これは正解だよ。図では、帳票出力ストラテジを共通の型とし、PDF用とHTML用のクラスがそれぞれ帳票出力の操作を持つ。新しいフォーマットも、その形式の出力アルゴリズムを実装した具体的なストラテジクラスを追加すれば対応できるため、追加が容易である。

選択肢ウ

これは不正解だよ。帳票出力ストラテジは、各形式に共通する帳票出力の操作を定める役割である。図では、PDF形式とHTML形式の処理はそれぞれ別の具体的なクラスが担当する。共通のストラテジクラス内で形式を判定して処理を振り分ける構造ではない。

選択肢エ

これは不正解だよ。コンテキストは、設定された帳票出力ストラテジの操作を呼び出して出力処理を委譲する。PDF形式やHTML形式に固有の出力アルゴリズムは、それぞれの具体的なストラテジクラスに記述する。コンテキスト自身に各形式のアルゴリズムを記述する説明は、図の役割分担と一致しない。

学習のポイント

処理の実装詳細を隠すことと、クライアントが出力形式に対応するストラテジを選択することを区別しましょう。

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

関連する過去問一覧

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