平成20年度春期 基本情報 問41−60 解答編





このページは

基本情報

(基本情報技術者試験)

解答と解説のページです。

問題だけで勉強したい方は目次へ戻ってください


問41 システム開発の外部設計工程で行う作業はどれか。
物理データ設計
プログラム構造化設計
要求分析
論理データ設計
解答
解説 まず、プログラム開発における外部設計の位置を確認すると下のようになります。

画像(問41kai)を表示できません

そして、外部設計と内部設計についてまとめると下のようになります。

外部設計:システムから見た設計で、データ項目の洗い出しと論理データの設計、画面のレイアウトなどを決定します。
内部設計:コンピュータから見た設計で、物理データ構造、アルゴリズム、チャックディジットの方式などを決定します。

問42 図に示す売上管理システムのDFDの中で、Aに該当する項目として、適切なものはどれか。

画像(問42)を表示できません
売上ファイル
受注ファイル
単価ファイル
入金ファイル
解答
解説 まず、DFDの記号をまとめると下のようになります。

画像(問42kai)を表示できません

売上げは、単価×数量でもとめられると予想できるので、受注ファイルには品名と数量があると思われるので、単価の情報を持っているファイルを持ってくる必要があります。

問43 オブジェクト指向におけるクラスとインスタンスとの関係のうち、適切なものはどれか。
インスタンスはクラスの仕様を定義したものである。
クラスの定義に基づいてインスタンスが生成される。
一つのインスタンスに対して、複数のクラスが対応する。
一つのクラスに対して、インスタンスはただ一つ存在する。
解答
解説 クラスとはデータ構造の雛形で、インスタンスとはクラスに実際の値をいれて具現化したものです。イメージ図を下に図示します。

インスタンス

選択肢ア:クラスのほうがインスタンスの仕様を定義したものです。
選択肢ウ:一つのクラスに対して、複数のインスタンスが対応します。
選択肢エ:一つのクラスに対して、複数のインスタンスが対応します。

ただし、シングルトン設計を用いるとインスタンスをただ一つに制限することができます。

問44 モジュールの独立性を高めるためには、モジュール結合度を弱くする必要がある。モジュール間の情報の受渡し方法のうち、モジュール結合度が最も弱いもはどれか。
共通域に定義したデータを、関係するモジュールが参照する。
制御パラメタを引数として渡し、モジュールの実行順序を制御する。
データ項目だけをモジュール間の引数として渡す。
必要なデータを外部宣言して共有する。
解答
解説 モジュール強度とモジュール間結合度をまとめると下のようになります。

画像(問44kai)を表示できません

問45 ホワイトボックステストのテストデータを作成するときの注目点として、適切なものはどれか。
同値分割法を適用して得られた同値クラスごとの限界値
プログラムのアルゴリズムなどの内部構造
プログラムの機能
プログラムの入力と出力の関係
解答
解説 ホワイトボックステストは、単体テストなどに用いられるテストで、内部構造に注目し、if文などをどのようにチェックするかによって、いくつかの種類に分かれます。
一方でブラックボックステストは、内部構造ではなく、仕様書に基づいた入力と出力になっているかを調べます。

問46 デザインレビューを実施するねらいとして、適切なものはどれか。
開発スケジュールを見直し、実施可能なスケジュールに変更する。
仕様の不備や設計の誤りなどを早期に発見し、手戻り工数の削減を図る。
設計工程での誤りの混入を防止し、テストを簡略化して、開発効率の向上を図る。
設計の品質を向上させることで、開発規模見積りの精度の向上を図る。
解答
解説 出来上がった成果物を客観的に多人数で評価することをデザインレビューといいます。これには、実際にプログラムを動かして確かめる動的テストと、プログラムを動かすことなく、ソースコードのチェックなどを行う静的テストがあります。デザインレビューの代表的な例を説明します。

インスペクション:プログラムを第三者が検証し、本人が気づかない誤りや問題点を検出すること。
ウォークスルー:開発に携わった者が集まり、誤りや問題点を発見する。
ラウンドロビン:責任者を順番に勤めながらレビューを行う。これにより、積極性が増し見落としを減す。

問47 プログラミングの標準化に関する記述のうち、適切なものはどれか。
プログラマの個性を否定することが目的ではなく、コンパイラによる最適化の効果を得やすくすることが本来の目的である。
プログラミングに関する規約を設けることによって、プログラマの犯しやすい誤りを未然に防止する効果がある。
プログラム言語に依存しない共通事項についての規程を定めることが目的である。
プログラムの標準的な実行時間を明確にし、効率の良いプログラムの作成を促進する効果がある。
解答
解説 プログラミングの標準化とは、誤りを発見しやすくしたり、他人にもプログラムを読みやすくしたりするために、関数名や変数名の命名規則、括弧や改行、タブなどの挿入などを統一することをいいます。

問48 プログラムの流れ図で示される部分に関するテストデータを、判定条件網羅(分岐網羅)によって設定した。このテストデータを複数条件網羅による設定に変更したとき、加えるべきテストデータのうち、適切なものはどれか。ここで、( )で囲んだ部分は、一組のテストデータを表すものとする。

画像(問48)を表示できません


・判定条件網羅(分岐網羅)によるテストデータ
(A=4、B=1)、(A=5、B=0)
(A=3、B=0)、(A=7、B=2)
(A=3、B=2)、(A=8、B=0)
(A=4、B=0)、(A=8、B=0)
(A=7、B=0)、(A=8、B=2)
解答
解説 ホワイトボックステストの手法について下にまとめます。

命令網羅:命令が必ず1度は実行されるようにする。つまり、if文(if-elseではない)では真だけ通過すればよい。
判定条件網羅(分岐網羅):すべての判定条件で、真と偽を1回以上行うようにする。
条件網羅(分岐条件網羅):すべての判定条件で、条件文の中のANDやORも真と偽のすべての組み合わせを行うようにする。
複数条件網羅:すべての条件の真と偽の組み合わせを1度は実行するようにする。

(A=4、B=1)、(A=5、B=0)は(偽、偽)、(偽、真)となるので、
(真、真)、(真、偽)となるものを選べばよいことになります。

つまり、(A=7、B=0)、(A=8、B=2)となります。

問49 システムの開発部門と運用部門が別々に組織化されているとき、開発から運用への移行を円滑かつ効果的に進めるための方法のうち、適切なものはどれか。
運用テストの完了後に、開発部門がシステム仕様と運用方法を運用部門に説明する。
運用テストを効率良く行うために、開発部門の支援を受けずに、運用部門だけで実施する。
運用部門からもシステム開発に積極的に参加し、運用性の観点から助言する。
開発部門は、運用テストを実施して運用マニュアルを作成し、運用部門に引き渡す。
解答
解説 各選択肢について説明します。

選択肢ア:説明は、もっと早い段階(システムテストなど)で行うべきです。
選択肢イ:運用テストは、開発部門の協力を得て行います。
選択肢ウ:2つの部門が密に協力することで、円滑に移行ができるといえます。(正解)
選択肢エ:運用テストは、開発部門の単独で行うのではなく、運用部門にも参加してもらいます。

問50 コンピュータシステムの利用料金を逓減課金方式にしたときのグラフはどれか。ここで、横軸を使用量、縦軸を利用料金とする。
画像(問50ans)を表示できません
解答
解説 逓減(ていげん)とは徐々に減るという意味で、逓減課金方式とは、最初は高かった利用金額が、利用するほど時間単位ごとの利用金額減少するという課金方法です。つまり、使用量が増えるたびに使用金額が低く=傾きが小さくなっていきます。(もちろん、全体的な利用料金は増えていきます)

問51 複数の業務システムがある場合のアクセス管理の方法として、最も適切なものはどれか。
業務の担当変更に迅速に対応するために、業務グループごとに共通の利用者IDを使用する。
人事異動が頻繁に発生する場合には、年初にまとめてアクセス権限の変更を行う。
新入社員の名簿に基づいて、あらかじめ全事業システムに全員の利用者登録を実施しておく。
利用者の職位権限にかかわらず、業務システムごとに適切なアクセス権限の設定を行う。
解答
解説 アクセス権やIDの管理は非常に重要です。アクセス権の管理の基本は、適切な人物に必要最小限の権限を迅速に発行することです。

選択肢アでは、共通のIDを使っているので、本人特定につながりませんし、個別の設定ができません。
選択肢イでは、細かな人事異動に柔軟に対応できません。
選択肢ウでは、全システムに登録する必要性はなく、余計な権限を与えるのは好ましくありません。

問52 IPv4にはなく、IPv6で追加・変更された仕様はどれか。
アドレス空間として128ビットを割り当てた。
サブネットマスクの導入によって、アドレス空間の有効利用を図った。
ネットワークアドレスとサブネットマスクの対によってIPアドレスを表現した。
プライベートアドレスの導入によって、IPアドレスの有効利用を図った。
解答
解説 IPv6は、IPアドレスの枯渇に対応するために32ビットから128ビットに拡張されました。残りの選択肢はIPv4の機能あるいはIPv4でも利用できる機能です。

問53 次のIPアドレスとサブネットマスクをもつPCがある。このPCのネットワークアドレスとして、適切なものはどれか。

IPアドレス:200.170.70.19
サブネットマスク:255.255.255.240
200.170.70.0
200.170.70.16
200.170.70.31
200.170.70.255
解答
解説 まず、サブネットとIPアドレスを2進数に変換します。

サブネットマスク:11111111.11111111.11111111.11110000

ネットワーク部は、サブネットマスクの1の部分を取り出したものなので、元のIPアドレスの下位4ビットを0したものとなります。つまり、19を2進数にすると、10011となるので、16となります。よって、選択肢イが正解となります。

問54 LANに接続されたPCに対して、そのIPアドレスをPCの起動時などに自動設定するために用いるプロトコルはどれか。
DHCP
DNS
FTP
PPP
解答
解説 それぞれの用語をしたにまとめます。

DHCP(Dynamic Host Configuration Protocol):ホストに動的にIPアドレスを割り振るプロトコル
DNS(Domain Name System):ホスト名とIPアドレスを相互に対応付けし、名前解決をするシステム
FTP(File Transfer Protocol):TCP/IPでファイルを転送するプロトコル
PPP(Point to Point Protocol):電話回線を通じてダイヤルアップ説蔵するときのプロトコル(Ethernet上に拡張したPPPoEが利用されることが多い)

問55 次の画像符号化方式のうち、携帯電話などの低速回線用の動画像の符号化に用いられるものはどれか。
JPEG
MPEG−1
MPEG−2
MPEG−4
解答
解説 まず、JPEGは動画ではなく、静止画の企画です。次に、動画の規格であるMPEGについて下にまとめます。

MPEG−1:CDなどに1時間程度の録画ができるようにした、低画質の規格
MPEG−2:高画質の規格。MPEG−1との互換はない。
MPEG−4:主に携帯電話などで使われる低ビットレートの規格
MPEG−7:動画のエンコードではなく、マルチメディアデータの高速な内容検索を目的としている。

問56
画像(問56q)を表示できません


画像(問56)を表示できません
表1{a}
表2{b、c、d、e}
表3{f、g、h}
表1{a、b、c、d、e}
表2{a、c}
表3{b、e、f、g、h}
表1{a、b、c、d、e}
表2{b、c、f、g、h}
表3{b、c、h}
表1{a、b、c、d、e}
表2{b、f、g}
表3{b、c、h}
解答
解説 まずは、日本語で図の内容をまとめておきます。

aが決まると、b、c、d、eが一意に決まる。
bが決まると、f、gが一意にきまる。
b、cが決まると、hが一意に決まる。

これをまとめると
{a、b、c、d、e}(主キーはa)
{b、f、g}(主キーはb)
{b、c、h}(複数キーは、bとc)


最後に、リレーショナルデータベースについてまとめて起きます。通常は第3正規形までですが、ボイス・コッドや第4、第5正規形というのもあります。

第1正規形:繰り返しや、反復している部分を独立させる。
第2正規形:第1正規形であり、部分関数従属を除去する(完全関数従属にする)
第3正規形:第2正規形であり、主キー以外に従属するものを除去する(推移従属を除去する)

用語についても少し解説しておきます。
関数従属:BがAに関数従属するとは、A(例:社員番号)を決めるとB(社員名)が一意に決定するというもの。Aを決定項、Bを従属項といいA→Bであらわす。
完全関数従属:決定項に余分なものがないときにいう。社員番号→社員名など。
部分関数従属:決定項に余分なものがあるときにいう。{社員番号、部署番号}→社員名など(部署番号がなくても社員名を特定できる)
推移関数従属:主キー以外に従属するものをいう。{社員番号}→{部署番号、部署名、社員名}のとき部署名は、部署番号にも従属しているので推移従属となる。

問57 “診療科”表、“医師”表及び“患者”表がある。患者がどの医師の診察も受けることができ、かつ診察する医師の特定もできる“診療”表はどれか。ここで、表定義中の実線は主キー、破線は外部キーを表す。

画像(問57)を表示できません
画像(問57ans)を表示できません
解答
解説 まず、医師表と患者表は多対多になっているので、医師表と診療表を1対多。診療表と患者表が多対1になるようにします。

患者と医者を対応付けるために、意思番号と患者番号が必要となります。診療科コードは医師表の外部コードとなっているので、必要はありません。

問58 “社員”表から、職務がプログラマである社員が5人未満の部署の部署コードを探すSQL文として、適切なものはどれか。ここで、“社員”表は次の構造であり、各列にはナル値は含まれないものとする。

社員(社員番号、社員名、部署コード、職務)
画像(問58ans)を表示できません
解答
解説 選択肢のSQL文を下にまとめます。

選択肢ア:プログラマが5人未満の部署コードを出力する
選択肢イ:プログラマでない人間が、5人以上いる部署を出力する
選択肢ウ:プログラマが5人未満の部署が出力されるが、0人は出力されない。
選択肢エ:プログラマが5人未満の部署が出力されるが、0人は出力されない。

DISTINCTは、重複を表示しないというコマンドです。
EXISTSは、副問い合わせの結果が真ならその行を返すというコマンドです。

問59 表は、ジョブ1〜3が資源A〜Cにかけるロックの種別を表す。また、資源へのロックはジョブの起動と同時にかけられる。ジョブ1〜3のうち二つのジョブをほぼ同時に起動した場合の動きについて、適切な記述はどれか。ここで、表中の“−”はロックなし、“S”は共有ロック、“Xは占有ロックを示す。”

画像(問59)を表示できません
ジョブ1の後にジョブ3を起動したとき、ジョブ3の資源待ちはない。
ジョブ2の後にジョブ1を起動したとき、ジョブ1の資源待ちはない。
ジョブ2の後にジョブ3を起動したとき、ジョブ3の資源待ちはない。
ジョブ3の後にジョブ1を起動したとき、ジョブ1の資源待ちはない。
解答
解説 データのロックに関する問題です。ロックは、読み込んで書き込む間にデータが書き換えられると整合性が崩れる場合にもちいられるものです。また、自分だけが占有する占有ロックと、他者の読み込みを許可する共有ロックが存在します。

占有ロックに占有ロックや共有ロックはかけられません。共有ロックに占有ロックはできませんが、共有ロックは可能です。

さらに、デッドロックとは、互いに占有ロックをした状態で他方の資源を要求することで、処理が進まなくなってしまう現象です。この場合は、両方ともロールバックをして処理をやり直します。

選択肢アは、ジョブ1がAを共有ロックし、ジョブ3がAを占有ロックしようとするので、待ちが生じます。
選択肢イは、どのロックでも、待ちが生じない。
選択肢ウは、ジョブ2がAを共有ロックし、ジョブ3がAを共有ロックしようとするので、待ちが生じます。 ジョブ2がBを占有ロックし、ジョブ3がBを共有ロックしようとするので、待ちが生じます。
選択肢エは、ジョブ3がAを占有ロックし、ジョブ1がAを共有ロックしようとするので、待ちが生じます。

問60 データベースの回復処理に関する記述として、適切なものはどれか。
ウォームスタート方式の再始動では、チェックポイントまで戻り、更新情報のログを使用してデータベースを回復する。
更新情報のログを見て、チェックポイントから後に正常終了したトランザクションの情報をデータベースに反映させる操作をロールバックという。
コールドスタート方式の再始動では、チェックポイントでのログと更新情報のログが使用される。
障害発生時に終了していないトランザクションを更新前の状態に戻す操作をロールフォワードという。
解答
解説 各選択肢を解説していきます。

選択肢ア:ウォームスタートはOSの再起動などのようなものをさします。よって、チェックポイントまで戻ります。
選択肢イ:ロールフォワードの説明です。
選択肢ウ:一度電源を切って、その後起動するようなものをさします。よって、チェックポイントでのログなどは使いません。
選択肢エ:ロールバックの説明です。