47070 オブジェクト指向モデリング [3] 2001年10月15日.

Slides:



Advertisements
Similar presentations
Chapter1 UML の概要とオブジェクト指向の基本概念 1 情報工学専攻 MFM10004 奥平 健太.
Advertisements

ソフトウェア工学 理工学部 情報システム工学科 新田直也. 演習問題 1 の解答例  入庫処理の DFD 酒屋の在庫問題の DFD( 入庫処理 ) 更新情報 在庫ファイル 更新処理 倉庫係 在庫不足リスト 在庫ファイル 出庫指示書 新規出庫 判定 出庫指示書 作成処理 出庫依頼 積荷票.
ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
メタモデル記述を用いた成果物間の依存関係追跡手法
エンティティ・リレーションシップ・モデル
背景 ソフトウェアの大規模化・複雑化 生産性と品質の向上 ↓ オブジェクト指向分析設計の適用 開発ツールの投入.
4 相互作用図 後半 FM13001 青野大樹.
DB(データベース)のおはなし 作成者:小野正広 DBと言っても、  ドラゴンボール ではないですぞ! 3/1/2017.
ソフトウェア工学特論III 第10回 その他の図 情報通信工学専攻 GM11013 堀江 真史
アルゴリズムとプログラミング (Algorithms and Programming)
東京工科大学 コンピュータサイエンス 亀田弘之
表計算ソフトで動作するNEMUROの開発
オブジェクト指向プログラミング(4) 静的分析(2)
第5回 iPhoneアプリ開発勉強会 Objective-C 「継承とクラス」
アルゴリズムとデータ構造1 2007年6月12日
ソフトウェア工学 知能情報学部 新田直也.
3-5 クラス図の関係その3 福本研究室 神田 祐輔.
オブジェクト指向プログラミング(2) OOPの三大要素 「クラス」「ポリモーフィズム」「継承」
CHAPTER1 UMLとオブジェクト指向の基本概念(2)
3-3 クラス図の関係その2.
UMLの概要と オブジェクト指向の 基本概念
JavaBeans とJSP データベース論 第5回.
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
ユースケース オブジェクト指向の要求分析のためのモデル。 スウェーデンのイヴァー・ヤコブソンが1990年代前半に開発。
オブジェクト プログラミング 第1回.
UMLとは           032234 田邊祐司.
47070 オブジェクト指向モデリング [12] 2002年1月15日.
47070 オブジェクト指向モデリング [4] 2001年10月23日.
オブジェクト指向モデリング [3] 2003年10月14日.
2003年度 データベース論 安藤 友晴.
47070 オブジェクト指向モデリング [1] 2001年10月2日.
ソフトウェア工学 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
47070 オブジェクト指向モデリング [1] 2002年10月1日.
Chapter7 その他の図 FM13010  須崎研 村上 太一.
その他の図 Chapter 7.
UMLの概要とオブジ工クト指向の基本概念 第2回
47070 オブジェクト指向モデリング [7] 2001年11月 12日.
11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS.
アスペクト指向に基づく 拡張可能な MDAモデルコンパイラ
社会シミュレーションのための モデル作成環境
オブジェクト指向モデリング [2] 2003年10月 7日.
UML関係のTIPS 2008年5月26日 2010年5月16日改訂 海谷 治彦.
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也.
UMLモデルを対象とした リファクタリング候補検出の試み
All Rights Reserved, Copyright © 2004, Kobayashi
47070 オブジェクト指向モデリング [3] 2001年10月16日.
物理的側面を表現する図 Chapter6 物理的側面を表現する図について徐研究室の大楠が発表します。 FM13005 大楠拓也 徐研究室.
プログラミング言語論 第十四回 理工学部 情報システム工学科 新田直也.
シナリオを用いたレビュー手法PBRの追証実験 - UMLで記述された設計仕様書を対象として -
1-3 UMLの図(ダイアグラム) コンポーネント図 システムの物理的な構成を表現 ソフトウェアコンポーネントの依存性を表現
UMLの概要とオブジェクト指向の基本概念
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
All Rights Reserved, Copyright © 2004, Kobayashi
設計情報の再利用を目的とした UML図の自動推薦ツール
Javaによる Webアプリケーション入門 第4回
47070 オブジェクト指向モデリング [8] 2002年12月 3日.
物理的側面を表現する図 石原研 古賀浩之.
ソフトウェア工学 知能情報学部 新田直也.
ソフトウェア工学 理工学部 情報システム工学科 新田直也.
データ中心システム設計方法論“DATARUN” 
自然言語処理2008 平成20年12月22日.
JAVAを対象とした 動的複雑度メトリクスの実験的評価
ソフトウェア工学 知能情報学部 新田直也.
ソフトウェア工学 知能情報学部 新田直也.
GluonJ を用いたビジネスロジックからのデータベースアクセスの分離
アジャイル開発プロセス 森口朋広.
Presentation transcript:

47070 オブジェクト指向モデリング [3] 2001年10月15日

授業資料の置き場 URL http://www.crew.sfc.keio.ac.jp/ lecture/2002objmodel/index.html

良い情報システムを作るために 複雑な現代のシステム 複雑さを低下させる方法 ソフトウェア工学 情報システム工学 A B C D 複雑な現代のシステム 人間が一度に理解できる量を越えている ビジネスの本質に関わっている 複雑さを低下させる方法 モジュール化 よいモジュール(高い凝集度) 制約されたアクセス(低い結合度) 契約(限定されたインタフェース) ソフトウェア工学 作り方の工夫(品質) 情報システム工学 業務の選択・創造(効果) A’ B’ D’ client server 依存性 A B C’

質問カードから 分析→設計→制作→検査のほかに「比較」が必要? 現場で分析・設計に時間はかけられないのでは どんなシステムを作るかを分析の中で検討します。 機能や性能の比較や評価(定量的,定性的),実現可能性などを検討します。 設計や制作においても比較は有効です。 現場で分析・設計に時間はかけられないのでは 「十分」の基準がないので 満足なモデルができたかどうかを基準にしては 4つのワークフローに割く時間の比率は ケースバイケースです          工程 分析 設計 制作 検査 受入 事例 "Zelkowitz" "Zelkowitz & NASA" Griffin 20 15 45 22 49 16 13 23 28 24

質問カードから 「2-4-2-3」の法則は「4」で突っ走るべきか 要求記述の方法は 経営コンサルでもUMLを使うの? 2の見積もりが甘いだけです すべての必要機能を前もって知ることは難しいのです 1つの解決策は,小さく段階的に作っていくことです 要求記述の方法は ユースケースを使います 要求の取り出しについては形式的な方法がありません 経営コンサルでもUMLを使うの? 目的と人によります。 モデルを概念の整理と業務設計に使う人がいます。 ビジネスプロセスの記述に使います。

質問カードから OO(Object Oriented)とは何かについて触れて欲しい OOの成功例はあるか 今日,触れます OOの成功例はあるか OOプログラミングは成功しています(OSやGUIなど) OOシステムの成功例は少ないです(OO以外でもできる) 私がやっているシステムはOOでなければできないものですが,なかなか受け入れられません(受け取った側が保守できないから)。 抽象的な話を一方的にだらだらしゃべるだけでは眠くなるだけ。インタラクティブにテンポよくやってほしい 当てていきます。答えてくださいね。

第3回 オブジェクトの概念とUML 3.1 オブジェクトとは何か 3.2 型とクラス 3.3 オブジェクトは良いシステム作りに役立つか オブジェクト指向モデリング 第3回 オブジェクトの概念とUML 3.1 オブジェクトとは何か 3.2 型とクラス 3.3 オブジェクトは良いシステム作りに役立つか 3.4 継承 3.5 UML テキスト 第2章

3.1 オブジェクトとは何か オブジェクト指向パラダイム オブジェクト 3.オブジェクトの概念とUML 3.1 オブジェクトとは何か オブジェクト指向パラダイム 世界は「オブジェクト」の相互作用で成立しているという想定に基づいてソフトウェアを作成する 認識の世界(Universe of Discourse) オブジェクト メッセージを受け取って反応する(behavior) 反応の結果はオブジェクトの内部状態(state)に依存する 個々のオブジェクトが識別される(identity) 16ページ resetTimeTo(newTime) reportTime() myClock resetTimeTo(07:43)

3.1 オブジェクトとは何か 非オブジェクト指向 オブジェクト指向 関数呼び出し 状態を持つ「もの」 メソッド呼び出し 1つのコード 3.オブジェクトの概念とUML 3.1 オブジェクトとは何か 非オブジェクト指向 関数呼び出し 1つのコード ケース分けのロジック オブジェクト指向 状態を持つ「もの」 メソッド呼び出し メッセージ 個別のコード A A B B A B resetTimeTo(07:43) OK A 13:18 07:43 reportTime() B 16:47 It’s 16:47

3.1 オブジェクトとは何か メッセージ インタフェース 自分自身にも送ることができる 受理可能なメッセージの定義 3.オブジェクトの概念とUML 3.1 オブジェクトとは何か メッセージ 自分自身にも送ることができる インタフェース 受理可能なメッセージの定義 公開インタフェース(public) 非公開インタフェース(private) Obj.resetTimeTo(07:43) セレクタ 引数 送信先オブジェクト obj3 resetTimeTo() reportTime() obj2 obj1 Obj1.resetTimeTo(07:45) OK

3.1 オブジェクトとは何か クラス なぜクラスが必要か 類似のオブジェクトをグループ化 クラスに属するオブジェクトの生成 3.オブジェクトの概念とUML 3.1 オブジェクトとは何か 17ページ クラス 類似のオブジェクトをグループ化 何をもって類似と判断するか 振る舞い,属性,インタフェース クラスに属するオブジェクトの生成 Object の工場としてのクラス なぜクラスが必要か 同じ特性をまとめて記述する write once! 型としての効果 型チェック resetTimeTo() reportTime() resetTimeTo() reportTime()

3.1 オブジェクトとは何か 何がオブジェクトか 次のうちオブジェクトと考えられるのはどれか かなづち 球体 化学合成 愛 霧 川 怒り 猫 3.オブジェクトの概念とUML 3.1 オブジェクトとは何か 何がオブジェクトか 次のうちオブジェクトと考えられるのはどれか かなづち 球体 化学合成 愛 霧 川 怒り 猫 灰色さ 灰色の猫 15ページ

3.2 型とクラス クラスはOOプログラミングにおけるモジュール 型は分析で扱うクラス候補 3.オブジェクトの概念とUML 3.2 型とクラス 教科書外 クラスはOOプログラミングにおけるモジュール UoDの概念と対応していなければならない理由はない 型は分析で扱うクラス候補 UoDにおける概念に対応させる 世界の理解,共有 semantic data modeling 概念を集合として扱う 集合と要素 型 現実世界 解釈 パッケージ コンポー ネント クラス 翻訳 活動 概念レベル 実装レベル

3.2 型とクラス 型 クラス 概念 集合 インタフェース 型の実装 実装上の都合 類似のものをひとまとめにしてとらえる 境界を定める 3.オブジェクトの概念とUML 3.2 型とクラス 型 概念 類似のものをひとまとめにしてとらえる 境界を定める 集合 共通の属性種 個別の属性値 インタフェース 操作 クラス 型の実装 データ項目 メソッド 実装上の都合 顧客 児玉公信 大岩商店 小林商店 小泉一郎 山田太郎 集合 要素 概念 型 インスタンス プログラム クラス オブジェクト 要求 ユースケース シナリオ

3.3 オブジェクトは良いシステム作りに役立つか 3.オブジェクトの概念とUML 3.3 オブジェクトは良いシステム作りに役立つか オブジェクト指向プログラミング 良いモジュール OOの制約によって良いモジュールとなる 凝集度が高いクラス インタフェースによる結合度の制約 良いコンポーネント 再利用可能 オブジェクト指向の世界観 「オブジェクトの世界」を「ユーザの世界」と整合させたい 概念と概念構造 ユーザの要求を把握しやすい 要求獲得を容易に 変更要求に追随する オブジェクトメタファーが有効? 20ページ UoD

3.3 オブジェクトは良いシステム作りに役立つか 3.オブジェクトの概念とUML 3.3 オブジェクトは良いシステム作りに役立つか コンポーネントが再利用可能となる前提 アーキテクチャ ユーザインタフェース HTML アプリケーション(機能) ドメイン(概念の世界) SQL 永続化

3.4 継承 実装レベル 概念レベル サブクラス サブタイプ 顧客 最もオブジェクト指向らしいメカニズム 部分集合 分類 3.オブジェクトの概念とUML 3.4 継承 22ページ 実装レベル サブクラス 最もオブジェクト指向らしいメカニズム 機能の拡張(追加,上書き) ポリモーフィズムのベース 概念レベル サブタイプ 部分集合 分類 多重分類 動的分類 状態の分類 顧客 国内 国外 一般 重要

3.5 UML Three Amigos Unified Modeling Language James Rumbaugh Grady Booch Ivar Jacobson Unified Modeling Language 1995年10月 Unified Method V0.8 1997年1月  UML 1.1 on OMG 1998年6月  UML 1.3 on OMG 2001年2月  UML 1.4 on OMG Openなプロセスによって改良 ISO化の動き UML 1.4.1

3.5 UML 表記法 3.オブジェクトの概念とUML ユースケース図 ステートチャート図 クラス図 活動図 オブジェクト図 協調図 概念レベル 実装レベル 静的側面 動的側面 機能側面 クラス図 オブジェクト図 ステートチャート図 物理側面 コンポーネント図 配置図 協調図 シーケンス図 関心 観点 ユースケース図 ノート,型-インスタンスの対応 仕様レベル パッケージ 制約と注釈,ステレオタイプ 図の要素 モデル管理 汎用拡張機構 活動図

3.5 UML 表記法 モデリングプロセスは別! クラス図 相互作用図 状態図 ユースケース図 パッケージ 配置図 シーケンス図,コラボレーション図 状態図 ステートチャート図,アクティビティ図 ユースケース図 パッケージ 配置図 モデリングプロセスは別! アイコンを自由に定義できる→拡張可能

3.5 UML クラス図 概念レベル 実装レベル Universe of Discourseの表現 概念と概念の構造 プログラムの設計 A Notify() Attach(Observer) Detach(observer) ConcreteA GetState() B update() ConcreteB * observer subject observerState subjectState self.observerState= subject.GetState() self.observer ->update() return subjectState

3.5 UML シーケンス図 概念の境界を定める 責任の配分 相互作用 3.オブジェクトの概念とUML a:A b1:B b2:B Notify( ) Update( ) GetState( ) a:A b1:B b2:B SetState( )

3.5 UML アクティビティ図 ワークフロー 3.オブジェクトの概念とUML 受注係 出荷係 輸送係 注文を受ける 在庫を確認する 出荷指示をする 出荷する 納入する 受注係 出荷係 輸送係

3.5 UML ユースケース図 概念レベル 仕様レベル 要求の切り出し 要求の記述 対話の詳細化 3.オブジェクトの概念とUML 受注係 注文を受ける 在庫を確認する 出荷を指示する