日立評論

日立グループ全社におけるソフトウェア開発プロセス革新

ページの本文へ

Hitachi

日立評論

デジタルで変わる次世代モノづくり基盤

日立グループ全社におけるソフトウェア開発プロセス革新

ハイライト

あらゆる製品にソフトウェアを搭載しネットワーク化することで,データに基づく新しい価値を社会に提供していくことは,日立の経営戦略の一つである。その実現に向け,指数関数的に規模を増し,複雑化するソフトウェアの開発には,デジタル時代の経営基盤としての革新が求められている。

本稿では,2018年度に構築したソフトウェア開発力強化のための新たな全社スキームを示す。また,開発プロセス革新を支える先進技術開発事例として,多様なソフトウェア開発実績を持つ日立グループのシナジーを生かしたソフトウェア開発プロセス構築技術,AI技術を用いた開発プロジェクトのリスク検出技術の開発について述べる。さらに,具体的なプロセス革新事例として,継続的インテグレーションにおけるキーワード駆動テストの実現について述べる。

目次

執筆者紹介

小川 秀人Ogawa Hideto

  • 日立製作所 研究開発グループ システムイノベーションセンタ
  • システム生産性研究部およびソフトウェアモダナイゼーションラボラトリ 所属
  • 現在,ソフトウェア工学の研究およびプロセス改善に従事
  • 博士(情報科学)
  • 情報処理学会会員
  • 電子情報通信学会会員
  • 日本ソフトウェア科学会会員

川上 真澄Kawakami Masumi

  • 日立製作所 研究開発グループ システムイノベーションセンタ
  • システム生産性研究部およびソフトウェアモダナイゼーションラボラトリ 所属
  • 現在,ソフトウェア工学の研究およびプロセス改善に従事
  • 情報処理学会会員
  • プロジェクトマネジメント学会会員
  • IEEE会員

加賀 洋渡Kaga Hiroto

  • 日立製作所 研究開発グループ システムイノベーションセンタ
  • システム生産性研究部 所属
  • 現在,ソフトウェア工学の研究およびプロセス改善に従事
  • ソフトウェア科学会会員

長船 辰昭Osafune Tatsuaki

  • 日立製作所 研究開発グループ システムイノベーションセンタ
  • システム生産性研究部 所属
  • 現在,ソフトウェア工学の研究に従事
  • 博士(情報科学)
  • IEEE会員

1. はじめに

次世代のモノづくりにおいてソフトウェア開発は不可欠である。IoT(Internet of Things)やConnected-Xといった言葉で示されるように,あらゆる製品がソフトウェアを搭載しネットワークにつながる世界では,ソフトウェアは従来と同等の機能性を提供するだけでなく,より複雑で高精度な制御や,データ分析に基づく高度な最適化など,新たな顧客価値を提供する要となっている。

これらを実現するため,製品に搭載されるソフトウェアの規模や複雑さは指数関数的に増し続けている(図1参照)。IPA(Information-technology Promotion Agency, Japan:独立行政法人情報処理推進機構)の調査1)によれば,組み込みソフトウェア開発の課題として「設計品質の向上」,「開発能力(量)の向上」,「技術トレンドへの対応」が上位3位に挙げられており次々と登場する新しい技術への対応と,ソフトウェア開発の質と量の両立が課題となっている。次世代技術による顧客価値創造を実現する経営基盤として,ソフトウェア開発の革新が不可欠である。

日立グループは,全社的なソフトウェア開発革新のための新たな施策を2018年度より開始した。本施策は,組織革新を牽(けん)引する体制構築と,開発プロセスの革新を牽引する技術開発から成る。本稿では,2章で組織革新の事例を,3章および4章で技術革新の事例を紹介する。

図1|組み込みソフトウェア規模の拡大1つの製品に搭載されるソフトウェアの規模や複雑さは指数関数的に拡大している。

2. ソフトウェア開発力強化に向けた全社体制

日立グループには,モノづくりや品質保証を専門とし,グループ横断的な改善活動を定常的に推進する全社組織として,モノづくり強化本部および品質保証本部が存在する。また,2004年からは「組み込みシステム改革活動」によるグループを挙げたソフトウェア開発強化を推進してきた2)。これまでは,こうした全社活動を通じて改善を継続してきたが,近年の急速に発展するソフトウェア技術を活用し,ソフトウェア開発のあり方を抜本的に革新するべく,ソフトウェア開発力強化のための全社体制を2018年度に刷新した(図2参照)。

図2|日立グループのソフトウェア開発力強化体制グループのノウハウを生かした全社体制を確立した。

2.1 ソフトウェア開発力・信頼性強化プロジェクト

本社組織として「ソフトウェア開発力・信頼性強化プロジェクト」(以下,「ソフトPJ」と記す。)を2018年度に発足させた。ソフトPJのミッションは,多彩なソフトウェア開発の実績を持つ日立グループのシナジーによる開発力の強化である。具体的には,各事業部門に設置した「ソフトウェア強化責任者」と連携して,その事業部門におけるソフトウェア開発の実態のアセスメントを実施する。また,各事業部門の持つ課題とともに先行事例やノウハウを収集し,収集した事例やノウハウを他の事業部門に横展開することで各事業部の抱える課題の解決を図る。

2.2 ソフトウェアモダナイゼーションラボ

研究開発グループには,研究部門を横断する「ソフトウェアモダナイゼーションラボラトリ」(以下,「SML」と記す。)を設置した。SMLのミッションは,日立グループのソフトウェア開発技術の先進化を牽引することである。ソフトウェア開発の専門性を有する研究者が所属しており,先進的なソフトウェア開発技術の活用と創出を推進する。また,前述のソフトPJと連携し,社内外の先端技術を各事業部へ適用し,開発のモダナイゼーションを実践する。

以降,3章ではSMLによる革新技術の開発事例を,4章では事業部に対するプロセス革新事例を紹介する。

3. ソフトウェア開発革新技術

ソフトウェア開発の革新には,開発組織の実態を観測し,その観測結果を基に状況を把握して,状況に応じた施策を決定し,施策を実行するといったループを継続することが有効である。また,各プロジェクトを成功させるには,進行中のプロジェクトを常に観測・把握することでプロジェクトの早い段階で開発リスクを検出し,それに対する施策を迅速に実行することでリスク低減を図ることが大切である(図3参照)。

SMLでは,組織レベルの改革と進行中プロジェクトへのリアルタイムな対策とのそれぞれを支援する技術開発を行い,ソフトウェア開発革新を推進している。

組織レベル改革に対しては,プラクティス共有ポータルサービスを開発し,組織のソフトウェア開発力のアセスメント(状況把握)と,開発プロセスの策定(施策決定)を支援する。

リアルタイム対策に関しては,プロジェクトマネージャー(以下,「プロマネ」と記す。)支援AI(Artificial Intelligence)を開発し,進行中のプロジェクト情報の収集(実態観測)と,それに基づくリスク検出(状況把握)とアクションの推薦(施策決定)を支援する。

図3|開発力強化のためのスキーム組織レベルの改革と,プロジェクトレベルのリアルタイム対策の両面で,実態観測,状況把握,施策決定,実行のループを回す。

3.1 組織レベルを改革するプラクティス共有ポータル

ソフトウェア開発力の底上げを目的に,標準開発プロセスを定義してこれを複数の製品開発に展開することが一般的に行われる。しかしながら,多様な製品分野を持つ日立グループでは,単一の開発プロセスを定義しても,それが各製品分野の実態と適合しない場合がある。そのため,日立グループ全体のソフトウェア開発力の底上げには,製品ごとの実態観測と状況把握を行うアセスメントと,各製品向けにテーラリングした開発プロセスの確立とを効率的に行うための技術が必要である。

そこで,開発プロセス改革を支援するWebサービスとして「プラクティス共有ポータル」を開発した。本ポータルは,組織のソフトウェア開発能力を把握するセルフアセスメントと,アセスメントに基づいた開発プロセスを組み立てるためのプラクティスを推薦する技術の集合体である。

本ポータルでは,開発プロセス,アーキテクチャ,設計・開発手法の各項目について,組織の開発力レベルを評価できるアクティビティ基準を定義している。各組織で現在実践しているアクティビティを定義した基準と比較することで,開発力を評価できる。

また,各アクティビティを実践する具体的な方法や事例をプラクティスという形式で蓄積しており,開発力レベルを向上するための具体的手段をレコメンドする。このプラクティスは,2章で示した全社体制で収集した先進事例やノウハウから構成されており,日立グループの広範な知見を活用して,新たなプロセスを構築できる(図4参照)。

図4|プラクティス共有ポータルサービスの概要プロジェクトで実施しているアクティビティによるレベル判定と,蓄積したプラクティスを用いたプロセス構築を支援する。

3.2 リアルタイム対策を支援するプロマネ支援AI

ソフトウェア開発の効率化のためにチケット管理システムや成果物管理システムの導入が進んでおり,プロマネがさまざまなシステムの情報を統合してプロジェクトを推進していくスタイルが普及してきている。しかし開発者が100人を超えたり,分散拠点開発となったりするプロジェクトではプロマネが正確な情報を把握することが困難になり,適切なマネジメントが行えなくなる問題がある。

そこでプロマネ支援AIは,進行中の開発プロジェクトのデータを収集し,リポジトリマイニング技術に基づいて解析を行うことでプロジェクト状態の把握を支援する。プロマネに有益な情報を提示するため,各種可視化ビューを提示し,開発プロジェクトの状況を総合的に判断してリスクの発生を検知して,リスク発生アラートとプロマネが取るべきアクションをレコメンドする。これらの機能を実現するために,プロジェクトの管理情報と成果物管理情報を組み合わせて情報の補正を行う技術と,統計や機械学習を適用したリスク検出技術とを開発している(図5参照)。

プロマネ支援AIにより,プロマネはデータに基づいて判断が行えるようになり,開発プロジェクトを安定的に運営できるようになる。

図5|プロジェクト状態の可視化の例プロマネ支援AIはプロジェクトデータを解析してプロジェクトの状況をプロマネに提示するとともに,プロジェクトリスクを予測して経営者や支援部門に通知することで,早い段階でのリスク対策を可能にする。

4. 開発迅速化のための開発プロセス変革事例

本章では,SMLが実践した事業部におけるソフトウェア開発プロセスの変革事例を紹介する。

製品のリリースは,市場の要求に応えるために短いサイクルで行われるが,開発規模の拡大に伴い,開発には大きな工数を要している。品質担保と開発工数削減を両立し,限られた人員で開発を進めるために,ソフトウェアを高頻度に検証する継続的インテグレーション(CI:Continuous Integration)が注目されている。CIは,ソフトウェアのビルド,実行環境の準備,テストを自動化し,ソフトウェアの機能追加,変更のタイミングごとに品質を確認する開発プロセスである(図6参照)。

CIは高頻度に品質を確認できる一方で,テストを自動化するためのテストスクリプトを作成する工数が大きい。そこで本研究では,CIにおけるテストスクリプト作成工数の削減を検討した。

図6|継続的インテグレーションビルド,実行環境の準備,テストを自動化し継続的に実行することで,高頻度での開発と品質確認を可能とする。

4.1 CI環境におけるキーワード駆動テストの実現

図7|テストスクリプトの重複実装の例従来は機能ごとにテストを作成していたため,テストの一部について重複して実装されることがあり,開発の無駄が生じていた。

図8|キーワード駆動キーワードとそれに対応する処理実装をあらかじめ用意することで,キーワードの組み合わせによってテストスクリプトを実現できる。

開発したプログラムに対して行うテスト手順は,各テスト担当者がテストスクリプトとして実装する。このとき,各テスト担当者がそれぞれ異なるプログラム言語で実装すると,テスト担当者間でのテストスクリプトの共有が困難になる。また,テスト担当者が既存のテストスクリプトを把握していない場合,同一の処理を重複実装してしまう場合がある(図7参照)。

これらの問題を解消し,開発プロジェクト内でテストスクリプトの再利用を促進するためには,テストスクリプトの記述ルールを統一する必要がある。このような課題を解決するテストスクリプト記述のベストプラクティスとして,キーワード駆動が知られている。キーワード駆動とは,テストに対応する手順や処理をキーワードとして定義し,キーワードの並べ替えでテストを表現し,テストを行う手法である(図8参照)。

キーワード駆動に対応したOSS(Open Source Software)のテストフレームワークとして,Robot Frameworkがある5)。Robot Frameworkは,キーワード駆動に則した所定のフォーマットで記述されたテストスクリプトを実行できるフレームワークである。テストスクリプトは,テストケース部とキーワード部に分かれており,キーワード部で定義したキーワードを,テストケース部に列挙することで,キーワードに対応する処理を順次実行できる。キーワードを用いてテストスクリプトを記述することで,テストスクリプトの部品をキーワード単位で共有することが可能となる。

これらのキーワードの共有を促進するために,テストスクリプト群から,既存のキーワードを自動抽出し,Web上に一覧として表示するシステムを構築した(図9参照)。このシステムの活用により,テスト担当者間で既存のキーワードの把握が容易になる。

以上のように,CIにおけるテストスクリプト作成に対してキーワード駆動を適用することで,既存のテストケースの個々の手順に相当するキーワードの共有が容易になる。キーワードが再利用されることによって,テストスクリプトを作成する工数の削減が見込まれる。

図9|キーワード一覧表示システムテストスクリプト群からキーワードを自動抽出し一覧表示することで,担当者間でのキーワードとスクリプトの再利用を促進する。

5. おわりに

本稿では,ソフトウェア開発を対象としたプロセス変革を推進する全社体制と技術開発について示した。一方,Software 2.0と呼ばれる新しいソフトウェア開発のパラダイムも登場している。これは,機械学習を用いてシステムを構築するものである。データを基にした帰納的な学習では,演繹(えき)的なソフトウェア開発を前提とした従来の開発技術の有効性が懸念されている。例えば,従来のソフトウェアテストでは仕様を規範としてテストケースを策定するが,機械学習では規範となる仕様が存在せず,テストが困難である。そこで,日立はSoftware 2.0を対象とした開発技術の研究を進めるとともに,AIプロダクト品質保証コンソーシアムや,機械学習工学研究会などの活動を通じ,次世代のシステム開発技術の確立に貢献していく。

参考文献など

1)
IPA,「組込みソフトウェアに関する動向調査」調査報告書(2018.3)
2)
小泉忍,外:日立グループシナジーを生かした組込みシステム開発力強化の取り組み,日立評論,91,5,418〜421(2009.5)
3)
Jez Humble,外:継続的デリバリー,KADOKAWA(2017.7)
4)
IEEE 29119-5-2016 - ISO/IEC/IEEE International Standard - Software and systems engineering -- Software testing -- Part 5: Keyword-Driven Testing
5)
Robot Framework
6)
AIプロダクト品質保証コンソーシアム
7)
機械学習工学研究会
Adobe Readerのダウンロード
PDF形式のファイルをご覧になるには、Adobe Systems Incorporated (アドビシステムズ社)のAdobe® Reader®が必要です。