5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ドキュメントをテキストファイルで記述する方針メモ

Last updated at Posted at 2019-08-07

概要

目的

「構造化された見やすいドキュメント」と
「表現が一定水準に統一された図(UML)」を
テキストファイルだけで記述したい!

理由

・テキストファイルは(色んな意味で)軽い
・修正の履歴が管理しやすい

手段

構造化された見やすいドキュメントは「markdown」
表現が一定水準に統一された図(UML)は「PlantUML」で記述する。

動作環境

Visual Studio Code上に、MarkdownとPlantUMLが書ける環境を準備する。

参考Webサイト

PlantUML公式

インストールはこの辺

VS Code で UML を描こう!
VS Code + MarkDown + PlantUML で開発ドキュメントをわかりやすくする

さらに細かく

PlantUML Cheat Sheet
VSCode拡張のPlantUMLプレビューが表示されない場合の対応
VSCodeにPlantUMLを導入する手順
VS CodeにPlantUMLを導入して業務効率化を図る
Visual Studio Codeで自由自在にUMLを描こう
Visual Studio CodeでPlantUMLを使うメモ (Windows編).md
PlantUMLの環境を設定する
VSCodeのMarkdown Preview EnhancedでPlantUMLが描画されない


以下、Markdown + PlantUMLによるドキュメントの凡例

ドキュメント概要

Readme

外部仕様

外部仕様を記述します。

プロトコル

内部仕様

設計

状態遷移図


状態遷移図は、実際に、Visual Studio Code上にて、
PlantUMLに対応したプレビュー画面にて以下のように描画されます。
キャプチャ.JPG


シナリオ

  • ターゲットは?
  • どのような状況で使うのか?
  • どのように使うのか?
  • 制約事項は何か?

対象外

  • 明らかにオーバースペックなこと
  • 今のバージョンでやらないこと
  • 対象外のプラットフォーム

用語解説

  • 一般的な用語でもドキュメント中での意味を書く

未解決の問題

  • 何が未解決か残す
  • これが残っているうちはプログラマーにコードを書かせない(気持ちを持つ)

UMLの指針

以下を駆使する。

  • 状態遷移図
  • シーケンス図
  • ユースケース図
  • クラス(ブロック)図
  • 配置図
  • タイミング図

全体的な書き方に関する指針

  • 一覧性が重要(カラフルな表だと割と見やすい)
  • 全体像を把握させる(図表でシンプルに表現できる仕様/設計であるべき)
  • フローチャート(PlantUMLのアクティビティ図)も駆使する
  • 他の仕様や設計との関係性を意識する
  • 想定される状況をすべて書く
  • 何がエラーになるかすべて書く
  • 全てのエラーに対してどう処理するか書く
  • 何故、そのような振る舞いに至ったかの経緯や思考実験の経過を書く
  • シンプルなプログラムにする事が可能な仕様/設計であるのが望ましい
  • テストケースが容易に洗い出せるのが望ましい
  • テスト可能な仕様/設計でないといけない
  • テスト再現性が高い(テストし易い)仕様/設計であることが望ましい
  • ソースコード読めば一目瞭然の事は書くべきではない
  • ソースコードがさくさく読めるためのガイドとなる事を目指すべき
5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?