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




このページは

ソフ開

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

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

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



問21 PDPに採用されている発光方式の説明として、適切なものはどれか。
ガス放電に伴う発光を利用する。
画面の各ドットを薄膜トランジスタで制御し、光の透過率を変化させる。
電圧を加えると発光する有機化合物を用いている。
電子銃から電子ビームを発射し、蛍光体に当てて発光させる。
解答
解説 ディスプレイに関する用語を以下にまとめます。

CRT:いわゆる普通のブラウン管のディスプレイ。電子ビームと偏光版を使って画像を作ります。(選択肢エに相当)
PDP:PはプラズマのPで、高い電力が必要となります。(選択肢アに相当)
TFT:TはトランジスタのTで、1つ1つの画素をトランジスタの発光で実現しています。
有機EL:自らの発光でバックライトの不要なタイプ。次世代に期待されています。(選択肢ウに相当)
液晶:光の透過を画素ごとに制御し、カラーフィルタを用いて色を表現する。自ら発光はしない(選択肢イに相当)

問22 グリッドコンピューティングを説明したものはどれか。
OSを実行するプロセッサ、アプリケーションを実行するプロセッサというように、それぞれの役割が決定されている複数のプロセッサによって処理を分散する方式である。
PCから大型コンピュータまで、ネットワーク上にある複数のプロセッサに処理を分散する方式である。
カーネルプロセスとユーザプロセスとの区別がなく、複数のプロセッサが基本的に同等なものとして振舞うことができる処理方式である。
プロセッサ上でスレッド(プログラムの実行単位)レベルの並列化を実現し、プロセッサの利用効率を高める方式である。
解答
解説 選択肢の並列・分散技術を以下にまとめます。

選択肢ア:マルチプロセッサの説明です。
選択肢イ:グリッドコンピューティング
選択肢ウ:マルチプロセッサの説明です。
選択肢エ:マルチスレッドの説明です。

問23 TSSのタイムクウォンタムを短くした場合、OSとアプリケーションのCPUの使用割合とアプリケーション処理の即時性はどうなるか。
画像(問23ans)を表示できません
解答
解説 TSS(Time Sharing System)やラウンドロビン方式では、CPUの使用時間を短く区切って少しずつ資源に割り当てます。この使用時間のことをタイムクォンタムといいます。タイムクォンタムを短くすると、アプリケーションの割込みの機会が増え即時性はあがりますが、切り替え(OSの処理)が多くなるので、アプリケーションの処理時間が短くなってしまいます。

問24 OSにおけるシェルの役割に関する記述として、適切なものはどれか。
アプリケーションでメニューからコマンドを選択したり、設定画面で項目などを選択したりするといったマウス操作を、キーボードの操作で代行する。
複数の利用者が共有資源を同時にアクセスする場合に、セキュリティ管理や相互排除(排他制御)を効率的に行う。
よく使用するファイルやディレクトリへの参照情報を保持し、利用者が実際のパスを知らなくても利用できるようにする。
利用者が入力したコマンドを解釈し、対応する機能を実行するようにOSに指示する。
解答
解説 シェルとは、Windowsならコマンドプロンプト、MacやLinuxならターミナルや端末と呼ばれるものから行うもので、CUI環境からコマンドで処理を入力するものです。また、これらをプログラムのようにしたものをシェルスクリプトと言います。

選択肢アは、GUI環境の説明です。
選択肢イは、セマフォの説明です。
選択肢ウは、リンクやショートカットの説明です。

問25 五つのジョブA〜Eに対して、ジョブの多重度が1で、処理時間順方式のスケジューリングを適用した場合、ジョブBのターンアラウンドタイムは何秒か。ここで、OSのオーバヘッドは考慮しないものとする。

画像(問25)を表示できません
10
11
解答
解説 まず、0秒ではジョブAしかないので、ジョブAが2秒間実行されます。2秒後にはジョブBとジョブCが到着していますが、処理時間が短いジョブCが3秒間実行されます。開始から5秒後にすB,D,Eのタスクがありますが、E,D,Bの順に処理時間が短いので、この順番で行われます。

つまり、Bは一番最後に実行されるため、2+4+3+2+1=12秒後に終了します。ジョブBは1秒後に到着するので12−1で11秒がジョブBのターンアラウンドタイムとなります。

問26 三つの媒体A〜Cに次の条件でファイル領域を割り当てた場合、割り当てた領域の総量が大きい順に媒体を並べたものはどれか。

[条件]
(1) ファイル領域割当てにおける媒体選択アルゴリズムとして、空き領域が最大の媒体を選択する方式を採用する。
(2) 要求させる割当てファイル領域の大きさは、順に90、30、40、40、70、30(Mバイト)であり、割り当てられた領域は、途中で解放されない。
(3) 各媒体は容量が同一であり、割当て要求に対して十分な大きさをもち、初めはすべて空きの状態である。
(4) 空き領域の大きさが等しい場合には、A、B、Cの順に選択する。
A,B,C
A,C,B
B,A,C
C,B,A
解答
解説 順番に計算してきます。

@A=90、B=0、C=0
AA=90、B=30、C=0
BA=90、B=30、C=40
CA=90、B=70、C=40
DA=90、B=70、C=110
EA=90、B=100、C=110

よって、割り当てた容量はC、B、Aの順番で大きいといえます。

問27 タスクが実行状態(RUN)、実行可能状態(READY)、待ち状態(WAIT)の三つの状態で管理されるリアルタイムOSにおいて、三つのタスクA〜Cの状態がプリエンプティブなスケジューリングによって、図に示すとおりに遷移した。各タスクの優先度の関係のうち、適切なものはどれか。ここで、優先度の関係は、“高い>低い”で示す。

画像(問27)を表示できません
タスクA > タスクB > タスクC
タスクB > タスクA > タスクC
タスクB > タスクC > タスクA
タスクC > タスクB > タスクA
解答
解説 まず、タスクの3状態について以下にまとめます。

タスクの状態を表示できません

タスクBがRUNでタスクCがREADYの状態があるので、タスクB>タスクCになります。
タスクAがREADYでタスクBがRUNの状態があるので、タスクB>タスクAになります。
タスクAがREADYでタスクCがRUNの状態があるので、タスクC>タスクAになります。

これらをまとめると、タスクB>タスクC>タスクAになります。

問28 ディレクトリ構造をもったファイルシステムのパス指定に関する記述のうち、適切なものはどれか。
親ディレクトリと子ディレクトリの間では、親から子へ、子から親への両方向の参照が可能である。
カレントディレクトリがルートディレクトリである場合、どのディレクトリやファイルに対しても、相対パスと絶対パス指定は同じ表記になる。
子ディレクトリから親ディレクトリを指定する場合には、カレントディレクトリを基点とした絶対パス指定を用いる。
相対パス指定では、ルートディレクトリから目的のファイルへのパスを指定するので、カレントディレクトリに関係なく同じ表記になる。
解答
解説 まず、絶対パスと相対パスについてまとめます。

絶対パス:ルートディレクトリから対象のディレクトリまでを表したもの
相対パス:カレントディレクトリ(現在操作中のディレクトリ)から対象のディレクトリまでのパスを表したもの

選択肢ア:親への参照は、相対パスの『..』によって行えます。
選択肢イ:ルートの直下のfileへはのアクセスは、絶対アドレスでは『/file』、相対アドレスでは『file』となります。
選択肢ウ:親ディレクトリのしては、相対パス指定を用います。
選択肢エ:絶対パス指定の説明です。

問29 クライアントサーバにおいて、各クライアントから直接データベースサーバへ接続するアーキテクチャはどれか。
2層
2層と3層
3層
4層
解答
解説 2層と3層のクライアントの違いを以下にまとめます。

2層:サーバ(サービスを供給)とクライアント(サービスを依頼)
3層:プレゼンテーション層(ユーザインタフェース)、ファンクション層(データの加工)、データ層(データベースへのアクセス)

よって、サーバへ直接アクセスするのは2層構成の場合となります。

問30 NASを利用すると達成できるものはどれか。
サーバごとに専用の磁気ディスクを接続しているシステムで、各磁気ディスクに発生している空き領域をシステム全体で有効に利用する。
磁気ディスクに障害が発生しても、自動的に予備の磁気ディスクを起動してパリティ情報からデータを復元し、処理を継続する。
磁気ディスクのファイル領域の断片化によるヘッドの移動量の増大から、読み書きの速度の低下や、故障を誘発しやすくなっているので、断片化を解消する。
データベースをアクセスするのに、修得に時間がかかるSQLを使わず、身近な表計算ソフトを操作する感覚でアクセスする。
解答
解説 NAS(ネットワーク接続ストレージ)とは、ネットワークに直接接続して利用するファイルサーバをいいます。NASはファイル単位でアクセス権などを設定できます。このサーバにRAIDなどの機能を付加することで、保守性や利便性を向上させることができます。ただし、ファイルの改ざんには別の機能を必要とします。

問31 多数のクライアントが、LANに接続された1台のプリンタを共同利用するときの印刷要求から印刷完了までの所要時間を、待ち行列理論を適用して見積もる場合について考える。プリンタの運用方法や利用状況に関する記述のうち、M/M/1の待ち行列モデルの条件に反しないものはどれか。
一部のクライアントは、プリンタの空き具合を見ながら印刷要求する。
印刷の緊急性や印刷量の多少に関わらず、先着順に印刷する。
印刷待ちの文章データがプリンタのバッファサイズを越えるときは、一時的に受付を中断する。
一つの印刷要求にかかる時間は、印刷の準備に要する一定時間と、印刷量に比例する時間の合計である。
解答
解説 M/M/1モデルの最初のMはサービスを受けるものの到着頻度はポアソン分布に従うという意味で、次のMはサービス時間は指数分布に従うという意味で、最後の1は窓口の個数を表しています。図にすると以下のようになります。

MM1モデルを表示できません

なお、待ち行列には行列の長さは無限(サービスを受けに来たものはあふれない)という仮定があります。

選択肢ア:印刷要求はポアソン分布に従います。
選択肢イ:印刷は到着順に行います。(正解)
選択肢ウ:行列の長さは無限なので、中断はしません。
選択肢エ:所要時間は待ち時間とサービス時間の和となります。

問32 あるオンラインリアルタイムシステムでは、20件/秒の頻度でトランザクションが発生する。このトランザクションはCPU処理と4回の磁気ディスク入出力処理を経て終了する。磁気ディスク装置の入出力処理時間は40ミリ秒/回であり、CPU処理時間は十分に短いものとする。それぞれの磁気ディスク装置が均等にアクセスされるとしたとき、このトランザクション処理には最低何台の磁気ディスク装置が必要か。
解答
解説 20件×4回×40ミリ秒=3200ミリ秒=3.2秒。これが1秒間に処理しなければならないので、4台の磁気ディスクが必要であると考えられます。

問33 シミュレーションを用いたコンピュータシステムの性能評価に関する記述のうち、適切なものはどれか。
計算精度は発生させたイベント数にほぼ比例して高くなるので、可能な限り計算時間を長くするべきである。
計算精度を保ち、かつ計算時間を過大にしないために、知りたい性能項目に直接関係のないイベントの処理は簡略化してモデル化すべきである。
現在までに判明しているイベントしかモデルに組み込めないので、将来の予測には適用を避けるべきである。
乱数は再現性がなく、精度のばらつきが起こるので、乱数を契機としたイベントの発生は極力避けるべきである。
解答
解説 シミュレーションとは、物理現象等を抽象化・定式化してコンピュータ上で再現する模擬実験のことをいいます。

選択肢ア:イベント数を増やすと一般的には精度が上がることが多いですが、比例関係とは限りません。
選択肢イ:シミュレーションは膨大な量を長時間計算することが多いので、適度に簡略化して適切な時間と精度を確保できるようにします。
選択肢ウ:不明なイベントであっても、予想可能であればモデル化し組み込むことができます。
選択肢エ:シミュレーションでは統計に基づいた乱数などが良く利用されます。

問34 MTBFが1,500時間、MTTRが500時間であるコンピュータシステムの稼働率を1.25倍に向上させたい。MTTRを何時間にすればよいか。
100
125
250
375
解答
解説 まず、現在の稼働率を計算します。

稼働率=MTBF/(MTBF+MTTR)=1500/2000=0.75

これを1.25倍するので、0.75×1.25=0.9375

つまり、0.9375=1500/(1500+α)のαについて求めます。
(1500+α)×0.9375=1500
→ 1406.25+0.9375α=1500
→ 0.9375α=93.75
→ α=100
ということえ、MTTR=α=100にすれば、稼働率を1.25倍にすることができます。

うまく求められない場合には、選択肢を1つずつ代入して答えを探すのもいいと思います。

問35 図の回線網における福岡・東京間の回線の稼働率はおよそ幾らか。ここで、隣接するノード間の稼働率は、すべて0.9とする。

画像(問35)を表示できません
0.81
0.88
0.89
0.98
解答
解説 まず、大阪−東京間から求めます。
名古屋を経由しない場合は、0.9となり、名古屋を経由する場合は0.9×0.9=0.81となります。大阪−東京の全体の稼働率はこの2本の並列なので、1−(1−0,9)×(1−0.81)=1−0.1×0.19=1−0.019=0.981

次に、全体の稼働率を求めます。福岡−大阪間は0.9で、大阪−東京間は0.981です。全体はこれの直列なので、0.9×0.981=なので、全体としては、0.8829ということで、最も近い0.88が正解となります。

問36 コンパイラによる最適化において、オブジェクトコードの所要記憶容量が削減できるものはどれか。
関数のインライン展開
定数の畳込み
ループ内不変式の移動
ループのアンローリング
解答
解説 それぞれの用語を以下にまとめます。

関数のインライン展開:関数の呼び出し部分を、その場に展開する
例:
func1(){
 print(1+1);
 func2();

func2(){
 print(2+2);

という二つの関数があるときに、func1からfunc2に呼び出すのではなく、func2の内容をfunc1にそのまま展開する。
func1(){
 print(1+1);
 print(2+2);

ジャンプがなくなるので、高速化にはなりますが、オブジェクトファイルのサイズは大きくなります。



定数の畳み込み:定数や値の変わらない変数などを先に計算しておき、高速化する
例:
a=10*20+30
という式がある場合に、右式を計算してしまう。
a=230
これにより、計算時間と変数領域を減らし、オブジェクトサイズを減らすことができます。



ループ内不変式の移動:ループのないで値が変わらないようなものをループの外へ出す。
例:
n=1
while(n<3){
a=10+20;
n=n+1;

このとき、aは同じ値にも係らず何度も計算されるのので、ループの外へ出す。
n=1
a=10+20;
while(n<3){
n=n+1;

これにより、計算速度が向上しますが、オブジェクトサイズは変わりません。



ループのアンロール:ループを展開し、順次処理にする
例:
n=0
while(n<3){
a[n]=b[n]+1

という場合に、
a[0]=b[0]+1
a[1]=b[1]+1
a[2]=b[2]+1
のような順次処理に展開する。これにより条件の評価とジャンプを消すことができるが、オブジェクトサイズは増える

問37 Javaの特徴に関する説明として、適切なものはどれか。
オブジェクト指向言語であり、複数のスーパクラスを指定する多重継承が可能である。
整数や文字などの基本データ型をクラスとして扱うことができる。
ポインタ型があるので、メモリ上のアドレスを直接参照できる。
メモリ管理のためのガーベジコレクションの機能がある。
解答
解説 Javaとはオブジェクト指向言語の一種で、ブラウザ上で動作するJAVAアプレットや、サーバ上で動作するものをサーブレットなど様々な形態のプログラムを記述することができます。また、Javaのコンパイラはバイトコードと呼ばれる中間言語に出力し、それを解釈する仮想マシンというものがあれば、どのようなOSでも動作するという特徴があります。さらに、動的メモリの自動開放(ガーベジコレクション)も標準的に備わっています。

選択肢ア:多重継承は禁止されています。
選択肢イ:基本データ型(プリミティブ型)に関しては、C言語などと同じように利用できます。
選択肢ウ:ポインタ型は存在しません。

問38 CASEツールが提供する機能のうち、上流CASEツールに属するものはどれか。
DFDの作成支援
テストデータの作成支援
プログラムのコードの自動生成
ライブラリの管理支援
解答
解説 CASE(Computer Aided Software Engineering:コンピュータ支援ソフトウェア工学)とは、ソフトウェア開発を支援するツールで、解析ツール、設計ツール・コンパイラ・テストツールなどから構成されます。

要求定義から内部設計程度までを上流。プログラミング設計、プログラミングあたりを下流。テスト、保守の4つから構成されます。(場合によっては、2つや3つにまとめる場合もあります)

選択肢の中で最も上流にあるのは、要求定義を支援するDFDの作成支援なので、上流CASEツールに属するといえます。

問39 ソフトウェア開発モデルの説明のうち、適切なものはどれか。
ウォータフォールモデルは、開発を上流から下流に一方向に進めるモデルであり、開発効率を高めるには、各工程内でのレビューやテストによって品質を確保し、前の工程への逆戻りが起こらないようにする。
スパイラルモデルは、ウォータフォールモデルのプロセスを繰り返し、機能を段階的に提供していくモデルで、インクリメンタルプロセスモデルともいう。
成長型プロセスモデルは、一連の開発工程を何回も繰り返しながら開発機能を規模を拡大し、開発コストの増加などのリスクを最小にしつつシステム開発を行うプロセスモデルである。
プロトタイピングモデルは、ドキュメントによる要求仕様の確認の困難さを解消するために、ウォータフォールモデルの工程ごとにプロトタイプを作成し、仕様を確認していくモデルである。
解答
解説 ソフトウェアを作るための開発手段にはいくつかの種類があり、代表的な4つの手法を以下にまとめます。

ウォータフォールモデル:前工程の成果物が確実であるとみなして、工程の後退をせずにその名の通り水が上から下へ流れる滝のように、順序に開発を進めます。しかし実際には、前の工程で不備が見つかることが多く、古典的であるといわれます。

スパイラルモデル:要求定義から実際に実装までを繰り返しながら開発を進めます。ウォータフォールモデルとプロトタイピングモデルの中間のような感じで、大規模システム開発に向いています。

プロトタイピングモデル:プロトタイプ(試作品)を作って、実際にどんなものかをクライアントに確認を取りながら開発を進めるため、クライアントと開発部の認識の誤差を少なくできます。

インクリメンタルモデル(成長型モデル):システムを独立したサブシステムに分割し、そのサブシステムに対してウォータフォールのプロセスを繰り返す。、

問40 UMLで用いる図のうち、オブジェクト間で送受信するメッセージによる相互作用が表せるものはどれか。
コンポーネント図
シーケンス図
ステートチャート図
ユースケース図
解答
解説 UML(Unified Modeling Language)は統一モデリング言語とよばれ、オブジェクトモデルを表すのに用いられるものです。4つの図を以下にまとめます。

コンポーネント図:コンポーネント(構成要素)の内容とその間のインタフェースを記述するもの。
シーケンス図:オブジェクト間のデータのやり取りを記述するもの。
ステートチャート図:オブジェクトが生成された、動作し、消滅するまでを記述するもの。
ユースケース図:アクタ(利用者)とアクタの操作(ユースケース)を記述するもの。

ほかにも、以下のようなものが代表的なUMLがあります。
オブジェクト図:クラス間の継承関係などを記述するもの。
クラス図:クラス間の静的な構造図を表すのに使われ、クラス名、変数、メソッドを記述するもの。