組み込みソフトウェアの開発手法について話せます
■背景
組み込みソフトウェア開発の終盤における不具合大量発生を防ぐにはターゲットのハードウェア構成やリソース制約、要求される性能を十分に検討し、その結果をソフトウェア設計に反映させることが重要です。もともとの設計が悪いソフトウェアはデバッグフェーズで多くの修正を重ねるたびどんどんひどいものになり、最終的には開発遅延と市場不具合を引き起こします。
■話せること
組み込みソフトウェア開発における要件定義
製品として求められる目標性能を設計段階で定量化することが大切です。評価フェーズで「ある機能の実行に時間がかかり過ぎる」といった不具合が露呈すると対策のため開発手戻りが発生したり、最悪の場合には製品仕様自体を見直さざるを得ない可能性も出てきます。
基礎検証の重要性
要求された機能・性能を実現できるかわからない状態で設計したソフトウェアは、デバッグ・評価フェーズでかならず問題を引き起こします。上記の要件定義とあわせてハードウェア構成の確定前に既存ハードウェアを流用するなどして実現可能性を十分に検証し、その結果をハードウェア設計・ソフトウェア設計にフィードバックすることが大切です。
設計資料の整備
設計者やプログラマ自身が「どのようなソフトウェアを開発すべきか」を明確にできていないソフトウェアはかならず大量の不具合を発生させます。設計資料はソフトウェアのリリース後や納品直前に書くものではありません。自分たちがこれから開発するソフトウェアの姿を明らかにするために設計段階で整備すべきものです。
ソフトウェア開発を外注する際に提供する設計資料
ソフトウェア開発の外注、とくに新規ベンダーに初めて外注する際の設計資料には「正しくない入力や操作が与えられた場合の振る舞い」を記載することが重要です。