「ものづくり大国日本」を維持するための組み込みソフトウェア開発の技法(3)

膨大な数に上る新製品に組み込まれるソフトウェアを効率よく開発し、一定の品質を維持するためには、従来の擦り合わせ型開発から脱却し、組み合わせ型開発の手法を確立することが急務である。

» 2006年09月09日 08時00分 公開
[姜光明,ITmedia]

本記事の関連コンテンツは、オンライン・ムック商品企画の最前線でご覧になれます。


姜光明(アビーム コンサルティング TI事業部)

組み込みソフトウェア開発のプロセス改善に向けての考慮事項

擦り合わせ開発から組み合わせ開発への移行

 膨大な数に上る新製品に組み込まれるソフトウェアを効率よく開発し、一定の品質を維持するためには、従来の擦り合わせ型開発から脱却し、組み合わせ型開発の手法を確立することが急務である。そのためには、ソフトウェアの共通部品化によって、再利用化の比重を高めていくことが重要なキーワードになる。

 現在、ソフトウェア開発の生産性の低下を招いている一番大きな要因は、製品単位ごとに同じような役割を果たすソフトウェアを開発していることである。具体例を挙げると、動画の記録/再生機能は、携帯電話、ビデオカメラ、DVDレコーダなどに共通して搭載されている機能でもある。これについては、製品ごとに画面サイズなどは異なるものの、ソフトウェアの機能としては、それほど大きな差はない。多数の類似製品を対象に組み込まれるソフトウェアを開発する場合はなおさらその効果は大きいだろう。

 各製品構成(ハードウェア、ソフトウェア、周辺機器など)の細部に至るまで、利用される共通ソフトウェア部品の関連性を調べて、それをアプリケーション開発に利用することにより、生産性、品質ともに飛躍的に向上させる可能性がある。また、納期短縮の効果も見込むことができる。

 現在も、こうした開発手法を部分的なプロセスや、ごく限られた製品に限定し、取り入れている現場は多く存在する。しかし、多品種にまたがる製品ラインの開発において、全社的な視点で取り組んでいる企業は国内ではごく少数である。こうした手法によりプロセスを明確化し、ツール、環境および組織を整備することは、大きな意義をもたらすと考えられる。

組み込みソフトウェア開発サイクル/関連ツールからPLMへのボトムアップアプローチ(イメージ)

 従来の組み込みソフトウェア開発では、結合テスト工程を経て、ソフトウェア/ハードウェアの不具合を検出するのが一般的である。しかし、膨大なテスト項目が期間内に消化できず、不具合を内在したまま納品するケースも多い。その理由のほとんどが、不具合が生じた発生箇所(ハードウェア、ソフトウェア、周辺機器など)がどのような影響度を与えるのかについて、全体を通じた十分な関連情報(仕様変更、プログラム変更、開発に携わった人材/組織変更など)を把握できづにビジネス上の大きなトラブルを引き起こしている。

 本来、ソフトウェア開発を行う際には、仕様変更、プログラム変更による影響度が適切に調査、管理されていなければならないのだが、その種をサポートするツールが見当たらないまま不完全(信頼性にとぼしい管理)な状態のまま放置されてきた。

 昨今では、ベースラインとフィードバックの考え方がベースになり、常に変更される可能性を秘めているソフトウェアを効率よく管理するといった点で大きな効果を発揮しているが、その考え方も適用する対象範囲(ソフトウェアまたは一部関連ドキュメント)が限定されている。

 対象をソフトウェアに限っていえば、ソフトウェア構成管理、変更管理、リリース管理などをサポートするSCM(Software Constitution Management:ソフトウェア構成管理)による、技法/技術が確立され充実されたことで、ほぼこの領域では、十分な効果を上げている。 

 今後は、製品開発に伴うプロジェクトの全体を通じた開発情報(ソフトウェア開発情報、ハードウェア開発情報、開発に伴う人材/組織情報など)の関連性を帯びたすべての情報の可視化を可能とする統合構成管理の仕組み(仮想統合リポジトリ:仮称)を積極的に検討すべきである。それぞれの構成管理を統合化することには、従来の縦型開発から脱却し、水平分散開発を強力に支援する仕組みとなり得る十分な可能性がある。

 また、製品開発プロセスを通じて作成された成果物(ドキュメント、プログラム、テスト仕様書など)の一貫性と整合性を図ることが可能となれば、高品質とソフトウェア規模の拡大への対応の両立という、現在の要求への解になり得ると確信している。

実施に向けての留意事項

 組み込みソフトウェア開発の効率化/品質向上の観点から、エンジニアリングプロセスおよび開発支援プロセスの改善に向けて、期待される重要な技法/技術について概観したが、最後にこれら技術を組み込みソフトウェア開発に適用する際の留意点について触れる。

 ビジネスアプリケーションを構築する際に利用される多くの技術は、世界標準仕様のハードウェアやプラットフォーム上(UNIX、TCP/IP、RDBMSなど)で、類似性を持った開発ツール(CASE、テストツール、リバースツール、UML、構成管理、運用監視など)が数多く開発され、提供されることによって支えられてきた。

 一方、組み込みソフトウェアは、本質的に個別のハードウェアへの依存度が高く、ビジネスアプリケーションと比較してプラットフォームや開発技術の標準化も困難な状況にあり。また開発されるソフトウェアは、多種多様な製品に依存しており、新規開発の絶対量(新規開発より既存ソフトを流用する比率が多い)は、ビジネスアプリケーションよりはるかに少ない。各装置に依存した小さなプログラムが多く存在し、それらを外注(子会社や協力会社)によって開発しているという組み込みソフトウェア開発の特殊性も、標準化に向けての足かせになっている。

 例えば、プログラムの不具合が生じた場合の対処方法の考え方一つを取ってみても、そのアプローチはさまざまである。組み込みソフトウェアの規模や機能は、年々、指数関数的に増大している。また、それに伴って開発されるプログラム数も膨れ上がり、度重なる追加、改修によってソースコードが「スパゲッティ状態」になってしまう。

 手の施しようがなくなる前に、前述したようなビジネス・アプリケーションでの最新手法/技法を、組み込みソフトウェア開発環境に採用する流れを強く推進することが重要である。その際には、ビジネスアプリケーション開発での類似性と、組み込みソフトウェアの特殊性とを十分に吟味し、時間を掛けて行うことが必須である。

組み込みソフトウェア開発にて今後注目を浴びる改善手法/技法を活用する際の留意点

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ