情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 •...

31
情報ゼミナール SRモデル 2020/11/23 海谷 治彦 1

Transcript of 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 •...

Page 1: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

情報ゼミナールSRモデル

2020/11/23海谷治彦

1

Page 2: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

目次

• TIPS for astah• フレームの非表示

• 同じ名前のクラスは複数作れません.

• SRモデル• original and derived goals• アクター毎の考え方のモデル化

• means end• SRにおけるOR分解で他の可能性を模索

• 品質特性をどう決めるか?

• 特性値をどう決めるか?

2

Page 3: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

astah フレームの非表示• UML2からフレームというのを付けるのがデフォになったので,astah では,デフォルトでフレームという枠をつけます.

• コレ,実装に近いクラス図以外ではあまり役立たないので,非表示にすることをお勧めします.

• クラス図を構造ツリーから選び,ベースタブ中に「フレーム表示」というチェックボックスがあります.

3

コレ

Page 4: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

astahで記述する場合のTIPS• as-is, to-be それぞれのアクターについて,それぞれのSRモデルを描いてください.

• 同じ名前のクラスは複数作れません.

4

Page 5: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

ゴールの期待/実情の度合い

• あるゴールの達成を他人に頼む場合,頼む方の期待と,頼まれるほうの実情はミスマッチする場合もある.

• そのミスマッチは,品質項目により異なる.

• 以下の例は,オレ氏が牛丼屋に食事の提供を期待している例だが,

• 「早い」に関しては期待を上回る

• 「美味い」に関しては期待以下

• 「楽しい」に関してはとんとん (大して期待せず)を示す.

5

Page 6: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

食事を提供されたい (牛丼屋)

6

オレ氏

- 属性2 : 楽しい

- 属性1 : 美味い

- 属性0 : 早い

<<G1>>食事を提供されたい

牛丼屋

{7,9,5} {9,3,5}

このゴールには,早い,美味しい,楽しいの三つの基準で評価する.

数値は期待の度合い1 から 10 をふる.

数値は実情の度合い1 から 10 をふる.

わりと早く(7),かなり美味しく(9),そこそこ楽しく (5)をオレ氏は希望

期待より早いが(9),不味く(3),そこそこ楽しく (5)が実情

Page 7: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

オレ氏

- 属性2 : 楽しい

- 属性1 : 美味い

- 属性0 : 早い

<<G1>>食事を提供されたい

彼女

{7,9,10} {5,5,9}

食事を提供されたい (彼女だと)

7

このゴールには,早い,美味しい,楽しいの三つの基準で評価する.

数値は期待の度合い1 から 10 をふる.

数値は実情の度合い1 から 10 をふる.

わりと早く(7),かなり美味しく(9),すごく楽しく (10)をオレ氏は希望

早くも遅くもなく(5),普通の味で(5),まあ楽しく (9)が実情

Page 8: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

システムを導入する理由とは?

• 前述の期待を見合った,もしくは上回る度合いを提供するものである.

• 「牛丼屋」も「彼女」も機械ではないが,ゴール達成者がかわることで,たしかに,満足度が変わる.

• まぁ,期待もかわるかもだけど.

8

Page 9: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

アクターから出てくるゴールの源泉は?

• SDモデルでは,アクターが無造作にゴールを望み,それを誰かが達成してくれる.

• ゴールの源泉は以下の二種類ある.• アクターが自発的に望むもの.

• Original Goal• 誰かのゴールを達成するために,下請けゴールが必要で,それを他の誰かにまた頼むもの.

• Derived Goal

• 特に後者の出現理由を明らかにするために,SRモデルがある.

• SRモデルは基本,アクター毎にかき,アクターがゴールをどう分解するかを表している.

9

Page 10: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

部長

秘書

部員

<<MACHINE>>会議室管理システム<<MACHINE>>

スケジュール管理システム

- 属性1 : 確実に

- 属性0 : 早く

<<G1>>会議を開催したい

- 属性2 : 早く

<<G2>>会議室の利用予定を知りたい

- 属性4 : 楽に

- 属性3 : 早く

<<G4>>会議室の空きを知りたい

- 属性6 : 楽に

- 属性5 : 早く

<<G3>>会議開催が可能な日時を知りたい

- 属性7 : 早く

<<G5>>予定を知りたい

{9,9}

{6,8}{10}

{9}

{10,10}{9,10}

{10,10}

{5,10}{10}{5}

Originalゴール

10

この図の範囲では,このゴールの原因は他に無い.すなわち,部長の自発的な願望.

Page 11: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

部長

秘書

部員

<<MACHINE>>会議室管理システム<<MACHINE>>

スケジュール管理システム

- 属性1 : 確実に

- 属性0 : 早く

<<G1>>会議を開催したい

- 属性2 : 早く

<<G2>>会議室の利用予定を知りたい

- 属性4 : 楽に

- 属性3 : 早く

<<G4>>会議室の空きを知りたい

- 属性6 : 楽に

- 属性5 : 早く

<<G3>>会議開催が可能な日時を知りたい

- 属性7 : 早く

<<G5>>予定を知りたい

{9,9}

{6,8}{10}

{9}

{10,10}{9,10}

{10,10}

{5,10}{10}{5}

Derivedゴール 1/3

11

これらは「会議開催したい」の下請けこれらは「会議開催したい」の下請け

Page 12: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

Derivedゴール 2/3

12

これは「開催日時を知りたい」を達成するための下請け

Page 13: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

Derivedゴール 3/3

13

これは「会議室の空きを知りたい」を達成してあげるための下請け

Page 14: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

Original と Derived の関係を仕様化

• アクターはゴールの矢印が入ってくると,そのゴールを達成しなければならない.

• そのゴールを達成するためには下請け(derived)のゴール達成が必要な場合もある.

• 下請けとは関係なく,自身で達成したいと願うゴール(Original Goal)もある.

• 下請けゴールおよび自身のゴールは• アクター自身で達成するか,もしくは,• 他のアクターに達成を委譲するかのどちらかとなる.

• あるアクター内における Original, Derived goals の関係をモデル化したのが,SRモデル(Strategic Rationale Model) である.

14

Page 15: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

Means End 手段で終える

• 後述の例のように,あるゴールを自身で達成するということはある.

• それがOriginalだろうと,Derived であろうと.

• SRモデル中のゴールをクラスmeansと関連付けることで,自身で達成することを示し,Means endなゴールと呼ぶ.

• Means = 手段,意味じゃないヨ.

• Means endなゴールは,他に達成を委譲する必要がない.

• よって,それ以上,外部には波及しないゴールである.

• 委譲されたゴール全てが最終的には誰かによってmeans end されなければならない.

• そうじゃないと,単なるたらい回しだ!15

Page 16: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

SRモデル 1/5

16

部長

<<ORIGIN>><<G1>>

クラス1秘書

部員

<<MACHINE>>会議室管理システム<<MACHINE>>

スケジュール管理システム

- 属性1 : 確実に

- 属性0 : 早く

<<G1>>会議を開催したい

- 属性2 : 早く

<<G2>>会議室の利用予定を知りたい

- 属性4 : 楽に

- 属性3 : 早く

<<G4>>会議室の空きを知りたい

- 属性6 : 楽に

- 属性5 : 早く

<<G3>>会議開催が可能な日時を知りたい

- 属性7 : 早く

<<G5>>予定を知りたい

{9,9}{6,8}

{10}{9}

{10,10}{9,10}

{10,10}

{5,10}{10}

{5}

Page 17: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

SRモデル 2/5

17

部長

秘書

<<G1>>クラス2

部員

<<G3>>クラス3

<<MACHINE>>会議室管理システム

<<G4>>クラス4

<<MACHINE>>スケジュール管理システム

<<MEANS>><<G2>>

クラス10- 属性1 : 確実に

- 属性0 : 早く

<<G1>>会議を開催したい

- 属性2 : 早く

<<G2>>会議室の利用予定を知りたい

- 属性4 : 楽に

- 属性3 : 早く

<<G4>>会議室の空きを知りたい

- 属性6 : 楽に

- 属性5 : 早く

<<G3>>会議開催が可能な日時を知りたい

- 属性7 : 早く

<<G5>>予定を知りたい

{9,9}

{6,8}{10}

{9}

{10,10}{9,10}

{10,10}

{5,10}{10}

{5}

これは AND 分解,どっちも達成しないとダメ

Page 18: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

SRモデル 3/5

18

部長

秘書

部員

<<MACHINE>>会議室管理システム

<<G4>>クラス8

<<MACHINE>>スケジュール管理システム

<<G2>>クラス9

<<G3>>クラス5

- 属性1 : 確実に

- 属性0 : 早く

<<G1>>会議を開催したい

<<G5>>クラス6

- 属性2 : 早く

<<G2>>会議室の利用予定を知りたい

- 属性4 : 楽に

- 属性3 : 早く

<<G4>>会議室の空きを知りたい

- 属性6 : 楽に

- 属性5 : 早く

<<G3>>会議開催が可能な日時を知りたい

- 属性7 : 早く

<<G5>>予定を知りたい

{9,9}

{6,8}

{10}

{9}

{10,10}

{9,10}{10,10}

{5,10}

{10}

{5}

Page 19: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

SRモデル 4/5

19

部長

秘書

部員

<<MEANS>><<G5>>

クラス7

<<MACHINE>>会議室管理システム<<MACHINE>>

スケジュール管理システム

- 属性1 : 確実に

- 属性0 : 早く

<<G1>>会議を開催したい

- 属性2 : 早く

<<G2>>会議室の利用予定を知りたい

- 属性4 : 楽に

- 属性3 : 早く

<<G4>>会議室の空きを知りたい

- 属性6 : 楽に

- 属性5 : 早く

<<G3>>会議開催が可能な日時を知りたい

- 属性7 : 早く

<<G5>>予定を知りたい

{9,9}

{6,8}{10}

{9}

{10,10}{9,10}

{10,10}

{5,10}{10}{5}

Page 20: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

SRモデル 5/5 全SRを表示

20

部長

<<ORIGIN>><<G1>>

クラス1

秘書

<<G1>>クラス2

部員

<<MEANS>><<G5>>

クラス7

<<G3>>クラス3

<<MACHINE>>会議室管理システム

<<G4>>クラス8

<<G4>>クラス4

<<MACHINE>>スケジュール管理システム

<<MEANS>><<G2>>

クラス10

<<G2>>クラス9

<<G3>>クラス5

- 属性1 : 確実に

- 属性0 : 早く

<<G1>>会議を開催したい

<<G5>>クラス6

- 属性2 : 早く

<<G2>>会議室の利用予定を知りたい

- 属性4 : 楽に

- 属性3 : 早く

<<G4>>会議室の空きを知りたい

- 属性6 : 楽に

- 属性5 : 早く

<<G3>>会議開催が可能な日時を知りたい

- 属性7 : 早く

<<G5>>予定を知りたい

{9,9}

{6,8}

{10}{9}

{10,10}{9,10}

{10,10}

{5,10}

{10}

{5}

Page 21: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

SRモデルのメリット

• アクター毎に入ってくるゴールと出て行くゴールの整合性をチェックできる.

• アクター毎の原理(rationale)や考え方を明らかにできる.

• ゴールの漏れをみつけられる.ゴール分解に基づき.

• ゴール達成の別解を模索できる,OR分解に基づき.

21

Page 22: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

orを含むSRモデル

22

部長

秘書

<<G1>>クラス2

部員

<<G3>>クラス3

<<MACHINE>>会議室管理システム

<<G4>>クラス8

<<G4>>クラス4

<<MACHINE>>スケジュール管理システム

<<MEANS>><<G2>>

クラス10

<<G2>>クラス9

<<G3>>クラス5

- 属性1 : 確実に

- 属性0 : 早く

<<G1>>会議を開催したい

<<G6>>クラス55

<<MEANS>><<G7>>

クラス22

<<G5>>クラス6

- 属性2 : 早く

<<G2>>会議室の利用予定を知りたい

<<G7>>クラス66

<<MEANS>><<G6>>

クラス44

- 属性4 : 楽に

- 属性3 : 早く

<<G4>>会議室の空きを知りたい

<<G8>>クラス77

- 属性6 : 楽に

- 属性5 : 早く

<<G3>>会議開催が可能な日時を知りたい

<<G9>>クラス88

- 属性7 : 早く

<<G5>>予定を知りたい

{9,9}{6,8}

{10}{9}

{10,10} {9,10}

{10,10}

{5,10}

{10}{5}

- 属性1 : 確実に

<<G6>>予定をねじ込みたい

- 属性0 : 確実に

<<G7>>部屋を占拠したい{10}

{10}

{10}

{10}

強制開催

これは OR 分解,どれか達成されればよい

Page 23: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

自己解決もかける

• 多分,もっともシンプルなモデル

• 自炊したら,• 思ったより,早くできず (5/7)• 思ったより,美味しく (5/3)• 思ったより,楽しかった (3/1)というモデル

23

オレ氏

<<ORIGIN>><<G1>>

クラス4- 属性2 : 楽しい

- 属性1 : 美味い

- 属性0 : 早い

<<G1>>食事を提供されたい

<<MEANS>><<G1>>

クラス5

{7,3,1}

{5,5,3}

Page 24: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

品質特性をどう決めるか?

• ゴール達成に関わる「副詞」に注目する.• 早く,美味しく,楽に,楽しく

• 正確に,簡単に,安全に,

• どの副詞に着目するかは,書く人の力量に依存するが,

• コンピュータシステムによって改善するであろう副詞に着目すると良い.

• システムによって「正確に」なった

• システムによって「楽に」なった

• システムによって「早く」なった

24

- 属性2 : 楽しい

- 属性1 : 美味い

- 属性0 : 早い

<<G1>>食事を提供されたい

コレ

Page 25: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

25

ソフトウェア品質特性標準– ISO 9126

• ソフトウェア品質特性に関する標準

• http://www.cam.hi-ho.ne.jp/adamosute/software-quality/iso9126.htm より

Page 26: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

特性の値はどう決めるか?• 基本,モデル記述者の主観で記述するしかない.

• 実は,内部的には,数値の比率しかみてないので,対応する値の比率が直感にあってればOK

• 基本,期待の値(下記だと上)は10に設定してOK

26

オレ氏

<<ORIGIN>><<G1>>

クラス4- 属性2 : 楽しい

- 属性1 : 美味い

- 属性0 : 早い

<<G1>>食事を提供されたい

<<MEANS>><<G1>>

クラス5

{6,3,1}

{4,5,3}

「早い」に関して,6の期待をもっているが,4の実情しか無いということ.内部では,4/6 という比しかみてないので,3の期待で2の実情でも意味は同じ.

「早い」に関して,6の期待をもっているが,4の実情しか無いということ.内部では,4/6 という比しかみてないので,3の期待で2の実情でも意味は同じ.

Page 27: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

ゴール達成を任されたアクターは

• 必ず,以下のどちらかで対処しないといけない.

1. 任されたアクターで,そのゴールを達成する.

2. 任されたアクターが,そのゴールを分解して,他のアクターに分解したゴールの達成を依頼する.• 実は他では無く,自身に依頼してもよい.

27

Page 28: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

1の例(上),2の例(下)

28

教員

<<ORIGIN>><<G1>>

クラス3

学生

<<MEANS>><<G1>>

クラス4

<<G1>>

- 属性1 : 正確に

- 属性0 : 早く

英文要約をして欲しい

{7,10} {5,5}

教員

学生

<<G1>>クラス4

- 属性1 : 正確に

- 属性0 : 早く

<<G1>>英文要約をして欲しい

<<G2>>クラス0

{7,10}

<<G3>>クラス1

{10,9}

<<MACHINE>>グーグル先生

<<MEANS>><<G2>>

クラス4

賢い舎弟

<<MEANS>><<G3>>

クラス5

- 属性0 : 早く

<<G2>>翻訳したい

- 属性1 : 正確に

<<G3>>要約したい

{10}

{10}

{10}

{9}

Page 29: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

AND分解について

• 基本,あるゴール達成のための必要な下請けゴールを全部かく.

• ある機能のサブ機能を考える感じ.

• ◆の関連で書く.

29

教員

学生

<<G1>>クラス4

- 属性1 : 正確に

- 属性0 : 早く

<<G1>>英文要約をして欲しい

<<G2>>クラス0

{7,10}

<<G3>>クラス1

{10,9}

<<MACHINE>>グーグル先生

<<MEANS>><<G2>>

クラス4

賢い舎弟

<<MEANS>><<G3>>

クラス5

- 属性0 : 早く

<<G2>>翻訳したい

- 属性1 : 正確に

<<G3>>要約したい

{10}

{10}

{10}

{9}

Page 30: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

OR分解について

• あるゴール達成の別解が複数あれば,それを書く.

• ◇の関連で書く.

30

部長

秘書

<<G1>>クラス2

部員

<<G3>>クラス3

<<MACHINE>>会議室管理システム

<<G4>>クラス8

<<G4>>クラス4

<<MACHINE>>スケジュール管理システム

<<MEANS>><<G2>>

クラス10

<<G2>>クラス9

<<G3>>クラス5

- 属性1 : 確実に

- 属性0 : 早く

<<G1>>会議を開催したい

<<G6>>クラス55

<<MEANS>><<G7>>

クラス22

<<G5>>クラス6

- 属性2 : 早く

<<G2>>会議室の利用予定を知りたい

<<G7>>クラス66

<<MEANS>><<G6>>

クラス44

- 属性4 : 楽に

- 属性3 : 早く

<<G4>>会議室の空きを知りたい

<<G8>>クラス77

- 属性6 : 楽に

- 属性5 : 早く

<<G3>>会議開催が可能な日時を知りたい

<<G9>>クラス88

- 属性7 : 早く

<<G5>>予定を知りたい

{9,9}{6,8}

{10}{9}

{10,10} {9,10}

{10,10}

{5,10}

{10}{5}

- 属性1 : 確実に

<<G6>>予定をねじ込みたい

- 属性0 : 確実に

<<G7>>部屋を占拠したい{10}

{10}

{10}

{10}

強制開催

Page 31: 情報ゼミナール SRモデル目次 • TIPS for astah • フレームの非表示 • 同じ名前のクラスは複数作れません. • SRモデル • original and derived

次のスライドに続く

サンプル srsample.zip支援ツールの使い方 srtool.pdf

チームズにおきました

31