Uオブジェクト指向プログラミングという言葉は聞いたことがあっても、「クラスとインスタンス」「継承」「ポリモーフィズム」となると、なんとなく難しそうで後回しにしがちでした。でも「すべてのものを”属性と動作を持つオブジェクト”として捉える」という視点で整理したら、UMLの各図もずいぶん読めるようになりました。
この記事でわかること
- オブジェクト指向の4大原則(カプセル化・継承・ポリモーフィズム・抽象化)
- UMLの主要な図の種類と読み方(静的・動的)
- クラス図の関連・集約・コンポジション・依存の違い
- 中小企業診断士試験での出題パターンと頻出論点
オブジェクト指向の4大原則
オブジェクト指向では「クラス(設計図)」から「インスタンス(実体)」を生成する考え方が基本です。例えば「スマートフォン」というクラスには「メーカー・画面サイズ・OS」という属性(データ)と「電話をかける・写真を撮る」というメソッド(動作)が定義されています。iPhone 15やGalaxy S24はそれぞれのインスタンスです。



4つの原則の中で「ポリモーフィズム」が一番ピンとこなかったのですが、「同じ命令を出しても、受け取るオブジェクトによって動きが違う」という理解で整理できました。テレビのリモコンの「電源ボタン」が、テレビメーカーによって動作が異なるイメージです。
UMLの主要な図の種類
UML(Unified Modeling Language)はオブジェクト指向システムの設計・分析を視覚的に表現するための標準言語です。全部で13種類の図がありますが、試験では静的図(構造図)と動的図(振る舞い図)の代表的なものが問われます。
クラス図の関係性4種類
クラス図では、クラス間の関係を矢印の種類で表現します。試験で特に重要なのは以下の4種類です。
| 関係名 | 記号 | 意味 | 例 |
|---|---|---|---|
| 関連(Association) | ─────→ | クラス間に何らかの関係がある(最も一般的) | 顧客 → 注文(顧客が注文を持つ) |
| 集約(Aggregation) | ◇────→ | 部分と全体の関係。部分は全体なしに独立して存在できる(白ひし形) | チーム ◇─ 選手(選手はチーム解散後も存在する) |
| コンポジション(Composition) | ◆────→ | 強い集約。全体が削除されると部分も消滅する(黒ひし形) | 注文 ◆─ 注文明細(注文削除で明細も消える) |
| 汎化(Generalization) | ───▷ | 継承関係(is-a関係)。子→親への空白三角矢印 | 犬 ──▷ 動物(犬は動物の一種) |
| 依存(Dependency) | – – – → | 一方が変更されると他方に影響する(点線矢印) | OrderService – – → EmailService |
集約(◇):部分は全体から独立できる。部品を「借りている」イメージ。
コンポジション(◆):部分は全体なしに存在できない。部品を「所有している」イメージ。
→ 建物◆─ 部屋(建物が壊れれば部屋も消える)vs チーム◇─ メンバー(チーム解散後もメンバーは存在する)
ECサイトの設計で考えてみると
ECサイトを設計するときにオブジェクト指向とUMLがどう使われるか、簡単に見てみましょう。
クラス設計の例:顧客(Customer)、商品(Product)、注文(Order)、注文明細(OrderItem)というクラスを定義します。注文と注文明細はコンポジション(◆)—注文を削除すると明細も消えます。顧客と注文は関連(─)—顧客が複数の注文を持つ1対多の関係です。
ユースケース図:「顧客がカートに商品を追加する」「顧客が決済する」「管理者が在庫を更新する」といったユースケースを図示し、要求を整理します。
シーケンス図:「注文確定ボタンを押してから決済完了メールが届くまで」の処理の流れを、各オブジェクト間のメッセージのやり取りとして時系列で表現します。
継承の例では「会員(Member)」クラスを継承して「プレミアム会員(PremiumMember)」クラスを作成。通常の会員機能はそのまま引き継ぎ、「送料無料」「優先サポート」などの機能を追加定義します。
試験での出題パターン
| 論点 | 出題頻度 | 試験のポイント |
|---|---|---|
| OOPの4原則 | ★★★★★ | カプセル化・継承・ポリモーフィズム・抽象化の定義と具体例 |
| クラス図の関係(集約vsコンポジション) | ★★★★☆ | ◇(集約・独立可)vs◆(コンポジション・独立不可)の違い |
| UML図の種類と用途 | ★★★★☆ | 静的図(クラス図・コンポーネント図)vs動的図(ユースケース・シーケンス等) |
| クラスとインスタンスの関係 | ★★★☆☆ | クラス=設計図、インスタンス=実体。new演算子でインスタンス化 |
| オーバーライドとオーバーロード | ★★★☆☆ | オーバーライド(親メソッドを子で再定義)vsオーバーロード(同名・異引数) |
| デザインパターン | ★★☆☆☆ | GoFの代表パターン(Singleton・Observer・Factory等)の用途と概念 |
ひっかけパターン整理
- 「集約とコンポジションは同じ意味だ」→ 誤り。集約は独立存在可(◇)、コンポジションは不可(◆)
- 「ポリモーフィズムは複数の引数パターンを持つことだ」→ 誤り。それはオーバーロード。ポリモーフィズムは同一メッセージに異なる動作をすること
- 「ユースケース図はシステムの内部構造を表す」→ 誤り。外部からの視点(誰が何をするか)を表す要求分析の図
- 「継承はis-aの関係、集約はhas-aの関係」→ 正しい(is-a:犬は動物、has-a:注文は明細を持つ)
まとめ
- オブジェクト指向の4原則:カプセル化(隠蔽)・継承(再利用)・ポリモーフィズム(多態)・抽象化
- クラス=設計図、インスタンス=実体。継承はis-a関係、集約・コンポジションはhas-a関係
- UML静的図:クラス図(構造)・コンポーネント図(物理構成)が代表格
- UML動的図:ユースケース図(要求)・シーケンス図(時系列)・アクティビティ図(フロー)が代表格
- クラス図の関係:汎化(継承)▷、集約◇(独立可)、コンポジション◆(独立不可)、依存(点線)
関連ツールで理解を深める
暗記カードでUML図の種類・OOP4原則を定着 / 学習進捗トラッカーで経営情報システムの進捗管理 / スケジュールシミュレーターで残り学習日程を計画









