JP2013025716A - モジュールの構造解析を支援する装置及びプログラム - Google Patents

モジュールの構造解析を支援する装置及びプログラム Download PDF

Info

Publication number
JP2013025716A
JP2013025716A JP2011162519A JP2011162519A JP2013025716A JP 2013025716 A JP2013025716 A JP 2013025716A JP 2011162519 A JP2011162519 A JP 2011162519A JP 2011162519 A JP2011162519 A JP 2011162519A JP 2013025716 A JP2013025716 A JP 2013025716A
Authority
JP
Japan
Prior art keywords
module
sentence
function
statement
operand
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011162519A
Other languages
English (en)
Other versions
JP5458065B2 (ja
Inventor
Shinichi Ishida
伸一 石田
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.)
I SYSTEM KK
Original Assignee
I SYSTEM KK
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 I SYSTEM KK filed Critical I SYSTEM KK
Priority to JP2011162519A priority Critical patent/JP5458065B2/ja
Priority to KR1020147003424A priority patent/KR101905675B1/ko
Priority to CN201280033010.4A priority patent/CN103635880B/zh
Priority to US14/235,040 priority patent/US9128807B2/en
Priority to PCT/JP2012/067577 priority patent/WO2013015109A1/ja
Publication of JP2013025716A publication Critical patent/JP2013025716A/ja
Application granted granted Critical
Publication of JP5458065B2 publication Critical patent/JP5458065B2/ja
Active 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source

Landscapes

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

Abstract

【課題】多数のモジュールに分散された機能を1つの二次的モジュールに纏めることによって機能を把握し易くし、これによってモジュールの構造解析を支援する装置を提供すること。
【解決手段】モジュールの構造解析を支援する装置は、1以上のモジュールが記憶された記憶手段と、記憶手段に記憶されたモジュールのうち所定の対象モジュールを二次的モジュールに変換して記憶手段に記憶する変換手段とを備えている。変換手段は、対象モジュールを記憶手段から読み込み、対象モジュールの所定の処理開始箇所から所定の処理終了箇所までに記述された文の夫々を二次的モジュールに順次出力する。また、変換手段は、文がモジュール内部の処理単位又は他のモジュールを実行する文である場合、実行対象の処理単位等に記述されている文を再帰的に展開して二次的モジュールに出力する。
【選択図】図1

Description

本発明は、プログラム言語によって記述された1以上の文からなるモジュール(ソースプログラム)の構造解析を支援する装置に関する。
プログラムを作成する場合、構造化プログラミングが強く推奨される。具体的には、例えば、比較的少数の文からなる処理単位を組み合わせることでモジュールを作成するように求められる。また、複数のモジュールについての共通的な処理もモジュール化することが求められる。従って、例えばプログラムの合計行数が100万行を超すような大きなシステムは、夫々が数十の処理単位からなる数千のモジュールを備えていることも多い。
上述のような大規模なシステムは、開発後しばらくの期間においては、開発に携わった担当者、即ちモジュール間の関連及び夫々のモジュールの構造を熟知した者がシステムのメンテナンスを行うことが多い。しかしながら、このようなシステムは数十年に亘ってメンテナンスを繰り返しながら使用されることも多い。時が経つにつれて開発に携わった担当者がいなくなり、モジュールの構造を知らない者がシステムのメンテナンスを行うことになる。このような場合、構造化プログラミングがなされていることに起因して、膨大なモジュールに分散して記述されている機能を把握しなければならず、メンテナンスは困難を極める。即ち、モジュールの構造解析が困難になる。
例えば、特許文献1及び特許文献2には、モジュールの構造解析を支援するための技術が開示されている。特許文献1には、モジュール関連図を自動的に作成するモジュール構成図自動生成装置が開示されている。特許文献2には、フローチャート及びテスト項目を自動的に作成するテスト項目自動生成装置が開示されている。
特開平11−110198号公報 特開2006−209521号公報
しかしながら、システムのメンテナンスを目的としてモジュールの構造解析を行う場合、各モジュールの詳細な内部処理を把握する必要がある。モジュール関連図やモジュール毎のフローチャートを利用しても、多数のモジュールに分散された機能の全体像を把握することは容易ではない。
そこで、本発明は、多数のモジュールに分散された機能を1つの二次的モジュールに纏めることによって機能を把握し易くし、これによってモジュールの構造解析を支援する装置を提供することを目的とする。
本発明は、第1の装置として、
プログラム言語によって記述された1以上の文からなるモジュールを1以上の二次的文からなる二次的モジュールに変換する装置であって、
前記モジュールはモジュール名によって特定可能であり、前記モジュールには、1以上の前記文から構成される処理単位であって処理単位名によって特定可能な前記処理単位を記述することが可能であり、
前記モジュールには、前記文として、前記処理単位を前記処理単位名によって特定して実行するための処理単位実行文と、前記モジュールを前記モジュール名によって特定して実行するためのモジュール呼び出し文と、条件式が成立するか成立しないかによって実行すべき前記文を選択するための条件文とを記述可能であり、前記条件文によって選択される前記文として更に前記条件文が記述可能であり、これにより前記条件文による前記文の階層化が可能であり、
前記装置は、1以上の前記モジュールが記憶された記憶手段と、前記記憶手段に記憶された前記モジュールのうちの所定の対象モジュールを前記二次的モジュールに変換して前記記憶手段に記憶する変換手段とを備えており、
前記変換手段は、前記対象モジュールを前記記憶手段から読み込む読込機能と、前記対象モジュールの所定の処理開始箇所から所定の処理終了箇所までに記述された前記文の夫々を前記二次的文として前記二次的モジュールに順次出力すると共に、前記文が前記処理単位実行文又は前記モジュール呼び出し文である場合、実行対象の前記処理単位又は呼び出し対象の前記モジュールに記述されている前記文を展開することで前記二次的文を生成して前記二次的モジュールに出力する変換機能であって、前記展開される前記文における前記処理単位実行文又は前記モジュール呼び出し文についても前記展開を更に行う前記変換機能と、前記二次的モジュールを前記記憶手段に記憶する書込機能とを有している
モジュールの構造解析を支援する装置を提供する。
本発明は、第2の装置として、第1の装置であって、
前記変換手段は、展開制御情報を取得する制御情報取得機能を有しており、前記展開制御情報は、実行対象の前記処理単位又は呼び出し対象の前記モジュールに記述されている前記文の前記展開を初回のみに制限することを指示する展開制限指示を指定することが可能なものであり、
前記変換手段は、前記変換機能において、前記展開制御情報に前記展開制限指示が指定されている場合、同一の前記処理単位については、実行対象の前記処理単位に記述されている前記文の前記展開を初回の1回のみ行い、同一の前記モジュールについては、呼び出し対象の前記モジュールに記述されている前記文の前記展開を初回の1回のみ行う
モジュールの構造解析を支援する装置を提供する。
本発明は、第3の装置として、第1又は第2の装置であって、
前記変換手段は、前記変換機能において、前記文が前記条件文である場合、前記条件文の前記条件式に基づいて前記二次的文の一つである二次的条件文を生成し、前記二次的条件文によって前記二次的文を階層化して前記二次的モジュールに出力するものであり、
前記二次的条件文は、2つの評価対象オペランド間の関係を1つの論理演算子のみによって評価する二次的条件式が成立するか成立しないかによって実行すべき前記二次的文を選択するものである
モジュールの構造解析を支援する装置を提供する。
本発明は、第4の装置として、第3の装置であって、
前記変換手段は、前記二次的モジュールに出力する前記二次的文の少なくとも一部について、前記二次的文がいずれの前記階層に位置しているかを示す階層識別を付加する階層識別付加機能と、前記二次的モジュールに出力する前記二次的文のうち定数又は変数からなる2つのオペランドと1つの演算子とを含むものについて、2つの前記オペランドと1つの前記演算子とからなるオペランド情報を前記二次的文に付加するオペランド付加機能とのうちの少なくとも一方を有している
モジュールの構造解析を支援する装置を提供する。
本発明は、第5の装置として、第3の装置によって出力される二次的モジュールが記憶された記憶手段を備える装置であって、
前記装置は、前記記憶手段に記憶された前記二次的モジュールを加工する加工手段を備えており、
前記加工手段は、読込機能と、階層識別付加機能とオペランド付加機能とのうちの少なくとも一方と、書込機能とを有しており、
前記読込機能は、前記二次的モジュールを前記記憶手段から読み込む機能であり、
前記階層識別付加機能は、前記二次的モジュールの前記二次的文の少なくとも一部について、前記二次的文がいずれの前記階層に位置しているかを示す階層識別を付加する機能であり、
前記オペランド付加機能は、前記二次的モジュールの前記二次的文のうち定数又は変数からなる2つのオペランドと1つの演算子とを含むものについて、2つの前記オペランドと1つの前記演算子とからなるオペランド情報を前記二次的文に付加する機能であり、
前記書込機能は、前記階層識別又は前記オペランド情報が付加された前記二次的文からなる前記二次的モジュールを前記記憶手段に記憶する機能である
モジュールの構造解析を支援する装置を提供する。
本発明は、第6の装置として、第4又は第5の装置によって出力される二次的モジュールであって、少なくとも階層識別が付加された二次的文からなる前記二次的モジュールが記憶された記憶手段を備える装置であって、
前記装置は、前記記憶手段に記憶された前記二次的モジュールの前記二次的文の一部を選択する選択手段を備えており、
前記選択手段は、前記二次的モジュールを前記記憶手段から読み込む読込機能と、前記二次的文のうち選択対象とすべきものの前記階層識別を特定する階層識別特定情報を取得する特定情報取得機能と、前記二次的モジュールの前記二次的文のうち前記階層識別が前記階層識別特定情報によって特定される前記階層識別と同一であるものを選択して選択後の二次的モジュールに出力する選択機能と、前記選択後の二次的モジュールを前記記憶手段に記憶する書込機能とを有している
モジュールの構造解析を支援する装置を提供する。
本発明は、第7の装置として、請求項4又は請求項5記載の装置によって出力される二次的モジュールであって、少なくとも階層識別が付加された二次的文からなる前記二次的モジュールが記憶された記憶手段を備える装置であって、
前記装置は、前記記憶手段に記憶された前記二次的モジュールから表形式のフローチャートを作成するフローチャート作成手段を備えており、
前記フローチャート作成手段は、前記二次的モジュールを前記記憶手段から読み込む読込機能と、前記二次的モジュールの前記二次的文のうち階層識別によって示される階層が同一である前記二次的文について、前記二次的条件式が成立した場合に実行される前記二次的文と前記二次的条件式が成立しない場合に実行される前記二次的文とを表の左右に並べた前記フローチャートを作成するフローチャート作成機能と、前記フローチャートを前記記憶手段に記憶する書込機能とを有している
モジュールの構造解析を支援する装置を提供する。
本発明は、第8の装置として、第4又は第5の装置によって出力される二次的モジュールであって、少なくともオペランド情報が付加された二次的文からなる前記二次的モジュールが記憶された記憶手段を備える装置であって、
前記装置は、前記記憶手段に記憶された前記二次的モジュールの前記二次的文に所定の表示属性を設定する表示属性設定手段を備えており、
前記表示属性設定手段は、前記二次的モジュールを前記記憶手段から読み込む読込機能と、初期検索文字を取得する初期検索文字取得機能と、前記二次的モジュールの前記二次的文のうち前記オペランド情報の前記オペランドに前記初期検索文字を含んでいるものの前記オペランドを追加検索文字とし、前記二次的文のうち前記オペランド情報の前記オペランドに前記追加検索文字を含んでいるものの前記オペランドを更に前記追加検索文字として、前記二次的文のうち前記オペランド情報の前記オペランドに前記初期検索文字又は前記追加検索文字を含んでいるものに前記所定の表示属性を設定する表示属性設定機能と、前記二次的文に前記所定の表示属性が設定された前記二次的モジュールを前記記憶手段に記憶する書込機能とを有している
モジュールの構造解析を支援する装置を提供する。
本発明は、第9の装置として、第3の装置によって出力される二次的モジュールが記憶された記憶手段を備える装置であって、
前記装置は、前記記憶手段に記憶された前記二次的モジュールから複数の列と1以上の行とを組み合わせた表形式のマトリックスを作成するマトリックス作成手段を備えており、
前記マトリックス作成手段は、前記二次的モジュールを前記記憶手段から読み込む読込機能と、前記二次的モジュールの前記二次的文を前記マトリックスの所定の列の各行に出力する二次的文出力機能と、前記二次的モジュールの1以上の前記二次的条件式について、その全てが成立する場合と、その一部が成立する場合と、その全てが成立しない場合とを含む全てのケースを生成するケース生成機能と、生成した前記ケースの夫々に前記列のいずれかを関連表示列として対応させ、前記行に出力された前記二次的文のうち前記関連表示列と対応する前記ケースにおいて実行対象となるものが出力されている前記行に、実行対象となることを示す表示情報を出力するマトリックス作成機能と、前記マトリックスを前記記憶手段に記憶する書込機能とを有している
モジュールの構造解析を支援する装置を提供する。
本発明は、第10の装置として、第9の装置であって、
前記マトリックス作成手段は、前記マトリックス作成機能において、前記記憶手段に記憶された前記二次的モジュールの前記二次的文の一部を選択し、前記関連表示列のうち前記選択された前記二次的文が実行対象となる前記ケースに対応するもののみを前記記憶対象として抽出する
モジュールの構造解析を支援する装置を提供する。
本発明は、第1のプログラムとして、コンピュータを、第1乃至第10のいずれかの装置として機能させるためのプログラムを提供する。
本発明によれば、1つのモジュールの所定の処理開始箇所から所定の処理終了箇所までの間に実行対象の文が展開されるため、多数のモジュールに分散された機能を容易に把握することが可能になる。
また、同じ処理単位又は同じモジュールについて実行対象の文を1回のみ展開することにすれば重複した展開を避けることができ、これにより展開される量を小さくすることができる。
本発明の実施の形態によるモジュールの構造解析を支援する装置を示すブロック構成図である。 図1の装置の記憶装置に記憶されているモジュールの模式的なファイル構成図である。 図2のモジュールを例示する図である。 図1の記憶装置に記憶されている二次的モジュールの模式的なファイル構成図である。 図1の二次的モジュールを部分的に例示する図である。なお、二次的モジュールの一部(破線Aの部分)を実線Aの部分に拡大して示している。 図1の記憶装置に記憶されているフローチャートを部分的に例示する図である。 図1の記憶装置に記憶されているマトリックスを部分的に例示する図である。 図1の装置の変換手段の機能を示すフローチャートである。 図8の変換手段の機能の一部をより詳細に示すフローチャートである。 図1の装置の加工手段の機能を示すフローチャートである。 図1の装置の選択手段の機能を示すフローチャートである。 図1の装置の表示属性設定手段の機能を示すフローチャートである。 図1の装置のフローチャート作成手段の機能を示すフローチャートである。 図1の装置のマトリックス作成手段の機能を示すフローチャートである。 図1の記憶装置に記憶されているマトリックスを部分的に例示する図である。 図3のモジュールのうちの一つを変更した際の差分を例示する図である。 図14のマトリックス作成手段の機能の変形例を示すフローチャートである。 図16のモジュールが変更された場合のマトリックスを部分的に例示する図である。 図16のモジュールが変更された場合のフローチャートを部分的に例示する図である。 図1の装置の変形例を示すシステム構成図である。
図1に示されるように、本実施の形態による装置(モジュールの構造解析を支援する装置)10は、装置本体20と、記憶装置(記憶手段)30と、入力装置40と、表示装置50とを備えている。装置10は、プログラム言語によって記述された1以上の文からなるモジュール(ソースプログラム)を、1以上の二次的文からなる二次的モジュール(二次的ソースプログラム)に変換するものである。
本実施の形態によるプログラム言語はCOBOLである。しかしながら、本発明はCOBOL以外のプログラム言語にも適用可能である。
本実施の形態によるモジュールは、文字、数字、記号等を組み合わせたモジュール名によって特定可能である。
モジュールには、1以上の文から構成される処理単位を記述することができる。本実施の形態による処理単位は、COBOLにおけるセクションであり、セクションの夫々は、セクション名(処理単位名)によって特定することができる。なお、他のプログラム言語における処理単位は、例えば関数名(処理単位名)によって特定可能な関数である。
モジュールは、他のモジュール又は当該モジュール自身を呼び出すことができる。また、モジュールのセクションは、他のセクション又は当該セクション自身を実行することができる。より具体的には、モジュールには、文として、セクションをセクション名によって特定して実行するための処理単位実行文と、モジュールの一つをモジュール名によって特定して実行するためのモジュール呼び出し文とを記述することができる。また、モジュールには、文として、条件式が成立するか成立しないかによって実行すべき文を選択するための条件文を記述することができる。なお、他のプログラム言語における処理単位実行文及びモジュール呼び出し文は、例えば関数名を指定した文である。モジュール呼び出し文が関数名を指定した文である場合、モジュール呼び出し文によって実行されるのはモジュールのうちの指定された関数部分(即ち、モジュールの一部)である。また、この場合、モジュール呼び出し文においてモジュール名が明示的に記述されない場合(即ち、関数名によってモジュール名が間接的に特定される場合)がある。
本実施の形態においては、処理単位実行文はPERFORM文であり、モジュール呼び出し文はCALL文である。また、条件文はIF文及びEVALUATE文である。IF文等の条件文によって選択される文として更に条件文が記述可能であり、これにより条件文による文の階層化が可能である。詳しくは、例えばIF文のTHENについて更にIF文を記述することができる。
図1に示されるように、記憶装置30は、例えば磁気ディスク装置であり、フォルダ(図示せず)等によって階層化された様々なファイルを記憶することができる。記憶装置30は、装置本体20と通信可能に接続されており、装置本体20からの指示に従ってファイルの読込、書込(記憶)等を行う。本実施の形態による記憶装置30には、1以上のモジュール31が記憶されている。換言すれば、本実施の形態によるモジュール31は、記憶装置30に記憶されたモジュールである。モジュール31は、例えばプログラミングツール(図示せず)を使用して作成される。モジュール31の夫々が一つのファイルであってもよいし、複数のモジュール31が一つのファイルとして記憶されていてもよい。記憶装置30は、二次的モジュール32と、フローチャート33と、マトリックス34とを、モジュール31と同様に記憶することができる。本実施の形態によるフローチャート33及びマトリックス34は、二次的モジュール32から夫々作成することができる。
入力装置40は、例えばキーボードやマウスである。入力装置40は、装置本体20と通信可能に接続されており、キーボードから入力された文字やマウスによって指示された位置を装置本体20に通知する。
表示装置50は、例えばディスプレイやプリンタである。表示装置50は、装置本体20と通信可能に接続されており、装置本体20から転送された文字や図形等を表示又は印刷する。
装置本体20は、例えばPC(Personal Computer)の本体である。装置本体20は、CPU(Central
Processing Unit)、主記憶装置等を備えている(図示せず)。記憶装置30には様々なプログラムの実行形式ファイルが記憶されている(図示せず)。CPUは、実行形式ファイルを主記憶装置にローディングし、実行形式ファイル内の命令語を実行することで様々な機能を実現する。またCPUが命令語を実行する過程において、記憶装置30に記憶された所定のファイルが、主記憶装置内のバッファ領域を経由してプログラムの変数領域に読み込まれる。また、プログラムの変数領域に読み込まれたファイルの内容は、必要に応じて主記憶装置内のバッファ領域を経由して記憶装置30に書き込まれる。上記の説明から理解されるように、記憶装置30と主記憶装置とは、本実施の形態における読み込み及び書き込み可能な記憶手段として夫々機能する。以降の説明における記憶手段としては記憶装置30を例示する。
本実施の形態による記憶装置30には、変換プログラムと、加工プログラムと、選択プログラムと、表示属性設定プログラムと、フローチャート作成プログラムと、マトリックス作成プログラムとが記憶されている(図示せず)。上記のプログラムは、主記憶装置にローディングされ、CPUによって実行され、これによってコンピュータは、変換手段21、加工手段22、選択手段23、表示属性設定手段24、フローチャート作成手段25、及びマトリックス作成手段26として夫々機能する。即ち、上記のプログラムは、コンピュータをモジュールの構造解析を支援する装置10として機能させるためのものである。換言すれば、本実施の形態による装置10の装置本体20は、変換手段21と、加工手段22と、選択手段23と、表示属性設定手段24と、フローチャート作成手段25と、マトリックス作成手段26とを備えている。
本実施の形態による変換手段21は、記憶装置30に記憶されたモジュール31のうちの所定の対象モジュール31を二次的モジュール32に変換して記憶装置30に記憶するものである。加工手段22は、記憶装置30に記憶された二次的モジュール32を加工するものである。選択手段23は、記憶装置30に記憶された二次的モジュール32の二次的文の一部を選択するものである。表示属性設定手段24は、記憶装置30に記憶された二次的モジュール32の二次的文に所定の表示属性を設定するものである。フローチャート作成手段25は、記憶装置30に記憶された二次的モジュール32から表形式のフローチャート33を作成するものである。マトリックス作成手段26は、記憶装置30に記憶された二次的モジュール32から複数の列と1以上の行とを組み合わせた表形式のマトリックス34を作成するものである。
図2に示されるように、本実施の形態によるモジュール31は、n個(n≧1)の行310から構成される。行310は、一連番号(行識別)311と文312とから構成される。一連番号311は、行310を識別するためのものであり、数字だけでなく文字等を含むことができる。文312には、文(データ定義文、実行文、コメント文等)が記述されている。文312には、一つの完結した文全体が記述されていてもよいし、一つの文の一部が記述されていてもよい。例えば、MOVE文が2つの行310の文312に分けて記述されていてもよい。
図3に示されるように、記憶装置30には、例えばモジュール名がXXXであるモジュール31(XXXモジュール)と、モジュール名がAAAであるモジュール31(AAAモジュール)と、モジュール名がBBBであるモジュール31(BBBモジュール)と、モジュール名がCCCであるモジュール31(CCCモジュール)とが記憶されている。モジュール31の夫々は、一連番号311と文312とからなる複数の行310から構成されている。
XXXモジュールはメインモジュール(即ち、処理の起点となるモジュール)であり、AAAモジュールとBBBモジュールとをモジュール名によって特定して呼び出すためのCALL文が夫々記述された行310を有している。AAAモジュールは、CCCモジュールを呼び出すCALL文が記述された行310を有している。
図3に例示されたモジュール31の夫々は、1以上のセクションから構成されている。例えば、XXXモジュールは、”PROCEDURE
DIVISION.”が記述された行310の次の行から、”STOP
RUN.”が記述された行310までのメインセクション(モジュールにおける処理の起点となる主たる処理単位)と、”AAA-SUB
SECTION.”が記述された行310から、”EXIT.”が記述された行310までの従たるセクション(従たる処理単位)を有している。なお、上述の従たるセクションのセクション名(処理単位名)はAAA−SUBであり、メインセクションは、AAA−SUBセクションをセクション名によって特定して実行する行310を備えている。より具体的には、メインセクションは、”PERFORM
AAA-SUB.”が記述された行310を備えている。
図3に例示されたセクションの一部は、条件文が記述された行310を備えている。例えば、XXXモジュールのメインセクションは、5つのWHENを有するEVALUATE文が記述された行310と、THENおよびELSEを有するIF文が記述された行310とを備えている。また、CCCモジュールのメインセクションは、IF文のELSEにおいて更にIF文が記述された行310を備えており、これによって条件文による文312の階層化が行われている。
図4に示されるように、本実施の形態による二次的モジュール32は、m個(m≧1)の行320から構成される。本実施の形態においては、二次的モジュール32は、MICROSOFT EXCEL(登録商標)のワークシートであるが、テキストファイル等であってもよい。行320は、モジュール識別321と、行番号322と、階層識別323と、命令識別324と、オペランド情報325と、一連番号(行識別)326と、二次的文327と、表示属性328とから構成される。オペランド情報325は、第1オペランド325fと、演算子325oと、第2オペランド325sとを備えている。二次的モジュール32は、1以上のモジュール31から実行文等が記述された行310を集めて加工することによって生成されている。
図5に示されるように、本実施の形態による二次的モジュール32は、例えば、XXXモジュール、AAAモジュール、BBBモジュール及びCCCモジュールのPROCEDURE DIVISIONの行310を集めて加工したものである。
図5に例示されているように、行320の二次的文327において、行310の文312に記述されているCALL文はコメント化されて(コメント文に変更されて)いる。また、CALL文によって呼び出されるAAAモジュールのPROCEDURE DIVISIONの文312が、行320の二次的文327として展開されている。更に、AAAモジュールからCALL文によって呼び出されるCCCモジュールのPROCEDURE DIVISIONの文312が、行320の二次的文327として展開されている。同様に、行310の文312に記述されているPERFORM文は、行320の二次的文327においてコメント化されている。また、PERFORM文によって実行されるAAA−SUBセクションの文312が、行320の二次的文327として展開されている。
図5に例示されているように、文312に記述された条件文のうちIF文以外のもの(本実施の形態においてはEVALUATE文)は、二次的文327においてIF文に変換されている。例えば、”EVALUATE WK-A-O”、”WHEN
CS-1”、”MOVE
CS-1 TO WK-B-I”が夫々記述された3つの文312は、”*#E
EVALUATE WK-A-O”(コメント文)、”*#E WHEN
CS-1” (コメント文)、”IF ( WK-A-O = CS-1 )” 、”THEN”、”MOVE
CS-1 TO WK-B-I”が夫々記述された5つの二次的文327に変換される。上記の変換に加え、IF文におけるTHEN、ELSE及びEND IFの欠落を補うための二次的文327が生成される。また、否定の条件式は肯定の条件式に変換される。更に、ANDやORで結合された条件式を有するIF文は複数のIF文に分解されて、2つの評価対象オペランド間の関係を1つの論理演算子のみによって評価する単純な二次的条件式を有するIF文に変換される。
以上に加えて、複数の文312に分かち書きされているMOVE文等は、1つの二次的文327に纏められている。即ち、二次的モジュール32の行320の夫々は、モジュール31の行310に基づいて生成されており、二次的文327は、文312をそのままコピーしたものであるか、又は文312を加工・展開することによって生成されたものである。
表示属性328には、行320の二次的文327等を表示装置50に表示する際の表示色、背景色、書体等、表示に関する属性が設定される。例えば、文312をコメント化した二次的文327を赤色で表示することで、コメント化したことを視覚的に把握することが可能になる。
本実施の形態によるモジュール識別321は、夫々の行320がいずれのモジュール31に基づくものであるかを示すものである。より具体的には、モジュール識別321には、XXX等のモジュール名が設定される。なお、モジュール名に代えて、モジュール31を一意に識別可能な番号等を設定してもよい。
一連番号326には、二次的文327が文312のコピーである行320においては、コピー元の行310の一連番号311が設定される。また、二次的文327が文312をコメント化したものである等、行310と1対1に対応する行320については、一連番号326には、対応する行310の一連番号311が設定される。一方、生成された(追加された)行320の一連番号326には、生成された行320であることを識別可能な記号等が設定される。このようにすることで、システムのメンテナンスを行う際に、行320と行310を容易に対応付けることができる。
本実施の形態による行番号322には、1から始まる通番が行320の並び順に沿って設定されている。しかしながら、通番である必要はなく、行番号322に記号等を設定してもよい。
本実施の形態による階層識別323は、分岐階層と分岐の深さとから構成されている。分岐階層は、条件文による階層を識別するためのものである。本実施の形態による分岐階層は、1を1行目の行320における出発値としており、IF文のTHENが記述された行320において1.1に変わり、ELSEが記述された行320において1.2に変わる。そしてIF文のEND IFが記述された行320の次の行から1に戻る。一般化すると、THENが記述された行320においては、直前の行320の分岐階層の末尾に「.1」が加えられ、ELSEが記述された行320においては、直前の行320の分岐階層の末尾「.1」が「.2」に変更され、END IFが記述された行320の次の行においては、END IFが記述された行320の分岐階層の末尾「.2」が削除されている。上記の場合を除き、分岐階層には、直前の行320と同一の値が設定されている。
本実施の形態による分岐の深さは、1を1行目の行320における出発値としており、IF文のTHENが記述された行320において1.1に変わり、END IFが記述された行320の次の行から1に戻る。また、その後のIF文のTHENが記述された行320において1.2に変わり、END IFが記述された行320の次の行から1に戻る。一般化すると、分岐の深さは、1を出発値としており、THENが記述された行320において末尾に「.p」(pは1以上の整数)なる桁が加えられ、END
IFが記述された行320の次の行において末尾の「.p」なる桁が削除される。「.p」におけるpの値は、桁の夫々について1を出発値としている。詳しくは、1桁目の「.p」(例えば1.2の「.2」)におけるpの値は、1を出発値としており、付加される毎にインクリメントされる。一方、2桁目以降の「.p」(例えば1.2.1の「.1」)におけるpの値は、当該桁を除いた分岐の深さが同一値である行320が連続する範囲において1を出発値としており、当該連続する範囲において付加される毎にインクリメントされる。
以上の説明から理解されるように、階層識別323によって、条件文による階層の二次的モジュール32における場所を特定することができる。なお、階層識別323の設定内容は上述の説明には限られない。条件文による階層の二次的モジュール32における場所を特定することができる限り、階層識別323にどのような値が設定されていてもよい。
命令識別324は、二次的文327に記述されている文の種別を示すものである。本実施の形態による命令識別324は、命令名と、条件命令であるか否かを示す区分(条件命令当否)と、処理命令であるか否かを示す区分(処理命令当否)とからなる。二次的文327にIF文の一部が記述されている場合(IF、THEN、ELSE又はEND-IFが記述されている場合)、条件命令当否には○が設定される。また、二次的文327にIF文以外の実行文が記述されている場合(例えばMOVE文やCOMPUTE文が記述されている場合)、処理命令当否には○が設定される。条件命令当否又は処理命令当否に○が設定されている場合、命令名には二次的文327に記述されている命令名(IF、THEN、END-IF、MOVE等)が設定される。
オペランド情報325は、命令識別324に命令名が設定された二次的文327のうち(即ち、実行文が記述されている二次的文327のうち)2つのオペランドと1つの演算子とからなる二次的文327について設定される。例えば、”MOVE
9 TO WK-C-I”が記述されている二次的文327については、第1オペランド325f、演算子325o及び第1オペランド325sに、9、TO及びWK−C−Iが夫々設定される。オペランド情報325を参照することによって、変数および定数間の代入・比較がどのように行われているかを、より容易に把握することができる。
なお、行320は、以上に説明した項目に加えて様々な項目を備えることができる。例えば、対応する行310のセクション名を備えることにより、行320と行310との対応を、より容易に把握することができる。
本実施の形態によれば、記憶装置30に記憶された二次的モジュール32に基づいて様々なファイルを作成し、作成したファイルをモジュール31の構文解析を支援するための資料として表示装置50に表示・印刷することができる。具体的には、例えば二次的モジュール32に基づいてフローチャート33及びマトリックス34を作成することができる。
図6及び図7から理解されるように、本実施の形態によるフローチャート33及びマトリックス34は、MICROSOFT EXCEL(登録商標)のワークシートであり、二次的モジュール32から生成される。但し、フローチャート33及びマトリックス34は他の形式のファイル等であっても構わない。
図6から理解されるように、フローチャート33は、二次的モジュール32の二次的文327をフローチャート風に編集したものである。より具体的には、IF文と関連しない二次的文327は、二次的モジュール32における行320の並び順に沿って、第2列目に並べられている。一方、二次的文327のうち、IF文と関連するもの(即ち、IFからEND-IFまでの文が記述されたもの)については、IF文における条件式が成立する場合に実行される二次的文327と、IF文における条件式が成立しない場合に実行される二次的文327とが左右の列に並べられている。
フローチャート33の第1列目には第2列目に並べられた二次的文327の行番号322が設定されており、これによりフローチャート33の行を二次的モジュール32の行320に夫々対応付けることができる。なお、行番号322に限らず、行320の任意の項目をフローチャート33に設定することができる。
以上の説明から理解されるように、本実施の形態によるフローチャート33は、IF文による階層が深くなるにつれて列が増加する。換言すれば、二次的モジュール32のうち、より複雑な条件文が記述されている箇所は、表の列方向に延びるようにして表示される。従って、フローチャート33を表示装置50に表示させ、左右の列に並べて表示された実行文を見比べることで、条件式の成否による処理の相違を把握することができる。フローチャート33における処理の塊を色付けして表示装置50に表示させることもできる。例えば、フローチャート33のIF及びEND-IFが設定された欄に所定の背景色Aを設定し、THENの場合に実行される二次的文327に所定の背景色Bを設定し、ELSEの場合に実行される二次的文327に所定の背景色Cを設定することができる。このようにすることで、フローチャート33を表示装置50に表示させた際に、IF文による階層構造を背景色の組み合わせによるパターンとして視覚的に把握することが可能になる。
図7に示されるように、本実施の形態によるマトリックス34は、行番号の列(第1列目)と、一連番号の列(第2列目)と、二次的文の列(第3列目)と、1以上の関連表示列(第4列目以降)とからなる表である。列の夫々は1以上の行を備えている。
行番号の列、一連番号の列、及び二次的文の列には、二次的モジュール32の行番号322、一連番号326、及び二次的文327が夫々設定され、表示属性328に基づく表示属性が設定される。なお、上記の項目に代えて又は上記の項目に加えて、行320の任意の項目をマトリックス34に設定することができる。
関連表示列の列数は、二次的モジュール32の二次的文327に記述されているIF文によって決まる。例えば、THENとELSEとを夫々1つだけ有するIF文が1つのみ記述されている場合、IF文による分岐数(即ち、IF文において実行されるケースの数)は2なので、関連表示列の列数は2である。また、例えば、THENとELSEとの夫々にTHENとELSEとを有するIF文が記述されている場合、実行されるケースの数は4(2×2)なので、関連表示列の列数は4である。例えば、実行されるケースの数が5のIF文が2つ記述されている場合、関連表示列の列数は、2つのケースの数の最大値である5としてもよいし、夫々のケースを組み合わせた数である25(5×5)としてもよい。図7に例示されている関連表示列の列数は、夫々のIF文において実行されるケースの数の最大値となっている。詳しくは、図7のマトリックス34は、ケースC1乃至ケースC5の5つのケースに対応する5列の関連表示列を備えている。
関連表示列には、二次的文の列(第3列目)との関連が設定される。より具体的には、二次的文の列に記述されている実行文のうち、関連表示列と対応するケースにおいて実行されるものについて、関連表示列の対応する行にI、T、E、EI又は○が設定される。一方、実行されないものについては−が設定される。ここで、I、T、E、EI及び○は、実行文がIF文のIF、THEN、ELSE、END-IF及びIF文以外の実行文であることを夫々示している。なお、実行文以外の文(例えばコメント文)と対応する行には*が設定される。
以上の説明から理解されるように、本実施の形態によるマトリックス34を表示装置50に表示させることにより、二次的文の列に表示される実行文と、関連表示列に表示されるケースとの関連を把握することができる。また、メンテナンスにおいて実行文を変更した場合に必要なテストケースを把握することができる。
以下、以上のように構成された装置10の機能及び動作について詳細に説明する。
図8から理解されるように、本実施の形態による変換手段21は、展開制御情報を取得する制御情報取得機能(S800)と、モジュール31のうち処理対象とする対象モジュール31を記憶装置30から読み込む読込機能(S802、S804)と、対象モジュール31を二次的モジュール32に変換する変換機能(S806〜S812)と、二次的モジュール32を記憶装置30に記憶する書込機能(S814)とを有している。
より具体的には、図8に示されるように、変換手段21は、例えば入力装置40から入力された起動指示によって起動され、例えば起動指示の一部として入力された展開制御情報を取得する(S800)。ここで、展開制御情報は、展開制限指示を指定することが可能なものであり、展開制限指示は、実行対象のセクション又は呼び出し対象のモジュール31の文312に記述されている文の展開を初回のみに制限することを指示するものである。
次に、変換手段21は、対象モジュール31を特定するための対象モジュール名を取得する(S802)。対象モジュール名は、展開制御情報と同様な方法で取得することができる。変換手段21は、取得した対象モジュール名によって特定される対象モジュール31を記憶装置30から読み込む(S804)。このとき、例えば所定のフォルダに記憶されたモジュール31のみを読み込み対象としてもよい。なお対象モジュール31が記憶装置30に記憶されていない場合、変換手段21は、処理を終了する。
次に、変換手段21は、対象モジュール31の処理開始箇所の文312を取得する(S806)。本実施の形態による処理開始箇所は、メインセクションの先頭である。変換手段21は、取得した文312について二次的文出力処理を行う(S808)。次に、変換手段21は、処理終了箇所の文312を処理済みであるか判定する(S810)。本実施の形態による処理終了箇所は、メインセクションの末尾である。処理済みの場合(S810においてYESの場合)、変換手段21は、作成した二次的モジュール32を記憶装置30に書き込み(S814)、処理を終了する。一方、処理済みでない場合(S810においてNOの場合)、変換手段21は、次に処理する文312(後続する行310の文312)を取得し(S812)、取得した文312について二次的文出力処理を行う(S808)。
図9は、図8に示した変換手段21の処理(機能)のうち、二次的文出力処理(S808)をより詳細に示すフローチャートである。図9に示されるように、変換手段21は、二次的文出力処理において文312を二次的文327として出力する。より具体的には、本実施の形態においては、文312に記述されている実行文等をワークシートの所定の行・列にコピーする。このとき、前述したように、PERFORM文をコメント文にする等の加工が行われる。また、変換手段21は、モジュール識別321と、行番号322と、一連番号326と、表示属性328とに前述したような値を出力する。
次に、変換手段21は、文312に条件文が記述されているか判定する(S902)。文312に記述されている実行文が条件文である場合(S902でYESの場合)、変換手段21は、前述したようにIF文以外の条件文をIF文に変換する等の処理を行う。より具体的には、変換手段21は、条件文の条件式に基づいて、二次的文の一つである二次的条件文(IF文)が記述された二次的文327を生成し、二次的条件文によって二次的文327を階層化して二次的モジュールに出力し(S904)、二次的文出力処理を終了する。ここで、二次的条件文は、2つの評価対象オペランド間の関係を1つの論理演算子のみによって評価する二次的条件式が成立するか成立しないかによって実行すべき二次的文327を選択するものである。
文312に記述されている実行文が条件文でない場合(S902でNOの場合)、変換手段21は、文312に記述されている実行文が処理単位実行文(PERFORM文)であるか判定する(S906)。処理単位実行文である場合(S906でYESの場合)、変換手段21は、実行対象の処理単位(セクション)の処理開始箇所の文312を取得する。本実施の形態においては、処理単位の処理開始箇所はセクションの先頭である。
処理単位実行文でない場合(S906でNOの場合)、変換手段21は、文312に記述されている実行文がモジュール呼び出し文(CALL文)であるか判定する(S910)。モジュール呼び出し文である場合(S910でYESの場合)、変換手段21は、CALL文によって特定される呼び出し対象のモジュール31を記憶装置30から読み込み、呼び出し対象のモジュール31の処理開始箇所の文312を取得する。このとき、例えば対象モジュール31が記憶されている所定のフォルダに記憶されたモジュール31のみを読み込み対象としてもよい。本実施の形態においては、呼び出し対象のモジュール31の処理開始箇所は、当該モジュール31のメインセクションの先頭である。一方、モジュール呼び出し文でない場合(S910でNOの場合)、変換手段21は二次的文出力処理を終了する。
変換手段21は、実行対象のセクションの文312又は呼び出し対象のモジュール31の文312について、再帰的に二次的文出力処理を行う(S916)。次に、変換手段21は、処理終了箇所の文312を処理済みであるか判定する(S918)。本実施の形態による処理終了箇所は、実行対象のセクションについては当該セクションの末尾であり、呼び出し対象のモジュール31についてはメインセクションの末尾である。処理済みの場合(S918においてYESの場合)、変換手段21は、二次的文出力処理を終了する。一方、処理済みでない場合(S918においてNOの場合)、変換手段21は、次に処理する文312(後続する行310の文312)を取得し(S920)、取得した文312について再帰的に二次的文出力処理を行う(S916)。
なお、変換手段21は、再帰的な(自分自身を実行する)PERFORM文については、実行対象のセクションの文312の展開を行わない。同様に、再帰的な(自分自身を呼び出す)CALL文については、呼び出し対象のモジュール31の文312の展開を行わない。更に、変換手段21は、展開制御情報に展開制限指示が指定されている場合、既に二次的文出力処理を行ったセクションとセクション名が同一であるセクションを実行するPERFORM文については、二次的文出力処理を行わない(S906)。同様に、変換手段21は、展開制御情報に展開制限指示が指定されている場合、変換手段21は、既に二次的文出力処理を行ったモジュール31とモジュール名が同一であるモジュール31を呼び出すCALL文については、二次的文出力処理を行わない(S910)。
以上の説明から理解されるように、変換手段21の変換機能は、対象モジュール31の所定の処理開始箇所から所定の処理終了箇所までに記述された文312の夫々を二次的文327として二次的モジュールに順次出力する。更に、文312が処理単位実行文又はモジュール呼び出し文である場合、実行対象の前記処理単位又は呼び出し対象のモジュール31に記述されている文312を展開することで二次的文327を生成して二次的モジュール32に出力する。更に、展開される文312における処理単位実行文又はモジュール呼び出し文についても展開を更に行う(即ち、再帰的に展開する)。従って、多数の処理単位やモジュール31に分散された機能を、対象モジュール31のメインセクションに手繰り寄せるようにして集めることができる。なお、モジュール31についての所定の処理開始箇所及び所定の処理終了箇所は、夫々、PROCRDURE DIVISONの先頭及び末尾としてもよい。また、例えば、メインセクションの途中とすることも可能である。但し、不要な展開を避け、且つ十分な展開結果を得るためには本実施の形態のようにするのが好ましい。
また、以上の説明から理解されるように、変換手段21の変換機能は、展開制御情報に展開制限指示が指定されている場合、同一の処理単位については、実行対象の処理単位に記述されている文312の展開を初回の1回のみ行い、同一のモジュール31については、呼び出し対象のモジュール31に記述されている文312の展開を初回の1回のみ行う。
以上に説明したように、変換手段21によって、二次的文327からなる二次的モジュール32が記憶装置30に記憶される。換言すれば、変換手段21を備えた装置10は、二次的文327からなる二次的モジュール32を記憶装置30に出力することができる。
図10から理解されるように、本実施の形態による加工手段22は、読込機能(S1000、S1002)と、階層識別付加機能(S1006)とオペランド付加機能(S1010)とのうちの少なくとも一方と、書込機能(S1014)とを有している。読込機能は、処理対象の二次的モジュール32を記憶装置30から読み込む機能である。階層識別付加機能は、二次的モジュール32の二次的文327の少なくとも一部について、二次的文327がいずれの階層に位置しているかを示す階層識別323を付加する機能である。オペランド付加機能は、二次的モジュール32の二次的文327のうち定数又は変数からなる2つのオペランドと1つの演算子とを含むものについて、2つのオペランド(第1オペランド325fと第2オペランド325s)と1つの演算子325oとからなるオペランド情報325を二次的文327に付加する機能である。書込機能は、階層識別323又はオペランド情報325が付加された二次的文327からなる二次的モジュール32を記憶装置30に記憶する機能である。
より具体的には、図10に示されるように、加工手段22は、例えば変換手段21と同様に起動され、処理対象の二次的モジュール32を特定するための二次的モジュール名を取得する(S1000)。加工手段22は、取得した二次的モジュール名によって特定される二次的モジュール32を記憶装置30から読み込む(S1002)。なお処理対象の二次的モジュール32が記憶装置30に記憶されていない場合、加工手段22は、処理を終了する。
次に、加工手段22は、処理対象の二次的モジュール32の処理開始箇所の二次的文327を取得する(S1004)。本実施の形態による処理開始箇所は、二次的モジュール32の先頭である。
加工手段22は、取得した二次的文327について階層識別323を付加する(S1006)。より具体的には、本実施の形態による加工手段22は、ワークシートにおいて行320の階層識別323と対応する行・列に、前述したような分岐階層と分岐の深さとを設定する。次に、加工手段22は、取得した二次的文327について命令識別324を付加する(S1008)。より具体的には、本実施の形態による加工手段22は、ワークシートにおいて行320の命令識別324と対応する行・列に、前述したような命令名と、条件命令当否と、処理命令当否とを設定する。次に、加工手段22は、取得した二次的文327についてオペランド情報325を付加する(S1010)。より具体的には、本実施の形態による加工手段22は、ワークシートにおいて行320のオペランド情報325と対応する行・列に、前述したような第1オペランド325fと、演算子325oと、第2オペランド325sとを設定する。
次に、加工手段22は、処理終了箇所の二次的文327を処理済みであるか判定する(S1012)。本実施の形態による処理終了箇所は、二次的モジュール32の末尾である。処理済みの場合(S1012においてYESの場合)、加工手段22は、加工した二次的モジュール32を記憶装置30に書き込み(S1014)、処理を終了する。一方、処理済みでない場合(S1012においてNOの場合)、加工手段22は、次に処理する二次的文327(後続する行320の二次的文327)を取得し(S1016)、取得した二次的文327について階層識別323の付加等を行う(S1006〜S1010)。
以上に説明したように、加工手段22によって、階層識別323、命令識別324及びオペランド情報325が付加された二次的文327からなる二次的モジュール32が記憶装置30に記憶される。換言すれば、加工手段22を備えた装置10は、階層識別323、命令識別324及びオペランド情報325が付加された二次的文327からなる二次的モジュール32を記憶装置30に出力することができる。
なお、階層識別323の付加(S1006)、命令識別324の付加(S1008)及びオペランド情報325の付加(S1010)のうちの一部を行うようにしてもよい。例えば、加工手段22を起動する際に、入力装置40から階層識別323の付加を行うか否かの指示を入力するようにしてもよい。
また、階層識別323の付加、命令識別324の付加及びオペランド情報325の付加のうちの一部を変換手段21が行うようにしてもよい。例えば、変換手段21が、二次的モジュール32に出力する二次的文327に階層識別323を付加する階層識別付加機能と、二次的文327にオペランド情報325を付加するオペランド付加機能とのうちの少なくとも一方を有するように構成してもよい。
図11から理解されるように、本実施の形態による選択手段23は、読込機能(S1100、S1102)と、特定情報取得機能(S1104)と、選択機能(S1106)と、書込機能(S1108)とを有している。読込機能は、処理対象の二次的モジュール32を記憶装置30から読み込む機能である。特定情報取得機能は、階層識別特定情報を取得する機能である。ここで、階層識別特定情報は、処理対象の二次的モジュール32の二次的文327のうち選択対象とすべきものの階層識別323を特定するものである。選択機能は、処理対象の二次的モジュール32の二次的文327のうち、階層識別323が階層識別特定情報によって特定される階層識別と同一であるものを選択して選択後の二次的モジュール32に出力する機能である。書込機能は、選択された二次的文327からなる選択後の二次的モジュール32を記憶装置30に記憶する機能である。
より具体的には、図11に示されるように、選択手段23は、例えば変換手段21と同様に起動され、処理対象の二次的モジュール32を特定するための二次的モジュール名を取得する(S1100)。選択手段23は、取得した二次的モジュール名によって特定される二次的モジュール32を記憶装置30から読み込む(S1102)。なお処理対象の二次的モジュール32が記憶装置30に記憶されていない場合、選択手段23は、処理を終了する。
次に、選択手段23は、階層識別特定情報を取得する(S1104)。本実施の形態においては、例えば処理対象の二次的モジュール32を表示装置50に表示させ、ワークシートの行320を表示した行がダブルクリックされた場合に、ダブルクリックされた行に表示されている階層識別323を階層識別特定情報として取得するようにできる。
次に、選択手段23は、処理対象の二次的モジュール32の先頭の行320から末尾の行320まで、取得した階層識別特定情報と階層識別323とを順次比較し、一致する行320のうち先頭の行320から末尾の行320までの二次的文327(選択対象となる二次的文327)を選択する(S1106)。選択手段23は、選択対象となる二次的文327の行320からなる選択後の二次的モジュール32(選択後のワークシート)を作成する。
次に、選択手段23は、選択後の二次的モジュール32を記憶装置30に書き込み(S1108)、処理を終了する。
以上の説明から理解されるように、選択後の二次的モジュール32は、処理対象の二次的モジュール32のうち、指定された階層識別323を有する部分である。このように二次的モジュール32の一部を選択可能とすることにより、例えばメンテナンスを行う際、処理について確認したい箇所をコンパクトに表示装置50に表示することが可能になる。なお、階層識別323以外の項目によって二次的文327を選択するようにしてもよい。例えば、入力装置40によって行番号が入力されるようにして、入力された行番号と一致する行番号322を検索し、検索された行番号322の階層識別323によって二次的文327を選択するようにしてもよい。
図12から理解されるように、本実施の形態による表示属性設定手段24は、読込機能(S1200、S1202)と、初期検索文字取得機能(S1204)と、表示属性設定機能(S1206〜S1210)と、書込機能(S1212)とを有している。
より具体的には、図12に示されるように、表示属性設定手段24は、例えば変換手段21と同様に起動され、処理対象の二次的モジュール32を特定するための二次的モジュール名を取得する(S1200)。表示属性設定手段24は、取得した二次的モジュール名によって特定される処理対象の二次的モジュール32を記憶装置30から読み込む(S1202)。なお処理対象の二次的モジュール32が記憶装置30に記憶されていない場合、表示属性設定手段24は、処理を終了する。
次に、表示属性設定手段24は、初期検索文字を取得する(S1204)。本実施の形態による初期検索文字は二次的文327において参照又は更新される変数名である。初期検索文字は、変数名の一部分であってもよいし、二次的文327において参照される定数であってもよい。
次に、表示属性設定手段24は、二次的文327の第1オペランド325f又は第2オペランド325sのうち初期検索文字を含むものを追加検索文字とする(S1206)。
より具体的には、表示属性設定手段24は、まず処理対象の二次的モジュール32の二次的文327のうち、オペランド情報325の第1オペランド325f又は第2オペランド325sに初期検索文字を含んでいるものを検索する。このとき、単純な文字検索を行うだけでなく、例えばREDEFINES句によって再定義された変数について、再定義される変数名によって文字検索してもよい。具体的には、例えば変数名VRBLが変数名VVVに再定義され、第1オペランド325fに変数名VVVが設定されており、初期検索文字がVRBLである場合、第1オペランド325fは初期検索文字を含んでいると判定してもよい。上述のREDEFINES句による例に限らず、実質的に初期検索文字を含んでいるか否かを判定してもよい。なお、このような判定を行うためには、変換手段21がモジュール31から二次的モジュール32を生成する際に、生成した二次的モジュール32と対応付けてモジュール31のDATA DIVISIONを記憶装置30に記憶すればよい。
なお、表示属性設定手段24は、第1オペランド325f又は第2オペランド325sが初期検索文字を含んでいる場合、第1オペランド325fと第2オペランド325sの2つを追加検索文字とする。
次に、表示属性設定手段24は、新たな追加検索文字が見つからなくなるまで、二次的文327の第1オペランド325f又は第2オペランド325sのうち追加検索文字を含むものを追加検索文字とする(S1208)。より具体的には、表示属性設定手段24は、二次的文327のうちオペランド情報325の第1オペランド325f又は第2オペランド325sに追加検索文字を含んでいるものを更に検索する。このときの検索方法は初期検索文字の検索方法と同じである。表示属性設定手段24は、第1オペランド325f又は第2オペランド325sが追加検索文字を含んでいる場合、第1オペランド325fと第2オペランド325sの2つを追加検索文字とする。
次に、表示属性設定手段24は、二次的文327のうちオペランド情報325の第1オペランド325f又は第2オペランド325sに初期検索文字又は追加検索文字を含んでいる行320の表示属性328に所定の表示属性(例えば強調表示可能な背景色)を設定する。(S1210)。
次に、表示属性設定手段24は、二次的文327等に所定の表示属性が設定された二次的モジュール32を記憶装置30に書き込む。即ち、処理対象の二次的モジュール32を更新して(S1212)、処理を終了する。
以上の説明から理解されるように、表示属性設定後の二次的モジュール32の二次的文327のうち初期検索文字と関連する変数又は定数を参照・更新しているものには、所定の背景色等が設定される。従って、例えばメンテナンスを行う際、所定の変数に関連する処理が目立つようにして表示装置50に表示することが可能になる。また、例えば、初期検索文字を含む二次的文327の背景色と、追加検索文字を含む二次的文327の背景色を別の色とすることにより、関連する処理を、より視覚的に把握することができる。
図13から理解されるように、本実施の形態によるフローチャート作成手段25は、読込機能(S1300、S1302)と、フローチャート作成機能(S1304)と、書込機能(S1306)とを有している。
より具体的には、図13に示されるように、フローチャート作成手段25は、例えば変換手段21と同様に起動され、処理対象の二次的モジュール32を特定するための二次的モジュール名を取得する(S1300)。フローチャート作成手段25は、取得した二次的モジュール名によって特定される処理対象の二次的モジュール32を記憶装置30から読み込む(S1302)。なお処理対象の二次的モジュール32が記憶装置30に記憶されていない場合、フローチャート作成手段25は、処理を終了する。
次に、フローチャート作成手段25は、二次的条件式の成否に対応した二次的文327を表の左右に並べた表形式のフローチャート33を作成する(S1304)。より具体的には、二次的モジュール32の二次的文327のうち階層識別323によって示される階層が同一である二次的文327について、二次的条件式が成立した場合に実行される二次的文327と二次的条件式が成立しない場合に実行される二次的文327とを表の左右に並べたフローチャート33を作成する。このとき、フローチャート33に、二次的文327と対応するように行番号322を設定する。なお、階層識別323の分岐の深さが同一であり、且つ分岐階層のうち末尾の1桁(1又は2)を除いた部分が同一である場合、階層識別323によって示される階層が同一であると判定する。
次に、フローチャート作成手段25は、フローチャート33を記憶手段30に書き込み(S1306)、処理を終了する。
図14から理解されるように、本実施の形態によるマトリックス作成手段26は、読込機能(S1400、S1402)と、二次的文出力機能(S1404)と、ケース生成機能(S1406)と、マトリックス作成機能(S1408、S1410)と、書込機能(S1412)とを有している。
より具体的には、図14に示されるように、マトリックス作成手段26は、例えば変換手段21と同様に起動され、処理対象の二次的モジュール32を特定するための二次的モジュール名を取得する(S1400)。マトリックス作成手段26は、取得した二次的モジュール名によって特定される処理対象の二次的モジュール32を記憶装置30から読み込む(S1402)。なお処理対象の二次的モジュール32が記憶装置30に記憶されていない場合、マトリックス作成手段26は、処理を終了する。
次に、マトリックス作成手段26は、二次的文327を表形式のマトリックス34の所定の列に出力する(S1404)。詳しくは、マトリックス作成手段26は、処理対象の二次的モジュール32の行番号322、一連番号326、及び二次的文327をマトリックス34の所定の列(例えば、第1列目乃至第3列目)の各行に出力する。
次に、マトリックス作成手段26は、二次的条件式の成否についてのケースを生成する(S1406)。より具体的には、マトリックス作成手段26は、二次的モジュール32の二次的文327に記述されている1以上の二次的条件式について、その全てが成立する場合と、その一部が成立する場合と、その全てが成立しない場合とを含む全てのケースを生成する。このとき、階層識別323の分岐識別が1である二次的文327に記述されたIF文(階層の最上位のIF文)毎にケースを作成してもよいし、階層の最上位のIF文の夫々についてのケースを組み合わせることでケースを作成してもよい。更に、階層の最上位のIF文のうちの一部についてケースを組み合わせることでケースを作成してもよい。
次に、マトリックス作成手段26は、生成したケースの夫々に、マトリックス34の列のいずれかを関連表示列として対応させる(S1408)。例えば、生成したケースの数が5であれば、第1のケース乃至第5のケースに、第4列目乃至第8列目を夫々対応させる。この場合、例えば第3のケースに対応する関連表示列は第6列目である。
次に、マトリックス作成手段26は、関連表示列の夫々につき、対応するケースにおいて実行対象となる二次的文327が出力されている行に、実行対象となることを示す表示情報を出力する(S1410)。具体的には、前述したように、○、I等の表示情報が出力される。
次に、マトリックス作成手段26は、マトリックス34を記憶手段30に書き込み(S1412)、処理を終了する。
マトリックス作成手段26によって、図7及び図15に示されるようなマトリックス34を作成することができる。図7に部分的に示されているマトリックス34は、階層の最上位のIF文毎にケースを作成したものであり、ケースの数は5である。図15に部分的に示されているマトリックス34は、階層の最上位のIF文の夫々についてのケースを組み合わせることでケースを作成したものであり、ケースの数は180である。
本実施の形態による装置10は、メンテナンスによってモジュール31が変更された場合、モジュール31の変更箇所を表示装置50に視覚的に表示することもできる。
例えば、図16に示されるように、CCCモジュールを変更した場合、変更前後のCCCモジュールを照合することで、CCCモジュールにおける変更前後の差分を得ることができる。変更前後の差分は、例えば、行毎にモジュール名(CCC)を付加して、テキストファイル(差分ファイル)として記憶装置30に記憶することができる。このとき、マトリックス作成手段26を、差分ファイルを参照してマトリックス34を作成するようにすればよい。
図17に示されるように、第1の変形例によるマトリックス作成手段26は、マトリックス作成機能において、記憶装置30に記憶された二次的モジュール32の二次的文327の一部を選択して、所定の表示属性を表示属性328に設定する(S1405)。より具体的には、第1の変形例によるマトリックス作成手段26は、記憶装置30から差分ファイルを読み込み、差分ファイルの各行について、モジュール識別321及び一連番号326が一致する行320を検索し、検索された行320の表示属性328に強調表示のための背景色等を設定する。
また、第1の変形例によるマトリックス作成手段26は、関連表示列のうち選択された二次的文327が実行対象となるケースに対応するもののみを記憶対象として抽出する(S1411)。
以上に説明した他は、第1の変形例によるマトリックス作成手段26は、前述した本実施の形態によるマトリックス作成手段26と同じ機能を備えている。第1の変形例によるマトリックス作成手段26により、モジュール31の変更前後の差分と関連するケースのみをマトリックス34に作成することができる。従って、メンテナンスによって変更した機能に関連するテストケースを、より容易に作成することができる。なお、マトリックス作成手段26は、強調表示のための背景色等の設定を行う一方、実行対象となるケースに対応する関連表示列の抽出を行わないようにしてもよい(第2の変形例)。
図18から理解されるように、マトリックス作成手段26の第2の変形例によって作成されたマトリックス34を表示装置50に表示すると、変更された文312に対応する行320(変更された箇所)と、変更された文312から生成された二次的文327の行320(二次的に変更された箇所)とが、他の行320と異なる色で夫々表示される。従って、変更された箇所及び二次的に変更された箇所における関連表示列の表示内容を見ることで、関連するケースを選択することができる。より具体的には、変更された箇所及び二次的に変更された行の関連表示列に○、I、T、E、EIのいずれかが表示されている場合、変更した機能に関連するケースであると判断することができる。
図18に示されるように、CCCモジュールを前述のように変更した例においては、変更した機能に関連するケースは、C2乃至C4である。従って、第1の変形例によるマトリックス作成手段26によってマトリックス34を作成した場合、作成されたマトリックス34は、図18の第1列目乃至第3列目および第5列目乃至第7列目を有する一方、第4列目と第8列目とを有していない。
図19から理解されるように、フローチャート作成手段25についても、マトリックス作成手段26の第2の変形例と同様に変形することで、変更された箇所と二次的に変更された箇所とを強調表示することができる。
また、本実施の形態による装置10は、様々に変形することが可能である。例えば、図20に示されるように、装置10を、変換手段21を備える装置10′と加工手段22を備える装置10″と、選択手段23等を備える装置(図示せず)に分けてもよい。装置10′と装置10″との夫々は、通信回線80を経由して、ファイルサーバ60と通信可能に接続されている。通信回線80は、例えばLAN(Local Area Network)であってもよいし、インターネットであってもよい。ファイルサーバ60は、記憶装置(記憶手段)70を備えている。記憶装置70は、モジュール31と、二次的モジュール32と、フローチャート33と、マトリックス34とを記憶することができる。従って、装置10′と装置10″とは、記憶装置70からモジュール31等を読み込み、記憶装置70にモジュール31等を書き込むことができる。
装置10′は、装置本体20′と、入力装置40と、表示装置50とを備えている。装置10″は、装置本体20″と、入力装置40と、表示装置50とを備えている。装置本体20′は、変換手段21と記憶装置(記憶手段)30′とを備えている。装置本体20″は、加工手段22と記憶装置(記憶手段)30″とを備えている。
本変形例における記憶装置30′と記憶装置30″とは、主記憶装置によって構成することができる。例えば、変換手段21は、モジュール31を記憶装置30′から読み込むことができる。
10,10′,10″ 装置(モジュールの構造解析を支援する装置)
20,20′,20″ 装置本体
21 変換手段
22 加工手段
23 選択手段
24 表示属性設定手段
25 フローチャート作成手段
26 マトリックス作成手段
30,30′,30″ 記憶装置(記憶手段)
31 モジュール(ソースプログラム)
310 行
311 一連番号(行識別)
312 文
32 二次的モジュール(二次的ソースプログラム)
320 二次的行
321 モジュール識別
322 行番号
323 階層識別
324 命令識別
325 オペランド情報
325f 第1オペランド(オペランド)
325o 演算子
325s 第2オペランド(オペランド)
326 一連番号(行識別)
327 二次的文
328 表示属性
33 フローチャート
34 マトリックス
40 入力装置
50 表示装置
60 ファイルサーバ
70 記憶装置(記憶手段)
80 通信回線

Claims (11)

  1. プログラム言語によって記述された1以上の文からなるモジュールを1以上の二次的文からなる二次的モジュールに変換する装置であって、
    前記モジュールはモジュール名によって特定可能であり、前記モジュールには、1以上の前記文から構成される処理単位であって処理単位名によって特定可能な前記処理単位を記述することが可能であり、
    前記モジュールには、前記文として、前記処理単位を前記処理単位名によって特定して実行するための処理単位実行文と、前記モジュールを前記モジュール名によって特定して実行するためのモジュール呼び出し文と、条件式が成立するか成立しないかによって実行すべき前記文を選択するための条件文とを記述可能であり、前記条件文によって選択される前記文として更に前記条件文が記述可能であり、これにより前記条件文による前記文の階層化が可能であり、
    前記装置は、1以上の前記モジュールが記憶された記憶手段と、前記記憶手段に記憶された前記モジュールのうちの所定の対象モジュールを前記二次的モジュールに変換して前記記憶手段に記憶する変換手段とを備えており、
    前記変換手段は、前記対象モジュールを前記記憶手段から読み込む読込機能と、前記対象モジュールの所定の処理開始箇所から所定の処理終了箇所までに記述された前記文の夫々を前記二次的文として前記二次的モジュールに順次出力すると共に、前記文が前記処理単位実行文又は前記モジュール呼び出し文である場合、実行対象の前記処理単位又は呼び出し対象の前記モジュールに記述されている前記文を展開することで前記二次的文を生成して前記二次的モジュールに出力する変換機能であって、前記展開される前記文における前記処理単位実行文又は前記モジュール呼び出し文についても前記展開を更に行う前記変換機能と、前記二次的モジュールを前記記憶手段に記憶する書込機能とを有している
    モジュールの構造解析を支援する装置。
  2. 請求項1記載の装置であって、
    前記変換手段は、展開制御情報を取得する制御情報取得機能を有しており、前記展開制御情報は、実行対象の前記処理単位又は呼び出し対象の前記モジュールに記述されている前記文の前記展開を初回のみに制限することを指示する展開制限指示を指定することが可能なものであり、
    前記変換手段は、前記変換機能において、前記展開制御情報に前記展開制限指示が指定されている場合、同一の前記処理単位については、実行対象の前記処理単位に記述されている前記文の前記展開を初回の1回のみ行い、同一の前記モジュールについては、呼び出し対象の前記モジュールに記述されている前記文の前記展開を初回の1回のみ行う
    モジュールの構造解析を支援する装置。
  3. 請求項1又は請求項2記載の装置であって、
    前記変換手段は、前記変換機能において、前記文が前記条件文である場合、前記条件文の前記条件式に基づいて前記二次的文の一つである二次的条件文を生成し、前記二次的条件文によって前記二次的文を階層化して前記二次的モジュールに出力するものであり、
    前記二次的条件文は、2つの評価対象オペランド間の関係を1つの論理演算子のみによって評価する二次的条件式が成立するか成立しないかによって実行すべき前記二次的文を選択するものである
    モジュールの構造解析を支援する装置。
  4. 請求項3記載の装置であって、
    前記変換手段は、前記二次的モジュールに出力する前記二次的文の少なくとも一部について、前記二次的文がいずれの前記階層に位置しているかを示す階層識別を付加する階層識別付加機能と、前記二次的モジュールに出力する前記二次的文のうち定数又は変数からなる2つのオペランドと1つの演算子とを含むものについて、2つの前記オペランドと1つの前記演算子とからなるオペランド情報を前記二次的文に付加するオペランド付加機能とのうちの少なくとも一方を有している
    モジュールの構造解析を支援する装置。
  5. 請求項3記載の装置によって出力される二次的モジュールが記憶された記憶手段を備える装置であって、
    前記装置は、前記記憶手段に記憶された前記二次的モジュールを加工する加工手段を備えており、
    前記加工手段は、読込機能と、階層識別付加機能とオペランド付加機能とのうちの少なくとも一方と、書込機能とを有しており、
    前記読込機能は、前記二次的モジュールを前記記憶手段から読み込む機能であり、
    前記階層識別付加機能は、前記二次的モジュールの前記二次的文の少なくとも一部について、前記二次的文がいずれの前記階層に位置しているかを示す階層識別を付加する機能であり、
    前記オペランド付加機能は、前記二次的モジュールの前記二次的文のうち定数又は変数からなる2つのオペランドと1つの演算子とを含むものについて、2つの前記オペランドと1つの前記演算子とからなるオペランド情報を前記二次的文に付加する機能であり、
    前記書込機能は、前記階層識別又は前記オペランド情報が付加された前記二次的文からなる前記二次的モジュールを前記記憶手段に記憶する機能である
    モジュールの構造解析を支援する装置。
  6. 請求項4又は請求項5記載の装置によって出力される二次的モジュールであって、少なくとも階層識別が付加された二次的文からなる前記二次的モジュールが記憶された記憶手段を備える装置であって、
    前記装置は、前記記憶手段に記憶された前記二次的モジュールの前記二次的文の一部を選択する選択手段を備えており、
    前記選択手段は、前記二次的モジュールを前記記憶手段から読み込む読込機能と、前記二次的文のうち選択対象とすべきものの前記階層識別を特定する階層識別特定情報を取得する特定情報取得機能と、前記二次的モジュールの前記二次的文のうち前記階層識別が前記階層識別特定情報によって特定される前記階層識別と同一であるものを選択して選択後の二次的モジュールに出力する選択機能と、前記選択後の二次的モジュールを前記記憶手段に記憶する書込機能とを有している
    モジュールの構造解析を支援する装置。
  7. 請求項4又は請求項5記載の装置によって出力される二次的モジュールであって、少なくとも階層識別が付加された二次的文からなる前記二次的モジュールが記憶された記憶手段を備える装置であって、
    前記装置は、前記記憶手段に記憶された前記二次的モジュールから表形式のフローチャートを作成するフローチャート作成手段を備えており、
    前記フローチャート作成手段は、前記二次的モジュールを前記記憶手段から読み込む読込機能と、前記二次的モジュールの前記二次的文のうち前記階層識別によって示される階層が同一である前記二次的文について、前記二次的条件式が成立した場合に実行される前記二次的文と前記二次的条件式が成立しない場合に実行される前記二次的文とを表の左右に並べた前記フローチャートを作成するフローチャート作成機能と、前記フローチャートを前記記憶手段に記憶する書込機能とを有している
    モジュールの構造解析を支援する装置。
  8. 請求項4又は請求項5記載の装置によって出力される二次的モジュールであって、少なくともオペランド情報が付加された二次的文からなる前記二次的モジュールが記憶された記憶手段を備える装置であって、
    前記装置は、前記記憶手段に記憶された前記二次的モジュールの前記二次的文に所定の表示属性を設定する表示属性設定手段を備えており、
    前記表示属性設定手段は、前記二次的モジュールを前記記憶手段から読み込む読込機能と、初期検索文字を取得する初期検索文字取得機能と、前記二次的モジュールの前記二次的文のうち前記オペランド情報の前記オペランドに前記初期検索文字を含んでいるものの前記オペランドを追加検索文字とし、前記二次的文のうち前記オペランド情報の前記オペランドに前記追加検索文字を含んでいるものの前記オペランドを更に前記追加検索文字として、前記二次的文のうち前記オペランド情報の前記オペランドに前記初期検索文字又は前記追加検索文字を含んでいるものに前記所定の表示属性を設定する表示属性設定機能と、前記二次的文に前記所定の表示属性が設定された前記二次的モジュールを前記記憶手段に記憶する書込機能とを有している
    モジュールの構造解析を支援する装置。
  9. 請求項3記載の装置によって出力される二次的モジュールが記憶された記憶手段を備える装置であって、
    前記装置は、前記記憶手段に記憶された前記二次的モジュールから複数の列と1以上の行とを組み合わせた表形式のマトリックスを作成するマトリックス作成手段を備えており、
    前記マトリックス作成手段は、前記二次的モジュールを前記記憶手段から読み込む読込機能と、前記二次的モジュールの前記二次的文を前記マトリックスの所定の列の各行に出力する二次的文出力機能と、前記二次的モジュールの1以上の前記二次的条件式について、その全てが成立する場合と、その一部が成立する場合と、その全てが成立しない場合とを含む全てのケースを生成するケース生成機能と、生成した前記ケースの夫々に前記列のいずれかを関連表示列として対応させ、前記行に出力された前記二次的文のうち前記関連表示列と対応する前記ケースにおいて実行対象となるものが出力されている前記行に、実行対象となることを示す表示情報を出力するマトリックス作成機能と、前記マトリックスを前記記憶手段に記憶する書込機能とを有している
    モジュールの構造解析を支援する装置。
  10. 請求項9記載の装置であって、
    前記マトリックス作成手段は、前記マトリックス作成機能において、前記記憶手段に記憶された前記二次的モジュールの前記二次的文の一部を選択し、前記関連表示列のうち前記選択された前記二次的文が実行対象となる前記ケースに対応するもののみを前記記憶対象として抽出する
    モジュールの構造解析を支援する装置。
  11. コンピュータを、請求項1乃至請求項10のいずれかに記載の装置として機能させるためのプログラム。
JP2011162519A 2011-07-25 2011-07-25 モジュールの構造解析を支援する装置及びプログラム Active JP5458065B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2011162519A JP5458065B2 (ja) 2011-07-25 2011-07-25 モジュールの構造解析を支援する装置及びプログラム
KR1020147003424A KR101905675B1 (ko) 2011-07-25 2012-07-10 모듈의 구조 해석을 지원하는 장치 및 프로그램
CN201280033010.4A CN103635880B (zh) 2011-07-25 2012-07-10 对模块的结构分析进行支援的装置
US14/235,040 US9128807B2 (en) 2011-07-25 2012-07-10 Module structural analysis supporting device and program
PCT/JP2012/067577 WO2013015109A1 (ja) 2011-07-25 2012-07-10 モジュールの構造解析を支援する装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011162519A JP5458065B2 (ja) 2011-07-25 2011-07-25 モジュールの構造解析を支援する装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2013025716A true JP2013025716A (ja) 2013-02-04
JP5458065B2 JP5458065B2 (ja) 2014-04-02

Family

ID=47600962

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011162519A Active JP5458065B2 (ja) 2011-07-25 2011-07-25 モジュールの構造解析を支援する装置及びプログラム

Country Status (5)

Country Link
US (1) US9128807B2 (ja)
JP (1) JP5458065B2 (ja)
KR (1) KR101905675B1 (ja)
CN (1) CN103635880B (ja)
WO (1) WO2013015109A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015015622A1 (ja) * 2013-08-01 2015-02-05 松崎 務 装置及びプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6366033B2 (ja) * 2014-05-09 2018-08-01 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation プログラム中のif文の最適化方法

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01286026A (ja) * 1988-05-13 1989-11-17 Hitachi Ltd プログラムの実現仕様解析方式
JPH02140828A (ja) * 1988-11-22 1990-05-30 Nec Corp 図式プログラムエディタにおける階層別プログラム表示方式
JPH03292532A (ja) * 1990-04-11 1991-12-24 Nissan Motor Co Ltd プログラム開発支援装置
JPH04127235A (ja) * 1990-03-09 1992-04-28 Hitachi Ltd プログラム表示方法および装置ならびにプログラム生成方法および装置
JPH04165425A (ja) * 1990-10-29 1992-06-11 Nippon Telegr & Teleph Corp <Ntt> 記号列中の入れ子関係抽出方法及びその装置
JPH07261990A (ja) * 1994-03-23 1995-10-13 Fujitsu Ltd プログラム解析表示装置
JPH07281883A (ja) * 1994-04-06 1995-10-27 Fujitsu Ltd プログラム修正支援装置及び方法
JPH0895763A (ja) * 1994-09-22 1996-04-12 Hitachi Software Eng Co Ltd オリジナルプログラムへの部品プログラム取り込み方法
JPH09282150A (ja) * 1996-04-12 1997-10-31 Internatl Business Mach Corp <Ibm> プログラムのデータ構造を表示する方法、データ構造表示装置及びデータ構造表示プログラムを格納する媒体
JPH10320190A (ja) * 1997-05-20 1998-12-04 Fujitsu Ltd ソースプログラム経路検索装置および検索プログラムを記録した媒体
JPH11272503A (ja) * 1998-03-24 1999-10-08 Hitachi Software Eng Co Ltd プログラムのテストデータ自動生成装置
JP2001154835A (ja) * 1999-11-30 2001-06-08 Sharp Corp 構造化プログラム編集装置、及び構造化プログラム編集プログラムを記録した記録媒体
JP2008181311A (ja) * 2007-01-24 2008-08-07 Toshiba Corp リファクタリング支援装置及びプログラム
JP2009086922A (ja) * 2007-09-28 2009-04-23 Toshiba Mitsubishi-Electric Industrial System Corp プログラム編集装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03150636A (ja) * 1989-11-08 1991-06-27 Matsushita Electric Ind Co Ltd コンパイル方法
US5390320A (en) * 1991-01-22 1995-02-14 Grumman Aerospace Corporation Automatically converting structured analysis tool database outputs into an integrated simulation model via transportable standardized metafile
JPH11110198A (ja) 1997-10-02 1999-04-23 Fujitsu Ltd モジュール構成図自動生成装置および記録媒体
US7299458B2 (en) 2002-10-31 2007-11-20 Src Computers, Inc. System and method for converting control flow graph representations to control-dataflow graph representations
US7424646B2 (en) * 2004-11-30 2008-09-09 International Business Machines Corporation Imposing a logical structure on an unstructured trace record for trace analysis
JP2006209521A (ja) 2005-01-28 2006-08-10 Matsushita Electric Ind Co Ltd テスト項目自動生成装置
US20060253840A1 (en) * 2005-04-25 2006-11-09 Eologic Limited Program verification and visualization using a dynamic abstracted conceptual model
CN1949168A (zh) * 2005-10-14 2007-04-18 英业达股份有限公司 面板程序转换系统以及方法
US7568189B2 (en) * 2006-05-03 2009-07-28 Sony Computer Entertainment Inc. Code translation and pipeline optimization
US9021446B2 (en) * 2006-06-28 2015-04-28 Oracle America, Inc. Uncoverage tool
US7805705B2 (en) * 2006-08-04 2010-09-28 Apple Inc. Graphically depicting program code depth
US8336028B2 (en) * 2007-11-26 2012-12-18 International Business Machines Corporation Evaluating software sustainability based on organizational information
US9405555B2 (en) * 2008-05-23 2016-08-02 Microsoft Technology Licensing, Llc Automated code splitting and pre-fetching for improving responsiveness of browser-based applications
US20100042974A1 (en) * 2008-08-12 2010-02-18 International Business Machines Corporation Build optimization with applied static analysis
US8286140B2 (en) * 2008-10-10 2012-10-09 American Express Travel Related Services Company, Inc. System, computer program, and method for a static code coverage analyzer for computer programs
US8612938B2 (en) * 2009-01-05 2013-12-17 Tata Consultancy Services Limited System and method for automatic generation of test data to satisfy modified condition decision coverage

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01286026A (ja) * 1988-05-13 1989-11-17 Hitachi Ltd プログラムの実現仕様解析方式
JPH02140828A (ja) * 1988-11-22 1990-05-30 Nec Corp 図式プログラムエディタにおける階層別プログラム表示方式
JPH04127235A (ja) * 1990-03-09 1992-04-28 Hitachi Ltd プログラム表示方法および装置ならびにプログラム生成方法および装置
JPH03292532A (ja) * 1990-04-11 1991-12-24 Nissan Motor Co Ltd プログラム開発支援装置
JPH04165425A (ja) * 1990-10-29 1992-06-11 Nippon Telegr & Teleph Corp <Ntt> 記号列中の入れ子関係抽出方法及びその装置
JPH07261990A (ja) * 1994-03-23 1995-10-13 Fujitsu Ltd プログラム解析表示装置
JPH07281883A (ja) * 1994-04-06 1995-10-27 Fujitsu Ltd プログラム修正支援装置及び方法
JPH0895763A (ja) * 1994-09-22 1996-04-12 Hitachi Software Eng Co Ltd オリジナルプログラムへの部品プログラム取り込み方法
JPH09282150A (ja) * 1996-04-12 1997-10-31 Internatl Business Mach Corp <Ibm> プログラムのデータ構造を表示する方法、データ構造表示装置及びデータ構造表示プログラムを格納する媒体
JPH10320190A (ja) * 1997-05-20 1998-12-04 Fujitsu Ltd ソースプログラム経路検索装置および検索プログラムを記録した媒体
JPH11272503A (ja) * 1998-03-24 1999-10-08 Hitachi Software Eng Co Ltd プログラムのテストデータ自動生成装置
JP2001154835A (ja) * 1999-11-30 2001-06-08 Sharp Corp 構造化プログラム編集装置、及び構造化プログラム編集プログラムを記録した記録媒体
JP2008181311A (ja) * 2007-01-24 2008-08-07 Toshiba Corp リファクタリング支援装置及びプログラム
JP2009086922A (ja) * 2007-09-28 2009-04-23 Toshiba Mitsubishi-Electric Industrial System Corp プログラム編集装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200600788006; 臥待天祐: '最新開発環境レポート:組み込みソフト向けコ一ドレビュー支援ツール Development Assistant for C4.0' C MAGAZINE 第17巻,第12号(通巻195号), 20051201, pp.86〜91, ソフトバンククリエイティブ株式会社 *
JPN6012039814; 臥待天祐: '最新開発環境レポート:組み込みソフト向けコ一ドレビュー支援ツール Development Assistant for C4.0' C MAGAZINE 第17巻,第12号(通巻195号), 20051201, pp.86〜91, ソフトバンククリエイティブ株式会社 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015015622A1 (ja) * 2013-08-01 2015-02-05 松崎 務 装置及びプログラム
KR20160027124A (ko) * 2013-08-01 2016-03-09 신이치 이시다 장치 및 프로그램
JP6008456B2 (ja) * 2013-08-01 2016-10-19 石田 伸一 装置及びプログラム
KR101705254B1 (ko) 2013-08-01 2017-02-09 신이치 이시다 장치 및 프로그램
US9792197B2 (en) 2013-08-01 2017-10-17 Shinichi Ishida Apparatus and program

Also Published As

Publication number Publication date
US9128807B2 (en) 2015-09-08
WO2013015109A1 (ja) 2013-01-31
CN103635880A (zh) 2014-03-12
KR101905675B1 (ko) 2018-10-10
JP5458065B2 (ja) 2014-04-02
US20140196009A1 (en) 2014-07-10
CN103635880B (zh) 2017-03-01
KR20140065389A (ko) 2014-05-29

Similar Documents

Publication Publication Date Title
JP4091726B2 (ja) 構造化文書の表示規則の生成方法、システムおよびプログラムが記録された媒体ならびに構造化文書およびその文書型定義の変更方法、システムおよびプログラムが記録された媒体
Tateosian Python For ArcGIS
JP5273884B1 (ja) 構造解析装置及びプログラム
JP5458065B2 (ja) モジュールの構造解析を支援する装置及びプログラム
US5765177A (en) Document processing method and apparatus for searching documents having a graph based document logic structure
Benson et al. Cascading tree sheets and recombinant HTML: better encapsulation and retargeting of web content
JP2008146637A (ja) ドメイン変換言語
Schroeder et al. The Book of Dash: Build Dashboards with Python and Plotly
JPH08106464A (ja) 文書生成装置
JPH08221417A (ja) 構造化文書の新旧対照編集装置
JP2000029677A (ja) 画面構成自動生成装置
KR101705254B1 (ko) 장치 및 프로그램
Korol Learn Microsoft Excel 2002 VBA programming with XML and ASP
Waterman Pas-ii reference manual
JP4953896B2 (ja) プログラムレビュー支援装置
JP2575665B2 (ja) 論理図概要記述変換処理方式
JP6475288B2 (ja) プログラム比較方法、プログラム比較装置およびプログラム比較プログラム
KR20000049713A (ko) 인터넷신문의 저작시스템 및 저작방법
Rougier On the design of text editors
Korol Microsoft Excel 2016 Programming by Example with VBA, XML, and ASP
van Lit Cataloging: From a Dusty Backroom to the World Wide Web
JPH03233669A (ja) 文書作成装置
JPH02108130A (ja) 知識整理エディタにおける文章知識編集方法
Igual et al. Toolboxes for Data Scientists
Bilauca Automatic table layout and formatting

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130701

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140110

R150 Certificate of patent or registration of utility model

Ref document number: 5458065

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250