レポート

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

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

再利用できるソフトウェア部品の構築

結果の再利用から再利用設計へ

2つ目のセッションでは、⁠再利用できるソフトウェア部品の構築~結果の再利用から再利用設計へ」と題し、ビースラッシュの近藤満氏のプレゼンテーションが行われました。

再利用を意識した設計を

ビースラッシュ 取締役 近藤満氏

2つ目のセッションのテーマは、組込み開発における既存資産の再利用率の向上です。ビースラッシュ 取締役の近藤満氏は、まず再利用の効果として、⁠品質の向上」「開発期間短縮」⁠開発コストの削減」⁠肥大化への対処」の4つの効果を挙げます。特に開発期間短縮については、設計者を1人から10人にしても生産性は10倍にはならないとし、手法や技法の工夫が必要であると話しました。開発コストの削減についても、再利用が進んで生産性が向上すれば、開発費が削減されると言います。

では、実際の現場ではどの程度再利用が進んでいるのでしょうか。近藤氏によれば、⁠再利用率が50%以下という企業が50%以上を占めているが、一方で平均値は80%を超えている」とのことです。実際に再利用率が高い領域として上げられたのが、自動車のエンジン制御、そしてデジタルOA機器の分野です。前者は80%以上、後者に至っては90%以上という再利用率が達成されているとのことで、これらの領域において開発が効率的に進められていることが伺えます。

こうした再利用の推進による効率的な開発を実現するためには、再利用方法の改革が必要であると話は進みます。具体的な改革のポイントとして紹介されたのは、設計段階から再利用を意識するということです。開発したモジュールが結果的に再利用することができた、というようなことでは当然再利用できてもプロジェクトに大きなインパクトを与えるまでには至らないでしょう。しかしあらかじめ再利用することを前提に設計すれば、その成果をほかの製品に展開しやすくなるというわけです。そして再利用の粒度を大きくしていくことと、資産の包括的な再利用がポイントとして示されました。

具体的な再利用率の向上のためには、リファクタリングとリエンジニアリングにより、既存コードを再利用しやすいように手直しを施すことや、ソフトウェアを小さなドメインに分割して開発を行う、プロダクトラインエンジニアリング(PLE)が重要であると近藤氏は語ります。プロダクトラインエンジニアリングによって、共通して利用できる部品が蓄積され、開発の現場でそうした部品を組み合わせて開発が進められるようになれば、再利用率は大幅に向上できそうです。

しかし実際には、プロダクトラインエンジニアリングは組織的な取り組みが要求されるため、⁠実施のハードルが高い」と近藤氏は言います。たとえば設計者に再利用を考慮した設計を行うだけの時間的な余裕がなければ、プロダクトラインエンジニアリングを成功させるのは難しいでしょう。また再利用を推進するための専任組織ができなければ、蓄積された資産を誰が維持・管理していくのかといった問題にも突き当たります。こうした問題を打破できるかどうかが、再利用率の向上において重要だと語ります。

再利用部品開発を阻む高い壁

ビースラッシュ 取締役 酒井郁子氏

近藤氏に続いて登壇した同じくビースラッシュ 取締役の酒井郁子氏は、特に派生開発や多品種並行開発を行っている企業で、再利用可能な部品を構築したいというモチベーションは高まっている一方、現実的にはさまざまな困難がつきまとっていることを紹介します。

再利用部品開発の失敗例として、多数の製品で利用できる部品を目指して開発が進められたものの、汎用化しすぎて小さな部品しか残せなかった、あるいは部品の亜種が大量に発生し、効率的な再利用には至らなかったケースが紹介されました。

後々の開発に役立つ、再利用部品を開発するためには「組織的な取り組みと、開発した部品の保守管理、開発者のスキル、そしてモチベーションが必要」で、それらの点が高い壁になっていると酒井氏は指摘しました。

それでも効率的な開発を実現していくためには、再利用可能な部品の構築は必要不可欠です。そこで部品構築に失敗しないための原則として、部品の仕様や設計を明らかにすること、リファクタリングによるコード品質の向上、部品の骨組みの見える化などの重要性が解説されました。

ただ、コードのリファクタリングや品質管理、骨組みの見える化は決して楽な作業ではありません。また自分の開発したものであればまだしも、過去の資産となると多くの苦労がつきまとうのは目に見えています。そこで、こうした作業を補助するツールとして紹介されたのが、東陽テクニカの「QAC/QAC++」⁠⁠Structure101」⁠⁠eXquto」⁠PERFORCE」といった製品群です。

ツールを活用して再利用部品開発を推進

QAC/QAC++は、C及びC++のソースコードの静的解析ツールです。このツールを使ってコードの分析や静的テストを行うことにより問題点の抽出が可能になり、品質を定量的に見極められます。こうしてコードの素性を明らかにすることができれば、部品として使いやすくなるのは間違いないでしょう。さらにこうしたツールを使って詳細設計のミスやコーディングミスを排除することにより、ソースコードの品質を保つことが可能なるため、部品化の際にも大いに役立ちます。

このQAC/QAC++によって出力されるソフトウェアメトリックスを使い、スコープ別、そして品質特性別評価を行ってくれるのがexQutoです。スコープ別評価では、アーキテクチャ設計/コンポーネント設計/ファンクション設計/コーディングスタイルに分類し、品質を定量的に示します。一方品質特性別評価は、信頼性/効率性/保守性/移植性のそれぞれで得点化が行われ、やはり品質を定量化することが可能になります。

加えてプロジェクト内のすべてのファイルを対象に、コピー&ペーストで生成したクローンコードを検出する機能もあります。クローンコードに修正が必要な内容が含まれていた場合、漏れなくすべて修正するのは骨が折れる作業ですが、exQutoを使えば大幅に手間を軽減できるわけです。

そのほか、やはりQAC/QAC++の解析結果をベースに構造解析を行うStructure101を東陽テクニカが提供しています。これらのツールを活用し、ソースコードから情報を引き出して自動的にドキュメントを生成し、部品化の手間を削減することが重要であると酒井氏は述べます。

さらに酒井氏が指摘するのは、部品の適切な管理です。具体的にはソースコードやドキュメント、テストコードのセット、そして変更履歴や使用履歴といった部品の履歴を残すために、構成管理ツールを活用して確実に部品を管理していくべきだと言います。こうした構成管理ツールの1つとして、東陽テクニカが提供しているのがPERFORCEです。低コストで導入できる上、開発規模によって拡張可能な柔軟性も持ち合わせています。さらに独自のブランチ方式であるInter-File Branchingにより、複数のリリースや並行する開発の流れを管理できるなど、開発の現場において有用な機能を備えています。

最後に酒井氏は⁠部品は皆の財産⁠であるとして、⁠可視化やリファクタリングを駆使して、みんなが使える部品を残しましょう」とまとめました。