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

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

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

問題

学生レコードのデータが正しいかどうかを検証したい。学生レコードを構成するデータ項目には,学籍番号,出身高校コード,学年が含まれ,それぞれを入力とする原因-結果グラフは図のとおりである。テストケースを設計するために,このグラフから作成した決定表として正しいものはどれか。ここで,原因-結果グラフの要素間の関係には,次の表記を用いる。 原因-結果グラフ
表記。原因-結果グラフの表記例。同値は二つの円を直線で結ぶ。否定は二つの円を途中に波線記号のある線で結ぶ。論理和は二つの円からの線が∨記号と弧を伴って一つの円に合流する。論理積は同様に∧記号と弧を伴って一つの円に合流する。
表記。原因-結果グラフの表記例。同値は二つの円を直線で結ぶ。否定は二つの円を途中に波線記号のある線で結ぶ。論理和は二つの円からの線が∨記号と弧を伴って一つの円に合流する。論理積は同様に∧記号と弧を伴って一つの円に合流する。
原因-結果グラフ。原因は「正しい学籍番号」「正しい出身高校コード」「正しい学年」の三つ。三つの原因は直線で「学生レコードを受け付ける」に論理積(∧)で結ばれる。また三つの原因はそれぞれ否定(波線)の線で「学生レコードを受け付けない」に論理和(∨)で結ばれる。
原因-結果グラフ。原因は「正しい学籍番号」「正しい出身高校コード」「正しい学年」の三つ。三つの原因は直線で「学生レコードを受け付ける」に論理積(∧)で結ばれる。また三つの原因はそれぞれ否定(波線)の線で「学生レコードを受け付けない」に論理和(∨)で結ばれる。
選択肢。選択肢ア〜エの決定表。いずれも条件行は正しい学籍番号・正しい出身高校コード・正しい学年、動作行は学生レコードを受け付ける・受け付けないで、4列からなる。ア:条件列はN/N/N、Y/-/-、-/Y/-、-/-/Y。イ:Y/N/N、N/-/-、-/N/-、-/-/Y。ウ:Y/Y/Y、N/-/-、-/N/-、-/-/N。エ:Y/Y/Y、N/-/-、-/Y/-、-/-/N。動作行は4案とも、受け付けるが第1列のみX、受け付けないが第2〜4列X。
選択肢。選択肢ア〜エの決定表。いずれも条件行は正しい学籍番号・正しい出身高校コード・正しい学年、動作行は学生レコードを受け付ける・受け付けないで、4列からなる。ア:条件列はN/N/N、Y/-/-、-/Y/-、-/-/Y。イ:Y/N/N、N/-/-、-/N/-、-/-/Y。ウ:Y/Y/Y、N/-/-、-/N/-、-/-/N。エ:Y/Y/Y、N/-/-、-/Y/-、-/-/N。動作行は4案とも、受け付けるが第1列のみX、受け付けないが第2〜4列X。

選択肢

  1. ア
    (問題の図表を参照)
  2. イ
    (問題の図表を参照)
  3. ウ
    (問題の図表を参照)
  4. エ
    (問題の図表を参照)
解き方のヒントを見る

与えられた条件と仮定を区別する

ソフトウェアテストの内容を整理するときは、与えられた条件と自分で補った仮定を区別することに注目しましょう。理解しやすくするための補足が、いつの間にか判断の根拠に変わっていないか確かめます。

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

今回の検討では、判断に使おうとしている条件が、どこに示されているかを意識してください。見慣れた用語から条件を補いたくなっても、与えられた情報と自分の推測を分けて整理すると、考え方を点検しやすくなります。

視点

用語へのなじみや過去の経験は理解の助けになります。考えを整理するときは、その場で明示された条件と、理解のために自分が補った仮定を区別しておきましょう。

確認ポイント

  • 判断に使っている条件の出所を確かめたか
  • 用語へのなじみから条件を補っていないか
  • 自分の仮定を、与えられた条件と区別できているか
正解と解説を見る

正解

ウ

解説

正解はウです。学生レコードを受け付けるには、三つの入力項目が全て正しい必要があります。一方、一つでも正しくない項目があれば受け付けません。ウは、この二つの関係を決定表で正しく表しています。

受け付ける条件と拒否する条件

正しい学籍番号をA、正しい出身高校コードをB、正しい学年をCとすると、受け付ける条件はA∧B∧Cです。受け付けない側では各入力が否定され、論理和で結ばれているので、条件は¬A∨¬B∨¬Cとなります。つまり、全て正しければ受け付け、一つでも誤りがあれば受け付けません。

決定表と各選択肢の比較

条件欄のYは成立、Nは不成立、「-」はその条件を問わないことを示し、実行欄のXはその処理を実行することを示します。ウは第1列が全てYで受け付け、残りの列がそれぞれ一つの条件をNとして受け付けないため、図と一致します。アは全てNで受け付け、イはY・N・Nで受け付けています。エは第3列で正しい出身高校コードを拒否条件にしている点が誤りです。

選択肢ア

これは不正解だよ。第1列は、三つの入力条件が全てNなのに、学生レコードを受け付けるとしている。図では、受け付ける結果へ三つの条件が論理積で結ばれているため、全てNの入力を受け付けることはできない。他の列も、正しい入力を拒否条件にしている。

選択肢イ

これは不正解だよ。第1列は、学籍番号だけがYで、出身高校コードと学年がNなのに受け付けるとしている。図の論理積では三つの条件が全て成立する必要があり、この列は一致しない。第4列も、学年がYであることを拒否条件にしており不適切である。

選択肢ウ(正解)

これは正解だよ。第1列では三つの条件が全てYのときだけ受け付ける。残りの列は、学籍番号・出身高校コード・学年のいずれかがNなら受け付けないことを示す。条件欄の「-」は、その列の結果を決める上で当該条件を問わないという意味で、図の論理積と否定の論理和に一致する。

選択肢エ

これは不正解だよ。第1列の全てYで受け付ける規則は図に一致するが、第3列が誤っている。この列は、出身高校コードがYなら他の条件に関係なく受け付けないとしている。図では出身高校コードが正しくない場合が拒否条件なので、この欄はNである必要がある。

学習のポイント

原因-結果グラフの論理積と否定の論理和を読み取り、決定表の条件欄と実行欄に対応付ける方法を学びましょう。

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

関連する過去問一覧

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