ObjectSquare [1999 年 11 月号]

[オブジェクト指向と情報処理試験 -1999年 秋-]


こんにちは、皆さんは情報処理試験を受験されましたか?(そういう筆者は受けておりませんが...)今回は10/17に行われた情報処理試験の午前問題の中から、オブジェクト指向関連の問題を集めてみました。ただし、解答については筆者の未熟な頭で処理された結果ですので、正解とは限りません。

資格別出題数は、

第2種 - 1問
ネットワークスペシャリスト - 1問
アプリケーションエンジニア - 5問
システムアナリスト - 3問
という結果でした。

***その他の情報処理試験については問題を入手できませんでした***

アプリケーションエンジニアを受験された方はラッキーでしたね。といっても80問中の5問ですけど。

そう、それから今回の問題を集めて気づいたのですが、解答にが多い!!全8問中5問は解答がになってしまいました。オブジェクト指向と...何か関係があるのかも...

そんな話はさて置き、午前問題だけでなく平成10年度春期のプロダクションエンジニア・午後問題ではおもいっきりオブジェクト指向分析・設計も出題されています。
これから情報処理試験にも、さらにオブジェクト指向に関する問題が増えると思われます。そのベースとなるであろう午前問題です。
すでに受験された方も、これからの方も、お暇ならどうぞ。


(第2種・午前・問38)

Javaなどのバイトコードプログラムをインタプリタで実行する方法と、コンパイルしてから実行する方法を、次の条件で比較するとき、およそ何行以上のバイトコードであれば、コンパイル方式の方がインタプリタ方式よりも処理時間が短くなるか。

[条件]
(1) 実行時間はプログラムの行数に比例する。
(2) 同じ100行のバイトコードのプログラムをインタプリタで実行すると0.2秒かかり、コンパイルしてから実行すると0.003秒かかる。
(3) コンパイル時間は100行当たり0.1秒かかる。
(4) コンパイル方式の場合は、プログラムの行数に関係なくファイル入出力、コンパイラ起動などのために常に0.15秒のオーバヘッドがかかる。
(5) プログラムファイルのダウンロード時間など、その他の時間は無視して考える。

ア. 50
イ. 75
ウ. 155
エ. 225

問題自体はオブジェクト指向とは関係ありませんが、Javaというキーワードがあったので載せてみました。

(解答)

(コメント)

インタプリタでの処理時間をTi秒、コンパイラでの処理時間をTc秒、コードの行数をL行とすると、
Ti=0.2*(L/100)
Tc=0.0003*(L/100)+0.1*(L/100)+0.15

ここでコンパイラの方が処理時間が短くなる

Tc < Ti

という不等式を満たすLを求めればいい
この解を求めると、

L > 154.639....

となるから、答えはウ つまらない問題でしたね。ごめんなさい。


(ネットワークスペシャリスト・午前・問52)
(アプリケーションエンジニア・午前・問15)
共通問題

Javaの説明として、適切なものはどれか。

ア. インターネットで用いられる通信プロトコル
イ. インターネット用の閲覧ソフトウェア(ブラウザ)
ウ. オブジェクト指向のプログラム言語
エ. カラー静止画像の符号化方式

(解答)

(コメント)

ウ以外ありません。ちなみにアはTCP/IP、イはNetscapeやIE、エはJPEGでしょうか


(アプリケーションエンジニア・午前・問45)
(システムアナリスト・午前・問39)
共通問題

スパイラルモデルに関する記述として、適切なものはどれか。

ア. システムの開発を幾つかの工程に分割し、各工程の終了を逐次確認しながら進める。
イ. システムのすべての機能を一度に開発することが前提となっている。
ウ. 短期間のうちにシステム機能を見直し、プロジェクト失敗の原因となりうる不確実な点を次のサイクルで解決する。
エ. 前工程で混入したエラーを修復するので、手戻りが発生する。

(解答)

(コメント)

スパイラル => ひねり => 回る => 円 =>サイクル => ウ なんて考え方あり?

まじめに書くと、工程とは「要求定義」「分析」「設計」「実装」「テスト」などの1項目を指すのが普通です。それに対し、スパイラル型のプロセスモデルでは、複数回のサイクルを回してシステムを開発しますが、各サイクルの中に分析、設計、実装、テストが一通り含まれるという点に気がつけば、回答はおのずから決まってくるでしょう。


(アプリケーションエンジニア・午前・問49)

スーパクラスとサブクラスの関係にあるものはどれか。

ア. ”会社”と”社員”
イ. ”自動車”と”エンジン”
ウ. ”図形”と”三角形”
エ. ”データベース”と”ウィンドウ”

(解答)

(コメント)

継承関係は・・・
図形 <-(継承線)- 三角形 ですよね。
全体部分の関係を表す集約や、一般的な意味的つながりを表す関連と勘違いしていないかを引っ掛ける問題ですね。


(アプリケーションエンジニア・午前・問50)

オブジェクト指向おいて、個々のオブジェクトはその役割を遂行るのに必要な属性とメソッドを内部にもっている。この属性とメソッドを一つにまとめた構造にすることを何というか。

ア. インスタンス
イ. カプセル化
ウ. クラス化
エ. メッセージ

(解答)

(コメント)

アとエは消去されます。
問題は情報隠ぺいを意味している(?)のでイです。


(アプリケーションエンジニア・午前・問51)

オブジェクト指向における情報隠ぺいの説明として、適切なものはどれか。

ア. オブジェクトは、そのデータに対して定義されたメソッドによってだけ、アクセス可能である。
イ. オブジェクトは、抽象データ型の要素でなければならない。
ウ. 親クラスに定義されたメソッドは、実行時に子クラスだけに引き継がれる。
エ. 同一メッセージでも、実行時は受信クラスに基づきメソッドが束縛される。

(解答)

(コメント)

ウは継承関係、エはポリモルフィズム(多様性)のことですけど、イはなにを言いたいのでしょう。


(システムアナリスト・午前・問40)

オブジェクト指向で用いられるUML(Unified Modeling Language)の説明として、適切なものはどれか。

ア. オブジェクト指向データベースを操作するための言語
イ. オブジェクト指向プログラム言語
ウ. オブジェクト指向分析・設計で、モデルを記述するための表記法
エ. 再利用可能なソフトウェア部品の集まり

(解答)

(コメント)

アはODMG(OQL)(?)、イはOOPLで代表例はJava,C++など。エはサブシステム、コンポーネント、フレームワーク。


(システムアナリスト・午前・問41)

オブジェクト指向によるシステム設計をa〜dの工程に分割したとき、最も適切な順序はどれか。

a: オブジェクトモデリング
b: カプセル設計
c: 業務プロセスモデリング
d: 制御設計

ア. a->b->c->d
イ. a->c->b->d
ウ. c->a->b->d
エ. c->a->d->b

(解答)

(コメント)

aはクラス図は、bはカプセル設計、cはユースケース図、dはシーケンス図と考えられます。
ユースケース図にて業務分析をおこない、その後クラス図を抽出、シーケンス図にて制御フローの設計、クラスのカプセル化を設計する。
普段使用する言葉にマッピングするのが大変です。これもあっているのかいないのか・・・

(解説)
この問題、OOのつわものどもの集まる編集部でも論争を巻き起こし
揉めに揉めたものでした。
根本的な原因は、「カプセル設計」「制御設計」の用語のあいまいさにあります。

以下、やり取りです。

編集部の成績の悪さはこちら

難問か、奇問か、良問か、愚問か、はたまたシブい問題か、
判断は皆さんに御任せします。




アンケートにご協力お願いいたします
記事の内容を5点満点で評価してください。
1点 2点 3点 4点 5点

© 1999 OGIS-RI Co., Ltd.
Index Next
Index Next