平成18年度 秋期 ソフトウェア開発技術者試験 問41−60 解答編




このページは

ソフ開

(ソフトウェア開発技術者試験)

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

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



問41 モジュール結合度が最も弱いモジュールはどれか。
単一のデータ項目を大域的データで受け渡すモジュール
単一のデータ項目を引数で受け渡すモジュール
データ構造を大域的データで受け渡すモジュール
データ構造を引数で受け渡すモジュール
解答
解説 モジュールの独立性について以下にまとめます。

モジュールを表示できません

選択肢アは、外部結合の説明です。
選択肢イは、データ結合の説明です。
選択肢ウは、共通結合の説明です。
選択肢エは、スタンプ結合の説明です。

問42 次のテストケース設計法をなんと呼ぶか。

読み込んだデータが正しくないときにエラーメッセージを出力するかどうかをテストしたい。プログラム仕様書を基に、正しくないデータのクラスを識別し、その中から任意の一つのデータを代表として選んでテストケースとした。

原因結果グラフ
限界値分析
同値分割
分岐網羅
解答
解説 それぞれの用語を以下にまとめます。

原因結果グラフ:原因と結果の因果グラフを作成し、その内容から決定表をつくり、テストケースを作成する。
限界値分析:条件において、真と偽の境界の値をテストデータしてテストを作成する。(ブラックボックステスト)
同値分割:条件において、真となるデータの代表、偽となるデータの代表を選び出し、テストを作成する。(ブラックボックステスト)
分岐網羅:条件式をみて、真、偽を網羅するように行うテスト(ホワイトボックステスト)

問43 プログラムに“事実”と“規則”を記述し、プログラム言語の処理系がもつ導出原理によって結論を得るプログラミングパラダイムであって、エキスパートシステムの開発に適しているものはどれか。
オブジェクト指向プログラミング
関数型プログラミング
手続型プログラミング
論理型プログラミング
解答
解説 それぞれの言語を以下にまとめます。

オブジェクト指向プログラミング:クラス、メソッドといった概念を用いて、データをオブジェクトとして扱う。代表的な言語:Java
関数型プログラミング:関数の組合せで、プログラムを記述していく。代表的な言語:LISP
手続型プログラミング:制御構文を用いて、アルゴリズムを記述していく。代表的な言語:C言語
論理型プログラミング:推論規則を用いて、与えられた命題を評価する。代表的な言語:Prolog

問44 あるプログラムについて、流れ図で示される部分に関するテストを、命令網羅で実施する。この場合、考えられる最小のテストケース数はどれか。それぞれの判定条件は互いに独立であるとする。

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

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

よって今回は、1箇所で最大3つに分岐するので、3つのテストケースがあれば十分といえます。

問45 表は、あるプロジェクトの工程を示したものである。表中の数値は各作業の所用期間(単位:日)であり、各作業を開始するためには前の作業が完了している必要がある。プロジェクトを完了するのに最低何日必要か。

画像(問45)を表示できません
40
56
60
62
解答
解説 以下のように、PERT図(アローダイアグラム)を作成するのが良いと思います。

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

上図から、プロジェクト全体で62日かかることがわかります。破線はダミーの作業を表し、同期を取るために用いられます。(日数0の実線と考えても問題ありません)

問46 プロジェクトの工程管理や進捗管理に使用されるガントチャートの特徴として、適切なものはどれか。
各作業の開始時点と終了時点が一目で把握できる。
各作業の順序が明確になり、クリティカルパスが把握できる。
各作業の余裕日数が容易に計算できる。
重点的に管理すべき作業が容易に分かる。
解答
解説 ガントチャートは以下のような図で、工程の進捗を管理するために用いられる図です。

ガントチャートを表示できません

選択肢イ、ウ、エ、はPERT図(アローダイアグラム)の説明です。

問47 表は、あるシステム開発の工数を見積もるために調査した、サブシステムごとのファンクションポイント(FP)値と、そのサブシステムを開発するときの言語別の開発生産性(開発FP値/人月)を表したものである。サブシステムごとに最も生産性の高い言語を選んだ場合の開発工数は何人月か。

画像(問47)を表示できません
14
34
79
145
解答
解説 ファンクションポイントはその名(ファンクション=関数、ポイント=点数)のとおり、ファイルの入出力数や関数の複雑さなどから重み付けと計算を行い、プログラム規模を見積もる手法です。

順番に計算していきます。
入出庫処理:一番生産性の高い言語はCOBOLなので、3,000/200=15ヶ月
在庫照会処理:一番生産性の高い言語はBASICなので、2,000/500=4ヶ月
出荷分析処理:一番生産性の高い言語はRPGなので、4,500/300=15ヶ月

よって、15+4+15=34ヶ月となります。

問48 工程別の生産性が次のとき、全体の生産性を表す式はどれか。

設計工程:Xステップ/人月
製造工程:Yステップ/人月
試験工程:Zステップ/人月
画像(問48ans)を表示できません
解答
解説 生産性の定義はステップ/人月という単位であらわされています。まず、それぞれの工程にどれくらいの人月がかかるかを調べます。全体のステップ数をnとすると

設計:n/X 人月
製造:n/Y 人月
試験:n/Z 人月

全体でどのくらいの人月がかかるかは、これらを足して、(n/X)+(n/Y)+(n/Z)人月かかることがわかります。

生産性は、ステップ/人月なので、n/{(n/X)+(n/Y)+(n/Z)}=1/{(1/X)+(1/Y)+(1/Z)}となります。

問49 SLAの説明はどれか。
開発から保守までのソフトウェアライフサイクルプロセス
サービスの品質に関する利用者と提供者間の合意
システムの運用手法を体系化したフレームワーク
製品ベンダの品質マネジメントシステムに関する国際規格
解答
解説 SLAとは、サービス品質保証契約ともよばれ、サービスに関する取り決めを行うものです。利用部門と情報システム部門が取り交わす契約事項であり、課金項目、問合せ受付時間、オンラインシステム障害時の復旧時間などの項目が盛り込まれます。また、契約事項が実行されなかった場合の罰則規定も盛り込まれることもあります。

選択肢アは、SLCP(Software Life Cycle Proccess)の説明です。
選択肢ウは、ITIL(IT Infrastructure Library)の説明です。
選択肢エは、ISO9001の説明です。

問50 ソフトウェア開発・保守工程において、リポジトリを構築する理由はどれか。
各工程での作業を定義することが容易になり、開発・保守時の作業ミスを防止することができる。
各工程での作業予定と実績を関連付けて管理することが可能となり、作業の進捗管理が容易になる。
各工程での成果物を一元管理することによって、用語を統一することもでき、開発・保守作業の効率が良くなる。
各工程での発生不良を管理することが可能になり、ソフトウェアの品質分析が容易になる。
解答
解説 リポジトリとは、貯蔵庫・倉庫などの意味があり、ファイルやフォルダの一元管理を行うことができる空間のことです。(バージョン管理ソフトウェアなどを使う場合が多いです)これにより、開発効率が向上するなどがあります。代表的なフリーソフトにMercurialやSubversionがあります。

問51 TCP/IPネットワークにおいて、コンサート中継の配信のように、多数の通信相手に同じ情報を効率的に配信するための手法はどれか。
IMAP4
IPsec
IPマルチキャスト
RSVP
解答
解説 それぞれの用語を以下にまとめます。

IMAP4(Internet Message Access Protocol 4)とは、サーバに接続しメールを閲覧・管理するためのプロトコルです。POP3のようにクライアントにすべてダウンロードするものではありません。
IPsec(Security Architecture for Internet Protoco)とは、IPパケットを暗号化して、不正な利用を防止するプロトコルです。
IPマルチキャストとは、複数の相手に同じデータを送信することです。(全員ではありません。特定のグループなどで利用されます)

RSVP(Resource reSerVation Protocol)とは、通信相手までの帯域を予約し、通信品質を確保するプロトコルです。

問52 TCP/IPネットワークでは、プロトコル階層はアプリケーション層、トランスポート層、インターネット層、ネットワークインタフェース層に分けられている。SNMPと同じ階層に属するのはどれか。
FTP
ICMP
RARP
UDP
解答
解説 SNMP(Simple Network Management Protocol)は、ネットワーク機器の状態や情報などのMIB(Management Information Base)をやり取りするためのプロトコルで、アプリケーション層に相当します。

FTP(File Transfer Protocol)は、ファイル転送に用いられるプロトコルで、アプリケーション層に相当します。
ICMP(Internet Control Message Protocol)は、ネットワーク機器の制御をするために用いられるプロトコルで、インターネット層に分類されます。(pingもこのプロトコルの機能を利用しています。)
RARP(Reverse Address Resolution Protocol)は、MACアドレスから、IPアドレスを調べるためのプロトコルで、インターネット層に分類されます。
UDP(User Datagram Protocol)は、UTPのように応答確認などの品質制御をおこなわない分、高速に通信ができるプロトコルです。トランスポート層に分類されます。

問53 サブネットマスクが255.255.252.0のとき、IPアドレス172.30.123.45のホストが属するサブネットワークのアドレスはどれか。
172.30.3.0
172.30.120.0
172.30.123.0
172.30.252.0
解答
解説 まず、255.255.252.0を2進数に展開すると11111111 11111111 11111100 00000000となります。つまり、上位22ビットがネットワーク部。下位10ビットがホスト部となります。つぎに、IPアドレス172.30.123.45を2進数に展開すると、10101100 00011110 01111111 00101101になります。IPアドレスのサブネットの1に相当する部分がネットワークアドレスとなります。(サブネットマスクとANDをとったものと考えても同じです。)

10101100 00011110 01111111 00101101(IPアドレス)
11111111 11111111 11111100 00000000(サブネットマスク)
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 10101100 00011110 01111100 00000000=172.30.120.0

問54 TCP/IPネットワークにおいて、IPアドレスを動的に割り当てるプロトコルはどれか。
ARP
DHCP
RIP
SMTP
解答
解説 それぞれの用語を以下にまとめます。

ARP(Address Resolution Protocol):IPアドレスを基にMACアドレスを問い合わせるプロトコル。(逆にMACアドレスからIPアドレスを問い合わせるものをRARPといいいます。)
DHCP(Dynamic Host Configuration Protocol):動的にIPアドレスを割り振るプロトコル。
RIP(Routing Infomation Protocol):ホップ数(ルータの個数等)によって経路を制御するプロトコル。ただし、通信速度などは考慮されません。
SMTP(Simple Mail Transfer Protocol):クライアントからサーバ、サーバ間でメールを転送するプロトコル。

問55 伝送速度64kビット/秒の回線を使ってデータを連続送信したとき、平均して100秒に1回の1ビット誤りが発生した。この回線のビット誤り率は幾らか。
1.95×10-8
1.56×10-7
1.95×10-5
1.56×10-4
解答
解説 64kbpsを100秒利用して、1ビット誤りが発生したということは、64×1000×100ビット中1ビット誤りが発生したということになります。つまり、1/(64×105)の確率で誤りが発生するということです。よって、1/64×10-5=0.015625×10-5≒1.56×10-7となります。

問56 パケット交換方式とフレームリレー方式を比較した記述のうち、適切なものはどれか。
ともに蓄積交換によるデータ伝送方式であるが、網内のトラフィックが急増した場合、フレームリレー方式の方がフレームの廃棄が生じにくい。
パケット交換方式では、相手先を固定にすることも接続時に選択することもできるが、フレームリレー方式では、相手先固定に限定される。
パケット交換方式では、送信側から受信側へのパケットの伝送順序が保証されるが、フレームリレー方式では、高速化を実現するためにデータの順序は保証されない。
フレームリレー方式は、パケット交換方式に比べて誤り制御処理を簡略化することで、網内遅延を少なくし高速化を図っている。
解答
解説 2つの手法を以下にまとめます。

パケット交換:データをブロックという固定長の単位に区切ってデータを転送する蓄積型の交換機であり、伝送速度は数十kビット/秒程度までである。
フレームリレー:データをフレームという可変長の単位に区切ってデータ転送する蓄積型の交換機であり、伝送誤りに対する再送を行わないので、ネットワーク内の処理を高速化することができる。

問57 LANの制御方式に関する記述のうち、適切なものはどれか。
CSMA/CD方式では、単位時間当たりの送出フレーム数が増していくと、衝突の頻度が増すので、スループットはある値をピークとして、その後下がる。
CSMA/CD方式では、一つの装置から送出されたフレームが順番に各装置に伝送されるので、リング状のLANに適している。
TDMA方式では伝送路上におけるフレームの伝搬遅延時間による衝突が発生する。
トークンアクセス方式では、トークンの巡回によって送信権を管理しているので、トラフィックが増大すると、CSMA/CD方式に比べて伝送効率が急激に低下する。
解答
解説 CSMA/CD(Carrier Sense Multiple Access with Collision Detection)は搬送波感知多重アクセス/衝突検出方式とよばれ、まず、ネットワーク上にデータが流れていないかを確認し、データを送信します。もし、データが衝突したらランダムな時間待機し、再度確認からやり直します。TDMAは時分割多重のことで、時間を分けて多重化利用するので、衝突は発生しません。トークンアクセスはトークンが送信権を管理しているため、トラフィックが増大しても、トークンの獲得(=データの送信権)により、衝突が起きないので、CSMA/CDより、伝送効率は安定するといえます。また、無線ではCSMA/CAという規格があるので、合わせて覚えておくとよいでしょう。

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

問59 ポートVLANの説明として、適切なものはどれか。
スイッチングハブとコンピュータの間を複数のケーブルで接続し、論理的に一本の接続に見せて帯域を増やす。
スイッチングハブで指定したポート間の特定の通信だけを遮断する。
複数のポートを論理的なグループにまとめ、グループ内だけの通信を可能にする。
二つ以上のIPセグメントを1台のスイッチングハブに混在させ、その間のルーティングを実現する。
解答
解説 まず、VLAN(Virtual Local Area Network)とは物理的なLANの形状とは異なる仮想的なLANを構築するものです。代表的なVLANの方式を以下にまとめます。

ポートVLAN:接続されているポート番号により所属するVLANを識別する。
タグVLAN:イーサネットフレームにVLANを識別する固定長のタグをつけ、所属するVLANを識別する。(複数のVLANに所属できる)
プロトコルVLAN:利用するプロトコルにより、所属するVLANを識別する。

問60 レイヤ3スイッチで、IPパケットの中継処理を高速化に広く用いられている技術・方法はどれか。
TCPのポート番号を用いて、トランスポート層以上の上位層での中継を行っている。
転送処理をハードウェア化している。
認識するアドレスとして、IPアドレスではなくMACアドレスだけを使うことによって、処理を単純化している。
パケットを固定長にしている。
解答
解説 それぞれの選択肢を順に評価します。

選択肢ア:トランスポート層以上で中継を行うのはゲートウェイです。
選択肢イ:ルータでは、転送をソフトウェアで行っているのに対し、レイヤ3スイッチでは、転送をハードウェアで行っています。
選択肢ウ:レイヤ3スイッチは、3層(ネットワーク層)なのでIPアドレスを使います。
選択肢エ:パケットは可変長です。