Contenu connexe
Similaire à ビジネスルールの複雑さに立ち向かう (20)
ビジネスルールの複雑さに立ち向かう
- 15. 値オブジェクトとは?
• Fact の表現手段
• 数値、時間、場所、識別番号、識別名称、…
• ビジネスとして適切な値の範囲を定義する
• Rule (計算ロジックや判定ロジック)の置き場所
• Factを使う計算や判定をメソッドとして記述する
• Factと持つオブジェクトに、関連するロジックを集める
• Goal 知りたいこと(計算結果、判定結果)の表現手段
• 知りたいことを表現した型(値の種類)を設計する
• メソッドの返す型として使う
2019/5/11 15
- 16. 値オブジェクトのカタログ
単一の値 範囲型(from-to) 範囲型のコレクション
数
値
金額型
Amount, Money
金額範囲
x円以上 y円未満
金額範囲のコレクション
価格帯
数量型
Quantity, NumberOfXxx
数量範囲
m人以上 n人以下
数量範囲のコレクション
数量別割引率
時
間
日付型
DueDate, XxxDate
期間
開始日 - 終了日
期間のコレクション
シーズン
時刻型
HourTime, XxxTime
時間
開始時刻 – 終了時刻
時間のコレクション
時間帯
空
間
地点型
Point
接続
Path:出発点 – 到達点
接続のコレクション
Route [Path,…]
-
地域型
Area, Zone
地域のコレクション
階層、隣接関係、…
2019/5/11 16
- 19. 計算の種類 説明、メソッド例 結果の型
等値判定 isEqual( other ) , notEqual( other ) boolean / enum
大小判定 greaterThan( other ), lessThan( other ), … boolean / enum
加算・減算 同じ型同士の計算 同じ型
乗算 同じ型同士の乗算は意味がないことが多い 別の数値型
除算 同じ型の除算と、異なる型の除算では、意味が異なる 別の数値型
境界 Max, Min の存在 同じ型(の固定値)
列挙 prev(), next() が可能な集合 (循環が可/不可) 同じ型
文字列表現 値の標準的な文字列表現 toString() 文字列
文字列からの生成 標準的な文字列表現からのオブジェクト生成 parse() 同じ型
計算の候補(単一値)
2019/5/11 19
- 20. 計算の種類 説明、メソッド例 結果の型
等値判定 isEqual( other ) , notEqual( other ) boolean / enum
大小判定 greaterThan( other ), lessThan( other ), … boolean / enum
範囲に含まれる contains( element ), encloses( other ) boolean / enum
範囲が重複する isOverlapped(other) boolean / enum
厳密に隣接する isConnectedTo(other) boolean / enum
境界の値 Max, Min , 要素の型
範囲演算 intersect(other), minus(other), add(other) 範囲型
文字列表現 標準的な文字列表現 toString(), show(), describe() 文字列
計算の候補(範囲型 from-to)
2019/5/11 20
- 30. 計算の種類 説明、メソッド例 結果の型
サイズ count() int
要素の検査 contains(要素), isEmpty(), notEmpty() boolean / enum
部分集合 select(条件), reject(条件), コレクション
集約演算 sum(), min(), max(), average(), … 集約結果の型
集合演算 insersect(other), minus(other), add(other) コレクション
変換 unique(), sort(), groupBy() コレクション
要素の取り出し first(), last(), at(index) 要素の型
要素の追加 add(), addAll(), append(), insertAt(), … void
文字列表現 show(), describe() 文字列, 文字列[ ]
計算の候補(コレクション)
2019/5/11 30
- 44. 2019/5/11 44
序章 この本を買うべきか
第1章 ベテランSEのノウハウとは何か
第2章 ベテランSEのノウハウを見える化する
第3章 システム化の範囲を選ぶ
第4章 業務の視点でシステム機能を選ぶ
第5章 経営管理の視点(株式上場)でシステム機能を選ぶ
第6章 経営戦略の視点でシステム機能を選ぶ
第7章 企業の業務レベルを考慮する
第8章 企業風土を考慮する
第9章 要件定義の設計手順のまとめ
第10章 ベテランSEのノウハウを使いこなす
資料 業務知識ベース
ビジネスルールのドロドロした世界とその戦い方の実践的な指南書
読むのがたいへん
(歴史のある基幹システムであればあるあるばかり)