平成21年度 秋期 ITパスポート試験 問47 解説 オブジェクト指向設計
オブジェクト指向設計の特徴はどれか。
- ア オブジェクト指向設計によってプログラムの再利用性や生産性が向上することはない。
- イ オブジェクトに外部からメッセージを送れば機能するので, 利用に際してその内部構造や動作原理の詳細を知る必要はない。 ✓ 正答
- ウ 個々のオブジェクトを細分化して設計するので, 大規模なソフトウェア開発には使用されない。
- エ プログラムは処理手順に従って設計され, データの集合はできるだけプログラムと関連付けない。
解説
この問題は、オブジェクト指向の主要な概念である「カプセル化」の意味を理解していれば、選択肢の中から直感的に正しいものを選ぶことができます。
オブジェクト指向におけるカプセル化
オブジェクト指向設計の最大の利点の一つは、データの「カプセル化」です。これは、プログラムを構成する部品であるオブジェクトにおいて、データ(状態)とそれを操作する手順(メソッド)を一つにまとめ、外部から直接触れられないように隠す仕組みです。
外部のプログラムは、オブジェクトの内部がどうなっているかを意識する必要はありません。あらかじめ用意された「メッセージ」を送る、つまりメソッドを呼び出すだけで、期待した結果を受け取ることができます。これを「情報の隠蔽」と呼びます。
選択肢を判断するプロセス
オブジェクト指向は、再利用性を高め、複雑な大規模開発を効率化するために考案された手法です。そのため、消去法で考えるのが有効です。
ア:オブジェクト指向は、再利用性や保守性の向上が大きな目的ですので、誤りです。 イ:これがカプセル化の説明です。内部がブラックボックス化されているため、利用者は指示を出すだけでよく、極めて効率的です。 ウ:大規模開発こそ、オブジェクトごとに役割を分けて設計できるオブジェクト指向が向いています。「使用されない」という記述は誤りです。 エ:これは「手続き型プログラミング」の説明です。オブジェクト指向ではデータと処理をセットで扱うため、内容が逆です。
開発の現場でどう役立つか
この概念は、現代のソフトウェア開発において不可欠です。例えば、自動車の運転を想像してみてください。運転手は、アクセルを踏むという「メッセージ」を送ることで車を加速させることができます。エンジンの内部構造や、ガソリンが爆発する詳細な仕組みを理解していなくても、誰でも安全に運転できるのは、複雑な仕組みがボンネットの中に隠蔽(カプセル化)されているからです。
プログラミングにおいても同様です。画面にボタンを表示する、データをデータベースに保存する、といった複雑な機能を、詳細を知らなくても一行のコードで呼び出せるようになります。これにより、開発者は詳細な実装ではなく「何を実現したいか」という論理的な設計に集中できるようになり、チームでの分業や、過去に作った部品の再利用が圧倒的に容易になります。