質問: お世話になっております。 仕様検討や既存システムの仕様整理する際の話です。 複雑な処理が必要な場合、 例えば、インプットに応じてdb更新または登録しながらファイル出力するのを他領域システムと同期を取りながら行う、など、 皆さんはどのように仕様というか頭の中を整理しているのでしょうか? 図に起こすとよいと言われるのですが、 図やフローが苦手なので起こすのにも時間がかかり 結局実装を読んでしまいます。。 ただ、そういう時は頭の中で整理しきれていないことが多く、「ここの処理どうなってたっけ?」と聞かれてすぐに答えられないことも多いです。 設計~実装の作業見積りを出す際も、複雑な場合は正直実装してみないとどれくらいの修正量で実現出来るのかわからず、見積りするころにはほぼできている、または実装してから結果的にそれに合わせた設計書を起こしているということが多々あります。 正直慣れだと思うのですが、 上記のような場合、どのような図を起こすと整理しやすくなるでしょうか? また、色々なインプット、アウトプットが入り乱れている場合、皆さんはどのように整理していますか?
回答: 図で書かないならせめて文章で書けばいいのでは? 1. 入力がされた 2. 他領域に情報発信(非同期処理開始) 3. DB更新または登録:失敗した場合は〜〜〜 4. ファイル出力:失敗した場合は〜〜〜 5. 他領域の完了を待つ 6. 画面更新(「完了」と表示) 例えばこんな感じで。 「いつ(入力可能タイミングや同期待ち等)」 「誰が(ユーザーが、メインスレッドが、サブスレッドが、DBが等)」 「何をしたら(送信ボタンを押したら、このメソッドが呼ばれたら等)」 「どうなる(返り値の有無、例外時処理等)」 これらを1つずつ考えていくだけでも大分変わるような気がします。