TOP特許意匠商標
特許ウォッチ DM通知 Twitter
10個以上の画像は省略されています。
公開番号2021018535
公報種別公開特許公報(A)
公開日20210215
出願番号2019132990
出願日20190718
発明の名称更新管理装置
出願人日立オートモティブシステムズ株式会社
代理人特許業務法人サンネクスト国際特許事務所
主分類G06F 11/36 20060101AFI20210118BHJP(計算;計数)
要約【課題】ある製品のソースコードの更新をある製品から派生した別の製品のソースコードに反映させるためのテストケースを作成できる。
【解決手段】更新管理装置は、第1プログラムの更新に関する情報および第1プログラムから派生した第2プログラムの更新に関する情報を受け付ける入力部と、第1プログラムの最新の更新を第2プログラムに反映させる回帰テストのためのテストケースを生成するために検討が必要な、第1プログラムの更新および第2プログラムの更新の範囲である更新適用範囲を特定する更新抽出部と、更新適用範囲における、それぞれの第1プログラムの更新と、それぞれの第2プログラムの更新との親密度を算出する親密度算出部と、親密度に基づきテストケースを生成するテストケース生成部とを備え、テストケースには、テストの順番およびテストの要否の少なくとも一方を含む。
【選択図】図2
特許請求の範囲【請求項1】
第1プログラムの更新に関する情報および第1プログラムから派生した第2プログラムの更新に関する情報を受け付ける入力部と、
前記第1プログラムの最新の更新を前記第2プログラムに反映させる回帰テストのためのテストケースを生成するために検討が必要な、前記第1プログラムの更新および前記第2プログラムの更新の範囲である更新適用範囲を特定する更新抽出部と、
前記更新適用範囲における、それぞれの前記第1プログラムの更新と、それぞれの前記第2プログラムの更新との親密度を算出する親密度算出部と、
前記親密度に基づき前記テストケースを生成するテストケース生成部とを備え、
前記テストケースには、テストの順番およびテストの要否の少なくとも一方を含む更新管理装置。
続きを表示(約 1,100 文字)【請求項2】
請求項1に記載の更新管理装置において、
前記親密度算出部は、前記第1プログラムの更新において更新されるファイルと、前記第2プログラムの更新において更新されるファイルの編集箇所が同一の箇所であるか否かに基づき前記親密度を算出する更新管理装置。
【請求項3】
請求項1に記載の更新管理装置において、
前記親密度算出部は、前記第1プログラムの更新において更新される関数と、前記第2プログラムの更新において更新される関数とが同一の関数であるか否かに基づき前記親密度を算出する更新管理装置。
【請求項4】
請求項1に記載の更新管理装置において、
前記親密度算出部は、前記第1プログラムの更新において更新される関数がアクセスする変数と、前記第2プログラムの更新において更新される関数がアクセスする変数が同一の変数であるか否かに基づき前記親密度を算出する更新管理装置。
【請求項5】
請求項1に記載の更新管理装置において、
前記親密度算出部は、前記第1プログラムの更新において更新される関数と、前記第2プログラムの更新において更新される関数とが利用関係であるか否かに基づき前記親密度を算出する更新管理装置。
【請求項6】
請求項1に記載の更新管理装置において、
前記親密度算出部は、前記第1プログラムの更新において更新される関数、および前記第2プログラムの更新において更新される関数が同一の関数を呼び出すか否かに基づき前記親密度を算出する更新管理装置。
【請求項7】
請求項1に記載の更新管理装置において、
前記親密度算出部は、前記第1プログラムの更新において更新される関数、および前記第2プログラムの更新において更新される関数が同一の関数から呼び出されるか否かに基づき前記親密度を算出する更新管理装置。
【請求項8】
請求項1に記載の更新管理装置において、
前記親密度算出部は、あらかじめ定められたポリシ情報に基づき親密度を算出し、
前記ポリシ情報にはソースコード用ポリシとモデル用ポリシとが含まれ、
前記親密度算出部は、前記親密度を算出する対象の前記第1プログラムの更新および前記第2プログラムの更新の両方がファイルを対象とする場合に前記ソースコード用ポリシを用いて前記親密度を算出し、前記親密度を算出する対象の前記第1プログラムの更新および前記第2プログラムの更新の少なくとも一方がモデルを対象とする場合に前記モデル用ポリシを用いて親密度を算出する更新管理装置。

発明の詳細な説明【技術分野】
【0001】
本発明は、更新管理装置に関する。
続きを表示(約 7,000 文字)【背景技術】
【0002】
近年、車両、建設機械、エレベータなどの産業機器では、サービスの高度化に伴いソフトウエアの規模は増加傾向にある。そのため、複数の製品に共通する機能については共通ソフトウエアを用いることで、重複開発を排除した開発の効率化が検討されている。共通ソフトウエアが機能の変更や不具合の解決のために修正された場合には、その共通ソフトウエアを利用するすべての製品ソフトウエアについて、共通ソフトウエアの機能のみならず、製品ソフトウエアに個別の開発内容についても修正の影響が波及する範囲や内容の分析、およびテストが求められる。この分析およびテストの確実な実施が、産業機器の安全性と、機能の品質の点から求められている。特許文献1には、書込み装置から提供される更新内容に基づいて、格納している旧プログラムを新プログラムヘ更新可能な車載制御装置であって、実行可能な特定プログラムを格納した第1の不揮発性メモリ領域と、実行可能で更新可能なプログラムを格納した第2の不揮発性メモリ領域と、を備えた不揮発性メモリを備え、前記特定プログラムと前記新プログラムとの差分データと、前記第1の不揮発性メモリ領域の特定プログラムを用いて、前記新プログラムを差分復元し、復元した該プログラムを前記第2の不揮発性メモリ領域へ書込むことを特徴とする車載制御装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
特開2018−160207号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載されている発明では、ソースコードの更新に対応できない。
【課題を解決するための手段】
【0005】
本発明の第1の態様による更新管理装置は、第1プログラムの更新に関する情報および第1プログラムから派生した第2プログラムの更新に関する情報を受け付ける入力部と、前記第1プログラムの最新の更新を前記第2プログラムに反映させる回帰テストのためのテストケースを生成するために検討が必要な、前記第1プログラムの更新および前記第2プログラムの更新の範囲である更新適用範囲を特定する更新抽出部と、前記更新適用範囲における、それぞれの前記第1プログラムの更新と、それぞれの前記第2プログラムの更新との親密度を算出する親密度算出部と、前記親密度に基づき前記テストケースを生成するテストケース生成部とを備え、前記テストケースには、テストの順番およびテストの要否の少なくとも一方を含む。
【発明の効果】
【0006】
本発明によれば、ある製品のソースコードの更新をある製品から派生した別の製品のソースコードに反映させるためのテストケースを作成できる。
【図面の簡単な説明】
【0007】
更新管理装置のハードウエア構成図
更新管理装置の機能構成図
更新の一例を示す図
継承情報の一例を示す図
開発情報の一例を示す図
更新情報の一例を示す図
ポリシ情報の一例を示す図
親密度情報の一例を示す図
更新適用情報一例を示す図
更新範囲算出処理を示すフローチャート
親密度算出処理を示すフローチャート
ポリシ適用処理を示すフローチャート
更新適用情報算出処理を示すフローチャート
【発明を実施するための形態】
【0008】
―第1の実施の形態―
以下、図1〜図13を参照して、本発明に係る更新管理装置の第1の実施の形態を説明する。
【0009】
(用語の定義)
本実施の形態で使用する用語を以下のように定義する。本実施の形態において「更新」とは、人または計算機によって、プログラム等の計算機に格納されたファイルの内容を変更する作業をいう。「プログラム等」とは、計算機への動作指令を含む電磁的な記録である。具体的には、計算機が直接に実行可能な実行可能ファイルでもよいし、コンパイラによる変換が必要なソースコードでもよい。ただし実行可能ファイルには、いわゆるバイナリファイルだけでなく、インタプリタが解釈するソースコードも含まれる。本実施の形態において「差分」とは、2つのファイルやデータを比較し、一方から他方へと変換するために必要な編集内容であり、ファイルが行われた時間、差分が作成された時間、その他の補助情報を含む。本実施の形態において「開発」とは、1または複数の「更新」を含む工程である。
【0010】
(ハードウエア構成)
図1は、更新管理装置10のハードウエア構成図である。更新管理装置10は、ネットワークインタフェース6と、中央演算装置(Central Processing Unit)であるCPU8と、読み書き可能な記憶装置であるメモリ7と、記憶装置4と、とを備える。
【0011】
CPU8は、記憶装置4に格納されるプログラムをメモリ7に展開して実行することにより後述する機能を実現する。記憶装置4は、不揮発性の記憶装置、たとえばハードディスクドライブである。記憶装置4には、プログラムおよび演算に用いる情報が格納される。記憶装置4に格納される情報は、ネットワークインタフェース6を介して外部から入力されてもよい。
【0012】
ネットワークインタフェース6は、ネットワーク回線11に接続されており、バージョン管理システム12やチケット管理システム13との間で情報の送受信を行う。メモリ7は、RAM(Random Access Memory)などの主記憶装置である。このメモリ7には、更新管理装置10を制御するための不図示の制御プログラムや、更新管理装置10の制御に使用される各種データ(パラメータ)が格納されている。ユーザインタフェース5は、キーボードやマウスなどの入力装置である。
【0013】
(機能構成)
図2は、更新管理装置10の機能構成図である。更新管理装置10はその機能として、情報入力部101と、更新管理データベース102と、親密度算出部103と、ポリシ適用部104と、更新順序算出部105と、更新抽出部106とを備える。更新管理装置10には、継承情報30と、開発情報40と、更新情報50とが入力される。更新管理装置10の記憶装置4およびメモリ7のいずれかに、更新管理データベース102と、親密度情報70と、ポリシ情報60と、更新適用情報80とが格納される。ポリシ情報60は、あらかじめ作成されており記憶装置4に格納されている。以下では、ポリシ適用部104と、更新順序算出部105とをあわせて「テストケース生成部」107と呼ぶ。
【0014】
情報入力部101は、更新管理装置10に入力された継承情報30、開発情報40、および更新情報50を更新管理データベース102に格納する。ただし継承情報30、開発情報40、および更新情報50の少なくとも1つはユーザインタフェース5から入力されてもよい。更新抽出部106は、後述する更新範囲算出処理を実行し、算出した更新適用範囲を親密度算出部103に出力する。親密度算出部103は、更新抽出部106が作成する更新適用範囲を用いて親密度情報70の一部を作成する。ポリシ適用部104は、ポリシ情報60を用いて親密度情報70の残りを作成する。更新順序算出部105は、親密度情報70を用いて更新適用情報80を作成する。
【0015】
(更新の一例)
図3は、本実施の形態における更新の一例を示す図である。本実施の形態では、図3に示す例を用いてデータや処理の具体例を説明する。本実施の形態では、第1のプログラムである製品Aと第2のプログラムである製品Bの2つのプログラムが存在し、それぞれが更新されている。製品Bは、製品Bは製品Aから派生して製品開発がなされる。各製品の開発においては、その製品の有する機能について更新が行われ、その更新は製品ごとに独立して実施する。なお製品Aや製品Bのソフトウエアの種類は特に限定されない。このソフトウエアはたとえば、車両、建設機械、エスカレータ、エレベータ、鉄道、船舶、航空機、ドローンなどに搭載されるソフトウエアである。
【0016】
図3において、上段が製品Aの開発工程を示し、下段が製品Bの開発工程を示す。図3では図示左から右に時間が経過している。また図3では、「開発#」は開発の順番を示している。すなわち、最初に製品Aのバージョン1が開発され、次に製品Bのバージョン1〜3が開発され、最後に製品Aのバージョン2が開発された。図3においてそれぞれの開発における「F」と数字の組合せは個別の機能を示しており、同一の機能には同一の番号を付している。ただし機能の枝番はそれぞれの開発番号で開発または更新がされたことを示す。たとえば「F2−2」は、開発#2において更新された機能「F2」である。図3では、それぞれの開発において追加または更新された機能はハッチングを施している。
【0017】
最初に「開発#1」で開発された製品Aのバージョン1には、機能F1〜F3が含まれていた。製品Bは、「開発#2」において製品Aのバージョン1から派生して開発され、機能「F2」のみが更新された。次の「開発#3」では、製品Bに新たに機能「F4」が追加された。次の「開発#4」では、製品Bの機能「F1」が更新された。最後の「開発#5」では、製品Aの機能「F1」および「F2」が更新された。
【0018】
詳しくは後述するが、本実施の形態では、開発#5までが完了した状態であることを前提に、開発#5における製品Aの更新情報を製品Bに適用するための回帰テストのテストケースを出力する。具体的には、更新の順序および各更新についてテストをするか否かを、更新適用情報80として出力する。なお以下では、製品Aを「第1プログラム」と呼ぶことがあり、製品Bを「第2プログラム」と呼ぶことがある。
【0019】
(継承情報30)
図4は、継承情報30の一例を示す図である。継承情報30は、1または複数のレコードから構成される。図4に示す例では、継承情報30は2つのレコードから構成される。継承情報30の各レコードは、ライン番号301と、ライン名302と、最新開発番号303と、親ライン名304と、新規機能305と、流用機能306とを含む。
【0020】
ライン番号301は、個々の継承情報30の識別番号を表す。ここでは「ライン」は図3の「製品」と同じ意味で用いている。そのため図3に示した製品Aと製品Bの2つに対応する2つのレコードが図4に示されている。ライン名302は、ライン番号301で特定されるラインの名称、すなわち製品の名称を表す。最新開発番号303は、ライン番号301で特定されるラインの最新の開発番号401を表す。親ライン名304は、ライン番号301で特定されるラインの元となる他の開発ラインのライン名302を表す。元となる開発ラインが存在しない場合には、親ライン名304は「なし」となる。
【0021】
新規機能305は、ライン番号301で特定されるラインにおいて新規に作成された機能を表す。流用機能306は、ライン番号301で特定されるラインにおいて、元となる開発ラインから流用して利用している機能を表す。なお流用した機能は、更新せずにそのまま利用することもあれば、更新する場合もある。新規機能305および流用機能306は、各ラインの最新の状態に基づき適切な値が設定される。たとえば機能「F4」が追加されるのは「開発#3」であり製品Bのバージョン1には機能「F4」は含まれないが、製品Bの最新の状態であるバージョン3、すなわち「開発#4」と派生元である製品Aのバージョン1とを比較して、ライン「L2」の新規機能305に機能「F4」が、流用機能306に機能「F1〜F3」が設定される。
【0022】
(開発情報40)
図5は、開発情報40の一例を示す図である。開発情報40は、複数のレコードから構成され、開発情報40の各レコードは、開発番号401と、ライン名402と、関連更新403と、開発対象機能404と、テストケース405と、前開発番号406とを含む。
【0023】
開発番号401は、開発情報40の各レコードの識別番号を表す。ライン名402は、開発番号401により特定される開発において、開発対象となった開発ラインを表す。関連更新403は、開発番号401により特定される開発において、開発の結果得られた更新に関連する更新情報50を表す。開発対象機能404は、開発番号401により特定される開発において、開発対象となったソフトウエア機能を表す。
【0024】
テストケース405は、開発番号401により特定される開発において、開発内容を検証した検証内容を表す。テストケース405の内容は任意であり、文書、テストプログラム、テーブルデータを含むあらゆるデータ形式を利用してよい。前開発番号406は、開発番号401により特定される開発において、その直前に行われた開発情報40を表す。開発における最初の開発情報には前開発番号406は「なし」となる。前開発番号406を順番に参照することで、その開発の履歴を辿り、最初の開発情報までの経路を得られる。
【0025】
(更新情報50)
図6は、更新情報50の一例を示す図である。更新情報50は、1または複数のレコードから構成される。更新情報50の各レコードは、更新番号501と、対象ファイル502と、ファイル種別503と、更新詳細504とを有する。
【0026】
更新番号501は、個々の更新情報50の識別番号を表す。対象ファイル502は、更新番号501により特定される更新において修正がなされたファイルを表す。ファイル種別503は、更新番号501により特定される更新において更新される対象ファイル502の種別を表す。実施の形態では、ファイル種別503はプログラムの「ソースコード」および、モデルベース開発における「モデル」を例示しているが、ファイル種別503はこれに限定されるものではない。開発を構成するファイルに応じてこれ以外のファイル種別が定義されてもよい。
【0027】
更新詳細504は、更新番号501により特定される更新における対象ファイル502に対する更新の詳細を表す。更新詳細504には、対象ファイル502の更新箇所を特定する情報、更新内容、更新の種別である削除や挿入や上書きを表す情報が記載される。実施の形態では、位置、対象、種別、および内容を例示しているが、更新詳細504はこれに限定されるものではない。対象ファイル502に対する更新を表すための他の情報が定義されてもよい。
【0028】
(ポリシ情報60)
図7は、ポリシ情報60の一例を示す図である。ポリシ情報60は、ファイル種別503に設定される種別ごとに定義され、本実施の形態ではソースコード用ポリシ61、およびモデル用ポリシ62が定義される。すなわち本実施の形態では、ポリシ情報60とは、ソースコード用ポリシ61、およびモデル用ポリシ62の総称である。ポリシ情報60は、1または複数のレコードから構成される。ソースコード用ポリシ61およびモデル用ポリシ62の構成は同様なので、代表してソースコード用ポリシ61を説明する。
【0029】
ソースコード用ポリシ61の各レコードは、ポリシ番号601と、フラグ602と、条件603と、テスト実施判断604と、更新優先度605とを有する。ポリシ番号601は、ソースコード用ポリシ61の各レコードの識別番号を表す。フラグ602は、ポリシ番号601により特定されるレコードで定義されるフラグの名称を表す。条件603は、ポリシ番号601により特定されるレコードで定義されたフラグ602を適用するか否かを判断するための条件を表す。条件603の記載内容は後述する。
【0030】
テスト実施判断604は、ポリシ番号601により特定されるレコードが条件603に該当した際、その更新に対してテストを実施するか否かを表す。更新優先度605は、ポリシ番号601により特定されるレコードが条件603に該当した際、その更新を適用する優先度を表す。本実施の形態では、優先度の値が大きいほど優先されることを示す。
(【0031】以降は省略されています)

この特許をJ-PlatPatで参照する

関連特許

日立オートモティブシステムズ株式会社
緩衝器
日立オートモティブシステムズ株式会社
モータ
日立オートモティブシステムズ株式会社
制御弁
日立オートモティブシステムズ株式会社
弁装置
日立オートモティブシステムズ株式会社
制御装置
日立オートモティブシステムズ株式会社
電子装置
日立オートモティブシステムズ株式会社
二次電池
日立オートモティブシステムズ株式会社
制御装置
日立オートモティブシステムズ株式会社
印刷方法
日立オートモティブシステムズ株式会社
回路基板
日立オートモティブシステムズ株式会社
回転電機
日立オートモティブシステムズ株式会社
回転電機
日立オートモティブシステムズ株式会社
制御装置
日立オートモティブシステムズ株式会社
回転電機
日立オートモティブシステムズ株式会社
演算装置
日立オートモティブシステムズ株式会社
レーダ装置
日立オートモティブシステムズ株式会社
半導体装置
日立オートモティブシステムズ株式会社
電池パック
日立オートモティブシステムズ株式会社
センサ装置
日立オートモティブシステムズ株式会社
レーダ装置
日立オートモティブシステムズ株式会社
熱式流量計
日立オートモティブシステムズ株式会社
流量計測計
日立オートモティブシステムズ株式会社
燃料噴射弁
日立オートモティブシステムズ株式会社
燃料噴射弁
日立オートモティブシステムズ株式会社
電子制御装置
日立オートモティブシステムズ株式会社
燃料噴射装置
日立オートモティブシステムズ株式会社
電子制御装置
日立オートモティブシステムズ株式会社
車両制御装置
日立オートモティブシステムズ株式会社
電子制御装置
日立オートモティブシステムズ株式会社
操舵制御装置
日立オートモティブシステムズ株式会社
電子制御装置
日立オートモティブシステムズ株式会社
電子制御装置
日立オートモティブシステムズ株式会社
電子制御装置
日立オートモティブシステムズ株式会社
電力変換装置
日立オートモティブシステムズ株式会社
更新管理装置
日立オートモティブシステムズ株式会社
電子制御装置
続きを見る