ポストPC時代のキーワード「エンベデッド」のすべて ――転換点はカー・ナビゲーション・システム
●複雑化するアプリケーションとデバッグ,仕様設計レベルのデバッグの重要性
アプリケーションが大規模化,複雑化することは,要求仕様自体が複雑になっていることを示している.仕様自体にまちがい,欠落,矛盾がないと保証されているわけでもないが,コーディングしてデバッグするという基本的な工程では仕様のミスを見つけることはむずかしい.
飛行機のシステム設計では1980年代の早い時期から,ソフトウェアの仕様自体を検証する構造化分析(SA)といったソフトウェア設計手法を導入してきた.それらを実装した上流CASEツールがここにきてディジタル家電の設計にも導入され始めている.
キャッツのZIPC(http://www.zipc.com/)は,アプリケーションの状態を状態遷移表に入力し,状態遷移表のレベルで矛盾がなく動作するかを検証し,その後,ソース・コードを生成するというトップダウン設計を可能にしている(写真6).
たとえば,たくさんの入力ボタンがある家電製品において,意図していない二つのボタンが押され誤動作した,といった不具合が潜在するかもしれない.通常のデバッグでは想定もしておらず,実機での確認項目からも漏れるかもしれないし,また再現も困難であったりするかもしれない.システムの状態を状態遷移表に入力しておけば,仕様の欠落や矛盾を速い段階で排除することが可能だ.デバッグ効率も設計効率も大幅に改善される.
〔写真6〕上流CASEツールがディジタル家電の設計にも導入された(ZIPCの画面)