このページは、ソフトウェア、機器組込みのエンベデット・ソフトウェア(ファームウェア)の開発に関連したコラムのページです。 このコラムはメールマガジン「アメニティ&サウンド 音と快適の空間へ」で連載していた技術・開発コラムを再編集したものを掲載しています。
申し訳ございませんが、サイトリニューアルに伴いこのページは以下へ移動しました。
ハードウェアでも、ソフトウェア、ファームウェアでも、おおよそ技術者にとってデバッグ作業は簡単なものではありませんし、設計とならんで、重要な開発過程です。
一般のソフトウェア開発の工数などについて語られる時、大体2つのことに集約されていると言えると思います。
1.開発工数の多くの影響はデバッグ作業が多大な影響を与える。
2.設計時点でのレベルが、デバッグ工数に多大な影響となる。
流行のXP手法などでも、設計手法やテスト手法に対する開発手法をグループ化し、設計段階からの精度を高めることや、開発管理することが重要なポイントになっていて、テストやデバッグの効率が改善されることが主張されているように、デバッグは、開発作業の重要課題です。
デバッグ作業は、人の能力差が極端に出る作業工程であると感じています。また、デバッグ作業の能力差は、手法管理だけでは、克服できないのではないかと感じています(ある程度の初歩的な差は埋めることはできそうですが)。
デバッグという作業は、原因を突き止めることと、改善のための分析が主な作業となります。オシロスコープ、ICE(インサーキットエミュレータ−)、デバッガなどの開発ツールや測定器などで、直接的な原因となる因子を見つけることが容易な場合には、それほどでもありませんが、リアルタイムでマルチタスクだからこそ起こる障害や、原因の直接的な現象が見れない場合には、原因を推測、仮定して考える能力が必要となります。
DSPやデジタル機器を開発する場合には、ハードウェア・デバッグといえども、CPUやDSPのデバッグ用コードがないと基本的な現象確認すらおぼつかない場合があります。
ハードウェアの設計者がDSPコードを書かなければいけないわけではありませんが、ソフトウェアによって制御されているIC(デジタルのカスタムチップなど)やCPU、DSPがどのように動作しているかや、テストや対策確認のためにどのように制御することが必要かなどの知識がないと、ソフトウェア担当者のハードウェア知識が高くないと障害を克服するのに時間を要します。
DSPの開発などですと、ICEがなかったり、デバッガではデバッグできない場合などもありますし、マルチチップ構成の機器などになると、複数のCPUやDSPが同時に動作していますから、開発ツールを使う技能だけでは、デバッグ作業はできません。
デバッグ作業は、大半が原因を突き止めること(犯人探し)だといわれるように、証拠(現象、症状、もしくは、設計書やソースコード)から、犯人を推理(または仮定)してロジカルに謎解きを行うミステリー小説の探偵のようだと感じます。
再現性の低い不具合を追及する場合など、その障害がどのようにして発生するのかを開発ツールなどで調べるばかりでなく、推理するように考察することで解決することが多いと思います。
この仮定(推理)が正しく、原因を見つけた時は、結構うれしかったりしますし、作業中は、憂鬱な問題であっても解決できた時は、ミステリーの難事件を解決したような気分になります。
仮定や推理の能力と、現象や症状が何を表しているかを見抜く能力、消去法などで、原因と考えた仮説を消去して行き、本当の原因を特定できる能力などが要求されるため、人による差が大きくなるのだと思いますし、この差は開発手法だけでは完全に埋めることができないかもしれません。
デバッグのこの探偵能力の差を埋める開発手法が提案されるとよいのですが……
ARIはハードウェア設計、製造、ファームウェア開発、Windowsアプリケーションの開発をしています。 実績等に興味をお持ちいただけましたら、会社情報に主な開発実績を、「音響と開発」のコーナーには事例など関連情報を掲載していますのでご覧ください。
ソフトウェア開発、とツールに関する雑記
技術・開発の閑話 : ソフト開発コラムファームウェア開発(組込み)の技術 / |
開発ツールの話 : ソフト開発コラムソフトウェアの分類 / |
プロジェクト初期 ツール評価 : ソフト開発ツールの話プロジェクト初期のツール評価 / プログラムの動作・ソースの作成 / コード生成 アセンブラ、コンパイラ / 型変換を伴う式評価(コード生成) / 暗黙のライブラリ(コンパイラ生成コード) / 組込みCPUのメモリアクセス / コード生成〜デバッガ |
デバッガとICE ツール評価2 : ソフト開発ツールの話CPU,DSPの内部の状態モニター / プロセッサ周辺のモニター(メモリ、I/O) / 実行の停止(ブレーク) / シングルステップ実行 / 任意部分の実行 / ヒストリー - 実行トレースとコマンド / 各種ファイルのロード、セーブ / シンボル化 |
ソフトウェア、ハードウェア、技術に関する雑記
技術・開発の閑話-2- vol.01〜10「ありえない」フェイルセーフと安全機能の連鎖 / HDD容量の差(天使の分け前) / リアルタイムとベストエフォート / エラーとコスト(ブルースクリーン/XP) / NDAと情報公開 / 専門ドメインの基礎範囲 / NHK技研公開(超高精細映像システム) |
技術・開発の閑話-2- vol.11〜20F1とコンピュータ技術 / ソフトウェアの標準と部品化 ( 戦術と戦略の誤解 / アジャイル開発 / リファクタリング / 遺産と再生産 / 標準と生産管理 ほか) |
音響システムやオーディオ、AVに関連した雑記
サウンドコラム 音響とAV,オーディオの四方山vol.41〜503D音響システムとスピーカ・アレイ Iosonoとサラウンド / プレーヤーとメディアのハイブリッド化(BD,HD DVD,DualDisk) / デジタルアンプとデジタルスピーカ(D級アンプと消費電力, 特徴-シンプルな構成- パワーアンプと伝送 -効率,発熱,クロスオーバー,デジタルスピーカの特徴) / 自衛隊の大砲を使ったコンサート / コーデックキラー(音声圧縮エンコードとノイズ) |
サウンドコラム 音響とAV,オーディオの四方山vol.31〜40InterBEE2003とHD放送(SD,HD,テレビ解像度) / 闇と静寂 / 騒音性難聴の防止薬品 / チェンバロにタンチョウヅルの羽根 / 海の音響技術(低周波ソナー LFAS, SOFAR, SOSUS, 音響トモグラフィー, 深層海流の温度計測) / 開発者の音作りと発想(デジタルの音作りと哲学) / 音効とCGスペクタクル映画(映画の音響効果とリアリティ) |
サウンドコラム 音響とAV,オーディオの四方山vol.21〜30音響冷却方式と水冷式 / 魔法の杖と音声認識の確率(自動音場調整AVアンプのレビュー) / 過去と周期と予想 / 音の記憶 / 録音テープの「肉声」 / 米国のCD市場の変化とCCCD / 音質?デザイン? / 機械の音のリアクション / 3D音響のトラッキング付き配信(ヘッドホンの立体音響, ヘッドトラッキング) / 地上デジタルTV 開始とInter BEE |
サウンドコラム 音響とAV,オーディオの四方山vol.11〜20CDを再生できないCDプレーヤー CCCD(Copy Control CD) / 音質は確実に落ちている? / 手軽に音響測定 / アカデミー音響賞、音響効果賞 / デジタルTVの双方向性 / テクノロジーと本質の視点( デジタル・オーディオは高音質か? ) / PCMはCDと同じ? / デジタルアンプの時代( デジタルアンプのコンシューマ化 ) / オーディオ機器への音楽配信 / 家庭の音場補正 |
サウンドコラム 音響とAV,オーディオの四方山vol.01〜10デジタルオーディオと記録 DVD製造者認識コード(Disc ID) / CD誤り訂正と音質、ピット、誤り訂正 / CDリッピングで音質向上? / パソコンのサウンド機能 / 人間の耳−最も優れた音のセンサー(精密測定用マイク, カクテルパーティー効果) / パソコンの静音設計とノイズ / ホームAVサーバー / TV放送の音声と帯域 / パソコンVS家電 - データ交換 / DVDの評価表現「劇場上映時と」 |
サウンドコラム 音響測定編 音圧分布音圧レベル分布の測定 測定のご紹介 / 音圧レベル(SPL)とは / 測定の作業、方法 dBデジベルとは / 測定に使用する信号 ノイズ / オクターブと周波数 音階名 / 測定 オクターブバンドノイズ |
サウンドコラム 音響測定編 周波数特性伝送周波数特性の測定 基音と倍音 / 周波数 オクターブ / 伝送経路と対象 / 無響室, スペクトルアナライザー/ フラット再生 / 伝送周波数特性の測定 まとめ |