JP2015097029A - ソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラム - Google Patents

ソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラム Download PDF

Info

Publication number
JP2015097029A
JP2015097029A JP2013237026A JP2013237026A JP2015097029A JP 2015097029 A JP2015097029 A JP 2015097029A JP 2013237026 A JP2013237026 A JP 2013237026A JP 2013237026 A JP2013237026 A JP 2013237026A JP 2015097029 A JP2015097029 A JP 2015097029A
Authority
JP
Japan
Prior art keywords
file
version
program
item
input
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.)
Granted
Application number
JP2013237026A
Other languages
English (en)
Other versions
JP6287093B2 (ja
Inventor
慶男 西野
Yoshio Nishino
慶男 西野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2013237026A priority Critical patent/JP6287093B2/ja
Publication of JP2015097029A publication Critical patent/JP2015097029A/ja
Application granted granted Critical
Publication of JP6287093B2 publication Critical patent/JP6287093B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】プログラム及びプログラムが利用する資産のバージョンの不整合を発見できるソフトウェア開発支援装置、方法及びプログラムを提供する。【解決手段】ソフトウェア開発支援装置は、ファイル、項目、項目のバージョンを定義したファイル仕様を、そのバージョンとともに出力する(101)。プログラムの処理内容、使用する項目、項目のバージョン、を定義したプログラム仕様を、そのバージョンとともに出力する(106)。ファイル仕様に従って、ファイル入出力部品を生成し、そのバージョンと使用する項目のバージョンとを保持させて出力する(112)。プログラム仕様に従って、プログラムを生成し、そのバージョンと使用する項目のバージョンとを保持させて出力する(116)。ファイル仕様、プログラム仕様、ファイル入出力部品、プログラムのバージョン、これらが含み又は使用する項目のバージョンを比較して整合性を検査する(132)。【選択図】図1

Description

本発明はソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラムに関し、特にプログラム及びプログラムが利用する資産にかかるバージョン管理を行い、これらのうちいずれかを変更したことに伴うバージョンの不整合を発見する技術に関する。
プログラム自動生成システム(特許文献1及び特許文献2)や、Integrated Development Environment(IDE)と呼ばれるプログラム統合開発ツールが広く利用されている。これらのシステム及びツールは、主にプログラムのソースコードを効率的に開発することを目的として提供されている。その一方、プログラムから参照される共通の資産、例えば種々の項目のデータを含むファイルが変更された際に、そのファイルの変更の影響を受けるであろうプログラム側においても、相応の変更がなされたかどうかを確認するような、いわばファイルとプログラムとの整合性を検査する機能を備えたものは提供されていない。
この点、特許文献3乃至特許文献6は、プログラムのメタ情報である設計情報及びコーディング情報をリポジトリで一元管理するシステムを開示している。しかし、これらのシステムにおいても、設計情報やコーディング情報を利用して、ファイルとプログラムとが相応しく変更されたかどうか、整合性を確認するところまで踏み込んでいるものはない。
また、特許文献7乃至特許文献11は、プログラムコードや設計情報等に変更が生じた場合に、その変更による影響範囲を確認できるようにするシステムを開示している。しかし、これらのシステムのいずれも、設計情報やコーディング情報を利用して、ファイルとプログラムとの双方が相応しく変更されたかどうか、整合性を確認するものではない。
さらには、上記文献記載の技術はいずれも、ファイルの変更を反映したプログラムが、きちんと運用環境に配置したかどうかについて確認するものでない。
特開平01−147621号公報 特許第3871832号公報 特開2006−079212号公報 特開2006−106893号公報 特開2007−087127号公報 特開2009−294940号公報 特開2010−015458号公報 特開2009−122754号公報 特開2007−172223号公報 特開2007−018334号公報 特開平05−061655号公報
したがって、現状においては、ファイルを変更した際、その変更の影響を受けるプログラムを変更したかどうか、また変更したプログラムを運用環境に配置したかどうかを確認する作業は、全て目視によって行われている。システムの規模が、目視確認が行き届く程度に小さい場合は、この手法でも支障はない。しかし、システムが大規模になればなるほど、プログラムの本数が増え、各プログラムとファイルとの依存関係も複雑になるため、上述のような変更確認にかかる工数や難易度は増大し、確認漏れ等のリスクも高まる。また、ファイルやプログラムの数、及びプログラムにおいてファイルを参照する箇所が多くなればなるほど、変更確認はより困難となり、見落としのリスクは増大する。ファイルやプログラムの変更は、システムが運用フェーズに入ってから実施されるケースも多いが、かかるケースにおいて確認漏れ等が発生すると、たとえそれが小さなミスであっても影響が甚大になる場合も少なくない。特に本番稼働時の変更漏れは重大なトラブルに繋がるケースが多かった。それゆえ、システムが運用フェーズに入った後のファイルやプログラムの変更確認作業は、開発者に過酷な負担を強いるものであった。
これらの問題を解決するためには、ファイルやプログラムの仕様が変更された際に、関係する他の全ての資産、すなわちプログラムやファイルも相応しく変更されていることを確認する仕組みが重要となる。
本発明は、このような問題点を解決するためになされたものであり、プログラム及びプログラムが利用する資産にかかるバージョン管理を行い、これらのうちいずれかを変更したことに伴うバージョンの不整合を発見できるソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラムを提供することを目的とする。
その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
本発明に係るソフトウェア開発支援装置は、プログラムによるデータの入出力の対象となるファイルであって、1以上の項目を含む前記ファイルについて、前記項目と、前記項目のバージョンと、を定義してファイル仕様とし、前記ファイル仕様のバージョンとともに出力するファイル定義手段と、前記プログラムの処理内容と、前記プログラムが使用する前記項目と、前記項目の前記バージョンと、を定義してプログラム仕様とし、前記プログラム仕様のバージョンとともに出力するプログラム定義手段と、前記ファイル仕様に従って、前記ファイルから前記項目を入出力するためのファイル入出力部品のソースコードまたは実行形式ファイルを生成し、前記ファイル入出力部品のバージョンと、前記ファイル入出力部品が使用する前記項目の前記バージョンと、保持させて出力するファイル入出力部品生成手段と、前記プログラム仕様に従って、前記プログラムのソースコードまたは実行形式ファイルを生成し、前記プログラムのバージョンと、前記プログラムが使用する前記項目の前記バージョンと、を保持させて出力するプログラム生成手段と、前記ファイル仕様、前記プログラム仕様、前記ファイル入出力部品、前記プログラムについて、これらのバージョン及びこれらがそれぞれ含み又は使用する前記項目の前記バージョンのうちいずれか2以上を比較することにより、整合性を検査する検査手段と、を含むものである。
本発明に係るソフトウェア開発支援方法は、プログラムによるデータの入出力の対象となるファイルであって、1以上の項目を含む前記ファイルについて、前記項目と、前記項目のバージョンと、を定義してファイル仕様とし、前記ファイル仕様のバージョンとともに出力するファイル定義ステップと、前記プログラムの処理内容と、前記プログラムが使用する前記項目と、前記項目の前記バージョンと、を定義してプログラム仕様とし、前記プログラム仕様のバージョンとともに出力するプログラム定義ステップと、前記ファイル仕様に従って、前記ファイルから前記項目を入出力するためのファイル入出力部品のソースコードまたは実行形式ファイルを生成し、前記ファイル入出力部品のバージョンと、前記ファイル入出力部品が使用する前記項目の前記バージョンと、保持させて出力するファイル入出力部品生成ステップと、前記プログラム仕様に従って、前記プログラムのソースコードまたは実行形式ファイルを生成し、前記プログラムのバージョンと、前記プログラムが使用する前記項目の前記バージョンと、を保持させて出力するプログラム生成ステップと、前記ファイル仕様、前記プログラム仕様、前記ファイル入出力部品、前記プログラムについて、これらのバージョン及びこれらがそれぞれ含み又は使用する前記項目の前記バージョンのうちいずれか2以上を比較することにより、整合性を検査する検査ステップと、を含むものである。
本発明に係るプログラムは、上記方法をコンピュータに実行させるためのプログラムである。
本発明により、プログラム及びプログラムが利用する資産にかかるバージョン管理を行い、これらのうちいずれかを変更したことに伴うバージョンの不整合を発見できるソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラムを提供することができる。
本発明の実施の形態の構成を示す図である。 本発明の実施の形態のプログラム生成処理を示す図である。 本発明の実施の形態のファイル定義画面の例を示す図である。 本発明の実施の形態のファイル仕様の例を示す図である。 本発明の実施の形態の関係表(ファイル関係情報)の例を示す図である。 本発明の実施の形態のプログラム定義画面の例を示す図である。 本発明の実施の形態のファイル仕様参照画面の例を示す図である。 本発明の実施の形態のプログラム仕様の例を示す図である。 本発明の実施の形態の関係表(プログラム関係情報)の例を示す図である。 本発明の実施の形態のファイルバージョン情報の例を示す図である。 本発明の実施の形態のファイルバージョン情報の例を示す図である。 本発明の実施の形態の関係表(ファイル入出力部品関係情報)の例を示す図である。 本発明の実施の形態のプログラムバージョン情報の例を示す図である。 本発明の実施の形態の関係表(プログラム関係情報)の例を示す図である。 本発明の実施の形態のダミー構造体の例を示す図である。 本発明の実施の形態の整合性検査処理の例を示す図である。 本発明の実施の形態の整合性検査処理の例を示す図である。 本発明の実施の形態の整合性検査処理の例を示す図である。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
まず、図1を用いて、本発明の実施の形態にかかるソフトウェア開発支援装置100の構成について説明する。
ソフトウェア開発支援装置100は、ファイル定義手段101、プログラム定義手段106、ファイル入出力部品生成手段112、プログラム生成手段116、リポジトリ120、バージョン整合検査手段130、バージョン取得手段131、運用環境140を備える。
以下、これら各手段の構成及び動作について、図2乃至図18を用いて説明する。
<ファイル定義>
ファイル定義手段101は、ユーザの入力に応じてファイルの仕様を定義する。また、ファイル定義手段101は、ファイル自体のバージョン情報を生成、管理することはもちろん、さらに、ファイルを構成している項目ごとのバージョン情報を生成、管理する。これらの機能を実現するため、ファイル定義手段101は、バージョン情報作成手段103、ファイル仕様出力手段104、関係表出力手段105を有する。
バージョン情報作成手段103は、ファイル仕様を定義するためのユーザ入力を受け付け、ファイル及び項目のバージョン情報を自動生成する。バージョン情報作成手段103は、ファイル仕様を定義するためのグラフィカルユーザインターフェースとして、例えば、図3に示す入力画面をユーザに提供する。この入力画面はモニタに表示される。この入力画面をファイル定義画面102と称することとする。
ファイル定義画面102は、複数のセルに区切られている。このうち、「ファイル名」「ファイルバージョン」「項目名」「属性」「項目バージョン」なる文字列が表示されている各セルは、バージョン情報作成手段103が固定文字列を表示しているセルである。
ファイルバージョンを表示するセル、すなわち「ファイルバージョン」の右列のセル(「3」が表示されている)、及び項目バージョンを表示するセル、すなわち「項目バージョン」の下に複数行にわたって連なるセル(「1」「2」「2」・・が表示されている)は、いずれもバージョン情報作成手段103が自動的に生成したバージョン情報を表示するセルである。
その他のセルは、いずれも所定の入力規則に従ってユーザが値を入力すべきセルである。すなわち、「ファイル名」の右列のセル(「FILE_A」が表示されている)は、ファイル名を入力するセルである。また、「項目名」の下に複数行にわたって連なるセル(「項目A」「項目B」「項目C」・・が入力されている)、「属性」の下に複数行にわたって連なるセル(「char[5]」「long」「char[20]」・・が入力されている)は、上記ファイルを構成する1以上の項目それぞれについて、項目名及び属性(データ型)を入力するセルである。
ユーザがファイル名を新規に入力すると、バージョン情報作成手段103は、ファイルバージョンを「1」に設定する。そして、ユーザがファイル名を変更したり、項目の新規入力、変更あるいは削除を行い、ファイル仕様の出力を行う(後述)と、バージョン情報作成手段103は、ファイルのバージョンをインクリメント(+1)する。図3では、ファイルバージョンは「3」になっている。
ファイルを構成する各項目についても同様である。すなわち、ユーザが項目(項目名と属性)を新規に入力すると、バージョン情報作成手段103は、項目に対してバージョン「1」を割り当てる。そして、ユーザがある項目の項目名または属性を変更し、ファイル仕様を出力すると、バージョン情報作成手段103は、当該項目のバージョンをインクリメント(+1)する。
なお、当然のことであるが、ファイル仕様を出力する前に、項目の定義内容を何度変更してもバージョンは最大で+1しかされず、新規にファイル定義を作成した場合は1のままである。また、ある項目が削除されると、当該項目のバージョンも含めて削除される。
ユーザは、ファイル定義画面102で必要な情報を入力し終えると、ファイル定義を登録する、換言すればファイル仕様を出力する指示を出す。例えば、ユーザは登録ボタンを押す(クリックする)。
これに応じ、ファイル仕様出力手段104と関係表出力手段105とは、リポジトリ120内のファイル仕様121と関係表123とに、更新された情報を登録する。
図4に、ファイル仕様出力手段104がファイル仕様121に登録するファイル仕様情報の例を示す。ファイル仕様情報は、ファイル名、ファイルバージョン(ファイル定義全体のバージョン)、項目名、項目の属性、及び項目のバージョンを含む。
図5に、関係表出力手段105が関係表123に登録するファイル関係情報の例を示す。ファイル関係情報は、ファイル名、項目名、ファイルバージョン(ファイル定義全体のバージョン)および項目バージョンを含む。
なお、関係表123にファイル名が同一の行が既に存在する場合、関係表出力手段105は、既に存在するその行を一旦削除した後、上述のファイル関係情報の出力を行う。
<プログラム定義>
プログラム定義手段106は、ユーザの入力に応じてプログラムの仕様を定義する。また、プログラム定義手段106は、プログラムのバージョンを生成、管理する。さらに、プログラム定義手段106は、プログラムのバージョンと、プログラムがデータの入出力先とする上記ファイル内の1以上の項目それぞれのバージョンと、を関連付けて管理する。これらの機能を実現するため、プログラム定義手段106は、バージョン情報作成手段109、プログラム仕様出力手段110、関係表出力手段111を有する。
バージョン情報作成手段109は、プログラム仕様を定義するためのユーザ入力を受け付け、プログラムのバージョン情報を自動生成する。バージョン情報作成手段109は、プログラム仕様を定義するためのグラフィカルユーザインターフェースとして、例えば、図6に示す入力画面をユーザに提供する。この入力画面はモニタに表示される。この入力画面をプログラム定義画面107と称することとする。
プログラム定義画面107は、プログラムフロー図画面、入力処理定義画面、出力処理定義画面、および、フリー記述画面を有する。
まず、ユーザは、プログラムフロー図画面でプログラム構造を定義していく。ユーザは、プログラムを構成する処理単位を表すノードを、ツリー型に組み合せることにより、プログラム全体の構造を定義する。プログラム定義画面107は、ノードを画面空間上の任意の位置に配置し、配置されたノード間の従属関係を定義するためのグラフィカルユーザインターフェイスを提供する。かかるインターフェイスの詳細については、本発明が解決しようとする課題のスコープから外れるため、説明を省略するが、種々の既存技術を利用可能であることは言うまでもない。
このツリー型に定義されたプログラム構造において、1つのノードは、1つの処理単位に相当する。これらのノードには、3つのタイプが予め用意される。すなわち、入力処理ノード、出力処理ノードおよびフリー記述ノードである。ユーザは、記述したい処理の内容(入力処理か、出力処理か、あるいはそれ以外の処理か)に従って、適切な種類のノードを選択し、ツリー内に配置する。ここで、例えばA処理ノードに従属させてB処理ノードを配すると、それはA処理はB処理を含む一連の処理により構成されるということを意味する。
プログラムフロー図画面への入力が完了したならば、ユーザは、各ノードの具体的な処理内容を、図6に示す入力処理定義画面、出力処理定義画面、あるいはフリー記述画面を用いて定義する。バージョン情報作成手段109は、例えば、ユーザがプログラムフロー図中のあるノードを選択(クリック)したことに応じて、そのノードのタイプに対応する定義画面をモニタに表示させることができる。すなわち、入力処理ノードが選択されたなら入力処理定義画面を、出力処理ノードが選択されたなら出力処理定義画面を、フリー記述ノードが選択されたならフリー記述画面を表示する。
入力処理、出力処理の定義画面には、ファイル仕様参照ボタンが設けられる。ユーザがファイル仕様参照ボタンを押下すると、ファイル仕様参照手段108が、図7に示すファイル仕様参照画面をモニタに表示させる。ファイル仕様参照画面は、ユーザに、その入力処理又は出力処理においてプログラムが入出力対象とすべきファイル、及びファイル中の項目を指定させるものである。
ファイル仕様参照手段108は、リポジトリ120のファイル仕様121を参照し、ファイル仕様情報を取得する。そして、ファイル仕様参照手段108は、ファイル仕様参照画面に、ファイル仕様情報に定義されているファイル名、ファイルバージョン、項目名、属性、項目バージョンを表示する。
ユーザは、ファイルの項目の一覧から、選択した処理単位においてプログラムが使用する項目を選択する。項目が選択されると、バージョン情報作成手段109は、選択された項目が含まれていたファイル名、選択された項目名および項目バージョンを組にした、ファイルバージョン情報を作成する。
バージョン情報作成手段109は、入力処理画面または出力処理画面の使用項目名(バージョン)の位置に、ファイルバージョン情報にかかる項目名と項目バージョンとを表示する。
なお、ファイル仕様参照画面でファイル項目の選択が解除された場合は、バージョン情報作成手段109は、そのファイルバージョン情報を削除し、入力処理画面または出力処理画面に表示されている項目名(バージョン)から、当該項目の項目名および項目バージョンを消去する。
なお、ファイル仕様参照画面で選択されなかった項目を入力処理、出力処理またはフリー記述の画面でユーザが使用すると、プログラムの生成時にエラーとなり、そのようなプログラムの生成ができないよう制約される(後述)。
バージョン情報作成手段109は、プログラム定義が新規に作成された場合、すなわちプログラムフロー図における1以上のノードからなるプログラム構造の定義、及び入力処理定義画面、出力処理定義画面、あるいはフリー記述画面における各ノードの処理内容の定義を含む一連の処理が新規になされ、これらが完了した場合は、プログラムバージョン(プログラム定義全体のバージョン)に「1」を割り当てる。また、バージョン情報作成手段109は、プログラムの構造や各ノードの処理内容の定義が変更された場合は、プログラムバージョンをインクリメント(+1)する。
なお、当然のことであるが、プログラム仕様を出力する前に何度、プログラムの構造やノードの内容を変更しても、プログラムバージョンは最大で+1しかされず、新規に作成した場合は1のままである。
ユーザは、プログラム定義画面107で必要な情報を入力し終わると、プログラム定義を登録する指示を出す。例えば、登録ボタンを押す。
これに応じ、プログラム仕様出力手段110と関係表出力手段111とは、リポジトリ120内のプログラム仕様122と関係表123とに、更新された情報を登録する。
図8に、プログラム仕様出力手段110がプログラム仕様122に登録するプログラム仕様情報の例を示す。プログラム仕様情報は、プログラム名、プログラムバージョン(プログラム定義全体のバージョン)、ノード名、ノードタイプ、処理情報(抽出条件)および使用ファイル項目バージョン情報を含む。使用ファイル項目バージョン情報は、ファイル名、項目名および項目バージョンを含む。
図9に、関係表出力手段115が関係表123に登録するプログラム関係情報の例を示す。プログラム関係情報は、プログラム名と、プログラムバージョン(プログラム定義全体のバージョン)と、の組を含む。さらに、プログラム関係情報は、プログラム名と、ファイルバージョン情報(使用ファイル名、使用項目名および使用項目のバージョンの組)と、の組を含む。
<ファイル入出力部品生成>
ファイル入出力部品生成手段112は、ファイル仕様に基づいて、プログラムがファイルに対しデータを入出力するためのファイル入出力部品を自動生成する。ファイル入出力部品生成手段112は、生成手段113、バージョン組込み手段114、関係表出力手段115を有する。
生成手段113は、リポジトリ120のファイル仕様121からファイル仕様を読み出し、ファイル仕様を利用してファイル入出力部品のソースを生成する。ここで、ファイル入出力部品とは、プログラムにファイルに対するデータの入出力処理を実装するためのソフトウェア部品である。ファイル入出力部品は、プログラム側から項目名を指定することで、項目単位でデータの入出力を行うことが可能なインタフェースを有する。なお、ファイル入出力部品のソースの具体的な生成方法は、本発明が解決しようとする課題のスコープから外れるため、詳細な説明を省略するが、既知の種々の手法を用いて実現できることは言うまでもない。
生成手段113は、生成したファイル入出力部品のソースを、リポジトリ120の入出力部品ソース124に保存する。さらに、生成手段113は、生成したファイル入出力部品のソースをコンパイル、リンクして入出力部品(ライブラリ)125に保存する。
バージョン組込み手段114は、生成手段113にてファイル入出力部品のソースが生成される際、そのソースに、ファイル入出力部品が入出力の対象とするファイルのファイルバージョンと、入出力の対象とする項目毎の項目バージョンの情報を組み込む。つまり、バージョン組込み手段114は、ファイル仕様121を参照し、ファイル入出力部品のソースに、図10に示すようなファイルバージョン情報を組み込む。なお、ファイルバージョン情報の組み込みは、スタティック変数として、公知のwhatコマンド等で参照できる形式で実施することができる。
すなわち、ファイルバージョン情報は、文字列のスタティック変数SccsIDに格納しうる。具体的には、ファイルバージョン情報は、「@(#)」の後に、ファイル名、ファイルバージョン、項目名、その項目のバージョンを含み、以後、項目名とその項目のバージョンを項目が定義されている分だけ繰り返される。
さらに、バージョン組込み手段114は、ファイル出力処理が行われる際に上記ファイルバージョン情報が出力されるような処理を、ファイル入出力部品に自動的に組み込む。図11に、出力すべきファイルバージョン情報の例を示す。ファイルバージョン情報は、ファイル名、ファイルバージョン、項目名、その項目のバージョンを含み、以後、項目名とその項目のバージョンを項目が定義されている分だけ繰り返される。このファイルバージョン情報は、出力ファイルのファイル名に「_Version」を付加したファイル名のファイル内に出力される。バージョン組込み手段114は、ファイル入出力部品のファイル出力処理がオープンされた後に、上述の出力処理が自動的に実行されるような処理を、ファイル入出力部品内に自動生成する。
関係表出力手段115は、生成手段113が生成したファイル入出力部品のソースファイル名、そのファイル入出力部品が入出力の対象とするファイルのファイルバージョン、及び入出力の対象とする項目毎の項目バージョンの情報、を関連付けた情報を、関係表123に出力する。また、生成手段113が生成したファイル入出力部品の実行ファイル名、そのファイル入出力部品が入出力の対象とするファイルのファイルバージョン、及び入出力の対象とする項目毎の項目バージョンの情報、を関連付けた情報を、関係表123に出力する。これらの情報をファイル入出力部品関係情報と称することとする。
図12に、関係表出力手段115が出力するファイル入出力部品関係情報の例を示す。ファイル入出力部品関係情報は、図12(A)に示すように、ファイル入出力部品関係情報は、生成された入出力部品のソースファイル名、使用するファイルのファイルバージョン、ファイル中の使用する項目名、その項目のバージョン、の組を含む。また、ファイル部品関係情報は、図12(B)に示すように、生成された実行ファイル名、使用するファイルのファイルバージョン、ファイル中の使用する項目名、その項目のバージョン、の組を含む。
なお、関係表123にソースファイル名又は実行ファイル名が同一の行が既に存在する場合、関係表出力手段115は、既に存在するそれらの行を一旦削除した後、上述のファイル入出力部品関係情報の出力を行う。
<プログラム生成>
プログラム生成手段116は、プログラム仕様に基づいて、プログラムのソースコードおよび実行ファイルを自動生成する。ここで生成されるプログラムのソースコードは、ユーザがファイル定義画面102及びプログラム定義画面107で入力した定義内容を反映したものとなる(図2)。プログラム生成手段116は、生成手段117、バージョン組込み手段118、関係表出力手段119を有する。
生成手段117は、リポジトリ120のプログラム仕様122を読み出す。そして、生成手段117はプログラムのソースを生成する。なお、プログラムのソースの具体的な生成方法は、本発明が解決しようとする課題のスコープから外れるため、詳細な説明を省略するが、例えば、入力処理及び出力処理については、ファイル入出力部品生成手段112が生成したファイル入出力部品を呼び出すコードを含めることができる。また、フリー記述処理については、ユーザがフリー記述画面に記入したコードを含めることができる。
また、生成手段117は、ファイル仕様参照画面で選択されていないファイル項目が各ノードの処理内で使用されている場合、プログラム生成をエラーで終了するようにすると良い。これにより、バージョン情報が組み込まれていないファイル項目が使用されないようにすることができる。
例えば、図15に示すように、生成手段117は、使用しない項目の項目名(ここでは例えば項目B)を、ダミー構造体のメンバ名として使用して実装しておく。こうすることにより、ユーザが項目Bを使用するとコンパイルエラーが発生するように構成できる。
ここで、バージョン組込み手段118は、生成手段117にてプログラムのソースが生成される際に、前記プログラムソースにプログラムバージョン情報を組み込む。つまり、バージョン組込み手段118は、プログラム仕様122を参照し、プログラムソースに図13に示すようなプログラムバージョン情報を組み込む。なお、ファイルバージョン情報の組み込みは、スタティック変数として、公知のwhatコマンド等で参照できる形式で実施することができる。
すなわち、プログラムバージョン情報は、文字列のスタティック変数SccsIDに格納し得る。具体的には、プログラムバージョン情報は、「@(#)」の後に、プログラム名、プログラムバージョン(プログラム定義全体のバージョン)、使用ファイル名、使用項目名、その項目のバージョンを含み、以後、使用ファイル名、使用項目名、その項目のバージョンの組が、使用する項目分だけ繰り返される。
生成手段117は、生成したプログラムのソースをリポジトリ120のプログラムソース126に保存する。さらに、プログラム生成部は、プログラムのソースをコンパイル、リンクし、実行形式プログラムを生成して、プログラム(実行形式)127に保存する。
関係表出力手段119は、生成手段117が生成したプログラムのソースファイル名、プログラムのバージョン(プログラム定義全体のバージョン)、を組にして、また、プログラムのソースファイル名、使用ファイル名、使用項目名、その項目のバージョン、を組にして、関係表123に出力する。さらに、関係表出力手段119は、生成手段117が生成したプログラムの実行ファイル名、プログラム定義全体のバージョン、を組にして、また、プログラムの実行ファイル名、使用ファイル名、使用項目名、その項目のバージョン、を組にして、関係表123に出力する。これらの情報をプログラム関係情報と称することとする。
図14に、関係表出力手段119が出力するプログラム関係情報の例を示す。プログラム関係情報は、図14(A)に示すように、生成されたプログラムのソースファイル名とプログラム定義全体のバージョンとの組を含む。さらに、図14(A)のプログラム関係情報は、生成されたプログラムのソースファイル名と、使用ファイル名と、使用項目名と、その項目のバージョンと、の組を含む。また、プログラム関係情報は、図14(B)に示すように、生成された実行ファイル名と、プログラム定義全体のバージョンと、の組を含む。さらに、図14(B)のプログラム関係情報は、生成された実行ファイル名と、使用ファイル名と、使用項目名と、その項目のバージョンと、の組を含む。
なお、関係表123にプログラムのソースファイル名又は実行ファイル名が同一の行が既に存在する場合、関係表出力手段115は、既に存在するそれらの行を一旦削除した後、上述のプログラム関係情報の出力を行う。
ここまでの工程によって、リポジトリ120には、ファイル仕様121、プログラム仕様122、入出力部品ソース124、入出力部品(ライブラリ)125、プログラムソース126およびプログラム(実行形式)127が蓄積されている。
そして、生成されたプログラムの実行形式ファイル、入出力部品のライブラリ、およびファイルは、運用環境140内に配置されることにより(図1の141乃至143参照)、実運用に供される。
<整合性検査>
検査手段132は、プログラムが実際に使用しようとしているファイルもしくはファイル項目のバージョンが、プログラム作成時に意図したものであるかどうかを検査する整合性検査を行う。
例えば、プログラムを生成した後に、ファイルもしくはファイル項目のみを更新すると、プログラムが想定するファイルもしくはファイル項目と、実際のファイルもしくはファイル項目と、に齟齬が生じることが有り得る。それで、ファイルもしくはファイル項目が更新された場合は、本来、プログラム側も更新を行うべきである。従来は、どのプログラムを更新しなければならないかはすぐにはわからなかったが、本実施形態では、これまで説明してきたように、ファイルもしくはファイル項目、およびプログラムにそれぞれバージョン情報を付与し、それらのあるべき対応関係を関係表123に記録している。したがって、これらの情報を利用することにより、ファイルもしくはファイル項目と、プログラムと、の整合性を容易に検査することができる。
検査手段132は、バージョン取得手段131、バージョン整合検査手段130を有する。
(バージョン情報の取得)
まず、バージョン取得手段131が、整合性の検査対象となるプログラムや入出力部品やファイルのバージョンを収集する。
S101:バージョン取得手段131は、整合性検査の対象とすべきプログラムを1つ選択する。本実施の形態では、検査対象プログラムとしてPRG_Aを選択し、PRG_Aに関して整合性検査を行うものとする。
S102:バージョン取得手段131は、プログラムの名前(本実施の形態の例では「PRG_A」)をキーにして、関係表123から、そのプログラムのバージョンを取得する。
いま、関係表123には、関係表出力手段105が出力したテーブル(図5)、関係表出力手段111が出力したテーブル(図9)、関係表出力手段115が出力したテーブル(図12)、および関係表出力手段119が出力したテーブル(図14)が格納されているものとする。バージョン取得手段131は、図9のテーブルから、プログラム名をキーとして、プログラムのバージョンを得る。
S103:バージョン取得手段131は、プログラムのソースファイル名(典型的には、プログラム名に「.c」を付加して得られる)をキーとして、図14(A)に示す関係表123のテーブルから、プログラムのソースのバージョンを取得する。
S104:バージョン取得手段131は、プログラムの実行ファイル名(典型的には、プログラム名に「.EXE」を付加して得られる)をキーとして、図14(B)に示す関係表123のテーブルから、プログラムの実行ファイルのバージョンを取得する。
S105:バージョン取得手段131は、運用環境140において実運用に供されているプログラムの実行形式ファイル141(典型的には、プログラム名に「.EXE」を付加して得られる)に対し、whatコマンドを実行する。ここで、whatコマンドとは、プログラム内に埋め込まれたスタティック変数SccsIDの値を取得するコマンドである。本実施の形態では、プログラムのSccsIDには、図13に示すようなプログラムバージョン情報(「@(#)」、プログラム名、プログラムバージョン、使用ファイル名、使用項目名、その項目のバージョンからなる)が格納されている。
S106:バージョン取得手段131は、ステップS102で取得したプログラム名をキーとして、図9に示す関係表123のテーブルから、使用ファイル名を取得する。さらに、この使用ファイル名(図5のテーブルのファイル名に相当)をキーとして、図5に示す関係表123のテーブルから、項目のバージョンを取得する。
S107:バージョン取得手段131は、ファイル入出力部品のソースファイル名(典型的には、ステップS106で取得した使用ファイル名に「.c」を付加して得られる)をキーとして、図12(A)に示す関係表123のテーブルから、項目のバージョンを取得する。
S108:バージョン取得手段131は、ファイル入出力部品の実行ファイル名(典型的には、ステップS106で取得した使用ファイル名に「.DLL」を付加して得られる)をキーとして、図12(B)に示す関係表123のテーブルから、項目のバージョンを取得する。
S109:バージョン取得手段131は、運用環境140において実運用に供されているファイル入出力部品のライブラリ142(典型的には、ステップS106で取得した使用ファイル名に「.DLL」を付加して得られる)に対し、whatコマンドを実行する。ここで、whatコマンドとは、プログラム内に埋め込まれたスタティック変数SccsIDの値を取得するコマンドである。本実施の形態では、プログラムのSccsIDには、図10に示すようなファイルバージョン情報(「@(#)」、ファイル名、ファイルバージョン、項目名、項目バージョンからなる)が格納されている。
S110:バージョン取得手段131は、運用環境140において実運用に供されているファイル143にかかるファイルバージョン情報が記述されているファイル(ファイル143のファイル名に「_Version」を付加したファイル名のフィル)を取得し、その内容であるファイルバージョン情報を読み出す。
ここまでの処理の結果、バージョン取得手段131が関係表123から取得した情報の一覧を、図16及び図17に示す。
(整合性検査)
つぎに、バージョン整合検査手段130は、S101乃至S110においてバージョン取得手段131が取得した、プログラムや入出力部品やファイルのバージョンが、互いに整合しているか否を検査する。
S201:ここでは、プログラム仕様を更新した後に、プログラム生成手段により、プロラムソース、プロブラム(実行形式)が生成されているか、また、生成したプログラム(実行形式)と同一のプログラムが、運用環境に複写されているかを、それぞれのバージョンの値を比較することで確認する。バージョンの値が全て一致していれば、更新漏れがなく、整合していると判断できる。
バージョン整合検査手段130は、S102で取得したプログラムバージョン(プログラム定義全体のバージョン)を基準として、S103で取得したプログラムソースのバージョン、S104で取得した実行形式のプログラムのバージョン、およびS105で取得した運用環境に置かれた実行形式プログラムのバージョン、をそれぞれ比較する。具体的には、図16でaとして示されているバージョンの値を比較する。
ここで、これらのバージョンが全て一致している場合は、整合がとれている。すなわち、更新漏れがないことになる。
一方、これらのバージョンが一致していない場合は、プログラムバージョン(プログラム定義全体のバージョン)と一致しなかったバージョンを有するソースファイル名、実行ファイル名、または運用環境の実行ファイル名と、それらのバージョンと、比較の基準としたプログラム名と、を図示しないメモリに蓄積する。
S202:ここでは、プログラムが使用する項目が、プログラム仕様を更新した後、あるは、プログラムを生成した後、あるいは、そのプログラムを運用環境に複写した後に更新されていないかを、プログラムが使用する項目のバージョンの値、及び、ファイル仕様を作成した際の項目のバージョンの値、入出力部品の項目のバージョンの値、ファイルを作成した際の項目のバージョンの値を比較することで確認する。バージョンの値が全て一致していれば、更新漏れがなく、整合していると判断できる。
バージョン整合検査手段130は、S106で取得したプログラム定義が使用する項目のバージョンを基準として、S107で取得した入出力部品のソースが使用する項目のバージョン、S108で取得した実行形式の入出力部品が使用する項目のバージョン、S109で取得した運用環境の入出力部品が使用する項目のバージョン、および運用環境の「_Version」が冠されたファイルから取得した項目のバージョン、をそれぞれ比較する。具体的には、図16および図17でb1またはb2として示されているバージョンの値を比較する。
ここで、これらのバージョンが全て一致している場合は、整合がとれている。すなわち、更新漏れがないことになる。
一方、これらのバージョンが一致していない場合は、プログラム定義が使用する項目のバージョンと一致しなかった項目を使用するソースファイル名、実行ファイル名、運用環境の実行ファイル名、または「_Version」が冠されたファイル名と、比較の基準としたプログラム定義の使用ファイル名と、項目名と、それらのバージョンと、を図示しないメモリに蓄積する。
S203:ここでは、ファイル仕様を更新した後に、ファイル入出力部品生成手段により、入出力部品ソース、入出力部品(ライブラリ)生成されているか、また、生成した入出力部品(ライブラリ)と同一の部品が、運用環境に複写されているかを、それぞれのバージョンの値を比較することで確認する。バージョンの値が全て一致していれば、更新漏れがなく、整合していると判断できる。
バージョン整合検査手段130は、図5に示すファイル定義のバージョンを基準として、図12(A)に示すファイル入出力部品のソースのバージョン、図12(B)に示す実行形式のファイル入出力部品のバージョン、および運用環境140の入出力部品の実行形式ファイル142のバージョン、運用環境149の「_Version」が冠されたファイルのバージョン、をそれぞれ比較する。具体的には、図17でcとして示されているバージョンの値を比較する。
ここで、これらのバージョンが全て一致している場合は、整合がとれている。すなわち、更新漏れがないことになる。
一方、これらのバージョンが一致していない場合は、ファイル定義のバージョンと一致しなかったバージョンを有するソースファイル名、実行ファイル名、運用環境の実行ファイル名、または「_Version」が冠されたファイル名と、それらのバージョンと、比較の基準としたファイル定義のファイル名と、を図示しないメモリに蓄積する。
なお、ファイル定義が複数存在する場合、バージョン整合検査手段130は、すべてのファイル定義について同様の処理を行う。
S301:バージョン整合検査手段130は、S101乃至S110、S201乃至S203にかかる一連の処理を、関係表123に記録されている全てのプログラムについて実施する。
S302:最後に、バージョン整合検査手段130は、メモリに蓄積された、バージョンが一致しなかったファイルにかかる情報を、利用者に提示する。ここで、情報の重複がある場合には重複を排除することが好ましい。なお、既存の技術を利用することにより、予め情報の重複の無駄を省くこともできる。
これにより、ユーザは、バージョンの整合がとれていないファイルがどれであるかを知ることができる。
図18に、利用者に対する情報提示方法の一例を示す。この例では、プログラム定義では、項目Cのバージョンが「1」である(図16の○印のついている項目を参照)。一方、ファイル定義、ファイル入出力部品のソースファイル、同実行ファイル、運用環境における「_Version」が冠されたファイルのそれぞれにおいては、項目Cのバージョンが「2」である。
これにより、ユーザは、プログラム定義における項目Cのバージョンが最も小さいことから、更新漏れが存在するのは、プログラム定義PRG_AのファイルFILE_Aの項目Cを使用している部分であることを知ることができる。
なお、S101乃至S110の各ステップの実行順序は一例にすぎず、任意の順序で実行しうる。同様に、S201乃至S203の各ステップの実行順序は一例にすぎず、任意の順序で実行しうる。
本実施の形態によれば、検査手段132が、プログラムから使用するファイルの項目のバージョンの整合性検査を行い、ユーザはその結果を確認できる。これにより、従来、プログラムやファイルの開発資産が多くなればなるほど多くの工数を要していた整合性検査を、比較的短時間でできるようになる。システムが大規模になればなるほど有効性は増大する。
また、本実施の形態によれば、開発資産(リポジトリ120内に蓄積されている資産)だけでなく、運用環境140に配置されている資産についても、最新の、すなわち整合性のとれたプログラム、部品(ライブラリ)が配置され、ファイルが作成されていることを容易に確認できる。そのため、配置漏れ等の運用ミスの発生を抑制できる。
さらに、本実施の形態によれば、プログラムが参照するファイルを項目レベルで把握できる。また、項目単位のインタフェースをもつファイル入出力部品を使用することで、プログラムで使用していない項目に変更が生じても、プログラムは影響を受けず、修正するプログラム数を最小化できる。
また、本実施の形態によれば、あるファイル仕様を変更後に整合性検証を実施すれば、そのファイルを使用している、すなわち変更が必要なプログラムが表示される。これにより、変更しなければならないプログラムを漏れなく把握できる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態では、本発明を主にハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
本発明は、例えば以下のように表し得る。
(付記1)
プログラムによるデータの入出力の対象となるファイルであって、1以上の項目を含む前記ファイルについて、前記項目と、前記項目のバージョンと、を定義してファイル仕様とし、前記ファイル仕様のバージョンとともに出力するファイル定義手段と、
前記プログラムの処理内容と、前記プログラムが使用する前記項目と、前記項目の前記バージョンと、を定義してプログラム仕様とし、前記プログラム仕様のバージョンとともに出力するプログラム定義手段と、
前記ファイル仕様に従って、前記ファイルから前記項目を入出力するためのファイル入出力部品のソースコードまたは実行形式ファイルを生成し、前記ファイル入出力部品のバージョンと、前記ファイル入出力部品が使用する前記項目の前記バージョンと、保持させて出力するファイル入出力部品生成手段と、
前記プログラム仕様に従って、前記プログラムのソースコードまたは実行形式ファイルを生成し、前記プログラムのバージョンと、前記プログラムが使用する前記項目の前記バージョンと、を保持させて出力するプログラム生成手段と、
前記ファイル仕様、前記プログラム仕様、前記ファイル入出力部品、前記プログラムについて、これらのバージョン及びこれらがそれぞれ含み又は使用する前記項目の前記バージョンのうちいずれか2以上を比較することにより、整合性を検査する検査手段と、を含む
ソフトウェア開発支援装置。
(付記2)
前記検査手段は、前記プログラム仕様の前記バージョン、前記プログラムの前記ソースコードの前記バージョン、前記プログラムの前記実行形式ファイルの前記バージョン、及び実際の運用環境に配置されている前記プログラムの前記実行形式ファイルのバージョン、のいずれか2以上を比較する
付記1記載のソフトウェア開発支援装置。
(付記3)
前記検査手段は、前記プログラム仕様が使用する前記項目の前記バージョン、前記ファイル入出力部品の前記ソースコードが使用する前記項目の前記バージョン、前記ファイル入出力部品の前記実行形式ファイルが使用する前記項目の前記バージョン、及び実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、のいずれか2以上を比較することにより、
付記1又は2記載のソフトウェア開発支援装置。
(付記4)
前記検査手段は、前記ファイル仕様の前記バージョン、前記前記ファイル入出力部品の前記ソースコードの前記バージョン、前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、及び前記運用環境に配置されている前記ファイルのバージョン、のいずれか2以上を比較することにより、
付記1乃至3いずれか1項記載のソフトウェア開発支援装置。
(付記5)
前記検査手段は、前記ファイル仕様の前記項目の前記バージョン、前記前記ファイル入出力部品の前記ソースコードの前記項目の前記バージョン、前記ファイル入出力部品の前記実行形式ファイルの前記項目の前記バージョン、実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記項目の前記バージョン、及び前記運用環境に配置されている前記ファイルの前記項目のバージョン、のいずれか2以上を比較することにより、
付記1乃至4いずれか1項記載のソフトウェア開発支援装置。
(付記6)
関係表を保持するリポジトリをさらに有し、
前記ファイル定義手段は、前記ファイル仕様の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させ、
前記プログラム定義手段は、前記プログラム仕様の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させ、
前記ファイル入出力部品生成手段は、前記ファイル入出力部品の前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させ、
前記プログラム生成手段は、前記プログラムの前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させる
付記1乃至5いずれか1項記載のソフトウェア開発支援装置。
(付記7)
前記ファイル入出力部品生成手段は、前記ファイル入出力部品の前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方に、前記ソースコードまたは前記実行形式ファイルの前記バージョンと、前記項目の前記バージョンと、を外部から参照可能な値として保持させ、
前記プログラム生成手段は、前記プログラムの前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方に、前記ソースコードまたは前記実行形式ファイルの前記バージョンと、前記項目の前記バージョンと、を外部から参照可能な値として保持させる
付記1乃至6いずれか1項記載のソフトウェア開発支援装置。
(付記8)
プログラムによるデータの入出力の対象となるファイルであって、1以上の項目を含む前記ファイルについて、前記項目と、前記項目のバージョンと、を定義してファイル仕様とし、前記ファイル仕様のバージョンとともに出力するファイル定義ステップと、
前記プログラムの処理内容と、前記プログラムが使用する前記項目と、前記項目の前記バージョンと、を定義してプログラム仕様とし、前記プログラム仕様のバージョンとともに出力するプログラム定義ステップと、
前記ファイル仕様に従って、前記ファイルから前記項目を入出力するためのファイル入出力部品のソースコードまたは実行形式ファイルを生成し、前記ファイル入出力部品のバージョンと、前記ファイル入出力部品が使用する前記項目の前記バージョンと、保持させて出力するファイル入出力部品生成ステップと、
前記プログラム仕様に従って、前記プログラムのソースコードまたは実行形式ファイルを生成し、前記プログラムのバージョンと、前記プログラムが使用する前記項目の前記バージョンと、を保持させて出力するプログラム生成ステップと、
前記ファイル仕様、前記プログラム仕様、前記ファイル入出力部品、前記プログラムについて、これらのバージョン及びこれらがそれぞれ含み又は使用する前記項目の前記バージョンのうちいずれか2以上を比較することにより、整合性を検査する検査ステップと、を含む
ソフトウェア開発支援方法。
(付記9)
前記検査ステップは、前記プログラム仕様の前記バージョン、前記プログラムの前記ソースコードの前記バージョン、前記プログラムの前記実行形式ファイルの前記バージョン、及び実際の運用環境に配置されている前記プログラムの前記実行形式ファイルのバージョン、のいずれか2以上を比較する
付記8記載のソフトウェア開発支援方法。
(付記10)
前記検査ステップは、前記プログラム仕様が使用する前記項目の前記バージョン、前記ファイル入出力部品の前記ソースコードが使用する前記項目の前記バージョン、前記ファイル入出力部品の前記実行形式ファイルが使用する前記項目の前記バージョン、及び実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、のいずれか2以上を比較することにより、
付記8又は9記載のソフトウェア開発支援方法。
(付記11)
前記検査ステップは、前記ファイル仕様の前記バージョン、前記前記ファイル入出力部品の前記ソースコードの前記バージョン、前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、及び前記運用環境に配置されている前記ファイルのバージョン、のいずれか2以上を比較することにより、
付記8乃至10いずれか1項記載のソフトウェア開発支援方法。
(付記12)
前記検査ステップは、前記ファイル仕様の前記項目の前記バージョン、前記前記ファイル入出力部品の前記ソースコードの前記項目の前記バージョン、前記ファイル入出力部品の前記実行形式ファイルの前記項目の前記バージョン、実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記項目の前記バージョン、及び前記運用環境に配置されている前記ファイルの前記項目のバージョン、のいずれか2以上を比較することにより、
付記8乃至11いずれか1項記載のソフトウェア開発支援方法。
(付記13)
前記ファイル定義ステップは、前記ファイル仕様の前記バージョンと、前記項目の前記バージョンと、をリポジトリ内の関係表に保持させ、
前記プログラム定義ステップは、前記プログラム仕様の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させ、
前記ファイル入出力部品生成ステップは、前記ファイル入出力部品の前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させ、
前記プログラム生成ステップは、前記プログラムの前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させる
付記8乃至12いずれか1項記載のソフトウェア開発支援方法。
(付記14)
前記ファイル入出力部品生成ステップは、前記ファイル入出力部品の前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方に、前記ソースコードまたは前記実行形式ファイルの前記バージョンと、前記項目の前記バージョンと、を外部から参照可能な値として保持させ、
前記プログラム生成ステップは、前記プログラムの前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方に、前記ソースコードまたは前記実行形式ファイルの前記バージョンと、前記項目の前記バージョンと、を外部から参照可能な値として保持させる
付記8乃至13いずれか1項記載のソフトウェア開発支援方法。
(付記15)
付記8乃至14記載いずれか1項の方法をコンピュータに実行させるためのプログラム。
100 ソフトウェア開発支援装置
101 ファイル定義手段
102 ファイル定義画面
103 バージョン情報作成手段
104 ファイル仕様出力手段
105 関係表出力手段
106 プログラム定義手段
107 プログラム定義画面
108 ファイル仕様参照手段
109 バージョン情報作成手段
110 プログラム仕様出力手段
111 関係表出力手段
112 ファイル入出力部品生成手段
113 生成手段
114 バージョン組込み手段
115 関係表出力手段
116 プログラム生成手段
117 生成手段
118 バージョン組込み手段
119 関係表出力手段
120 リポジトリ
121 ファイル仕様
122 プログラム仕様
123 関係表
124 入出力部品ソース
125 入出力部品(ライブラリ)
126 プログラムソース
127 プログラム(実行形式)
130 バージョン整合検査手段
131 バージョン取得手段
132 検査手段
140 運用環境
141 プログラム(実行形式)
142 入出力部品(ライブラリ)
143 ファイル

Claims (10)

  1. プログラムによるデータの入出力の対象となるファイルであって、1以上の項目を含む前記ファイルについて、前記項目と、前記項目のバージョンと、を定義してファイル仕様とし、前記ファイル仕様のバージョンとともに出力するファイル定義手段と、
    前記プログラムの処理内容と、前記プログラムが使用する前記項目と、前記項目の前記バージョンと、を定義してプログラム仕様とし、前記プログラム仕様のバージョンとともに出力するプログラム定義手段と、
    前記ファイル仕様に従って、前記ファイルから前記項目を入出力するためのファイル入出力部品のソースコードまたは実行形式ファイルを生成し、前記ファイル入出力部品のバージョンと、前記ファイル入出力部品が使用する前記項目の前記バージョンと、保持させて出力するファイル入出力部品生成手段と、
    前記プログラム仕様に従って、前記プログラムのソースコードまたは実行形式ファイルを生成し、前記プログラムのバージョンと、前記プログラムが使用する前記項目の前記バージョンと、を保持させて出力するプログラム生成手段と、
    前記ファイル仕様、前記プログラム仕様、前記ファイル入出力部品、前記プログラムについて、これらのバージョン及びこれらがそれぞれ含み又は使用する前記項目の前記バージョンのうちいずれか2以上を比較することにより、整合性を検査する検査手段と、を含む
    ソフトウェア開発支援装置。
  2. 前記検査手段は、前記プログラム仕様の前記バージョン、前記プログラムの前記ソースコードの前記バージョン、前記プログラムの前記実行形式ファイルの前記バージョン、及び実際の運用環境に配置されている前記プログラムの前記実行形式ファイルのバージョン、のいずれか2以上を比較する
    請求項1記載のソフトウェア開発支援装置。
  3. 前記検査手段は、前記プログラム仕様が使用する前記項目の前記バージョン、前記ファイル入出力部品の前記ソースコードが使用する前記項目の前記バージョン、前記ファイル入出力部品の前記実行形式ファイルが使用する前記項目の前記バージョン、及び実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、のいずれか2以上を比較することにより、
    請求項1又は2記載のソフトウェア開発支援装置。
  4. 前記検査手段は、前記ファイル仕様の前記バージョン、前記前記ファイル入出力部品の前記ソースコードの前記バージョン、前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記バージョン、及び前記運用環境に配置されている前記ファイルのバージョン、のいずれか2以上を比較することにより、
    請求項1乃至3いずれか1項記載のソフトウェア開発支援装置。
  5. 前記検査手段は、前記ファイル仕様の前記項目の前記バージョン、前記前記ファイル入出力部品の前記ソースコードの前記項目の前記バージョン、前記ファイル入出力部品の前記実行形式ファイルの前記項目の前記バージョン、実際の運用環境に配置されている前記ファイル入出力部品の前記実行形式ファイルの前記項目の前記バージョン、及び前記運用環境に配置されている前記ファイルの前記項目のバージョン、のいずれか2以上を比較することにより、
    請求項1乃至4いずれか1項記載のソフトウェア開発支援装置。
  6. 関係表を保持するリポジトリをさらに有し、
    前記ファイル定義手段は、前記ファイル仕様の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させ、
    前記プログラム定義手段は、前記プログラム仕様の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させ、
    前記ファイル入出力部品生成手段は、前記ファイル入出力部品の前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させ、
    前記プログラム生成手段は、前記プログラムの前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方の前記バージョンと、前記項目の前記バージョンと、を前記関係表に保持させる
    請求項1乃至5いずれか1項記載のソフトウェア開発支援装置。
  7. 前記ファイル入出力部品生成手段は、前記ファイル入出力部品の前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方に、前記ソースコードまたは前記実行形式ファイルの前記バージョンと、前記項目の前記バージョンと、を外部から参照可能な値として保持させ、
    前記プログラム生成手段は、前記プログラムの前記ソースコードまたは前記実行形式ファイルの少なくともいずれか一方に、前記ソースコードまたは前記実行形式ファイルの前記バージョンと、前記項目の前記バージョンと、を外部から参照可能な値として保持させる
    請求項1乃至6いずれか1項記載のソフトウェア開発支援装置。
  8. プログラムによるデータの入出力の対象となるファイルであって、1以上の項目を含む前記ファイルについて、前記項目と、前記項目のバージョンと、を定義してファイル仕様とし、前記ファイル仕様のバージョンとともに出力するファイル定義ステップと、
    前記プログラムの処理内容と、前記プログラムが使用する前記項目と、前記項目の前記バージョンと、を定義してプログラム仕様とし、前記プログラム仕様のバージョンとともに出力するプログラム定義ステップと、
    前記ファイル仕様に従って、前記ファイルから前記項目を入出力するためのファイル入出力部品のソースコードまたは実行形式ファイルを生成し、前記ファイル入出力部品のバージョンと、前記ファイル入出力部品が使用する前記項目の前記バージョンと、保持させて出力するファイル入出力部品生成ステップと、
    前記プログラム仕様に従って、前記プログラムのソースコードまたは実行形式ファイルを生成し、前記プログラムのバージョンと、前記プログラムが使用する前記項目の前記バージョンと、を保持させて出力するプログラム生成ステップと、
    前記ファイル仕様、前記プログラム仕様、前記ファイル入出力部品、前記プログラムについて、これらのバージョン及びこれらがそれぞれ含み又は使用する前記項目の前記バージョンのうちいずれか2以上を比較することにより、整合性を検査する検査ステップと、を含む
    ソフトウェア開発支援方法。
  9. 前記検査ステップは、前記プログラム仕様の前記バージョン、前記プログラムの前記ソースコードの前記バージョン、前記プログラムの前記実行形式ファイルの前記バージョン、及び実際の運用環境に配置されている前記プログラムの前記実行形式ファイルのバージョン、のいずれか2以上を比較する
    請求項8記載のソフトウェア開発支援方法。
  10. 請求項8又は9記載の方法をコンピュータに実行させるためのプログラム。
JP2013237026A 2013-11-15 2013-11-15 ソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラム Active JP6287093B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013237026A JP6287093B2 (ja) 2013-11-15 2013-11-15 ソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013237026A JP6287093B2 (ja) 2013-11-15 2013-11-15 ソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2015097029A true JP2015097029A (ja) 2015-05-21
JP6287093B2 JP6287093B2 (ja) 2018-03-07

Family

ID=53374293

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013237026A Active JP6287093B2 (ja) 2013-11-15 2013-11-15 ソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6287093B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017027277A (ja) * 2015-07-21 2017-02-02 キヤノン株式会社 情報処理装置、方法およびプログラム
JP2019212125A (ja) * 2018-06-06 2019-12-12 Ipoc株式会社 情報処理装置、情報処理システム及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09244882A (ja) * 1996-03-05 1997-09-19 Mitsubishi Electric Corp ロジック自動生成装置
JP2004005058A (ja) * 2002-05-30 2004-01-08 Mitsubishi Electric Corp プログラムモジュールのバージョン管理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09244882A (ja) * 1996-03-05 1997-09-19 Mitsubishi Electric Corp ロジック自動生成装置
JP2004005058A (ja) * 2002-05-30 2004-01-08 Mitsubishi Electric Corp プログラムモジュールのバージョン管理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017027277A (ja) * 2015-07-21 2017-02-02 キヤノン株式会社 情報処理装置、方法およびプログラム
JP2019212125A (ja) * 2018-06-06 2019-12-12 Ipoc株式会社 情報処理装置、情報処理システム及びプログラム
JP7058007B2 (ja) 2018-06-06 2022-04-21 Ipoc株式会社 情報処理装置、情報処理システム及びプログラム

Also Published As

Publication number Publication date
JP6287093B2 (ja) 2018-03-07

Similar Documents

Publication Publication Date Title
US9940219B2 (en) Detecting merge conflicts and compilation errors in a collaborative integrated development environment
US10915429B2 (en) Employing code overlays to facilitate software development
US9934385B2 (en) System and method for implementing application policies among development environments
US9092586B1 (en) Version management mechanism for fluid guard ring PCells
US8683430B2 (en) Synchronizing development code and deployed executable versioning within distributed systems
US20120324417A1 (en) Systems and methods for incremental software development
KR20130135271A (ko) 코드 복제 통지 및 아키텍처 변경 가시화
US10747653B2 (en) Software testing systems and methods
US10747852B1 (en) License compliance analysis platform
CN112711403B (zh) 游戏开发同步的方法、装置、计算机设备和存储介质
US20140298290A1 (en) Identification of code changes using language syntax and changeset data
US11537989B2 (en) Dynamically controlling case model structure using case fragments
US9442719B2 (en) Regression alerts
JP6287093B2 (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラム
US9720690B2 (en) Software architecture by untangling undesired code level dependencies using code refactoring
CN117312270A (zh) 一种数据库自动化构建和部署的变更管理方法
JP2014137748A (ja) 文書データ管理システム、文書データ管理方法、及び文書データ管理プログラム
JP6058498B2 (ja) コンパイル方法、プログラム及びコンパイル装置
Ramkisoen et al. Pareco: patched clones and missed patches among the divergent variants of a software family
US20210389933A1 (en) Creating an app method and system
JP6006577B2 (ja) デグレードテスト支援システム、デグレードテスト支援方法及びデグレードテスト支援プログラム
JP2015084146A (ja) プログラム開発サポート装置および方法
Bache et al. Specification by example with gui tests-how could that work?
JPWO2018174163A1 (ja) 開発運用支援システム、開発管理サーバ、運用管理サーバ、それらの方法及びプログラム
JP2013114443A (ja) 資材リリース確認支援システム、資材リリース確認支援方法、資材リリース確認支援プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170725

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170922

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180122

R150 Certificate of patent or registration of utility model

Ref document number: 6287093

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150