Smile Engineering Blog

ジェイエスピーからTipsや技術特集、プロジェクト物語を発信します

思考のサルベージ(その5)

各工程で心がけたい思想を掘り起こしてみる

「ハードウェアインターフェースの確認」を取り上げましょう。 組み込み開発では、ハードウェアもオリジナルというのが普通ですね。ソフトウェア開発側の視点でハードウェア機能の確認について考えてみます。

どんな機能が欲しいですか

開発のかなり早い段階で、ソフトウェアチームからハードウェアチームにどんな機能が欲しいか、どのように使いたいかを整理して伝える必要があります。まだ機能設計もできない状態でソフトと相性のいいハードウェアインターフェースを考えなければいけません。システム全体で「必要かもしれない」と思う機能については、遠慮なく要求しましょう。満額OKとならないかもしれませんが、要求を出さなければ、要不要の議論もできません。 ここで徹底的に議論しておかないと、こんな機能があればよかった、この機能はいらなかったと後で後悔することになります。

インターフェースの確定

ハードウェアのインターフェースが確定したら、念入りに確認しましょう。

  • 実装合意した機能が記載されているか
  • 使い勝手のよいインターフェースになているか

ソフトウェアと違い、ハードウェアは後工程での改修はできなくなります。問題点に気が付いたら早めに声をあげましょう。各種制約についてもしっかり確認しておきましょう。ハードウェアの制約でよくあるのは - 同時起動の制約 - レジスタ参照タイミングの制約 とかですかね。制約違反をしてしまうと、ハードを動かせなかったり、想定外の値をレジスタから読み込めなかったり、システムが正常に動作しなくなります。

逐次確認

設計工程、実装工程ではインターフェースを逐次確認しながら進めましょう。レビューの場で突き合わせをして、インターフェース違反、制約違反を発見し、バグを早期段階でつぶしておきましょう。テスト工程でハードウェアの絡んだ不具合を踏むとかなり厄介です。

何か掘り起こせた?

  • 初期段階で徹底的に議論する
  • ハードチーム、ソフトチーム間で常に情報交換できる環境を作る。

おしまい

組み込み開発は、ハード開発、ソフト開発の共同作業です。両者の関係が風通しの良いものになっているとやりやすいです。そのうえで、互いの主張を建設的に議論できると、より良いものができるんでしょうね。