[Lecture]
[OOA/OOD]
[Jun]
[Bibliography]
[Quotations]
In Praise of Learning: OOA/OOD
OOA/OOD
contents
- オブジェクトモデル、インスタンスとクラスとメタクラス
- オブジェクト指向の基本用語の確認
- オブジェクト指向分析設計の概説
- 2 次元座標系における2 点 (fromPoint,toPoint) を通る直線 (TwoDimensionalLine)
- ATM の簡単な分析と設計
- OMT のメタモデル
- オブジェクト指向分析設計の導入ガイド
SmalltalkLecture05.pdf
OMT の記法を習得していないと、会話に参加できません。
- Simula67 -> Lisp -> Smalltalk へ至るオブジェクト指向
- オブジェクト指向への準備
- 継承: inheritance
- MVC テンプレート
OOAOOD/01.pdf
Simula67 -> Lisp -> Smalltalk へ至るオブジェクト指向
- 多相性 (多態): polymorohism
- 共有可能性。異なる抽象データ型を共通の語彙で包含する。
- 継承: inheritance
- 認知経済性指向。抽象データ型を資産として分類整理。
- 抽象データ型: object
- 実現よりも仕様指向。問題解決の手段は複数ある。
オブジェクト指向への準備
作法: examples, printOn:
- ポインタを扱える言語
- (ポインタが抽象化されていればなお佳い)
- データベース
- 関係モデル、実態関連 (ER) モデル、意味データモデル ->
汎化、集約、類型関連
- リアルタイム & マルチ・プロセス
- OS や制御系の開発に必須
- 状態遷移、オートマトン & ペトリネット
- メッセージ送信系列 (協調、確定、最適化)
継承: inheritance
- 実現 (is-a, kind-of などの関係に従って、抽象データ型の整理機構を提供し、再利用を促進する)
- 委譲: delegtion (プロトタイプに基づく)
- 部分クラス: subclassing (クラスに基づく)
- 構造
MVC テンプレート
MVC 〜 observer pattern
MVC テンプレートのソース
[contents]
- 構造: オブジェクトモデル
- 事象と状態: ダイナミック・モデル
- 起こり得るもの: 機能モデル
- 2 次元座標系における2 点 (fromPoint,toPoint) を通る直線 (TwoDimensionalLine) を作成してください
OOAOOD/02.pdf
OOA/OOD の比較表
オブジェクト・モデリング・テクニック
OMT (Object Modeling Technology)
OOA/OOD
構造: オブジェクトモデル
切断と接続
オブジェクトモデルの内訳
クラスの詳細
汎化 (継承), クラスとインスタンス
集約と多重度
関連, 限定子, ロール名, 多重度
例
- 練習問題: 容れもの Collection 族の再作成 (明)
- 練習問題: 幾何要素 (geometry) の作成 (明)
構成文章のオブジェクト図
事象と状態: ダイナミック・モデル
例
- 練習問題: 狼と羊と野菜と人と
- 練習問題: 踏み切りと二つの遮断機
マウスの状態遷移
起こり得るもの: 機能モデル
持つべき機能の一覧
procedure の順番とかは関係ない (実装に依存しない)
例
- 練習問題: 翻訳 (source program -> executive program) プロセス
- 練習問題: OMT 自体の機能モデル
まず、データフロー、コントロール・フロー。そしてそれらを結ぶ機能
問題:SmalltalkLecture14.pdf
分析:SmalltalkLecture15.pdf
設計:SmalltalkLecture16.pdf
- 座標型
-
P1, P2
- 関数型
-
y = kx + a
z = hx + b
- 方程式型
-
(x - x1) / l = (y - y1) / m = (z - z1) / n
- 媒介変数型
-
x = x0 + ft
y = y0 + gt
z = z0 + ht
- パラメータ t をスカラー倍するだけで直線状の座標点を得ることができる
- tangent を使わないので、どんなに傾いても正確な計算を行うことができる
ATM の簡単な分析と設計
データ辞書, オブジェクトモデル, ダイナミックモデル, 機能モデル
カード、端末、口座番号、操作者、通帳、暗証番号、銀行名、支店名、口座種別、残高、金額、送金先……
ドメイン知識(問題領域を観る目)を持っていない人は、分析(設計)を
するべきではありません。事実、分析(設計)しようと思っても無理で
しょう。(たとえ偏見であろうとも)観点を持っていることは分析(設
計)の大前提なのです。これを「理論負荷性」と言います。
簡単でない分析と設計
図書館問題 (事務系アプリケーション)
リフト制御問題 (制御系アプリケーション)
OMT の三つのモデルのメタモデル
自己完備性:それ自身をそれ自体で記述可能であること
パラメータ空間 ― (写像) → 対象空間
(正規化) (見えているもの)
OMT の分析設計プロセスのメタモデル
OMT 開発のメタモデルとパタン
レトリック
継承 | 提喩 | Σ | または | 外延 | デンスケ | 抽象と具象の関係に着目、含まれている要素に分解して理解を得る。 |
多相 | 隠喩 | π | かつ | 内包 | タコ | 機能や活動、作用などの類似点に着目、意味の要素に分解して理解を得る。 |
集約 (全体-部分) | 喚喩 | Π | および | 属性 | 山の神 | 全体と部分の関係に着目、構成要素に分解して理解を得る。 |
代入、関数定義 | 直喩 | 類似性を提示 | x := y; | x と y が同じだなんて…… |
参照、関数呼出 | 隠喩 | 類似性に依存 | proc | proc って何? |
BNF (言語シンタクスの定義) <-> BNF ダイアグラム
Object, Class, Instance <-> 全称, 限定
抽象 <-- Σ, π, Π --> 多様
オブジェクト指向分析設計の導入ガイド
- 骨をくわえた犬とソフトウェア技術者
- 手続き指向 -> オブジェクト指向 -> エージェント指向という
発展の経緯とそれぞれの特長を、きちんと把握して咀嚼していること
- オブジェクト指向の選任チームを作る
- 選任チームメンバの条件:
- 才能を有する人たち
経験の豊富な人たち
決定権を持つ人たち
- 選任チームの仕事の条件:
- 短期間の小規模な開発
注目されるような内容
計測が可能であること
- 勢力構造は平坦に
- 技術的な進歩や発展が著しい場合に適している。…遊撃(自治組織・臨機)
- 技術移転の計画を
- 選任チームを核にして、組織に新技術を浸透させるための計画を作っておくこと。
- オブジェクト指向開発環境を整備する
- ハードウェア
- 専用ワークスペース、専用ミーティングスペースなどのスペースと平坦な勢力構造に見合った配置
- 携帯型プロジェクタ、プロジェクションパネルなどのツール
- 方法論を選び、支援ツールを用意する
- 良い指導者(mentor)と技能の訓練(training)
オブジェクト指向らしさ
[Lecture]
[OOA/OOD]
[Jun]
[Bibliography]
[Quotations]