JP2021189879A - バージョン管理装置、バージョン管理方法及びソフトウェア開発装置 - Google Patents
バージョン管理装置、バージョン管理方法及びソフトウェア開発装置 Download PDFInfo
- Publication number
- JP2021189879A JP2021189879A JP2020095985A JP2020095985A JP2021189879A JP 2021189879 A JP2021189879 A JP 2021189879A JP 2020095985 A JP2020095985 A JP 2020095985A JP 2020095985 A JP2020095985 A JP 2020095985A JP 2021189879 A JP2021189879 A JP 2021189879A
- Authority
- JP
- Japan
- Prior art keywords
- version
- software
- unit
- file
- condition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】ソフトウェアの差分による判定だけではバージョン更新を誤判定する可能性があり、バージョンを正しく更新できないことがあった。【解決手段】バージョン管理装置3は、ソフトウェアファイル25から、所定の命名規則で命名される識別子を用いて、一又は複数のソフトウェアユニットを抽出する抽出部31と、バージョン更新条件341に、ソフトウェアファイル25及びソフトウェアユニットの少なくとも一つの差分が該当することでソフトウェアファイル25のバージョンが更新されたと判定した場合に、少なくとも一つ以上のバージョン判定条件342により判定した結果に基づいてソフトウェアファイル25の更新可否を判定するバージョン更新判定部32と、を備える。【選択図】図1
Description
本発明は、バージョン管理装置、バージョン管理方法及びソフトウェア開発装置に関する。
車両用組込みソフトウェアにおいて、ブロック線図の図示によるプログラミング(以下、「モデリング」と呼ぶ)は開発手法の一つとして一般的である。モデリングでは、作成したブロック線図プログラム(以下、「モデル」と呼ぶ)で要求機能をシミュレーションすることにより、下流工程での不具合検出による手戻りを減らし、開発工数を低減し、開発品質を向上させている。シミュレーションでは、ソフトウェアファイルを構成する最小管理単位であるソフトウェアユニットをシミュレーション範囲に応じて接続し、車両動作や制御要求を確認している。
ソフトウェア開発において、ソフトウェアの再利用を促進するためには、例えば、ソフトウェアから共通モジュールを抽出した最小単位での再利用が可能であるか、容易に再利用可能なソフトウェアを選択できるかが重要である。このため、ソフトウェアを構成管理(バージョン管理)することが必要であり、構成管理のヒューマンエラー防止、効率化等を目的として構成管理ツールを使用することが一般的に行われていた。
特許文献1には、ソフトウェアユニットのバージョン管理手法として、ソフトウェアユニットを識別する識別子を有し、ソフトウェアユニットのバージョン更新条件とソフトウェア差分によりバージョンを管理する手法が開示されている。
モデリングで開発したファイルを監視する方法として、例えば、共有サーバ上でフォルダ管理したり、ファイル名にバージョン情報を付与して管理したりする方法がある。バージョンの採番方法として、例えば帳票による手作業での取得などがある。また、構成管理ツールを用いて、管理粒度として制御単位に分割したモデルをファイルごとにバージョン管理する方法がよく利用されており、ソフトウェアモジュールやユニットに通し番号や固有名称を付与し、管理する方法も利用されている。
しかし、車両制御装置のソフトウェアにおいて、開発者が開発したモデルには、類似処理が多くある。このため、特許文献1に開示された技術を用いてソフトウェアバージョンの更新可否を判断しても、ソフトウェア差分による判定だけではバージョン更新を誤判定する可能性があった。例えば、本来であればバージョンを更新すべき修正がソフトウェアファイルにされても、条件に合致しないとバージョンを正しく更新できない場合や、更新すべきでない修正がソフトウェアファイルにあった際に、バージョンが更新されることがあった。
本発明はこのような状況に鑑みて成されたものであり、ソフトウェアファイルのバージョンを正しく管理することを目的とする。
本発明に係るバージョン管理装置は、編集されたソフトウェアファイルから、所定の命名規則で命名される識別子を用いて、ソフトウェアファイルを構成する一又は複数のソフトウェアユニットを抽出する抽出部と、ソフトウェアファイル及びソフトウェアユニットのバージョンを更新する条件を定義するバージョン更新条件に、ソフトウェアファイル及びソフトウェアユニットの少なくとも一つの差分が該当することでソフトウェアファイルのバージョンが更新されたと判定した場合に、少なくとも一つ以上のバージョン判定条件により判定した結果に基づいてソフトウェアファイルのバージョンの更新可否を判定するバージョン更新判定部と、を備える。
本発明によれば、ソフトウェアファイルのバージョンを正しく管理できるようになる。
上記した以外の課題、構成及び効果は、以下の実施の形態の説明により明らかにされる。
上記した以外の課題、構成及び効果は、以下の実施の形態の説明により明らかにされる。
以下、本発明を実施するための形態について、添付図面を参照して説明する。本明細書及び図面において、実質的に同一の機能又は構成を有する構成要素については、同一の符号を付することにより重複する説明を省略する。
[第1の実施の形態]
図1は、第1の実施の形態に係るソフトウェア構成管理システム1の構成図である。
ソフトウェア構成管理システム1は、ソフトウェア開発装置2とバージョン管理装置3を備える。
図1は、第1の実施の形態に係るソフトウェア構成管理システム1の構成図である。
ソフトウェア構成管理システム1は、ソフトウェア開発装置2とバージョン管理装置3を備える。
<ソフトウェア開発装置の構成例>
始めに、ソフトウェア開発装置2の構成例について説明する。
ソフトウェア開発装置2は、編集部21、表示部22、操作部23及び記憶部24を備える。
始めに、ソフトウェア開発装置2の構成例について説明する。
ソフトウェア開発装置2は、編集部21、表示部22、操作部23及び記憶部24を備える。
編集部21は、バージョン管理装置3にアクセスして、ファイルデータベース35から所望のソフトウェアファイル25を取得し、記憶部24にソフトウェアファイル25を保存する。そして、編集部21は、操作部23からの操作入力に従って、記憶部24から読み出したソフトウェアファイル25を編集する。編集部21は、ソフトウェアファイル25を編集後、編集後のソフトウェアファイル25をバージョン管理装置3に戻す。
記憶部24に保存されるソフトウェアファイル25は、ファイルデータベース35が管理する最小管理単位である複数のソフトウェアユニットA251〜D254を含んで構成される。編集部21がソフトウェアファイル25を編集する処理には、ソフトウェアユニットA251〜D254の少なくともいずれか一つを修正、削除、追加する変更、ソフトウェアファイル25に新たなソフトウェアユニットを組み入れる変更等が含まれる。
表示部22は、編集部21が編集中のソフトウェアファイル25に関する情報を表示する。ソフトウェアファイル25に関する情報としては、ソフトウェアユニットA251〜D254の構成情報も含まれる。以下の説明でソフトウェアユニットA251〜D254を区別しない場合、「ソフトウェアユニット」と略記する。
操作部23は、ユーザーがソフトウェアファイル25を編集するための操作に用いられる。操作部23から入力された操作によりソフトウェアファイル25が編集され、編集中のソフトウェアファイル25に関する情報が表示部22に表示される。
<バージョン管理装置の構成例>
次に、バージョン管理装置3の構成例について説明する。
バージョン管理装置3は、抽出部31、バージョン更新判定部32、バージョン管理テーブル33、条件管理テーブル34及びファイルデータベース35を備える。バージョン管理装置3は、ソフトウェアファイル25の構成を管理する構成管理ツールの一例として用いられる。「ソフトウェアファイル25の構成」には、ソフトウェアファイル25のバージョン、ソフトウェアファイル25に含まれるソフトウェアユニットの構成、及びソフトウェアユニットのバージョン等が含まれる。
次に、バージョン管理装置3の構成例について説明する。
バージョン管理装置3は、抽出部31、バージョン更新判定部32、バージョン管理テーブル33、条件管理テーブル34及びファイルデータベース35を備える。バージョン管理装置3は、ソフトウェアファイル25の構成を管理する構成管理ツールの一例として用いられる。「ソフトウェアファイル25の構成」には、ソフトウェアファイル25のバージョン、ソフトウェアファイル25に含まれるソフトウェアユニットの構成、及びソフトウェアユニットのバージョン等が含まれる。
抽出部(抽出部31)は、ソフトウェア開発装置2の編集部21から戻される、編集部21により編集されたソフトウェアファイル(ソフトウェアファイル25)から、所定の命名規則で命名される識別子を用いて、ソフトウェアファイル(ソフトウェアファイル25)を構成する一又は複数のソフトウェアユニットを抽出する。そして、抽出部31は、ソフトウェアファイル25とソフトウェアユニットの各バージョンを管理するために、バージョン更新判定部32を起動する。
始めに、バージョン更新判定部(バージョン更新判定部32)は、ファイルデータベース(ファイルデータベース35)に格納される編集前のソフトウェアファイル25に対して、ソフトウェア開発装置2から戻された編集後のソフトウェアファイル25の更新内容に基づき、バージョン更新の有無を判定する。この際、バージョン更新判定部32は、ソフトウェアファイル(ソフトウェアファイル25)及びソフトウェアユニットのバージョン(ソフトウェアユニットバージョン331)を更新する条件を定義するバージョン更新条件(バージョン更新条件341)に、ソフトウェアファイル(ソフトウェアファイル25)及びソフトウェアユニットの少なくとも一つの差分が該当することでソフトウェアファイル(ソフトウェアファイル25)のバージョンが更新されたか否かを判定する。そして、バージョン更新判定部(バージョン更新判定部32)は、少なくとも一つの差分が該当することでソフトウェアファイル25のバージョンが更新されたと判定した場合に、少なくとも一つ以上のバージョン判定条件(バージョン判定条件342)により判定した結果に基づいてソフトウェアファイル(ソフトウェアファイル25)のバージョンの更新可否を判定する。
バージョン更新判定部32により更新可否が判定されるバージョンには、ソフトウェアファイル25のバージョン、ソフトウェアユニットごとのバージョンがある。
そして、バージョン管理部(バージョン管理テーブル33)は、ソフトウェアファイル(ソフトウェアファイル25)のバージョン、ソフトウェアユニットのバージョン(ソフトウェアユニットバージョン331)、及びソフトウェアユニットの構成要素から算出されたバージョン照合値(バージョン照合値332)を管理する。バージョン管理テーブル33が管理するバージョン管理情報として、ソフトウェアユニットバージョン331及びバージョン照合値332が含まれる。
そして、バージョン管理部(バージョン管理テーブル33)は、ソフトウェアファイル(ソフトウェアファイル25)のバージョン、ソフトウェアユニットのバージョン(ソフトウェアユニットバージョン331)、及びソフトウェアユニットの構成要素から算出されたバージョン照合値(バージョン照合値332)を管理する。バージョン管理テーブル33が管理するバージョン管理情報として、ソフトウェアユニットバージョン331及びバージョン照合値332が含まれる。
ソフトウェアユニットバージョン331は、例えば、ソフトウェアユニットのバージョンを表す。
バージョン照合値332は、バージョン更新判定部32が、バージョン更新の可否を判定するために用いられる値であり、バージョン更新判定部32により所定の演算処理で求められる。バージョン照合値332の詳細は、後述する図6にて説明する。
なお、バージョン管理テーブル33の詳細な構成例は後述する図6に示すが、バージョン管理テーブル33には、ソフトウェアファイル25のバージョンも含まれる。
バージョン照合値332は、バージョン更新判定部32が、バージョン更新の可否を判定するために用いられる値であり、バージョン更新判定部32により所定の演算処理で求められる。バージョン照合値332の詳細は、後述する図6にて説明する。
なお、バージョン管理テーブル33の詳細な構成例は後述する図6に示すが、バージョン管理テーブル33には、ソフトウェアファイル25のバージョンも含まれる。
そこで、バージョン更新判定部32は、条件管理テーブル34に格納された各種の条件に基づいて、バージョン管理テーブル33に格納されたソフトウェアユニットバージョン331の更新可否を判定する。
条件管理テーブル34は、バージョン更新判定部32が、抽出部31によりソフトウェアファイル25から抽出されたソフトウェアユニットに基づき、ソフトウェアファイル25及びソフトウェアユニットのバージョン更新の可否を判定するために参照するテーブルである。条件管理テーブル34には、バージョン更新条件341及びバージョン判定条件342が含まれる。
バージョン更新条件341は、バージョン更新判定部32が、抽出部31により抽出されたソフトウェアユニットの編集内容に基づいて、ソフトウェアファイル25及びソフトウェアユニットのバージョンの更新可否を判定するために参照する情報である。後述する図7にて詳細を説明するが、バージョン更新条件(バージョン更新条件341)には、バージョン更新判定部(バージョン更新判定部32)がバージョンの更新を可と判定するバージョン更新許可条件(バージョン更新許可条件群71)と、バージョン更新判定部(バージョン更新判定部32)がバージョンの更新を不可と判定するバージョン更新除外条件(バージョン更新除外条件群70)とが含まれる。
バージョン判定条件342には、バージョン判定条件(1)343、バージョン判定条件(2)344が含まれる。バージョン判定条件(1)343、バージョン判定条件(2)344は、バージョン更新判定部32が、バージョンの更新可否を判定した更新判定結果が妥当であるかを判定するために参照する情報である。条件管理テーブル34には、2つのバージョン判定条件が設けられるが、3つ以上のバージョン判定条件が設けられることもある。
バージョン更新判定部32は、始めに、バージョン更新条件341に基づき、ソフトウェアファイル25とソフトウェアユニットのバージョンの更新有無を判定する。このため、バージョン更新判定部32は、バージョン更新判定部(バージョン更新判定部32)は、抽出部(抽出部31)が抽出したソフトウェアユニットを含む編集前のソフトウェアファイル(ソフトウェアファイル25)をファイルデータベース(ファイルデータベース35)からから取得する。そして、バージョン更新判定部32は、編集前のソフトウェアファイル25と、編集後のソフトウェアファイル25とを比較して差分をとり、この差分がバージョン更新条件341に該当するか否により、バージョン更新の有無を判定する。バージョン更新判定部32がバージョンの更新が無いと判定した場合、ソフトウェアファイル25のバージョンを更新することなく、ソフトウェア開発装置2で編集されたソフトウェアファイル25をファイルデータベース35に格納する。
一方、バージョン更新判定部32は、バージョンの更新が有ると判定した場合、バージョン更新判定結果が正しいか否かを再判定する。そこで、バージョン更新判定部(バージョン更新判定部32)は、バージョン判定条件(バージョン判定条件342)として規定される、抽出部(抽出部31)が抽出したソフトウェアユニットの構成要素から算出したバージョン照合値と、バージョン管理部(バージョン管理テーブル33)から読み出したバージョン照合値(バージョン照合値332)とを比較した比較結果に基づいてソフトウェアファイル(ソフトウェアファイル25)のバージョンの更新可否を判定する。この際、バージョン更新判定部32は、バージョン判定条件342(バージョン判定条件(1)343、(2)344を含む)に基づいて、抽出部31が抽出したソフトウェアユニットから算出したバージョン照合値と、バージョン管理テーブル33から読み出したバージョン照合値332とを比較し、再判定する。すなわち、バージョン更新判定部(バージョン更新判定部32)は、ソフトウェアファイル(ソフトウェアファイル25)又はソフトウェアユニットの変更内容が、バージョン判定条件(バージョン判定条件342)を満たすか否かを判定する。
そこで、バージョン更新判定部32は、バージョン管理テーブル33からバージョン管理情報として、ソフトウェアユニットバージョン331及びバージョン照合値332を取得する。この際、バージョン更新判定部(バージョン更新判定部32)は、ファイルデータベース(ファイルデータベース35)に格納されているソフトウェアユニットのバージョン(ソフトウェアユニットバージョン331)及びバージョン照合値(バージョン照合値332)をバージョン管理部(バージョン管理テーブル33)から読み出す。
バージョン更新判定部(バージョン更新判定部32)は、編集されたソフトウェアファイル(ソフトウェアファイル25)が、バージョン更新条件(バージョン更新条件341)を満たし、かつバージョン判定条件(バージョン判定条件342)を満たした場合に、編集されたソフトウェアファイル(ソフトウェアファイル25)又はソフトウェアユニットのバージョン(ソフトウェアユニットバージョン331)を更新する。そして、バージョン更新判定部(バージョン更新判定部32)は、更新したバージョン、及び算出したバージョン照合値を、バージョン管理部(バージョン管理テーブル33)に反映する。具体的には、バージョン更新判定部(バージョン更新判定部32)は、バージョン判定条件(バージョン判定条件342)に基づき、ソフトウェアユニットから算出されたバージョン照合値と、バージョン管理部(バージョン管理テーブル33)から読み出したバージョン照合値(バージョン照合値332)とが一致していれば、バージョン管理部(バージョン管理テーブル33)に更新されたバージョンを反映せず、不一致であればバージョン管理部(バージョン管理テーブル33)に更新されたバージョンを反映する。
ファイルデータベース35は、様々なバージョンのソフトウェアファイル25と、ソフトウェアファイル25に所属するソフトウェアユニットを格納している。ファイルデータベース35に格納されたソフトウェアファイル25とソフトウェアユニットは、ソフトウェア開発装置2の編集部21により適宜読み出される。バージョン更新判定部(バージョン更新判定部32)は、バージョン更新の有無、及びバージョン更新の可否を判定した後、ソフトウェア開発装置2で編集されたソフトウェアファイル(ソフトウェアファイル25)をファイルデータベース(ファイルデータベース35)に格納する。すなわち、編集部21により編集されたソフトウェアファイル25とソフトウェアユニットが、抽出部31、バージョン更新判定部32を経てファイルデータベース35に格納される。
<計算機のハードウェア構成例>
次に、ソフトウェア構成管理システム1の各装置を構成する計算機40のハードウェア構成を説明する。
図2は、計算機40のハードウェア構成例を示すブロック図である。計算機40は、ソフトウェア開発装置2又はバージョン管理装置3として動作可能なコンピューターとして用いられるハードウェアの一例である。
次に、ソフトウェア構成管理システム1の各装置を構成する計算機40のハードウェア構成を説明する。
図2は、計算機40のハードウェア構成例を示すブロック図である。計算機40は、ソフトウェア開発装置2又はバージョン管理装置3として動作可能なコンピューターとして用いられるハードウェアの一例である。
計算機40は、バス44にそれぞれ接続されたCPU(Central Processing Unit)41、ROM(Read Only Memory)42、及びRAM(Random Access Memory)43を備える。さらに、計算機40は、表示装置45、入力装置46、不揮発性ストレージ47及びネットワークインターフェイス48を備える。
CPU41は、本実施の形態に係る各機能を実現するソフトウェアのプログラムコードをROM42から読み出してRAM43にロードし、実行する。RAM43には、CPU41の演算処理の途中で発生した変数やパラメーター等が一時的に書き込まれ、これらの変数やパラメーター等がCPU41によって適宜読み出される。ただし、CPU41に代えてMPU(Micro Processing Unit)を用いてもよい。ソフトウェア開発装置2の場合、CPU41により編集部21の機能が実現される。バージョン管理装置3の場合、CPU41により抽出部31及びバージョン更新判定部32の機能が実現される。
表示装置45は、例えば、液晶ディスプレイモニターであり、計算機40で行われる処理の結果等をユーザーに表示する。入力装置46には、例えば、キーボード、マウス等が用いられ、ユーザーが所定の操作入力、指示を行うことが可能である。ソフトウェア開発装置2の場合、図1の表示部22が表示装置45に対応し、操作部23が入力装置46に対応する。バージョン管理装置3は、表示装置45及び入力装置46を備えなくてもよい。
不揮発性ストレージ47としては、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フレキシブルディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ又は不揮発性のメモリ等が用いられる。この不揮発性ストレージ47には、OS(Operating System)、各種のパラメーターの他に、計算機40を機能させるためのプログラムが記録されている。ROM42及び不揮発性ストレージ47は、CPU41が動作するために必要なプログラムやデータ等を記録しており、計算機40によって実行されるプログラムを格納したコンピューター読取可能な非一過性の記憶媒体の一例として用いられる。ソフトウェア開発装置2の場合、記憶部24が不揮発性ストレージ47に構成される。バージョン管理装置3の場合、バージョン管理テーブル33、条件管理テーブル34及びファイルデータベース35が不揮発性ストレージ47に構成される。
ネットワークインターフェイス48には、例えば、NIC(Network Interface Card)等が用いられ、NICの端子に接続されたLAN(Local Area Network)、専用線等を介して各種のデータを装置間で送受信することが可能である。ソフトウェア開発装置2とバージョン管理装置3には、それぞれ互いにデータを送受信可能とするネットワークインターフェイス48が設けられる。編集部21と、抽出部31及びファイルデータベース35との間で行われるデータの送受信は、各装置に設けられたネットワークインターフェイス48を通じて行われる。
<ソフトウェアファイルとソフトウェアユニットの関係性>
図3は、ソフトウェアファイルとソフトウェアユニットの関係性を示すブロック線図プログラム(モデル)の一例である。ここでは、ソフトウェアファイル50を表すモデルAと、モデルAに含まれる複数のソフトウェアユニットについて説明する。以下の説明では、モデルを用いて説明を進めていくが、モデル以外の他の形式で記述されたソフトウェアファイルにおいても本発明を適用可能である。
図3は、ソフトウェアファイルとソフトウェアユニットの関係性を示すブロック線図プログラム(モデル)の一例である。ここでは、ソフトウェアファイル50を表すモデルAと、モデルAに含まれる複数のソフトウェアユニットについて説明する。以下の説明では、モデルを用いて説明を進めていくが、モデル以外の他の形式で記述されたソフトウェアファイルにおいても本発明を適用可能である。
ここで、図1に示したソフトウェアファイル25は、モデルAのソフトウェア50の構成が記述されたものである。また、図1に示したソフトウェアユニットは、それぞれ図3のモデルAに含まれるソフトウェアユニット51〜54(識別子が、AAA_unit〜DDD_unit)に対応する。ソフトウェアユニット51〜54は、四則演算子や論理演算子を表すブロックの集合で構成されている。
モデルは、ソフトウェアユニット51〜54ごとに命名規則で付された名前を保有する。このため、各ソフトウェアユニット51〜54は、名前で識別される。図3に示すように各ソフトウェアユニット51〜54の末尾には、「_unit」が付されることで、ブロックの集合をソフトウェアユニットとした最小管理単位で管理される。今回の例では、命名規則により抽出する単位をソフトウェアファイルの最小管理単位であるソフトウェアユニットとしたが、他の管理単位(例えば、ファイルとユニットの間で、ユニットの構成を規定するブロック(不図示))に対しても本発明を適用可能である。
次に、ファイルデータベース35の構成例について説明する。
図4は、ファイルデータベース35の構成例を示す図である。
図4は、ファイルデータベース35の構成例を示す図である。
ファイルデータベース35には、例えば、会社ごとに複数のリポジトリが設けられる。リポジトリとは、例えば、モデルの開発履歴を、モデルのバージョンごとに含むデータベースであり、モデルの開発単位で設けられる。
図4では、ファイルデータベース35に、リポジトリA351と、リポジトリB352が存在しているとする。さらに、リポジトリA351と、リポジトリB352には、例えば、車種や車の構成要素(エンジン、ECU、バッテリ、モーター)ごとに複数のディレクトリが設けられる。例えば、リポジトリA351には、ディレクトリ351aとディレクトリ351bのように複数のディレクトリが存在する。
ディレクトリ351aの構成を説明する。例えば、ディレクトリ351aには、バージョンが異なる複数のモデルA及びモデルBのソフトウェアファイル25が格納されている。モデルAの最新バージョンは“012”であり、旧バージョン(“011”など)も最新バージョンと同様にディレクトリ351aに格納されている。モデルBの最新バージョンは“007”であり、旧バージョン(“006”など)もディレクトリ351aに格納されている。
なお、ディレクトリ351b内にも、ディレクトリ351aと同様に、所定のディレクトリ構成で複数のモデルが格納されている。また、リポジトリB352についても、ディレクトリは不図示とするが、バージョンが異なるモデルCのソフトウェアファイル25が格納される。
<バージョン管理方法の説明>
図5は、ソフトウェアバージョンの管理方法の例を示すフローチャートである。図5の左側には、ユーザーがソフトウェア開発装置2を操作してソフトウェアファイル25を編集するユーザー動作の手順が示される。また、図5の右側には、バージョン管理装置3がソフトウェアファイル25のバージョンを管理する手順が示される。
図5は、ソフトウェアバージョンの管理方法の例を示すフローチャートである。図5の左側には、ユーザーがソフトウェア開発装置2を操作してソフトウェアファイル25を編集するユーザー動作の手順が示される。また、図5の右側には、バージョン管理装置3がソフトウェアファイル25のバージョンを管理する手順が示される。
<PCを通じたユーザー動作>
始めに、ユーザー(例えば、ソフトウェア開発者)がソフトウェア開発装置2を操作して行う、ユーザー動作及びソフトウェア開発装置2の処理について説明する。
始めに、ユーザー(例えば、ソフトウェア開発者)がソフトウェア開発装置2を操作して行う、ユーザー動作及びソフトウェア開発装置2の処理について説明する。
ユーザーは、操作部23(図1を参照)を通じてソフトウェアファイル25を編集する(S1)。次に、ユーザーが、編集したソフトウェアファイル25を、バージョン管理装置3のファイルデータベース35に登録する依頼を行う(S2)。
ステップS2の依頼処理では、ユーザーがソフトウェアファイル25のバージョンを、バージョン管理テーブル33に反映するための依頼も兼ねている。そこで、ファイルデータベース35へのソフトウェアファイル25の登録依頼と、編集されたソフトウェアファイル25とが、ソフトウェア開発装置2の編集部21からバージョン管理装置3に送信される。
<バージョン管理装置の動作>
次に、バージョン管理装置3の動作例について説明する。
バージョン管理装置3の抽出部31(図1を参照)は、ソフトウェア開発装置2の編集部21からファイルデータベース35へのソフトウェアファイル25の登録依頼と、編集されたソフトウェアファイル25とを受信する(S11)。
次に、バージョン管理装置3の動作例について説明する。
バージョン管理装置3の抽出部31(図1を参照)は、ソフトウェア開発装置2の編集部21からファイルデータベース35へのソフトウェアファイル25の登録依頼と、編集されたソフトウェアファイル25とを受信する(S11)。
次に、抽出部31は、ソフトウェア開発装置2から受信したソフトウェアファイル25から、予め設定した命名規則に基づいてソフトウェアユニットを抽出する(S12)。そして、抽出部31は、バージョン更新判定部32を起動する(S13)。
次に、バージョン更新判定部32は、予め条件管理テーブル34に登録されるバージョン更新条件341を取得する(S14)。次に、バージョン更新判定部32は、バージョン管理テーブル33から、抽出部31により抽出されたソフトウェアユニットに対応するソフトウェアユニットバージョン331を取得する(S15)。バージョン更新判定部32が取得するソフトウェアユニットバージョン331は、ソフトウェア開発装置2で編集されたソフトウェアファイル25が含むソフトウェアユニットの各バージョンに該当する。
次に、バージョン更新判定部32は、バージョン管理テーブル33から読み出した情報(例えば、ソフトウェアユニットバージョン331)に基づいて、バージョンが付与されているソフトウェアファイル25をファイルデータベース35から取得する(S16)。ただし、バージョン更新判定部32は、ソフトウェア開発装置2によって編集されたソフトウェアファイル25の名称に基づいて、ファイルデータベース35から編集前のソフトウェアファイル25を取得してもよい。
次に、バージョン更新判定部32は、ソフトウェアファイル25のバージョン更新判定を行う(S17)。バージョン更新判定は、ステップS11で抽出部31が受信したソフトウェアファイル25と、ステップS16でバージョン更新判定部32がファイルデータベース35から取得したソフトウェアファイル25との差分が、ステップS15で取得したバージョン更新条件341に該当するか否かを判定する処理である。
バージョン更新判定部32は、ソフトウェアファイル25のバージョン更新なしと判定した場合、ステップS21に処理を移す。
一方、バージョン更新判定部32は、ソフトウェアファイル25のバージョン更新ありと判定した場合、ステップS17で行った差分手法の判定処理とは異なる少なくとも一つ以上の手法でソフトウェアファイル25のバージョンを照合する(S18)。この手法は、バージョン管理テーブル33で保存しているバージョン照合値332と、バージョン判定条件343,344に基づいて算出した照合値とを比較することで行われる。ステップS18で行われる照合は、照合時間や照合精度により、再照合に要する手法の数を変更することができる。ステップS18で行われる照合処理の詳細については、図6以降で説明する。
ステップS18の後、バージョン更新判定部32は、ステップS18で行われた照合処理の結果(「照合結果」と呼ぶ)を判定する(S19)。バージョン更新判定部32は、照合結果が、バージョン照合値332と一致したと判定した場合、バージョン更新なしと判定し、ステップS21に処理を移す。
一方、バージョン更新判定部32は、照合結果が、バージョン照合値332と不一致であると判定した場合、バージョン更新ありと判定する。そして、バージョン更新判定部32は、ソフトウェアファイル25のバージョンをバージョン管理テーブル33に格納された情報から採番し、バージョン管理テーブル33にソフトウェアファイル25のバージョンを反映する(S20)。さらに、バージョン更新判定部32は、ユーザーにより編集されたソフトウェアユニットのバージョンを更新して、バージョン管理テーブル33にソフトウェアユニットのバージョンを反映する
バージョン更新判定部32は、バージョン管理テーブル33へのバージョンの反映時に、ステップS17,S19で実施した判定結果についても反映する。そして、バージョン更新判定部32は、判定結果が反映されたバージョン管理テーブル33を次回の判定時に利用する。
最後に、バージョン更新判定部32は、ステップS2で登録が依頼されたソフトウェアファイル25をファイルデータベース35に格納する(S21)。この処理は、バージョン更新判定部32が、ステップS17でバージョン更新なしと判定した場合、ステップS19で照合結果が、バージョン照合値332と一致したと判定した場合、又はステップS20でソフトウェアファイル25のバージョンを反映した場合のいずれかの後に行われる。
図5を参照して説明した各処理は、ユーザー動作とバージョン管理装置3の動作に分けられており、図5のステップS11以降がバージョン管理装置3による自動化処理として記載されている。しかし、ユーザー動作とバージョン管理装置3の動作は、図5で分けられた処理に限定されるものではない。例えば、抽出部31の機能をソフトウェア開発装置2が備えることで、ステップS12のソフトウェアユニットの抽出処理をユーザー動作とし、抽出したソフトウェアユニットを含むソフトウェアファイルをソフトウェア開発装置2からバージョン管理装置3に送信するような処理として構成してもよい。このため、図5に示すフローチャートでは表されない他の処理についても、バージョン管理装置3で行われる自動化処理の一部として実施するように構成してもよい。
次に、図5のステップS17〜S20で行われる一連の処理について詳細な内容を説明する。
図6は、バージョン管理テーブル33の一例を示す構成図である。図6では、ソフトウェアファイル25として、モデルAのバージョンを管理するバージョン管理テーブル33を例示する。
図6は、バージョン管理テーブル33の一例を示す構成図である。図6では、ソフトウェアファイル25として、モデルAのバージョンを管理するバージョン管理テーブル33を例示する。
バージョン管理テーブル33は、ソフトウェアファイル25の構成情報61、バージョン情報62で構成される。バージョン情報62に含まれるソフトウェアユニットごとの同一列に、編集前のソフトウェアファイル25に付された更新前のバージョン64と、編集後のソフトウェアファイル25に付された更新後のバージョン63とが組になって格納される。例えば、構成情報61に基づいて、モデルAの管理者が「user1」であることが示される。更新前のソフトウェアファイル25のバージョンを「ベースバージョン」と呼ぶ。図中では、「ベースバージョン」を「親」と言い換えて記載されている。そして、「親」の下には、「親」であるソフトウェアファイル25が編集されたことで、ソフトウェアファイル25の更新されたバージョンが格納される。モデルAとして表されるソフトウェアファイル25は、図5のステップS19に示した処理により、照合値の照合結果が不一致と判定された場合に、バージョンが更新され、更新されたバージョンがバージョン管理テーブル33に格納される。
バージョン情報62の各行には、ソフトウェアユニットごとに、ソフトウェアユニット名、ソフトウェアユニットのバージョン、照合値1及び照合値2が組になって格納される。図6では、バージョン情報62によりモデルAを構成するソフトウェアユニット名が「AAA_unit」〜「GGG_unit」であることが示される。なお、図3では、モデルAが「AAA_unit」〜「DDD_unit」のソフトウェアユニットを含んで構成されるものとして説明したが、図6では、モデルAが「AAA_unit」〜「GGG_unit」のソフトウェアユニットを含んで構成されるものとする。
ここで、バージョン管理テーブル33に更新されたバージョンが格納される様子について説明する。始めに、バージョン管理テーブル33の列方向に注目する。
モデルAのバージョンが、ベースバージョンから更新されると、更新されたバージョンがバージョン管理テーブル33に反映される。例えば、1番目の列では、ベースバージョンにハイフン「−」が格納されている。この場合、新規作成されたソフトウェアファイルのバージョンが「09A」として、1番目の列に格納される。
モデルAのバージョンが、ベースバージョンから更新されると、更新されたバージョンがバージョン管理テーブル33に反映される。例えば、1番目の列では、ベースバージョンにハイフン「−」が格納されている。この場合、新規作成されたソフトウェアファイルのバージョンが「09A」として、1番目の列に格納される。
また、2番目の列には、親であるソフトウェアファイルのベースバージョンが「09A」であり、編集されたソフトウェアファイル25のバージョンが「10A」であることが示される。また、3番目の列には、親であるソフトウェアファイルのベースバージョンが「10A」であり、編集されたソフトウェアファイル25のバージョンが「10B」であることが示される。つまり、2番目の列で示される編集されたソフトウェアファイル25が、3番目の列で示される編集されたソフトウェアファイル25の親であることが分かる。
モデルAのバージョンが更新されると、バージョン管理テーブル33の右側に1列分の構成情報が追加される。そして、編集されたソフトウェアファイル25の更新後のバージョンが、編集前のソフトウェアファイル25の更新前のバージョンが格納された列と同じ列に格納される。モデルAのバージョンが更新される度に、バージョン管理テーブル33の右方向に列が追加される。図6では、ソフトウェアファイル25のバージョンが更新された回数が7回あったことが示される。そして、バージョン管理テーブル33の最も右側には、これからソフトウェアファイル25のバージョンが更新されたときに追加される列が破線で表される。このようにバージョン管理テーブル33は、ソフトウェアファイル25の世代を管理している。
各ソフトウェアユニットには、バージョンが設定される。また、ソフトウェアユニットを構成するブロックに基づいて、照合値1及び照合値2が算出される。照合値1及び照合値2の算出は、バージョン更新判定部32によって行われる。照合値は、構成要素の種類ごとの数、構成要素の数に重みを乗じて算出された要素値の和、及び要素値の積のうち、少なくとも一つを含む。
バージョン情報62に示すように、ソフトウェアユニットごとに、ソフトウェアユニットのバージョン、照合値1及び照合値2が格納される。このため、バージョン更新判定部32は、あるバージョンのソフトウェアファイルに所属するソフトウェアユニットのバージョン、照合値1及び照合値2を容易に取得できる。
例えば、「AAA_unit」の名称が付されたソフトウェアユニットに注目すると、図中に範囲65で示すように、このソフトウェアユニットのバージョン(図1に示すソフトウェアユニットバージョン331に相当)が格納される。また、「BBB_unit」の名称が付されたソフトウェアユニットに注目すると、図中に範囲66で示すように、このソフトウェアユニットの照合値1及び照合値2(図1に示すバージョン照合値332に相当)が格納される。例えば、ソフトウェアファイルのバージョンが、3番目の列に格納された「10B」である場合、ソフトウェアユニット「DDD_unit」のバージョンは「040」であり、照合値1が「17」、照合値2が「99」である。
図7は、バージョン更新条件341の一例を示す図である。
バージョン更新条件341には、バージョン更新除外条件群70と、バージョン更新許可条件群71が含まれる。
バージョン更新判定部32は、編集されたソフトウェアファイル25又はソフトウェアユニットの変更内容がバージョン更新除外条件群70に規定されるいずれかの条件に該当する場合には、編集されたソフトウェアファイル25又はソフトウェアユニットのバージョン更新を不可(更新除外)と判定する。バージョン更新除外条件(バージョン更新除外条件群70)は、ソフトウェアファイル(ソフトウェアファイル25)の開閉、構成要素の位置の変更を含む。例えば、バージョン更新除外条件群70には、バージョン更新除外条件1として規定されるソフトウェアファイル25の開閉、バージョン更新除外条件2として規定される制御ブロック(ソフトウェアユニットの構成要素)の位置の変更の情報等がある。
バージョン更新判定部32は、編集されたソフトウェアファイル25又はソフトウェアユニットの変更内容がバージョン更新除外条件群70に規定されるいずれかの条件に該当する場合には、編集されたソフトウェアファイル25又はソフトウェアユニットのバージョン更新を不可(更新除外)と判定する。バージョン更新除外条件(バージョン更新除外条件群70)は、ソフトウェアファイル(ソフトウェアファイル25)の開閉、構成要素の位置の変更を含む。例えば、バージョン更新除外条件群70には、バージョン更新除外条件1として規定されるソフトウェアファイル25の開閉、バージョン更新除外条件2として規定される制御ブロック(ソフトウェアユニットの構成要素)の位置の変更の情報等がある。
バージョン更新判定部32は、図5のステップS17にてソフトウェアファイル25のバージョン更新の有無を判定する際にバージョン更新条件341のバージョン更新除外条件群70を参照する。そして、バージョン更新判定部32は、ベースバージョンのソフトウェアファイルと、編集されたソフトウェアファイル25との差分が、バージョン更新除外条件群70に含まれる複数の更新除外条件(例えば、バージョン更新除外条件1,2,…)のいずれかにのみ該当する場合には、編集されたソフトウェアファイル25のバージョン更新なしと判定する
一方、バージョン更新判定部32は、編集されたソフトウェアファイル25又はソフトウェアユニットの変更内容がバージョン更新許可条件群71に規定される条件に該当する場合には、編集されたソフトウェアファイル25又はソフトウェアユニットのバージョン更新ありと判定する。バージョン更新許可条件(バージョン更新許可条件群71)は、構成要素の増減、構成要素の接続先の変更を含む。例えば、バージョン更新許可条件群71には、バージョン更新許可条件1として規定される制御ブロックの増減、バージョン更新許可条件2として規定される制御ブロックの接続先の変更等がある。
バージョン更新判定部32は、図5のステップS17にてソフトウェアファイル25のバージョン更新判定を行う際にバージョン更新条件341のバージョン更新許可条件群71を参照する。そして、バージョン更新判定部32は、ソフトウェアファイル25のバージョン更新判定を行う際に、ベースバージョンのソフトウェアファイルと、編集されたソフトウェアファイル25との差分が、バージョン更新許可条件群71に含まれる複数の更新条件(例えば、バージョン更新許可条件1,2,…)のいずれかに該当する場合には、編集されたソフトウェアファイル25のバージョンを更新する判定結果を得る。つまり、バージョン更新判定部32は、ソフトウェアファイルの差分が、上述した更新除外条件に該当しても、更新条件に該当すれば、編集されたソフトウェアファイル25のバージョンを更新する判定結果を得る。
図8は、バージョン判定条件の説明図である。
バージョン更新判定部32は、図5のステップS17でソフトウェアファイル25のバージョン更新ありと判定した場合に、ステップS18での別手法での照合、すなわちステップS19での照合結果の判定を行う。図8では、識別子が「AAA_unit」であるソフトウェアユニット51(図3を参照)に注目して、照合値1及び照合値2を説明する。ここでは、照合値1を用いた照合を第1の別手法での照合、照合値2を用いた照合を第2の別手法での照合と呼ぶ
ソフトウェアユニット51の構成を管理するユニット構成管理テーブル90は、例えば、バージョン更新判定部32が図5のステップS18,S19での照合を行うたびにRAM43に作成される。ユニット構成管理テーブル90は、要素名、重み、要素数及び要素値の各フィールドで構成される。各要素は、図8の上側に示すようにブロック線図で表される。
要素名フィールドには、ソフトウェアユニットを構成する要素の名称が格納される。ソフトウェアユニットは、例えば、入力、出力、加算、減算、乗算、除算、if判定、ゲイン、単位変換、…、フィードバックの要素のいずれかによって構成される。ソフトウェアユニットの機能によって、構成される要素数が異なる。
重みフィールドには、ソフトウェアユニットを構成する各要素に対応する重みが格納されている。本実施の形態では、要素ごとに異なる重みが設定される。ただし、複数の要素で同じ値の重みが設定されてもよい。
要素数フィールドには、ソフトウェアユニットを構成する要素の数が、要素名ごとに格納される。例えば、ソフトウェアユニット51の入力が「2」、出力が「1」であることが示される。
要素値フィールドには、要素名ごとに設定される重みを要素数に掛けた値が要素値として格納される。
要素数フィールドには、ソフトウェアユニットを構成する要素の数が、要素名ごとに格納される。例えば、ソフトウェアユニット51の入力が「2」、出力が「1」であることが示される。
要素値フィールドには、要素名ごとに設定される重みを要素数に掛けた値が要素値として格納される。
そして、ユニット構成管理テーブル90の下部には、入出力数93、要素和94、要素積95の項目が設けられる。入出力数93、要素和94、要素積95は、図1に示したバージョン照合値332の一例である。
入出力数93の項目には、ソフトウェアユニット51の入出力数(I/F数)が格納される。上述したように、入力が「2」、出力が「1」であるので、入出力数は「3」である。
要素和94の項目には、各要素91に重み92を加味した要素値の和が格納される。例えば、2+2+3+0+…+20=49が要素和となる。
要素積95の項目には、各要素91に重み92を加味した要素値の積が格納される。ただし、要素積の演算に際して要素値が「0」は除かれる。例えば、2×2×3×5×8×9×20=86400が要素積となる。
要素和94の項目には、各要素91に重み92を加味した要素値の和が格納される。例えば、2+2+3+0+…+20=49が要素和となる。
要素積95の項目には、各要素91に重み92を加味した要素値の積が格納される。ただし、要素積の演算に際して要素値が「0」は除かれる。例えば、2×2×3×5×8×9×20=86400が要素積となる。
上述した図6では、照合値1の例として要素和が用いられ、照合値2の例として要素積が用いられる。バージョン更新判定部32は、抽出部31から抽出されたソフトウェアユニット51から算出した要素和及び要素積のうちの少なくとも一つと、ソフトウェアユニットバージョン331から読み出したソフトウェアユニット51に対応する照合値とを比較する。ソフトウェアユニット51のバージョン更新ありに該当する変更があれば、要素和及び要素積のうちの少なくとも一つが異なる。このように照合値が異なっていれば、バージョン更新判定部32は、バージョン更新可と判定し、編集されたソフトウェアユニット51及びソフトウェアファイル25に対して適切なバージョンを付与する。このようにバージョン更新判定部32が複数の照合値(観点)を比較することで、バージョン更新結果を高精度に判定することが可能となる。
なお、入出力数が、照合値3(不図示)として用いられてもよい。この場合、図6に示したバージョン管理テーブル33には、照合値3を格納する行がソフトウェアファイルユニットごとに設けられる。そして、バージョン更新判定部32は、抽出部31から抽出されたソフトウェアユニット51から算出した入出力数、要素和及び要素積のうちの少なくとも一つと、ソフトウェアユニットバージョン331から読み出したソフトウェアユニット51に対応する照合値とを比較する。以降の処理については、照合値1,2の場合と同様である。
以上説明した第1の実施の形態に係るバージョン管理装置3では、ソフトウェア開発装置2によってソフトウェアファイル25が編集されると、バージョン更新の有無を判定する。そして、バージョン更新判定部32がバージョン更新ありと判定した場合に、バージョン更新の有無を判定した方法とは別の手法で編集内容を確認する。この際、バージョン更新判定部32は、編集されたソフトウェアファイル25から算出した照合値と、バージョン管理テーブル33から読み出したバージョン照合値332とを比較し、照合値が一致すればバージョンを更新せず、照合値が不一致であればバージョンを更新する。
このようにバージョン更新判定部32は、ソフトウェアファイル25を構成する最小管理単位(例えば、ソフトウェアユニット)のバージョン更新の可否を正しく判定できる。このため、ソフトウェアユニットの構成管理やソフトウェア部品管理の精度が向上し、ソフトウェアファイル25の再利用が容易となる。また、ソフトウェアファイル25に対するわずかな変更に対して全てバージョンが更新されるのでなく、多数のバージョンが増えることを防ぐことが可能となる。
[第2の実施の形態]
次に、本発明の第2の実施の形態に係るソフトウェア構成管理システムについて、図9を参照して説明する。
図9は、ソフトウェア構成管理システム1Aの全体構成例を示すブロック図である。
次に、本発明の第2の実施の形態に係るソフトウェア構成管理システムについて、図9を参照して説明する。
図9は、ソフトウェア構成管理システム1Aの全体構成例を示すブロック図である。
ソフトウェア構成管理システム1Aは、ソフトウェア開発装置2、バージョン管理装置3Aに加えてファイルサーバ100を備える。
バージョン管理装置3Aは、第1の実施の形態に係るバージョン管理装置3からファイルデータベース35を除いた構成としている。
ファイルサーバ(ファイルサーバ100)は、ファイルデータベース(ファイルデータベース101)を備える。ファイルデータベース101には、第1の実施の形態に係るファイルデータベース35と同様にソフトウェアファイル25を格納する。
バージョン管理装置3Aは、第1の実施の形態に係るバージョン管理装置3からファイルデータベース35を除いた構成としている。
ファイルサーバ(ファイルサーバ100)は、ファイルデータベース(ファイルデータベース101)を備える。ファイルデータベース101には、第1の実施の形態に係るファイルデータベース35と同様にソフトウェアファイル25を格納する。
ソフトウェア開発装置2は、ファイルサーバ100にアクセスして、ファイルデータベース101に格納されているソフトウェアファイル25を取得し、編集部21がソフトウェアファイル25を編集する。
バージョン管理装置3Aのバージョン更新判定部(バージョン更新判定部32)は、抽出部31がソフトウェアファイル25からソフトウェアユニットを抽出した後、バージョン更新の判定に際して、ファイルサーバ(ファイルサーバ100)にアクセスする。そして、バージョン更新判定部(バージョン更新判定部32)は、ファイルサーバ(ファイルサーバ100)から、抽出部(抽出部31)が抽出したソフトウェアユニットを含むソフトウェアファイル(ソフトウェアファイル25)を取得する。その後、バージョン更新判定部32は、図5のステップS17〜S20の処理を経て、バージョン更新の有無の判定、バージョン照合の可否を判定する。バージョン更新判定部32は、更新したバージョンをバージョン管理テーブル33に反映した後、編集されたソフトウェアファイル25をファイルサーバ100に出力する。ファイルサーバ100のファイルデータベース101には、編集されたソフトウェアファイル25が格納される。
以上説明した第2の実施の形態に係るソフトウェア構成管理システム1Aでは、ファイルサーバ100のファイルデータベース101に編集部21及びバージョン更新判定部32がそれぞれアクセスしてソフトウェアファイル25を取得する構成とした。このような構成であっても、バージョン更新判定部32は、編集されたソフトウェアファイル25のバージョン更新の可否を正しく判定することができる。
[第3の実施の形態]
次に、本発明の第3の実施の形態に係るソフトウェア開発装置について、図10を参照して説明する。
図10は、ソフトウェア開発装置2Aの全体構成例を示すブロック図である。
次に、本発明の第3の実施の形態に係るソフトウェア開発装置について、図10を参照して説明する。
図10は、ソフトウェア開発装置2Aの全体構成例を示すブロック図である。
ソフトウェア開発装置2Aは、上述した第1の実施の形態に係るソフトウェア開発装置2とバージョン管理装置3とを一つにまとめたものである。
このソフトウェア開発装置2Aは、第1の実施の形態に係るソフトウェア開発装置2が有する編集部21、表示部22、操作部23及び記憶部24に加えて、抽出部26、バージョン更新判定部27、バージョン管理テーブル28、条件管理テーブル29及びファイルデータベース30を備える。ソフトウェア開発装置2Aが有する抽出部26、バージョン更新判定部27、バージョン管理テーブル28、条件管理テーブル29及びファイルデータベース30の各機能は、第1の実施の形態に係るバージョン管理装置3が有する抽出部31、バージョン更新判定部32、バージョン管理テーブル33、条件管理テーブル34及びファイルデータベース35の各機能と同様である。このため、バージョン更新判定部27は、ファイルデータベース30から、抽出部26が抽出したソフトウェアユニットを含むソフトウェアファイル25を取得することができる。また、バージョン更新判定部27は、編集されたソフトウェアファイル25を、バージョンの更新判定後に、ファイルデータベース101に格納することができる。
このソフトウェア開発装置2Aは、第1の実施の形態に係るソフトウェア開発装置2が有する編集部21、表示部22、操作部23及び記憶部24に加えて、抽出部26、バージョン更新判定部27、バージョン管理テーブル28、条件管理テーブル29及びファイルデータベース30を備える。ソフトウェア開発装置2Aが有する抽出部26、バージョン更新判定部27、バージョン管理テーブル28、条件管理テーブル29及びファイルデータベース30の各機能は、第1の実施の形態に係るバージョン管理装置3が有する抽出部31、バージョン更新判定部32、バージョン管理テーブル33、条件管理テーブル34及びファイルデータベース35の各機能と同様である。このため、バージョン更新判定部27は、ファイルデータベース30から、抽出部26が抽出したソフトウェアユニットを含むソフトウェアファイル25を取得することができる。また、バージョン更新判定部27は、編集されたソフトウェアファイル25を、バージョンの更新判定後に、ファイルデータベース101に格納することができる。
以上説明した第3の実施の形態に係るソフトウェア開発装置2Aは、ファイルデータベース30を備えているので、スタンドアロンで用いることが可能である。このため、編集部21は、ネットワークを介さなくても、ソフトウェアファイル25をファイルデータベース30から取得したり、編集したソフトウェアファイル25を抽出部26に出力して、バージョン更新判定部27にバージョンの更新可否を判定させたりすることができる。このため、秘密性が高いソフトウェアファイル25が情報漏洩するリスクを避けることが可能となる。
なお、本発明は上述した各実施の形態に限られるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りその他種々の応用例、変形例を取り得ることは勿論である。
例えば、上述した各実施の形態は本発明を分かりやすく説明するために装置及びシステムの構成を詳細かつ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されない。また、ここで説明した実施の形態の構成の一部を他の実施の形態の構成に置き換えることは可能であり、さらにはある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加、削除、置換をすることも可能である。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
例えば、上述した各実施の形態は本発明を分かりやすく説明するために装置及びシステムの構成を詳細かつ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されない。また、ここで説明した実施の形態の構成の一部を他の実施の形態の構成に置き換えることは可能であり、さらにはある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加、削除、置換をすることも可能である。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
1…ソフトウェア構成管理システム、2…ソフトウェア開発装置、3…バージョン管理装置、21…編集部、25…ソフトウェアファイル、31…抽出部、32…バージョン更新判定部、33…バージョン管理テーブル、34…条件管理テーブル、35…ファイルデータベース、50…ソフトウェア、51…ソフトウェアユニット、61…構成情報、62…バージョン情報、70…バージョン更新除外条件群、71…バージョン更新条件群、90…ユニット構成管理テーブル
Claims (13)
- 編集されたソフトウェアファイルから、所定の命名規則で命名される識別子を用いて、前記ソフトウェアファイルを構成する一又は複数のソフトウェアユニットを抽出する抽出部と、
前記ソフトウェアファイル及び前記ソフトウェアユニットのバージョンを更新する条件を定義するバージョン更新条件に、前記ソフトウェアファイル及び前記ソフトウェアユニットの少なくとも一つの差分が該当することで前記ソフトウェアファイルのバージョンが更新されたと判定した場合に、少なくとも一つ以上のバージョン判定条件により判定した結果に基づいて前記ソフトウェアファイルのバージョンの更新可否を判定するバージョン更新判定部と、を備える
バージョン管理装置。 - 前記ソフトウェアファイルのバージョン、前記ソフトウェアユニットのバージョン、及び前記ソフトウェアユニットの構成要素から算出されたバージョン照合値を管理するバージョン管理部を備え、
前記バージョン更新判定部は、前記バージョン判定条件として規定される、前記抽出部が抽出した前記ソフトウェアユニットの構成要素から算出したバージョン照合値と、前記バージョン管理部から読み出した前記バージョン照合値とを比較した比較結果に基づいて前記ソフトウェアファイルのバージョンの更新可否を判定する
請求項1に記載のバージョン管理装置。 - 前記バージョン更新判定部は、編集された前記ソフトウェアファイルが、前記バージョン更新条件を満たし、かつ前記バージョン判定条件を満たした場合に、編集された前記ソフトウェアファイル又は前記ソフトウェアユニットのバージョンを更新し、更新したバージョン、及び算出したバージョン照合値を、前記バージョン管理部に反映する
請求項2に記載のバージョン管理装置。 - 前記バージョン更新判定部は、ファイルデータベースに格納されている前記ソフトウェアユニットの前記バージョン及び前記バージョン照合値を前記バージョン管理部から読み出し、前記ソフトウェアファイル又は前記ソフトウェアユニットの変更内容が、前記バージョン判定条件を満たすか否かを判定する
請求項3に記載のバージョン管理装置。 - 前記バージョン更新条件には、前記バージョン更新判定部が前記バージョンの更新を可と判定するバージョン更新許可条件と、前記バージョン更新判定部が前記バージョンの更新を不可と判定するバージョン更新除外条件とが含まれる
請求項4に記載のバージョン管理装置。 - 前記バージョン更新許可条件は、前記構成要素の増減、前記構成要素の接続先の変更を含む
前記バージョン更新除外条件は、前記ソフトウェアファイルの開閉、前記構成要素の位置の変更を含む
請求項5に記載のバージョン管理装置。 - 前記バージョン更新判定部は、前記バージョン判定条件に基づき、前記ソフトウェアユニットから算出されたバージョン照合値と、前記バージョン管理部から読み出した前記バージョン照合値とが一致していれば、前記バージョン管理部に更新されたバージョンを反映せず、不一致であれば前記バージョン管理部に更新されたバージョンを反映する
請求項6に記載のバージョン管理装置。 - 前記照合値は、前記構成要素の種類ごとの数、前記構成要素の数に重みを乗じて算出された要素値の和、及び前記要素値の積のうち、少なくとも一つを含む
請求項7に記載のバージョン管理装置。 - 前記ファイルデータベースを備え、
前記バージョン更新判定部は、前記抽出部が抽出した前記ソフトウェアユニットを含む編集前の前記ソフトウェアファイルを前記ファイルデータベースから取得する
請求項5に記載のバージョン管理装置。 - 前記バージョン更新判定部は、前記ファイルデータベースを備えるファイルサーバにアクセスし、前記ファイルサーバから、前記抽出部が抽出した前記ソフトウェアユニットを含む前記ソフトウェアファイルを取得する
請求項5に記載のバージョン管理装置。 - 前記バージョン更新判定部は、編集された前記ソフトウェアファイルを前記ファイルデータベースに格納する
請求項9又は10に記載のバージョン管理装置。 - 編集されたソフトウェアファイルから、所定の命名規則で命名される識別子を用いて、前記ソフトウェアファイルを構成する一又は複数のソフトウェアユニットを抽出するステップと、
前記ソフトウェアファイル及び前記ソフトウェアユニットのバージョンを更新する条件を定義するバージョン更新条件に、前記ソフトウェアファイル及び前記ソフトウェアユニットの少なくとも一つの差分が該当するかを判定するステップと、
バージョン更新条件に、前記ソフトウェアファイル及び前記ソフトウェアユニットの少なくとも一つの差分が該当することで前記ソフトウェアファイルのバージョンが更新されたと判定した場合に、少なくとも一つ以上のバージョン判定条件により判定した結果に基づいて前記ソフトウェアファイルのバージョンの更新可否を判定するステップと、を含む
バージョン管理方法。 - 所定の命名規則で命名される識別子が付与された、一又は複数のソフトウェアユニットにより構成されるソフトウェアファイルを格納するファイルデータベースと、
前記ファイルデータベースから読み出した前記ソフトウェアファイル、又は前記ソフトウェアユニットを編集する編集部と、
前記編集部により編集されたソフトウェアファイルから前記識別子を用いて、前記ソフトウェアユニットを抽出する抽出部と、
前記ソフトウェアファイル及び前記ソフトウェアユニットのバージョンを更新する条件を定義するバージョン更新条件に、前記ソフトウェアファイル及び前記ソフトウェアユニットの少なくとも一つの差分が該当することで前記ソフトウェアファイルのバージョンが更新されたと判定した場合に、少なくとも一つ以上のバージョン判定条件により判定した結果に基づいて前記ソフトウェアファイルのバージョンの更新可否を判定するバージョン更新判定部と、を備える
ソフトウェア開発装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020095985A JP2021189879A (ja) | 2020-06-02 | 2020-06-02 | バージョン管理装置、バージョン管理方法及びソフトウェア開発装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020095985A JP2021189879A (ja) | 2020-06-02 | 2020-06-02 | バージョン管理装置、バージョン管理方法及びソフトウェア開発装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021189879A true JP2021189879A (ja) | 2021-12-13 |
Family
ID=78849880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020095985A Pending JP2021189879A (ja) | 2020-06-02 | 2020-06-02 | バージョン管理装置、バージョン管理方法及びソフトウェア開発装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021189879A (ja) |
-
2020
- 2020-06-02 JP JP2020095985A patent/JP2021189879A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12117925B2 (en) | Immutable protection of software and/or computing hardware testing data | |
US9940108B2 (en) | Automated merging in a software development environment | |
US11669439B2 (en) | Computing hardware and software design testing auditability, including for critical control systems, functional safety, and autonomous vehicle component certification | |
US10970673B2 (en) | Bill of material synchronization | |
US7401085B2 (en) | System and method for controlling the release of updates to a database configuration | |
Hallerbach et al. | Guaranteeing soundness of configurable process variants in Provop | |
CA3131079A1 (en) | Test case generation method and device, computer equipment and storage medium | |
US10380085B2 (en) | Method, apparatus and computer program for migrating records in a database from a source database schema to a target database schema | |
CN107016047A (zh) | 文档查询、文档存储方法及装置 | |
US20150142813A1 (en) | Language tag management on international data storage | |
EP3999917B1 (en) | Method and system for generating a digital representation of asset information in a cloud computing environment | |
JP7131119B2 (ja) | ソースアプリケーションからのソースデータをターゲットアプリケーションのターゲットデータへとマージするためのシステムおよび方法 | |
JP2021189879A (ja) | バージョン管理装置、バージョン管理方法及びソフトウェア開発装置 | |
CN114089965A (zh) | 基于单体式代码仓库Monorepo的程序开发项目管理方法、装置 | |
JP5641901B2 (ja) | Sql検証システムとその方法およびプログラム | |
WO2016105354A1 (en) | Simulation of a synchronization of records | |
CN117632114B (zh) | 一种基于文件分析的fmu文件的导入方法和装置 | |
CN117453189B (zh) | 一种应用分层开发的方法、系统、设备及介质 | |
US11934800B2 (en) | Generating metadata to facilitate code generation | |
CN118132119B (zh) | 代码更新方法与装置、电子设备及存储介质 | |
US20240086185A1 (en) | Fingerprint inference of software artifacts | |
JP6798340B2 (ja) | 運用仕様分析装置、運用仕様分析方法及び運用仕様分析プログラム | |
CN114185591A (zh) | 代码检查方法、装置、存储介质和计算机程序产品 | |
CN113448865A (zh) | 基于形式模型的关系型测试数据生成方法及装置 | |
JPH03102429A (ja) | ロードモジュール生成処理方式 |