ObjectSquare [2001 年 12 月号]

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


 こんにちは。半期に一度恒例の「オブジェクト指向と情報処理試験」の季節がやってきました。今回は 10/21 に行われた情報処理技術者試験の中から、オブジェクト指向関連の問題を集めてみました。

 資格別出題数は、

 全体的にオブジェクト指向関係の問題は少なめでした。あと、今回から基本情報技術者の午後の問題に Java が追加されたのが特徴です。

 それでは全体的なコメントに続いて、各問題を見ていきたいと思います。なお、コンテンツは今回もオージス社内の Wiki を用いて作成しました。スレッドが完結しきっていないものもありますが、続きは広場MLでどうぞ。
解答については正解とは限りませんのであしからず。

(全体を通してのコメント)

今回はOOの問題少なめですね。(よ)

CORBA がいくつか出題されてますが、全ての情報技術者が知っているべき技術なのかなぁ。(あ)

情報処理技術者試験って技術者をいろいろ分類していますね。
テクニカルスペシャリストとか、アプリケーションエンジニアとか。
その点からすると、ソフトウェア開発の従事者すべてが CORBA を知っているべきかどうか。あやしいですね。
また、CORBA を知らなくてもソフトウェアを開発できているわけですから。
でも、そんなことをいうとなんでもそうですね。(つ)

しかし、CORBA を使わないといけないシステムもたくさんありますね。
基本情報技術者試験では CORBA が登場しているから、
情報処理技術者試験を受ける人は CORBA が何かぐらいは知っておこう。
それが情報処理技術者試験の立場なのかも。(つ)


(基本:午前・問72)

クライアントとサーバの上で動くプログラムの開発を、それぞれ異なったオブジェクト指向言語 (例えば Java と C++) で行うとする。このような異なった言語で開発したオブジェクト同士でも、クライアントからサーバ上のメソッドを呼び出すことを可能にする標準仕様はどれか。

ア. CORBA
イ. OMG
ウ. OMT
エ. VRML

(解答)

(コメント)

Common Object Request Broker Architecture の略ですね。(よ)

OMG と OMT という選択肢は、O と M が文字としてかぶっていますね。
OMG の定める UML が OMT を参考にしている。
この点でも、受験者に勘違いさせようとしているのかも。
OMG と OMT を同じような用語だと。
また、OMG の定める仕様の1つが CORBA なので、
CORBA と OMG が紛らわしくなっています。
VRML は他の3つの選択肢とはあまり関係がなさそうです。
苦心して選択肢を作成しているのかも。(つ)

選択肢に COM+ や DCOM を加えたら混乱するかも。(さわやか)

異なる言語間の ORPC は、SOAP を利用しても実現できます。
ORPC のカプセル化は SOAP の設計目標の一つだし。
.NET での Web Method がそうですね。(さわやか)


(基本:午後・問8)

問題はこちら

(解答)

a - 、 b - 、 c - 、 d -

(コメント)

Java の基本的な文法を問う問題です。
OOとはあまり関係なさそうですね。(よ)

式の評価で真偽値が取得できるのと、三項演算子の使い方を問う問題ですね。
後は、equals メソッドと "==" の使い方がポイントでしょうか。
いずれにせよ、普通に Java の経験があれば、何の逡巡も無く解答できると思います。
(さわやか)


(基本:午後・問12)

問題はこちら

(解答)

設問1 a - 、 b - 、 c - 、 d -
設問2
設問3

(コメント)

何点か気になる点がありますが...
getDiscountRate() は Computer に定義すべきでしょうか?
また、値引き率は Computer からとるのに、計算は外で行い、結果をまた Computer
にセットするというのはいただけないと思います。
基本情報技術者の受験者には設計の能力は必要ないかもしれませんが、
問題の設計はある程度まともなものにしてほしいですね。(よ)

Computer に設定されている値引率はあくまで目安。
この値引率をつかってどのくらい値引くのか、
そもそも値引率を採用するのかはシステムの
利用者に任される、という思想のシステムなら
これでもありじゃないですか?ちょっと苦しいかな?(小僧)

実際の仕事で、問題のような設計をしたら袋叩きにあうこと必至です。
基本情報技術者の問題で、どの程度の設計を提示したら良いかについて、
出題者が苦悩している姿が目に浮かぶようで、なんとも痛ましい。
(さわやか)


(ネットワーク:午前・問14)

オブジェクト指向の概念で、上位のクラスのデータやメソッドを下位のクラスで再利用できる性質を何というか。

ア. インヘリタンス
イ. カプセル化
ウ. 抽象化
エ. ポリモーフィズム

(解答)

(コメント)

「オブジェクト指向の概念」といったとき、
それはどの文献あるいはどの著者が定義している概念を指しているのかな。
ちょっと疑問です。
上位とか下位とかいう言葉も曖昧です。
というのは、何に関して上か下かが書かれていないから。
まさか、クラス図で、親クラスを子クラスの上に書くことが
多いからではないでしょうけど。(つ)


(システムアナリスト、プロジェクトマネージャ、アプリケーション共通:午前・問13)
(上級シスアド:午前・問13)

Java の特徴に関する記述のうち、適切なものはどれか。

ア. Java コンパイラがソースコードをバイトコードに変換し、Java 仮想マシンがバイトコードを実行する。
イ. Java で開発したプログラムを実行するためには、ブラウザが必要である。
ウ. Java で開発したプログラムを別のプラットフォームで実行するためには、再コンパイルが必要である。
エ. アプレットは、セキュリティ上の理由から、ブラウザが動いているマシン以外とは通信できない。

(解答)

(コメント)

オブジェクト指向とは関係ありませんが、Java についての設問なのでとりあげてみました。
「イ」はアプレットのこと。
「エ」については、アプレットをダウンロードしたサーバとの通信は可能です。(よ)

選択肢の「エ」って、実行マシンと自由に通信できたら、セキュリティもへったくれも無いと思いますが…。
(さわやか)


(システムアナリスト、プロジェクトマネージャ、アプリケーション共通:午前・問19)

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

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

(解答)

(コメント)

カプセル化をいうなら情報隠蔽の視点もほしいですね。(よ)

カプセル化と情報隠蔽の違いはハッキリさせておいたほうがよいと思います(ふ)

手段よりも目的とか考え方を重視して欲しいですね。(あ)

私は情報隠蔽まで含めてカプセル化だと思っていたのですが、
違うのでしょうか? (よ)>(ふ)

まつぞの です。
え、答えは「イ」なのですか?『「情報隠蔽について触れていない」ので
「イ」ではない』と私は思いました。『オブジェクト指向以前は「データ」と
「処理(手続き)」がバラバラだったのに対し、それを「クラス」という一つの
概念にまとめた』と考えて「ウ」が正解なのかと思ったのですが。

POSA 本では、「カプセル化」と「情報隠蔽」を区別しています。
カプセル化は「構造と振る舞いをグループ化して1つの抽象物を定義し、
異なる抽象物を互いに別物として分離する処理のこと」、
情報隠蔽は「クライアントに実装を公開しないこと」です。
ペアで用いられることが多いので混同しがちですが、
それぞれの目的が異なるので概念的には別物です。
なので、「イ」が正解かなぁ。(さわやか)

「クラス化」についてですが、「抽象化」と善意に解釈して、
Booch の定義に則れば、「対象の概念的境界を定義すること」なので、
振る舞いや構造(データ)がなくても抽象要素を導出できれば
「クラス化」ということにならないでしょうか?(さわやか)


(システムアナリスト、プロジェクトマネージャ、アプリケーション共通:午前・問36)

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

ア. ORB (Object Request Broker) 同士を相互に接続するためのプロトコル
イ. オブジェクトの生成、消滅などの分散オブジェクト環境の基本機能の標準仕様
ウ. 分散オブジェクト環境で、オブジェクト間の通信をつかさどるソフトウェア
エ. 分散オブジェクト環境で、オブジェクト同士が通信するための標準仕様

(解答)

まぎらわしい問題ですが、答はたぶん「エ」

(コメント)

「ア」は IIOP のこと?
「ウ」は VisiBroker とか具体的な製品のことを言っているのでしょうか。
「イ」については私は知らないので、詳しい人教えて。(よ)

「イ」について。標準仕様(だれが決めたら標準なのか?)といえないけど、
EJB 仕様では Home インタフェース(Java の interface)を使って、
間接的に Enterprise Bean (オブジェクト)を生成/削除します。
ただし、実際には、EJB コンテナが Enterprise Bean を生成/削除します。
また、EJB の Home インタフェースは、オブジェクトを生成/削除するだけなく、
オブジェクトを検索するのにも使います。(つ)

「イ」について。OMG の仕様範囲だと CORBA 上の共通部品仕様の1つである
「ライフサイクルサービス」のことを指しているのだと思います。(るい)


記事の内容を5点満点で評価してください。
1点 2点 3点 4点 5点
記事に関するコメントがあれば併せてご記入ください。
  

© 2001 OGIS-RI Co., Ltd.
Prev Index Next
Prev. Index Next