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