コンテンツにスキップ
検索語を入力してください

    段階的モデリング

    rdra-ishは一度に全部書くことを求めません。小さな段階で精緻化し、各段階のあと check やdiagramでレビューします。

    • 早期段階はビジネス言語(価値ストリーム、アクター、ユーザー可視の仕事)に近い
    • 後半段階でデータ、UI/API境界、アクセス、永続化構造、ライフサイクル、ルールを追加
    • warning はレビュー信号(探索中は意図的に残してよい)
    • error はモデル信頼性を損なうためブロッカー
    • --buc フィルタで1スライスだけ検証できる
    Stage関心主な追加内容
    0スコープbusiness、候補 buc
    1BUC 骨格actorusecaseperformscontains
    2データ接点粗い entity、CRUD 述語
    3相互作用境界screenapidisplaysinvokes、権限・媒体制約
    4エンティティ構造カラム詳細、relate、カーディナリティ
    5ライフサイクルstateeventtransitionsraisessets
    6ルールforbiddenexclusiveinvariantrequired

    各段階のあと実行する検証例:

    Terminal window
    rdra-ish check src/
    rdra-ish lint src/
    rdra-ish diagram src/ --kind rdra --format mermaid --buc <BucId>

    Stage 3以降は --kind sequence--kind event-flow も有効。

    src/
    shared/
    actors.rdra # module shared.actors
    biz.rdra # module shared.biz
    entities.rdra # module shared.entities
    buc/
    buc_<name>.rdra # module buc.<name>
    要素置き場所
    actor, extsystemshared/actors.rdra
    business, 安定した requirement / NFRshared/biz.rdra
    再利用 entity, 共有 lifecycleshared/entities.rdra
    buc, usecase, BUCローカル api / screenbuc/buc_<name>.rdra
    BUC固有の述語(CRUD, invokes, raises 等)そのBUCファイル(sharedに置かない)
    クロスBUC event, 制約述語エンティティ近くの shared

    成長したら shared/entities/order.rdrashared/lifecycle/shared/rules.rdra へ分割する。

    1. BUC —「今どの価値スライスをレビューするか」を決める
    2. ビジネスフローflow / step / precedes で時間順・分岐
    3. UC —「注文する」のような 一つの操作。混ざったら分割

    BUCは画面名やテーブル名ではなく ビジネス価値 から名付ける。

    Stage確認すること
    0–1アクターとUCがBUCに束ねられているか
    2UCごとにCRUDが説明可能か(csv --kind matrix
    3画面/API/権限のギャップ(csv --kind actor-permission-audit
    4ER整合、外部キー、所有関係
    5到達不能状態、未消費イベント(states, diagram --kind event-flow
    6forbidden / invariant 違反(states --format json

    samples/incremental-order/ にStage 0から6まで段階的に増やした成果物がある。diffしながら各段階の追加量を確認できる。