ITパスポート 令和3年度 問41:プロジェクトマネジメントに関する問題
クラスや継承という概念を利用して,ソフトウェアを部品化したり再利用することで,ソフトウェア開発の生産性向上を図る手法として,適切なものはどれか。
- aオブジェクト指向正答
- b構造化
- cプロセス中心アプローチ
- dプロトタイピング
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは a「オブジェクト指向」 です。
「クラス」や「継承」という言葉がカギ。これはオブジェクト指向という作り方の代表的な考え方です。
部品(オブジェクト)を作って、それを組み合わせたり、似た部品は元の部品の性質を"受け継いで"作ったり。レゴブロックで一度作ったパーツを再利用するイメージです。
👉 覚え方:「クラス・継承・再利用」と来たら=オブジェクト指向!
ほかの選択肢:b 構造化=処理を順番に分けて整理する古い手法/c プロセス中心アプローチ=業務の流れ中心に設計/d プロトタイピング=試作品を作って確認しながら開発する進め方。
なぜこれが正解か
正解は a。オブジェクト指向は、データ(属性)と処理(メソッド)をひとまとめにした「オブジェクト」を単位として設計・開発する考え方。共通の性質を定義するクラス、その性質を引き継いで再利用・拡張する継承といった概念により、ソフトウェアの部品化・再利用を促進し生産性を高める。問題文のキーワードと完全に一致する。
各選択肢の解説
- b 構造化:プログラムを順次・選択・繰返しの構造で整理し、機能ごとに分割する手法。クラス・継承の概念はない。
- c プロセス中心アプローチ:業務の処理(プロセス)を中心にシステムを分析・設計する手法。
- d プロトタイピング:試作品(プロトタイプ)を作り利用者の評価を受けながら開発を進める開発モデル。
覚え方・ひっかけ注意
「クラス・継承・カプセル化・多態性(ポリモーフィズム)」はオブジェクト指向の4大キーワード。これらが出たら即a。dのプロトタイピングは"開発の進め方(プロセスモデル)"の話で、設計手法のオブジェクト指向とは観点が違う点に注意。
理論的背景:オブジェクト指向の4原則
オブジェクト指向(OOP:Object-Oriented Programming)の理論的基盤は1960〜70年代にSimula・Smalltalkで確立され、Java・C++・Python等の主流言語に採用された。4つの核心概念は①カプセル化(Encapsulation):データと操作を一体化しprivate/publicで公開範囲を制御する「情報隠蔽」、②継承(Inheritance):親クラス(スーパークラス)の属性・メソッドを子クラス(サブクラス)が引き継ぎ、差分のみ実装する再利用性向上の仕組み、③多態性(Polymorphism):同一インタフェースに対してオブジェクトのクラスによって異なる振る舞いをする(duck typing・オーバーライド)、④抽象化(Abstraction):本質的な特徴のみを抽出してモデル化(抽象クラス・インタフェース)。これらの組み合わせが「変更に強く・再利用しやすい設計」を実現する。
設計原則とデザインパターン
オブジェクト指向設計の基本原則としてSOLID原則(S:単一責任原則、O:開放閉鎖原則、L:リスコフの置換原則、I:インタフェース分離原則、D:依存性逆転原則)がある。Gangof Four(GoF)のデザインパターン(23パターン:Singleton・Factory Method・Observer・Strategy等)はオブジェクト指向設計の再利用可能な解決策集として実務で広く参照される。継承の多用(深い継承ツリー)は「脆い基底クラス問題(Fragile Base Class Problem)」を引き起こすため、SOLID原則の「継承より委譲(コンポジション)」が近年の設計指針として重視される。
開発手法・ツールとの接続
設計はUML(Unified Modeling Language)で表現され、クラス図(静的構造)・シーケンス図(オブジェクト間の相互作用)・ユースケース図(要求)が代表的。開発プロセスとしてはRUP(Rational Unified Process)・アジャイルとオブジェクト指向が親和性が高く、Scrum+Java/Kotlin/Pythonの組み合わせが現代の標準的な開発スタック。テストではクラス単位の単体テスト(JUnit・pytest等)・依存クラスをモック化したテスト(MockitoTest double)がオブジェクト指向特有の手法。
上位資格への接続
基本情報技術者ではクラス図の読み取り(集約・コンポジション・依存・関連・継承の矢印の違い)・カプセル化・継承・ポリモーフィズムの用語定義・ソフトウェア再利用(コンポーネント・フレームワーク)・設計パターンの概念が問われる。応用情報以上ではUMLを使ったシステム設計・デザインパターンの適用判断・マイクロサービスアーキテクチャとオブジェクト指向の接続まで踏み込む。
選択肢の発展補足
構造化プログラミング(選択肢b)はダイクストラが提唱した「順次・選択・反復の3制御構造のみでプログラムを記述する」手法で、GOTOを禁止して可読性・保守性を高める。オブジェクト指向との歴史的な位置関係は「構造化→データ中心アプローチ(DOA)→オブジェクト指向」という進化の流れ。プロセス中心アプローチ(選択肢c)はDFD(データフロー図)で業務プロセスを中心にシステムを分析し、データは処理の従属要素として扱う。DOA(データ中心アプローチ)は逆にデータ(E-R図)を安定基盤として処理を設計する。プロトタイピング(選択肢d)はウォーターフォールへのアンチテーゼとして登場した開発プロセスモデルで、設計手法(何で作るか)ではなく開発プロセス(どう進めるか)の分類に属する点が識別ポイント。
出典:IPA(情報処理推進機構)公式 ITパスポート試験 令和3年度 問41/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。