skillup

技術ブログ

ドキュメント作成

ドメイン決定&業務フローとの対応確認

投稿日:

ドメイン決定

業務フローを抽出し、エンティティを抽出した段階で次にドメイン名を決めます。

ドメイン名とはシステムで使う標準化されたデータの定義です。例えば郵便番号といっても、得意先の郵便番号、注文者の郵便番号、届け先の郵便番号など複数あります。その場合、名称に対してある程度ルールづけをしておかないと同じような名称ばかりになってしまいます。

以下のような点がポイントです。

あいまいな郵便番号、住所のようなデータ名を付けず、データの性質がわかるように、主要語+修飾後+区分が入るようにする

例 主要語 郵便、修飾語 得意先、区分 番号 → 得意先郵便番号

以下のようなものが一般的に使われます。

主要語 売上、営業、銀行、契約、在庫、仕入、配送、商品、製品、組織、電話
修飾語 日別、州別、期間、通常、点別
区分語 コード、番号、No、名、区分、種別、識別、日時、日数、数、金額、比率、回、高

ドメイン定義時に同時に決めたいこと(主にテーブル情報にかかわってくるもの)

  • DBMS上の名前
  • 表記上の和名
  • 意味定義
  • データタイプ(文字列、数値、日付)
  • 桁数
  • ディフォルト値
  • ルール制約(形式や重複禁止など)

業務フローとの対応

ドメインがある程度抽出できたところで、実際の業務フローとドメインを画面図などと対応させていきます。

この時点で下記のようなことを決めていきます。

実際の業務とエンティティ、画面の遷移

  • 画面のフローチャートを作成し、実際にワークフローと画面がどのように対応しているかをダイヤ図などで概略をつかんでおく
  • 業務フローは箇条書き→UMLのアクティビティー図が最もわかりやすい
  • この中に作業実行者、実行行為、エンティティ、画面図などをマッピングさせていく

ドメインのCRUD分析

  • ドメインがどの時点で作成されるか
  • 1度作成されたものは変更可能か(変更・削除された場合に影響はないか)
  • 正規化がされているかいなか。他のマスタから参照するべきデータは直接入力ではなく、マスタ値や他の値を参照しているか(ただし変更可能なデータはマスタではなく、直接入力にすること)
  • イベント系はドメインのCRUDサイクルがわかりやすいが、マスタ系も考える(マスタ系は不定期であること、変更影響度が大きいので要注意である)
  • 業務フロー図は主に正常系に固まりやすいため、異常系の処理もしっかり考える(特にマスタ変更系)

追記:最初読んだときはよくわからなかったんですが、ドメイン駆動の本をよんだあとはドメイン=業務の関心事だということがわかりました。考え方自体は以前からあったっぽいですね。

-ドキュメント作成
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

データベースのテスト環境作成

現在作っているシステムのリリースが近づいており、本番に近い環境を作成しお客様に見てもらうことに。 こういった手順はマニュアル化しておいたほうが楽だろうと思い、自分的にメモ 1 現状運用されているデータ …

no image

プロジェクトごとのフェーズでやっておいたほうが良いと思うこと

またプロジェクトの途中ではありますが、自分の中で要件定義〜外部結合の始まりまでのフェーズを経験して思ったことなど Contents1 全般2 要件定義3 基本設計4 詳細設計5 製造6 単体テスト〜内 …

no image

テスト環境のデータ作りに関して

単体テスト以降の環境ですとテストのデータを作ることがなかなか大変だと思います。マスタなどはそのままもらうこともあると思いますので、主にトランザクションデータについて。 以前もこのネタに関しては色々書い …

no image

バッチスクリプトで気をつけたい点

実務でバッチ処理を作る際に気をつけるべきと思ったこと。 基本的にエラーをいかに捉えていかにログに吐くかを最初に考える。まずはエラーありき。失敗するもの、想定した値がこない、あるいは値がないを前提として …

no image

テスト仕様書の必要な項目の定義など(横項目の定義)

前回はテストの項目をどのように作るか(分類するか)だったんですが、今回はテスト仕様書などを作る際に必要な項目の定義をまとめてみようかと。 テスト仕様書を作るとしたら前回は縦(バリデーションの組み合わせ …

アーカイブ