47070 オブジェクト指向モデリング [4] 2001年10月23日
前回 オブジェクトの概念とUML 3.1 オブジェクトとは何か 3.2 オブジェクトは良いシステム作りに役立つか 3.3 継承 オブジェクト指向モデリング 前回 オブジェクトの概念とUML 3.1 オブジェクトとは何か 3.2 オブジェクトは良いシステム作りに役立つか 3.3 継承 3.4 ポリモーフィズムと動的束縛 3.5 UML
3.1 オブジェクトとは何か オブジェクト指向パラダイム オブジェクト オブジェクトをまとめる 3.オブジェクトの概念 3.1 オブジェクトとは何か オブジェクト指向パラダイム 世界は「オブジェクト」の相互作用で成立しているという想定に基づいてソフトウェアを作成する オブジェクト メッセージを受け取って反応する(behavior) 反応の結果はオブジェクトの内部状態(state)に依存する 何らかの属性値を持つ 個々のオブジェクトは区別される(identity) オブジェクトをまとめる クラス 型 resetTimeTo(newTime) reportTime() myClock resetTimeTo(07:43)
第4回 初歩のケーススタディ 4.1 図書館問題 4.2 ユースケース 4.3 ソフトウェアプロセス 4.4 型の認識 オブジェクト指向モデリング 第4回 初歩のケーススタディ 4.1 図書館問題 4.2 ユースケース 4.3 ソフトウェアプロセス 4.4 型の認識 4.5 振る舞いのモデル 4.6 概念モデルから実装モデルへ
4.1 図書館問題 最初の要求 要求は明確に語られない 大学の図書館の情報システムを開発する そもそも「要求」が一つひとつ取り出されていない 初歩のケーススタディ 4.1 図書館問題 最初の要求 大学の図書館の情報システムを開発する 旧システム(1960年代)がある 索引カードによる閲覧サービス 蔵書の管理 対話型のシステムにする 要求は明確に語られない 要求の優先順位 要求間の矛盾 現行システムとあるべきシステムが区別されない ソフトウェアの仕様と情報システムの仕様は別 システム開発の窓口担当者の能力 そもそも「要求」が一つひとつ取り出されていない その「要求」が妥当なのかどうかもわからない
4.1 図書館問題 人間活動システムとしての図書館システム 基本定義(Root Definition) CATWOE分析 基本定義の改訂 初歩のケーススタディ 4.1 図書館問題 人間活動システムとしての図書館システム 基本定義(Root Definition) 「利用者に保有図書の貸出を行うシステム」 CATWOE分析 Customer:利用者 Agent:図書館職員 Transformation:図書を貸す Weltanschauung:目的にふさわしい図書を貸し出すことで,効率的な教育および研究を促す Owner:大学 Environment:大学内の図書館および他大学の図書館 基本定義の改訂 「大学が保有する図書を利用者に貸出して,教育および研究を促進するシステム」 課題:目的にふさわしい図書を取りそろえること(他大学との協力も) 課題:それによってどの程度効率化したかを計測する方法を考えること
4.1 図書館問題 Accommodation もう一度CATWOE分析 基本定義の再改訂 初歩のケーススタディ 4.1 図書館問題 Accommodation もう一度CATWOE分析 Customer:利用者 Agent:図書館職員 Transformation:図書を貸す Weltanschauung:図書館職員の作業量を減らし,コストを削減する Owner:大学 Environment:大学内の図書館および他大学の図書館 基本定義の再改訂 「大学が保有する図書を利用者に貸出して,返却までを追跡するシステム」 課題:タイミング良く貸し出すためには? 課題:確実に返却できるためには?
4.1 図書館問題 基本定義 システムが備えるべき機能は, 「大学が保有する図書を利用者に貸出して,返却までを追跡するシステム」 本と雑誌 初歩のケーススタディ 4.1 図書館問題 基本定義 「大学が保有する図書を利用者に貸出して,返却までを追跡するシステム」 システムが備えるべき機能は, 本と雑誌 貸出し 検索 この図書館は本と雑誌を所蔵している。1つの著書(タイトル)に対してその本が何冊かある。本によっては短期貸出しのみのものもある。その他の本は図書館の会員ならば3週間までの貸出しが可能である。雑誌は職員の会員だけが借りられる。図書館の会員は通常6冊までを一度に借りられるが,職員の会員は一度に12冊まで借りられる。新刊本と雑誌は定期的に届き,古くなった本は廃棄されることもある。当年分の雑誌は,年度の終わりに業者に委託して1巻にまとめられる。 本や雑誌がいつ借りられ,いつ返却されたかを記録するのは,現システムがすでに行っていることなので,これは必須である。新システムが行うことは,本の返却期限が過ぎてしまったときに督促状を作ることである。また将来的には,もしその本が予約されていなければ,利用者が貸出しを延長できるようにする要求も出てくるだろう。 システムは,ユーザがキーワードや著者名などによって本を検索したり,本が貸出し可能かを確認したり,貸出し可能でなければその本を予約できるようにする必要がある。図書館の中で本の検索は誰でもできるものとする。 演習問題17
4.2 ユースケース ユーザと仕事 成功ケース アクタ ユースケース ある役割を持ったシステムの使用者 役割の名前を持つ 初歩のケーススタディ 4.2 ユースケース ユーザと仕事 アクタ ある役割を持ったシステムの使用者 役割の名前を持つ ユースケース システムの助けを借りてアクタが実行する仕事 成功ケース 本の借り手 本を返す 本を借りる 何のために。何がうれしいのか。 それは課題を解決するのか。 本を借りる (1) アクタ 「本の借り手」は本を提示する。 (2) システムは,借りようとする者が図書館の会員であること,およびその人の借り ている本がすでに貸出し可能な冊数の上限に達していないかを確認する。 (3) 確認されれば,システムはこの本が借りられていることを記録する。 (4) 確認されなければ,貸出しを拒否する。 備考 貸出し可能な冊数の上限は,職員の場合は12冊,職員以外は6冊。
4.2 ユースケース ユースケースのポイント ユーザインタフェース システムの外部を述べる ユースケース図とユースケース記述 要求を書く 初歩のケーススタディ 4.2 ユースケース ユースケースのポイント システムの外部を述べる ユースケース図とユースケース記述 名称: アクタ: 目的: 事前条件: 基本系列: 事後条件: 代替系列: 備考: 要求を書く 変換 アクタの目的とシステムの目的 「でっち上げない」と「漏れをなくす」 ユーザインタフェース 本の借り手 本を返す 本を借りる
4.2 ユースケース ユースケース記述 「本を返却する」のユースケース記述を書いてください。 初歩のケーススタディ 名称:本を返却する アクタ: 目的: 事前条件:本の借り手がその本を借りている。 基本系列: ①アクタはシステムに返却の旨を告げる。 ②システムは本の借り手,返却しようとする本の識別を要求する。 ③アクタはそれらの識別を提示する。 ④システムは本が当日返却されたことを記録する。 事後条件:その本が返却されている。 代替系列: A.基本系列④で,本の借り手が妥当でない場合,… 備考: 本の識別には,本に付けられたバーコードを使う。 返却された現物の本は,...
4.3 ソフトウェアプロセス 反復プロセス 少しずつ建て増ししていく 範囲(スコープ)を決める アーキテクチャ 優先順位づけ リスク最小化 初歩のケーススタディ 4.3 ソフトウェアプロセス 反復プロセス 少しずつ建て増ししていく 範囲(スコープ)を決める アーキテクチャ 優先順位づけ リスク最小化 演習問題19 方向づけ 遂行 構築 移行 分析 設計 制作 検査
4.4 型(クラス)の認識 ドメイン 名詞抽出法 もの-こと 型間の構造 UoD 注目しているアプリケーションの領域 型の認識 名詞・名詞句 初歩のケーススタディ 4.4 型(クラス)の認識 UoD ドメイン 注目しているアプリケーションの領域 型の認識 名詞抽出法 名詞・名詞句 候補の選択 責任(インタフェース)の割付・・・・・CRCカード もの-こと 型間の構造 型図 型と関連 ロールと多重度 ナビゲーション可能性,可視性 用語集(データ辞書) ユースケース記述 インタビュー記録など から
本が借りられたことを誰が知っているべきか 初歩のケーススタディ 4.4 型(クラス)の認識 概念 本 著書(書誌情報) 会員 : 概念の名前 初期モデル モデルの改訂 冗長性のチェック 似た概念の整理 責任の配置 結合度 凝集度 よい抽象 拡張する 本が借りられたことを誰が知っているべきか 著書 会員 1..* 1 0..* 0..1 職員の会員 の印刷物である 借りる/返却する 本 雑誌
4.4 型(クラス)の認識 改訂版(1) 初歩のケーススタディ 著書 会員 本 職員の会員 雑誌 の印刷物である 借りる/返却する 1..* 会員 借りる/返却する 本 0..1 0..* 職員の会員 借りる/返却する 雑誌 0..1 0..*
4.4 型(クラス)の認識 改訂版(2) 初歩のケーススタディ 著書 会員 本 職員の会員 雑誌 制約: 雑誌は職員の会 員だけが借りられる 1 1 の印刷物である 1..* 制約: 会員 借りる/返却する 本 雑誌は職員の会 0..1 0..1 0..* 0..* 員だけが借りられる 職員の会員 雑誌
4.4 型(クラス)の認識 拡張版 他のユースケース 「本を予約する」 初歩のケーススタディ 著書 会員 本 職員の会員 雑誌 予約する 0..* 1 予約する の印刷物である 0..1 1..* 会員 借りる/返却する 本 0..1 0..* 職員の会員 雑誌
4.5 振る舞いのモデル 相互作用図 シーケンス図 コラボレーション図 オブジェクト間 メッセージ 順序(制御構造) アクティベーション 初歩のケーススタディ 4.5 振る舞いのモデル 相互作用図 シーケンス図 オブジェクト間 メッセージ 順序(制御構造) アクティベーション コラボレーション図
4.5 振る舞いのモデル 状態図 ステートチャート アクティビティ図 オブジェクトの状態 事象 初歩のケーススタディ 「著書」の状態 貸出不可 貸出可 returned() borrowed()[最後の本] borrowed()[最後の本でない] 貸出を申し出る 貸出を記録する 本を帯出する
4.6 概念モデルから実装モデルへ 概念モデル 実装モデル 重要な型と構造 重要な属性と操作 重要なインタフェース 実装の都合 初歩のケーススタディ 4.6 概念モデルから実装モデルへ 概念モデル 重要な型と構造 重要な属性と操作 重要なインタフェース 実装モデル 実装の都合 クラス,データ,メソッド オブジェクトの生成と消滅 コレクションの表現 ナビゲーションの方法 ユーザインタフェース 永続化