情報システム開発論

オブジェクト指向設計

学修目標

  • オブジェクト指向の概念
  • オブジェクト指向設計のドキュメント(UML)

オブジェクト指向の概念

  • プログラムをオブジェクトという役割を果たす単位で定義し,システムを構築する考え方

オブジェクトとは

オブジェクト

  • 1つ以上の機能を持つコンピュータシステムを構築する要素
  • 機能(処理)とデータを一体として定義したもの
    • オブジェクト
      • データ部
      • メソッド(処理)部
  • 単独で機能する
    • 2つ以上あわせて互いに連携させ別の機能を生み出すこともできる
  • 広義
    • クラスもインスタンスも含めた意味
  • 狭義
    • インスタンスだけの意味

クラスとインスタンス

  • クラス
    • オブジェクトを一般化した抽象的な表現
    • オブジェクトの共通する機能(性質)をまとめて名称をつけたもの
  • インスタンス
    • オブジェクトでかつ具体的な実体

オブジェクトの関係

  • is-a関係
    • 汎化・特化関係
    • 汎化
      • 具体的なもの→抽象化
    • 特化
      • 抽象的なもの→具体化
  • part-of関係
    • 集約・分解関係
    • 分解
      • 複数のオブジェクトに分解
    • 集約
      • 1つのオブジェクトに構築

カプセル化

  • 中身を知らなくても返す結果さえわかっていればよい
  • 情報の隠蔽
    • 直接データの変更はできない

メッセージ

  • オブジェクトに対して行える唯一の指示手段

インヘリタンス(継承)

  • クラスには階層が存在する
    • スーパークラス
      • 上位
    • サブクラス
      • 下位
    • 上位のクラスほど一般化されている
  • 上位のクラスの特徴(処理)を下位のクラスが引き継ぐこと
    • 差分プログラミングはこの継承機能により可能となる
      • 親と違う機能だけコーディングする
    • 保守性が向上

ポリモフィズム(多様性)

  • 同一のメッセージ(指示)を各オブジェクトに送信しても,それぞれ違った反応をすること
    • 互いのクラスの独立性が保たれる

委譲

  • 自分で処理できないメッセージ(指示)を受け取った時,そのメッセージを他のオブジェクトに転送し処理を肩代わりしてもらう

クラスライブラリ

  • 実行時に使える部品群
  • 共通でよく利用するクラス(プログラム)を予め登録した塊
  • クラスの標準化を図り,再利用

UML(Unified Modeling Language)

UMLとは

  • 現状のシステム分析から,新システムの記述までをサポートできる設計書の集まり
  • オブジェクト指向開発用に作成されている
  • OMG(Object Management Group)が制定

UMLのドキュメント群

  • ユースケース図
    • システムの使用機能(ユースケース)と,システムにかかわる外部環境(アクタ)について表したもの
  • クラス図
    • システムの静的な構造を,クラス単位で表したもの
  • オブジェクト図
    • クラス図で記述した内容を,オブジェクト単位に詳細化したもの
  • アクティビティ図
    • システムの外部環境でどのような処理がどのような順番で処理されるかを記述したもの
  • シーケンス図
    • システム内部でのオブジェクト間の連携を記述したもの
  • コラボレーション図
    • オブジェクト間のメッセージのやり取りを接続関係に着目して表したもの
  • ステートチャート(状態)図
    • オブジェクトの状態変化を,時間経過に沿って表したもの
  • コンポーネント図
    • ソースファイルなどの開発に必要なコンポーネントとそれらの依存関係を表したもの
  • 配置図
    • システムを実行するハードウェアの配置やそれらの接続関係を表したもの

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-01-09 (火) 18:44:24 (4717d)