JP2007264863A - 業務使用解析装置 - Google Patents

業務使用解析装置 Download PDF

Info

Publication number
JP2007264863A
JP2007264863A JP2006086862A JP2006086862A JP2007264863A JP 2007264863 A JP2007264863 A JP 2007264863A JP 2006086862 A JP2006086862 A JP 2006086862A JP 2006086862 A JP2006086862 A JP 2006086862A JP 2007264863 A JP2007264863 A JP 2007264863A
Authority
JP
Japan
Prior art keywords
data item
statement
command statement
business
program
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
JP2006086862A
Other languages
English (en)
Inventor
Kouta Inai
紘太 井内
Takashi Kashimoto
隆志 柏本
Kazuyuki Aoyama
和之 青山
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 JP2006086862A priority Critical patent/JP2007264863A/ja
Priority to US11/520,340 priority patent/US20070234281A1/en
Publication of JP2007264863A publication Critical patent/JP2007264863A/ja
Pending legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】
解析対象プログラムから、業務の切替に関わる命令文の抽出を行う際、データ項目が入力に関わることが業務に関わるという判断基準に基づくだけだと、ほとんどの命令文が業務に関わる命令文であるとの結果を得ることになり、作業者により業務に関わるか否かの判断を行わざるを得なかった。
【解決手段】
解析対象プログラムを構成する命令文に対して、業務に関わる可能性を数値化した値を付して出力する。命令文が設定する入力が定数か他の命令文に依存するデータ項目であるか、及び命令文の種類により業務に関わる可能性の数値はをスコアとして算出する業務仕様解析部と、命令文とスコアの両方を表示する業務仕様解析結果表示部を備え、スコアの指定範囲により、対応する命令文を識別可能に表示する。
【選択図】図1

Description

情報システムで使用されているプログラムの解析をおこない、業務の切替に関るプログラムの命令文の抽出を支援するプログラムの解析技術に関する。
プログラムに埋もれている業務仕様を回復するためには、業務的な視点からプログラム中で活用したい箇所を見極める必要がある。そのためにはプログラムの業務仕様を生成する必要があるが、現状ではこれを行うためには膨大なソースコードを読んで理解した上で仕様を作成しなければならなかった。
そのため従来から、既存のプログラムを業務に関る部分と制御に関る部分に切り分け、業務に関る部分を抽出することで、プログラムの処理内容を効率的に把握しようとする試みはなされてきた。
このように、プログラムを業務に関る部分と制御に関る部分に切り分けることで業務仕様を解析する装置としては、特許第3377836号に記載のシステムがある。このシステムでは、プログラムのデータ項目に着目し、命令文が業務に関るか、制御に関るかを判定している。その判定方法は以下のような流れである。命令文のデータ項目が以下の条件を満たす場合には業務に関るとしている
「データ項目が一つでも入力である場合」
「データ項目が変数である場合には、そのデータ項目の更新を行っている命令文を検索し、その命令文のデータ項目が入力の場合」
つまり、業務仕様に関る命令文は、該命令文のデータ項目が必ず入力に関るデータ項目を含んでいるとしている。
特許第3377836号公報
従来の技術では、命令文のデータ項目が入力に関る場合には業務仕様、入力に関らない場合には制御仕様というように、プログラムを入力のみを判定条件として業務か制御かのどちらかに振り分けている。
しかし、実際のプログラムにおいて個々の命令文を考えた場合、その命令文に含まれるデータ項目の大部分は入力に関るデータ項目である。そのため、プログラム中のほとんどの命令文は業務に関る命令文に振り分けられる。 この業務に関る命令文に振り分けられた命令文には、該命令文に含まれるデータ項目は入力に関るが、業務仕様ではない命令文も含まれている。
結果として、作業者はプログラム中のほとんどの命令文を、実際にその命令文が業務に関っているかの判断を必要もあるため、作業者はプログラムにおいて、どのような処理が行われているかを効率よく把握することができない。
従って本発明の目的は、業務使用に関わる可能性のある命令文を効率よく把握可能に利用者に提示する、業務仕様解析を支援するシステムを提供することにある。
上記の課題を解決するために本発明では、業務に関ると振り分けられた命令文に対しても、どの命令文がより業務に関る可能性が高いかという命令文を確認するための優先順位をつける。
解析対象のプログラムを項目ごとに識別し、識別されたプログラムの個々の命令文に含まれるデータ項目と、命令文の制御依存関係が業務に関る可能性を数値設定し、プログラムの個々の命令文に対して業務の仕様に関る可能性の数値を取得し、命令文と数値とを表示画面に併記して出力する。作業者からの数値範囲の指示にしたがい、優先的に表示させるべき命令文(業務にかかわる可能性の高い命令文)を選択する。指示された数値範囲に該当する命令文を視覚的に強調表示する表示手段を有する。
本発明の効果としては、解析対象のプログラムから業務仕様に関係する命令文を、関係する可能性を示す数値をとともに得ることができ、数値範囲の指定におうじて命令文を表示・提供することができる。業務仕様の確認に必要な命令文を選択的に把握することが可能となり、種々のシステム開発の効率化に資することができる。
以下に本発明の実施の形態を説明する。
<全体構成>
以下、本発明の実施例を図面を用いて詳細に説明する。
図1は、業務仕様解析装置全体構成図を示している。システムはバス等の接続手段で接続されたCPU101と、ディスプレイ装置102と、キーボード103とマウス等の指示装置104とを含む入力装置と、メモリ105と、メモリ上に置かれたプログラム106〜109とからなるCPU101はメモリ105上のプログラムを読み出し実行するが、その際、外部記憶装置110にアクセスして必要な情報を読み出したり書き込んだりする。また、110は外部記憶装置を示しており、111と、112とはディスク装置上に置かれたデータである。なお、対象プログラム(対象PRG)111は、本発明システムが解析対象とするプログラムである。
図2に記載されているフローチャートを用いて、業務仕様解析装置の制御部109の機能について説明する。制御部109の機能は、プログラム解析部106と、業務仕様解析部107と、業務仕様解析結果表示部108の機能からユーザに機能を指定させ、指定を受けた機能を実行する。
プログラム解析部106は、入力装置(103,104)からユーザによって指定されたプログラム名をキーとして、解析対象のプログラム111を検索し、解析対象とするプログラムを取得する。そして、命令文情報と、データ項目情報と、制御依存情報と、データ依存情報とからなるプログラム解析結果情報を業務処理条件情報112に与える処理を行う。(ステップ201)
業務仕様解析部107は、業務仕様解析機能202で定義された処理を実行することで、命令文が業務の切替に関る可能性の数値で構成される業務仕様解析結果を業務処理条件情報112に与える。なお、業務仕様解析機能202で定義された処理については、図3を用いて以下で詳細に説明する。(ステップ202)
業務仕様解析結果表示部108は、業務仕様解析結果表示機能203を実行することで、業務処理条件情報112に格納された業務仕様解析結果を取得して、命令文と、命令文が業務の切替に関る可能性の数値との対応をディスプレイ装置102に表示する処理を行う。(ステップ203)
ディスプレイ装置102に表示した業務仕様解析の結果に対して、ユーザに再度、業務仕様解析機能を実行させるかを選択させる。(ステップ204)
上記ステップ(201〜204)はユーザが再度、業務仕様解析機能の実行を選択している間、繰り返し行われ、業務仕様解析機能の終了が選択されたときに装置の動作(制御部109での処理)が終了する。
次に、図31のメニュー画面を用いて、制御部109の機能を具体的に説明する。
まず、ユーザからディスプレイ装置102に図31のメニュー画面を表示し、に解析プログラムの取得/登録(3101)の選択・実行を受け付けると、解析対象のプログラムを対象PRG111から取得する。
解析対象のプログラム取得後、ユーザからプログラム解析機能(3102)を選択・実行を受け付け、プログラム解析部106の処理によりプログラム解析結果を作成し、その結果を業務処理条件情報112に登録する。作成されたプログラム解析結果により値の入った命令文情報テーブル113と、データ項目情報テーブル114と、制御依存情報テーブル115と、データ依存情報テーブル116が作成される。これらのテーブルについては、以下で詳細な説明を行う。
次に、ユーザに、プログラム解析機能3102を選択させ、業務仕様解析部107を起動する。業務仕様解析部107が起動して表示されるユーザ設定値入力画面(図32)において、ユーザからいくつかの数値の設定を受け付ける。解析対象のプログラムにおいて、入力であるデータ項目が業務の切替に関る可能性の数値(以下、入力の初期値スコア)の入力は3201の入力欄で、定数であるデータ項目が業務の切替に関る可能性の数値(以下、定数の初期値スコア)の入力は3202の入力欄で、制御依存元の命令文の処理内容が分岐処理であるときに、制御依存先の命令文が制御依存元の命令文に比べてどれくらい業務の切替に関る可能性が低くなるかを表す数値(以下、分岐処理の処理内容係数)の入力は3203の入力欄で、制御依存元の命令文の処理内容がループ処理であるときに、制御依存先の命令文が制御依存元の命令文に比べてどれくらい業務の切替に関る可能性が低くなるかを表す数値(以下、ループ処理の処理内容係数)の入力は3204の入力欄で受け付けるように設定する。ただし、制御依存関係の階層が深い命令文において、入力を判定条件にする制御文のように、業務の切替に関る可能性が高い命令文が存在することを考慮して、入力の初期値スコアは「1」以上とする。また、ある第1の命令文が入力を判定条件にしない制御文であるときに、第1の命令文が業務の切替に関る可能性は、第1の命令文の制御依存元である別の第2の命令文が業務の切替に関る可能性より低くなることを考慮して、定数の初期値スコアと、分岐処理の処理内容係数と、ループ処理の処理内容係数とは「1」以下とする。
ユーザが図32のユーザ設定値指定入力画面の登録ボタンを押下すると、業務仕様解析部107は業務仕様解析結果を作成し、その結果を業務処理条件情報112に登録する。業務仕様解析結果とは、処理文情報テーブル117と、データ項目スコアテーブル118と、データ項目初期値スコアテーブル119と、処理内容係数設定テーブル120と、ループエラー判定テーブル121とのことを指している。これらのテーブルについては、詳細な説明を後述する。
図32の設定値入力画面の登録処理が終わり、業務仕様解析結果が作成されると、図31のメニュー画面に戻り、ユーザから業務仕様解析結果表示3104の選択を受け付け、業務仕様解析結果表示部108を起動して業務仕様解析結果を、図33の業務仕様解析結果表示画面に表示する。図33の業務仕様解析結果表示の結果、ある処理文スコア以上の命令文を明示的に表示したいときには、3301の入力欄に数値を指定して、抽出ボタン3302を押下する。処理文スコアはその処理を行うめいれいぶんが業務に関わる可能性を数値で表したものである。下限は0であるが、上限の設定はなく、値が大きいほど命令文が業務に関わる可能性が高いことを示す。例えば、ユーザは処理文スコアが「1.0」以上の命令文を明示的に表示させるには、「1.0」を3301の入力欄に指定して、抽出ボタンを押下して、図34の業務使用解析結果表示画面を得る。
また、図33の業務仕様解析結果表示画面を参照した結果、ユーザからが再度、業務仕様解析機能を実行させる要求があるときには、再実行ボタン3303の入力を受け付けて業務仕様解析機能を再実行させ、業務仕様解析機能を実行させる要求がない場合には、終了ボタン3305の入力を受付て業務仕様解析装置を終了させる。
次に、業務仕様解析装置の外部記憶装置110について、説明を行う。外部記憶装置110は解析対象プログラム111と、業務処理条件情報112とから構成される。対象プログラム111には解析対象となるプログラムが格納され、業務処理条件情報112には図9の、命令文情報テーブル901と、データ項目情報テーブル902と、制御依存情報テーブル903と、データ依存情報テーブル904と、処理文情報テーブル905と、データ項目スコアテーブル906と、データ項目初期値スコア設定1007と、処理内容係数設定テーブル908と、ループエラー判定テーブル908とが格納されている。これらのテーブルの情報は必要に応じて制御部109により読み出されてプログラム会席部106の処理、業務仕様解析部107の処理、業務仕様解析結果表示部108の処理に用いられる。図9の各テーブルを結んでいる線は、これらのテーブルの関連を示している。
以下で、これらのテーブルの詳細を説明する。
命令文情報テーブル901は、対象となるプログラムのプログラム行番号910と、対象となるプログラムの命令文911と、命令文を処理文かと、分岐かと、命令文かと、それ以外かとを識別する処理内容区分912とから構成される命令文情報を登録する。なお、命令文テーブルのデータ構成例は後述の図10に示す。
データ項目情報テーブル902は、プログラム行番号910と、個々の命令文に含まれるデータ項目名称913と、データ項目を参照かと、更新かと、入力かと、定数かとを識別する参照更新区分914とから構成されるデータ項目情報を登録する。なお、データ項目情報テーブル902のデータ構成例は後述の図11に示す。
制御依存情報テーブル903は、対象となるプログラムのある第1の命令文のプログラム行番号である制御依存先プログラム行番号915と、第1の命令文の制御依存元で別の第2の命令文のプログラム行番号である制御依存元プログラム行番号916とから構成される制御依存情報を登録する。なお、制御依存情報テーブルテーブル903のデータ構成例は後述の図12に示す。
データ依存情報テーブル904は、対象となるプログラムのある第1の命令文のプログラム行番号であるデータ依存先プログラム行番号917と、第1の命令文に含まれる個々のデータ項目名称918と、第1の命令文に含まれる個々のデータ項目のデータ依存元の命令文のプログラム行番号であるデータ依存元プログラム行番号919とから構成されるデータ依存情報を登録する。なお、データ依存情報テーブル904のデータ構成例は後述の図13に示す。
処理文情報テーブル905は、プログラム行番号910と、命令文が業務の切替に関る可能性の数値である処理文スコア920と、命令文の計算部が業務の切替に関る可能性の数値である計算部スコア921と、命令文が制御依存元の別の命令文に比べて、どれくらい業務の切替に関る可能性が低くなるかを表す数値である重み係数922と、処理内容区分923と、命令文が処理中かと、処理中でないかとを区別する処理中区分924とから構成される処理文情報を登録する。なお、処理文情報テーブル905のデータ構成例は後述の図14に示す。
データ項目スコアテーブル906は、プログラム行番号910と、データ項目名称913と、データ項目が業務の切替に関る可能性の数値であるデータ項目スコア924とから構成されるデータ項目スコア情報を登録する。
データ項目初期値スコア設定テーブル907は、参照更新区分914と、データ項目名称の参照更新区分が入力と、定数とのときの業務の切替に関る可能性の数値である初期値スコア925とから構成されるデータ項目初期値スコアを登録する。
処理内容係数設定テーブル908は、命令文の処理内容を分岐処理かと、ループ処理かとを識別する処理内容区分926と、ある第1の命令文の制御元である別の第2の命令文の処理内容ごとに、第1の命令文が第2の命令文に比べてどれくらい業務に関る可能性が低くなるかを表す処理内容係数927とから構成される処理内容係数設定を登録する。
ループエラー判定テーブル909は、ループ処理でエラーが生じたかと、生じていないかとを識別する参照更新区分928から構成されるループエラー判定情報を登録する。
図10は、命令文情報テーブル901の内容の一例を示したものである。
910は、対象となるプログラムの行ごとに一意となるプログラム行番号である。そして、このプログラム行番号910により、命令文情報を一意に識別するようになっている。命令文911は、プログラム行番号に対応する命令文の本文である。912は、プログラム行番号に対応する命令文の処理内容を区別する処理内容区分であり、命令文が分岐処理を行っているときには分岐、命令文がループ処理を行っているときにはループ、命令文が変数を含む場合で分岐またはループでないときには処理文となる。
例えば、命令文情報1001は、対象となるプログラムのプログラム行番号が「1」で命令文は「read a;」であり、処理内容区分は「処理文」であることを示している。
図11は、データ項目情報テーブル902の一例を示したものである。
913は、プログラム行番号に対応する命令文に含まれるデータ項目の名称である。914は、プログラム行番号に対応する命令文に含まれるデータ項目を識別する参照更新区分であり、データ項目が定義されている変数のときには「更新」、参照されている変数のときには「参照」、入力である定数のときには「入力」、入力でない定数のときには「定数」となる。そして、図10と同様のプログラム行番号910と、データ項目名称913と、参照更新区分914により、データ項目情報を一意に識別するようになっている。
例えば、データ項目情報1101は、対象となるプログラムのプログラム行番号が「1」の命令文に含まれる、データ項目名称が「a」のデータ項目の参照更新区分は「入力」であることを示している。
図12は、制御依存情報テーブル903の一例を示したものである。
915は、対象となるプログラムのある第1の命令文のプログラム行番号である。そして、この制御依存先プログラム行番号915により、制御依存情報を一意に識別するようになっている。916は、第1の命令文の制御依存元となる別の第2の命令文のプログラム行番号である。
例えば、制御依存情報1201は、対象となるプログラムのプログラム行番号が「7」の命令文の制御依存元のプログラム行番号は「6」であることを示している。
図13は、データ依存情報テーブル904の一例を示したものである。
917は、対象となるプログラムのある第1の命令文のプログラム行番号である。918は、第1の命令文に含まれる個々のデータ項目のデータ項目名称である。919は、第1の命令文の各データ項目のデータ依存先の命令文のプログラム行番号である。そして、これらのデータ依存先プログラム行番号917と、データ項目名称918と、データ依存元プログラム行番号919とにより、データ依存情報を一意に識別するようになっている。
例えば、データ依存情報1301は、対象となるプログラムのプログラム行番号が「6」の命令文に含まれる、データ項名称が「a」のデータ項目のデータ項目依存元のプログラム行番号は「1」であることを示している。
図14は、処理文情報テーブル905の一例を示したものであり、図10と同様のプログラム行番号910により、処理文情報を一意に識別するようになっている。920は、命令文情報テーブル901において、処理内容区分がNULLでない命令文(すなわち、処理文)が業務の切替に関る可能性の数値である。計算部スコア921は、個々の命令文に含まれる、他の命令文で定義された値を参照しているデータ項目と、その命令文で該プログラムの入力を設定しているデータ項目と、定数であるデータ項目のデータ項目スコアの平均値である。重み係数922は、ある第1の命令文の制御元である別の第2の命令文の処理内容ごとに、第1の命令文が第2の命令文に比べてどれくらい業務に関る可能性が低くなるかを表す処理内容係数と、第2の命令文が業務の切替に関る可能性の数値との積から算出される値である。912は、処理分の処理を識別する処理内容区分であり、分岐と、ループと、処理文のいずれかに区分される。923は、ある処理文が処理文スコアを算出の処理中か、処理中ではないかを示す処理中区分であり、処理中のときには「処理中」、処理中でないときにはNULL(値なし)である。
例えば、処理文情報1401は、対象となるプログラムのプログラム行番号が「1」の命令文は、処理文スコアは「1.5」であり、計算部スコアは「1.5」であり、重み係数が「1」であり、処理内容区分は「処理文」であり、処理中区分はNULL(値なし)で、この場合は、そのプログラム行のスコア計算処理中ではないことを示している。
図15は、データ項目スコアテーブル906の一例を示したものであり、図10と同様のプログラム行番号910と、図11と同様のデータ項目名称913とにより、データ項目スコアを一意に識別することになっている。924は、ある第1の処理文のデータ項目において、そのデータ項目の複数あるデータ依存元の命令文の処理文スコアの最小値である。
例えば、データ項目スコア情報1501は、対象となるプログラム行番号が「1」の命令文に含まれる、データ項目名称が「a」のデータ項目のデータ項目スコアは「1.5」であることを示している。
図16は、データ項目初期値スコア設定テーブル907の一例を示したものである。
914は、図11の参照更新区分の一部の参照更新区分であり、入力と、定数のいずれかとなる。この、参照更新区分914により、データ項目初期値スコアを一意に識別することになっている。初期値スコア925は、データ項目が「入力」と、「定数」とのときのデータ項目が業務の切替に関る可能性の数値である。
例えば、データ項目初期値スコア1601は、データ項目の参照更新区分が「入力」であるときには、データ項目が業務の切替に関る可能性の数値は「1.5」であることを示している。
図17は、処理内容係数設定テーブル908の一例を示したものである。
926は、図10の処理内容区分の一部の処理内容区分であり、分岐と、ループのいずれかとなる。この、処理内容区分926により、処理内容係数設定を一意に識別することになっている。処理内容係数927は、制御依存先のある第1の命令文が制御依存元の別の第2の命令文の処理内容の影響を受ける程度を示す数値である。
例えば、処理内容係数設定1701は、処理文の処理内容が「分岐」であるときには、処理内容係数は「0.8」であることを示している。
図18は、ループエラー判定テーブル909の一例を示したものである。
928は、業務仕様解析機能でループにより処理にエラーが発生しているか判定するループエラー区分であり、エラーが発生していないときは正常、エラーが発生しているときはエラーとなる。このループエラー区分928により、ループエラー判定テーブルを一意に識別することになっている。
例えば、ループエラー判定1801は、業務仕様解析機能において、ループによるエラーが発生していることを示している。
<プログラム解析処理1>
次に、図2〜図8および図19〜図30を参照して、本実施形態における業務仕様解析装置の処理動作を詳細に説明する。はじめに業務にかかる可能性を示す処理文スコアの取得に必要な数値情報がすべてそろっている場合から説明する。
作業者はプログラム解析機能を起動して、対象となる図19のプログラムを選択して、プログラム解析を実行して、図20の命令文情報テーブルと、図21のデータ項目情報テーブルと、図22の制御依存情報テーブルと、図23のデータ依存情報テーブルを作成する。(ステップ201)
図3は、業務仕様解析機能202を説明するためのフローチャートを示す。業務仕様解析部107において、業務仕様解析機能202が起動すると、はじめに、ステップ301で、作業者にデータ項目初期値スコア設定テーブルに対して、初期値を入力させる。なお、データ項目は解析対象のプログラムで処理されるデータで、そのデータが出現するプログラム行番号以前に他の命令文でデータとして取り扱われている場合には、初期値スコアの設定はしない。実施例では図26のように、データ項目初期値スコア設定テーブルの、参照更新区分が入力に対応する初期値スコアに「1.5」が、参照更新区分が定数に対応する初期値スコアに「0.8」が入力される。(ステップ301)
次にステップ302で、作業者に処理内容係数設定テーブルに処理内容係数を入力させる。実施例では図25のように、処理内容係数設定テーブルの、処理内容区分が分岐に対応する処理内容係数に「0.8」と、処理内容区分がループに対応する処理内容係数に「0.8」 が入力される(ステップ302)。
次のステップ303では、これからプログラム解析を行うため、初期値としてループエラー判定テーブルのループエラー区分に「正常」を登録する。(図24、ステップ303)
ステップ304で業務処理情報テーブル類の初期設定処理を行うが、この処理を図4を用いて説明する。
ステップ401は、命令文情報テーブルを「処理内容区分 <>NULL」という条件で検索し、プログラム行番号、処理内容区分を取得する。実施例では、図20の命令文情報テーブルを「処理内容区分<>NULL」という条件で検索して、プログラム行番号と、処理内容区分とを取得する。(ステップ401)
ステップ402は、処理文情報テーブルに前ステップで取得したプログラム行番号、処理内容を登録する。実施例では、処理文情報テーブルにステップ401で取得したプログラム行番号と、処理内容区分とを登録して、図27の処理文情報テーブルを作成する。(ステップ402)
ステップ403は、データ項目情報テーブルを「参照更新区分<>'更新'」という条件で検索し、プログラム行番号、データ項目名称、参照更新区分を取得する。実施例では、図21のデータ項目情報テーブルを「参照更新区分<>「更新」」という条件で検索して、プログラム行番号と、データ項目名称と、参照更新区分を取得する。(ステップ403)
ステップ404は、データ項目初期値スコア設定テーブルを「参照更新区分=前ステップで取得した参照更新区分」という条件で検索し、初期値スコアを取得する。実施例では、図26のデータ項目初期値スコアテーブルを「参照更新区分=ステップ403で取得した参照更新区分」という条件で検索して、初期値スコアを取得する。(ステップ404)
ステップ405は、データ項目スコアテーブルに前ステップで取得したプログラム行番号、データ項目名称、初期値スコアを登録する。実施例では、データ項目スコアテーブルにステップ403で取得したプログラム行番号と、ステップ403で取得したデータ項目名称と、ステップ404で取得した初期値スコアとを登録して、図28のデータ項目スコアテーブルを作成する。(ステップ405)
この時点では、ステップ404で参照更新区分に対する初期値が設定されていないデータ項目のスコアは空白となっている。このように業務処理情報テーブル類の初期値設定処理(図3のステップ304)が行われる。
図3に戻る。ステップ304の直後では、処理文情報テーブルは図27の状態である。これから図27に示される核プログラム行番号(対象プログラムの命令文で「処理内容区分<>NULL」の条件のもの)の処理文スコア、重み係数、計算部スコアを取得していく。
ステップ305は、処理文情報テーブルにおいて、処理文スコアがわからないプログラム行番号を一つ選択する。実施例の図27では、プログラム行番号「1」を選択する。(ステップ305)
次の処理文スコア算出処理(ステップ306)の詳細を図5から図8を用いて説明する。
ステップ501は、処理文情報テーブルを「プログラム行番号=前ステップで取得したプログラム行番号」という条件で検索し、処理中区分に「処理中」を登録する。実施例では、図27の処理文情報テーブルを「プログラム行番号=ステップ305で取得したプログラム行番号「1」」という条件で検索し、プログラム行番号1の処理中区分に「処理中」を登録する。(ステップ501)
次のステップ502の重み係数算出処理について図を用いて説明する。
ステップ601は、制御依存情報テーブル図22を「制御依存先プログラム行番号=プログラム行番号」という条件で検索し、制御依存元プログラム行番号を取得する。実施例では、制御依存情報テーブルを「制御依存先プログラム行番号=ステップ305で取得したプログラム行番号「1」」という条件で検索して、制御依存元プログラム行番号を取得しようとするが、図22の制御依存先プログラム行番号には「1」はないため、制御依存元プログラム行番号は取得できない。(ステップ601)
ステップ602は、制御依存元プログラム行番号が取得できるかどうかを判定する。実施例では、ステップ601で制御依存元プログラム行番号が取得できないため、NOと判定し(ステップ602)、ステップ603では数値「1」を取得する(ステップ603)
ステップ604は、処理文情報テーブルを「プログラム行番号=前ステップで取得したプログラム行番号」という条件で検索し、前ステップで算出した重み係数を登録する。実施例では、処理文条件テーブルを「プログラム行番号=ステップ305で取得したプログラム行番号「1」」という条件で検索して、重み係数にステップ603で取得した数値「1」を登録する。(ステップ604)
ステップ503は、ループエラー区分が「エラー」か、それ以外かを判定する。実施例では、図24のループエラー判定テーブルを検索して、ループエラー判定区分が「正常」であるため、NOと判定する。(ステップ503)
次にステップ504の計算部スコア算出処理について図7を用いて説明する。
ステップ701は、データ項目スコアテーブル図28において、選択したプログラム行番号に対応するデータスコアが一つでもNULLがあるかどうかを判定する。実施例では、データ項目スコアテーブルにおいて、ステップ305で取得したプログラム行番号「1」に対応するデータ項目スコアが「1.5」のみであるため、NOと判定する。(ステップ701)
ステップ702は、データ項目スコアが「エラー」以外のデータ項目スコアを取得する。実施例では、データ項目スコアテーブル図28を「プログラム行番号=ステップ305で取得したプログラム行番号「1」」という条件で検索して、データ項目スコア「1.5」を取得する。(ステップ702)
ステップ703は、データ項目スコアに「エラー」が存在するか、しないかを判定する。実施例では、ステップ702のとおり、データ項目スコアとして、エラーではなく「1.5」のみを取得しているため、NOと判定する。(ステップ703)
ステップ704は、取得したデータ項目スコアの平均値を取得する。実施例では、ステップ703で取得したデータ項目スコア「1.5」の平均値を計算部スコアとして算出するため、「1.5」を取得する。(ステップ704)
ステップ705は、処理文情報テーブルを「プログラム行番号=前ステップで取得したプログラム行番号」という条件で検索し、検索した行番号の計算部スコアに前ステップで算出した計算部スコアを登録する。実施例では、図27の処理文情報テーブルを「プログラム行番号=ステップ305で取得したプログラム行番号「1」」という条件で検索して、計算部スコアにステップ704で取得した数値「1.5」を登録する。(ステップ705)
ステップ706は、データ項目スコアテーブルを「データ項目スコア=ループエラー」という条件で検索し、データ項目スコアにNULLを登録する。実施例では、データ項目スコアテーブルを「データ項目スコア=「エラー」」という条件で検索するが、条件に当てはまるデータ項目は存在しない。(ステップ706)
これで図ステップ504の計算部スコアの算出ができた。
ステップ505は、処理文情報テーブルの計算部スコアが「エラー」であるかどうかを判定する。実施例では、この時点で処理文情報テーブルの計算部スコアに「エラー」が存在しないため、NOと判定する。(ステップ505)
ステップ506は、処理文スコアとして、計算部スコアと、重み係数との積を算出して、取得する。実施例では、ステップ604で登録した重み係数「1」と、ステップ705で登録した計算部スコア「1.5」の積を処理文
スコアとして算出するため、数値「1.5」を取得する。(ステップ506)
ステップ507は、処理文情報テーブルに前ステップで算出した処理文スコアを登録する。実施例では、処理文情報テーブル図27を「プログラム行番号=ステップ305で取得したプログラム行番号「1」」で検索して、プログラム行番号「1」の処理文スコアにステップ506で取得した数値「1.5」を登録する。(ステップ507)
ステップ508は、処理文情報テーブルを「計算部スコア='エラー'」という条件で検索し、計算部スコアにNULLを登録する。実施例では、処理文情報テーブルを「計算部スコア=「エラー」」という条件で検索するが、条件に当てはまる計算部スコアは存在しない。(ステップ508)
ステップ509は、処理文情報テーブルを「プログラム行番号=前ステップで取得したプログラム行番号」という条件で検索し、処理中区分にNULLを登録する。実施例では、処理文情報テーブルを「プログラム行番号=ステップ305で取得したプログラム行番号「1」」という条件で検索するが、条件を満たすプログラム行番号は存在しない。(ステップ509)
以上の手順で図27の処理文情報テーブルの処理文スコア、重み係数を取得していく。
次のステップ307は、処理文情報テーブルの処理文スコアが全てわかっているかどうかを判定する。実施例では、この時点の図27の処理文情報情報テーブルのプログラム行番号が「2」以降の処理文スコアがまだNULLであるため、NOと判定する。(ステップ307)
処理文情報テーブルのプログラム行番号が「2」から「5」までの処理文スコアは、プログラム行番号が「1」に対する処理と同様に行い取得する。プログラム行番号「1」から「5」までの処理文スコアが取得されたときの処理文情報テーブルの途中経過は図37のようになる。プログラム行番号「6」の処理文スコアの取得は次の処理による。
<プログラム解析処理2>
次に処理文スコアの取得にあたり、必要な数値情報としてデータ項目スコアが初期設定されていない場合を説明する。
はじめに処理文情報テーブル(図37)において、処理文スコアがわからないプログラム行番号「6」を選択する。(ステップ305)
処理文情報テーブルを「プログラム行番号=ステップ305で取得したプログラム行番号「6」」という条件で検索して、処理中区分に「処理中」を登録する。(ステップ501)
重み係数算出処理は、プログラム行番号「1」のときと同様に行い、この場合は重み係数が1となり、処理文情報テーブル(図37)のプログラム行番号「6」の重み係数欄に1を登録する。
ループエラー判定テーブル図24のループエラー区分が「正常」であるため、NOと判定する。(ステップ503)
計算部スコア算出処理(図5の504、図7)では、データ項目スコアテーブル図28において、ステップ305で取得したプログラム行番号「6」に対応するデータ項目スコアが「NULL」と、「NULL」であるため、YESと判定する。(ステップ701)
ステップ707は、データ項目スコアがNULLのデータ項目を一つ選択する。実施例では、データ項目スコアテーブルを「プログラム行番号=ステップ305で取得したプログラム行番号「6」」かつ「データ項目スコア=「NULL」」という条件で検索して、検索条件を満たすデータ項目名称としてaとiを得るが、そのうちの「a」を選択する(ステップ707)。選択したデータ項目名称「a」のデータ項目スコアを取得するため、デーt赤穂目スコア算出処理(ステップ708、図8)を行う。
ステップ801は、データ依存情報テーブル図23を「データ依存先プログラム行番号=前ステップで選択したプログラム行番号」かつ「データ項目名称=前ステップで選択したデータ項目名称」という条件で検索し、データ依存元プログラム行番号を取得する。実施例では、データ依存情報テーブル図23を「データ依存先プログラム行番号=ステップ305で選択したプログラム行番号「6」」かつ「データ項目名称=ステップ707で選択したデータ項目名称「a」」という条件で検索して、データ依存元プログラム行番号「1」を取得する。(ステップ801)
ステップ802は、処理文情報テーブルにおいて、取得したデータ依存元プログラム行番号と一致するプログラム行番号の処理文スコアが1つでもNULLであるかどうかを判定する。実施例では、処理文情報テーブル(図37)において、ステップ801で取得したデータ依存元プログラム行番号「1」と一致するプログラム行番号の処理文スコアは「1.5」であるため、NOを判定する。(ステップ802)
ステップ803は、処理文スコアが「エラー」以外のスコアを取得する。実施例では、ステップ801で取得したプログラム行番号の処理文スコアのうちで、処理文スコアがNULL以外の処理文スコアを取得するため、処理文スコア「1.5」を取得する。(ステップ803)
ステップ804は、処理文スコアが取得できるかどうかを判定する。実施例では、ステップ803で処理文スコア「1.5」を取得しているため、YESと判定する。(ステップ804)
ステップ805は、データ項目スコアとして、取得した処理文スコアのうちの最小値を取得する。実施例では、ステップ803で取得した処理文スコアのうちで最小値をデータ項目スコアとして算出するため、データ項目スコア「1.5」を取得する。(ステップ805)
ステップ806は、データ項目スコアテーブルを「プログラム行番号=前ステップで選択したプログラム行番号」かつ「データ項目名称=前ステップで選択したデータ項目名称」という条件で検索し、データ項目スコアに前ステップで算出したデータ項目スコアを登録する。実施例では、データ項目スコアテーブル図28を「プログラム行番号=ステップ305で選択したプログラム行番号「6」」かつデータ項目=ステップ707で選択したデータ項目名称「a」」という条件で検索して、データ項目スコアにステップ805で取得したデータ項目スコア「1.5」を登録する。(ステップ806)
ステップ807は、処理文情報テーブルを「処理文スコア='エラー'」という条件で検索し、処理文スコアにNULLを登録する。実施例では、処理文情報テーブルを「処理文スコア=「エラー」」という条件で検索するが、検索条件を満たす処理文スコアは存在しない。(ステップ807)
ステップ709は、データ項目スコアテーブルにおいて、選択したプログラム行番号に対応するデータ項目スコアが1つでもNULLであるかどうかを判定する。すなわち、まだNULLのデータ項目スコアがあれば取得処理を行うための判定である。実施例では、データ項目スコアテーブル図28において、ステップ305で取得したプログラム行番号「6」に対応するデータ項目スコアが「1.5」と、「NULL」であるため、YESと判定する。(ステップ709)
データ項目スコアテーブルを「プログラム行番号=ステップ305で取得したプログラム行番号「6」」かつ「データ項目スコア=「NULL」」という条件で検索して、検索条件を満たすデータ項目名称「i」を選択する。(ステップ707)
データ依存情報テーブル図23を「データ依存先プログラム行番号=ステップ305で選択したプログラム行番号「6」」かつ「データ項目名称=ステップ707で選択したデータ項目名称「i」」という条件で検索して、データ依存元プログラム行番号「5」と「7」を取得する。(ステップ801)
処理文情報テーブル(図37)において、ステップ801で取得したデータ依存元プログラム行番号「5」と、「7」とに一致するプログラム行番号の処理文スコアは「0.8」と、NULLであるため、YESを判定する(ステップ802)。
ステップ808は、処理文スコアが不明なプログラム行番号を1つ選択する。ここでプログラム行番号「7」が選択されている。次に、処理文情報テーブル(図37)において、「処理文スコア=ステップ801で取得したデータ依存元プログラム行番号「7」」かつ「処理文スコア=NULL」という条件で検索して、条件を満たすプログラム行番号「7」一つ選択する(ステップ808)。
ステップ809は、処理中区分が処理中か、処理中でないかとを判定する。実施例では、処理文情報テーブルにおいて、ステップ808で取得したプログラム行番号「7」の処理中区分は「処理中」ではないため、NOを判定する(ステップ809)。そしてプロ不ラム行番号「6」の依存元であるプログラム行番号「7」の処理文スコアを先に算出する処理をする(ステップ811)。処理文スコアの算出は図3のステップ305、すなわち図5の処理による。
処理文情報テーブル(図37)を「プログラム行番号=ステップ808で選択したプログラム行番号「7」」という条件で検索して、処理中区分に「処理中」を登録する。(ステップ501)
次にステップ502(図6)でプログラム行番号「7」の重み係数を算出する。
制御依存情報テーブル(図22)を「制御依存先プログラム行番号=ステップ808で取得したプログラム行番号「7」」という条件で検索して、制御依存元プログラム行番号「6」を取得する。(ステップ601)
システムは、ステップ601で制御依存元プログラム行番号「6」を取得しているため、YESを判定する。(ステップ602)
ステップ605は、処理文情報テーブルを「プログラム行番号=前ステップで取得した制御依存元プログラム行番号」という条件で検索し、処理文スコアと処理内容区分、処理中区分を取得する。実施例では、処理文情報テーブルを「プログラム行番号=ステップ601で取得した行番号「6」」という条件で検索して、処理文スコアNULLと、処理内容区分「ループ」と、処理中区分「処理中」を取得する。(ステップ605)
ステップ605は、処理中区分が処理中であるか、処理中でないかとを判定する。実施例では、ステップ605で取得した処理中区分が「処理中」であるため、YESと判定する。(ステップ606)
ステップ607は、ループエラー判定テーブルのループエラー区分に‘エラー’を登録する。実施例では、ループエラー判定テーブル(図24)のループエラー区分に「エラー」を登録する(ステップ607)。これで図5のステップ502が終了した。
図5のステップ503に戻る。ループエラー判定テーブルのループエラー区分(図24)が「エラー」となったため、YESを判定する(ステップ503)。
ステップ510は、処理文情報テーブルを「プログラム行番号=前ステップで取得したプログラム行番号」という条件で検索し、処理文スコアに‘エラー'を登録する。実施例では、処理文情報テーブル(図37)を「プログラム行番号=ステップ808で取得したプログラム行番号「7」」という条件で検索して、処理文スコアに「エラー」を登録する。(ステップ510)
ステップ511は、ループエラー判定テーブルのループエラー区分に‘正常’を登録する。実施例では、ループエラー判定テーブルのループエラー区分に「正常」を登録する。(ステップ511)
処理文情報テーブルを「プログラム行番号=ステップ808で取得したプログラム行番号「7」」という条件で検索して、処理中区分にNULLを登録する。(ステップ509)。これで、プログラム行番号「6」のデータ項目スコア(図28)算出のためのプログラム行番号「7」の処理文スコアの算出(ステップ811)が終了した。
図8に戻り、ステップ810は、処理文情報テーブル(図37)において、取得したデータ依存元プログラム行番号と一致するプログラム行番号の処理文スコアが1つでもNULLであるかどうかを判定する。実施例では、処理文情報テーブルにおいて、ステップ801で取得したデータ依存元プログラム行番号「5」と、「7」とに一致するプログラム行番号の処理文スコアは「0.8」と、「エラー」であるため、NOを判定する。(ステップ810)
ステップ801で取得した処理文スコアのうちで、処理文スコアが「エラー」以外の処理文を取得するため、処理文スコア「0.8」を取得する。(ステップ803)
処理文スコア「0.8」を取得しているため、YESと判定する。(ステップ804)
ステップ803で取得した処理文スコアのうちで最小値をデータ項目スコアとして算出するため、データ項目スコア「0.8」を取得する。(ステップ805)
データ項目スコアテーブルを「プログラム行番号=ステップ305で選択したプログラム行番号「6」」かつ「データ項目名称=ステップ707で選択したデータ項目名称「i」」という条件で検索して、データ項目スコアにステップ805で取得したデータ項目スコア「0.8」を登録する。(ステップ806)
処理文情報テーブル(図37)を「処理文スコア=「エラー」」という条件で検索して、この時点で、検索条件を満たすプログラム行番号「7」の処理文スコアにNULLを登録する。(ステップ807)。これで図7のステップ708(データ項目算出処理、図8)が終了した。
図7のステップ709に戻り、データ項目スコアテーブル(図28)において、ステップ305で取得したプログラム行番号「6」に対応するデータ項目スコアが「1.5」と、「0.8」であるため、NOと判定する。(ステップ709)
データ項目スコアテーブルを「プログラム行番号=ステップ305で取得したプログラム行番号「6」」かつ「データ項目スコア<>「エラー」」という条件で検索して、データ項目スコア「1.5」と、「0.8」とを取得する(ステップ702)。
エラーが存在していないため、NOと判定する(ステップ703)。
ステップ702で取得したデータ項目スコア「1.5」と、「0.8」との平均値を計算部スコアとして算出するため、「1.15」を取得する。(ステップ704)
処理文情報テーブル(図37)を「プログラム行番号=ステップ305で取得したプログラム行番号「6」」という条件で検索して、計算部スコアにステップ704で取得した数値「1.15」を登録する。(ステップ705)
データ項目スコアテーブル(図28)を「データ項目スコア=「エラー」」という条件で検索するが、条件に当てはまるデータ項目は存在しない(ステップ706)。これで図5の計算部スコアの算出処理504が終了する。
ステップ505からステップ509に関しては、プログラム行番号「1」の場合と同様に行う。
これで図3の処理文スコアの算出処理306が終了する、次に図3のステップ307に進む。
処理文情報情報テーブル(図37)のプログラム行番号が「7」以降の処理文スコアが「NULL」であるため、NOと判定(ステップ307)し、ステップ305に戻る。
処理文情報テーブル(図37)において、処理文スコアがわからないプログラム行番号「7」を選択する。(ステップ305)
前述と同様に処理文スコア算出処理306は図5に従い行われる。
処理文情報テーブル(図37)を「プログラム行番号=ステップ305で選択したプログラム行番号「7」」という条件で検索して、処理中区分に「処理中」を登録する。(ステップ501)
制御依存情報テーブル(図22)を「制御依存先プログラム行番号=ステップ305で取得したプログラム行番号「7」」という条件で検索して、制御依存元プログラム行番号「6」を取得する。(ステップ601)
ステップ601で制御依存元プログラム行番号「6」を取得しているため、YESを判定する。(ステップ602)
処理文情報テーブルを「プログラム行番号=ステップ601で取得した行番号「6」」という条件で検索して、処理文スコア「1.15」と、処理内容区分「ループ」と、処理中区分NULLを取得する。(ステップ605)
ステップ605で取得した処理中区分がNULLであるため、NOと判定する。(ステップ606)
ステップ608は、取得した処理文スコアがNULLであるかどうかを判定する。実施例では、ステップ605で取得した処理文スコアが「1.15」であるため、NOを判定する。(ステップ608)
ステップ609は、処理内容係数設定テーブルを「処理内容区分=前ステップで取得した処理内容区分」という条件で検索し、処理内容係数を取得する。実施例では、処理内容係数設定テーブルを「処理内容区分=ステップ605で取得した処理内容区分「ループ」」という条件で検索して、処理内容係数「0.8」を取得する。(ステップ609)
ステップ610は、重み係数として、処理文スコアと、処理内容係数の積を算出して、取得する。実施例では、ステップ605で取得した処理文スコア「1.15」と、ステップ609で取得した処理内容係数「0.8」との積で重み係数を算出するので、重み係数「0.92」を取得する。(ステップ610)
処理文条件テーブルを「プログラム行番号=ステップ305で取得したプログラム行番号「7」」という条件で検索して、重み係数にステップ610で取得した数値「0.92」を登録する。(ステップ604)
プログラム行番号「7」のステップ503からステップ509までの処理については、プログラム行番号「6」のときと同様に行う。この段階(プログラム行番号「7」までの処理終了時点))で処理文情報テーブルは図38に示す状態となっている。
<プログラム解析処理3>
データ項目スコアの初期値の設定がない場合の他の例を説明する。
処理文情報情報テーブルのプログラム行番号が「8」以降の処理文スコアが「NULL」であるため、NOと判定する。(ステップ307)
処理文情報テーブル(図38)において、処理文スコアがわからないプログラム行番号「8」を選択する。(ステップ305)
処理文情報テーブルを「プログラム行番号=ステップ305で取得したプログラム行番号「8」」という条件で検索して、処理中区分に「処理中」を登録する。(ステップ501)
プログラム行番号「8」 の重み係数算出処理(ステップ502)については、プログラム行番号「7」の場合と同様に行う。これにより、重み係数は0.92を取得する。
ループエラー判定テーブルのループエラー区分が「正常」であるため、NOと判定する。(ステップ503)
次のステップ504(計算部スコアの算出、図7)に進む。
データ項目スコアテーブルにおいて、ステップ305で取得したプログラム行番号「8」に対応するデータ項目スコアが「NULL」と、「NULL」であるため、YESと判定する(ステップ701)。
データ項目スコアテーブルを「プログラム行番号=ステップ305で取得したプログラム行番号「8」」かつ「データ項目スコア=「NULL」」という条件で検索して、検索条件を満たすデータ項目名称「b」を選択する(ステップ707)。
次のステップ708(データ項目スコア算出、図8)に進む。
データ依存情報テーブル図23を「データ依存先プログラム行番号=ステップ305で選択したプログラム行番号「8」」かつ「データ項目名称=ステップ707で選択したデータ項目名称「b」」という条件で検索して、データ依存元プログラム行番号「2」と、「11」と、「13」とを取得する(ステップ801)。
処理文情報テーブルにおいて、ステップ801で取得したデータ依存元プログラム行番号「1」と、「11」と、「13」とに一致するプログラム行番号の処理文スコアは「1.5」と、NULLと、NULLとであるため、YESを判定する(ステップ802)。
処理文情報テーブル(図38)において、「プログラム行番号=ステップ801で取得したデータ依存元プログラム行番号「8」」かつ「処理文スコア=NULL」という条件で検索して、条件を満たすプログラム行番号として「11」を一つ選択する(ステップ808)。
処理文情報テーブルにおいて、ステップ808で選択したプログラム行番号「11」の処理中区分は「処理中」ではないため、NOを判定する(ステップ809)。
次のステップ811の処理文スコア図22の算出は、図5に従って行われる。
処理文情報テーブルを「プログラム行番号=ステップ808で選択したプログラム行番号「11」」という条件で検索して、処理中区分に「処理中」を登録する(ステップ501)。
次のステップ502の重み係数の算出は、図6に従って行われる。
制御依存情報テーブルを「制御依存先プログラム行番号=ステップ808で選択したプログラム行番号「11」」という条件で検索して、制御依存元プログラム行番号「10」を取得する(ステップ601)。
ステップ601で制御依存元プログラム行番号「10」を取得しているため、YESを判定する(ステップ602)。
処理文情報テーブル(図38)を「プログラム行番号=ステップ601で選択した行番号「10」」という条件で検索して、処理文スコアNULLと、処理内容区分「分岐」と、処理中区分NULLを取得する(ステップ605)。
ステップ605で取得した処理中区分がNULLであるため、NOと判定する(ステップ606)。
ステップ605で取得した処理文スコアがNULLであるため、YESを判定し(ステップ608)、
プログラム行番号「10」の処理文スコアの算出処理を行うが、この算出処理は図5の処理に従っては、プログラム行番号6のときと同様に行う。
ステップ609以降のプログラム行番号11の処理文スコアの算出処理は、プログラム行番号7のときと同様におこなう。ステップ811の処理が終了し、ステップ810へ進む。
処理文情報テーブル(図38)において、ステップ801で取得したデータ依存元プログラム行番号「1」と、「11」と、「13」とに一致するプログラム行番号の処理文スコアは「1.5」、「0.55」、NULLであるため、YESを判定する(ステップ810)。
処理文情報テーブルにおいて、「プログラム行番号=ステップ801で取得したデータ依存元プログラム行番号「8」」かつ「処理文スコア=NULL」という条件で検索して、条件を満たすプログラム行番号として「13」を一つ選択する(ステップ808)。
処理文情報テーブルにおいて、ステップ808で取得したプログラム行番号「13」の処理中区分は「処理中」ではないため、NOを判定する(ステップ809)。
プログラム番号「13」の処理文スコア算出処理は、プログラム行番号「11」の処理文スコア算出処理と同様に行う。
処理文情報テーブルにおいて、ステップ801で取得したデータ依存元プログラム行番号「1」と、「11」と、「13」とに一致するプログラム行番号の処理文スコアは「1.5」、「0.55」、「0.42」であるため、NOを判定する(ステップ810)。
ステップ810で選択した処理文スコアのうちで、処理文スコアが「エラー」以外の処理文を取得するため、処理文スコア「1.5」、「0.55」、「0.42」を取得する(ステップ803)。
処理文スコア「1.5」と、「0.55」と、「0.42」とを取得しているため、YESと判定する(ステップ804)。
ステップ803で取得した処理文スコアのうちで最小値をデータ項目スコアとして算出するため、データ項目スコア「0.42」を取得する(ステップ805)。
データ項目スコアテーブルを「プログラム行番号=ステップ305で選択したプログラム行番号「8」」かつ「データ項目名称=ステップ707で選択したデータ項目名称「b」」という条件で検索して、データ項目スコアにステップ805で取得したデータ項目スコア「0.42」を登録する(ステップ806)。
処理情報テーブルを「処理文スコア=「エラー」」という条件で検索するが、条件を満たす処理文スコアは存在しない(ステップ807)。
データ項目スコアテーブルにおいて、ステップ305で取得したプログラム行番号「8」に対応するデータ項目スコアが「0.42」と、「NULL」であるため、YESと判定する(ステップ709)。
データ項目スコアテーブルを「プログラム行番号=ステップ305で取得したプログラム行番号「8」」かつ「データ項目スコア=「NULL」」という条件で検索して、検索条件を満たすデータ項目名称「d」を選択する(ステップ707)。
データ依存情報テーブルを「データ依存先プログラム行番号=ステップ305で選択したプログラム行番号「8」」かつ「データ項目名称=ステップ707で選択したデータ項目名称「b」という条件で検索して、データ依存元プログラム行番号「4」と、「9」とを取得する(ステップ801)。
処理文情報テーブルにおいて、ステップ801で取得したデータ依存元プログラム行番号「4」と、「9」とに一致するプログラム行番号の処理文スコアは」0.8「と、NULLとであるため、YESを判定する(ステップ802)。
処理文情報テーブルにおいて、「プログラム行番号=ステップ801で取得したデータ依存元プログラム行番号」かつ「処理文スコア=NULL」という条件で検索して、条件を満たすプログラム行番号として」9「を一つ選択する(ステップ808)。
処理文情報テーブルにおいて、ステップ808で取得したプログラム行番号「9」の処理中区分は「処理中」ではないため、NOを判定する(ステップ809)。
次ステップ501(処理文スコア算出)は図5に従って行われる。
処理文情報テーブルを「プログラム行番号=ステップ808で取得したプログラム行番号「9」」という条件で検索して、処理中区分に「処理中」を登録する(ステップ501)。
プログラム行番号「9」のステップ502の重み係数算出処理については、プログラム行番号「7」の場合と同様に図6に従い行われる。
次のステップ503に進み、ループエラー判定テーブルのループエラー区分が「正常」であるため、NOと判定する(ステップ503)。
次のステップ504(計算部算出処理)は図7に従い行われる。
データ項目スコアテーブルにおいて、ステップ808で取得したプログラム行番号「8」に対応するデータ項目スコアがNULLと、「0.8」であるため、YESと判定する(ステップ701)。
データ項目スコアテーブルを「プログラム行番号=ステップ808で取得したプログラム行番号「9」」かつ「データ項目スコア=「NULL」」という条件で検索して、検索条件を満たすデータ項目名称「s」を選択する。(ステップ707)
次のデータ項目スコア算出処理(ステップ708)は図8に従い行われる。
データ依存情報テーブルを「データ依存先プログラム行番号=ステップ707で選択したプログラム行番号「9」」かつ「データ項目名称=ステップ707で選択したデータ項目名称「s」」という条件で検索して、データ依存元プログラム行番号「8」を取得する。(ステップ801)
処理文情報テーブルにおいて、ステップ801で取得したデータ依存元プログラム行番号「8」に一致するプログラム行番号の処理文スコアはNULLであるため、YESを判定する(ステップ802)。
処理文情報テーブルにおいて、「プログラム行番号=ステップ801で取得したデータ依存元プログラム行番号」かつ「処理文スコア=NULL」という条件で検索して、条件を満たすプログラム行番号として「8」を一つ選択する。(ステップ808)
処理文情報テーブルにおいて、ステップ808で取得したプログラム行番号「8」の処理中区分は「処理中」であるため、YESを判定する(ステップ809)。
ステップ812は、処理文情報テーブルを「プログラム行番号=前ステップで選択したプログラム行」という条件で検索し、処理文スコアに'ループエラー‘を登録する。実施例では、処理文情報テーブルを「プログラム行番号=ステップ801で選択したプログラム行番号8」という条件で検索して、処理文スコアに「エラー」を登録する(ステップ812)。
処理文情報テーブルにおいて、ステップ801で取得したデータ依存元プログラム行番号「8」に一致するプログラム行番号の処理文スコアは「エラー」であるため、NOと判定する(ステップ810)。
ステップ810で選択した処理文スコアのうちで、処理文スコアが「エラー」以外の処理文を取得するため、処理文スコアを取得できない(ステップ803)。
ステップ803で処理文スコアを取得できていないため、NOと判定する(ステップ804)。
ステップ813は、データ項目スコアとして「エラー」を取得する(ステップ813)。
データ項目スコアテーブルを「プログラム行番号=ステップ808で選択したプログラム行番号「9」」かつ「データ項目名称=ステップ707で選択したデータ項目名称「s」」という条件で検索して、データ項目スコアにステップ813で取得したデータ項目スコア「エラー」を登録する(ステップ806)。
処理文情報テーブルを「処理文スコア=「エラー」」という条件で検索して、処理文スコアにNULLを登録する。(ステップ807)。これで図7ステップ708が終了する。
次ステップ709に進み、データ項目スコアテーブルにおいて、ステップ808で取得したプログラム行番号「9」に対応するデータ項目スコアが「エラー」と、「1」であるため、NOと判定する。(ステップ709)
データ項目スコアテーブルを「プログラム行番号=ステップ808で取得したプログラム行番号「9」」という条件で検索して、データ項目スコア「エラー」と、「1」とを取得する。(ステップ702)
ステップ702で取得したデータ項目スコアに「エラー」が存在するため、YESと判定する(ステップ703)。
ステップ710は、計算部スコアとして「エラー」を取得する(ステップ710)。
処理文情報テーブルを「プログラム行番号=ステップ808で取得したプログラム行番号「9」」という条件で検索して、計算部スコアにステップ710で取得した「エラー」を登録する(ステップ705)。
データ項目スコアテーブルを「データ項目スコア=「エラー」」という条件で検索して、データ項目スコアにNULLを登録する。(ステップ706)。これで図5ステップ504の計算部スコア算出処理が終了する。
次ステップ505に進み、処理文情報テーブルの計算部スコアに「エラー」が存在するため、YESと判定する(ステップ505)。
ステップ512は、処理文スコアとして「エラー」を取得する(ステップ512)。
処理文情報テーブルを「プログラム行番号=ステップ808で取得したプログラム行番号「9」」で検索して、処理文スコアにステップ512で取得した「エラー」を登録する。(ステップ507)
処理文情報テーブルを「計算部スコア=「エラー」」という条件で検索して、計算部スコアにNULLを登録する。(ステップ508)
処理文情報テーブルを「プログラム行番号=ステップ808で取得したプログラム行番号「9」」という条件で検索して、処理中区分にNULLを登録する。(ステップ509)
プログラム行番号8の処理文スコア算出処理において、ステップ810以降の処理はプログラム行番号6のときと同様に行う。
プログラム行番号9の処理文スコア算出処理は、プログラム行番号11のときと同様に行う。
処理文情報情報テーブルの全てのプログラム行番号の処理文スコアがNULLではないため、YESと判定する。(ステップ307)
解析対象プログラムの業務仕様解析処理が終了すると、業務仕様解析結果表示部(108)が起動し、はじめに図33のように処理文に対する処理文スコアを一覧するように表示される。作業者が処理文スコア欄3301に値を入力して抽出ボタン3302を押すと、入力された処理文スコアの値以上の処理文を視覚的に強調表示する(図34)。作業者は、業務仕様解析結果表示を実行して、業務処理抽出結果をディスプレイ装置に表示する。(ステップ203)
また、本実施形態において業務仕様解析装置を実行したときの、最終的な条件文情報テーブルと、データ項目スコアテーブルとは、図29と、図30とになる。
以上のような業務仕様の解析は命令文のデータ項目が入力であっても、その入力種類(入力又は定数)に応じて業務への関連程度を区別して設定し、かつ、プログラムの処理文間の依存関係をスコア算出の要素(処理内容)として反映させることにより、業務の使用に関わる可能性の評価を実現するものである。
業務仕様解析装置の効果を検証するため、対象プログラムとして、売上ファイルを入力として売上金ファイルを作成する業務的なプログラム図35を用いる。対象プログラムでは、プログラム行番号25と、28と、31と、34とにおいて、取引区分による単価の計算という業務の切替に関る処理を行っている。また、プログラム行番号42において、出力ファイルの改ページ処理という業務の切替に関らない処理を行っている。
対象プログラムの業務仕様解析処理の結果は図36の処理文情報テーブルに登録される。図36から、プログラム行番号25と、28と、31と、34の処理文スコアは全て「0.88」であり、プログラム行番号42の処理文スコアは「0.64」あることが確認できる。
以上のことから、業務仕様解析装置では、業務の切替に関る処理を処理文スコアで相対的に比較して、より処理文スコアの値に応じて業務の切替に関る可能性が高い処理文を参照することができる。
以上、述べたように、本発明の業務処理関連度数算出装置では、解析対象となるプログラムの個々の命令文に対して、命令文が業務の切替に関る可能性の数値を示す。作業者は数値が高い命令文を優先的に確認することで、解析対象となるプログラムにおいて、どのような処理が行われているかを効率よく把握することができる。
なお、最後に、業務仕様解析装置の入力値について、最適な値について深く検討する。
本実施例では入力値に関る値を以下のような範囲としています。
(ア)入力が業務の切替に関る数値 ≫1以上
(イ)定数が業務の切替に関る数値 ≫1より小さい
(ウ)制御依存元が分岐処理であるときに、制御依存先が制御依存元に比べて業務の切替に関る可能性の数値≫1より小さい
(エ)制御依存元がループ処理であるときに、制御依存先が制御依存元に比べて業務の切替に関る可能性の数値≫1より小さい
詳細説明はないが、他のプログラムの業務仕様解析で(ア)を“1.5”、(イ)を“1”、(ウ)を“1”、(エ)を“1”(以下、パターン1)としています。
パターン1で設定した数値を変更したときの解析結果を以下に示します。
(1)(イ)の数値を“0.8“に変更
業務仕様に関る命令文においても、データ項目が定数に関る場合にスコアが低くなる(場合によっては、データ項目に定数を設定している命令文よりも)。そのため、スコアが高い命令文から処理内容を確認した場合に、確認の優先順位がパターン1より低くなる。
(2)(ウ)の数値を“0.8”に変更
業務仕様に関る命令文においても、分岐処理が階層になっているときに階層の深い命令文はスコアが低くなる。よって(1)と同様の結果となる。(エ)の数値に関しても同様の結果となる。
(1)、(2)から(イ)、(ウ)、(エ)の数値はパターン1が最適と考える。
(ア)の数値に関しては、数値を変化させても全命令文のスコアの相対な大小関係は変化しないため、命令文を確認する順番は変わらない。よって、(ア)の数値に関してもパターン1でよい。
よって、結論としては、入力に関る値は、A特許検討会で使用したパターン1の組合せが良い。
本発明の実施例のシステム全体構造を示すブロック図である。 制御部109の機能を説明するためのフローチャートである。 ステップ202の業務仕様解析機能を説明するためのフローチャートである。 ステップ304の業務処理条件情報テーブル類の初期値設定処理を説明するためのフローチャートである。 ステップ306の処理文スコア算出処理を説明するためのフローチャートである。 ステップ502の重み係数算出処理を説明するためのフローチャートである。 ステップ504の計算部スコア算出処理を説明するためのフローチャートである。 ステップ708のデータ項目スコア算出処理を説明するためのフローチャートである。 各テーブルの関連を示したER図である。 解析対象のプログラムを命令文単位に登録する命令文情報テーブルである。 解析対象のプログラムを個々の命令文のデータ項目単位に登録するデータ項目情報テーブルである。 制御依存の依存先と依存元となっている命令文に付加された命令文番号を管理する制御依存情報テーブルである。 個々の命令文のデータ項目と、そのデータ項目のデータ依存元となっている命令文に付加された命令文番号と、該命令文に付加された命令文番号とを管理する制御依存情報テーブルである。 命令文が業務の切替に関る可能性の数値を命令文単位に登録する処理文情報テーブルである。 データ項目が業務の切替に関る可能性の数値を個々の命令文のデータ項目単位に登録しているデータ項目スコアテーブルである。 データ項目が入力と、定数とのときに業務に関る可能性の数値を登録するデータ項目初期値スコアテーブルである。 制御依存先が制御依存元に比べてどれくらい業務に関る可能性が低くなるか表した数値を登録している処理内容係数設定テーブルである。 重み係数算出処理で重み係数を算出できない状態をエラーとして登録するループエラー判定テーブルである。 実施例で用いる解析対象のプログラムである。 ステップ202の業務仕様解析機能前の命令文情報テーブルである。 ステップ202の業務仕様解析機能前のデータ項目情報テーブルである。 ステップ202の業務仕様解析機能前の制御依存情報テーブルである。 ステップ202の業務仕様解析機能前のデータ依存情報テーブルである。 ステップ304の業務処理条件情報テーブル類の初期値設定処理前のループエラー判定テーブルである。 ステップ304の業務処理条件情報テーブル類の初期値設定処理前の処理内容係数設定テーブルである。 ステップ304の業務処理条件情報テーブル類の初期値設定処理前のデータ項目初期値スコア設定テーブルである。 ステップ306の処理文スコア算出処理前の処理文情報テーブルである。 ステップ306の処理文スコア算出処理前のデータ項目スコアテーブルである。 ステップ306の処理文スコア算出処理後の処理文情報テーブルである。 ステップ306の処理文スコア算出処理後のデータ項目スコアテーブルである。 制御部109の機能を説明するために用いる、メニュー画面である。 ユーザからのデータ項目初期値スコア設定テーブルに対する初期値スコアの入力と、処理内容係数設定テーブルに対する処理内容係数の入力とを受け付ける画面である。 命令文単位で業務切替関連度数情報を表示する画面である。 業務仕様解析結果表示画面の例である。 解析対象の業務的なプログラムの他の例である。 図35の業務的なプログラムの処理文スコア算出処理後の処理文情報テーブルである。 プログラム行番号「1」から「5」までの処理文スコア算出処理後の処理文情報テーブルである。 プログラム行番号「1」から「6」までの処理文スコア算出処理後の処理文情報テーブルである。
符号の説明
101 CPU
102 ディスプレイ装置
103 キーボード
104 指示装置
105 メモリ
106 プログラム解析部
107 業務仕様解析部
108 業務仕様解析結果表示部
109 制御部
110 外部記憶装置
111 対象プログラム
112 業務処理条件情報
113 命令文情報
114 データ項目情報
115 制御依存情報
116 データ依存情報
117 処理文情報
118 データ項目スコア
119 データ項目初期設定スコア設定
120 処理内容係数設定
121 ループエラー判定

Claims (21)

  1. 入力された解析対象プログラムより、業務の切替に関る命令文の抽出を支援する業務仕様解析装置であって、
    上記解析対象プログラムの命令文が制御文かそれ以外かを識別する情報と、
    個々の命令文におけるデータ項目が、他の命令文で定義された値を参照しているデータ項目、該命令文で値を定義されているデータ項目、その命令文で該プログラムの入力を設定しているデータ項目、または定数であるデータ項目かとを識別する情報と、
    個々の命令文のある特定のデータ項目のデータ依存元、データ依存先との対応情報、ある特定の命令文の制御依存元、及び制御依存先との対応情報と、
    制御依存先の命令文が制御依存元の命令文に比べて、どれくらい業務の切替に関る可能性が低くなるかを表した数値と、
    データ項目がその命令文で該プログラムの入力を設定しているデータ項目または定数であるデータ項目のときに、業務の切替に関る可能性について表した数値とを用いて、
    命令文と、該命令文が業務の切替に関る可能性の数値との対で構成される業務仕様解析結果を出力とする業務仕様解析部を備えることを特徴とする業務仕様解析装置、
    ここで、ある第1の命令文と、別の第2の命令文とがあったとき、第2の命令文を実行するか否かが、第1の命令文の実行結果によって決まるとき、第1の命令文は制御文であり、
    また、ある第1の命令文と、別の第2の命令文と、ある第1のデータ項目とがあったときに、第1の命令文で第1のデータ項目を定義しているとき、かつ、第2の命令文で第1のデータ項目を参照しているとき、かつ、第1の命令文から第2の命令文への実行可能な経路で、その経路において第1の命令文から第2の命令文を実行する間に第1のデータ項目を再定義している命令文が存在しないとき、第1の命令文を第1のデータ項目のデータ依存元といい、第2の命令文を第1のデータ項目のデータ依存先といい、
    また、ある第1の命令文と、別の第2の命令文とがあったときに、第1の命令文の実行結果によって第2の命令文を実行するか否かが決まるとき、かつ、第1の命令文から第2の命令文への実行可能経路で、第2の命令文を実行するか否かを決定するような命令文が存在しないとき、第1の命令文を制御依存元といい、第2の命令文を制御依存先という。
  2. 解析対象プログラムより、業務の切替に関る可能性がある命令文の抽出を支援する業務仕様解析装置であって、
    個々の命令文におけるデータ項目が、他の命令文で定義された値を参照しているデータ項目、該命令文で値を定義されているデータ項目、その命令文で該プログラムの入力を設定しているデータ項目、または定数であるデータ項目かとを識別する情報と、
    個々の命令文のある特定のデータ項目のデータ依存元とデータ依存先との対応情報と、
    データ項目がその命令文で該プログラムの入力を設定しているデータ項目または定数であるデータ項目のときに、業務の切替に関る可能性について表した数値とを入力として、
    命令文と、該命令文が業務の切替に関る可能性の数値との対で構成される業務仕様解析結果を出力とする業務仕様解析部を備えることを特徴とする業務仕様解析装置。
  3. 請求項1に記載の業務仕様解析装置において、
    業務仕様解析部は、入力を構成する、命令文が制御文であるか、それ以外であるかという情報を、命令文が分類1の制御文であるか、分類2の制御文であるか、それ以外であるかという情報に置き換えることと、
    入力を構成する、制御依存先の命令文が制御依存元の命令文に比べて、どれくらい業務の切替に関る可能性が低くなるかを表した数値を、制御依存元の命令文が分類1の命令文と、分類2の命令文とのときに、制御依存先の命令文が制御依存元の命令文に比べて、どれぐらい業務の切替に関る可能性が低くなるかを、制御依存元の命令文が分類1の命令文と、分類2の命令文との場合ごとに表した数値に置き換えると、
    出力を構成する、命令文が業務の切替に関る可能性を示す数値が置き換えない場合と異なることを特徴とする業務仕様解析装置、
    但し、ある第1の命令文と、別の第2の命令文があったときに、第2の命令文をただ1度だけ実行するか否かが、第1の命令文の実行結果によって決まるとき、第1の命令文は分類1の制御文である。
    また、命令文が制御文であったとき、かつ、命令文が分類1の制御文でなかったとき、命令文は分類2の制御文とする。
  4. 請求項1に記載の業務仕様解析装置において、
    業務仕様解析部は、入力を構成する、個々の命令文におけるデータ項目が、他の命令文で定義された値を参照しているデータ項目かと、該命令文で値を定義されているデータ項目かと、その命令文で該プログラムの入力を設定しているデータ項目または定数であるデータ項目かとを識別する情報を、個々の命令文におけるデータ項目が、他の命令文で定義された値を参照しているデータ項目かと、該命令文で値を定義されているデータ項目かと、その命令文で該プログラムの入力を設定しているデータ項目と、定数であるデータ項目かとを識別する情報に置き換えることと、
    入力を構成する、データ項目がその命令文で該プログラムの入力を設定しているデータ項目または定数であるデータ項目のときに、業務の切替に関る可能性について表した数値を、データ項目がその命令文で該プログラムの入力を設定しているデータ項目と、定数であるデータ項目とのときに、データ項目が業務の切替に関る可能性について表した数値に置き換えることとで、データ項目が入力であるか、入力でないかとに応じて、
    出力を構成する、命令文が業務の切替に関る可能性を示す数値が異なることを特徴とする業務仕様解析装置。
  5. 請求項2に記載の業務仕様解析装置において、
    業務仕様解析部は、入力を構成する、個々の命令文におけるデータ項目が、他の命令文で定義された値を参照しているデータ項目かと、該命令文で値を定義されているデータ項目かと、その命令文で該プログラムの入力を設定しているデータ項目または定数であるデータ項目かとを識別する情報を、個々の命令文におけるデータ項目が、他の命令文で定義された値を参照しているデータ項目かと、該命令文で値を定義されているデータ項目かと、その命令文で該プログラムの入力を設定しているデータ項目と、定数であるデータ項目かとを識別する情報に置き換えることと、及び、
    入力を構成する、データ項目がその命令文で該プログラムの入力を設定しているデータ項目または定数であるデータ項目のときに、業務の切替に関る可能性について表した数値を、データ項目がその命令文で該プログラムの入力を設定しているデータ項目と、定数であるデータ項目とのときに、データ項目が業務の切替に関る可能性について表した数値に置き換えることとで、データ項目が入力であるか、入力でないかとに応じて、
    出力を構成する、命令文が業務の切替に関る可能性を示すの数値が異なることを特徴とする業務仕様解析装置。
  6. 請求項1に記載の業務仕様解析装置において、
    業務仕様解析装置は、ユーザが指定したプログラムを入力として、プログラムの命令文が制御文であるか、それ以外であるかという情報と、個々の命令文におけるデータ項目が、他の命令文で定義された値を参照しているデータ項目かと、該命令文で値を定義されているデータ項目かと、その命令文で該プログラムの入力を設定しているデータ項目、または、定数であるデータ項目かとを識別する情報と、個々の命令文のある特定のデータ項目のデータ依存元と、データ依存先との対応情報と、ある特定の命令文の制御依存元と、制御依存先との対応情報とを出力するプログラム解析部をさらに備えることを特徴とする業務仕様解析装置。
  7. 請求項2に記載の業務仕様解析装置において、
    業務仕様解析装置は、ユーザが指定したプログラムを入力として、個々の命令文におけるデータ項目が、他の命令文で定義された値を参照しているデータ項目かと、該命令文で値を定義されているデータ項目かと、その命令文で該プログラムの入力を設定しているデータ項目、または、定数であるデータ項目かとを識別する情報と、個々の命令文のある特定のデータ項目のデータ依存元と、データ依存先との対応情報と、ある特定の命令文の制御依存元と、制御依存先との対応情報とを出力するプログラム解析部をさらに備えることを特徴とする業務仕様解析装置。
  8. 請求項3に記載の業務仕様解析装置において、
    業務仕様解析装置は、ユーザが指定したプログラムを入力として、プログラムの命令文が分類1の制御文であるか、分類2の制御文であるか、それ以外であるかという情報と、制御依存元の命令文が分類1の命令文と、分類2の命令文とのときに、制御依存先の命令文が制御依存元の命令文に比べて、どれぐらい業務の切替に関る可能性が低くなるかを、制御依存元の命令文が分類1の命令文と、分類2の命令文との場合ごとに表した数値と、個々の命令文のある特定のデータ項目のデータ依存元と、データ依存先との対応情報と、ある特定の命令文の制御依存元と、制御依存先との対応情報とを出力するプログラム解析部をさらに備えることを特徴とする業務仕様解析装置。
  9. 請求項4に記載の業務仕様解析装置において、
    業務仕様解析装置は、ユーザが指定したプログラムを入力として、プログラムの命令文が制御文であるか、それ以外であるかという情報と、個々の命令文におけるデータ項目が、他の命令文で定義された値を参照しているデータ項目かと、該命令文で値を定義されているデータ項目かと、その命令文で該プログラムの入力を設定しているデータ項目と、定数であるデータ項目かとを識別する情報と、個々の命令文のある特定のデータ項目のデータ依存元と、データ依存先との対応情報と、ある特定の命令文の制御依存元と、制御依存先との対応情報とを出力するプログラム解析部をさらに備えることを特徴とする業務仕様解析装置。
  10. 請求項5に記載の業務仕様解析装置において、
    業務仕様解析装置は、ユーザが指定したプログラムを入力として、個々の命令文におけるデータ項目が、他の命令文で定義された値を参照しているデータ項目かと、該命令文で値を定義されているデータ項目かと、その命令文で該プログラムの入力を設定しているデータ項目と、定数であるデータ項目かとを識別する情報と、個々の命令文のある特定のデータ項目のデータ依存元と、データ依存先との対応情報と、ある特定の命令文の制御依存元と、制御依存先との対応情報とを出力するプログラム解析部をさらに備えることを特徴とする業務仕様解析装置。
  11. ユーザの指定したプログラムより、業務の切替に関る可能性がある命令文を抽出することを支援する装置であって、
    ユーザが指定したプログラムと、データ項目がその命令文で該プログラムの入力を設定しているデータ項目または定数であるデータ項目のときに、業務の切替に関る可能性について表した数値とを入力として、
    命令文と、命令文が業務の切替に関る可能性の数値とで構成される業務仕様解析結果を出力とすることを特徴とする業務仕様解析装置。
  12. ユーザの指定したプログラムより、業務の切替に関る可能性がある命令文を抽出することを支援する装置であって、
    ユーザが指定したプログラムと、制御依存先の命令文が制御依存元の命令文に比べて、どれくらい業務の切替に関る可能性が低くなるかを表した数値と、データ項目がその命令文で該プログラムの入力を設定しているデータ項目または定数であるデータ項目のときに、業務の切替に関る可能性について表した数値とを入力として、
    命令文と、命令文が業務の切替に関る可能性の数値とで構成される業務仕様解析結果を出力とすることを特徴とする業務仕様解析装置。
  13. 請求項1〜5、11、12に記載の業務仕様解析装置において、
    業務処理処理条件抽出装置は、命令文と、命令文が業務の切替に関る可能性の数値とで構成される業務仕様解析結果を入力として、命令文と、命令文が業務の切替に関る可能性の数値との対応を表示する業務仕様解析結果表示部を備えることをさらに特徴とする業務仕様解析装置。
  14. 請求項1〜5、11、12に記載の業務仕様解析装置において、
    業務処理処理条件抽出装置は、命令文と、命令文が業務の切替に関る可能性の数値とで構成される業務仕様解析結果を入力として、業務の切替に関る可能性の数値が高い順に命令文を表示する業務仕様解析結果表示部をさらに備えることを特徴とする業務仕様解析装置。
  15. 請求項1〜5、11、12に記載の業務仕様解析装置において、
    業務処理処理条件抽出装置は、命令文と、命令文が業務の切替に関る可能性の数値とで構成される業務仕様解析結果を入力として、業務の切替に関る可能性の数値が一定以上の命令文を表示する業務仕様解析結果表示部をさらに備えることを特徴とする業務仕様解析装置。
  16. 請求項1〜5、11、12に記載の業務仕様解析装置において、
    業務処理処理条件抽出装置は、命令文と、命令文が業務の切替に関る可能性の数値とで構成される業務仕様解析結果を入力として、制御文である命令文と、命令文が業務の切替に関る可能性の数値との対応を表示する業務仕様解析結果表示部をさらに備えることを特徴とする業務仕様解析装置。
  17. 解析対象プログラムから業務の切り替えに関わる命令文の抽出を支援する業務仕様解析装置であって、解析処理プログラムを記憶する第1のメモリ(105)と、解析対象プログラム及び解析処理時に用いるテーブル情報を記憶する第2のメモリ(110)と、入力装置(103)と、出力装置(102)と、上記解析処理を実行して上記解析対象プログラムを解析する処理装置(101)とを有し、
    上記解析処理プログラムは、
    上記解析対象プログラムを取得して、仕様の解析に用いる情報(a)(b)(c)(d)を取得するプログラム解析処理(106)と、
    上記入力装置より数値(e)(f)を受付け、上記情報(a)(b)(c)(d)を用いて上記解析対象プログラムを構成する処理文に対して業務の切替に依存する数値を取得する業務仕様解析処理(107)と、
    上記解析対象プログラムを構成する処理文と該処理文に対応した上記業務の切替に依存する数値とを併記して上記出力手段へ表示処理する業務仕様解析結果表示処理(108)と
    からなることを特徴とする業務仕様解析装置、
    ただし、
    上記情報(a)は、解析対象プログラムを構成する命令文が制御文であるかそれ以外かとを識別する情報(図20)、
    上記情報(b)は、解析対象プログラムを構成する個々の命令文におけるデータ項目が、他の命令文で定義された値を参照しているデータ項目か、該命令文で値を定義されているデータ項目か、その命令文で該プログラムの入力を設定しているデータ項目か、または定数であるデータ項目化とを識別する情報、
    上記情報(c)は、解析対象プログラムを構成する個々の命令文のある特定のデータ項目のデータ依存元と、データ依存先との対応情報、
    上記情報(d)は、解析対象プログラムを構成するある特定の命令文の制御依存元と、制御依存先との対応情報、
    上記数値(e)は、制御依存先の命令文が制御依存元の命令文に比べて、どれくらい業務の切替に関わる可能性が低くなるかを示す数値、
    上記数値(f)は、データ項目がその命令文で該プログラムの入力を設定しているデータ項目又は定数であるデータ項目のときに、業務の切替に関わる可能性についてあらわした数値、
    とする。
  18. 請求項17において、
    上記業務使用解析処理では、
    上記解析対象プログラムを構成する処理文に対して、重み係数と、計算部スコアを取得し、
    上記重み係数と上記計算部スコアの積を上記業務の切替に依存する数値とすることを特徴とする業務仕様解析装置。
  19. 請求項17において、上記数値(e)は1以下の数値であることを特徴とする業務仕様解析装置。
  20. 請求項17において、上記数値(f)はデータ項目がその命令文でプログラムの入力が設定しされているときに1以上の数値であることを特徴とする業務仕様解析装置。
  21. 請求項18において、処理中の上記処理文の制御依存元プログラム行がない場合には、上記重み係数に定数を設定することを特徴とする業務仕様解析装置。
JP2006086862A 2006-03-28 2006-03-28 業務使用解析装置 Pending JP2007264863A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006086862A JP2007264863A (ja) 2006-03-28 2006-03-28 業務使用解析装置
US11/520,340 US20070234281A1 (en) 2006-03-28 2006-09-12 Apparatus for analyzing task specification

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006086862A JP2007264863A (ja) 2006-03-28 2006-03-28 業務使用解析装置

Publications (1)

Publication Number Publication Date
JP2007264863A true JP2007264863A (ja) 2007-10-11

Family

ID=38561022

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006086862A Pending JP2007264863A (ja) 2006-03-28 2006-03-28 業務使用解析装置

Country Status (2)

Country Link
US (1) US20070234281A1 (ja)
JP (1) JP2007264863A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014241040A (ja) * 2013-06-11 2014-12-25 株式会社東芝 情報処理装置、方法、及びプログラム
JP6890557B2 (ja) * 2018-01-17 2021-06-18 株式会社日立製作所 分析モデル作成システム、プログラミング装置および分析モデル作成方法
CN111176718A (zh) * 2019-12-24 2020-05-19 中国平安财产保险股份有限公司 脚本上线方法、装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001142688A (ja) * 1999-11-16 2001-05-25 Fujitsu Ltd プログラム分析装置及び記録媒体
JP2005122407A (ja) * 2003-10-15 2005-05-12 Fujitsu Ltd 仕様書生成プログラムおよびその記録媒体、仕様書生成装置ならびに仕様書生成方法
JP2006113934A (ja) * 2004-10-18 2006-04-27 Hitachi Ltd プログラム開発支援装置、プログラム開発支援方法およびプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009267A (en) * 1993-09-30 1999-12-28 Fujitsu Limited Apparatus for analyzing the task specification (business rule specification) of a source program
JP2001167060A (ja) * 1999-12-07 2001-06-22 Hitachi Ltd タスク並列化方法
CN101103336A (zh) * 2005-01-13 2008-01-09 皇家飞利浦电子股份有限公司 数据处理系统和任务调度的方法
JP4826120B2 (ja) * 2005-04-01 2011-11-30 株式会社日立製作所 業務仕様作成支援システム及び方法
JP4876511B2 (ja) * 2005-09-29 2012-02-15 株式会社日立製作所 ロジック抽出支援装置
JP2009069921A (ja) * 2007-09-11 2009-04-02 Hitachi Ltd マルチプロセッサシステム
JP4978432B2 (ja) * 2007-11-07 2012-07-18 株式会社日立製作所 業務仕様理解支援システム及び方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001142688A (ja) * 1999-11-16 2001-05-25 Fujitsu Ltd プログラム分析装置及び記録媒体
JP2005122407A (ja) * 2003-10-15 2005-05-12 Fujitsu Ltd 仕様書生成プログラムおよびその記録媒体、仕様書生成装置ならびに仕様書生成方法
JP2006113934A (ja) * 2004-10-18 2006-04-27 Hitachi Ltd プログラム開発支援装置、プログラム開発支援方法およびプログラム

Also Published As

Publication number Publication date
US20070234281A1 (en) 2007-10-04

Similar Documents

Publication Publication Date Title
JP4876511B2 (ja) ロジック抽出支援装置
US20080275850A1 (en) Image tag designating apparatus, image search apparatus, methods of controlling operation of same, and programs for controlling computers of same
JP4872529B2 (ja) リバースエンジニアリング支援方法
US9875096B2 (en) Systems and methods for software scanning tool
JP5766370B2 (ja) プログラムおよび電子マニュアル表示装置
JPH07239776A (ja) ソフトウェアシステム管理装置
JP6409577B2 (ja) テスト選択プログラム、テスト選択方法、及びテスト選択装置
US9323719B2 (en) Mathematical expression input apparatus, mathematical expression modification method, and storage medium storing program
JP4826120B2 (ja) 業務仕様作成支援システム及び方法
JP2007264863A (ja) 業務使用解析装置
JP4699909B2 (ja) キーワード対応関係分析装置及び分析方法
JP5386412B2 (ja) 輸出管理サーバ装置、輸出管理方法およびプログラム
JP2009169573A (ja) 解析結果出力装置、及び解析結果出力方法
WO2019123704A1 (ja) データ分析支援装置、データ分析支援方法およびデータ分析支援プログラム
JP6797038B2 (ja) ソフトウェア素材選定支援装置及びソフトウェア素材選定支援プログラム
JP6993573B2 (ja) プログラム解析方法、プログラム解析装置およびプログラム解析プログラム
JP4568320B2 (ja) 処理手順生成装置及び処理手順生成方法
WO2012017757A1 (ja) クローン検出装置、クローン検出プログラム、及びクローン検出プログラムを記録した記録媒体
JP2000172739A (ja) 設計支援装置
JP7469999B2 (ja) 検索装置、検索方法、および検索プログラム
KR20070014219A (ko) 이미지 내의 상품 자동 검출 방법 및 상품에 연관 웹 소스생성 방법
JP5514682B2 (ja) バッチ処理プログラム分析方法および装置
JP5965785B2 (ja) ユースケースシナリオ作成支援装置、ユースケースシナリオ作成支援方法、およびユースケースシナリオ作成支援プログラム
JP6852002B2 (ja) データ検索方法、データ検索装置及びプログラム
WO2024047997A1 (ja) 文書分析装置、及び文書分析用プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120117