Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

なぜデータモデリングが重要なのか?

4,185 views

Published on

受託開発を生業とするものにとって、見積もり根拠を正しく示すことは死活問題だ、という話です。

Published in: Software

なぜデータモデリングが重要なのか?

  1. 1. なぜデータモデリングが重要なのか? kawasima
  2. 2. その1 見積りが過小になるのを防ぐ
  3. 3. ファンクションポイント ソフトウェアの入出力から機能の規模を算出し その合計をソフトウェアの規模とする。 平易にいえば、画面・バッチ・帳票・テーブルの数を数え、 それらの複雑度に応じて数値変換し足し合わせたもの
  4. 4. テーブルの数 は システムの規模
  5. 5. 汎用マスタ 種別コード コード 都道府県 申込ステータス 口座種別名称 元号 職業 業種 異なるデータの塊を、一つのテーブルに 入れるホスト時代の流行設計を 現代にも残した由緒正しき汚モデル
  6. 6. 種別コード コード 名称 さて、このテーブルの持つFP値は? (本当は論理的なエンティティを見出して数えなきゃいけないが、 ER図にこの形だけ書き込まれていると、誰もそんなことはしない) 5
  7. 7. 都道府県 申込ステータス 口座種別 元号 職業 業種 ちゃんとバラしてエンティティとして書かれていれば… 5 5 5 5 5 5 30 正しいFP値が 誰でも求められる
  8. 8. FP値を人月換算すると、 だいたい1人月 10FP〜15FP と言われているので… 先の例では データモデルをちゃんと書かないと 2~3人月分を 損することになる
  9. 9. その2 見積りが過小になるのを防ぐ
  10. 10. FPでは 複雑なロジックが表現しきれない(キリッ という無知
  11. 11. 注文会員ID 注文日時 注文確認者 注文確認日 紹介者ID 紹介者報酬 紹介者報酬支払予定日時 紹介者報酬支払日時 請求書出力フラグ 入金予定日 入金日時 入金者氏名 登録日時 更新日時 キャンセル日時 キャンセル取消日時 キャンセル理由 受注番号 複雑な業務ロジックが産まれる原因 1つのテーブルを複数の業務で更新する ことにより、更新時のルールが産まれるため 「この業務では、このカラムとこのカラムだ け更新しする」とか… 15
  12. 12. 注文 紹介注文 請求書印刷 入金 キャンセル 7 7 7 7 7 35 ちゃんとバラしてエンティティとして書かれていれば…
  13. 13. FP値を人月換算すると、 だいたい1人月 10FP〜15FP と言われているので… 先の例では データモデルをちゃんと書かないと 1~2人月分を 損することになる
  14. 14. データモデルを 正しくおこなう意義
  15. 15. システム規模を正しく見通し 余裕のある開発をするため

×