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





このページは

基本情報

(基本情報技術者試験)

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

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


問41 オブジェクト指向における基底クラスと派生クラスの関係にあるものはどれか。
“会社”と“社員”
“自動車”と“エンジン”
“図形”と“三角形”
“人間と”と“頭”
解答
解説 基底クラス(親クラス)とは、サブクラス(子クラス)の元となるスーパークラスのことをいいます。サブクラスは基底クラスを継承することで、サブクラスは、基底クラスの部分を作成する手間を省くことができます。基底クラスを変更するとそれを継承しているサブクラスにも影響ができます。(必要があればオーバーライドなどをしてサブクラスでメソッドを再定義することもできます。)

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

今回の場合は、図形を継承した三角形だと考えることができます。

問42 次のような注文データが入力されたとき、注文日が入力日以前の営業日かどうかを検査するために行うチェックはどれか。

画像(問42)を表示できません
シーケンスチェック
重複チェック
フォーマットチェック
論理チェック
解答
解説 それぞれのチェック法を下にまとめます。

シーケンスチェック:順番が決まっているもので、適切に並んでいるかをチェックする。
重複チェック:同じ番号が許されない(ユニークな連番が必要)なものに、同じ番号が割り振られていないかをチェックする。
フォーマットチェック:数字が入る部分に文字が入っているなど、書式をチェックする。
論理チェック:フォーマットは正しくても、意味的に矛盾していたりおかしなところがないかをチェックする。

問43 バグ埋込み法によってソフトウェア内に残存するバグ数を推定する。テストによって現在までに発見されたバグは48個であり、総埋込みバグ22個のうち、テストによって発見されたものは16個であった。あと幾つのバグが潜在していると推定されるか。ここで、埋込みバグの発見数とソフトウェアのバグ数は比例するものとする。
10
18
22
解答
解説 バグ埋込み法とは、バグの残存数を推定する手法です。あらかじめわざといくつかのバグを埋め込んでおきます。その後通常にデバッグを行い、どれだけ埋め込んだバグが発見されたかを調べることで、全体のバグ数および、残っている全体のバグ数を推定する手法です。

まず、22個埋め込んだバグは、16個発見されたので、22/16=1.375。がよって、発見されたバグの1.375倍が全体のバグ数と推測できます。全体で発見されたバグは48個なので、48×1.375=66個が全体のバグだと推測されます。よって、66−48=18個が残存しているバグだと考えられます。

問44 プログラム中の図の部分を判定条件網羅(分岐網羅)でテストするときのテストケースとして、適切なものはどれか。

画像(問44)を表示できません
画像(問44ans)を表示できません
解答
解説 ホワイトボックステストの手法について下にまとめます。

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

よって、真と偽を通過する最小限のテストは、選択肢ウとなります。

問45 システム開発プロジェクトの実施計画を作成し、クリティカルパスを求めた。クリティカルパスによって把握できる作業はどれか。
作業の遅れがプロジェクト全体の遅れに直結する作業
システムの品質を確保する上で、最も注意すべき作業
実施順序の変更が可能な作業
最も費用のかかる作業
解答
解説 クリティカルパスは、下のようなPART図(アローダイアグラム)を用いて求めることができます。

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

これにより、最も時間がかかる作業(=遅れるとプロジェクト全体が遅れる作業を)をつないだクリティカルパスを求めることができます。

問46 開発期間10か月、開発工数200人月のプロジェクトを計画する。次の配分表を前提とすると、ピーク時の要員は何人となるか。ここで、各工程の開始から終了までの人数は変わらないものとする。

画像(問46)を表示できません
18
20
21
22
解答
解説 まず、工数配分を元に、工程に割り振られる人月(人数×月)を計算します。

要求定義:200×0.16=32
設計:200×0.33=66
開発・テスト:200×0.42=84
システムテスト:200×0.9=18

次に、期間配分を元に、工程に割り振られる月数を計算します。

要求定義:10×0.2=2
設計:10×0.3=3
開発・テスト:10×0.4=4
システムテスト:10×0.1=1

人数×月数=人月なので、人月/月数=人数といえます。

要求定義:32/2=16
設計:66/3=22
開発・テスト:84/4=21
システムテスト:18/1=18

よって、設計が22人で最も多い人数が必要となります。

問47 アプリケーションの保守に関する記述として、適切なものはどれか。
テスト後は速やかに本稼働中のライブラリにプログラムを登録し、保守承認者に報告する。
変更内容が簡単であると判断できるときは、本稼動用のライブラリを直接更新する。
保守作業が完了しないまま放置されるのを防ぐためにも、保守の完了を記録する。
保守作業は、保守作業担当者によるテストが終了した時点で完了とする。
解答
解説 保守作業にかんしても、記録を残すのは基本です。また、保守においては、本稼動のシステムを直接書き換えることは好ましくありません。予備のシステムできちんと動作を確認してから更新することが好ましいといえます。保守作業担当者による保守作業は、テストが終了した時点というよりは、そこからが担当となります。

問48 運用開始後のネットワーク構成の変更に関する記述のうち、最も適切なものはどれか。
ネットワーク構成が複雑になるほど、ネットワーク管理ソフトウェアでの管理が困難となるので、経験豊富な担当者が構成を変更する必要がある。
ネットワーク構成を変更する場合は、ネットワークセキュリティを確保するために、すべての業務アプリケーションを停止させてから構成を変更する必要がある。
ネットワーク構築時にネットワーク構成の十分な検討を行い、運用開始後は構成を変更しないようにする必要がある。
必要に応じていつでもネットワーク構成の変更が行うことができるように、機器管理台帳やネットワーク図などを適時更新する必要がある。
解答
解説 ネットワーク管理(IPアドレスや、アクセス権等)には、ある程度の柔軟さが求められます。つまり、要求に応じて、ネットワーク構成を変化させることができるという能力です。これができるように、常日頃から、各種台帳を最新の状態にしておくことは重要といえます。また、変更時には一部のユーザが使用できなくなることが予想されるので、業務時間外などに行うことが望ましいです。また、ネットワーク構成の変更は、セキュリティというよりも利便性の問題であり、セキュリティ確保に貢献するとはあまり考えられません。

問49 A社の会員登録処理では、次の形式のIDを発行している。各年度末での発光済ID数の推移は表のとおりである。今後もこの傾向が続くと仮定した場合、この形式によるIDは何年後に使い尽くすと予想されるか。ここで、脱会した会員のIDは欠番として管理し、再利用は行わない。

画像(問49)を表示できません
2008年度
2009年度
2010年度
2011年度
解答
解説 まず、使用できるIDの総数を求めます。Xは26種類、Nは10種類なので、26×26×10×10×10=676000種類設定できます。
次に、年間どれだけ新しいIDが発行されているかを考えます。
2004→2005:383000−315000=66000
2005→2006:447000−383000=64000
2006→2007:512000−447000=65000

よって、3年間の平均は65000ずつ増えると仮定します。

2007→2008:512000+65000=577000
2008→2009:577000+65000=642000
2009→2010:642000+65000=707000

よって、2010年には、676000をこえるので、IDが枯渇するといえます。

問50 IPアドレスが192.168.0.xで、サブネットマスクが255.255.255.0のTCP/IPネットワークで、ブロードキャストアドレスはどれか。
192.168.0.0
192.168.0.255
192.168.255.0
192.168.255.255
解答
解説 まず、ホスト部がすべて1のIPアドレスをブロードキャストアドレスといい、すべてのホストに送信をするためのアドレスです。(ホスト部がすべて0のIPアドレスは、ネットワークアドレスといい、ネットワーク自身を表すのに使われるアドレスです。)

サブネットマスクが、255.255.255.0なので、2進数表記すると11111111.1111111.111111.0000000となり、下位8ビットがホスト部ということになります。つまり、IPアドレスの下位8ビットを1にしたものがブロードキャストアドレスとなります。
IPアドレスが192.168.0.xなので、下位8ビットを1に変えて192.168.0.255がこのネットワークのブロードキャストアドレスとなります。

問51 電子メールシステムで使用されるプロトコルであるPOP3の説明として、適切なものはどれか。
PPPのリンク確立後に、利用者IDとパスワードによって利用者を認証するときに使用するプロトコルである。
メールサーバ間でメールメッセージを交換するときに使用するプロトコルである。
メールサーバのメールボックスから電子メールを取り出すときに使用するプロトコルである。
利用者が電子メールを送るときに使用するプロトコルである。
解答
解説 メールの送信・受信に使われるプロトコルをまとめると下のようになります。

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

よって、選択肢ウがPOP3。選択肢イ、エはSMTPの説明です。なお、選択肢アは、PAPやCHAPの説明です。

問52 パケット交換方式に関する記述として、適切なものはどれか。
情報を幾つかのブロックに分割し、各ブロックに制御情報を付加して送信する方式であり、誤り制御は網で行う。
通信の呼ごとに、発信側と着信側との間に設定される物理回線を占有してデータを送受信する方式である。
転送するデータをセルと呼ばれる単位(固定長)に区切り、それぞれにあて先を付け、高速に交換する方式である。
ネットワーク内の転送処理を簡単にした方式であり、誤り制御は網で行わず端末間で行う。
解答
解説 各選択肢の通信方式を下にまとめます。

選択肢ア:パケット交換方式
選択肢イ:回線交換方式
選択肢ウ:ATM(Asynchronous Transfer Mode)
選択肢エ:フレームリレー

なお、呼(発呼、着呼)とは、電話をかけることをいいます。

問53 インターネット接続用ルータのNAT機能の説明として、適切なものはどれか。
インターネットへのアクセスをキャッシュしておくことによって、その後に同じIPアドレスのサイトへアクセスする場合、表示を高速化できる機能である。
通信中のIPパケットから特定のビットパターンを検出する機能である。
特定の端末あてのIPアドレスだけを通過させる機能である。
プライベートIPアドレスとグローバルIPアドレスを相互に変換する機能である。
解答
解説 NAT(Network Address Translation)とは、プライベートIPとグローバルIPを相互に変換する機能をいいます。なお、ポート番号も動的に変換される機能をNAPT(Network Address Port Translation)あるいはIPマスカレードといいます。

選択肢アは、プロキシサーバの説明です。
選択肢イは、パターンマッチングの説明です。(IDSやファイアウォールなどに利用されます)
選択肢ウは、パケットフィルタリング(ファイアウォール)の説明です。

問54 LANにおいて、伝送距離を延長するために伝送路の途中でデータの信号波形を増幅・整形して、物理層での中継を行う装置はどれか。
スイッチングハブ(レイヤ2スイッチ)
ブリッジ
リピータ
ルータ
解答
解説 選択肢のネットワーク機器をまとめます。

リピータ:OSI基本参照モデルの第1層(物理層)で接続し、伝送距離を延長するために伝送路の途中でデータの信号波形を増幅・整形をする。
ブリッジ:OSI基本参照モデルの第2層(データリンク層)で接続し、MACアドレスによるパケットのフィルタリングを行う。
スイッチングハブ:OSI基本参照モデルの第2層(データリンク層)で接続し、受信したパケットを、あて先MACアドレスが存在するLANポートだけに転送する。
ルータ:OSI基本参照モデルの第3層(ネットワーク層)で接続し、パケットを中継する。

問55 TCP/IPの環境で使用されるプロトコルのうち、構成機器や障害時の情報収集を行うために使用されるネットワーク管理プロトコルはどれか。
NNTP
NTP
SMTP
SNMP
解答
解説 ネットワーク上の機器を監視、制御するための情報をやり取りするプロトコルをSNMP(Simple Network Management Protocol)といいます。監視対象はMIB(Management Information Base)と呼ばれる自分の状態を表す公開情報をもっており、SNMPはこれを元に適切な設定を行います。

NNTP(Network News Transfer Protocol)は、インターネット上でNetNewsを転送するのに利用されるプロトコルです。
NTP(Network Time Protocol)は、ネットワークを介して時間を適切にあわせるプロトコルです。階層構造をもち、下位は上位のホストを元にして時間を合わせます。
SMTP(Simple Mail Transfer Protocol)は、メールを送信およびサーバ間での転送に用いられるプロトコルです。

問56 データベースの概念設計に用いられ、対象世界を、実体と実体間の関連という二つの概念で表現するデータモデルはどれか。
E−Rモデル
階層モデル
関係モデル
ネットワークモデル
解答
解説 E−Rモデル(Entity Relationship Diagram)は、主に実体、実体間の関連(場合によっては、実体の持つ属性も加わる)から構成されます。

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

選択肢イは、ディレクトリなどを木構造であらわすのに用いられます。
選択肢ウは、関係DBを表すのに、行と列の表であらわされます。
選択肢エは、インターネットのノードなどを現すのに、点と線で複数の親を持つグラフで表されます。

問57 次のような繰返し構造をもったデータを、第3正規形に正規化したものはどれか。ここで、下線部分は主キーを現す。また、単位と単価は商品コードごとに決まるものとする。

画像(問57)を表示できません
画像(問57ans)を表示できません
解答
解説 リレーションデータベースの正規化にはいくつかの段階があります。通常は第3正規形までですが、ボイス・コッドや第4、第5正規形というのもあります。

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

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

これにあわせて、正規化をしていくと下のようになります。

第1正規化(繰り返し部分の独立)
伝票番号 日付 顧客コード 顧客名 住所
伝票番号 商品コード 単位 数量 単価

第2正規化(部分関数従属の除去)
伝票番号 日付 顧客コード 顧客名 住所
伝票番号 商品コード 数量
商品コード 単位 単価

第3正規化(推移関数従属の除去)
伝票番号 日付 顧客コード
顧客コード 顧客名 住所
伝票番号 商品コード 数量
商品コード 単位 単価

問58 化粧品の製造を行っているA社では、販売代理店を通じて商品販売を行っている。今後の販売戦略に活用するために、次の三つの表からデータベースの作成を計画している。これらのデータを用いるだけでは得ることのできない情報はどれか。

画像(問58)を表示できません
商品ごとの販売数量の日別差異
性別ごとの売れ筋商品
販売代理店ごとの購入者数の日別差異
販売代理店ごとの購入者の年齢分布
解答
解説 計算できるものから順に考えていきます。。

選択肢アは、販売代理店の日別販売データから計算できます。
選択肢イは、顧客データと顧客の商品購入データから計算できます。
選択肢エは、顧客データ、販売代理店の日別販売データ、顧客の商品購入データから計算できます。

選択肢ウは、顧客の商品購入データに日付がないため、計算できません。

問59 次のSQL文の実行結果がA表のようになった。aに入れるべき適切な字句はどれか。

画像(問59)を表示できません
BU_CODE = S_SHOZOKU AND S_NENREI = 23
BU_CODE = S_SHOZOKU AND S_NENREI BETWEEN 23 AND 25
BU_CODE = S_SHOZOKU AND BU_CHO = ’1107’ AND S_NENREI = 23
S_NENREI = 23
解答
解説 取り出す列と、表の結合はすでに、行われているので、取り出された行の条件だけを考えればいいことになります。取り出された名前の年齢をみるとすべて23になっているので、S_NENREI=23になっている必要があります。また、このままでは、BUSHO表と結合されていないので、BU_NAMEを利用することができません。よって、BU_CODE=S_SHOZOKUで2つの表を結合する必要があります。

問60 データベースの排他制御に関する記述のうち、適切なものはどれか。
あるトランザクションによって共有ロックがかけられている資源に対して、別のトランザクションから共有ロックをかけることは可能である。
あるトランザクションによって共有ロックがかけられている資源に対して、別のトランザクションから占有ロックをかけることは可能である。
あるトランザクションによって占有ロックがかけられている資源に対して、別のトランザクションから共有ロックをかけることは可能である。
あるトランザクションによって占有ロックがかけられている資源に対して、別のトランザクションから占有ロックをかけることは可能である。
解答
解説 まず、占有ロックと共有ロックをまとめます。

占有ロック:データを書き込む時など、他人に読み書きをされたくないときに利用するロック
共有ロック:データを読み込む時など、他人に書き込むをされて、値を変えられたくないときに利用するロック

よって、占有ロックには、占有ロック・共有ロックをかけることはできません。共有ロックには、占有ロックはできないですが、共有ロックをかけることは、可能です。

最後に、互いにロックをかけて処理が進まなくなるデッドロックについて下に例示しておきます。

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