Download presentation
Presentation is loading. Please wait.
1
47070 オブジェクト指向モデリング [8] 2002年12月 3日
2
前回 概念モデルから実装まで 7.1 実装作業の概要 7.2 ユースケース 7.3 実装レベルのクラス図 7.4 シーケンス図
オブジェクト指向モデリング 前回 概念モデルから実装まで 7.1 実装作業の概要 7.2 ユースケース 7.3 実装レベルのクラス図 7.4 シーケンス図 7.5 実装のクラス図 7.6 ソースプログラム
3
実装作業の概要(1) ドメインの実装 型をクラスに 関連の実装 参照の入れ物 参照の方向 ナビゲーション 静的モデル4 商品 販売 まとめ
商品名 単価 数量 /金額 * まとめ 販売日 /合計金額 カテゴリ 名称 売上集計() /売上 日 /売上金額 ドメインの実装 型をクラスに 関連の実装 参照の入れ物 参照の方向 ナビゲーション 1:まとめ :まとめ 2:まとめ :商品 1:販売 2:販売 1:商品 2:商品 :販売 :カテゴリ 1:カテゴリ 2:カテゴリ 3:販売 4:販売 3:商品 アプリケーション(機能) ドメイン(概念の世界) 永続化 ユーザインタフェース ステレオタイプはモデル要素のもう一つの分類 制約はモデルが正しくあるための条件 プロパティは制約の一種で,タグ付き値で表現
4
実装作業の概要(2) 機能の実装 ユースケースの実装 静的モデル4 商品 販売 まとめ カテゴリ /売上 :まとめ :販売 :商品 注文
1 販売 商品名 単価 数量 /金額 * まとめ 販売日 /合計金額 カテゴリ 名称 売上集計() /売上 日 /売上金額 実装作業の概要(2) 機能の実装 ユースケースの実装 販売: ユースケース :まとめ :販売 :商品 受注担当 new まとめ(日付) add販売(the販売) new 販売(the商品, 日付) $get商品(商品ID) getSoldProductNames( ) getProduct( ) getName( ) sumSales( ) 注文 商品ID,数量 精算 [注文あり] [注文なし] getQuantity( ) getSales( ) getPrice( ) 金額 {new} ステレオタイプはモデル要素のもう一つの分類 制約はモデルが正しくあるための条件 プロパティは制約の一種で,タグ付き値で表現
5
第8回 初歩のケーススタディ 8.1 図書館システム 8.2 ユースケース 8.3 ソフトウェアプロセス 8.4 型の認識
オブジェクト指向モデリング 第8回 初歩のケーススタディ 27ページ 8.1 図書館システム 8.2 ユースケース 8.3 ソフトウェアプロセス 8.4 型の認識 8.5 振る舞いのモデル 8.6 概念モデルから実装モデルへ
6
8.1 図書館システム 最初の要求 要求は明確に語られない 大学の図書館の情報システムを開発する
初歩のケーススタディ 8.1 図書館システム 最初の要求 大学の図書館の情報システムを開発する 旧システム(1960年代)がある 索引カードによる閲覧サービス 蔵書の管理 対話型のシステムにする 要求は明確に語られない 要求の優先順位 要求間の矛盾 現行システムとあるべきシステムが区別されない ソフトウェアの仕様と情報システムの仕様は別 システム開発の窓口担当者の能力 そもそも「要求」が一つひとつ取り出されていない その「要求」が妥当なのかどうかもわからない
7
8.1 図書館問題 人間活動システムとしての図書館システム 基本定義(Root Definition) CATWOE分析 基本定義の改訂
初歩のケーススタディ 8.1 図書館問題 人間活動システムとしての図書館システム 基本定義(Root Definition) 「利用者に保有図書の貸出を行うシステム」 CATWOE分析 Customer:利用者 Agent:図書館職員 Transformation:図書を貸す Weltanschauung:目的にふさわしい図書を貸し出すことで,効率的な教育および研究を促す Owner:大学 Environment:大学内の図書館および他大学の図書館 基本定義の改訂 「大学が保有する図書を利用者に貸出して,教育および研究を促進するシステム」 課題:目的にふさわしい図書を取りそろえること(他大学との協力も) 課題:それによってどの程度効率化したかを計測する方法を考えること
8
8.1 図書館問題 Accommodation もう一度CATWOE分析 基本定義の再改訂
初歩のケーススタディ 8.1 図書館問題 Accommodation もう一度CATWOE分析 Customer:利用者 Agent:図書館職員 Transformation:図書を貸す Weltanschauung:図書館職員の作業量を減らし,コストを削減する Owner:大学 Environment:大学内の図書館および他大学の図書館 基本定義の再改訂 「大学が保有する図書を利用者に貸出して,返却までを追跡するシステム」 課題:タイミング良く貸し出すためには? 課題:確実に返却できるためには?
9
8.1 図書館問題 基本定義 システムが備えるべき機能は, 「大学が保有する図書を利用者に貸出して,返却までを追跡するシステム」 本と雑誌
初歩のケーススタディ 8.1 図書館問題 基本定義 「大学が保有する図書を利用者に貸出して,返却までを追跡するシステム」 システムが備えるべき機能は, 本と雑誌 貸出し 検索 この図書館は本と雑誌を所蔵している。1つの著書(タイトル)に対してその本が何冊かある。本によっては短期貸出しのみのものもある。その他の本は図書館の会員ならば3週間までの貸出しが可能である。雑誌は教員の会員だけが借りられる。図書館の会員は通常6冊までを一度に借りられるが,教員の会員は一度に12冊まで借りられる。新刊本と雑誌は定期的に届き,古くなった本は廃棄されることもある。当年分の雑誌は,年度の終わりに業者に委託して1巻にまとめられる。 本や雑誌がいつ借りられ,いつ返却されたかを記録するのは,現システムがすでに行っていることなので,これは必須である。新システムが行うことは,本の返却期限が過ぎてしまったときに督促状を作ることである。また将来的には,もしその本が予約されていなければ,利用者が貸出しを延長できるようにする要求も出てくるだろう。 システムは,ユーザがキーワードや著者名などによって本を検索したり,本が貸出し可能かを確認したり,貸出し可能でなければその本を予約できるようにする必要がある。図書館の中で本の検索は誰でもできるものとする。 演習問題17
10
8.2 ユースケース ユーザと仕事 成功ケース アクタ ユースケース ある役割を持ったシステムの使用者 役割の名前を持つ
初歩のケーススタディ 8.2 ユースケース ユーザと仕事 アクタ ある役割を持ったシステムの使用者 役割の名前を持つ ユースケース システムの助けを借りてアクタが実行する仕事 成功ケース 本の借り手 本を返す 本を借りる 何のために。何がうれしいのか。それは課題を解決するのか。 名称:本を借りる アクタ:本の借り手 目的:アクタは本を読みたい 基本系列: (1) アクタはこのユースケースを起動する。 (2) システムは会員の識別と本の識別を要求する。 (3) アクタは会員の識別と本の識別を提示する。 (4) システムは,会員が妥当で,貸出し可能な冊数の上限に達していないことを 確認して,その本が借りられたことを記録する。 代替系列:借り手が妥当でなければ,貸出しを拒否する。 備考:貸出し可能な冊数の上限は,教員の場合は12冊,教員以外は6冊。
11
8.2 ユースケース ユースケースのポイント システムの外部を述べる ユースケース図とユースケース記述 要求を書く
初歩のケーススタディ 8.2 ユースケース ユースケースのポイント システムの外部を述べる ユースケース図とユースケース記述 名称: アクタ: 目的:アクタの目的,ownerの目的 事前条件: 基本系列: 事後条件: 代替系列: 備考: 要求を書く 機能=変換 アクタの目的とシステムの目的 「でっち上げない」と「漏れをなくす」 ユーザインタフェースの設計ではない 本の借り手 本を返す 本を借りる
12
8.2 ユースケース ユースケース記述 「本を返却する」のユースケース記述を完成してください。 初歩のケーススタディ 名称:本を返却する
アクタ: 目的: したい。 事前条件:本の借り手がその本を借りている。 基本系列: ①アクタはシステムに返却の旨を告げる。 ②システムは返却しようとする本の識別を要求する。 ③アクタはそれらの識別を提示する。 ④システムは,識別を確認して,本が当日返却されたことを記録する。 事後条件:その本が返却されている。 代替系列: A.基本系列④で,本の識別が妥当でない場合,… 備考: 本の識別には,本に付けられたバーコードを使う。 返却された現物の本は,...
13
8.3 ソフトウェアプロセス 反復プロセス 少しずつ建て増ししていく 範囲(スコープ)を決める アーキテクチャ 優先順位づけ リスク最小化
初歩のケーススタディ 8.3 ソフトウェアプロセス 反復プロセス 少しずつ建て増ししていく 範囲(スコープ)を決める アーキテクチャ 優先順位づけ リスク最小化 演習問題19 方向づけ 推敲 構築 移行 分析 設計 制作 検査 要求
14
8.4 型(クラス)の認識 ドメイン 名詞抽出法 もの-こと 型間の構造 UoD 注目しているアプリケーションの領域 型の認識 名詞・名詞句
初歩のケーススタディ 8.4 型(クラス)の認識 UoD ドメイン 注目しているアプリケーションの領域 型の認識 名詞抽出法 名詞・名詞句 候補の選択 責任(インタフェース)の割付・・・・・CRCカード もの-こと 型間の構造 型図 型と関連 ロールと多重度 ナビゲーション可能性,可視性
15
本が借りられたことを誰が知っているべきか
初歩のケーススタディ 8.4 型(クラス)の認識 概念 本 著書(書誌情報) 会員 : 概念の名前 初期モデル モデルの改訂 冗長性のチェック 似た概念の整理 責任の配置 結合度 凝集度 よい抽象 拡張する 本が借りられたことを誰が知っているべきか 著書 1 の印刷物である 1..* 会員 借りる/返却する 本 0..1 0..* 0..* 借りる/返却する 0..1 教員の会員 借りる/返却する 雑誌 0..1 0..*
16
8.4 型(クラス)の認識 改訂版(1) 初歩のケーススタディ 著書 会員 本 教員の会員 雑誌 の印刷物である 借りる/返却する
1..* 会員 借りる/返却する 本 0..1 0..* 教員の会員 借りる/返却する 雑誌 0..1 0..*
17
8.4 型(クラス)の認識 改訂版(2) 初歩のケーススタディ 著書 会員 本 教員の会員 雑誌 制約: 雑誌は教員の会 員だけが借りられる
1 1 の印刷物である 1..* 制約: 会員 借りる/返却する 本 雑誌は教員の会 0..1 0..1 0..* 0..* 員だけが借りられる 教員の会員 雑誌
18
8.4 型(クラス)の認識 拡張版 他のユースケース 「本を予約する」 初歩のケーススタディ 著書 会員 本 教員の会員 雑誌 制約:
0..* 1 予約する の印刷物である 0..1 1..* 会員 借りる/返却する 本 0..1 0..* 制約: 雑誌は教員の会 員だけが借りられる 教員の会員 雑誌
19
8.5 振る舞いのモデル 相互作用図 シーケンス図 オブジェクト間 メッセージ 順序(制御構造) アクティベーション 初歩のケーススタディ
基本系列: (1) アクタはこのユースケースを起動する。 (2) システムは会員の識別と本の識別を要求する。 (3) アクタは会員の識別と本の識別を提示する。 (4) システムは,会員が妥当で,貸出し可能な冊数の上限に達し ていないことを確認して,その本が借りられたことを記録する。 本を借りる :ユースケース UsingUML: A:会員 #123:本 著書 A:本の借り手 会員ID=A,本ID=#123 0: find(A) 0: find(#123) 1: borrow(#123) 1.1: okToBorrow( ) 1.2:borrow( ) 1.2.1:borrowed( )
20
8.5 振る舞いのモデル 相互作用図 コラボレーション図 メッセージつきのオブジェクト図 初歩のケーススタディ A:会員 #123:本
UsingUML: 著書 本の借り手 本を借りる :ユースケース 1: borrow(#123) 1.1: okToBorrow( ) 1.2:borrow( ) 1.2.1:borrowed( ) 会員ID=A,本ID=#123
21
8.5 振る舞いのモデル 状態図 ステートチャート アクティビティ図 オブジェクトの状態 事象 初歩のケーススタディ 「著書」の状態
貸出不可 貸出可 returned() borrowed()[最後の本] borrowed()[最後の本でない] 貸出を申し出る 貸出を記録する 本を帯出する
22
8.6 概念モデルから実装モデルへ 概念モデル 実装モデル 重要な型と構造 重要な属性と操作 重要なインタフェース 実装の都合 非機能要求
初歩のケーススタディ 8.6 概念モデルから実装モデルへ 概念モデル 重要な型と構造 重要な属性と操作 重要なインタフェース 実装モデル 実装の都合 クラス,データ,メソッド インスタンスオブジェクトの生成と消滅 オブジェクトの管理(コレクションの表現),ナビゲーションの方法 非機能要求 ユーザインタフェース層,永続層 パフォーマンス,耐変更性(拡張性),移植性 要求定義 分析 設計 制作 検査 概念レベル 実装レベル 仕様レベル
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.