[サンプルあり]機能設計書を作成する

機能設計書の記載

今回はLichtwork(リヒトワーク)で書く設計書のコンテンツの一つである機能設計について紹介します。機能設計は画面ごとの仕様やAPIごとの仕様といった内容を記載します。プログラミングを行う上で最も参照する仕様書の一つです。

フロント画面については大きく画面表示時の処理、タップといったアクションについての処理と項目を分けて書きます。APIについてはAPIが呼び出された時の一連の振る舞いについて記載します。 こういった一連の動きや挙動については。RedmineやBacklogのチケットといったタスク管理ツールに書いてしまったり、仕様変更の際にはその部分だけの指示書の形にすることも多いと思いますが、後で探すことが面倒なのと、仕様改変前後の違いがわかりにくいため、仕様書の形で一元化して残しておく方が後々メンテナンスやリニューアルの際にも役に立つと思います。

記載する内容

前回に引き続き、今回モデルケースとしてLichtwork(リヒトワーク)で開発したIntrappsというアプリ配布基盤をベースとした設計書となっています。これも前回と同様ですが受託で開発する時に画面(デザイン含む)と機能は大体決まってるけど、開発する人がいないというケースを想定しています。

基本的に書くことは「こういうものが欲しい」ということを書く様にしています。どう作る、どう設定するとのいうことに言及しているものもありますが、大体こういう感じで動いて欲しいんだよねと考えながら書くことが多いです。それがシステム全体であったり、ボタン一つの挙動だったり規模としてはいろいろありますが、基本的にはどう作るかはあまり踏み込まない方がいいかなと思いながら書いています。
実現できないことを書いても仕方がないので、Webやアプリ、システムといった技術の裏を取りつつ、こういう風にすればいいんじゃないかという感じでテクノロジーや定義について書いてることが多いです。

全体的な構成

WebのフロントからDBまで全体についての記載しています。 今回どういうオブジェクトがありどういう関連となっているかを記載しました。

Webページ編
Web側全体に関連する仕様

Web全体の動きについて記載しています。認証や基本的な挙動についてまとめています。

エラーダイアログ定義

メッセージングについて記載しています。 タイミングやダイアログの挙動、ダイアログの表示についてまとめています。

Webページ一覧

ページの一覧とその概要について記載しています。

個別画面の仕様

個別の画面について、画面表示時やオブジェクトの挙動について記載しています。

APIサーバー編

書くことはWeb編と同じです。全体についての仕様、メッセージング、APIの一覧、それぞれのAPIの振る舞いについて記載します。

API側全体に関連する仕様

API全体の動きについて記載しています。認証や環境変数などについてまとめています。

エラーメッセージ一覧

httpステータスとエラーコード、状況について説明しています。

API覧

API一覧とその概要について記載しています。

個別APIの仕様

それぞれのAPIについて、どの様な動きをするかを記載しています。

DB編

ここではDB概要とER図について書いています。 DB設計書やDDLに書くべき内容だと思うので、軽くイメージできる内容としています。

インフラ編

インフラについても概要として触れる程度としています。 WebサーバーやAPIサーバーがアクセスするときにどういう情報が必要かを想像しながら、必要な情報だけ書いています。