レポート

第2回 組込みプレスセミナーレポート

この記事を読むのに必要な時間:およそ 6.5 分

大規模開発時の品質向上をいかに実現するか ─ 実践的なアプローチを考える

エクスモーションの渡辺博之氏をモデレータに迎えて行われたのは、⁠大規模開発時の品質向上をいかに実現するか ─ 実践的なアプローチを考える」と題したトークセッションです。大規模開発時の品質向上をどうやって実現するかをテーマに、さまざまな経験を持つパネリストの方々が語ります。

品質6特性のどれを重視するかはドメインによって変わる

第2回組込みプレスセミナーの最後は、⁠大規模開発時の品質向上をいかに実現するか ─ 実践的なアプローチを考える」と題したトークセッションでした。エクスモーション 専務取締役の渡辺博之氏をモデレータに、デンソー ITS技術2部 第3技術室 グループリーダーの間瀬研二氏、3番目のセッションに引き続いて登壇して頂いた日立情報制御ソリューションズの飯島三朗氏、そしてエクスモーションの山内和幸氏の4名でトークは進められます。

左:エクスモーション 専務取締役 渡辺博之氏(モデレータ)
右:デンソー ITS技術2部 第3技術室 グループリーダー 間瀬研二氏

エクスモーション 専務取締役 渡辺博之氏 デンソー ITS技術2部 第3技術室 グループリーダー 間瀬研二氏

左:日立情報制御ソリューションズ 主幹技師 飯島三朗氏
右:エクスモーション 山内和幸氏

日立情報制御ソリューションズ 主幹技師 飯島三朗氏 エクスモーション 山内和幸氏

まず渡辺氏から問いかけられたのは、⁠そもそも品質って何ですか⁠⁠。これに対して「機能や性能、使い勝手が顧客の求めているレベルに達しているかどうか」と答えたのは飯島氏。ただ、こうした点がドキュメント化されているかどうかが重要で、それがなされていないとトラブルの原因になりかねないと話します。

間瀬氏も飯島氏の意見に同意しつつ、⁠自動車の中で使われる機器を開発しているため、求められる品質は非常に高い」とのこと。⁠利用者の生命を預かる製品を扱っているので、もっとも重点的に考えている領域です」という言葉からも、要求される品質の高さが伺えます。

山内氏はISO/IEC9126で規格化されている、機能性、信頼性、使用性、効率性、保守性、そして移植性のそれぞれでソフトウェアを評価する、品質6特性を定義としていると話します。ただ、これらの中でどれが重要かは、ドメインによって変わるのではないかとのこと。さらに「ユーザーから見える品質を重視するあまり、保守性と移植性が落ちているのではないでしょうか。これが今の品質問題の原因になっていると思います」と、開発者向けの特性がおろそかになっている現状を指摘します。

こうした開発者向けの品質特性を軽視することは、その後の開発に大きな影響を及ぼします。たとえばある機能を実装する必要が生じたが時間がないといった場合、ユーザーの要求を実現することが最重要であり、それによって保守性や移植性が犠牲になるのは珍しいことではないでしょう。こうしたことが続くと、保守性が大きく損なわれる結果となり、次に手を入れるのが難しくなるというわけです。

ただ、場合によっては開発者向けの品質特性を考えないケースもあり得ると飯島氏は述べます。⁠一発勝負のような受託開発では、保守性や移植性はあまり考えずに開発します。リピート性の強いものは保守性を意識して作りますが、1回作ったら終わりというものでは効率に重点を置きます」と、開発の内容によっても重視するポイントは変わりうると話します。

大規模開発の難しさとは

続けて渡辺氏は「大規模な組込み開発の難しさはどういったところでしょうか」と問いかけます。

まず飯島氏は「OSの上で動作するアプリケーションをいろんな人が開発するようになり、全体像が見えづらくなっていく」と語ります。その解決策としては、⁠コンセプトがしっかりしていること」「見える化」を挙げます。

カーオーディオのアプリケーションを担当していたという間瀬氏は、⁠MP3やWMAの再生など、機能を高めるために外部で開発されたプログラムを取り込むことがありますが、こうしたものはもともとのターゲットがPC向けのためか、メモリを大量に消費するなど、求めている品質が組込み向けのものと違う」と、外部との連携の難しさを述べました。

規模が大きくなると把握するのが困難になり、それが品質向上や維持の難しさにつながっていくと語るのは山内氏。こうした規模の問題に加え、開発に携わる人が増えることの難しさも大きいと言います。⁠特に会社が違えば考え方が違うと思われるので、非常に大変じゃないでしょうか。さらにオフショアが絡んでくると、言語や文化の問題も出てきます。こうしたところが品質を確保する上で難しくなってくると思います⁠⁠。

最後のまとめでは、まず飯島氏が「何らかの形でシステムが見えるようにしないと、議論できないのではないでしょうか。自分が作っている製品が見えているのかを問い直してください」と語り、改めて見える化の重要性を指摘します。

間瀬氏は「議論していますか」と会場に問いかけます。⁠差し迫ったところでコードを書き始めるケースも多いと思います。ただ、書き出す前に徹底的に議論をしておけば、最終的な品質につながるのではないかと考えています」と、前段階での品質を意識したコミュニケーションが重要であると述べます。

山内氏が指摘したのはアーキテクチャの重要性です。プロセスや組織としてできる品質向上もあるが、大規模なシステムでは「アーキテクチャを中心に開発していくことが重要」であるという認識を示します。耐震偽装問題に触れ、アーキテクチャをしっかり作っていれば構造欠陥をすぐに見抜けたはずと語り、ソフトウェアの開発においてもそれと同じことが起きているのではないかと語りました。

最後に渡辺氏がトークセッションをまとめます。⁠品質には2つの側面があり、顧客向けの品質だけではなく開発者に対する品質もあるので、そこを考えましょう。またどちらを重視するかは状況に応じて変わるので、都度議論していく必要があると思います」と顧客向けの品質特性だけでなく、保守性や移植性といった開発者向けの品質特性の両方を考えるべきだと述べます。さらに大規模開発においては、⁠品質を低下させる要因の徹底的な予防」「大規模開発に耐えうる開発者向けの品質の向上⁠⁠、そして「円滑なコミュニケーション」の3点が重要であると解説し、トークセッションは盛況のうちに幕を閉じました。