設計工程に対する改善対策#1

2023 年 7 月 31 日 by arakawas

お客様へ高品質な製品をより早く提供するため、設計スキルの底上げを行っています。
そこで今回、弊社で発生した不具合を例に挙げ、設計段階で未然に防ぐにはどのような対応を行っておけばよいか、分析結果と併せて記載します。

【事例システム詳細】
買掛売掛を行うシステムで支払い入力を行った際、買掛実績が登録されているDBのテーブルに買掛実績データを登録または更新を行う。

【不具合内容】
支払入力を行った際、 買掛実績が登録されているDBのデータによって、買掛実績データが登録されない場合がある。

【買掛実績の登録・更新パターン】
①支払入力を行う対象月の買掛実績データが事前に存在する場合、
 DBの対象テーブルに対して正常にレコードがUPDATEされている

②支払入力を行う対象月の買掛実績データが存在しない場合、
 DBの対象テーブルに対してレコードがINSERTされる想定だが、INSERTされない

【原因の分析】
①なぜ支払入力を行う対象月の買掛実績データが存在しない場合、
 レコードがINSERTされなかったのか 
 ⇒設計書にINSERTに関する記述がなかったため

②なぜ設計書にINSERTに関する記述がなかったのか
 ⇒該当の月にレコードが存在しないケースに対する考慮が漏れていたため

③なぜ支払入力を行う対象月にレコードが存在しないケースに対する考慮が
 漏れていたのか
 ⇒設計書の作成時にメインのフローを記述することだけに注意が及んでおり、
  発生し得る全てのパターンを網羅するという意識に欠けていた

【再発防止のための対策】
支払入力の全処理パターンを網羅できていなかったという点から、買掛実績の有無に対するデータの動きをディシジョンテーブルで作成する

【ディシジョンテーブルとは】
システムが条件によってどのような動作をするのか表形式で整理したもの

≪作成推奨条件≫
・動作パターンが3通り以上存在する
・1つの動作に対し複数の条件が存在する
・動作パターンが増える可能性がある

【ディシジョンテーブルの作成方法】
①システムで発生する条件と動作結果を洗い出す
②条件をデシジョンテーブルの条件記述部、実行内容を動作記述部に記載する
③条件記述部と動作記述部が矛盾しているパターンを削除する
④複雑な条件や複数の条件の組み合わせが多い場合、
 別のディシジョンテーブルに記載する

今回は弊社で行った勉強会での事例を基に展開しており、今後も残り4回の勉強会を予定しているため、勉強会の結果を交えて記載する予定です。

タグ:

TrackBack