47070 オブジェクト指向モデリング [8] 2002年12月 3日.

Slides:



Advertisements
Similar presentations
All Rights Reserved Copyright © 2004, Takashi Kobayashi 1 ロバストネス分析の演習問題 <問題1> 次の文をよんで問いに答えよ。 顧客は、 ATM により自分の口座から預金を払い出す。 顧客は、 ATM にキャッシュカードを挿入し、個人認証を行う。
Advertisements

CMU2005 海外エンジニアリングワークショップ参加報告書 1 「真の要求を見極めろ!」: teamB 要求定義をどう捉えるか ● 要求定義とは何か? 製品には、顧客の望むことを正しく反映させる必要がある。 そのために必要なものが要求仕様である。 すなわち、要求仕様とは、顧客と製品を結ぶものであり、これを作ることが要求定義である。
Chapter1 UML の概要とオブジェクト指向の基本概念 1 情報工学専攻 MFM10004 奥平 健太.
1 農学部図書館 図書館 農学部分館 利用案内 2011. 2 目次 1. 茨城大学図書館につい て 2. 農学部分館利用案内 3. 館内ツアー 農学部図書館.
4 相互作用図 後半 FM13001 青野大樹.
相互作用図 FM11010 田中健太.
ソフトウェア工学特論III 第10回 その他の図 情報通信工学専攻 GM11013 堀江 真史
アルゴリズムとプログラミング (Algorithms and Programming)
東京工科大学 コンピュータサイエンス 亀田弘之
オブジェクト指向プログラミング(4) 静的分析(2)
知識情報演習Ⅲ(後半第1回) 辻 慶太(水)
Chapter 4 相互作用図 FM12010 中山直飛.
ソフトウェア工学特論Ⅲ ユースケース図 後半
データモデリング トップダウンモデルと ボトムアップモデルの融合
ユースケース図 FM12012 比嘉久登.
シナリオ(インターネット入試の「選抜」)
練習問題4.
CHAPTER1 UMLとオブジェクト指向の基本概念(2)
UMLの概要と オブジェクト指向の 基本概念
パッケージソフトウェア利用コンピュータシステム構築委託契約書 パッケージソフトウェア、OS、第三者ソフトウェアの使用許諾契約
47070 オブジェクト指向モデリング [11] 2002年1月8日.
ソフトウェア設計における意思決定ガイドラインとしてのデザインパターンのモデル
セマンティクスを利用した 図書検索システム
Chapter 2 ユースケース図 FM12011 バユウユウ 山内研究室
ユースケース図2-4~ FM11012 中島拓也.
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
UML入門 UML PRESS vol.1 より 時松誠治 2003年5月19日.
ユースケース オブジェクト指向の要求分析のためのモデル。 スウェーデンのイヴァー・ヤコブソンが1990年代前半に開発。
UMLとは           032234 田邊祐司.
47070 オブジェクト指向モデリング [12] 2002年1月15日.
47070 オブジェクト指向モデリング [13] 2003年 1月21日.
47070 オブジェクト指向モデリング [4] 2001年10月23日.
オブジェクト指向モデリング [3] 2003年10月14日.
チーム FSEL 立命館大学情報理工学部 ソフトウェア基礎技術研究室
47070 オブジェクト指向モデリング [1] 2001年10月2日.
シミュレーション論 Ⅱ 第15回 まとめ.
~手続き指向からオブジェクト指向へ[Ⅱ]~
47070 オブジェクト指向モデリング [1] 2002年10月1日.
Chapter7 その他の図 FM13010  須崎研 村上 太一.
47070 オブジェクト指向モデリング [6] 2001年11月13日.
その他の図 Chapter 7.
47070 オブジェクト指向モデリング [7] 2001年11月 12日.
暗黙的に型付けされる構造体の Java言語への導入
只見町 インターネット・エコミュージアムの「キーワード」検索の改善
3.資料(情報)の探し方 図書館キャラクター 「わらづと君」
社会シミュレーションのための モデル作成環境
オブジェクト指向モデリング [2] 2003年10月 7日.
UML関係のTIPS 2008年5月26日 2010年5月16日改訂 海谷 治彦.
All Rights Reserved, Copyright © 2004, Kobayashi
シナリオのアニメーション表示による 妥当性確認支援
11.3 酒屋の在庫問題(8) ユースケース 仕入販売支援システム 11. モデリング 受注する 入庫を記録する 在庫を引き当てる 受付係
47070 オブジェクト指向モデリング [3] 2001年10月16日.
会社名 ビジネス プラン プレゼンテーション.
図書館ガイダンス ー院生編ー.
ビジネス プロジェクトの計画 発表者名 | 会社名.
1-3 UMLの図(ダイアグラム) コンポーネント図 システムの物理的な構成を表現 ソフトウェアコンポーネントの依存性を表現
UMLの概要とオブジェクト指向の基本概念
パッケージソフトウェア利用コンピュータシステム構築委託契約書 パッケージソフトウェア、OS、第三者ソフトウェアの使用許諾契約
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
All Rights Reserved, Copyright © 2004, Kobayashi
設計情報の再利用を目的とした UML図の自動推薦ツール
オブジェクト指向モデリング [11] 2003年12月16日.
オブジェクト指向モデリング [9] 2003年12月2日.
プログラム分散化のための アスペクト指向言語
データ中心システム設計方法論“DATARUN” 
47070 オブジェクト指向モデリング [3] 2001年10月15日.
ソフトウェア工学 知能情報学部 新田直也.
より分かりやすい ユースケースモデルを作る
47070 オブジェクト指向モデリング [10] 2001年12月18日.
オブジェクト指向モデリング [13] 2004年1月20日.
Presentation transcript:

47070 オブジェクト指向モデリング [8] 2002年12月 3日

前回 概念モデルから実装まで 7.1 実装作業の概要 7.2 ユースケース 7.3 実装レベルのクラス図 7.4 シーケンス図 オブジェクト指向モデリング 前回 概念モデルから実装まで 7.1 実装作業の概要 7.2 ユースケース 7.3 実装レベルのクラス図 7.4 シーケンス図 7.5 実装のクラス図 7.6 ソースプログラム

実装作業の概要(1) ドメインの実装 型をクラスに 関連の実装 参照の入れ物 参照の方向 ナビゲーション 静的モデル4 商品 販売 まとめ 商品名 単価 数量 /金額 * まとめ 販売日 /合計金額 カテゴリ 名称 売上集計() /売上 日 /売上金額 ドメインの実装 型をクラスに 関連の実装 参照の入れ物 参照の方向 ナビゲーション 1:まとめ :まとめ 2:まとめ :商品 1:販売 2:販売 1:商品 2:商品 :販売 :カテゴリ 1:カテゴリ 2:カテゴリ 3:販売 4:販売 3:商品 アプリケーション(機能) ドメイン(概念の世界) 永続化 ユーザインタフェース ステレオタイプはモデル要素のもう一つの分類 制約はモデルが正しくあるための条件 プロパティは制約の一種で,タグ付き値で表現

実装作業の概要(2) 機能の実装 ユースケースの実装 静的モデル4 商品 販売 まとめ カテゴリ /売上 :まとめ :販売 :商品 注文 1 販売 商品名 単価 数量 /金額 * まとめ 販売日 /合計金額 カテゴリ 名称 売上集計() /売上 日 /売上金額 実装作業の概要(2) 機能の実装 ユースケースの実装 販売: ユースケース :まとめ :販売 :商品 受注担当 new まとめ(日付) add販売(the販売) new 販売(the商品, 日付) $get商品(商品ID) getSoldProductNames( ) getProduct( ) getName( ) sumSales( ) 注文 商品ID,数量 精算 [注文あり] [注文なし] getQuantity( ) getSales( ) getPrice( ) 金額 {new} ステレオタイプはモデル要素のもう一つの分類 制約はモデルが正しくあるための条件 プロパティは制約の一種で,タグ付き値で表現

第8回 初歩のケーススタディ 8.1 図書館システム 8.2 ユースケース 8.3 ソフトウェアプロセス 8.4 型の認識 オブジェクト指向モデリング 第8回 初歩のケーススタディ 27ページ 8.1 図書館システム 8.2 ユースケース 8.3 ソフトウェアプロセス 8.4 型の認識 8.5 振る舞いのモデル 8.6 概念モデルから実装モデルへ

8.1 図書館システム 最初の要求 要求は明確に語られない 大学の図書館の情報システムを開発する 初歩のケーススタディ 8.1 図書館システム 最初の要求 大学の図書館の情報システムを開発する 旧システム(1960年代)がある 索引カードによる閲覧サービス 蔵書の管理 対話型のシステムにする 要求は明確に語られない 要求の優先順位 要求間の矛盾 現行システムとあるべきシステムが区別されない ソフトウェアの仕様と情報システムの仕様は別 システム開発の窓口担当者の能力 そもそも「要求」が一つひとつ取り出されていない その「要求」が妥当なのかどうかもわからない

8.1 図書館問題 人間活動システムとしての図書館システム 基本定義(Root Definition) CATWOE分析 基本定義の改訂 初歩のケーススタディ 8.1 図書館問題 人間活動システムとしての図書館システム 基本定義(Root Definition) 「利用者に保有図書の貸出を行うシステム」 CATWOE分析 Customer:利用者 Agent:図書館職員 Transformation:図書を貸す Weltanschauung:目的にふさわしい図書を貸し出すことで,効率的な教育および研究を促す Owner:大学 Environment:大学内の図書館および他大学の図書館 基本定義の改訂 「大学が保有する図書を利用者に貸出して,教育および研究を促進するシステム」 課題:目的にふさわしい図書を取りそろえること(他大学との協力も) 課題:それによってどの程度効率化したかを計測する方法を考えること

8.1 図書館問題 Accommodation もう一度CATWOE分析 基本定義の再改訂 初歩のケーススタディ 8.1 図書館問題 Accommodation もう一度CATWOE分析 Customer:利用者 Agent:図書館職員 Transformation:図書を貸す Weltanschauung:図書館職員の作業量を減らし,コストを削減する Owner:大学 Environment:大学内の図書館および他大学の図書館 基本定義の再改訂 「大学が保有する図書を利用者に貸出して,返却までを追跡するシステム」 課題:タイミング良く貸し出すためには? 課題:確実に返却できるためには?

8.1 図書館問題 基本定義 システムが備えるべき機能は, 「大学が保有する図書を利用者に貸出して,返却までを追跡するシステム」 本と雑誌 初歩のケーススタディ 8.1 図書館問題 基本定義 「大学が保有する図書を利用者に貸出して,返却までを追跡するシステム」 システムが備えるべき機能は, 本と雑誌 貸出し 検索  この図書館は本と雑誌を所蔵している。1つの著書(タイトル)に対してその本が何冊かある。本によっては短期貸出しのみのものもある。その他の本は図書館の会員ならば3週間までの貸出しが可能である。雑誌は教員の会員だけが借りられる。図書館の会員は通常6冊までを一度に借りられるが,教員の会員は一度に12冊まで借りられる。新刊本と雑誌は定期的に届き,古くなった本は廃棄されることもある。当年分の雑誌は,年度の終わりに業者に委託して1巻にまとめられる。  本や雑誌がいつ借りられ,いつ返却されたかを記録するのは,現システムがすでに行っていることなので,これは必須である。新システムが行うことは,本の返却期限が過ぎてしまったときに督促状を作ることである。また将来的には,もしその本が予約されていなければ,利用者が貸出しを延長できるようにする要求も出てくるだろう。  システムは,ユーザがキーワードや著者名などによって本を検索したり,本が貸出し可能かを確認したり,貸出し可能でなければその本を予約できるようにする必要がある。図書館の中で本の検索は誰でもできるものとする。 演習問題17

8.2 ユースケース ユーザと仕事 成功ケース アクタ ユースケース ある役割を持ったシステムの使用者 役割の名前を持つ 初歩のケーススタディ 8.2 ユースケース ユーザと仕事 アクタ ある役割を持ったシステムの使用者 役割の名前を持つ ユースケース システムの助けを借りてアクタが実行する仕事 成功ケース 本の借り手 本を返す 本を借りる 何のために。何がうれしいのか。それは課題を解決するのか。 名称:本を借りる アクタ:本の借り手 目的:アクタは本を読みたい 基本系列:  (1) アクタはこのユースケースを起動する。  (2) システムは会員の識別と本の識別を要求する。  (3) アクタは会員の識別と本の識別を提示する。  (4) システムは,会員が妥当で,貸出し可能な冊数の上限に達していないことを   確認して,その本が借りられたことを記録する。 代替系列:借り手が妥当でなければ,貸出しを拒否する。 備考:貸出し可能な冊数の上限は,教員の場合は12冊,教員以外は6冊。

8.2 ユースケース ユースケースのポイント システムの外部を述べる ユースケース図とユースケース記述 要求を書く 初歩のケーススタディ 8.2 ユースケース ユースケースのポイント システムの外部を述べる ユースケース図とユースケース記述 名称: アクタ: 目的:アクタの目的,ownerの目的 事前条件: 基本系列: 事後条件: 代替系列: 備考: 要求を書く 機能=変換 アクタの目的とシステムの目的 「でっち上げない」と「漏れをなくす」 ユーザインタフェースの設計ではない 本の借り手 本を返す 本を借りる

8.2 ユースケース ユースケース記述 「本を返却する」のユースケース記述を完成してください。 初歩のケーススタディ 名称:本を返却する アクタ: 目的:                               したい。 事前条件:本の借り手がその本を借りている。 基本系列:  ①アクタはシステムに返却の旨を告げる。  ②システムは返却しようとする本の識別を要求する。  ③アクタはそれらの識別を提示する。  ④システムは,識別を確認して,本が当日返却されたことを記録する。 事後条件:その本が返却されている。 代替系列:  A.基本系列④で,本の識別が妥当でない場合,… 備考:  本の識別には,本に付けられたバーコードを使う。  返却された現物の本は,...

8.3 ソフトウェアプロセス 反復プロセス 少しずつ建て増ししていく 範囲(スコープ)を決める アーキテクチャ 優先順位づけ リスク最小化 初歩のケーススタディ 8.3 ソフトウェアプロセス 反復プロセス 少しずつ建て増ししていく 範囲(スコープ)を決める アーキテクチャ 優先順位づけ リスク最小化 演習問題19 方向づけ 推敲 構築 移行 分析 設計 制作 検査 要求

8.4 型(クラス)の認識 ドメイン 名詞抽出法 もの-こと 型間の構造 UoD 注目しているアプリケーションの領域 型の認識 名詞・名詞句 初歩のケーススタディ 8.4 型(クラス)の認識 UoD ドメイン 注目しているアプリケーションの領域 型の認識 名詞抽出法 名詞・名詞句 候補の選択 責任(インタフェース)の割付・・・・・CRCカード もの-こと 型間の構造 型図 型と関連 ロールと多重度 ナビゲーション可能性,可視性

本が借りられたことを誰が知っているべきか 初歩のケーススタディ 8.4 型(クラス)の認識 概念 本 著書(書誌情報) 会員  : 概念の名前 初期モデル モデルの改訂 冗長性のチェック 似た概念の整理 責任の配置 結合度 凝集度 よい抽象 拡張する  本が借りられたことを誰が知っているべきか 著書 1 の印刷物である 1..* 会員 借りる/返却する 本 0..1 0..* 0..* 借りる/返却する 0..1 教員の会員 借りる/返却する 雑誌 0..1 0..*

8.4 型(クラス)の認識 改訂版(1) 初歩のケーススタディ 著書 会員 本 教員の会員 雑誌 の印刷物である 借りる/返却する 1..* 会員 借りる/返却する 本 0..1 0..* 教員の会員 借りる/返却する 雑誌 0..1 0..*

8.4 型(クラス)の認識 改訂版(2) 初歩のケーススタディ 著書 会員 本 教員の会員 雑誌 制約: 雑誌は教員の会 員だけが借りられる 1 1 の印刷物である 1..* 制約: 会員 借りる/返却する 本  雑誌は教員の会 0..1 0..1 0..* 0..* 員だけが借りられる 教員の会員 雑誌

8.4 型(クラス)の認識 拡張版 他のユースケース 「本を予約する」 初歩のケーススタディ 著書 会員 本 教員の会員 雑誌 制約: 0..* 1 予約する の印刷物である 0..1 1..* 会員 借りる/返却する 本 0..1 0..* 制約:  雑誌は教員の会 員だけが借りられる 教員の会員 雑誌

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( )

8.5 振る舞いのモデル 相互作用図 コラボレーション図 メッセージつきのオブジェクト図 初歩のケーススタディ A:会員 #123:本 UsingUML: 著書 本の借り手 本を借りる :ユースケース 1: borrow(#123) 1.1: okToBorrow( ) 1.2:borrow( ) 1.2.1:borrowed( ) 会員ID=A,本ID=#123

8.5 振る舞いのモデル 状態図 ステートチャート アクティビティ図 オブジェクトの状態 事象 初歩のケーススタディ 「著書」の状態 貸出不可 貸出可 returned() borrowed()[最後の本] borrowed()[最後の本でない] 貸出を申し出る 貸出を記録する 本を帯出する

8.6 概念モデルから実装モデルへ 概念モデル 実装モデル 重要な型と構造 重要な属性と操作 重要なインタフェース 実装の都合 非機能要求 初歩のケーススタディ 8.6 概念モデルから実装モデルへ 概念モデル 重要な型と構造 重要な属性と操作 重要なインタフェース 実装モデル 実装の都合 クラス,データ,メソッド インスタンスオブジェクトの生成と消滅 オブジェクトの管理(コレクションの表現),ナビゲーションの方法 非機能要求 ユーザインタフェース層,永続層 パフォーマンス,耐変更性(拡張性),移植性 要求定義 分析 設計 制作 検査 概念レベル 実装レベル 仕様レベル