平成19年度春期 シスアド 問21−40 解答編





このページは

シスアド

(初級システムアドミニストレータ試験)

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

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


問21 次のIMGタグは、ファイルinde.html中の記述である。また、ディレクトリの構造は図に示すとおりである。このタグの記述によってgazou.gifを表示するとき、aに入れる適切な字句はどれか。ここで、四角で囲んだuser、public_html、sozai、s1、s2はディレクトリ名である。

画像(問21)を表示できません
./s2/gazou.gif
../gazou.gif
../sozai/s2/gazou.gif
sozai/s2/gazou.gif
解答
解説 相対パスに関する問題です。このようなものはHTMLなどのマークアップ言語を使う場合や、CUIなどを含む様々なところで必要になります。必要なファイルはsozaiフォルダの下にあるわけですが、これを指定する場合、sozaiから指定するだけで大丈夫です。CUIに慣れている人は、../が必要だと考えた人もいるかもしれませんが、index.htmlはファイルであって、カレントディレクトリではありません。

補足的ですが、index.htmlがフォルダだった場合(カレントディレクトリ)にgazou.gifへたどり着くためには、../sozai/s2/gazou.gifで正しいです。

問22 HTMLとXMLの特徴を比較した記述のうち、適切なものはどれか。
HTMLでは属性値をすべて二重引用符(”)又は一重引用符(’)で囲む必要があれば、XMLではその必要はない。
HTMLではユーザが独自に要素を定義できるが、XMLでは言語仕様で決められた要素だけが有効である。
HTMLでは要素によって終了タグを省略できるが、XMLでは開始タグと終了タグで内容を囲むか、空要素の形式で記述する必要がある。
HTMLでは要素名の大文字と小文字を区別するが、XMLでは区別しない。
解答
解説 マークアップ言語でHTMLとXMLとSGMLは頻繁に出題されるので、きちんと整理しておく必要があります。XMLの特徴は大きく2つあります。1つは終了タグを省略できないということです。HTMLでは改行を『br』と表しますが、XMLでは『br/』と表します。改行に開始も終了もありませんので、終了だけを定義します。2つめは、ユーザ独自の要素を定義できるということです。ちょうど、選択肢イのHTMLとXMLを逆にした感じです。なお、HTMLは大文字と小文字の区別をしませんが(BRもbrも同じ)、XMLは大文字と小文字をきちんと区別します。(基本的にプログラム言語などでは大文字と小文字を分けて処理を行います。)

問23 ファイルの中のレコードを1レコードずつ印字するソフトウェアがある。このソフトウェアは、レコードを印字する直前にマクロ記述を呼び出して実行する。次のマクロ記述を使って印字したものはどれか。ここで、ファイルの1レコードは1行(XXXX XXXX XXXXで表示)に印字する。

[マクロ仕様]
(1) マクロ記述は、記述した順番で実行される。
(2) マクロ記述の中で変数を定義できる。初期値は0である。変数は、すべてのレコードを印字し終わるまで、その内容を保持する。
(3) マクロ記述の中で条件を指定する。条件は”条件”欄に記述し、条件が真の場合には、”動作”欄の動作を実行する。レコードの印字の間に”線引き”ができる。”線引き”は、線(―で表示)を印字する。

[マクロ記述]
順序条件動作コメント
i ← i + 1変数iに1を加える
i = 3線引き変数iが3なら、線を印字する。
i = 3i ← 1変数iが3なら、iの値を1にする。
画像(問23ans)を表示できません
解答
解説 こういった問題は極端に問題が長くない限り、地道にトレース(プログラムを追跡)していくのがいいでしょう。

1回目:i=0→1 → 線を引かない → iをそのまま → @Xを印字する
2回目:i=1→2 → 線を引かない → iをそのまま → AXを印字する
3回目:i=2→3 → B線を引く → i=1 → CXを印字する
4回目:i=1→2 → 線を引かない → iをそのまま → DXを印字する
5回目:i=2→3 → E線を引く → i=1 → FXを印字する
6回目:i=1→2 → 線を引かない → iをそのまま → GXを印字する
7回目:i=2→3 → H線を引く → i=1 → IXを印字する

Xの印字はそれぞれの最後に行われるので、線を引いた場合は、Xを印字しないというわけではないので注意してください。


問24 Java Servletの説明として、適切なものはどれか。
Javaで開発されたプログラムであり、クライアントの要求に応じてWebアプリケーションサーバ上で実行される。
Javaで開発されたプログラムであり、サーバからダウンロードして実行される。
Javaで開発されたプログラムをアプリケーションの部品として取り扱うための規約である。
Javaで開発されたプログラムを実行するインタプリタであり、バイトコードと呼ばれる中間コードを実行する機能をもつ。
解答
解説 javaはオブジェクト指向とよばれるプログラム言語で、現在最も広い分野で活躍している言語の1つであるといえます。そのため、javaに関する細かな用語がたくさんあります。今回は、その代表格のjavaServletに関するものですが、これはアプリケーションをサーバー上で実行するもので、逆に選択肢イのようにいったんクライアントにダウンロードしてから実行されるのをJavaAppletといいます。このほか、選択肢ウのJavaBeans。選択肢エの仮想マシン(これにより、異なるOSやアーキテクチャでもプログラムを実行可能)などを押さえておいた方がいいでしょう

問25 ある会社では、集客のために月に6回の説明会を実施している。表計算ソフトを使って1月の動員数を管理するために、セルA1〜D8に示す表を作成した。次に2月の動員数を管理するために、セルA2〜D8をセルF2〜I8に複写した後、セルI3を修正した。セルI3に入力した計算式として、適切なものはどれか。ここで、3月の管理に用いる表を2月の表から複写するときには、セルの計算式は変更したないで済むようにする。

画像(問25)を表示できません
C8+D8
C8+H3
D8+G3
D8+G8+H3
解答
解説 まず、E列は境界を作るための空白用です。実際には書いてありませんが、F2が説明会。G2が動員数、H2が月間累積。I2が年間累積だと予想されます。月間累積に関しては、コピーするだけで十分ですが、年間累積はこのままでは、2月分だけの累積になってしまいます。そこで、1月の総計(つまり、D8)を加える必要があります。よって答えは、1月の累積に動員数を足したものにする必要があります。2月の2回目からは年間の前の値を利用するので変更しなくても大丈夫です。

問26 外部設計及び内部設計の説明のうち、適切なものはどれか。
外部設計ではシステムを幾つかのプログラムに分割し、内部設計ではプログラムごとのDFDを作成する。
外部設計では、データ項目を洗い出して論理データ構造を決定し、内部設計では物理データ構造、データの処理方式やチェック方式などを決定する。
外部設計と内部設計の遂行順序は、基本計画におけるユーザの要求に基づいて決定される。
外部設計はコンピュータ側から見たシステム設計であり、内部設計はユーザ側から見たシステム設計である。
解答
解説 システム導入に関して、この2つは基本的に、(基本計画 →)外部設計 → 内部設計( → プログラム設計 → プログラミング → テスト → 運用・保守)の順に行われます。外部設計とは、ユーザ側からみたどんな機能やインタフェースを準備したらよいかを設計します。一方内部設計は、外部設計をもとにコンピュータ側からみて、どのようにデータ構造などを作ると、外部設計を満たせるかを設計します。その後、プログラミング設計などを経て実際にプログラミングを行います。

問27 要求分析から実装までの開発プロセスを繰り返しながら、システムを構築していくソフトウェア開発手法はどれか。
ウォータフォールモデル
スパイラルモデル
プロトタイピングモデル
リレーショナルモデル
解答
解説 ソフトウェアを作るための開発手段にはいくつかの種類があり、ウォータフォールモデル、スパイラルモデル、プロトタイピングモデルはその中でも最も代表的な3つです。リレーショナルモデルとは、関係データベースを作成するものでソフトウェア開発とは、少し異なります。3つの特徴を下にまとめます。

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

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

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

問28 E−R図に関する記述として、適切なものはどれか。
オブジェクト指向モデルを表現する図である。
時間や行動などに応じて、状態が変化する状況を表現する図である。
対象とする世界を実体と関連の二つの概念で表現する図である。
データの流れを視覚的に分かりやすく表現する図である。
解答
解説 EーR図(Entity Relation Diagram)は実体と実体間の関連を表します。例えば、教授(実体)・生徒(実体)・受講(実体間の関連)のようなものに分類します。また、関係も1対1、1対多、多対多など色々あり、応用範囲も広いのできちんと覚えておいた方がいいです。

問29 入力データのチェック方式の一つであるリミットチェックの説明はどれか。
データがある範囲にあるかどうかを検査する。
データが一定の順序であるかどうかを検査する。
データが論理的に正しいかどうかを検査する。
データのコードと表中に登録されたコードを照合する。
解答
解説 リミットは限界という意味です(タイムリミットなどと同じリミットです)。よって、限界の中=データ範囲内にあるかどうかを判定する検査です。

問30 入力画面の設計方針のうち、最も適切なものはどれか。
誤った入力に対して、誤りの理由とその後の処理ができない旨のエラーメッセージを表示し、プログラムの処理を終了するようにする。
画面上に説明が多いと煩雑に感じるので、説明が必要な入力項目についてはヘルプ機能を用意し、画面は簡素にする。
入力項目は、入力原票のレイアウトにかかわらず、プログラムでの処理順に並べ替え、上から下、左から右に配置する。
入力データの登録・更新や中断などの操作はユーザがよく利用して習熟しているので、入力の確認を省略し、操作性を向上するようにする。
解答
解説 入力画面の設計は、見やすさ(レイアウト)と使いやすさ(利便性)、入力時の確認(誤動作の回避)などに注意する必要があります。しかし、現実的には、自分が使ってみてこのシステムが使いやすいかどうかという常識的な判断で十分解答可能だと考えられます。1度のエラーでプログラムが強制終了したり、レイアウトがまったく違ったり、エラーの確認がなかったりすると、使いにくいと感じるのが普通だと思います。補足ではありますが、人間はミスをする・記憶に限界がある、習熟度に差があるなどを十分に考慮した設計が必要になります。

問31 GUI画面の設計において、キーボードの操作に慣れているユーザと、慣れていないユーザのどちらにも、操作効率の良いユーザインタフェースを実現するための留意点のうち、最も適切なものはどれか。
キーボードから入力される項目を最小にして、できる限り一覧からマウスで選択させるようにする。
使用頻度の高い操作に対しては、マウスとキーボードの両方のインタフェースを用意する。
使用頻度の高い操作は、マウスをダブルクリックして実行できるようにする。
入力原票の形式にとらわれずに、必須項目など重要なものは1か所に集めて配置し、入力漏れがないようにする。
解答
解説 GUI(Graphical User Interface)は普段使っているアイコンのようなグラフィックとマウス等が使える動作環境です(一方、コマンドだけで行う環境をCUIと言います)。Windowsでファイルを上書き保存するとき、慣れている人は『Ctrol + S』等を使うでしょう。それ以外の人は『ファイル → 上書き保存をクリック』等を使うでしょう。このように、慣れている人には、時間や操作を省略するコマンドやショートカットのようなものがあると便利だといえます。問題文のマウスは、慣れていないユーザ用のGUI。キーボードは慣れているユーザ用のショートカットキーのようなものだと推察できます。

問32 ボトムアップテストにおいて、被テストモジュールの上位モジュールの機能を代行するものはどれか。
シミュレータ
スタブ
デバッガ
ドライバ
解答
解説 ポトムアップテストは、結合テストの一種で。単体テストが終了した後に行います。ポトムアップテストとトップダウンテストは重要なので、下にまとめます。

ポトムアップ:下から順に上に向かって行うテストで、上にはドライバという代行用のモジュールを使います。
トップダウン:上から順に下に向かって行うテストで、下にはスタブという代行用のモジュールを使います。

ポトム=底。トップ=頂上という意味が分かれば、どんなテストかはすぐに分かると思います。このほかにも、2つを同時に行うサンドイッチテスト。全部を同時に行うビックバンテストがありますが、ビックバンテストは、全部が一気に終わる分、エラーが出た場合にどこが原因かわからないという欠点があります。

シュミレータは、実際に行う前に仮想的に試してみるための環境のことで、デバッガはプログラムのバグを探し出すソフトウェアのことです。


問33 既存のシステムのある機能を修正し、テストしてから本稼働したところ、今まで正常に動作していた機能を実行するとエラーが発生するようになった。不十分であったと考えられるテストはどれか。
システムに障害が発生した際に、データベースの値などを回復する機能が正しく動作することを確認するテスト
システムに量的な負荷をかけても業務に支障がないことを確認するテスト
システムの修正によって、ほかの正常だった部分に悪影響が生じていないことを確認するテスト
システムの本稼働前に、エンドユーザが運用して確認するテスト
解答
解説 不十分だったのは、レグレッションテスト(退行テスト)と呼ばれるものです。いままで、正常に動作していたにも関わらず機能を追加・修正・削除などの変化を加えたところ、新しく作った部分は正しく動作するにもかかわらず、その影響が以前まで正しく動作していた所に出てしまい、エラーになってしまうことです。このレグレッションテストは、シスアドの問題の中でもかなり出題率が高いので、しっかり覚えておくと良いでしょう

問34 データ構造の特徴のうち、適切なものはどれか。
配列は、添字によってデータを任意の順序で読み出すことができる。
配列を用いることによって、データ構造とアルゴリズムを独立させることができる。
リストは、添字によってデータの検索や更新ができる。
リストは、データの挿入や削除のときに既存のデータを移動する必要がある。
解答
解説 データ構造とは、データをどんなふうに管理するかというものです。ある意味で表というのも一種のデータ構造と言えるかもしれません。配列やリストはプログラミング経験がない方には少し馴染みがないかもしれませんが、配列とリストの概略を下に示します。

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

※特定のプログラム言語(C言語等)では添え字は0から始ります。

問35 図のアローダイアグラムでシステム開発プロジェクトの工程計画を作成した。作業Eの最遅開始日は何日目か。ここで、プロジェクトの開始日は0とする。

画像(問35)を表示できません
26
38
39
45
解答
解説 まず、このプロジェクトの完了日数を計算します。ダミーの作業というのは作業日数0日の実線だと考えると分かりやすいです。クリティカルパスは(A → C → H → G)となり、75日となります。最遅開始日とは後ろから、逆算していきながら計算します。ここで注意するのは、Iが始まるのよりもJ+ダミーの方が時間がかかり、最遅開始日はIが始まる前に45日になっている必要があり、そこからE(=6日)を引いて39日が答えになります。

問36 システム変更に際して、保有する3,000本のプログラムのうちで修正対象となるプログラムは全体の30%であることが分かった。修正に必要な工数は何人月になるか。ここで、1日1人のプログラマが修正できるプログラム本数は0.25本とする。プログラマは1か月当たり20日間作業するものとする。
11.25
180
225
600
解答
解説 一つ一つ冷静に計算していけば、簡単に解けます。まず、修正対象は3000×0.3は900本。1人が1か月に処理できるのは0.25×20=5本。900/5で180人月かかります。

問37 システム運用をアウトソーシングする利点として、適切なものはどれか。
いつでも元のように自社の運用に戻すことができる。
自社の情報システム部門を企画や開発などの業務に専念させることができる。
情報システムの問題点の把握が容易になる。
トラブルに対して自社で対応しやすくなる。
解答
解説 アウトソーシングとは外部委託のことで、事業や業務の一部を外部の業者に委託します。よって、委託した部分に関しては部門の負荷はなくなるので、業務を専念させることができるといえます。外部委託なので、場合によっては経済的な負担が大きくなるかもしれません。

問38 オンラインシステムの性能監視における注意事項のうち、適切なものはどれか。
OSやネットワークなどの複数の測定項目を定常的に監視する。
オンライン時間帯に性能を測定することはサービスレベルの低下につながるので、測定はオフライン時間帯に行う。
性能データのうちの一定期間内の最大値だけに着目し、管理の限界を逸脱しているかどうかを確認する。
性能を測定する間隔は短いほど良い。
解答
解説 オンラインシステムの性能はもちろん稼働中でなければ測れず、オフラインでは意味がありません。性能は定期的に複数の項目をチェックするのが良いといえます。測定間隔についてですが、短ければ短いほど良いというわけではなく性能の監視に十分な効果をもたらす間隔で行うのが適切で、監視ばかりをしていてそれ自体が負担になるのも適切とは言えません。

問39 情報システム部門が構築した基幹業務システムのクライアントアプリケーションが、エラーメッセージを画面に表示して停止した。このような事態に対する利用者の行動として、最も適切なものはどれか。
PCを再起動し、障害が発生したことを情報システム部門へ連絡する。
エラーメッセージを基に、自分で解決を図る。
画面に表示されたエラーメッセージをユーザマニュアルで確認し、自分で対応できる障害か、情報システム部門へ依頼すべき障害かを判断する。
このシステムのクライアントとしてPCを使っている人たちに障害が発生したことを連絡し、実行中に処理を中断してもらう。
解答
解説 一般的にエラーが発生した場合、そのエラーをマニュアル等で確認しどんなエラーかを把握したのち、どうするかを決めます。いままでに解決したことがあり、間違いなく改善できるようなエラーであれば、選択肢イのように自分で解決を図っても問題ありませんが、一般的ではありません。また、エラーを発生しさせたことを叱責されることを恐れ、PCを再起動させたり、自力で解決しようとする場合がありますが、事態を深刻化させてしまうこともありますし、何よりエラーの原因を情報システム部門に伝えることは非常に重要です。

問40 本稼働前に、システムが正常に稼働するかどうかを確認するために、ユーザ部門と情報システム部門が合同で運用テストを実施することになった。ユーザ部門が優先して確認するべき事項はどれか。
オンライン処理、バッチ処理などが、運用手順どおりに稼働すること
決められた業務手順どおりに、システムが稼働すること
すべてのアプリケーションプログラムが仕様書どおりに機能すること
目標どおりにパフォーマンスが得られること
解答
解説 ユーザ部門の視点ということは、どんな風に出来ているかではなく、希望する通りに動作するかというものを重要視して確認します。つまり、業務手順どおりにシステムが稼働するかが重要です。残りの3つは、情報システム部門がチェックします。情報システム部門はきちんとプログラムどおりに出来ているか等、プログラムや設計的な方のチェックを担当します。