オブジェクト指向・UML | 中小企業診断士1次試験 経営情報システム

U

オブジェクト指向プログラミングという言葉は聞いたことがあっても、「クラスとインスタンス」「継承」「ポリモーフィズム」となると、なんとなく難しそうで後回しにしがちでした。でも「すべてのものを”属性と動作を持つオブジェクト”として捉える」という視点で整理したら、UMLの各図もずいぶん読めるようになりました。

この記事でわかること

  • オブジェクト指向の4大原則(カプセル化・継承・ポリモーフィズム・抽象化)
  • UMLの主要な図の種類と読み方(静的・動的)
  • クラス図の関連・集約・コンポジション・依存の違い
  • 中小企業診断士試験での出題パターンと頻出論点
OOP
Object Oriented Programming
現実世界の「物」をモデル化してソフトウェアを構築するパラダイム
UML
Unified Modeling Language
システムを視覚的に表現するための標準的なモデリング言語(13種の図)
4
大原則
カプセル化・継承・ポリモーフィズム・抽象化がOOPの柱
目次

オブジェクト指向の4大原則

オブジェクト指向では「クラス(設計図)」から「インスタンス(実体)」を生成する考え方が基本です。例えば「スマートフォン」というクラスには「メーカー・画面サイズ・OS」という属性(データ)と「電話をかける・写真を撮る」というメソッド(動作)が定義されています。iPhone 15やGalaxy S24はそれぞれのインスタンスです。

PRINCIPLE 01
カプセル化
データ(属性)と処理(メソッド)をクラス内に閉じ込め、外部から直接アクセスできないようにする。必要な操作はメソッドを通じてのみ行う。
例:銀行口座クラスの「残高」は直接変更不可。「入金する」「出金する」メソッドを通じてのみ変更できる
PRINCIPLE 02
継承
既存のクラス(親クラス・スーパークラス)の属性・メソッドを引き継いで新しいクラス(子クラス・サブクラス)を定義する。コードの再利用性を高める。
例:「動物」クラスを継承して「犬」「猫」クラスを作成。「食べる」「寝る」メソッドは共通継承し、「吠える」「鳴く」は各クラスで追加定義
PRINCIPLE 03
ポリモーフィズム(多態性)
同じメッセージ(メソッド呼び出し)に対して、オブジェクトの種類によって異なる動作をする能力。「鳴け」と命令すると、犬は「ワン」、猫は「ニャン」と応答する。
例:「図形.面積を計算する()」は、円・三角形・四角形それぞれのクラスで異なる計算式を実行する
PRINCIPLE 04
抽象化
複雑な現実から本質的な特性だけを抽出してモデル化する。実装の詳細を隠し、インターフェースだけを外部に公開する(抽象クラス・インターフェース)。
例:「支払い処理」インターフェースを定義し、クレジットカード・電子マネー・銀行振込で異なる実装を提供。呼び出す側は実装の違いを意識しない
U

4つの原則の中で「ポリモーフィズム」が一番ピンとこなかったのですが、「同じ命令を出しても、受け取るオブジェクトによって動きが違う」という理解で整理できました。テレビのリモコンの「電源ボタン」が、テレビメーカーによって動作が異なるイメージです。

UMLの主要な図の種類

UML(Unified Modeling Language)はオブジェクト指向システムの設計・分析を視覚的に表現するための標準言語です。全部で13種類の図がありますが、試験では静的図(構造図)動的図(振る舞い図)の代表的なものが問われます。

静的図(構造図)
クラス図
クラスの属性・メソッドと、クラス間の関係(関連・集約・コンポジション・継承・依存)を表現。最も重要な静的図。
Class Diagram
静的図(構造図)
オブジェクト図
特定の時点におけるクラスのインスタンス(実体)と、それらの関係のスナップショット。クラス図の実体例示として使用。
Object Diagram
静的図(構造図)
コンポーネント図
システムの物理的な構成要素(コンポーネント)とその依存関係を示す。モジュール・ライブラリ・実行ファイルなどの関係を表現。
Component Diagram
動的図(振る舞い図)
ユースケース図
システムと外部アクター(ユーザー・外部システム)の相互作用を表現。「誰が何をするか」という要求分析フェーズで活用。
Use Case Diagram
動的図(振る舞い図)
シーケンス図
オブジェクト間のメッセージのやり取りを時系列で表現。縦軸が時間、横軸がオブジェクトのライフライン。
Sequence Diagram
動的図(振る舞い図)
アクティビティ図
処理の流れ(アルゴリズム・ビジネスプロセス)をフローチャート的に表現。分岐・並行処理・結合が表現できる。
Activity Diagram
動的図(振る舞い図)
状態機械図(状態遷移図)
オブジェクトの状態と、イベントによる状態遷移を表現。注文の「受注→処理中→出荷→完了」のような状態管理に使用。
State Machine Diagram
動的図(振る舞い図)
コミュニケーション図
シーケンス図と同等の情報を異なる視点で表現。オブジェクト間のリンクと番号付きメッセージで相互作用を示す。
Communication Diagram

クラス図の関係性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原則を定着 / 学習進捗トラッカーで経営情報システムの進捗管理 / スケジュールシミュレーターで残り学習日程を計画

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

中小企業診断士試験勉強中のアラフィフシングルマザーです。
大学卒業後から現在まで、数々の失敗をしながらずっと自営業として試行錯誤を重ねてきました。
もっときちんと経営やビジネスの知識を身につけて、将来は他の事業者の方のお役にも立てたらいいな、と思うようになり、中小企業診断士の試験に挑戦中です。

目次