JP4876511B2 - ロジック抽出支援装置 - Google Patents

ロジック抽出支援装置 Download PDF

Info

Publication number
JP4876511B2
JP4876511B2 JP2005283261A JP2005283261A JP4876511B2 JP 4876511 B2 JP4876511 B2 JP 4876511B2 JP 2005283261 A JP2005283261 A JP 2005283261A JP 2005283261 A JP2005283261 A JP 2005283261A JP 4876511 B2 JP4876511 B2 JP 4876511B2
Authority
JP
Japan
Prior art keywords
extraction
command statement
dependency
logic
command
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.)
Expired - Fee Related
Application number
JP2005283261A
Other languages
English (en)
Other versions
JP2007094753A (ja
Inventor
繁 栗田
博文 新家
和之 青山
隆志 柏本
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005283261A priority Critical patent/JP4876511B2/ja
Priority to US11/496,888 priority patent/US20070074177A1/en
Publication of JP2007094753A publication Critical patent/JP2007094753A/ja
Application granted granted Critical
Publication of JP4876511B2 publication Critical patent/JP4876511B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Description

本発明は、情報システムで使用されているプログラムの解析を行い、プログラムからユーザの指定したロジックを抽出することを支援する、特にプログラムスライス技術に関する。
従来から、プログラム中の起点情報を元にして、その起点に影響を与えている若しくは与えられているプログラムの一部分を抽出する技術として、プログラムスライス技術があった。近年、このプログラムスライス技術は現行のシステム(レガシーシステム)を構成しているプログラムから、ユーザの指定するロジックを抽出できる技術として、注目を集めている。
この技術は、プログラム中の命令文間の関連を依存グラフと呼ばれるグラフに纏め、この依存グラフから起点として指定した命令文に影響を与えている命令文、若しくは影響を与えられている命令文を抽出する技法である。プログラムスライスでは命令文間の関連をデータ依存関連と制御依存関連の2つに分類しており、データ依存はある命令文で更新したデータを他の命令文で参照している関係、制御依存は命令文の実行条件を制御するような関連を示している。
また、依存グラフを用いて特定のプログラム部分を取り出す方法には、フォワードスライスとバックワードスライスの2種類がある。フォワードスライスとは、スライス処理を開始する起点となる命令文を選択して、そこから依存グラフをプログラムの実行順に辿り、その起点が影響を及ぼす命令文を抽出する方法がある。
また、バックワードスライスは、スライス処理を開始する起点となる命令文を選択し、依存グラフをプログラムの実行順とは逆方向に溯ることによって、その起点に影響を与える命令文を抽出する方法である。
プログラムスライスを用いてレガシーシステムを構成するプログラムからユーザの指定するロジック(サブルーチン)を抽出するシステムとして、特許文献1のシステムが知られている。このシステムでは、特定のインターフェイス情報を選択してそこからプログラムスライスを実行することによって、その情報に関係している命令文を抽出することも可能であると記載されている。
特開2005−18114号公報
ユーザが抽出したい機能が含まれているプログラムが特定できており、さらにこの機能の論理的なインプットとアウトプットがある程度分かっているような場合、ユーザが期待しているロジックの抽出結果とは、ユーザの指定した入力項目のみから、ユーザの指定した出力を計算するようなロジックであると考えられる。これはレガシーシステムの再生等を行う場合に頻繁に発生する状況である。
しかし、特許文献1のシステムでは、ユーザの指定した項目からプログラムスライスを実行することによって、プログラム中からユーザの指定したロジックを抽出することが可能であると主張してはいるものの、その具体的な方法については言及されていない。
その為、フォワードスライスを適用してロジック抽出を行った際に、プログラムの実行させる上で必要なロジックを抽出できない事やバックワードスライスを適用してロジック抽出を行った際にその結果にはユーザの必要としていない命令文が含まれてしまう、というプログラムスライスをロジック抽出に適用した際に発生する本質的な課題を解決できていない。
さらに、ユーザがこの方法を用いてユーザの意図している入力のみから、ユーザの意図している出力を抽出又は作成しようとした場合、抽出したロジックを一度理解して、ユーザの指定しなかった入力からの影響を排除するための修正を行わなければならない。そのため修正個所の特定に時間が掛かってしまう、修正個所を間違えるという課題が発生することも考えられる。
本発明では、既存システムを構成しているプログラムに対して、ユーザに抽出したいロジックの入力情報を指定させ、プログラム中の命令文ごとに特定のロジックとして抽出する必要性についての判定を行う。ここで、特定ロジックとして解析対象プログラムから抽出する必要性を以下のように分類する。まず、ユーザの指定した入力のみから影響を受けている命令文は抽出対象となる命令文、つぎにユーザの指定した入力と指定しなかった入力の両方から影響を受けている命令文は修正候補となる命令文、最後にユーザの指定しなかった入力のみから影響を受けている命令文は抽出対象とならない命令文と分類し、それぞれの命令文を区別して表示する。なお、ユーザには入力起点だけでなく出力起点も指定させ、ロジックの抽出範囲を狭めてもよい。
ユーザに対してはディスプレイ装置等を通じ、抽出対象となる命令文、判定が必要な命令文、抽出対象とならない命令文ごとに分類してその結果を表示する。このような方法で、プログラムからユーザに指定されたロジックを抽出する為の修正個所を示すことによって、ユーザが既存システムから指定したロジックを抽出する過程を支援する。
本発明のシステムによって、既存のプログラムを参照しながらユーザが指定した入力からユーザが指定した出力を計算するロジックを抽出または作成することができる。
以下に本発明の実施の形態を説明する。
(概要)
以下、本発明の実施例を図面を用いて詳細に説明する。
図1は、ロジック抽出支援システム全体構成図を示している。システムはバス等の接続手段で接続されたCPU141、ディスプレイ装置142、キーボード装置143、マウス等の指示装置144と、メモリ120、及びメモリ上に置かれたプログラム131〜134からなる。また110は記憶装置を示しており、111〜112はディスク装置上に置かれたデータである。なお、対象プログラム111は、本発明システムが解析対象とするプログラム及び本システムによって修正されたプログラムの集合である。
図2に記載されているフローチャートを用いて、ロジック抽出支援システムの制御部の機能について説明する。制御部の機能は131〜134の機能からユーザに実行する機能を指定させ、その機能を実行する。
まず、図1のプログラム解析部132はキーボード143や指示装置144からユーザによって指定されたプログラム名をキーとして、解析対象のプログラムの集合111を検索して解析するプログラムを取得する(ステップ201)。
次に、ロジック抽出の起点となる入力起点や出力起点をユーザに指定させ、起点情報をロジック抽出部133に与える(ステップ202)。
次に、特定ロジック抽出機能を実行することによって、抽出対象となる命令文、ロジック抽出の際に修正候補となる命令文、抽出対象とならない命令文に分類して、その結果をロジック抽出結果112に登録する。なお特定ロジック抽出機能203については以下で詳細に説明を行う(ステップ203)。
表示部134は112に格納された依存情報を取得して、抽出する命令文、修正候補の命令文、抽出しない命令文に分類してディスプレイ装置142に表示する。さらにディスプレイ装置142に表示したロジック抽出の結果に対して、ユーザにキーボード143からプログラムを修正させる。そして、その結果を取得したロジック修正/登録部は修正したプログラムを解析対象ソースとして登録する。(ステップ204)
上記のステップ(201〜204)をプログラムの修正が終了するまで繰り返し行い、プログラムの中に修正候補の命令文がなくなったときにシステムを終了する。
次に図12のメニュー画面を用いて制御部の機能を具体的に説明する。まずユーザに“解析対象プログラムの取得/登録”2701を選択させ、解析対象のプログラムを111から取得する。
解析対象プログラムの取得後、ユーザに“プログラム解析機能”2702の選択させ、プログラム解析部132を起動して依存情報を作成し、その結果を依存情報112に登録する。依存情報とは、命令文情報テーブル601、ワード情報テーブル602、制御依存情報テーブル603、データ依存情報テーブル604のことを指している。これらのテーブルについては以下で詳細な説明を行う。
次に、ユーザに“入出力起点の登録”2703を選択させ、入出力登録用の画面を呼び出して、ユーザに抽出対象となる入力データ項目をこの画面から登録させる。そして登録された入力情報をワード情報テーブル602に登録する。なお、ロジックの抽出範囲を狭めるために入力起点の取得の際に出力起点情報を取得してもよい。
入出力起点の登録後にユーザに“特定ロジック抽出機能実行”2704を選択させ、ロジック抽出部133を実行してその結果をもとに、依存情報に格納されている命令文情報テーブル601とワード情報テーブル602を更新する。
特定ロジックの抽出後にその抽出結果を表示するときは、ユーザに“ロジック抽出結果表示/修正機能実行”2705を選択させ、表示部134が起動して抽出結果を図28のソース表示画面に表示する。そしてロジックの修正候補となる命令文があるときは、ユーザに図30に示すロジック修正画面からプログラムの修正を促し、その結果を解析対象プログラムとして対象プログラム111に登録する。
また、図28のソース表示の結果、ユーザがロジックの修正が無いと判断した時は、終了ボタン2707を押下させ最終的なロジックの抽出結果を対象プログラム111に格納して処理を終了する。
次に、外部記憶装置について説明を行う。まず、対象プログラム111には解析対象となるプログラム及び図30のロジック修正画面からユーザに修正されたプログラムが格納され、依存情報112には図6に示されている各テーブルが格納されている。
これらのテーブルの説明を行うと、601の命令文情報テーブルは解析対象のプログラムを命令文単位にレコードに登録しているテーブル、602のワード情報テーブルは解析対象のプログラムをデータ項目単位にレコードに登録しているテーブルである。また603の制御依存情報には条件文とその条件文に制御をうける命令文の関連を登録し、604のデータ依存情報テーブルには、データ項目を更新している命令文とそのデータ項目を参照している命令文の関連を登録する。また図6の各テーブルを結んでいる線はこれらのテーブル間の関連を示している。
次に、図3に示す特定ロジック抽出機能の全体フローチャート及び特定ロジック抽出機能のサブルーチンである図4のロジック抽出処理のフローチャートと図5必要ロジック判定処理のフローチャートの説明を行う。これはステップ203の詳細を示したものである。
特定ロジック抽出機能203とは、依存情報112とユーザに指定された入出力情報から、解析対象のプログラムをユーザによって指定された入力情報のみから影響される命令文及びデータ項目、ユーザに指定されなかった入力から影響を受ける命令文及びデータ項目、指定された入力と指定されなかった入力の両方から影響を受ける命令文及びデータ項目に分類する機能である。なお、ユーザに指定されなかった入力から影響を受ける命令文は、この入力のみから影響を受ける命令文としてもよい。
まず、図3のフローチャートの概要についての説明を行う。ワード情報テーブル602のレコードのうち、入力起点に指定された命令文番号とデータ項目名の登録されているレコードの着目区分に“○”を登録し、それ以外の入力項目については着目区分に“×”を登録する。(ステップ301)。
次に、図5に示す必要ロジック判定処理を行って命令文情報テーブル601のレコードのうち入力起点である命令文の登録されているレコードの抽出区分にその評価結果を登録する(ステップ302)。
ユーザに指定された出力命令文と出力データ項目のセットである出力起点情報を取得する(ステップ303)。
ロジック抽出処理304を実行して、出力起点が影響を受ける命令文、データ項目の抽出区分、着目区分の評価を行う(ステップ304)。
以下で図7に示したプログラムからロジック抽出を行う過程を例にあげ、図3のフローチャートの説明を行う。まず、ロジック抽出機能で使用する各テーブル及びそれらを構成しているデータ項目の説明を行う。図8、図10、図12、図13、図14はプログラム解析機能201の実行の結果作成される命令文情報テーブル、ワード情報テーブル、制御依存情報テーブル、データ依存情報テーブル、依存グラフを示している。図14の依存グラフとは、図12の制御依存関連と図13のデータ依存関連を一つに纏めたグラフである。なお、図14中の破線はデータ依存を示しており、実線は制御依存を示している。
つぎに各テーブルのデータ項目についての説明を行う。まず図8の命令文情報テーブルの命令文番号801には命令文ごとに項番を登録し、命令文802には解析対象プログラムを命令文単位に登録する。又、抽出区分803には、後述する必要ロジック判定処理の評価結果を登録する。評価の結果、抽出対象となる命令文については抽出区分に“1”を、抽出するには修正が必要な命令文については“2”を、制御依存元である条件文が抽出対象となれば抽出対象となる命令文については“3”を、抽出対象とならない命令文については“5”を登録する。さらに、図10のワード情報テーブルのデータ項目について説明を行う。
まず、命令文番号1001は、前述の命令文情報テーブルに登録した命令文番号と同一の番号をデータ項目単位に登録し、データ項目名1002には解析対象プログラムをデータ項目単位に分割して登録する。着目区分1003には後述する必要ロジック判定処理のデータ項目の評価結果を登録する。評価の結果、抽出対象となるデータ項目には “○”を、抽出対象となるか判定が必要なデータ項目には“△”を、抽出対象にはならないデータ項目には“×”を登録する。また、参照/更新区分1004には登録したデータ項目が他のデータ項目を参照している場合には“参照”を登録し、命令文中で更新されているデータ項目には“更新”を登録する。図12の制御依存情報テーブルの依存元命令文番号1201には制御依存の依存元となっている命令文番号を登録し、依存先命令文番号1202には制御依存の依存先となっている命令文番号を登録する。図13のデータ依存情報テーブルの依存元命令文番号1301にはデータ依存の依存元となっている命令文番号を登録し、依存先命令文番号1303にはデータ依存の依存先となっている命令文番号を登録する。またデータ依存元とデータ依存先のデータ項目名称は変わらないと仮定しているため、データ項目1302にはデータ依存の対象となっているデータ項目名を登録する。
以下で図7に示したプログラムから特定のロジックを抽出する過程を具体的に説明する。まずユーザの指定した入力起点情報であるワード情報1006〜1008については、着目区分に“○”を登録して、それ以外の入力データ項目1005と1009の着目区分には“×”を登録する。(ステップ301)
つぎに入力文ごとに、図5に示している必要ロジック判定処理を行って、入力となる命令文804〜808の抽出区分に評価結果を登録する。なお、図14の依存グラフ中の、1402〜1404で示した命令文は、ユーザの指定した入力起点を含む命令文を示している(ステップ302)。
次に、ユーザに出力起点として指定された命令文情報809、810を取得する。
なお、図14の依存グラフ中の1412と1413で示した命令文は、出力起点の命令文である(ステップ303)。
ステップ303の実行後、ロジック抽出処理を実行して入力文以外の各命令文、データ項目の評価を行う(ステップ304)。以下でロジック抽出処理の詳細をそのステップごとに示す。
まずロジック抽出処理について図4のフローチャートを用いてステップごとに説明を行う。ロジック抽出処理を出力起点となっている命令文から実行して、その依存元命令文の抽出区分が評価されているかの確認を行い、すべての依存元命令文で抽出区分が評価されていた場合はステップ405に遷移し、評価されていない依存元命令文があったときは402に遷移する(ステップ401)。
ステップ401で確認した、抽出区分が評価されていない依存元命令文のうちから任意の一つの依存元命令文を選択する(ステップ402)。
ステップ402で選択した、依存元命令文から再帰的にロジック抽出処理を呼び出す(ステップ403)。以上のようにすべての依存元命令文で抽出区分が未評価となっていない命令文に到達するまで、各命令文でロジック抽出処理403の再帰呼び出しを繰返し行う。
各依存元の抽出区分が評価されている命令文に到達した場合には、ステップ401の判定からステップ405の必要ロジック判定処理を実行する。この必要ロジック判定処理については後で図5のフローチャートを用いて説明を行うが、この処理によって着目している命令文の抽出区分を評価する(ステップ405)。
そして、ステップ405で評価した抽出区分や着目区分の情報を命令文情報テーブル601、ワード情報テーブル602に登録して、着目している命令文から呼び出したロジック抽出処理を終了させる(ステップ406)。
上記のロジック抽出処理が終了すると、システムの着目点は終了したロジック抽出処理の直前に呼び出したロジック抽出処理に遷移する。つまりこのロジック抽出処理終了と同時に、依存先の命令文から呼び出したロジック抽出処理に着目点が遷移する。
着目点が依存先の命令文から呼び出されたロジック抽出処理に遷移すると、ステップ403のロジック抽出を呼び出した時点で処理が停止しているため、ステップ404からロジック抽出処理を再開する。
ステップ404では、着目している命令文の依存元命令文の抽出区分はすべて評価されているかを確認して、すべての依存元命令文で抽出区分が評価されていれば、ステップ406に遷移して、評価されていない依存元命令文が存在すればステップ402に遷移する。以上の処理を各命令文から呼び出されたロジック抽出処理がすべて終了するまで繰返し行う。
次に、図14の依存グラフを用いて図7に示したプログラムからロジック抽出処理について具体的な説明を行う。
1413がユーザに出力起点として指定された場合、依存元命令文を調査すると1407と1411の抽出区分が未評価であると判別可能になる(ステップ401)。
そこで、1411と1407から着目する命令文を一つ選択する。(ステップ402)
ステップ304で命令文1411を選択した場合には、1411からロジック抽出処理を再帰的に呼び出す。(ステップ403)
命令文1411から再度ステップ303の処理を行い、1411の依存元命令文の抽出区分が全て評価されているかを判定する。(ステップ404-2)
依存元の命令文は1402、1403、1409が存在するが、そのうち1402と1403については抽出区分に“1”が既に登録されている為、評価されていない1409からロジック抽出処理を呼び出す。(ステップ402-2、403-2)
上記の処理を依存元の命令文の抽出区分がすべて評価されている命令文に達するまで行う。その結果、溯った依存元命令文ごとにロジック抽出処理を呼び出すことになる。
上記の例では、1406まで命令文を溯った時点で、依存元の命令文の抽出区分がすべて評価されることになるので、ここで、後述する必要ロジック判定処理を実行して着目している命令文1406の評価を行う。なお同時に命令文1406に含まれるデータ項目の評価も行う。
命令文1406の抽出区分とそのデータ項目の着目区分の評価結果を図8命令文情報テーブルと図10のワード情報テーブルに登録して、1406から呼び出したロジック抽出処理を終了させる。1406で呼び出されたロジック抽出処理が終了すると、着目地点は1407となり、この命令文で呼び出ていたロジック抽出処理をステップ404から実行する。
まず、着目している命令文である1407の依存元命令文である1405と1406の抽出区分を取得する。その結果、命令文1407の依存元命令文の抽出区分は全て評価されたので、図4に示す必要ロジック判定処理をもとに1407の抽出区分及び1407に含まれているデータ項目の評価の行い、その結果を図8の命令文情報テーブル、図12のワード情報テーブルに登録する。さらに1407から呼び出したロジック抽出処理を終了させると、着目する命令文は1407から1409に遷移する。以上のように各命令文で呼び出したロジック抽出処理を順次終了させ、出力起点の抽出区分と着目区分がすべて決定したら、ステップ203に示す特定ロジック抽出機能の処理は終了となる。
(必要ロジック判定処理)
図5は必要ロジック判定処理のフローチャートを示しており、着目している命令文の抽出区分の評価と、命令文中の更新データ項目の着目区分の評価を行う。以下フローチャートのステップごとに説明を行う。
まず、着目している命令文中の参照項目のデータ依存元を検索して、その着目区分を取得する(ステップ501)。
つぎに着目している参照項目のデータ依存元が複数あれば504の処理を行い、複数存在しなければ取得した着目区分を着目している参照項目の着目区分に反映させる(ステップ502、503)。
着目している参照項目に対して複数のデータ依存元が存在しているときは、取得した着目区分のうち最も抽出対象から遠い評価をそのデータ項目の評価としてワード情報テーブルに登録する(ステップ504)。なお “○”→“△”→“×”の順に抽出対象から遠い評価とする。
着目している命令文の参照項目の着目区分が全て“○”と判定された場合、ステップ506に遷移する(ステップ505)。
まず、着目している命令文中の着目区分に全て“○”が登録されていた場合には、更新項目にも“○”を付与する。なお着目している命令文が、条件文で更新項目が無い場合には、仮想的に条件文の返り値に対して着目区分を付与してもよい。(ステップ506)
ステップ506によって更新項目若しくは返り値に○の付与された命令文については、その命令文番号から制御依存情報テーブルを検索することにより、制御依存元の命令文の抽出区分を取得する(ステップ507)。
制御依存元の命令文が全て“1”若しくは制御依存元命令文が無い場合は、着目している命令文の抽出区分に“1”を登録する。(ステップ508)
また、制御依存元の命令文の抽出区分に“1”以外のものが登録されている場合、着目している命令文の抽出区分に“3”を登録する。(ステップ509)
ステップ505で命令文中の参照項目の着目区分に“○”“△”“×”が2種類以上混在していると判定された場合又は“△”のみで構成されていると判定された場合、更新項目に、“△”を付与する。なお着目している命令文が、条件文で更新項目が無い場合には、条件文の返り値に対して仮想的に着目区分“△”を付与してもよい。(ステップ510)
ステップ510によって更新項目若しくは返り値に“△”の付与された命令文については、その命令文情報テーブルの抽出区分に“2”を登録する(ステップ511)。
ステップ505で取得した命令文中の参照項目の着目区分に“×”が登録される(例えば全ての着目区分に)と判定された場合には、更新項目にも、“×”を付与する。なお着目している命令文が条件文で、更新項目が無い場合には、条件文の返り値に対して着目区分“×”を付与してもよい(ステップ512)。
ステップ512によって更新項目若しくは返り値に“×”の付与された命令文については、その命令文情報の抽出区分に5を登録する。(ステップ513)
ここで、命令文情報903の抽出区分の評価と、それにこの命令文の更新項目であるワード情報1104の着目区分の評価を例にとり具体的に必要ロジック判定処理の説明を行う。まず着目している命令文番号をキーとして、参照/更新区分が参照になっているワード情報テーブルを検索すると、レコード1105が取得できる。
ワード情報1105のデータ依存元である、1101、1102、1103を調査すると、すべてのデータ項目で依存元が単一であり、これらの着目区分に“○”が登録されていることが分かるので、ワード情報1105の着目区分にも“○”を登録する。(ステップ501〜503)
命令文情報903の構成要素である参照項目1105の着目区分のすべてに“○”が登録されたので、命令文情報903の構成要素である更新項目1104の着目区分にも“○”を登録する。(ステップ505、506)
更新項目1105の評価が終了したので、1105が含まれている命令文である903が制御依存元命令文の抽出区分を調査する。903の制御依存元命令文を検索して命令文情報901を取得すると抽出区分に“2”が登録されているので、命令文情報903の抽出区分に“3”を登録する。(ステップ509)
(プログラム中にループを含む場合の特定ロジック抽出機能)
上記の実施例では、解析対象プログラムにループ処理の無い場合を例あげて説明を行ったが、これはループのあるプログラムについて解析を行った場合には特別な処理が必要になる為である。なぜなら、解析対象となるプログラムの中にループ処理が含まれる場合の命令文2503と命令文2505の関連からも分かるように、ループ処理内では命令文間の依存性が循環している為その評価を決定することが出来ないからである。
そこで、下記に示す処理を実行することによってループがない場合と同様に命令文やデータ項目の評価を行うことができるようにしている。
まずこの処理で用いるテーブルについて説明する。この処理で用いるテーブルは、ループのない場合と同様に、命令文情報テーブル601、ワード情報テーブル602、制御依存情報テーブル603、データ依存情報テーブル604の4つであるが、命令文情報テーブルについては、1901評価状態区分と1902調査開始フラグを登録する点で、従来の命令文情報テーブルと異なっている。追加されたデータ項目であるについて説明を行うと、評価状態区分1901には着目している命令文の抽出区分の評価状態が入力され、追跡開始フラグには依存性の循環している命令文中の抽出区分を決定する為の起点となる命令文に付加するフラグである。
これらのデータモデルを用いてループを含むプログラムの解析を行った場合の処理について説明を行う。まず、着目する命令文の依存元命令文の抽出区分に“1”〜“5”のいずれかを仮定してロジック抽出処理を行い、ループ内の命令文の評価を行う。そして抽出区分に仮定値を登録した命令文について、その仮定した抽出区分の評価と必要ロジック判定処理の評価結果と一致しているかを確認し、仮定した抽出区分と必要ロジック判定処理の結果が一致していなければ別の抽出区分を仮定する。この処理を仮定した評価と必要ロジック判定処理の評価が一致するまで繰返し行い、一致した際の抽出区分を確定した抽出区分として登録する。そのため、抽出区分の評価の状態が仮定値であるのか、決定値であるのかを区別する必要があり、図19の命令文情報テーブルに示されている通り、抽出区分の評価の状態を示す評価状態区分という項目を追加する。この評価状態区分には、抽出区分の評価が未決定のうちは“評価中”を登録し、抽出区分が仮定値であるときは“仮決め”を登録して、抽出区分が決定値である場合は“決定”を登録する。また必要ロジック判定処理を実行する場合には評価状態区分についての評価も行い、依存元の命令文の評価状態区分に“仮決め”が含まれていれば着目している命令文の評価状態区分も“仮決め”とし、依存元命令文の評価状態区分の評価が“決定”のみであれば着目している命令文の評価状態区分にも“決定”を登録する。また、依存性の検出された命令文では追跡開始フラグに“1”を登録してループ評価処理の起点とする。
なお、図15、図16のフローチャートはループ処理を含むプログラムからロジックを抽出する方法を示したフローチャートである。ループがある場合も、基本的な処理はループの無い場合と同様に、図3のフローチャートの通りに行われる。ただし、ロジック抽出処理については解析対象プログラムにループが含まれている場合の処理とループが含まれていない処理ではその処理内容が異なる。そのため、この部分をループ評価処理としてサブルーチン化して追加したフローチャートを図15に示し、さらに図16、図17で切り出したループ評価処理の説明を行う。なお説明を分かりやすく行うため、図15〜図17の説明を行ってから、実施例の説明を行う。
まずは、図15〜図17のフローチャートを用いて解析対象のプログラムにループ処理が含まれている場合の説明を行う。なお図15については解析対象のプログラムにループがない場合のフローチャートと異なる処理についてのみ説明を行う。
解析対象のプログラムにループが含まれている場合と含まれていない場合とで異なる処理はステップ1501、ステップ1504、ステップ1509の3つの処理である。
まず、ステップ1501ではロジック抽出処理を呼び出した命令文の調査状態区分に“評価中”を登録する。
そしてステップ1504で依存元の命令文の調査状態区分に“評価中”が登録されていた場合、依存性の循環を検出したと判定して、ステップ1509に遷移する。
1509のループ評価処理では依存性の循環している命令文の集合の抽出区分を決定する。
続いて図16のループ評価処理について説明を行う。
まず、1504で検出された評価状態区分に“評価中”の登録されている命令文を選択する(ステップ1601)。
ステップ1601で選択した命令文の抽出区分に“1”を、評価状態区分に“仮決め”を、追跡開始フラグに“1”を登録する(ステップ1602)。
抽出区分に仮定値“1”を登録した後、図17にしめすトライアンドエラー処理を実行して依存性の循環している命令文の抽出区分を決定する(ステップ1603)。
続いて、図17のトライアンドエラー処理についての説明を行う。
まず、依存元命令文の追跡開始フラグに“1”が登録されているかを確認して、“1”が登録されていればステップ1705に遷移して、“1”が登録されていなければ1702に遷移する(ステップ1701)。
追跡開始フラグに“1”が登録されていないときは、依存元命令文のうち評価状態区分に“評価中”または“仮決め”が登録されている命令文を選択する(ステップ1702)。
次に、ステップ1702で選択した依存元命令文から、トライアンドエラー処理を再帰的に呼び出す(ステップ1703)。以上の1701から1703までの処理を追跡開始フラグに“1”が登録されている命令文に到達するまで、依存先の各命令文で行う。このことによって依存性の循環している各命令文でトライアンドエラー処理を呼び出すことになる。
そして、依存元命令文に追跡開始フラグ“1”が登録されている場合には、必要ロジック判定処理1705を行い着目している命令文の抽出区分を評価する(ステップ1705)。
次に、評価を行った命令文の登録されている命令文情報テーブルに追跡開始フラグ“1”が登録されているか確認して、登録されていれば1708に登録されていなければ1707に遷移する(ステップ1706)。
ステップ1706で追跡開始フラグに“1”が登録されていないと判定されたときは、評価した抽出区分、着目区分、評価状態区分を命令文情報テーブル、ワード情報テーブルに登録する(ステップ1707)。
ステップ1707で追跡開始フラグに“1”が登録されていると判定されたときは、すでに仮決めされている抽出区分の内容と必要ロジック判定処理1705の結果が一致するかを確認し、一致していれば1709に、一致していなければ1710に遷移する(ステップ1708)。
ステップ1708で、命令文情報テーブルにすでに登録されている抽出区分の情報と必要ロジック判定処理の内容が一致したときは、着目している命令文の評価状態区分に“決定”を登録していま着目している命令文から呼び出したトライアンドエラー処理を終了する(ステップ1709)。
ステップ1708で、命令文情報テーブルにすでに登録されている抽出区分の情報と必要ロジック判定処理の内容が一致しなかったときは、追跡開始フラグに“1”を登録した命令文に仮定している抽出区分は“1”であるかを判定し、抽出区分に“1”が登録されている場合は、着目している命令文の抽出区分に“3”を登録し、登録されていない場合はステップ1712に遷移する(ステップ1710、ステップ1711)。
ステップ1712では追跡開始フラグに“1”を登録した命令文で仮定している抽出区分は“3”であるかを判定し、抽出区分に“3”が登録されている場合はステップ1713でその命令文の抽出区分に“5”を登録し、登録されていない場合はステップ1714に遷移する(ステップ1712、1713)。
ステップ1714では、追跡開始フラグに“1”を登録した命令文で仮定している抽出区分は“5”であるかを判定し、抽出区分に“5”が登録されている場合はステップ1715でその命令文の抽出区分に“2”を登録する(ステップ1714、1715)。
以上のステップ1710〜1715の処理を行うことによって追跡開始フラグに“1”の登録されている命令文に仮定してある抽出区分と一致する抽出区分を見つけ、この評価状態区分に“決定”を登録する。このようにして、依存性の循環している各命令文で呼び出したトライアンドエラー処理で着目している命令文の抽出区分の評価を行い、そのトライアンドエラー順次終了させる。
図18は、本実施例での解析対象プログラムであり、図19、図22、図24、図25は特定ロジック抽出機能203実行前の命令文情報テーブル、ワード情報テーブル、データ依 存情報テーブル、制御依存情報テーブルを示している。また、図20は特定ロジック抽出処理中のループ評価処理実行直前の命令文情報テーブルを、図21、図23は特定ロジック抽出機能203実行後の命令文情報テーブル、ワード情報テーブルを示している。実施例ではループ処理を含むプログラムからロジックを抽出する方法について、図17のプログラムを解析する過程を例にとり具体的な説明を行う。
図26の依存グラフを例にとって、解析対象のプログラムにループ処理を含む場合のロジック抽出処理について具体的に説明する。なお、図26に示す依存グラフは、命令文2607が影響を受ける命令文を抜粋した依存グラフとなる(抜粋される命令文のみで構わない)。なお、システムとしては依存情報112中の制御依存情報603やデータ依存情報604から着目している命令文の依存元情報を取得して、その命令文の着目区分や抽出区分を評価するが、これらの各テーブルの機能については前述している為、以下の説明では各命令文間のデータ依存関係、制御依存関係を纏めたグラフである依存グラフ図26を用いて具体的な説明を行う。
まず、命令文2607が出力起点として指定された場合、この命令文2607の評価状態区分に評価中を登録する(ステップ1501)。
さらに依存先命令文の抽出区分を確認すると、命令文2604の抽出区分が未評価となっているので、命令文2604を選択する(ステップ1502、1503)。
命令文2604の評価状態区分を確認すると“評価中”は登録されていないので、命令文2604からロジック抽出処理を再帰的に呼び出す(ステップ1504、1505)。
以上の再帰呼出を繰り返し行うと、命令文2605から呼び出したロジック抽出処理のステップ1504で依存元の命令文である命令文2603の評価状態区分に“評価中”が登録されていると判定される。これは依存グラフの図25に示される通り命令文2603と命令文2605の間で依存性が循環している為である。
ここで、依存元の命令文の評価状態区分に“評価中”が登録されていると判定されるので、図16で示したループ評価処理を実行して、ステップ1504で検出した依存性の循環している命令文の抽出区分やその命令文を構成しているデータ項目の着目区分を評価する(ステップ1509)。
引き続き図26の依存グラフを用いて、図16で示したループ評価処理を説明する。
まず、命令文2605の依存元命令文のうち評価状態区分が“評価中”の命令文を検索すると命令文2603であることが分かるので、命令文2603を選択する(ステップ1601)。
ステップ1601で選択した命令文2603の抽出区分に“1”を評価状態区分に“仮決め”を追跡開始フラグに“1”を登録する(ステップ1602)。
命令文2603の抽出区分を仮定したあとで、トライアンドエラー処理を実行して、依存性の循環している命令文の抽出区分の評価を行う。(ステップ1603)
さらに図26の依存グラフを用いて、図17で示したトライアンドエラー評価処理を説明する。
命令文2603の依存元命令文のうち追跡開始フラグに“1”の登録されている命令文があるかの判定を行うと、追跡開始フラグに“1”が登録されている命令文がないのでステップ1702に遷移する(ステップ1701)。
次に、抽出区分が未評価である2605を選択してこの命令文2605から再帰的にトライアンドエラー処理を呼び出す(ステップ1702 ステップ1703)。
命令文2605の依存元命令文で追跡開始フラグに“1”の登録されている命令文を確認すると、命令文2603の追跡開始フラグに“1”が登録されていることがわかる。そこで必要ロジック判定処理を実行して命令文2605の抽出区分を評価する(ステップ1705)。
命令文2605の追跡開始フラグを確認すると、“1”が登録されていないので、ステップ1705の評価結果を抽出区分に登録して、評価状態区分には“仮決め”を登録して、命令文2605から呼び出したトライアンドエラー処理を終了する。(ステップ1706、1709)。
命令文2605から呼び出したトライアンドエラー処理が終了したので、着目地点は命令文2603で呼び出したトライアンドエラー処理へ遷移する。命令文2603ではステップ1703で処理が停止しているのでステップ1704から処理を再開する。ステップ1704の結果、命令文2603の依存元命令文の抽出区分は全て評価されていることが分かるので、命令文2603で必要ロジック判定処理を実行すると命令文2603の抽出区分は“1”と評価される。(ステップ1704、1705)。
ここで、命令文2603を確認すると、追跡開始フラグに“1”、抽出区分に“1”が登録されていることが分かる。ステップ1705の必要ロジック判定処理の結果、命令文2503の着目区分は“1”と評価されており、既に登録されている内容と一致する為、評価状態区分の内容を“評価中”から“決定”に変更し、命令文2603から呼び出したトライアンドエラー処理を終了する(ステップ1706、1708、1709)。
なお今回の実施例では、ステップ1708で必要ロジック判定処理の結果と既に登録されている抽出区分が一致した為、ステップ1710から1715の説明は行わなかったが、ステップ1715で抽出区分が一致しなかった場合は、抽出区分を“3”→“5”→“2”の順番で仮定して必要ロジック判定処理の結果と抽出区分に仮定した結果が一致するまで処理を繰り返し行う。
以上で各命令文から呼び出した全てのトライアンドエラー処理が終了するので、着目地点はロジック抽出処理を呼び出した命令文2605に遷移する。命令文2605から呼び出したロジック抽出処理はステップ1509で停止している為、ステップ1509の必要ロジック判定処理を実行してその結果を登録する。必要ロジック判定処理の結果は抽出区分は“1”評価状態区分は“決定”となるのでその結果を登録してロジック2605から呼び出したロジック抽出処理を終了させる。
同様にして各命令文から呼び出したロジック抽出処理を順次終了させ、一連の処理を終了する。終了時点での命令文情報テーブルやワード情報テーブルの内容は図21、図23に示されている通りである。
(ロジック表示/修正機能)
ここでは、図2のフローチャート中の204に示される機能であるロジック表示/修正機能を図28〜図30を用いて説明する。まず、ソース表示部2801に解析対象となったプログラムを表示する。ソースの表示の際にはロジック抽出支援情報として命令文単位に抽出区分を提示する。そして、ユーザに修正する命令文番号を指定させ、詳細表示ボタン2804を押下させることによって修正する命令文番号2802を取得して、修正する命令文を修正対象命令文表示部2901に表示する。表示の際には修正支援情報としてデータ項目単位に着目区分を提示する。なお2801の命令文、2901のデータ項目の分類方法としては、その抽出区分や着目区分ごとに色分けして表示してもよい。
なお、データ項目単位のロジック抽出支援情報が必要ないユーザについては修正ボタン2803を押下させロジックの修正を行わせてもよい。
ソース表示画面では、ユーザに修正対象のデータ項目名を2902に入力させ、その項目が2903で参照項目か更新項目か選択させることによって修正対象となるデータ項目を一意に決定する。さらに、修正対象として選択したデータ項目のバックワードスライスの結果を確認してそのデータ項目が影響を受けている命令文を確認したい場合には2904で“表示する”を選択して必要のない場合には“表示しない”を選択する。
ユーザに以上ことを入力させ、修正ボタン2905を押下させることによって図30ロジック修正画面に遷移する。
ロジック修正画面では3001に修正対象の命令文を表示する。なお2904でバックワードスライス結果を表示することを選択した場合にはその結果を修正対象命令文として3001に表示してもよい。
また、ユーザが表示結果を理解した結果、入力起点の追加が必要であると判断した場合は3002、3003の入力欄から起点の追加を行う。
以上のようにしてユーザにロジック修正をさせて、さらに他の修正がある場合には戻るボタン3004を押下させ図28ソース表示画面に遷移する。また、修正を終了するときには登録ボタン3005を押下させ、その修正結果を対象プログラム111に登録する。
以上述べたように、本発明のロジック抽出支援システムでは、既存のプログラムを参照しながら、ユーザの指定した入力からユーザの指定した出力を計算するロジックを作成する過程を支援することに利用することが出来る。
本発明の実施例のシステム全体構造を示すブロック図である。 制御部130の機能を説明するためのフローチャートである。 ステップ203の特定ロジック抽出機能を説明する為のフローチャートである。 ロジック抽出処理の詳細を示したフローチャートである。 必要ロジック判定処理の詳細を示したフローチャートである。 各テーブルの関連を示したER図である。 実施例で用いる解析対象のプログラムである。 解析対象のプログラムを命令文単位に登録している命令文情報テーブルである。 特定ロジック抽出機能実行後の命令文情報テーブルである。 解析対象のプログラムを命令語単位に登録しているワード情報テーブルである。 特定ロジック抽出機能実行後のワード情報テーブルである。 制御依存の依存元、依存先となっている命令文に付加された命令文番号を管理する制御依存情報テーブルである。 データ依存の依存元、依存先となっている命令文とそのデータ項目を管理している、データ依存情報テーブルである。 図7の解析結果を依存グラフに纏めたものである。 解析対象プログラムにループを含む場合のロジック抽出処理のフローチャートである。 ループ評価機能の説明を行う為のフローチャートである。 トライアンドエラー処理を説明する為のフローチャートである。 ループを含むプログラムであり、本プログラムを用いて実施例の説明を行う。 ループ評価を行う直前の命令文情報テーブルである。 トライアンドエラー処理実行直前の命令文情報テーブルである。 ループを含む場合の特定ロジック抽出処理実行後の命令文情報テーブルである。 特定ロジック抽出前のワード情報テーブルである。 特定ロジック抽出後のワード情報テーブルである。 図7のプログラム情報の登録された制御依存情報テーブルである。 図7のプログラム情報の登録されたデータ依存情報テーブルである。 図7のプログラム情報を纏めた依存グラフである。 制御部130の機能を説明するに用いる、メニュー画面である。 命令文単位に修正支援情報を表示する画面である。 データ項目単位に抽出支援情報を表示する画面である。 ユーザからのプログラムの修正を受け付ける画面である。
符号の説明
110…外部記憶装置、111…対象PGM、112…依存情報、120…メモリ、130…制御部、131…ロジック修正/登録部、132…プログラム解析部、133…ロジック抽出部、134…表示部、141…CPU、142…ディスプレイ装置、143…キーボード、144…指示装置

Claims (2)

  1. ユーザの指定したプログラムより、プログラムとして実行できる命令文の集合であるロジックを抽出すること又は抽出した結果を修正することを支援するロジック抽出支援装置であって、
    前記ユーザから指定された出力命令文および出力データ項目からなる出力起点情報を受け付ける指示手段と、
    当該ロジック抽出支援装置のメモリ上に格納された処理プログラムに従って、依存元命令文情報および当該依存元命令文情報の依存先を示す依存先命令文情報を対応付けて格納している制御依存テーブル、前記依存元命令文情報および前記依存先命令文情報に対応するデータ項目名を格納しているデータ依存情報テーブル、命令文毎に抽出する必要性を示す抽出区分を格納している命令文情報テーブルおよびデータ項目毎に抽出対象のとの関連性の遠さを示す3段階の区分を示す着目区分を格納しているワード情報テーブルを含む依存情報を用いて、前記制御依存テーブルおよびデータ依存情報テーブルから着目している命令文中の参照項目のデータ依存元である依存元命令文情報を検索して、検索された依存元命令文情報すなわち着目している依存先命令文中の参照項目の着目区分を、前記ワード情報テーブルから特定し、特定された前記着目区分が3段階中2段階以上混在する場合または3段階中の真中のみ構成されている場合に、当該命令文の抽出区分として抽出するには修正が必要な命令文であることを意味する情報を、前記命令文情報テーブルに登録し、登録された前記情報に従って、前記命令文又は当該命令文に含まれているデータ項目ごとに、抽出する必要性若しくは修正する必要性を判定する判定手段と、
    判定した結果を出力する手段とを有することを特徴とするロジック抽出支援装置。
  2. 請求項1に記載のロジック抽出支援装置において、
    前記判定する手段の判定結果に従って、プログラム中の命令文又はデータ項目を分類して表示する手段を有することを特徴とするロジック抽出支援装置。
JP2005283261A 2005-09-29 2005-09-29 ロジック抽出支援装置 Expired - Fee Related JP4876511B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005283261A JP4876511B2 (ja) 2005-09-29 2005-09-29 ロジック抽出支援装置
US11/496,888 US20070074177A1 (en) 2005-09-29 2006-07-31 Logic extraction support apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005283261A JP4876511B2 (ja) 2005-09-29 2005-09-29 ロジック抽出支援装置

Publications (2)

Publication Number Publication Date
JP2007094753A JP2007094753A (ja) 2007-04-12
JP4876511B2 true JP4876511B2 (ja) 2012-02-15

Family

ID=37895696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005283261A Expired - Fee Related JP4876511B2 (ja) 2005-09-29 2005-09-29 ロジック抽出支援装置

Country Status (2)

Country Link
US (1) US20070074177A1 (ja)
JP (1) JP4876511B2 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7376758B2 (en) * 2005-11-04 2008-05-20 Sun Microsystems, Inc. I/O dependency graphs
JP2007264863A (ja) * 2006-03-28 2007-10-11 Hitachi Ltd 業務使用解析装置
JP2009237762A (ja) * 2008-03-26 2009-10-15 Toshiba Corp プログラム解析装置、プログラム解析方法および解析プログラム
US8612954B2 (en) * 2009-08-17 2013-12-17 International Business Machines Corporation Fine slicing: generating an executable bounded slice for program
JP2012164264A (ja) * 2011-02-09 2012-08-30 Mitsubishi Electric Corp プログラム解析装置およびプログラム解析プログラム
US9566710B2 (en) 2011-06-02 2017-02-14 Brain Corporation Apparatus and methods for operating robotic devices using selective state space training
GB2500894A (en) * 2012-04-03 2013-10-09 Ibm Automatically deriving a command for starting a program in an operating system of a computer
US9764468B2 (en) 2013-03-15 2017-09-19 Brain Corporation Adaptive predictor apparatus and methods
US9242372B2 (en) 2013-05-31 2016-01-26 Brain Corporation Adaptive robotic interface apparatus and methods
US9384443B2 (en) 2013-06-14 2016-07-05 Brain Corporation Robotic training apparatus and methods
US9792546B2 (en) 2013-06-14 2017-10-17 Brain Corporation Hierarchical robotic controller apparatus and methods
US9314924B1 (en) 2013-06-14 2016-04-19 Brain Corporation Predictive robotic controller apparatus and methods
US9579789B2 (en) 2013-09-27 2017-02-28 Brain Corporation Apparatus and methods for training of robotic control arbitration
US9463571B2 (en) 2013-11-01 2016-10-11 Brian Corporation Apparatus and methods for online training of robots
US9597797B2 (en) 2013-11-01 2017-03-21 Brain Corporation Apparatus and methods for haptic training of robots
US9358685B2 (en) * 2014-02-03 2016-06-07 Brain Corporation Apparatus and methods for control of robot actions based on corrective user inputs
US9346167B2 (en) 2014-04-29 2016-05-24 Brain Corporation Trainable convolutional network apparatus and methods for operating a robotic vehicle
US9630318B2 (en) 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
US9717387B1 (en) 2015-02-26 2017-08-01 Brain Corporation Apparatus and methods for programming and training of robotic household appliances
US10471594B2 (en) * 2015-12-01 2019-11-12 Kindred Systems Inc. Systems, devices, and methods for the distribution and collection of multimodal data associated with robots
DE102017000063B4 (de) * 2016-01-14 2019-10-31 Fanuc Corporation Robotereinrichtung mit Lernfunktion
US10241514B2 (en) 2016-05-11 2019-03-26 Brain Corporation Systems and methods for initializing a robot to autonomously travel a trained route
US9987752B2 (en) 2016-06-10 2018-06-05 Brain Corporation Systems and methods for automatic detection of spills
US10282849B2 (en) 2016-06-17 2019-05-07 Brain Corporation Systems and methods for predictive/reconstructive visual object tracker
US10016896B2 (en) 2016-06-30 2018-07-10 Brain Corporation Systems and methods for robotic behavior around moving bodies
US10474663B2 (en) 2016-07-20 2019-11-12 Level 3 Communications, Llc System and method for improved data consistency in data systems including dependent algorithms
US10274325B2 (en) 2016-11-01 2019-04-30 Brain Corporation Systems and methods for robotic mapping
US10001780B2 (en) 2016-11-02 2018-06-19 Brain Corporation Systems and methods for dynamic route planning in autonomous navigation
US10723018B2 (en) 2016-11-28 2020-07-28 Brain Corporation Systems and methods for remote operating and/or monitoring of a robot
US10377040B2 (en) 2017-02-02 2019-08-13 Brain Corporation Systems and methods for assisting a robotic apparatus
US10852730B2 (en) 2017-02-08 2020-12-01 Brain Corporation Systems and methods for robotic mobile platforms
US10293485B2 (en) 2017-03-30 2019-05-21 Brain Corporation Systems and methods for robotic path planning

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5793369A (en) * 1991-12-06 1998-08-11 Lucent Technologies Inc. Apparatus for visualizing program slices
JPH0950379A (ja) * 1995-08-09 1997-02-18 Atr Tsushin Syst Kenkyusho:Kk プログラム意味保存コード移動装置
JP2816666B2 (ja) * 1996-05-17 1998-10-27 株式会社エイ・ティ・アール通信システム研究所 バグ自動検出装置
US7174536B1 (en) * 2001-02-12 2007-02-06 Iowa State University Research Foundation, Inc. Integrated interactive software visualization environment
US7149734B2 (en) * 2001-07-06 2006-12-12 Logic Library, Inc. Managing reusable software assets
JP3648710B2 (ja) * 2002-01-21 2005-05-18 株式会社日立製作所 プログラム解析システム
US7607066B2 (en) * 2002-06-26 2009-10-20 Microsoft Corporation Auto suggestion of coding error correction
JP4001286B2 (ja) * 2003-06-23 2007-10-31 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラム保守支援装置、プログラム保守支援方法、およびプログラム

Also Published As

Publication number Publication date
US20070074177A1 (en) 2007-03-29
JP2007094753A (ja) 2007-04-12

Similar Documents

Publication Publication Date Title
JP4876511B2 (ja) ロジック抽出支援装置
US10860551B2 (en) Identifying header lines and comment lines in log files
US9411788B2 (en) Methods and apparatus for improved navigation among controlled terms in one or more user documents
CN103098051B (zh) 搜索引擎优化助理
US11500894B2 (en) Identifying boundaries of substrings to be extracted from log files
US7562344B1 (en) Method, system, and computer program product for providing real-time developer feedback in an integrated development environment
US20060004528A1 (en) Apparatus and method for extracting similar source code
JP4395761B2 (ja) プログラムテスト支援装置およびその方法
US9811449B2 (en) Test scenario generation support device and test scenario generation support method
US9678628B2 (en) Method for generating control-code by a control-code-diagram
US11301643B2 (en) String extraction and translation service
US7853595B2 (en) Method and apparatus for creating a tool for generating an index for a document
JP2005300324A (ja) 被試験対象デバイスの測定データ解析方法、プログラム、および測定データ解析システム
JP2008204405A (ja) ソフトウェアのリグレッションテストシステム、リグレッションテストプログラムおよびリグレッションテスト方法
JP5747698B2 (ja) 要件管理支援装置
US10042638B2 (en) Evaluating documentation coverage
JP2006285707A (ja) 業務仕様作成支援システム及び方法
US20130326466A1 (en) Human Readable Software Program Test Step
US11461090B2 (en) Element detection
US20150186363A1 (en) Search-Powered Language Usage Checks
JP2009169573A (ja) 解析結果出力装置、及び解析結果出力方法
JP2006277282A (ja) モデル評価解析システムおよびモデル評価解析プログラム
JP7469999B2 (ja) 検索装置、検索方法、および検索プログラム
JP2008015879A (ja) 自然文を含む仕様の記述支援方法、プログラムおよびシステム
CN111930636B (zh) 图形编程作品检查方法、装置、系统、设备及存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111013

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: 20111101

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111114

R151 Written notification of patent or utility model registration

Ref document number: 4876511

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141209

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees