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




このページは

ソフ開

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

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

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



問21 パソコンで用いられている規格のATAPIに関する記述として、適切なものはどれか。
パソコンとカード型周辺機器とのインタフェースであり、米国のPCMCIAほかが制定した規格である。
パソコンと磁気ディスク装置を接続するインタフェースを基に、パソコン内蔵型のCD−ROM装置やMO装置を接続できるように拡張した規格である。
パソコンとプリンタとのインタフェースであり、8ビットのデータ信号線と数本の制御信号線からなり、パラレル転送を行う規格である。
パソコンとモデムなどの機器でデータをやり取りするのに用いられ、シリアルインタフェースの規格の一つである。
解答
解説 選択肢のインタフェースを以下にまとめます。

選択肢ア:PCカード
選択肢イ:ATAPI
選択肢ウ:セントロニクス
選択肢エ:RS−232C

問22 接続コードを使用せずに、手元のパソコンから、間仕切りで隔てられた隣のパソコンへ画像ファイルを転送したい。このとき利用できるインタフェースはどれか。
Bluetooth
IEEE1394
IrDA
シリアルATA
解答
解説 IEEE1394とシリアルATAは、有線の規格です。また、IrDAは赤外線を利用した比較的低速な無線の規格です。Bluetoothは2.4GHz帯という免許のいらない周波数帯を利用して近距離での無線通信を行います。

問23 ページング方式の仮想記憶において、ページ置換えの発生頻度が高くなり、システムの処理能力が急激に低下することがある。このような現象を何と呼ぶか。
スラッシング
スワップアウト
フラグメンテーション
ページフォールト
解答
解説 仮想システムにおいて実記憶の容量が十分でない場合、プログラムの多重度を増加させるとシステムのオーバヘッドが増加し、アプリケーションのプロセッサ使用率が減少する状態をスラッシングといいます。

これらの用語はいずれも、よく出題される用語なので以下にまとめます。

スラッシング:スワップアウト(データの退避)とスワップイン(データの書き戻し)ばかりを繰り返して処理が進まないこと。
フラグメンテーション:ファイルが断片化され、HDDの様々な部分に格納され、ファイルを読み出すのに時間がかかること。
ページフォールト:物理メモリに該当のデータがないときに発生する割り込み。

問24 ジョブスケジューリングに関する記述として、適切なものはどれか。
FCFS(First Come First Served)方式は、ジョブの到着順に処理を行うもので、長大なジョブがあってもスループットが高い。
SPT(Shortest Processing Time First)方式は、処理時間の短いジョブの順に処理を行うので、対話型処理の平均応答時間を最小にできる。
デッドラインスケジューリング方式は、目標の時間帯内に処理を完了することを目的に処理の優先度を決定するので、タイマ割込みのオーバヘッドが影響し、時間制約の厳しいリアルタイム処理には向いていない。
優先度順方式は、バッチ処理の優先度を高く設定し、リアルタイム処理の優先度を低くして運用するのが一般的である。
解答
解説 それぞれのスケジューリング方式を以下にまとめます。

FCFS:ジョブを到着順に行う。優先度などは考慮されないので注意が必要。FIFOと同じデータ構造
SPT:処理時間が短いと予想されるジョブを優先的に処理を行う。一方で処理時間が長いジョブはかなり待たされる
デッドラインスケジューリング:時間内に処理が終わるように優先度を決めて処理を行うので、リアルタイム処理に向いている
優先度方式:優先度を元に処理を行うジョブを決定する。リアルタイム処理の優先度を高く、バッチ処理を低くすることでリアルタイムの即答性を保つのが一般的

問25 三つの資源X〜Zを占有して処理を行う四つおnプロセスA〜Dがある。各プロセスは処理の進行に伴い、表中の数値の順に資源を占有し、実行終了時に三つの資源を一括して解放する。プロセスAとデッドロックを起こす可能性のあるプロセスはどれか。

画像(問25)を表示できません
B,C
B,C,D
Bだけ
Cだけ
解答
解説 データ更新中にデータを参照しようとすると、更新が失敗したり正しいデータが参照できなかったりします。よって、更新処理が完了するまで参照を待たせます。これを占有ロックといいます。また、データを読み出す場合に、書き換えられないようにかけるロックを共有ロックといいます。そして、ロックを互いにかけたまま処理が進まなくなる場合もあり、これをデッドロックといいます。デッドロックの例を下に示します。

デッドロックを表示できません

それでは解答を考えます。

まず、プロセスAは、X→Y→Zの順に資源を確保します。
プロセスBは、Z→Y→Xの順に資源を確保するので、プロセスAがXを確保しプロセスBがYを確保するとデッドロックとなります(YとZでも発生する可能性があります)
プロセスCは、Z→X→Yの順に資源を確保するので、プロセスAがXを確保しプロセスBがZを確保すると、プロセスAがYを確保した時点でデッドロックとなります。
プロセスDは、プロセスAと同じ順番に資源を確保するので、デッドロックは発生しません。

プロセスが一括で資源を解放するところに注意してください。

問26 スケジューリング方式をプリエンプティブな処理とノンプリエンプティブな処理に区分するとき、適切に分類されている組合せはどれか。
画像(問26ans)を表示できません
解答
解説 2つのスケジューリング方式を以下にまとめます。

プリンプティブ:OSがCPUへのタスクの割り当てを担当する方式。現在の主流でOSの処理がやや複雑になる
ノンプリエンプティブ:タスクが自発的にCPUの確保・開放を行う方式。負荷が少ないがCPUを正しく開放しないタスクがあると大きな被害を受ける

よって、タイマなどによる割り込みやOSの介入があるようなものはプリエンプティブ。自発的な優先度の決定を行うようなものはノンプリエンプティブになります。

問27 プログラムの実行時に利用される記憶域に、スタック領域とヒープ領域がある。それらの領域に関する記述のうち、適切なものはどれか。
サブルーチンの戻り値アドレスの退避にはスタック領域が、割当ての順序と解放の順序の関係のないデータにはヒープ領域が使用される。
スタック領域には未使用域が存在するが、ヒープ領域には未使用域が存在しない。
ヒープ領域はスタック領域の予備領域なので、スタック領域が一杯になった場合にヒープ領域が動的に使用される。
ヒープ領域もスタック領域と同じプッシュとポップという操作によって、データの格納と取出しを行う。
解答
解説 スタック領域とヒープ領域の使用の違いを下にまとめます。

スタック領域:自動変数、関数の引数や戻り値を格納する
ヒープ領域:プログラム中に動的に確保された値などを格納する

一般的に一時データを使う場所なので、スタック領域の方がヒープ領域よりも高速にアクセスできます。
ヒープ領域はプログラマが自由に確保できる反面、解放を忘れると、使用できない領域となります(メモリリーク)

C言語では、プログラムなどを置く(テキスト領域)、静的変数や外部変数を置く(静的領域)、スタック領域、ヒープ領域の4つから構成されており、スタック領域とヒープ領域は互いに伸び縮みして柔軟に対応しています

問28 UNIXの特殊ファイルのうち、キャラクタスペシャルファイルとブロックスペシャルファイルの例として、適切な組合せはどれか。
画像(問28ans)を表示できません
解答
解説 UNIXの特殊ファイル(スペシャルファイルやデバイスファイルとも呼ばれる)とは、プリンタや周辺機器などをあたかもファイルのようにあつかうインタフェースのことで、主に「/dev」以下に格納されています。

また、キャラクタは1文字ずつ転送するタイプで、端末やプリンタが代表例です。ブロックは複数文字を一度に転送するタイプで、ハードディスクやCD−ROMが代表例です。

問29 関係データベースを扱う3層構造のクライアントサーバシステムの中間層に関する記述として、適切なものはどれか。
データベース管理システムであり、SQLの解釈と実行を行う。
入力データに基づきデータベースに問い合わせて計算や分析処理を行う。
ネットワークの障害監視を行う。
ユーザからのデータの入力と形式チェック、及び計算結果の表示を行う。
解答
解説 一般的なクライアントサーバはサーバとクライアントの2つですが、3層では、「プレゼンテーション層・ファンクション層(アプリケーション層)・データベース層」の3つに分けます。プレゼンテーション層がクライアントに該当する部分で、ファンクション層とデータベース層がサーバに該当する部分になります。

一般的に、プレゼンテーション層がクライアントとのインタフェース。ファンクション層がデータの処理。データベース層がデータベースの提供になります。

選択肢エがプレゼンテーション層。選択肢イがファンクション層。選択肢アがデータベース層の説明になります。

問30 コンピュータシステムの構成の名称とその構成図の組合せのうち、適切なものはどれか。
画像(問30ans)を表示できません
解答
解説 代表的なシステム構成を以下にまとめます。

デュアル構成:同じ処理を行うシステムを二重に用意し、結果を照合すること確認する。どちらかに障害が発生した場合は、縮退運転によって処理を継続する。
デュプレックス構成:現用系と待機系システムを用意し、現用系に障害が発生した場合は、待機系に切り替え処理を続行する。
密結合マルチプロセッサ構成:複数のCPUが、単一のOSで主記憶やデータを共有する形態
疎結合マルチプロセッサ構成:各々のCPUが占有の主記憶、OS、データをもち、バスで接続されている形態
クラスタ構成:複数のコンピュータを接続し、1台の高性能なコンピュータのようにした形態


問31 あるクライアントサーバにおいて、クライアントから要求された1件の検索を処理するために、サーバで平均100万命令が実行される。1件の検索につき、ネットワーク内で転送されるデータは、平均200kバイトである。このサーバの性能は100MIPSであり、ネットワークの転送速度は80Mビット/秒である。このシステムにおいて、1秒間に処理できる検索要求は何件か。ここで、処理できる件数は、サーバとネットワークの処理能力だけで決まるものとする。
50
100
400
800
解答
解説 まず、サーバでの処理時間を計算します。サーバでの命令数は100万で100MIPSで処理をするので、100万/100×100万=0.01となり、1秒間に100件処理できることが分かります。次に、ネットワークの転送速度を計算します。転送データ量は200kバイトで転送速度は、80Mビット/秒=10Mバイト/秒です。つまり、200kバイト/10Mバイトで0.02秒となり、1秒間に50件転送できることになります。サーバでは100件処理できても、転送は50件しかできないので、転送がボルトネックとなり、50件が正解となります。

問32 CPUと磁気ディスク装置で構成されるシステムで、表に示すジョブA,Bを実行する。この二つのジョブが実行を終了するまでのCPUの使用率と磁気ディスク装置の使用率との組合せのうち、適切なものはどれか。ここで、ジョブA,Bはシステムの動作開始時点ではいずれも実行可能状態にあり、この順序で実行される。CPU及び磁気ディスク装置は、ともに一つの要求だけを発生順に処理する。ジョブA,Bとも、CPUの処理を終了した後、磁気ディスク装置の処理を実行する。

画像(問32)を表示できません
画像(問32ans)を表示できません
解答
解説 処理を図示すると以下のようになります。

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

なので、全体で25かかり、CPUは3+12で15、15/25=0.6、HDは7+10で17で、17/25=0.68となります。

問33 システムの単位時間当たりの故障発生数(故障発生率)はどれか。ここで、MTTRはMTBFに比べて十分に小さいものとする。
画像(問33ans)を表示できません
解答
解説 まず、2つの用語をまとめます。
MTBF(Mean Time Between Failure)は平均故障間隔で故障と故障の間の動作していた時間。
MTTR(Mean Time To Repair)は平均故障時間で、実際に故障していた時間。

つまり、MTBFは、稼動していた時間(=故障と故障の間隔)の平均。MTTRは、故障していた時間の平均となります。

そして稼働率はMTBF/(MTBF+BTTR)。故障率は1/MTBFになります

たとえば、MTBFが3時間の場合は故障発生数は1/3となり、3時間に1回の故障があるといえます。

問34 故障発生率が1.0×10-6/秒である機器1,000台が稼動している。200時間経過後に、故障していない機器の平均台数に最も近いものはどれか。

必要であれば、故障発生率をλ回/秒,稼働時間をt秒とする次の指数関数のグラフから値を読み取って、計算に使用してよい。


画像(問34)を表示できません
50
500
950
995
解答
解説 x軸をみると、λtとなっているので、λ(故障発生率)×t(稼働時間)で求められることが分かります。よって、1.0×10-6[λ]×200時間[t]により、0.000001×200×3600=0.72[λt]となります。x軸の0.72のところを上に見ていき関数とぶつかる所を左に見ていくとy軸の0.5のあたりになります。よって、稼働率は0.5となり、1000台の0.5で500台が稼働していると予想できます。

問35 システムに異常が起きた際の対応方法に“フェールセーフ”と“フェールソフト”がある。“フェールソフト”として適切な動作はどれか。
警告を出し、処理実行の判断をオペレータに任せる。
システムのサービスを順次、安全に停止する。
性能が低下しても、処理を継続する。
データや装置を損なうことなく運転を停止する。
解答
解説 重要なシステム設計法についてまとめておきます。

フォールトトレラント:障害時に全体が停止するということなく、動作し続けるようなシステムを設計すること。
フォールトアボイダンス:システムの構成要素の信頼性を高め, 元から故障が極力発生しないように設計すること。
フォールトマスキング:障害が発生したときに、その部分を他の機器から隠蔽したり、自律回復するように設計すること。
フェールセーフ:障害が発生した場合、常に安全側に制御・停止すること。
フェールソフト:障害が発生した場合、故障した個所を切り離すなどして、稼動を続けること。
フールプルーフ:ユーザが誤った操作をした場合、危険に晒されることがないように、事前に安全策を行うこと。

選択肢アは、フールプルーフの説明です。
選択肢イ・エは、フェールセーフの説明です。
選択肢ウは、フェールソフトの説明です。

問36 あるプログラムモジュールが、複数のタスクの要求に応じて同時・並行的に実行可能である場合、この性質を何というか。
再使用可能
再入可能
静的再配置可能
動的再配置可能
解答
解説 プログラムの性質について以下にまとめます。

再入可能(リエントラント):同時、非同期的に呼び出されても互いに干渉せずに動作できる性質
再帰(リカーシブル):自分自身を呼び出すことができる性質
再使用可能(リユーザブル):終わったプログラムを再ロードすることなく、また、使うことができる性質
再配置可能(リロケータブル):メモリ上のどの番地に呼び出されても使用することができる性質

再入可能は、個々のプロセスが独自に値を保有するため、データ部分をプロセスごとに持つ必要あります。

また、静的・動的というのは、プログラムを始める前に準備するものと、プログラム実行中に準備するものという違いがあります。

問37 EJB(Enterprise JavaBeans)の説明として、適切なものはどれか。
Javaでトランザクション管理を行うためのAPIである。
Javaを利用して、動的にHTML文章を作成し、クライアントに送信するための技術である。
サーバで動作するアプリケーションをJavaで構築するためのコンポーネント規約である。
ブラウザからの要求を処理するためにサーバに常駐するJavaプログラムで、スレッドとして実行される。
解答
解説 EJBとは、Beanと呼ばれるJavaの部品化されたプログラムのパーツ(モジュール)を組み合わせて、アプリケーションを開発するための規約をいいます。

選択肢アは、JTA(Java Transaction API)の説明です。
選択肢イは、JSP(Java Server Pages)の説明です。
選択肢エは、Javaサーブレットの説明です。

問38 エキスパートシステムの開発は、一般に進化型のアプローチをとる。これは専門家と同等の知識をあらかじめ準備することが困難だからである。進化型のアプローチはどれか。
システム開発の早い段階で試作品を作成し、機能を確認しながら進める。
システムを幾つかのサブシステムに分割して、それぞれの開発を並行して進める。
定義された要求を順序付けられた幾つかの開発部分に分割して、段階的に開発を行う。
部分的に定義された要求から開発を開始し、後続する幾つかの開発で要求を見直していく。
解答
解説 エキスパートシステムとは、人工知能の応用的な分野で経験則に則った推論を行うシステムです。これらは、問題文にあるとおり専門的な知識の準備が難しいことから進化型アプローチによって、開発されるのが一般的です。

選択肢アは、プロトタイピングの説明です。
選択肢イは、インクリメンタルモデルの説明です。
選択肢ウは、ウォータフォールモデルの説明です。

問39 ソフトウェアの再利用技術のうち、リバースエンジニアリングを説明したものはどれか。
既存のプログラムから、そのプログラムの仕様を導き出す技術である。
既存のプログラムから導き出された仕様を修正して、新規プログラムを開発する技術である。
既存のプログラムを部品化し、それらの部品を組み立てて、新規プログラムを開発する技術である。
クラスライブラリにある既存のクラスを再利用しながら、新規プログラムを開発する技術である。
解答
解説 現在動いているプログラムから、その設計書などを作成する手法をリバースエンジニアリングといいます。市場の製品をリバースエンジニアリングをすることは、一般的には禁止されていることが多いです。リバースエンジニアリングの後、その設計書を元にフォワードエンジニアリングで製品を作成します。

問40 DFDにおけるデータストアの性質として、適切なものはどれか。
最終的には、開発されたシステムの物理ファイルとなる。
データストア自体が、データを作成したり変更したりすることがある。
データストアに入ったデータが出て行くときは、データフロー以外のものを通ることがある。
ほかのデータストアと直接にデータフローで結ばれることはなく、処理が介在する。
解答
解説 DFD(Data Flow Diagram)は、データの源泉・吸収・処理・蓄積などの関係を表現します。以下のような記号を利用します。

DFDを表示できません

データストアとは抽象的なデータの保管場所です。データストア同士が直接結ばれることはなく、かならず何らかの処理が間に入ります。