ユースケースモデルの作成.

Slides:



Advertisements
Similar presentations
IBMユーザ研究会九州研T3 3.Web2.0を実際に使ってみた. Web2.0を実際に使ってみました 研究会をプロジェクトに見立 てて “ Google SpreadSheet ” で会議を開く “ SNS ” でコミュニケーションを補助する “ Wiki ” で成果物を共有する.
Advertisements

1 Travel Memory's Map ~咲いた草花は地域への想い~ 大学生になると、サークルやアルバイトで出会った友達と旅行に行く機会が多くなる。 無計画の旅はそれなりに楽しいかもしれないが、事前に地域の魅力や情報を知っていたら、より充実した旅になるであろう。 一方、旅に来てもらう側では、訪れる人が少ないと地域経済が停滞し、地域社会が衰退する結果になってしまうので、積極的に地元の魅力.
適切な語を用いる. 元の文章 メールは文書が全てなので御座いまして、 メイルで何かを依頼する場合には、其れ の内容を文で明晰に書く事が貴重なので 有るから「其れ以上詳細に記帳せずとも、 受信者は必ずや内容を考察してくれるに 違いない」と判断して居ると予定外の娯 解を産む事が有るから注意する事が必修。
卒業論文審査会 Web の読みやすさ実験ツールの開発 岩手県立大学 ソフトウェア情報学部 ソフトウェア情報学部 4 年 柴田 大樹 指導教員:鈴木克明 藤原康宏 市川尚.
プロジェクトとは.
本日のスケジュール 14:45~15:30 テキストの講義 15:30~16:15 設計レビュー 16:15~16:30 休憩
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
情報基礎(Week6) ≪Excel 2007を使った表計算の基礎≫
情報基礎(Week5) ≪Word 2007を使ったレポート作成の基礎≫
仮説の立て方、RQの絞り方 論文を考える根本的思考 担当・柴田真吾
メニューの数学 Lauren Bartlett.
ほんとにだいじょうぶ!? ネット や ケータイ
情報理工学部 情報システム工学科 ラシキアゼミ3年 H 岡田 貴大
Accessによる SQLの操作 ~実際にテーブルを操作してみよう!~.
ソフトウェア工学特論Ⅲ ユースケース図 後半
ユースケース図 FM12012 比嘉久登.
クイズ 「インターネットを使う前に」 ネチケット(情報モラル)について学ぼう.
エクスプローラ ● エクスプローラ: ファイルやフォルダを階層構造で表示してあり、これらを操作するのに便利。
パスワードをつけよう! ~ワード・エクセル・一太郎 ・その他(アタッシェケース)~
~ 回答数  ~ 回答数 206.
CHAPTER1 UMLとオブジェクト指向の基本概念(2)
さとりすと Satori Ghost Editor 里々ゴーストの統合開発環境を作ったよ page: 1/25
「ビジネスで成功する人たちは“本当に良いトレーニング法”を知っている?
【会議の進め方】会議の定義:問題を解決する場であり情報を共有する場ではない 作成:増永寛之
ユースケース図2-4~ FM11012 中島拓也.
ユースケース オブジェクト指向の要求分析のためのモデル。 スウェーデンのイヴァー・ヤコブソンが1990年代前半に開発。
※お使いの機種により画面イメージは異なります
マイクロソフト Access を使ってみよう 第1回
オブジェクト プログラミング 第1回.
患者とかかわる際に 行うこと・行わないことの指針
マイクロソフト Access を使ってみよう 第4回
理論試験速報 理論問題部会長 鈴木 亨 先生 (筑波大学附属高等学校) にインタビュー.
進捗報告 2002年5月23日現在.
練習問題アイテムバンクの開発研究 ~再生形式~
  情報に関する技術       情報モラル授業   .
情報処理技法(リテラシ)I 第10回:Excel (1/2)
第11回 アプリケーションの構成 ~CUI自動販売機の完成!~.
Excel 2002,2003基本14 テンプレートを作る.
第1回 プログラムの基本 他人が読めるプログラムを書く.
すぐできるBOOK -スケジュール編-.
投稿: 投稿前に考えよう レッスン#2:投稿 - 投稿する前に考えよう!
【班での話し合い方】 ①ふせんに書いていることを読みながら台紙にはる。 ②同じような考え同士グループ分けし、貼りなおす。
 情報の授業 アルゴリズムとプログラム(1) Go.Ota.
UML関係のTIPS 2008年5月26日 2010年5月16日改訂 海谷 治彦.
発注者側サイト操作説明書 作成日:2004年6月 Ver1.0 初版 改 訂:2005年9月 Ver1.2 株式会社 コニファ.
探究科スライド 教材No.10(K2).
コンピュータ プレゼンテーション.
一人暮らしの男性のための料理検索システムの設計
言語XBRLで記述された 財務諸表の分析支援ツールの試作
インタラクティブ・ゲーム制作 プログラミングコース 補足資料
「選挙の大切さについて」 資料モデル 1 選挙制度の意義や目的について、選挙の歴史や制度の特徴 などを踏まえてわかりやすく説明する。
マイクロソフト Access を使ってみよう 第3回
シナリオを用いたレビュー手法PBRの追証実験 - UMLで記述された設計仕様書を対象として -
コンピュータにログイン 第1章 コンピュータにログイン 啓林館 情報A最新版 (p.6-13)
表計算 Excel 演習 1.Excel を使ってみる.
本日のスケジュール 14:45~15:30 講義 15:30~16:15 企画書レビューシート記入 16:15~16:30 休憩
プログラミング入門 電卓を作ろう・パートI!!.
演習1に関する講評 ~ 業務仕様を書く難しさ ~
岩手県立大学ソフトウエア情報学部 3年 鈴木研究室所属 井ノ上 憲司
サブゼミ第7回 実装編① オブジェクト型とキャスト.
本当は消去できていない!? ~データを完全消去する方法~
本当は消去できていない!? ~データを完全消去する方法~
ホームページを見ているだけで情報が通知される? ~Cookie編~
アルゴリズム入門 (Ver /10/07) ・フローチャートとプログラムの基本構造 ・リスト ・合計の計算
データベース第3回目 意味ごとにテーブルを分ける
  情報に関する技術       情報モラル授業   .
情報ネットワークと コミュニケーション 数学領域3回 山本・野地.
エクスプローラ ● エクスプローラ: ファイルやフォルダを階層構造で表示してあり、これらを操作するのに便利。
より分かりやすい ユースケースモデルを作る
Webデザイン入門  顧客へのメール.
Presentation transcript:

ユースケースモデルの作成

GOAL シナリオが与えられたとき、人に伝わるユースケースモデルが書けるようになる。

Objective ユースケースモデルを使う利点を説明できるようになる。 シナリオが与えられたとき、適切にユースケースを抽出できるようになる。 シナリオが与えられたとき、適切にアクタを抽出できるようになる。 「サービスを明らかにする」について議論することができるようになる。

人を幸せにするシステム ソフトウエアには、「人を幸せにするサービスを提供する」という使命がある。 ワープロであれば、文書を書いて、印刷するというサービスを提供します。 表計算システムでは、ある行の数字を全部足して、合計を出したり、並び替えを行ったりするサービスを提供します。

人を幸せにするサービス 「そんなの簡単ジャン!」 ケーススタディー 意外に難しい。 皆さんも、多かれ少なかれ、「使いにくいソフトウエア」に不満をもったことがあるでしょう。 ケーススタディー (HTS)HyperTransactionSystemの失敗

ケーススタディー(概要) ① 開発チームの作成したものは、××さん(クライアント)の想像していたものとは、異なっていた。 ① 開発チームの作成したものは、××さん(クライアント)の想像していたものとは、異なっていた。 ② どこが異なるかというと、××さん(クライアント)が思っていた「あってしかるべき機能がなかった」ことであった。 ③ しかし、開発チームは、4月時点での仕様書に書かれていない機能は実装しなかった。 ④ ソフトウエアができ、実際に使うときになって問題が発覚した。 ⑤ ××さん(クライアント)は、「性能が悪い」といって激怒した。 ⑥ 開発チームは、作り直しを求められたが、仕様書に書かれていないと反論した。 ⑦ 1ヶ月間、水掛け論が続き、ユーザはその間使いづらいソフトウエアを使わされ、そのソフトウエアの評価が落ちた。

ケーススタディー(原因) ① 仕様書は、4月に作成されたが、開発チームが作ったものであり、実証実験チームは、その意味がわからなかった。 ① 仕様書は、4月に作成されたが、開発チームが作ったものであり、実証実験チームは、その意味がわからなかった。 ② 実証実験チームは、8月にソフトウエアができるまで、プロジェクトに参加しなかった。(実証実験だけやればいいと思っていた。) ③ 開発チームは、仕様書の機能を満たし、試験にパスすれば、良いソフトウエアができると信じていた。

失敗の本質 ソフトウエアを作り始める段階で、「これから作るものを明らかにする」ことをしなかった。 完成イメージが人それぞれ違っていた。 この問題は、人間が言葉を使って、暗黙の了解を続けている間は、避けられない問題です。 「時計」システムを作ってください。 「ワープロ」システムを作ってください。

「時計」システム あなたの考える「時計」システムを考えてください。 それは、腕時計ですか?置時計ですか? それは、デジタルですか?アナログですか? 24時間表示ですか?12時間表示ですか? アラームはついてますか? 現在時刻を再設定できますか?それは、どのように行いますか?

ユースケースモデル ユースケースモデルを書く目的は、 「作るシステムを明らかにする」ことです。 「明らか」とはどういう意味ですか? 「明らか」になると、どのようないいことがありますか? 発注者(クライアント)と開発者の思っていることの食い違いを防げる。 「作るものと、作らないもの」の意見の食い違いを防げる。 開発者の間での思っていることの食い違いを防げる。 自分で作るものがはっきりする。 作るものが、本当に必要かどうか、議論できる。

ユースケース 「ユーザ」がどのように使うのかを考える。 Ex)「自動販売機」システムの場合 システムの「機能」ではなく、ユーザが受ける「サービス」で考える。 システムの「機能」をユーザが何のために利用するのかを考える。 Ex)「自動販売機」システムの場合 機能 在庫管理機能 販売商品表示機能 サービス 商品を買う(在庫が適切に管理されているかは、関係ない) 商品を選ぶ(表示されているかは関係ないかもしれない。希望商品があるかどうか問い合わせる方法もある。) もちろん、関係ある場合は、 記述すべき。

アクタ サービスを受ける人のこと。 Ex)名簿システム システムに対する「役割」で考える 本名簿システムは、Aさん、Bさん、Cさん、が利用します。 3名とも、システムに対する役割は一緒なので、「ユーザ」アクタとして同じに取り扱う。 システムから見て、同じに役割に見える人は、同じアクタとして扱う。 しかし、管理する人がいる場合は、違う役割を持っているので、「管理者」アクタを追加する。 システムから見て、ユーザにはできないことができるから、役割が違う。 Aさんが、管理者を兼ねても良い

ケーススタディー

自動販売機システム

シナリオ 近くにある、ジュースの自動販売機を想像した。 山田くんは、まず500円玉を投入した。商品ディスプレイのサンプルを見て、値段が安かった100円のドクターペッパーを買うことに決め、ボタンを押した。自動販売機の下にある取り口から缶を取り出し、おつりである400円を受け取った。

まず、ユースケースを洗い出します。

だけど、ユーザから見れば、 結局は商品を買いたいんじゃ ないか!と思いました。

粒度の問題 しかし、「商品を買う」は、ほかのすべてを含ん でいるような気がします。 このようにレベルが違うユースケースが混じっ ていると、わかりにくくなってしまいます。 この問題は、モデルを考えているとしょっちゅう 出てきます。 これから、レベルのことを「粒度」と呼びます。

こう書くこともできますね。 ワークフロー ①利用者は、お金を投入する ②利用者は、商品の一覧を見る ③利用者は、希望する商品を選択する ④利用者は、希望した商品を受け取る

どちらがいいか?

こう書くこともできます。

3つのうち、どれにするか? 答えは、ありません。(状況によります。) 3つの図の利点と欠点を考えてください。

ヒント 「ほしい商品があるか確認する」、「お金を入れる」、「商品を選択する」、「商品を受け取る」は、順番に行う必要があります。 すなわち、ワークフローだということです。ユースケースには、順番の指定はできないので、それを表せません。 イベントフローなら、あらわせます。 人間に分かりやすくするためにデザインされている、「取扱説明書」の粒度で考えるとわかりやすくなります。 取扱説明書には、どの粒度で書いてありますか?

ここで出す解答 これでよいというわけではありませんが ほしい商品があるか確認するのは、 商品を買う以前の問題なので、 商品を買うとは、別ものとした。 後は、ワークフローと考えた。

全体として、考えてみる 管理者もいます。

全体図

includeで書いた場合 こう書くこともできますが、 すべてにこのレベルがある場合は、 見づらくなってしまいます

その場合、図を何枚かに分けて書くと、わかりやすくなります。 本質的ユースケース図 詳細ユースケース図

考え方まとめ UC(UseCase)には、粒度がある。 粒度「レベル」を統一して書かないと、わかりにくくなってしまう。 粒度の異なる場合、さまざまな角度から考える。 includeを使うことができる。 ワークフロー、ビジネスロジックならば、一つに書ける。 ユースケース図だけですべてを表そうと考えるな! 全体で考える。 図は、1枚でなくても良い。 とにかく、わかりやすさ重視。システムを「明らか」にする、という基準で。

名簿システム

グループのメンバー情報を管理するシステムを考えました。

名簿にはメンバーの個人情報が載っているので、次のようなユースケースが浮かびます。

アクタを追加する アクタは,一般的なユーザから考えました。 まず、名簿を利用する人がいますね。

名簿に載っている個人情報は、変更する必要があるかもしれません。 引越し 携帯電話換えましたとか

名簿はやっぱり見れなきゃ意味が無いですね。

個人情報を入力するって 変更などでも使わない? 誤解を与える (書いた人は、新規作成の つもりだった)

名前を変更する 適切な名前に 変更します。

名簿に載っている情報は、 プライバシーに関わる情報なので、 誰でも見られるのはいやです。 だから、ログオンは必要でしょう。

ログオンを利用します。 単体では、深い目的が ありません

Includeを利用する

ログオンするということは、 アカウント・パスワードを持っている人と持っていない人がいるということ。 システムから見て違う役割!

アクタを追加する <未登録ユーザ> 定義: システムの利用者 まだシステムの利用権限は 与えられていない 目的: 未登録ユーザにシステム利用権限を与える

最終案

考え方まとめ 適切な名前を付けないと、誤解される。 適切にIncludeを利用するとわかりやすくなる。 役割が違うときは、アクタを別にする。 さらにユースケース文書で補う。 適切にIncludeを利用するとわかりやすくなる。 役割が違うときは、アクタを別にする。

目覚し時計システム

家にある、置時計を想像しました。

時計は、時間を知るために使うので、次のようなユースケースが浮かびます 目的: 現在の時刻を知るため イベントフロー: ①ユーザは、時計を見ます。 ②時計は、現在時刻を表示します。 ③ユーザは、表示されている時刻を見て、現在時刻を知ります。

アクタは、まず、一般的なユーザから考えました。 時計システムは、使うすべての人を区別しないので1種類でよい

目覚し時計なので、アラームを使うことを考えました。

「アラームが鳴る」イベントフローを考えましたが、うまくいきません。 サービスは、ポッと現れるはずがない。 押し売りになってしまう。 そもそも、勝手にアラームがなるはずがない。 起きる時間を知っているのか? このサービスはそもそも、 「ユーザが指定した時刻にアラームを鳴らしてくれる」 というサービスだ 「アラームが鳴る」は、単品でサービスにならない。と思う。

「アラームを使う」にまとめたほうが、わかりやすいと判断しました。 目的: 指定の時刻を確実に知るため イベントフロー: ①ユーザは、知らせてもらう時刻を設定します。 ②時計は、知らせてもらう時刻を表示します。 ③ユーザは、アラームのスイッチを入れます。 ④時計は、アラームのスイッチが入っていることを表示します。 ⑤時計は、指定時刻になると、アラームを鳴らします。 ⑥ユーザは、アラームをとめます。

考え方まとめ ユースケースは、最終目的を持っている ユースケースは、アクタが起動する。 本当にサービスなのかを考える ユースケースは、アクタが起動する。 サービスは、勝手に行われるものではない。アクタの意思で、開始される。 ユースケースは、開始と終了を明確にした方が、明らかになる。 アクタの意思で開始され、目的が達成されたところで終了する。

テキストエディタシステム

簡単な「メモ帳」をイメージしました。

以下のユースケースを思いつきました。

文書を印刷するというのは、このシステムの仕事なのか? 確かに、ユーザに印刷するというサービスを提供するのだが、 プリンタにジョブを送るだけでは? プリンタは、このシステム外の話である。 システム外のことなのに、ユースケースに書いたら、 システムが提供することになってしまう。

プリンタをアクタ(外部システム)として、記述します。 「テキストを印刷する」ユースケースは、ユーザから起動され、 プリンタという外部システムを利用して、サービスを実現する ことになります。 こうすると、システムの内部と外部が明らかになります。

同じ理屈で、文書を開いたり、保存したりするには、ファイルシステムを使います。

考え方まとめ 外部システムもアクタとして記述する システム内部と外部をはっきりさせるため