11-4 開発プローチと図解技法2

オブジェクト指向

 プラグラム(メソッド)データ(属性)一体的に識別し、オブジェクトとしてとらえ、それを組み合わせてシステムを構築する業務モデル。 図法としては、UML(UML : Unified Modeling Language)が用いられる。

主な概念

  • オブジェクト:データ(特性)とそのデータを操作する処理(メソッド)が一体となったものです。
  • クラス:オブジェクトの設計図のようなもので、共通の特性や振る舞いを定義します。
  • プロパティ(属性):オブジェクトの持つデータや状態を表します。
  • メソッド(操作):オブジェクトが行う処理や振る舞いを表します。
  • インスタンス:クラスの設計図に基づいて実際に生成されたオブジェクトのことです。

オブジェクト指向の原則(主にクラスベースOOP)

  • カプセル化:オブジェクトのデータとメソッドを一つにまとめ、外部からデータへの直接的なアクセスを制限します。
  • 情報隠蔽:データやメソッドを外部から直接アクセスできなくすること
  • 継承(インヘリタンス):既存のクラスの特性(プロパティやメソッド)を新しいクラスに引き継がせることができます。
  • ポリモーフィズム(多態性):同じ名前のメソッドがオブジェクトの種類によって異なる振る舞いをすることです。

<関連用語>

集約ー分解関係(part-of関係、全体と部分)
 集約は「… は、○○の一部である」という関係で、あるクラスが別のクラスの構成要素であることを示します。

汎化ー特化関係(is-a関係、上位と下位)
 汎化は「… は、○○である」という関係で、下位クラスが上位クラスの性質を継承(特化)または、上位クラスから共通の性質をまとめる(汎化)ことを表します。

スーパクラス(基底クラス):汎化ー特化関係における上位クラス、上の図では自動車

サブクラス(派生クラス):汎化ー特化関係における下位クラス、上の図ではバス〜バン

オーバーライド:継承時に同じデータやメソッドの定義を上書きすること

UML

UML(Unified Modeling Language)とは、オブジェクト指向によるシシテムの分析・設計に用いる図式の表現の一つです。多くありますが、ここでは8種類説明します。

1. クラス図

クラス図は、システム内のクラス(名前、属性、操作)とその関係を視覚的に表すことで、システムの静的構造を明確に示します。

2.  オブジェクト図

オブジェクト図は、特定の瞬間におけるシステムのオブジェクトの状態を表します。これは、クラス図のインスタンス版と考えることができます。オブジェクト図を用いることで、実際のデータの状態やオブジェクト間の関係を具体的に示せます。

3.  配置図

配置図は、ソフトウェアコンポーネントがハードウェア上でどのように配置され、相互にどのように通信しているかを視覚化します。これにより、システム全体の物理的なアーキテクチャを理解しやすくします。
具体的には、ネットワークインフラやサーバ配置、通信経路などの情報を明確にできます。

4.  パッケージ図

パッケージ図は、関連するクラスやコンポーネントをグループ化します。これにより、システムの大規模な構造を整理し、モジュール間の依存関係を明確にできます。

5. ユースケース図

ユースケース図は、システムの機能要件をユーザーの視点から視覚化します。アクター(ユーザーや他のシステム)とユースケース(システムが提供する機能)との関係を示し、システムの利用方法を明確にします。

6.  シーケンス図


シーケンス図は、オブジェクト間のメッセージ交換を時系列で示します。これにより、システム内の動的な振る舞いやプロセスの流れを理解しやすくします。シーケンス図を使用することで、特定の機能の動作や、複雑な相互作用を視覚化できます。

7. コミュニケーション図

コミュニケーション図は、シーケンス図と似ていますが、オブジェクト間の関係性やメッセージの流れを重視して示します。

8.アクティビティ図

アクティビティ図は、システムの作業プロセスを示します。いわばUMLのフローチャートであり、各ステップや分岐、並行処理などのプロセスの流れを明確にします。