ページの本文へ

Hitachi

企業情報研究開発

ニーズの多様化や市場のグローバル化に伴い、組込みソフトウェアの開発現場では、拡大する製品バリエーションにスピーディに対応することが求められています。いま、開発効率を向上させるための手法として「ソフトウェアプロダクトライン」が注目を集めています。日立では、開発現場にいる研究員と有志による全社活動とが連携して、ソフトウェアプロダクトラインの適用拡大を推し進めています。

(2015年11月5日 公開)

ニーズの多様化に応えるために

ソフトウェアプロダクトラインの研究はいつごろから始まったのですか。

島袋カーナビやデジタル家電が普及してきた2000年代初頭ですね。いままでハードウェアだけで動いていたものにソフトウェアが組み込まれるようになり、組込みソフトウェアの開発効率や信頼性をどうするかというのが大きな課題になりました。
特に、近年はニーズが多様化していて、製品のバリエーションが増えているんです。でも、製品ごとにソフトウェアを一から開発することはとてもできません。

組込みソフトウェアの開発では、必要な資産をいかにうまく再利用するかが重要なテーマです。共通部分を大きくして、その機種に固有な部分だけを開発すれば、効率良く信頼性の高い新しい製品ができる。ソフトウェアプロダクトライン(SPL:Software Product Line)は、この仕組みを実現するための手法です。
当時、欧米ではすでにソフトウェアプロダクトラインの研究が進められていました。日立でも、開発効率や信頼性の課題を解決するため、この手法を製品開発に取り入れていこうと研究が始まりました。

現在、日立で実用化された事例は、自動車のエンジン制御装置、医用分析装置(検査装置)をはじめ、さまざまな事業分野に及んでいます。

実際に、1回あたりの開発コストを大幅に削減したことがあるそうですね。

加藤はい。日立金属株式会社が開発しているネットワークスイッチの事例です。1年間に六つの製品を同時に開発する計画があり、開発コストの削減が急務でした。ベース製品のソースコードをコピーして差分だけ変更するという従来の開発手法は、ソースコードが製品間で重複するため管理が煩雑です。そこに改善の余地を見出して、ソフトウェアプロダクトラインを適用することになりました。
わたしは、ソフトウェアプロダクトラインに関する技術的なサポートを担当しました。

ソフトウェアプロダクトラインを適用することで、製品のマイナーバージョンの開発で90%の資産を、メジャーバージョンの開発で56%の資産を再利用できたため、開発コストの大幅な削減につながりました。

図1 ソフトウェアの再利用事例
ソフトウェアの再利用事例を示した図

計画から振り返りまでのサイクルが成功の鍵

ソフトウェアプロダクトラインとはどのような手法ですか。

島袋ひと言で言うと、ソフトウェア開発に必要な資産を計画的に再利用するための手法です。再利用可能な共通部分を「コア資産」と定義して、コア資産を中心に三つのアクティビティで構成します。
一つ目のアクティビティは「ドメイン・エンジニアリング」。コア資産を開発します。二つ目は「アプリケーション・エンジニアリング」。コア資産を活用して個別の製品を開発します。三つ目は「マネージメント」。ドメイン・エンジニアリングとアプリケーション・エンジニアリングを管理します。
コア資産には、ソフトウェアの部品やフレームワークのほか、開発支援ツール、開発プロセス、人材なども含みます。

加藤「計画的に」再利用するのが大きな特徴です。計画なしに再利用(ベース製品のソースコードをコピー)する場合、毎回コピー元からの差分だけが注目されがちで、局所的な変更を重ねるうちに全体として形が崩れていくという問題が起こりやすいんです。

ソフトウェアプロダクトラインの場合、対象とする期間やラインアップなど範囲を決め、その範囲内の開発に必要なコア資産を用意して再利用方法まで計画しておきます。個別の製品開発では、基本的にはコア資産には手を入れずに、固有部分だけを開発します。このように計画に沿って開発することで、効率良く製品の信頼性を確保できます。

図2 ソフトウェアプロダクトラインの概要
ソフトウェアプロダクトラインの概要を示した図

計画どおりに進まないことはありますか。

加藤ありますよ。もちろん、起こりうる問題を現状ベースで分析して、計画変更のリスクが高そうな部分は対応を検討しておくなど、工夫はしています。それでも開発が進むうちに、コア資産の管理に手が回らなくなってきて、その影響で製品の品質が悪くなって、という悪循環に陥ることがあります。たとえば、複数の製品を並行開発していると、コア資産と固有資産とでソースコードの切り分けがあいまいになってしまうことがあります。

そういうときは、開発が終わったタイミングで振り返りをします。すべての製品にとって本当に再利用性の高い資産は何だったかを振り返って、ちゃんと共通管理し直しましょう、とフィードバックを掛けていきます。

ソースコードの振り返りですか。徹底していますね。

加藤はい。計画して振り返るというサイクルをうまく回すことも、マネージメントの一部だと思っています。

島袋一方で、ソフトウェアの実装面…ソースコードやアーキテクチャーだけに着目していてはうまく回らないんです。ソフトウェアの実装は、ビジネス・プロセス・組織とセットで考えないといけません。

コア資産は今後開発予定のソフトウェアにも再利用されるものなので、将来どんな事業、製品で生き残っていくのかというビジネス戦略にまで踏み込んで検討が必要です。マネージメントで言うと、マネージメントのための組織づくりや、マネージメント自体をプロセスに組み入れるところまで考慮することが求められます。

日立の技術力を押し上げる「部会活動」

エンジニアとは違う立場で考え、提案するということですね。

加藤そのとおりです。とはいえ、エンジニアに受け入れられないと使ってもらえないので、さじ加減が難しいところです。
ソフトウェアプロダクトラインは、教科書的には大掛かりな計画性を持った手法です。それを開発現場の実情に合わせて、こっちのプロセスが合っているだろうとか、組織をこう変えれば良くなるだろうとか、事例ごとにカスタマイズしたプランを提案していきます。

島袋実用レベルでソフトウェアプロダクトラインを成功させるために、幾つかの進め方のパターンや、事例が変わっても共通するノウハウがあります。それらをまとめておき、次の事例に生かす。そうして成功事例が増えれば、次はうちで、と手を挙げてくれるところも増えますから。

事例から事例へと、好循環を生む仕掛けがあるのでしょうか。

写真「島袋 潤(しまぶくろ じゅん)」

島袋日立では有志による「部会活動」というのがあって、その枠組みの中で取り組んでいます。部会活動には、日立グループ全体で連携して、事業横断で活用できるモノづくりの基盤技術を生み出す、普及させるというミッションがあります。通常の業務と並行しての活動なので大変な面もありますが、問題意識とやる気のある人たちが集まってくるんです。
問題意識がありそうな若者に、こういう集まりがあるんだけどちょっと出てみない?と誘うこともあります。

加藤わたし自身もそこで1年くらい活動していて、ノウハウの整理などを担当しました。

島袋引きずり込んだんですよ(笑)。
部会活動を通して、加藤が携わったネットワークスイッチのような成功事例をほかの事業所、グループ会社に紹介したり、新たな意見をもらったりということをやっています。実際、ネットワークスイッチの事例がきっかけとなって、事業分野がまったく異なる製品の開発プロジェクトでもソフトウェアプロダクトラインの適用が始まっているんですよ。

異なる事業分野にも広まっているんですね。うまくいくコツは何ですか。

島袋お金や組織を動かせる人に理解してもらうことですね。
ソフトウェアプロダクトラインには、先行投資的な側面が多分にあります。最初にコア資産を開発しておけば、個別の製品開発が楽になる。どこかのタイミング…一般的には3〜4回の開発で損益分岐点に到達して先行投資分を回収できて、その後はさらなるコスト削減や開発期間の短縮を期待できます。

ただ、先行投資するかどうかは当然、マネージャー層の判断になりますよね。そういう人たちを納得させないといけない。そのために、部会活動で集めた事例を紹介しつつ、ターゲットの事業内容や開発上のポイントなどその分野ならではのコミュニケーションをするように心掛けています。
事前に情報を集めたり勘を働かせたり、大変ですけれども、一つではなくいろんな製品を見ていくことの楽しさでもあると思っています。

次の10年に向けて

社内/社外の反応はいかがでしたか。

加藤ネットワークスイッチの事例に関しては、ソフトウェアプロダクトライン国際会議(SPLC:Software Product Line Conference)という学会で発表する機会に恵まれたのと、社内でも部会活動があったおかげで、「その話、知ってるよ」と言ってもらえることが多いですね。
自分の研究活動のイントロダクションとしては、すごくやりやすくなったと感じています。次につながる活動ができていたんだなあと。

島袋個別の製品開発に携わることでその事業に貢献できて、学会発表もできて、社内外から注目を集めた結果、日立での事例が増えていく…こういうサイクルを継続していきたいですね。

この技術をより一層広めていきたいということでしょうか。

写真「加藤 正恭(かとう ただひさ)」

加藤そうですね。そのためにも、ネットワークスイッチの事例をブラッシュアップする、ほかの事例を増やす、ということを考えています。

しばらくネットワークスイッチの開発現場を離れていたのですが、実は今年からまた携わっているんです。ソフトウェアプロダクトラインを適用して数年が経過し、改めて振り返りをしてみたらまだ改善できそうなところがあるからと、もう一度やってくれというオファーがありまして。
過去に取り組んだ仕事にフィードバックをもらえて、長く携われるということは率直にうれしいですね。期待に応えるべく、振り返りをしっかりしながら新たな課題に挑戦していくつもりです。

島袋わたしは、ソフトウェアプロダクトラインの方は加藤に任せて、次の10年で柱となる新しい研究テーマを作りたいと思っています。ソフトウェアプロダクトラインは長らく主要な研究テーマの一つでしたし、成功事例も積み上がってきていますから。

世の中でIndustrie 4.0IoT(Internet of Things)と言われているとおり、これからは新しい分野に出て行く必要があると思っています。たとえば産業分野に対して、われわれ情報分野の技術は何に貢献できるかというところから、新しい研究テーマの切り口を見つけていきたいですね。

特記事項

  • 2015年11月5日 公開
  • 所属、役職は公開当時のものです。

関連リンク

  • ページの先頭へ

類似キーワードコンテンツ

  • ページの先頭へ