みなさん、こんにちは。テクノシェルパ推進室の赤谷です。
ソフトウェア開発に携わっている方であれば、「要件定義」や「基本設計」などの言葉を聞いたことがあると思います。ソフトウェア開発ではV字モデルに沿って開発工程を進めるのですが、その上流工程にあたるのが、「要件定義」や「基本設計」です。
V字モデル
(当社のソフトウェア受託サービスはコチラ)
開発の初期段階では、納期まで余裕があるため、少しややこしい課題があった場合「まあ、後で考えよう」とか「そのうちお客さんに確認しよう」と言った具合に先送りにしがちです。
これがきちんと管理された先送りなら良いのですが、多くの場合は開発工程が進むにつれてスケジュールに余裕がなくなり、結局は課題検討を十分できないままに切羽詰まってコーディングなどの実装工程を進めてしまうと言った状況に陥ってしまいます。
開発が大幅に遅延したプロジェクトについて、完了後に振り返り分析をすると多くの場合は開発の初期段階での検討不足が要因となっております。
これは、V字モデルを見ても判るように「要件定義」や「基本設計」など開発初期段階で入り込んだ問題は開発終盤の「結合テスト」やお客様による「受け入れテスト」などでようやく検出されるため手戻りの工程が非常に大きくなってしまうためです。
ではこの「要件定義」や「基本設計」のような開発の初期段階では、どのようなことをすべきなのか少し具体例を交えて紹介します。
例えば、お客様のご要求に「センサエラーが発生したらインジケータを点灯する」とあったとします。この場合、「要件定義」や「基本設計」では何を検討しなければならないでしょうか?
基本設計書に「センサエラーが発生したらインジケータを点灯する」とそのまま書いても何となく設計書のような感じもしますが、これではただ要求内容をオウム返ししているだけで、要件の確認や設計は何もしていないことになります。
設計書の作成を求められて、その必要性を正しく認識しないまま作るとこのようなことになりかねません。
この工程で求められるのは「開発要件を定め基本的な制御方法を設計する」ことです。
この例の場合「要件定義」では、まず「センサエラーとは何か?」を定義し、お客様と認識合わせをする必要があります。
検討すべきことは以下のようなことが考えられます。
✓ センサが異常値を示す場合をエラーとするのか?
✓ では異常値とはどのような値か?
✓ センサを認識できない場合もエラーとするのか?
✓ エラー解除の条件は?
などなど
これらをしっかり検討の上、「センサエラーとは何か?」を要件としてまとめてお客様に確認の上、定義していきます。
ここで定義された各要件をもとに具体的な処理フローなどを設計する工程が「基本設計」となります。
「センサ値を取得するADコンバータの値が〇〇以上になった場合、GPIO制御でインジケータを点灯する」といった具合です。
これらは実際の処理の流れが視覚的に判るようにシーケンス図などで記載します。ここではその詳細は割愛しますが、シーケンス図を作っておくことで設計レビューでも問題点が検出しやすくなります。ソースコードでは本質的なレビューは不可能だと思います。
以上、ご参考になりましたでしょうか?
当社では開発初期段階における品質向上に取り組んでおります。
製品開発でお困りの際は、是非当社の各種設計サービスを(ソフトウェア受託サービス、電気設計受託サービス)をご利用ください。
【関連リンク】
WTIメールマガジンの配信(無料)
WTIエンジニアが携わる技術内容や日々の業務に関わる情報などを毎週お届けしているブログ記事は、メールマガジンでも購読できます。ブログのサンプル記事はこちら
WTIメールマガジンの登録・メールアドレス変更・配信停止はこちら
WTIの技術、設備、設計/開発会社の使い方、採用関連など、幅広い内容を動画で解説しています。