JP2018116517A - 開発支援装置、開発支援方法、およびプログラム - Google Patents

開発支援装置、開発支援方法、およびプログラム Download PDF

Info

Publication number
JP2018116517A
JP2018116517A JP2017007198A JP2017007198A JP2018116517A JP 2018116517 A JP2018116517 A JP 2018116517A JP 2017007198 A JP2017007198 A JP 2017007198A JP 2017007198 A JP2017007198 A JP 2017007198A JP 2018116517 A JP2018116517 A JP 2018116517A
Authority
JP
Japan
Prior art keywords
program
unit
degree
correspondence
identity
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
Application number
JP2017007198A
Other languages
English (en)
Inventor
隆史 小河原
Takashi Ogawara
隆史 小河原
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.)
SYSTEMS CO Ltd
Original Assignee
SYSTEMS CO Ltd
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 SYSTEMS CO Ltd filed Critical SYSTEMS CO Ltd
Priority to JP2017007198A priority Critical patent/JP2018116517A/ja
Publication of JP2018116517A publication Critical patent/JP2018116517A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】従来装置では、2以上のプログラム群を対象とする開発を効率的に行えなかった。
【解決手段】稼働先を識別する稼働先識別子に対応付けられた2以上のプログラムを有する2以上のプログラム群が格納されるプログラム群格納部と、プログラム群を構成する部分であり、予め決められた単位であるプログラム単位で、2以上のプログラム群の間の対応を検出するプログラム単位対応検出部と、プログラム単位対応検出部が対応すると判断した2以上のプログラム群のプログラム単位を比較し、同一の度合いである同一度を取得する同一度取得部と、プログラム単位対応検出部が検出した対応の結果および同一度取得部が取得した同一度を、2以上のプログラム群の間で対比可能な態様で出力する比較結果出力部とを具備する開発支援装置1により、開発者は、2以上のプログラム群を対象とする開発を効率的に行える。
【選択図】図1

Description

本発明は、ソフトウェアの開発を支援する開発支援装置等に関するものである。開発とは、通常、マイグレーションであるが、テスト、メンテナンス等を含むと考えてもよい。
従来、旧言語のソフトウェアを構成する各FU(Functional Unit)を分析し、その分析の結果を基に、旧言語のFU間の呼出し依存関係を把握し、把握された呼出し依存関係に基づいて、旧言語のFUから新言語のFUへのFU変換と、正しくFU変換が行われたかどうかのテストを行うソフトウェアマイグレーションシステムが存在した(例えば、特許文献1参照)。
特開2009−245066号公報
例えば、会社や団体等の組織でコンピュータシステムを更新する場合、一般に、2以上のプログラムの集合であるプログラム群を対象にマイグレーションを行う必要がある。さらには、一の組織が2以上の部門(工場、支社等)を有していて、各部門でプログラム群が稼働しているような状況であれば、2以上のプログラム群がマイグレーションの対象となり得る。かかる2以上のプログラム群は、元は同じプログラム群であっても、部門ごとにカスタマイズされた結果、部分的な相違が生じている場合が少なくない。このため、従来は、2以上のプログラム群を別々にマイグレーションしており、効率が悪かった。そして、このことは、マイグレーションに限らず、例えば、テスト、またはメンテナンスなど、ソフトウェアの開発全般に当てはまると考えてもよい。
そこで、本発明は、2以上のプログラム群を対象とする開発を効率的に行えるように、開発者を支援することを目的としている。
本第一の発明の開発支援装置は、ソフトウェアの稼働先を識別する稼働先識別子に対応付けられた2以上のプログラムを有する2以上のプログラム群が格納されるプログラム群格納部と、プログラム群を構成する部分であり、予め決められた単位であるプログラム単位で、2以上のプログラム群の間の対応を検出するプログラム単位対応検出部と、プログラム単位対応検出部が対応すると判断した2以上のプログラム群のプログラム単位を比較し、同一の度合いである同一度を取得する同一度取得部と、プログラム単位対応検出部が検出した対応の結果、および同一度取得部が取得した同一度を、2以上のプログラム群の間で対比可能な態様で出力する比較結果出力部とを具備する開発支援装置である。
かかる構成により、開発者は、2以上のプログラム群の間のプログラム単位の対応および同一度を認知することにより、2以上のプログラム群を対象とする開発を効率的に行える。
また、本第二の発明の開発支援装置は、第一の発明に対して、2以上の各プログラム群が有する2以上のプログラムは、マイグレーション対象のマイグレーションの前のプログラムである開発支援装置である。
かかる構成により、開発者は、マイグレーション前の2以上のプログラム群の間のプログラム単位の対応および同一度を認知することにより、2以上のプログラム群を対象とするマイグレーションを効率的に行える。
また、本第三の発明の開発支援装置は、第一の発明に対して、2以上の各プログラム群が有する2以上のプログラムは、マイグレーションの後のプログラムである開発支援装置である。
かかる構成により、開発者は、マイグレーション後の2以上のプログラム群の間のプログラム単位の対応および同一度を認知することにより、マイグレーション後の2以上のプログラム群を対象とするテストを効率的に行える。
また、本第四の発明の開発支援装置は、第一の発明に対して、2以上の各プログラム群が有する2以上のプログラムは、マイグレーション対象のマイグレーションの前のプログラムであり、2以上の各プログラム群が有する2以上のプログラムをマイグレーションした結果である2以上の後プログラムを有する2以上の各後プログラム群を、稼働先識別子に対応付けて格納している後プログラム群格納部をさらに具備し、同一度取得部は、プログラム単位対応検出部が対応すると判断した2以上のプログラム群に対応する2以上の各後プログラム群のプログラム単位をも比較し、同一の度合いである同一度を取得し、比較結果出力部は、同一度取得部が取得した後プログラム群のプログラム単位の同一度をも、2以上の後プログラム群の間で対比可能な態様で出力する開発支援装置である。
かかる構成により、開発者は、マイグレーション前の2以上のプログラム群の間のプログラム単位の対応および同一度を認知することにより、マイグレーション前の2以上のプログラム群を対象とするマイグレーションを効率的に行えるのに加えて、マイグレーション後の2以上のプログラム群に関するプログラム単位の比較結果を認知することにより、マイグレーション後の2以上のプログラム群を対象とするテストをも効率的に行える。
また、本第五の発明の開発支援装置は、第二から第四いずれか1つの発明に対して、マイグレーション前のプログラムを識別する前識別子と、マイグレーション前のプログラムをマイグレーションした後のプログラムを識別する後識別子との対応が格納される前後対応格納部をさらに具備し、比較結果出力部は、同一度取得部が取得した同一度を、後識別子に対応付けて出力する開発支援装置である。
かかる構成により、開発者は、後識別子に対応付いたプログラム単位の同一度を認知することにより、マイグレーション後の2以上のプログラム群を対象とするテストまたはメンテナンスをも効率的に行える。
また、本第六の発明の開発支援装置は、第三から第五いずれか1つの発明に対して、同一度取得部が取得した同一度を用いて、テストすべきマイグレーション後のプログラムを識別する1以上の後識別子を取得するテスト対象取得部をさらに具備し、比較結果出力部は、テスト対象取得部が取得した1以上の後識別子を出力する開発支援装置である。
かかる構成により、開発者は、マイグレーション後の2以上のプログラム群のうちどのプログラム単位をテストすればよいかを容易に認知できる。
また、本第七の発明の開発支援装置は、第六の発明に対して、比較結果出力部は、テスト対象取得部が取得した1以上の後識別子を他の後識別子とは区別可能な態様で出力する開発支援装置である。
かかる構成により、開発者は、マイグレーション後の2以上のプログラム群のプログラム単位の対応に加えて、そのうちどのプログラム単位をテストすればよいかを容易に認知できる。
また、本第七の発明の開発支援装置は、第一から第六いずれか1つの発明に対して、プログラム単位は、ファイル単位、およびファイル内のルーチン単位であり、プログラム単位対応検出部は、ファイル単位およびルーチン単位で、2以上のプログラム群の間の対応を検出し、同一度取得部は、プログラム単位対応検出部が対応すると判断した2以上のプログラム群のファイル単位およびルーチン単位を比較し、同一の度合いである同一度を取得する開発支援装置である。
かかる構成により、開発者は、2以上のプログラム群の間のファイル単位およびルーチン単位の間の対応および同一度を認知することにより、2以上のプログラム群を対象とする開発を効率的に行える。
また、本第八の発明の開発支援装置は、第一から第七いずれか1つの発明に対して、同一度は、3以上の値を採り得る類似度である開発支援装置である。
かかる構成により、開発者は、2以上のプログラム群の間のプログラム単位の対応および類似度を認知することにより、2以上のプログラム群を対象とする開発を効率的に行える。
本発明によれば、2以上のプログラム群を対象とする開発を効率的に行えるように、開発者を支援できる。
実施の形態における開発支援装置のブロック図 同開発支援装置の動作を説明するフローチャート 同対応検出処理を説明するフローチャート 同同一度取得処理を説明するフローチャート 同プログラム群のデータ構造図 同同一度群情報の一出力例を示す図 同同一度群情報の他の出力例を示す図 同同一度群情報のその他の出力例を示す図 同2つのコード群の出力例を示す図 同同一度群情報の別の出力例を示す図 同コンピュータシステムの外観図 同コンピュータシステムの内部構成の一例を示す図
以下、開発支援装置の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
本実施の形態において、ソフトウェアの稼働先を識別する2以上の各稼働先識別子に対応付けて、プログラム群が格納されており、2以上のプログラム群の間の対応を予め決められたプログラム単位で取得し、当該対応に従って、同一度を算出し、同一度を、2以上の稼働先間で、比較可能な態様で出力する開発支援装置1について説明する。
また、上記のような開発支援装置1であって、支援は、プログラム群のマイグレーションの支援であり、マイグレーション前のプログラム群を比較する開発支援装置1について説明する。
また、上記のような開発支援装置1であって、支援は、プログラム群のマイグレーションの支援であり、マイグレーション後のプログラム群を比較する開発支援装置1について説明する。
また、上記のような開発支援装置1であって、支援は、プログラム群のマイグレーションの支援であり、マイグレーション前、およびマイグレーション後のプログラム群を比較する開発支援装置1について説明する。
また、上記のような開発支援装置1であって、マイグレーション後の比較結果を出す開発支援装置1について説明する。
また、上記のような開発支援装置1であって、プログラム単位は、一のプログラムの全部に対応するファイル単位、およびプログラム内のルーチン単位の2段階を含む開発支援装置1について説明する。
また、上記のような開発支援装置1であって、同一度は、類似度である(例えば、0と1の間の情報も含み得る)開発支援装置1について説明する。
図1は、本実施の形態における開発支援装置1のブロック図である。開発支援装置1は、例えば、ソフトウェアの開発を行う開発会社のPCであるが、サーバなどでもよく、そのタイプは問わない。
ただし、開発支援装置1は、スタンドアロンとは限らず、例えば、LANやインターネット等のネットワーク、無線または有線の通信回線などを介して、1または2以上の端末装置(図示しない)と接続されていてもよい。この場合、開発支援装置1は、例えば、サーバであり、端末装置は、例えば、PCである。すなわち、本発明の開発支援方法は、ハードウェア構成には依存しない。
開発支援装置1は、格納部11、受付部12、処理部13、および出力部14を備える。格納部11は、プログラム群格納部111、後プログラム群格納部112、および前後対応格納部113を備える。処理部13は、プログラム単位対応検出部131、同一度取得部132、およびテスト対象取得部133を備える。出力部14は、比較結果出力部141を備える。
格納部11は、各種の情報を格納し得る。各種の情報とは、例えば、プログラム、プログラム群、後プログラム群、前後対応情報などである。プログラムとは、コンピュータに行わせる処理の手順を、コンピュータが解読可能な言語で記述したソフトウェアである。プログラムは、通常、コード(命令文)または関数のうち1種類以上の情報の集合で構成される。一のプログラムを構成する情報の集合の全体のファイルといい、ある機能を果たす一まとまりの部分をルーチンという。なお、プログラム群等については後述する。
プログラム群格納部111には、2以上のプログラム群が格納される。2以上のプログラム群は、少なくとも異なるハードウェア上で稼働していたプログラムの集合である。2以上の各プログラム群(以下、単にプログラム群と記す場合がある)は、稼働先識別子に対応付けられている。なお、対応付けられていることは、プログラム群が稼働先識別子を有する場合も含む。稼働先識別子とは、ソフトウェアの稼働先を識別する情報である。稼働先は、例えば、一の組織(会社、団体等)の部門(工場、支社等)であってもよいし、例えば、一の組織または一の部門等のハードウェアであってもよい。具体的な稼働先は、例えば、A社のB工場、A社のC工場、A社のB工場のXコンピュータシステム、A社のB工場のYコンピュータシステムなどである。かかる稼働先の稼働先識別子は、例えば、"AB"、AC"、"ABX"、"ABY"などでもよく、その表現形式は問わない。
プログラム群とは、一の稼働先識別子に対応付けられた2以上のプログラムの集合をいう。プログラム群は、マイグレーションされる前の2以上のプログラムの集合でもよいし、マイグレーションされた後の2以上のプログラムの集合でもよい。以下では、一の稼働先識別子に対応付けられた2以上のプログラムの集合であり、マイグレーションされる前の2以上のプログラムの集合を、マイグレーション前のプログラム群、または前プログラム群、または単にプログラム群と記す場合がある。また、一の稼働先識別子に対応付けられた2以上のプログラムの集合であり、マイグレーションされた後の2以上のプログラムの集合を、マイグレーション後のプログラム群、または後プログラム群と記す場合がある。
マイグレーションとは、あるシステムから別のシステムへのプログラムの移行である。マイグレーションは、例えば、あるOS向けに開発されたプログラムを別のOS上で動作するようにしたり、古いプログラミング言語を新しいプログラミング言語に変換したりすることであってもよい。開発者は、通常、プログラムの修正、修正後のプログラムが移行先で動作するかのテスト、といった作業を行う必要がある。
プログラム群格納部111に格納される2以上の各プログラム群は、通常、前プログラム群であるが、後プログラム群でもよい。プログラム群格納部111に格納される2以上の各プログラム群が前プログラム群である場合、2以上の後プログラム群を後プログラム群格納部112に格納してもよい。プログラム群格納部111に格納される2以上の各プログラム群が後プログラム群である場合には、後プログラム群格納部112は省略して構わない。
後プログラム群格納部112には、2以上の後プログラム群が格納される。当該2以上の各後プログラム群は、プログラム群格納部111に格納されている2以上の各プログラム群を構成する2以上のプログラムをマイグレーションした結果である。
前後対応格納部113には、前識別子と後識別子との対応を示す前後対応情報が格納される。前識別子とは、マイグレーションする前のプログラムを識別する情報である。後識別子とは、マイグレーションした後のプログラムを識別する情報である。
例えば、前識別子は、一のプログラムを識別する共通の文字列(例えば"AB0000"等)と、当該プログラムがマイグレーションされる前のプログラムであることを示す文字列(例えば"前"等)を有していてもよい(例えば"AB0000_前"等)。なお、文字列とは、一の文字のみの場合も含む。また、文字は、数字や記号でもよい(以下同様)。後識別子は、当該共通の文字列と、当該プログラムがマイグレーションされた後のプログラムであることを示す文字列(例えば"後"等)を有していてもよい(例えば"B0000_後"等)。この場合、前識別子と後識別子との対応は、共通の文字列で示されるため、前後対応情報、およびそれを格納する前後対応格納部113は、省略してもよい。
または、前識別子は、一のプログラムを識別する共通の文字列のみで構成され(例えば"AB0000"等)、後識別子は、当該共通の文字列と、当該プログラムがマイグレーションされた後のプログラムであることを示す文字列とで構成されてもよい(例えば"AB0000_後"等)。
ただし、前識別子および後識別子は、上記のような共通の文字列を含まない別々の文字列であってもよく、その表現形式は問わない。また、前後対応情報のデータ構造も問わない。
受付部12は、各種の情報を受け付ける。各種の情報とは、例えば、出力指示である。出力指示とは、後述する同一度群情報の出力の指示である。各種の情報には、マイグレーションやメンテナンス等に関連する各種の指示も含まれてよい。一般に、受け付けとは、キーボード等の入力デバイスから入力された情報の受け付け、ネットワーク等を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。受付部12による受け付けは、通常、キーボード等の入力デバイスを介した受け付けであるが、端末装置からの受信でもよく、その態様は問わない。
受付部12は、例えば、出力指示を、当該端末装置を識別する端末識別子と対に端末装置から受信してもよい。なお、対に受信することは、出力指示が端末識別子を有する場合も含む。
処理部13は、各種の処理を行う。各種の処理とは、例えば、プログラム単位対応検出部131、同一度取得部132、およびテスト対象取得部133などの処理である。各種の処理には、マイグレーション等に関連する上記各種の指示に応じた処理も含まれる。また、処理部13は、フローチャートで説明する各種の判別なども行う。
プログラム単位対応検出部131は、2以上のプログラム群の間の対応をプログラム単位で検出する。プログラム単位とは、プログラム群を構成する部分であり、予め決められた単位である。プログラム単位は、例えば、ファイル単位、ルーチン単位などであるが、これに限らない。ファイル単位とは、一のプログラムの全体を単位とする場合をいい、ルーチン単位とは、プログラムに含まれるルーチンを単位とする場合をいう。プログラム単位は、ファイル単位またはルーチン単位のうち1以上の単位を含んでいてもよい。
プログラム単位対応検出部131は、例えば、異なるプログラム群から選択される2つのプログラム単位(例えば、i番目のプログラム群から選択される1つのプログラム単位と、i番目以外のプログラム群から選択される1つのプログラム単位との、2つのプログラム単位:図3参照)の可能な組み合わせについて、対応するか否かを判断し、対応すると判断した2つのプログラム単位を示す2つのプログラム単位識別子の対(以下、プログラム単位識別子対と記す場合がある)を蓄積する処理を繰り返すことで、プログラム単位対応情報を取得してもよい。
プログラム単位識別子とは、プログラム単位を識別する情報である。プログラム単位識別子は、具体的には、ファイルを識別するファイル識別子、ルーチンを識別するルーチン識別子などであるが、これに限らない。プログラム単位対応情報とは、2以上のプログラム群の間のプログラム単位の対応を示す情報である。プログラム単位対応情報は、例えば、プログラム単位識別子対の集合で構成されるが、そのデータ構造は問わない。
プログラム単位対応検出部131は、2つのプログラム単位が対応するか否かを、例えば、当該2つのプログラム単位を識別する2つのプログラム単位識別子を用いて判断してもよい。具体的には、プログラム単位対応検出部131は、一方のプログラム単位識別子を構成する文字列と、他方のプログラム単位識別子を構成する文字列とが互いに一致する場合に、それら2つのプログラム単位は対応すると判断してもよい。一致する場合とは、一致すると見なし得るほど類似する場合も含む。一致すると見なし得るほど類似する場合とは、例えば、文字列を構成する2以上の文字のうち、一致する文字が一定割合(例えば、8割、90%等)を超える又は以上である場合や、一致しない文字が一定数(例えば、2文字等)以下又は未満である場合や、連続する一定数以上の文字(例えば、連続する3文字等)が一致する場合などであるが、これに限らない。
なお、文字列の一致にする上記事項は、プログラム単位識別子を構成する文字列の場合に限らず、プログラム単位自体を構成する文字列や、その他の情報を構成する文字列の場合にも当てはまる。
または、プログラム単位対応検出部131は、2つのプログラム単位が、同じ情報(例えば、同じコード、同じ関数など)を有する場合に、対応すると判断してもよいし、または、2つのプログラム単位が同じ構造を有する場合に対応すると判断してもよい。
同じ情報、同じ構造とは、同じと見なし得るほど類似する情報、構造も含む。同じ情報か否かは、例えば、当該情報を構成する文字列が一致するか否かで判断できる。同じ構造か否かは、例えば、当該プログラム単位を構文木に変換し、構文木が一致するか否かで判断すればよい。
プログラム単位対応検出部131は、2以上のプログラム群の間の対応を、ファイル単位およびルーチン単位で検出してもよい。例えば、プログラム単位対応検出部131は、2以上のプログラム群の間で、まず、対応するファイル(2つのファイル識別子の対)を検出し、次に、対応すると判断した2以上のファイルの間で、対応するルーチン(2つのルーチン識別子の対)を検出することは、好ましい。
プログラム単位対応検出部131の検出対象である2以上のプログラム群は、通常、マイグレーション前の2以上のプログラム群であるが、マイグレーション後の2以上のプログラム群(2以上の後プログラム群)でもよいし、その両方であってもよい。例えば、プログラム単位対応検出部131は、プログラム群格納部111に格納されている2以上のプログラム群であり、マイグレーション前の2以上のプログラム群の間の対応を検知した後、その検知結果と、前後対応格納部113に格納されている前後対応情報と組み合わせることで、後プログラム群格納部112に格納されている2以上の後プログラム群の間の対応も検出してよい。
同一度取得部132は、プログラム単位対応検出部131が対応すると判断した2以上のプログラム群のプログラム単位を比較し、同一の度合いである同一度を取得する。同一度は、例えば、類似度でもよいし、同一であるか否かでもよい。
類似度とは、類似の程度を示す値である。本実施の形態でいう類似度は、3以上の値を採り得る。3以上の値とは、類似の程度が最小である(通常、少しも類似していない)ことを示す最小値(例えば"0")、類似の程度が最大である(通常、同一である)ことを示す最大値(例えば、"1"、または"100"等)、およびそれらの間の1以上の値(例えば、0と1の間の小数値"0.1","0.95"、または0と100との間の実数値"10","95","98.52"等)である。
これに対して、同一であるか否かは、2値で表現される。2値とは、同一であることを示す第一の値(例えば"1")、および同一でないことを示す第二の値(例えば"0")である。同一であることは、何ら相違がない場合に限られる。すなわち、同一度取得部132は、少しでも相違があれば、同一でないと判断する。なお、類似度や同一か否か等を示す値は、相対的なものであり、具体的な数値は問わない。
同一度取得部132は、例えば、一のプログラム単位を構成するコードの総数と、そこに含まれる重複コードの数とを計数し、コードの総数に対する重複コードの数の割合を求め、当該割合を示す類似度を取得してもよい。重複コードとは、同じコード、または同じと見なし得るほど類似するコードであり、クローンコードともいう。または、同一度取得部132は、例えば、一のプログラム単位に含まれる関数の総数と、そこに含まれる同じ関数の数とを計数し、関数の総数に対する同じ関数の数の割合を求め、当該割合を示す類似度を取得してもよい。または、同一度取得部132は、例えば、一のプログラム単位に対応する構造木を構成する要素(ノード、エッジ等)の総数と、そこに含まれる同じ要素の数とを計数し、要素の総数に対する同じ要素の数の割合を求め、当該割合を示す類似度を取得してもよい。ただし、類似度の取得方法は問わない。
同一度取得部132は、例えば、Aプログラム単位とBプログラム単位との類似度を、次の式で算出してもよい。
類似度={(AにおけるBとの重複コード数)+(BにおけるAとの重複コード数)}÷{(Aの総コード数)+(Bの総コード数)}
なお、上の式における「コード」は、「関数」と読み替えてもよいし、「トークン」と読み替えてもよい。トークンとは、プログラムを構成する情報の最小単位である。コードまたは関数は、1以上のトークンで構成されると考えてもよいし、トークンの一種と考えてもよい。重複トークン数および総トークン数は、例えば、既存のコードクローン解析ツールなどを利用して取得できる。
また、同一度取得部132は、取得した類似度を用いて、クラスター分析を行ってもよい。クラスター分析とは、プログラム間の類似度を距離で表現し、距離の近いプログラムのペアまたはセットをグルーピングしていく分析手法である。同一度取得部132は、クラスター分析を行うことで、距離の近いプログラムのペアに対応する2つのプログラム単位識別子の対で構成されたグループ、または距離の近いプログラムのセットに対応する3以上のプログラム単位識別子の組で構成されたグループを、1以上、取得してもよい。出力部14が、かかる1以上のグループを出力することで、開発者は、マイグレーション等をグループごとに効率よく行える。
同一度取得部132は、プログラム単位対応検出部131が対応すると判断した2以上のプログラム群に対応する2以上の各後プログラム群のプログラム単位をも比較し、同一度を取得してもよい。これによって、一の対応するプログラム単位(一対のプログラム単位識別子)に対し、2種類の同一度が取得される。2種類の同一度とは、マイグレーションの前における同一度、およびマイグレーションの後における同一度である。
同一度取得部132は、プログラム単位対応検出部131が対応すると判断した2以上のプログラム群のファイル単位およびルーチン単位を比較し、同一度を取得してもよい。具体的には、例えば、同一度取得部132は、最初、2以上のプログラム群の間で対応すると判断された1以上の各ファイル対の同一度を取得し、次に、取得した同一度が最大値(例えば"1"、または"100"等)に満たない2以上のファイル対の間で、対応すると判断された1以上のルーチン対の同一度をも取得することは好ましい。これによって、対応するファイル単位の同一度、および対応するルーチン単位の同一度が取得される。
同一度取得部132は、プログラム単位対応検出部131が取得したプログラム単位対応情報を構成する2以上の各プログラム単位識別子対について、当該プログラム単位識別子対で識別される2つのプログラム単位の間の同一度を計算し、当該プログラム単位識別子対に対応付けて、計算した同一度を蓄積する処理を繰り返すことで、同一度群情報を取得してもよい。
同一度群情報とは、2以上のプログラム群の間の2以上のプログラム単位対の同一度を示す情報である。プログラム単位対とは、プログラム単位対応検出部131が互いに対応すると判断した2つのプログラム単位の対をいう。同一度群情報は、通常、かかるプログラム単位対を識別するプログラム単位識別子対と、同一度との組の集合で構成される。つまり、同一度群情報は、通常、前述したプログラム単位対応情報も含んでいるが、プログラム単位対応情報を含まない、2以上の同一度の集合であってもよい。ただし、同一度群情報のデータ構造は問わない。
テスト対象取得部133は、同一度取得部132が取得した同一度を用いて、テストすべきマイグレーション後のプログラムを識別する1以上の後識別子を取得する。なお、以下では、同一度取得部132が取得する1以上の後識別子の集合を、テスト対象情報と記す場合がある。また、後識別子は、後ファイル識別子でも、後ルーチン識別子でもよく、テスト対象情報は、1以上の後ファイル識別子、および1以上の後ルーチン識別子を含み得ることはいうまでもない。後ファイル識別子とは、マイグレーションした後のプログラムの全体を識別する情報であり、後ルーチン識別子とは、マイグレーションした後のプログラムに含まれるルーチンを識別する情報である。
テスト対象取得部133は、例えば、次の手順でテスト対象情報を取得してもよい。すなわち、最初、テスト対象取得部133は、1番目の後プログラム群の後識別子を全て取得する。次に、テスト対象取得部133は、2番目のプログラム群の1番目の後識別子を選択して、その選択している後識別子に対応する後識別子を取得済みであり、かつその対応する2つの後識別子で識別されるプログラム単位対の同一度が最大値(例えば"1"または"100"等)であるか否かを判断する。そして、テスト対象取得部133は、ここでNOと判断した場合に、その選択している後識別子を取得する。NOと判断した場合とは、対応するプログラム識別子を取得済みでない場合、または同一度が最大値に満たない場合である。テスト対象取得部133は、かかる処理を、2番目のプログラム群の最後の後識別子を選択し終えるまで繰り返し、さらに、3番目以降のプログラム群についても、同様の処理を行うことで、テスト対象情報を取得することができる。
テスト対象取得部133は、同一度取得部132が取得したファイル単位の同一度およびルーチン単位の同一度を用いて、1以上の後ファイル識別子および1以上の後ルーチン識別子を含むテスト対象情報を取得してもよい。具体的には、例えば、テスト対象取得部133は、最初、2以上の後プログラム群から1以上の後ファイル識別子を取得し、次に、同一度が最大値に満たない2以上のファイルから1以上の後ルーチン識別子をも取得することは好ましい。
出力部14は、各種の情報を出力する。各種の情報とは、例えば、プログラム単位対応情報、同一度群情報、テスト対象情報などである。各種の情報には、マイグレーション等に関連する上記各種の指示に応じた処理の結果なども含まれてよい。一般に、出力とは、ディスプレイへの表示、スピーカーからの音出力、外部の装置への送信、プリンタでの印字、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。出力部14の出力は、通常、ディスプレイ等の出力デバイスを介した出力であるが、例えば、端末装置への送信であってもよく、その態様は問わない。
比較結果出力部141は、プログラム単位対応検出部131が検出した対応の結果、および同一度取得部132が取得した同一度を、2以上のプログラム群の間で対比可能な態様で出力する。出力される対応の結果とは、前述したプログラム単位対応情報である。出力される同一度とは、前述した同一度群情報である。比較結果出力部141は、通常、プログラム単位対応情報を含む同一度群情報を出力するが、プログラム単位対応情報と、これを含まない同一度群情報とを出力してもよい。対比可能な態様とは、2以上のプログラム群のうち、一のプログラム群を構成する2以上の各プログラム単位が、他のプログラム群のどのプログラム単位に対応しているかを、開発者が認識できる態様をいう。対比可能な態様は、例えば、マトリクス、対応表の形式等であるが、これに限らない。
マトリクスは、例えば、2以上の列(第1列、第2列、…)、および2以上の行(第1行、第2行、…)を有する。2以上の列は、一の配置先識別子に対応するプログラム群が有する2以上のプログラム単位に対応付いている。2以上の行は、別の配置先識別子に対応するプログラム群が有する2以上のプログラム単位に対応付いている。2以上の列には、対応する2以上のプログラム単位識別子が、当該一の配置先識別子と共に記載されていてもよい。2以上の行には、対応する2以上のプログラム単位識別子が、当該別の配置先識別子と共に記載されていてもよい。
比較結果出力部141は、例えば、かかるマトリクスの第s行第t列に、当該一の配置先識別子に対応するプログラム群が有する2以上のプログラム単位のうちs番目のプログラム単位と、当該別の配置先識別子に対応するプログラム群が有する2以上のプログラム単位のうちt番目のプログラム単位との類似度を配置する。
対応表は、例えば、3つの列(第1列〜第3列)および2以上の行(第1行、第2行、…)を有する。第1列には、対応する2つプログラム単位のうち一方を識別するプログラム単位識別子が配置される。第2列には、対応する2つプログラム単位のうち他方を識別するプログラム単位識別子が配置される。第3列には、当該2つのプログラム単位の類似度が配置される。対応表には、第1列に対応付けて、そこに配置されるプログラム単位識別子で識別されるプログラム単位に対応する稼働先識別子("B工場用"等)が記載されてもよい。また、第2列に対応付けて、そこに配置されるプログラム単位識別子で識別されるプログラム単位に対応する稼働先識別子("C工場用"等)が記載されてもよい。また、第3列に対応付けて、"類似度"が記載されてもよい。
比較結果出力部141は、例えば、かかる対応表の第2行以下に、同じプログラム単位識別子を有するプログラム単位対とその類似度との組を配置する。
比較結果出力部141は、同一度取得部132が取得した後プログラム群のプログラム単位の同一度をも、2以上の後プログラム群の間で対比可能な態様で出力してもよい。
比較結果出力部141は、プログラム単位対応検出部131が検出した対応の結果、および同一度取得部132が取得した同一度を、後識別子に対応付けて出力してもよい。その際、比較結果出力部141は、テスト対象取得部133が取得した1以上の後識別子を他の後識別子とは区別可能な態様で出力することは好ましい。区別可能な態様で出力することは、例えば、取得された1以上の後識別子を強調表示すること、取得された1以上の後識別子の背景色を変えること、他の後識別子をグレーアウトすること等であるが、これに限らない。
または、比較結果出力部141は、テスト対象取得部133が取得した1以上の後識別子のみを出力してもよい。
そして、2以上の後プログラム群を対象とする場合における対比可能な態様もまた、前述したようなマトリックスや対応表の形式であってよい。これによって、マイグレーション後のプログラム群(後プログラム群)のテストやメンテナンス等が容易になる。
以下では、プログラム単位対応情報および同一度を含む情報であり、2以上のプログラム群の間で対比可能な態様を有する情報を、プログラム単位の対応および同一情報と記す場合がある。
比較結果出力部141は、プログラム単位対応検出部131が取得したプログラム単位対応情報、および同一度取得部132が取得した同一度群情報を用いて、同一度群情報を構成し、出力することは好ましい。
比較結果出力部141は、通常、受付部12が出力指示を受け付けたことに応じて、プログラム単位対応・同一度群情報を出力する。または、比較結果出力部141は、例えば、受付部12が出力指示を端末識別子と対に受信したことに応じて、当該端末識別子で識別される端末装置(つまり、当該出力指示を送信して来た端末装置)に、同一度群情報を送信してもよい。
格納部11、プログラム群格納部111、後プログラム群格納部112、および前後対応格納部113は、例えば、ハードディスクやフラッシュメモリといった不揮発性の記録媒体が好適であるが、RAMなど揮発性の記録媒体でも実現可能である。
格納部11等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部11等で記憶されるようになってもよく、ネットワークや通信回線等を介して送信された情報が格納部11等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部11等で記憶されるようになってもよい。入力デバイスは、例えば、キーボード、マウス、タッチパネル等、何でもよい。
受付部12は、入力デバイスを含むと考えても、含まないと考えてもよい。受付部12は、入力デバイスのドライバーソフトによって、または入力デバイスとそのドライバーソフトとで実現され得る。
受付部12の受信機能は、通常、有線または無線の通信手段(例えば、ネットワークカードやモデム等の通信モジュール)で実現されるが、放送を送信する手段(例えば、放送受信モジュール)で実現されてもよい。
処理部13、プログラム単位対応検出部131、および同一度取得部132は、通常、MPUやメモリ等から実現され得る。処理部13等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。ただし、処理手順は、ハードウェア(専用回路)で実現してもよい。
出力部14、および比較結果出力部141は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えてもよい。出力部14等は、出力デバイスのドライバーソフトによって、または出力デバイスとそのドライバーソフトとで実現され得る。
出力部14の送信機能は、通常、有線または無線の通信手段で実現されるが、放送手段(例えば、放送モジュール)で実現されてもよい。
次に、開発支援装置1の動作について図2〜図4のフローチャートを用いて説明する。なお、既出の事項に関する説明は、省略または簡略化している。また、図2〜図4のフローチャートには、マイグレーションやテストやメンテナンス等に関連する各種の指示の受け付け(送受信)、当該各種の指示に応じた処理、当該処理の結果の出力(送受信)等は、記載していない。
図2は、開発支援装置1の動作を説明するフローチャートである。
(ステップS201)処理部13は、受付部12が出力指示を受け付けたか否かを判別する。受け付けたことは、出力指示を、キーボード等の入力デバイスを介して受け付けた場合だけでなく、端末識別子と対に受信した場合も含む。受付部12が出力指示を受け付けた場合はステップS202に進み、受け付けていない場合はステップS201に戻る。
(ステップS202)プログラム単位対応検出部131は、2以上のプログラム群の間の対応をプログラム単位で検出する処理である対応検出処理を実行する。なお、対応検出処理については、図3のフローチャートを用いて説明する。
(ステップS203)同一度取得部132は、プログラム単位対応検出部131が対応すると判断したプログラム単位の同一度を計算し、同一度群情報を取得する処理である同一度取得処理を実行する。なお、同一度取得処理については、図4のフローチャートを用いて説明する。
(ステップS204)比較結果出力部141は、格納されているプログラム単位識別子対と同一度との組の集合(同一度群情報)を取得する。なお、同一度群情報については、前述したので繰り返さない。
(ステップS205)比較結果出力部141は、取得した同一度群情報を出力する。出力することは、ディスプレイ等の出力デバイスを介して出力する場合だけでなく、受付部12が出力指示と対に受信した端末識別子で識別される端末装置に送信する場合も含む。その後、ステップS201に戻る。
なお、図2のフローチャートにおいて、開発支援装置1の電源オンやプログラムの起動に応じて処理が開始し、電源オフや処理終了の割り込みにより処理は終了する。ただし、処理の開始または終了のトリガは問わない。
図3は、上記ステップS202の対応検出処理を説明するフローチャートである。
(ステップS301)プログラム単位対応検出部131は、変数iに初期値1セットし、変数jにも初期値1をセットする。
変数iは、格納されている2以上のプログラム群のうち、未選択のプログラム群を順番に選択していくための変数である。格納されている2以上のプログラム群とは、プログラム群格納部111に格納されている2以上のプログラム群、または後プログラム群格納部112に格納されている2以上の後プログラム群のうち、1種類以上の2以上のプログラム群である。また、変数jは、i番目のプログラム群のうち、未選択のプログラム単位を順番に選択していくための変数である。
(ステップS302)プログラム単位対応検出部131は、i番目のプログラム群があるか否かを判別する。i番目のプログラム群がある場合はステップS302に進み、ない場合は上位処理にリターンする。
(ステップS303)プログラム単位対応検出部131は、i番目のプログラム群にj番目のプログラム単位があるか否かを判別する。i番目のプログラム群にj番目のプログラム単位がある場合はステップS304に進み、ない場合はステップS307に進む。
(ステップS304)プログラム単位対応検出部131は、i番目以外のプログラム群に当該j番目のプログラム単位に対応するプログラム単位があるか否かを判別する。i番目以外のプログラム群に当該j番目のプログラム単位に対応するプログラム単位がある場合はステップS305に進み、ない場合はステップS306に進む。
(ステップS305)プログラム単位対応検出部131は、当該j番目のプログラム単位を識別する識別子と、これに対応するプログラム単位を識別する識別子との対であるプログラム単位識別子対を、例えば格納部11に蓄積する。
(ステップS306)プログラム単位対応検出部131は、変数iをインクリメントする。その後、ステップS303に戻る。
(ステップS307)プログラム単位対応検出部131は、変数jをインクリメントする。その後、ステップS302に戻る。
図4は、上記ステップS203の同一度取得処理を説明するフローチャートである。
(ステップS401)同一度取得部132は、変数kに初期値1セットする。変数kは、格納されている2以上のプロタム単位識別子対のうち、未選択のプログラム単位識別子対を順番に選択していくための変数である。
(ステップS402)同一度取得部132は、k番目のプログラム単位識別子対があるか否かを判別する。k番目のプログラム単位識別子対がある場合はステップS403に進み、ない場合は上位処理にリターンする。
(ステップS403)同一度取得部132は、k番目のプログラム単位識別子対で識別される2つのプログラム単位の間の同一度を計算する。同一度の計算方法については、前述したので繰り返さない。
(ステップS404)同一度取得部132は、当該同一度を、k番目のプログラム単位識別子対に対応付けて、例えば格納部11に蓄積する。
(ステップS405)同一度取得部132は、変数kをインクリメントする。その後、ステップS402に戻る。
なお、図2〜図4のフローチャートには明示していないが、例えば、図3のステップS305において、プログラム単位対応検出部131は、蓄積しようとするプログラム単位識別子対(例えば"aa"および"bb"等)に対し、識別子の順序のみが異なる同等のプログラム単位識別子対(例えば"bb"および"aa"等)が既に蓄積済みか否かを判別し、蓄積済みである場合には、重複するプログラム単位識別子対の蓄積は行わなくてよい。
ただし、ステップS305では、プログラム単位対応検出部131は、どのプログラム単位識別子対も蓄積し、後に、例えば処理部13が、格納されているプログラム単位識別子対の集合の中から、互いに同等である複数のプログラム単位識別子対を検出し、一のプログラム単位識別子対に集約してもよい。集約は、例えば、図2のステップS204において、比較結果出力部141がプログラム単位対応・同一情報を構成する際に行ってもよく、その実行タイミングは問わない。
以下、本実施の形態における開発支援装置1の具体的な動作について説明する。なお、既出の事項に関する説明は、省略または簡略化している。以下の説明は、例示であって、本発明を何ら限定するものではなく、適宜変更可能であることはいうまでもない。
本例の開発支援装置1は、開発会社のPCで実現される。開発支援装置1は、このPCを利用して開発を行う開発者を支援する。開発者は、A社の2以上の工場(例えば、B工場、C工場等)で稼働している2以上のプログラム群のマイグレーションを担当する。
開発支援装置1のプログラム群格納部111には、2以上のプログラム群が格納されている。プログラム群のデータ構造を図5に示す。プログラム群は、IDと、稼働先識別子と、2以上のプロググラム単位とを有する。IDは、プログラム群を識別する情報であり、例えば、1,2,…といった番号である。稼働先識別子は、プログラム群の稼働先を識別する情報であり、例えば"AB","AC"などである。
例えば、ID"1"に対応するプログラム群(以下、プログラム群1と記す場合がある)は、稼働先識別子"AB"、および2以上のプログラム単位(ここでは、8以上のプログラム単位"AB0000.cbl","LMN006.cbl","LMN060.cbl","LMN070.cbl","BMN200.cbl","LMN205.cbl","LMN210.cbl",および"LMN211.cbl"など)を有する。また、ID"2"に対応するプログラム群(以下、プログラム群2と記す場合がある)は、稼働先識別子"AC"、および2以上のプログラム単位(ここでは、8以上のプログラム単位"AB0000.cbl","LMN005.cbl","LMN006.cbl","LMN060.cbl","LMN070.cbl","LMN200.cbl","LMN205.cbl",および"LMN210.cbl"など)を有する。ただし、プログラム群のデータ構造は問わない。
プログラム群1とプログラム群2とは、元は同じプログラム群であるが、各工場でのカスタマイズの結果、部分的な差異が生じている。カスタマイズとは、例えば、プログラム単位の削除、新たなプログラム単位の追加、プログラム単位のプログラム文の変更などであるが、これに限らない。開発者は、かかる2以上のプログラム群のマイグレーションを行う前に、メンテナンスを行うべく、入力デバイスを介して出力指示を入力する。
開発支援装置1において、受付部12が出力指示を受け付け、プログラム単位対応検出部131は、プログラム群格納部111に格納されている2以上のプログラム群の間の対応をプログラム単位で検出する。なお、プログラム単位対応検出部131の動作については、前述したので繰り返さない。次いで、同一度取得部132は、プログラム単位対応検出部131が対応すると判断したプログラム単位の同一度を計算し、同一度情報を取得する。なお、同一度取得部132の動作についても、前述したので繰り返さない。
次に、比較結果出力部141は、こうして取得されたプログラム単位対応情報および同一度情報を用いて、プログラム単位対応・同一情報を構成し、出力する。なお、比較結果出力部141の動作についても、前述したので繰り返さない。これにより、ディスプレイには、2以上のプログラム群の間で対比可能な態様で、2以上のプログラム単位対および各プログラム単位対の同一度が表示される。
同一度群情報の一出力例を図6に示す。この同一度群情報は、8行×8列のマトリクス形式を有する。このマトリクスは、例えば、8の列(第1列〜第8列)、および8の行(第1行〜第8行)を有する。そして、当該8の列に対応付けて、配置先識別子"AB"で識別されるA社のB工場を意味する"B工場"と、配置先識別子"AB"に対応するプログラム群1が有する8のプログラム単位"AB0000.cbl","LMN006.cbl","LMN060.cbl","LMN070.cbl","LMN200.cbl","LMN205.cbl","LMN210.cbl",および"BMN211.cbl"とが配置されている。また、当該8の行に対応付けて、配置先識別子"AC"で識別されるA社のC工場を意味する"C工場"と、配置先識別子"AC"に対応するプログラム群が有する8のプログラム単位"AB0000.cbl","LMN005.cbl","LMN006.cbl","LMN060.cbl","LMN070.cbl","LMN200.cbl","LMN205.cbl",および"LMN210.cbl"とが配置されている。格納部11には、例えば、マトリクスの行数、列数、行の幅、列の高さ等を示すレイアウト情報等が格納されており、比較結果出力部141は、当該レイアウト情報等を用いて、上記のようなマトリクスを構成してもよい。
比較結果出力部141は、かかるマトリックスの第1行第1列に、配置先識別子"AB"に対応するプログラム群1が有する上記8以上のプログラム単位のうち1番目のプログラム単位であるB工場用の"AB0000.cbl"と、配置先識別子"AC"に対応するプログラム群2が有する上記8以上のプログラム単位のうち1番目のプログラム単位であるC工場用の"AB0000.cbl"との類似度"100.00"を配置する。同様にして、第1行第2列には、プログラム群1の2番目のプログラム単位(B工場用の"LMN006.cbl")と、プログラム群2の1番目のプログラム単位(C工場用の"AB0000.cbl")との類似度"0.00%"が配置される。一般に、第s行第t列には、配置先識別子"AB"に対応するプログラム群1が有する上記8以上のプログラム単位のうちs番目のプログラム単位と、配置先識別子"AC"に対応するプログラム群2が有する上記8以上のプログラム単位のうちt番目のプログラム単位との類似度が配置される。
同一度群情報の他の出力例を図7に示す。図7の同一度群情報は、10の行(第1行〜第10行)および3の列(第1列〜第3列)で構成された対応表の形式を有する。第1行第1列には、稼働先識別子"AB"に対応する"B工場用"が配置され、第1行第2列には、稼働先識別子"AC"に対応する"C工場用"が配置され、そして、第1行第3列に"同一度(類似度)"が配置される。格納部11には、対応表の行数、列数、行の幅、列の高さ等を示すレイアウト情報等が格納されており、比較結果出力部141は、当該レイアウト情報等を用いて、対応表を構成してもよい。
比較結果出力部141は、かかる対応表の第2行以下の一部(ここでは、第2行,第4〜第9行)に、同じプログラム単位識別子を有するプログラム単位対とその類似度との組を配置する。同じプログラム単位識別子を有するプログラム単位対とその類似度との組とは、具体的には、B工場用"AB0000.cbl"およびC工場用"AB0000.cbl"と類似度"100.00"との組、B工場用"LMN006.cbl"およびC工場用"LMN006.cbl"と類似度"100.00"との組、B工場用"LMN060.cbl"およびC工場用"LMN060.cbl"と類似度"96.00"との組、B工場用"LMN070.cbl"およびC工場用"LMN070.cbl"と類似度"100.00"との組、B工場用"LMN200.cbl"およびC工場用"LMN200.cbl"と類似度"100.00"との組、B工場用"LMN205.cbl"およびC工場用"LMN205.cbl"と類似度"100.00"との組、B工場用"LMN210.cbl"およびC工場用"LMN210.cbl"と類似度"100.00"との組、の計7組である。
また、比較結果出力部141は、対応表の第2行以下の他の一部(ここでは、第3行,第10行)に、同じプログラム単位識別子で識別される他のプログラム単位が存在しないプログラム単位を単独で配置する。これによって、第3行には、B工場用"−"およびC工場用"LMN006.cbl"と類似度"−"との組が配置され、第10行には、B工場用"LMN211.cbl"およびC工場用"−"と類似度"−"との組が配置される。なお、"−"は、該当する情報が存在しないことを示す。
比較結果出力部141は、例えば、初回の出力指示に応じて、図6に示したようなマトリックスを出力し、次回の出力指示に応じて、図7に示したような対応表を出力してもよい。ただし、マトリックスと対応表との出力順序は問わない。または、比較結果出力部141は、出力指示に応じて、マトリックスまたは対応表のうちいずれか一種類を出力するだけでもよい。
かかる同一度群情報を参照することで、開発者は、B工場用およびC工場用の2つのプログラム群の間のプログラム単位の対応、および対応するプログラム単位の間の同一度(ここでは、0.00〜100.00までの、例えば1万個の値を採り得る類似度:単位は%)を知ることができる。
開発者は、例えば、類似度が0.00のプログラム単位対については、全く異なるプログラム単位の対であるため、個別にマイグレーションを行う必要があるが、類似度が100.00のプログラム単位対については、全く同じプログラム単位の対であるため、一方のプログラム単位だけをマイグレーションし、他方のプログラム単位は、当該マイグレーション後のプログラム単位に置き換えるだけでよい。このため、開発者の負担が軽減される。
また、開発者は、類似度が0.00より大きく100.00より小さいプログラム単位対(例えば、類似度が96.00のプログラム単位対であるB工場用"LMN060"およびC工場用"LMN060")については、例えば、表示されているマトリックスまたは対応表上で当該プログラム単位対に対応するセルを選択することで、ルーチン単位の同一度群情報を表示させてもよい。詳しくは、受付部12がセルの選択を受け付け、比較結果出力部141は、選択されたセルに対応するプログラム単位対である2つのファイルに含まれる1以上のルーチンを取得し、図8に示すような同一度群情報を出力してもよい。
図8の同一度群情報は、対応表の形式を有する。この対応表は、3つの列(第1列〜第3列)、および当該2つの各ファイルに含まれるルーチンの数と同数の行(例えば5つの行:第1行〜第5行)を有する。第1行第1列には、稼働先識別子"AB"に対応するファイル単位であり、選択されたセルに対応するファイル単位を示す"B工場用LMN060.cbl"が配置され、第1行第2列には、稼働先識別子"AC"に対応するファイル単位であり、選択されたセルに対応するファイル単位を示す"C工場用LMN060.cbl"が配置され、そして、第1行第3列に"同一度(類似度)"が配置される。
比較結果出力部141は、かかる対応表の第2行以下(ここでは、第2〜第5行)に、同じルーチン識別子を有する2つのルーチンの対とその類似度との組を配置する。同じルーチン識別子を有する2つのルーチンの対(ルーチン対)とその類似度との組とは、具体的には、B工場用LMN060.cblのルーチン1およびC工場用LMN060.cblのルーチン1の対とその類似度"100.00"との組、B工場用LMN060.cblのルーチン2およびC工場用LMN060.cblのルーチン2の対とその類似度"80.00"との組、B工場用LMN060.cblのルーチン3およびC工場用LMN060.cblのルーチン3の対とその類似度"100.00"との組、ならびにB工場用LMN060.cblのルーチン4およびC工場用LMN060.cblのルーチン4の対とその類似度"100.00"との組、の計4組である。
かかる同一度群情報を参照することで、開発者は、類似度が100.00に満たない2つのファイルの対であるB工場用LMN060.cblおよびC工場用LMN060.cblの間のルーチン単位の対応、および対応するルーチン単位の間の同一度をも知ることができる。
開発者は、かかる対応表上で、類似度が100.00に未たない2つのルーチンの対に対応するセルを選択することで、各々のを構成するコード群(関数群でもよい)を上記対応表に代えて表示させ、当該コード群の中にデッドコードが含まれている場合は、その削除を行うことで、当該ルーチン対の同一度を100.00に近づけることもできる。
類似度が100.00未満であるプログラム単位対(ここでは、2つのルーチン)に対応する2つのコード群の出力例を、図8に示す。出力された2つのコード群を対比することで、開発者は、2つのコード群の間の相違を知ることができる。相違とは、例えば、一方のコード群の特定のコードに対応するコードが、他方のコード群には存在しないこと等である。図8の出力例からは、C工場用LMN060.cblのコード群の特定のコード"05 M04-NOHIN-YOTEI-HHMM-RDF REDEFINES M04NOHIN-YOTEI-HHMM.","06 M04-NOHIN-YOTEI-HH PIC 9(02)."および"06 M04-NOHIN-YOTEI-MM PIC 9(02)."が、B工場用LMN060.cblのコード群には存在しないことがわかる。次に、開発者は、C工場用LMN060.cblのコード群の後続部分において、当該特定のコードを参照している箇所を探す。本例では、当該特定のコードの一部(図中の強調した文字列)が一度も参照されておらず、開発者は、その部分をデッドコードとして削除する。
また、図示はしないが、表示された2つのコード群において、例えば、変数として使われている文字や、関数の形式が異なるだけで、実質的には同等である関数が含まれている場合に、それらの文字や形式を統一し、一の関数に集約することで、当該プログラム単位対の同一度を100.00にできる場合もある。
担当者は、図6〜図8に示したような同一度群情報、図9に示したような2つのコード群などを参照することで、マイグレーションの前に、デッドコードの削除、重複コードの集約といったメンテナンスを容易に行える。
そして、マイグレーション前のこうしたメンテナンスによって、マイグレーションの対象となるプログラム単位の数が減る結果、開発者の負担は、一層、軽減される。
プログラム群格納部111に格納されている2以上のプログラム群が、以上のような開発者の作業を通じてマイグレーションされ、それにより得られた2以上の後プログラム群は、後識別子に対応付けられ、後プログラム群格納部112に蓄積される。
後プログラム群格納部112に格納されている2以上の後プログラム群についても、例えば、受付部12が、後識別子と対に出力指示を受け付け、プログラム単位対応検出部131は、当該2以上の後プログラム群の間のプログラム単位の対応を検出し、同一度取得部132は、対応するプログラム単位の同一度を取得し、比較結果出力部141は、検出された対応および取得された同一度を当該2以上のプログラム単位の間で比較可能に示す同一度群情報を出力する。
2以上の後プログラム群に関する同一度群情報の出力例を図10に示す。図10の同一度群情報は、図7と同様の対応表の形式を有する。比較結果出力部141は、かかる対応表の第2行以下の一部(ここでは、第2行,第4〜第9行)に、同じプログラム単位識別子を有するプログラム単位対とその類似度との組を配置する。同じプログラム単位識別子を有するプログラム単位対とその類似度との組とは、具体的には、B工場用"AB0000_後.cbl"およびC工場用"AB0000_後.cbl"と類似度"100.00"との組、B工場用"LMN006_後.cbl"およびC工場用"LMN006"と類似度"100.00"との組、B工場用"LMN060_後.cbl"およびC工場用"LMN060_後.cbl"と類似度"96.00"との組、B工場用"LMN070_後.cbl"およびC工場用"LMN070_後.cbl"と類似度"100.00"との組、B工場用"LMN200_後.cbl"およびC工場用"LMN200_後.cbl"と類似度"100.00"との組、B工場用"LMN20_後.cbl5"およびC工場用"LMN205_後.cbl"と類似度"100.00"との組、B工場用"LMN210_後.cbl"およびC工場用"LMN210_後.cbl"と類似度"100.00"との組、の計7組である。
また、比較結果出力部141は、対応表の第2行以下の他の一部(ここでは、第3行,第10行)に、同じプログラム単位識別子で識別される他のプログラム単位が存在しないプログラム単位を単独で配置する。これによって、第3行には、B工場用"−"およびC工場用"LMN006_後.cbl"と類似度"−"との組が配置され、第10行には、B工場用"LMN211_後.cbl"およびC工場用"−"と類似度"−"との組が配置される。なお、"−"は、該当する情報が存在しないことを示す。
なお、2以上の後プログラム群に関する同一度群情報もまた、マットリクス形式を有していてもよい。マイグレーション後に出力されるマトリックスは、図6のマトリックスにおいて、"AB0000.cbl"等の前識別子に代えて、"AB0000_後.cbl"等の後識別子が表示される。比較結果出力部141は、例えば、マイグレーション後の初回の出力指示に応じて、図10に示したような対応表を出力し、次回の出力指示に応じて、かかるマトリックスを出力してもよい。
テスト対象取得部133が、上記のような同一度群情報を用いて、テストすべきマイグレーション後のプログラムを識別する1以上の後識別子を取得する。テストすべきマイグレーション後のプログラムとは、類似度が100.00のプログラム単位対のいずれか一方を識別するプログラム単位識別子(例えば、B工場用"AB0000_後.cbl"、B工場用"LMN006_後.cbl"、B工場用"LMN070_後.cbl"、B工場用"LMN200_後.cbl"、B工場用"LMN205_後.cbl"、およびB工場用"LMN210_後.cbl")、対になるプログラム単位がないプログラム単位を識別するプログラム単位識別子(例えば、C工場用"LMN005_後.cbl"および、B工場用"LMN211_後.cbl")、および類似度が100.00に満たないプログラム単位対の両方を識別するプログラム単位識別子(例えば、B工場用"LMN060_後.cbl"、およびC工場用"LMN060_後.cbl")である。比較結果出力部141は、テスト対象取得部133が取得した上記プログラム単位識別子を強調表示している。これにより、開発者は、デッドコードの削除や、重複コードの集約といったメンテナンスを容易に行うことができる。
以上、本実施の形態によれば、ソフトウェアの稼働先を識別する稼働先識別子に対応付けられた2以上のプログラムを有する2以上のプログラム群が記録媒体に格納されており、開発支援装置1は、プログラム群を構成する部分であり、予め決められた単位であるプログラム単位で、2以上のプログラム群の間の対応を検出し、対応すると判断した2以上のプログラム群のプログラム単位を比較し、同一の度合いである同一度を取得し、検出した対応の結果、および取得した同一度を、2以上のプログラム群の間で対比可能な態様で出力することにより、開発者は、2以上のプログラム群の間のプログラム単位の対応および同一度を認知することにより、2以上のプログラム群を対象とする開発を効率的に行える。
また、上記2以上の各プログラム群が有する2以上のプログラムは、マイグレーション対象のマイグレーションの前のプログラムであることにより、開発者は、マイグレーション前の2以上のプログラム群の間のプログラム単位の対応および同一度を認知することにより、2以上のプログラム群を対象とするマイグレーションを効率的に行える。
また、上記2以上の各プログラム群が有する2以上のプログラムは、マイグレーションの後のプログラムであることにより、開発者は、マイグレーション後の2以上のプログラム群の間のプログラム単位の対応および同一度を認知することにより、マイグレーション後の2以上のプログラム群を対象とするテストを効率的に行える。
また、上記2以上の各プログラム群が有する2以上のプログラムは、マイグレーション対象のマイグレーションの前のプログラムであり、2以上の各プログラム群が有する2以上のプログラムをマイグレーションした結果である2以上の後プログラムを有する2以上の各後プログラム群が、稼働先識別子に対応付けて記録媒体にさらに格納されており、開発支援装置1は、対応すると判断した2以上のプログラム群に対応する2以上の各後プログラム群のプログラム単位をも比較し、同一の度合いである同一度を取得し、取得した後プログラム群のプログラム単位の同一度をも、2以上の後プログラム群の間で対比可能な態様で出力することにより、開発者は、マイグレーション前の2以上のプログラム群の間のプログラム単位の対応および同一度を認知することにより、マイグレーション前の2以上のプログラム群を対象とするマイグレーションを効率的に行えるのに加えて、マイグレーション後の2以上のプログラム群に関するプログラム単位の比較結果を認知することにより、マイグレーション後の2以上のプログラム群を対象とするテストをも効率的に行える。
また、マイグレーション前のプログラムを識別する前識別子と、マイグレーション前のプログラムをマイグレーションした後のプログラムを識別する後識別子との対応が、記録媒体にさらに格納されており、開発支援装置1は、取得した同一度を、後識別子に対応付けて出力することにより、開発者は、後識別子に対応付いたプログラム単位の対応および同一度を認知することにより、マイグレーション後の2以上のプログラム群を対象とするテストまたはメンテナンスをも効率的に行える。
また、上記開発支援装置1は、取得した同一度を用いて、テストすべきマイグレーション後のプログラムを識別する1以上の後識別子を取得し、取得した1以上の後識別子を出力するので、開発者は、マイグレーション後の2以上のプログラム群のうちどのプログラム単位をテストすればよいかが容易にわかる。
また、上記開発支援装置1は、取得した1以上の後識別子を他の後識別子とは区別可能な態様で出力することにより、開発者は、マイグレーション後の2以上のプログラム群のプログラム単位の対応に加えて、そのうちどのプログラム単位をテストすればよいかを容易に認知できる。
また、プログラム単位は、ファイル単位、およびファイル内のルーチン単位であり、開発支援装置1は、ファイル単位およびルーチン単位で、2以上のプログラム群の間の対応を検出し、対応すると判断した2以上のプログラム群のファイル単位およびルーチン単位を比較し、同一の度合いである同一度を取得することにより、開発者は、2以上のプログラム群の間のファイル単位およびルーチン単位の間の対応および同一度を認知することにより、2以上のプログラム群を対象とする開発を効率的に行える。
また、同一度は、3以上の値を採り得る類似度であることにより、開発者は、2以上のプログラム群の間のプログラム単位の対応および類似度を認知することにより、2以上のプログラム群を対象とする開発を効率的に行える。
さらに、本実施の形態における処理は、ソフトウェアで実現してもよい。そして、このソフトウェアをソフトウェアダウンロード等により配布してもよい。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布してもよい。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における開発支援装置1を実現するソフトウェアは、以下のようなプログラムである。つまり、コンピュータがアクセス可能な記録媒体は、ソフトウェアの稼働先を識別する稼働先識別子に対応付けられた2以上のプログラムを有する2以上のプログラム群が格納されるプログラム群111を具備し、このプログラムは、コンピュータを、プログラム群を構成する部分であり、予め決められた単位であるプログラム単位で、前記2以上のプログラム群の間の対応を検出するプログラム単位対応検出部131と、前記プログラム単位対応検出部131が対応すると判断した2以上のプログラム群のプログラム単位を比較し、同一の度合いである同一度を取得する同一度取得部132と、前記プログラム単位対応検出部131が検出した対応の結果、および前記同一度取得部132が取得した同一度を、前記2以上のプログラム群の間で対比可能な態様で出力する比較結果出力部141として機能させるためのプログラムである。
図10は、本実施の形態におけるプログラムを実行して、開発支援装置1を実現するコンピュータシステム900の外観図である。本実施の形態は、コンピュータハードウェアおよびその上で実行されるコンピュータプログラムによって実現され得る。図10において、コンピュータシステム900は、ディスクドライブ905を含むコンピュータ901と、キーボード902と、マウス903と、ディスプレイ904とを備える。なお、キーボード902やマウス903やディスプレイ904をも含むシステム全体をコンピュータと呼んでもよい。
図11は、コンピュータシステム900の内部構成の一例を示す図である。図11において、コンピュータ901は、ディスクドライブ905に加えて、MPU911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM913と、アプリケーションプログラム、システムプログラム、およびデータを記憶するストレージ914と、MPU911、ROM912等を相互に接続するバス915と、外部ネットワークや内部ネットワーク等のネットワークへの接続を提供するネットワークカード916と、を備える。ストレージ914は、例えば、ハードディスク、SSD、フラッシュメモリなどである。
コンピュータシステム900に、開発支援装置1の機能を実行させるプログラムは、例えば、DVD、CD−ROM等のディスク921に記憶されて、ディスクドライブ905に挿入され、ストレージ914に転送されてもよい。これに代えて、そのプログラムは、ネットワークを介してコンピュータ901に送信され、ストレージ914に記憶されてもよい。プログラムは、実行の際にRAM913にロードされる。なお、プログラムは、ディスク921、またはネットワークから直接、ロードされてもよい。また、ディスク921に代えて他の着脱可能な記録媒体(例えば、DVDやメモリカード等)を介して、プログラムがコンピュータシステム900に読み込まれてもよい。
プログラムは、コンピュータの詳細を示す901に、開発支援装置1の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能やモジュールを呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。ただし、以上は例示であり、開発支援装置1を実現するコンピュータのハードウェア構成は問わない。
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段(受付部12が有する通信モジュール、出力部14が有する通信モジュールなど)は、物理的に一の媒体で実現されてもよいことはいうまでもない。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることはいうまでもない。
以上のように、本発明にかかる開発支援装置等の支援によって、開発者は、2以上のプログラム群を対象とする開発を効率的に行えるという効果を有し、開発支援装置等として有用である。
1 開発支援装置
11 格納部
12 受付部
13 処理部
14 出力部
111 プログラム群格納部
112 後プログラム群格納部
113 前後対応格納部
131 プログラム単位対応検出部
132 同一度取得部
141 比較結果出力部

Claims (11)

  1. ソフトウェアの稼働先を識別する稼働先識別子に対応付けられた2以上のプログラムを有する2以上のプログラム群が格納されるプログラム群格納部と、
    プログラム群を構成する部分であり、予め決められた単位であるプログラム単位で、前記2以上のプログラム群の間の対応を検出するプログラム単位対応検出部と、
    前記プログラム単位対応検出部が対応すると判断した2以上のプログラム群のプログラム単位を比較し、同一の度合いである同一度を取得する同一度取得部と、
    前記プログラム単位対応検出部が検出した対応の結果、および前記同一度取得部が取得した同一度を、前記2以上のプログラム群の間で対比可能な態様で出力する比較結果出力部とを具備する開発支援装置。
  2. 前記2以上の各プログラム群が有する2以上のプログラムは、マイグレーション対象のマイグレーションの前のプログラムである請求項1記載の開発支援装置。
  3. 前記2以上の各プログラム群が有する2以上のプログラムは、マイグレーションの後のプログラムである請求項1記載の開発支援装置。
  4. 前記2以上の各プログラム群が有する2以上のプログラムは、マイグレーション対象のマイグレーションの前のプログラムであり、
    前記2以上の各プログラム群が有する2以上のプログラムをマイグレーションした結果である2以上の後プログラムを有する2以上の各後プログラム群を、稼働先識別子に対応付けて格納している後プログラム群格納部をさらに具備し、
    前記同一度取得部は、
    前記プログラム単位対応検出部が対応すると判断した2以上のプログラム群に対応する2以上の各後プログラム群のプログラム単位をも比較し、同一の度合いである同一度を取得し、
    前記比較結果出力部は、
    前記同一度取得部が取得した後プログラム群のプログラム単位の同一度をも、前記2以上の後プログラム群の間で対比可能な態様で出力する請求項1記載の開発支援装置。
  5. マイグレーション前のプログラムを識別する前識別子と、当該マイグレーション前のプログラムをマイグレーションした後のプログラムを識別する後識別子との対応が格納される前後対応格納部をさらに具備し、
    前記比較結果出力部は、
    前記同一度取得部が取得した同一度を、前記後識別子に対応付けて出力する請求項2から請求項4いずれか一項に記載の開発支援装置。
  6. 前記同一度取得部が取得した同一度を用いて、テストすべきマイグレーション後のプログラムを識別する1以上の後識別子を取得するテスト対象取得部をさらに具備し、
    前記比較結果出力部は、前記テスト対象取得部が取得した1以上の後識別子を出力する請求項3から請求項5いずれか一項に記載の開発支援装置。
  7. 前記比較結果出力部は、前記テスト対象取得部が取得した1以上の後識別子を他の後識別子とは区別可能な態様で出力する請求項6記載の開発支援装置。
  8. 前記プログラム単位は、
    ファイル単位、およびファイル内のルーチン単位であり、
    前記プログラム単位対応検出部は、
    ファイル単位およびルーチン単位で、前記2以上のプログラム群の間の対応を検出し、
    前記同一度取得部は、
    前記プログラム単位対応検出部が対応すると判断した2以上のプログラム群のファイル単位およびルーチン単位を比較し、同一の度合いである同一度を取得する請求項1から請求項7いずれか一項に記載の開発支援装置。
  9. 前記同一度は、3以上の値を採り得る類似度である請求項1から請求項8いずれか一項に記載の開発支援装置。
  10. 記録媒体は、
    ソフトウェアの稼働先を識別する稼働先識別子に対応付けられた2以上のプログラムを有する2以上のプログラム群が格納されるプログラム群格納部を具備し、
    プログラム単位対応検出部、同一度取得部、および比較結果出力部によって行われる開発支援方法であって、
    前記プログラム単位対応検出部が、プログラム群を構成する部分であり、予め決められた単位であるプログラム単位で、前記2以上のプログラム群の間の対応を検出するプログラム単位対応検出ステップと、
    前記同一度取得部が、前記プログラム単位対応検出部が対応すると判断した2以上のプログラム群のプログラム単位を比較し、同一の度合いである同一度を取得する同一度取得ステップと、
    前記比較結果出力部が、前記プログラム単位対応検出部が検出した対応の結果、および前記同一度取得部が取得した同一度を、前記2以上のプログラム群の間で対比可能な態様で出力する比較結果出力ステップとを含む開発支援方法。
  11. コンピュータがアクセス可能な記録媒体は、
    ソフトウェアの稼働先を識別する稼働先識別子に対応付けられた2以上のプログラムを有する2以上のプログラム群が格納されるプログラム群格納部を具備し、
    前記コンピュータを、
    プログラム群を構成する部分であり、予め決められた単位であるプログラム単位で、前記2以上のプログラム群の間の対応を検出するプログラム単位対応検出部と、
    前記プログラム単位対応検出部が対応すると判断した2以上のプログラム群のプログラム単位を比較し、同一の度合いである同一度を取得する同一度取得部と、
    前記プログラム単位対応検出部が検出した対応の結果、および前記同一度取得部が取得した同一度を、前記2以上のプログラム群の間で対比可能な態様で出力する比較結果出力部として機能させるためのプログラム。
JP2017007198A 2017-01-19 2017-01-19 開発支援装置、開発支援方法、およびプログラム Pending JP2018116517A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017007198A JP2018116517A (ja) 2017-01-19 2017-01-19 開発支援装置、開発支援方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017007198A JP2018116517A (ja) 2017-01-19 2017-01-19 開発支援装置、開発支援方法、およびプログラム

Publications (1)

Publication Number Publication Date
JP2018116517A true JP2018116517A (ja) 2018-07-26

Family

ID=62985137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017007198A Pending JP2018116517A (ja) 2017-01-19 2017-01-19 開発支援装置、開発支援方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP2018116517A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022525250A (ja) * 2019-05-22 2022-05-11 アビニシオ テクノロジー エルエルシー コンピュータプログラムシステムの静的及び実行時分析

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022525250A (ja) * 2019-05-22 2022-05-11 アビニシオ テクノロジー エルエルシー コンピュータプログラムシステムの静的及び実行時分析
US11487534B2 (en) 2019-05-22 2022-11-01 Ab Initio Technology Llc Static and runtime analysis of computer program ecosystems
JP7204011B2 (ja) 2019-05-22 2023-01-13 アビニシオ テクノロジー エルエルシー コンピュータプログラムシステムの静的及び実行時分析

Similar Documents

Publication Publication Date Title
US9389849B2 (en) Test case pattern matching
CN108459964B (zh) 测试用例选择方法、装置、设备以及计算机可读存储介质
US9454467B2 (en) Method and apparatus for mining test coverage data
CN106716398B (zh) 可视地区分用于测试的字符串
US8904352B2 (en) Systems and methods for processing source code during debugging operations
US20160259631A1 (en) Method and system for realizing software development tasks
CN104182335A (zh) 软件测试方法和装置
US11409631B2 (en) Verification automation apparatus, verification automation method, and computer-readable recording medium
CN109614325B (zh) 一种确定控件属性的方法及装置、电子设备和存储介质
US20160124795A1 (en) Evaluation method and apparatus
US20180329873A1 (en) Automated data extraction system based on historical or related data
US20100077382A1 (en) Computer-readable recording medium string a bug detection support program, similar structure identification information list output program, bug detection support apparatus, and bug detection support method
JPWO2017141893A1 (ja) ソフトウェア分析装置及びソフトウェア分析方法
JP2016076020A (ja) グループ化方法、グループ化装置、およびグループ化プログラム
US20190265954A1 (en) Apparatus and method for assisting discovery of design pattern in model development environment using flow diagram
JP2018116517A (ja) 開発支援装置、開発支援方法、およびプログラム
JP2007249826A (ja) テスト項目生成装置
JP2019074966A (ja) Sql文抽出装置、sql文抽出方法及びプログラム
JP6217440B2 (ja) シンボリック実行プログラム、シンボリック実行方法及びシンボリック実行装置
US20120066655A1 (en) Electronic device and method for inspecting electrical rules of circuit boards
JP5578625B2 (ja) プログラム分析装置、プログラム分析方法、及びプログラム
CN111813749A (zh) 文件过滤方法及装置、电子设备、存储介质
CN112699011A (zh) 统计增量代码覆盖率的方法、装置及电子设备、存储介质
JP2019144873A (ja) ブロック線図解析装置
JP5448907B2 (ja) プログラム検証装置、プログラム検証方法、およびプログラム