オブジェクト指向モデリング [3] 2003年10月14日
2.2 表記法の概要(0) 9種の表記法 概念レベル ①クラス図 ②オブジェクト図 ⑥ステートチャート図 ⑦活動図 ③ユースケース図 2. モデリング言語 2.2 表記法の概要(0) 9種の表記法 関心 静的側面 機能側面 動的側面 物理側面 観点 概念レベル ①クラス図 ②オブジェクト図 ⑥ステートチャート図 ⑦活動図 ③ユースケース図 ④協調図 ⑤シーケンス図 仕様レベル ⑧コンポーネント図 ⑨配置図 実装レベル 図の要素 ノート,型-インスタンスの対応 モデル管理 パッケージ 汎用拡張機構 制約と注釈,ステレオタイプ アクションの記述 アクションセマンティクス
2.3 開発プロセスとモデル ソフトウエアプロセス ワークフロー フェーズ設定 実装 機能 機能 要求記述 分析 設計 制作 問題,目的 2. モデリング言語 2.3 開発プロセスとモデル ソフトウエアプロセス ワークフロー フェーズ設定 方向づけ 推敲 構築 移行 分析 設計 制作 検査 問題,目的 変換(演繹) 判断 制約,価値観 変換(演繹) 判断 制約,価値観 変換(演繹) 判断 制約,価値観 Function 機能 Feature 機能 Artifact 実装 Requirements 要求記述 変換 変換 変換 要求記述(ユースケース) 分析 概念レベル 設計 仕様レベル 制作 実装レベル 検査 型図(クラス図) ワークフロー(活動図) クラス図 相互作用図 クラス図 配置図
シラバス 授業計画 回 月日 内容 1 9月 30日 オリエンテーション:モデルとは何か。 2 10月 7日 モデリング言語:UMLの概要 オブジェクト指向モデリング シラバス 授業計画 回 月日 内容 1 9月 30日 オリエンテーション:モデルとは何か。 2 10月 7日 モデリング言語:UMLの概要 3 10月14日 静的モデル1:概念とクラス,関連 4 10月21日 静的モデル2:関連 5 10月28日 静的モデル3:オブジェクト図 6 11月 4日 静的モデル4:高度な関連 7 11月11日 機能モデル1:ユースケース 8 11月18日 機能モデル2:ユースケース記述,シナリオ 9 12月 2日 動的モデル:協調図,シーケンス図,状態図,活動図 10 12月 9日 モデル図の理解:アナリシスパターン,事例 11 12月16日 モデリング1:モデル図の作成,モデルの評価基準 12 1月13日 モデリング2:例題によるユースケース記述 13 1月20日 モデリング3:例題によるモデル図の作成
3. 概念とクラス 3.1 概念レベル 3.2 クラス図の背景 3.3 概念 3.4 概念と型 3.5 クラスシンボル 3.6 属性と操作 オブジェクト指向モデリング 3. 概念とクラス 3.1 概念レベル 3.2 クラス図の背景 3.3 概念 3.4 概念と型 3.5 クラスシンボル 3.6 属性と操作
3.1 概念レベル 概念モデル なぜ概念レベルのモデルを書くのか 対象世界を深く理解する 概念間の関係として書く 概念の意味は関係で定まる 3. 概念とクラス 3.1 概念レベル 世界 概念モデル 対象世界を深く理解する 概念間の関係として書く 概念の意味は関係で定まる 最小かつ完備 なぜ概念レベルのモデルを書くのか 対象世界を本質的に理解する 実装技術上の都合によって,理解をゆがめない より良い情報システムを作りたい 世界の変化に情報システムが追随できるように
3.2 クラス図の背景 概念データモデル 記述ルール クラス図 E-R図(P.P.Chen) さまざまなE-R図の拡張 3. 概念とクラス 3.2 クラス図の背景 概念データモデル E-R図(P.P.Chen) さまざまなE-R図の拡張 情報図(Shlaer-Mellor) OMTのオブジェクト図(Rumbaughほか) 記述ルール クラス図 概念構造 モジュール構造 学生 N 履修 N 科目 学生 履修 科目 学生 履修 科目 氏名 生年月日 成績 科目名 単位 学生 履修 科目 * * 氏名 生年月日 成績 科目名 単位
3.3 概念(1) 概念 エンティティセット よい概念を 「商品」というと具体的に思えるが 観察者によってプロセスの意味が異なる 3. 概念とクラス 3.3 概念(1) 概念 「商品」というと具体的に思えるが 他の概念やプロセスとの関わりがあって,はじめて意味が定まる その意味が,将来,変わるかもしれない 観察者によってプロセスの意味が異なる 「取引」か「販売」か ビュー(外部表現)は概念でない 名前を持つ エンティティセット よい概念を 見つける 磨く 在庫品 製品 送り荷 サービス 商品
3.3 概念(2) 概念を集合として扱う 集合を特徴づける属性 関係が概念を決める たとえば,学生とは... 3. 概念とクラス 3.3 概念(2) 辞書的定義「学校で学ぶ人」が,そのまま問題領域で使われることはない 概念を集合として扱う たとえば,学生とは... 「本学の入学試験に合格して入学手続きをした個人」 学生である人とそうでない人を分ける・・境界を定める 集合を特徴づける属性 関係が概念を決める 「学生」の集合 属性 ・氏名 ・学部 ・生年月日 属性の値 氏名:小泉淳之介 学部:政経 生年月日:1982年5月4日 属性の値 氏名:児玉公信 学部:心理学 生年月日:1983年11月11日 属性の値 氏名:田口洋介 学部:工学 生年月日:1978年8月20日 属性の値 氏名:中山美子 学部:農学 生年月日:1982年9月30日 学生でない人
3.3 概念(3) 演習1 ファーストフード店のシステムを考えて, 3. 概念とクラス 3.3 概念(3) 演習1 ファーストフード店のシステムを考えて, 重要と思われる概念を1つ挙げて,その主要な属性と,インスタンスをいくつか示してください。
3.4 概念と型 概念を「型」に対応づける 「型」を「クラス」に対応づける 型:構造化された概念 3. 概念とクラス 3.4 概念と型 概念を「型」に対応づける 「型」を「クラス」に対応づける 型:構造化された概念 クラス:プログラムを構成するモジュールの単位 概念をエンティティセットに対応づける エンティティセットをRDBの「表」に対応づける 児玉公信 オブジェクト指向モデリング 小泉淳之介 生産管理システム入門 田口洋介 履修する 問題発見と問題解決 中山美子 「学生」の集合 「授業科目」の集合 学生 氏名 学部 : 授業科目 名称 教員 0..* 履修する
3.5 クラスシンボル 型の構造をクラス図で表記する クラスシンボル 関連 クラス名→型名 データ→(型の)属性 メソッド→(型の)操作 3. 概念とクラス 3.5 クラスシンボル 型の構造をクラス図で表記する クラスシンボル クラス名→型名 データ→(型の)属性 メソッド→(型の)操作 関連 関連名 多重度 学生 氏名 学部 : 名前を教えて 年齢を教えて 授業科目 名称 教員 : 履修申請する 教員を変更する 履修する * *
3.6 属性と操作(1) 属性 理解に必要な属性 本 書名 is a copy of 3. 概念とクラス 0..* 1..1 何番め 書名 購入日 借りた日 返却予定日 : 書名 著者 訳者 発行日 ISBN 貸出可能数 : is a copy of 0..* 1..1
3.6 属性と操作(2) 操作 その型が持つ責任 本 書名 is a copy of 3. 概念とクラス 0..* 1..1 何番め 購入日 借りた日 返却予定日 : 書名 著者 訳者 発行日 ISBN 貸出可能数 : is a copy of 0..* 1..1 ある機能を実現するために必要な操作 is貸出可能() 借りる() : 貸出実施()
3.6 属性と操作(2) 操作の割当て ユースケース「本を借りる」 書名 会員 貸出 本 is a copy of 3. 概念とクラス d:貸出 a:会員 b:本 c:書名 書名 著者 訳者 発行日 ISBN /貸出可能数 : 利用者 new 1..1 is a copy of 0..* 会員 貸出 本 氏名 住所 : 借りた日 返却予定日 : 何番め 購入日 : 0..* 0..* 1..1 1..1 isValid() : 借りる() 返却() : is貸出可能() :
4. 関連 4.1 関連と多重度 4.2 ロール 4.3 再帰関連 4.4 汎化関連 4.5 集約関連 4.6 補足的な関連 問題解決からビジネスモデリングへ 4. 関連 4.1 関連と多重度 4.2 ロール 4.3 再帰関連 4.4 汎化関連 4.5 集約関連 4.6 補足的な関連
ソースを主語とし,関連名を述語として読めるように... 4. 関連 4.1 関連と多重度(1) 関連(association) 関連の方向 ソース → ターゲット ソースを主語とし,関連名を述語として読めるように... 書名 本 is a copy of 0..* 1..1 実践ファンクションポイント法 リファクタリング UMLを使って 1番め 2番め 3番め 本 書名
4.1 関連と多重度(2) 多重度(multiplicity) インスタンスどうしの対応(リンク)数 書名 本 ターゲットの近傍に表記 4. 関連 4.1 関連と多重度(2) 多重度(multiplicity) インスタンスどうしの対応(リンク)数 ターゲットの近傍に表記 0,1,* 最小数..最大数 書名 本 is a copy of 0..* 1..1 実践ファンクションポイント法 リファクタリング UMLを使って 1番め 2番め 3番め 本 書名
4.1 関連と多重度(3) 多重度(multiplicity) ソースのある1つのインスタンスからリンクされるターゲットのインスタンス数 本 4. 関連 4.1 関連と多重度(3) 多重度(multiplicity) ソースのある1つのインスタンスからリンクされるターゲットのインスタンス数 0..* 本 書名 1..1 実践ファンクションポイント法 リファクタリング UMLを使って 1番め 2番め 3番め 本 書名
4.1 関連と多重度(4) 多重度の表記 関連の表記 書名 本 本 書名 最小数..最大数 「2..5」 4. 関連 4.1 関連と多重度(4) 多重度の表記 最小数..最大数 「2..5」 列挙 「2,5」,「0..1,3,5」 無限 「*」 省略 「0..*」=「*」,「1..1」=「1」 関連の表記 関連名:自明なら省略 関連の方向:自明なら省略 書名 本 is a copy of 0..* 1..1 本 書名 * 1
4.1 関連と多重度(5) 演習2 次の条件で,多重度を埋めてください 4. 関連 4.1 関連と多重度(5) 演習2 次の条件で,多重度を埋めてください 条件:「学生」は最多で6つまでの「授業科目」を履修でき,各「授業科目」には最多で25人の「学生」を登録できる。 授業科目 学生