2014年1月3日金曜日

データ設計スキル

システム系のスキルとして下記を紹介しました。


  • 要件定義(ビジネスモデル設計・機能一覧など)
  • 業務フロー作成
  • ユースケース作成
  • データ設計
  • テスト設計
  • プロジェクトマネジメント 
その中のここでは、 「データ設計」について記載します。


データ設計とは


システムでどんなデータを扱う、管理するかを決めます。
言い換えると企画者は下記を決めればいいです。
  • ユーザに入力してほしいデータ
    例:氏名、住所
  • ユーザが参照したいデータ
    例:預金残高

逆にシステムを動かすために使うデータは決めなくていいです。
例えば、バッチを定期実行する日時です。


段階を踏んで設計する


最後はシステムに実装するための設計になります。
なので、データベースがOracleかMySQLか、といったレベルまで気にしないといけません。
しかし、企画者はそこまで気にしないでよく、下記を順番に設計すればいいです。
後のフェーズになるとエンジニアと一緒に考えた方がいいでしょう。

  1. データ一覧(概念データモデル)作成
    顧客情報、購買履歴、位のレベル感です。
  2. データ項目(論理データモデル)作成
    顧客情報として、氏名、住所、電話番号を保持する、位のレベル感です。
    文字数、データ型(数字、文字列など)も決めましょう。
  3. データ間の関係性(論理データモデル)を作成
    下記のような内容を記載します。
    • 顧客情報に対して、購買履歴が関連づいている
    • 顧客情報:購買履歴=1:N(1:多)



表記方法


下記2つを書くとよいでしょう。
  • データ項目一覧
  • ER図
    色々な書き方がありますが、IDEF1Xがおススメです。
    ER図はVisioなどがないと書きづらいです。
    なので、ER図っぽい書き方でもいいです。
    箱と箱をつないで、「1」「多」と書くだけでもいいです。
    データ項目まで書くと図がにぎやかになって見づらいときもあるので、その時は概念モデルだけを書くようにするといいです。

クラス図は不適だと思います。
クラス図はプログラム開発のためのモデリング技法かな、と。


おススメ本


UMLモデリング入門 本質をとらえるシステム思考とモデリング心理学