matomomomemo

Design Docについて

基本的な考え方

  • 概念的な整理をしつつ、INとOUT、およびINからOUTを生成するために何を行うか(どのように(= 実装)ではなく)を論理的に明確にする
  • システムは全てI/O

ステップ

  • 要件/要望(why, what)を整理する
  • それらを実現するために必要な機能を整理する
  • 各機能のI/Oを整理する
  • INからOUTを生成するために何を行うかを整理する

ひな形

  • 要件/要望
  • 前提
  • スコープ
  • 対応方針
  • 概念モデル(クラス図)
    • 既存機能の変更の場合は別で新旧の比較で作るものよい
  • おおまかな処理の流れ(シーケンス図)
  • APIの変更
    • インターフェース追加/変更
    • その他の変更
  • リリース計画
    • 各機能のリリースに加え、下記の検討も行う
    • データマイグレーション
      • 非機能要件
      • 脆弱性診断の有無
      • 負荷試験
      • 監視設定
  • 実装寄りなメモ
    • DBのスキーマ設計を早めに議論しておきたい場合など
  • 残検討事項

その他注意点

  • 物理名が出てきたら、細部に入りすぎて全体感を見失っていないか立ち止まって確認