JP6548819B2 - 依存関係抽出装置および依存関係抽出プログラム - Google Patents
依存関係抽出装置および依存関係抽出プログラム Download PDFInfo
- Publication number
- JP6548819B2 JP6548819B2 JP2018514004A JP2018514004A JP6548819B2 JP 6548819 B2 JP6548819 B2 JP 6548819B2 JP 2018514004 A JP2018514004 A JP 2018514004A JP 2018514004 A JP2018514004 A JP 2018514004A JP 6548819 B2 JP6548819 B2 JP 6548819B2
- Authority
- JP
- Japan
- Prior art keywords
- direct
- dependency
- indirect
- relationship
- source
- 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
Links
- 238000000605 extraction Methods 0.000 title claims description 114
- 239000000284 extract Substances 0.000 claims description 30
- 230000001419 dependent effect Effects 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 description 116
- 238000000034 method Methods 0.000 description 40
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 2
- 230000001404 mediated effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Description
しかし、ソフトウェアの複雑化および大規模化により、変更の影響が及ぶ箇所を目視で漏れなく抽出することは困難である。
これら特許文献に開示された技術では、直接的な依存関係を順に辿ることで到達可能な間接的な依存関係を抽出することはできるが、直接的な依存関係を順に辿っても到達しない間接的な依存関係を抽出することはできない。
例えば、部品Aから部品Bへ依存関係があり、かつ、部品Bから部品Cへの依存関係がある場合、部品Aから部品Cへの間接的な依存関係を抽出することは可能である。しかし、部品Aから部品Bへ依存関係があり、かつ、部品Cから部品Bへの依存関係がある場合、部品Aから部品Cへの間接的な依存関係を抽出することはできない。
ソフトウェアに含まれる要素のうち前記ソフトウェアに含まれる他の要素を使用する要素である直接依存元と、前記ソフトウェアに含まれる要素のうち直接依存元に使用される要素である直接依存先と、直接依存元が直接依存先を使用する方法を示す直接依存種類との組を含んだ直接関係リストを記憶する記憶部と、
前記ソフトウェアに含まれる要素のうち前記ソフトウェアに含まれる他の要素から影響を受ける要素である間接依存元と、前記ソフトウェアに含まれる要素のうち間接依存元に影響を与える要素である間接依存先とのルールである間接関係ルールと、前記直接関係リストとを用いて、前記間接依存元と前記間接依存先との組を抽出する間接関係抽出部とを備える。
したがって、直接的な依存関係を順に辿っても到達しない間接的な依存関係に対応する間接関係ルールを用意すれば、直接的な依存関係を順に辿っても到達しない間接的な依存関係を有する間接依存元と間接依存先との組を抽出することが可能となる。
間接的な依存関係を抽出する依存関係抽出装置100について、図1から図9に基づいて説明する。
図1に基づいて、依存関係抽出装置100の構成を説明する。
依存関係抽出装置100は、プロセッサ901とメモリ902と補助記憶装置903といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
メモリ902は揮発性の記憶装置である。メモリ902は、主記憶装置またはメインメモリとも呼ばれる。具体的には、メモリ902はRAM(Random Access Memory)である。
補助記憶装置903は不揮発性の記憶装置である。具体的には、補助記憶装置903は、ROM、HDDまたはフラッシュメモリである。ROMはRead Only Memoryの略称であり、HDDはHard Disk Driveの略称である。
プロセッサ901とメモリ902と補助記憶装置903とをまとめたハードウェアを「プロセッシングサーキットリ」という。
さらに、補助記憶装置903にはOS(Operating System)が記憶されている。OSの少なくとも一部は、メモリ902にロードされて、プロセッサ901によって実行される。
つまり、プロセッサ901は、OSを実行しながら、「部」の機能を実現するプログラムを実行する。
「部」の機能を実現するプログラムを実行して得られるデータは、メモリ902、補助記憶装置903、プロセッサ901内のレジスタまたはプロセッサ901内のキャッシュメモリといった記憶装置に記憶される。
「部」の機能を実現するプログラムは、磁気ディスク、光ディスクまたはフラッシュメモリ等の不揮発性の記憶媒体にコンピュータ読み取り可能に記憶することができる。不揮発性の記憶媒体は、一時的でない有形の媒体である。
「部」は「処理」または「工程」に読み替えてもよい。「部」の機能はファームウェアで実現してもよい。
依存関係抽出装置100の動作は依存関係抽出方法に相当する。また、依存関係抽出方法の手順は依存関係抽出プログラムの手順に相当する。
ステップS110は直接関係抽出処理である。
ステップS110において、直接関係抽出部110は、ソースコード210から直接関係を抽出し、抽出された直接関係を示す直接関係リスト220を生成する。
ソースコード210は、記憶部191に予め記憶される。記憶部191は、生成された直接関係リスト220を記憶する。
直接依存元は、ソフトウェアに含まれる要素のうちソフトウェアに含まれる他の要素を使用する要素である。
直接依存先は、ソフトウェアに含まれる要素のうち直接依存元に使用される要素である。
直接依存種類は、直接依存元が直接依存先を使用する方法の種類である。
直接依存頻度は、直接依存元が直接依存先を使用する回数に対応する値である。
直接関係を抽出する方法は従来技術であるため、直接関係を抽出する方法の詳細については説明を省略する。
図3の(1)は、「file1.c」というファイル名を持つソースコード210である。「file1.c」のソースコード210には、ソースコード「file2.h」、関数「func1()」、「func2()」、「func3()」、「func4()」、変数「variable1」および定数「MAX」などの要素を使用するための記載が含まれている。
図3の(2)は、「file2.h」というファイル名を持つソースコード210である。「file2.h」のソースコード210には、定数「MAX」という要素を使用するための記載が含まれている。
直接関係リスト220は、6つの直接関係情報を含んでいる。直接関係情報は、直接依存元と直接依存先と直接依存種類と直接依存頻度との組である。
1つ目の直接関係情報は、ソースコード「file1.c」がソースコード「file2.h」をインクルードする、という直接関係を示している。直接依存頻度は1である。
2つ目の直接関係情報は、ソースコード「file1.c」がソースコード「file2.h」の定数「MAX」をマクロで読み込む、という直接関係を示している。直接依存頻度は2である。
3つ目の直接関係情報は、ソースコード「file1.c」の関数「func1()」がソースコード「file1.c」の変数「variable1」に対して書込みを行う、という直接関係を示している。直接依存頻度は1である。
4つ目の直接関係情報は、ソースコード「file1.c」の関数「func2()」がソースコード「file1.c」の変数「variable1」を参照する、という直接関係を示している。直接依存頻度は1である。
5つ目の直接関係情報は、ソースコード「file1.c」の関数「func2()」がソースコード「file1.c」の関数「func3()」を呼び出す、という直接関係を示している。直接依存頻度は3である。
6つ目の直接関係情報は、ソースコード「file1.c」の関数「func3()」がソースコード「file1.c」の関数「func4()」を呼び出す、という直接関係を示している。直接依存頻度は1である。
ステップS120は間接関係抽出処理である。
ステップS120において、間接関係抽出部120は、直接関係リスト220を用いて間接関係を抽出し、抽出された間接関係を示す間接関係リスト240を生成する。記憶部191は、生成された間接関係リスト240を記憶する。
間接依存元は、ソフトウェアに含まれる要素のうちソフトウェアに含まれる他の要素から影響を受ける要素である。但し、直接依存元は除く。
間接依存先は、ソフトウェアに含まれる要素のうち間接依存元に影響を与える要素である。但し、直接依存先は除く。
間接依存種類は、間接依存先が間接依存元に影響を与える方法の種類である。
間接依存頻度は、間接依存先が間接依存元に影響を与える回数に対応する値である。
間接関係ルールリスト230は、間接関係ルールのリストである。
間接関係ルールは、間接関係がある要素間におけるルールである。
間接関係ルールは、複数の直接依存種類と、要素関係と、依存元要素と、依存先要素と、間接依存種類とを含む。
要素関係は、複数の要素に成り立つ関係である。
依存元要素は、間接依存元となる要素である。
依存先要素は、間接依存先となる要素である。
間接関係抽出部120は、間接関係ルールに含まれる複数の直接依存種類と要素関係とに対応する複数の直接関係情報を直接関係リスト220から抽出する。
そして、間接関係抽出部120は、抽出された複数の直接関係情報に含まれる複数の直接依存元と複数の直接依存先との中から、間接関係ルールに含まれる依存元要素に対応する要素を間接依存元として抽出する。
また、間接関係抽出部120は、抽出された複数の直接関係情報に含まれる複数の直接依存元と複数の直接依存先との中から、間接関係ルールに含まれる依存先要素に対応する要素を間接依存先として抽出する。
(1)複数の直接関係情報は、間接関係ルール内の複数の直接依存種類に含まれる直接依存種類の数と同じ数の直接関係情報から成る。
(2)複数の直接関係情報は、複数の直接依存元と複数の直接依存先と間接関係ルール内の複数の直接依存種類とを含む。
(3)複数の直接関係条件は、複数の直接依存元と複数の直接依存先とのうち間接関係ルール内の要素関係に対応する複数の要素に要素関係がある。
間接関係ルールリスト230は、2つの間接関係ルールを含んでいる。
それぞれの間接関係ルールは、間接関係条件と間接関係とを含んでいる。
間接関係条件は、複数の直接依存種類と要素関係とを含んでいる。
間接関係は、依存元要素と依存先要素と間接依存種類とを含んでいる。
第1直接依存種類は、関数αから変数γへの書込みである。関数αは第1直接依存種類に対応する直接依存元であり、変数γは第1直接依存種類に対応する直接依存先である。
第2直接依存種類は、関数βから変数ωの参照である。関数βは第2直接依存種類に対応する直接依存元であり、変数ωは第2直接依存種類に対応する直接依存先である。
要素関係は、第1直接依存種類に対応する直接依存先と第2直接依存種類に対応する直接依存先との関係である。具体的には、要素関係は、変数γと変数ωとの一致である。
依存元要素は、第2直接依存種類に対応する直接依存元である。具体的には、依存元要素は、関数βである。
依存先要素は、第1直接依存種類に対応する直接依存元である。具体的には、依存先要素は、関数αである。
間接依存種類は、変数媒介である。変数媒介は、変数を媒介とする間接的な依存関係を意味する。
第1直接依存種類は、関数αから関数γの呼出しである。関数αは第1直接依存種類に対応する直接依存元であり、関数γは第1直接依存種類に対応する直接依存先である。
第2直接依存種類は、関数βから関数ωの呼出しである。関数βは第2直接依存種類に対応する直接依存元であり、関数ωは第2直接依存種類に対応する直接依存先である。
要素関係は、第1直接依存種類に対応する直接依存先と第2直接依存種類に対応する直接依存元との関係である。具体的には、要素関係は、関数γと関数βとの一致である。
依存元要素は、第1直接依存種類に対応する直接依存元である。具体的には、依存元要素は、関数αである。
依存先要素は、第2直接依存種類に対応する直接依存先である。具体的には、依存先要素は、関数ωである。
間接依存種類は、関数媒介である。関数媒介は、関数を媒介とする間接的な依存関係を意味する。
間接関係リスト240は、2つの間接関係情報を含んでいる。
それぞれの間接関係情報は、間接依存元と間接依存先と間接依存種類と間接依存頻度との組である。
2つ目の間接関係情報は、ソースコード「file1.c」の関数「func2()」が、関数を媒介にして、ソースコード「file1.c」の関数「func4()」から影響を受ける、という間接関係を示している。間接依存頻度は3である。
ステップS121において、間接関係抽出部120は、間接関係ルールリスト230から、未選択の間接関係ルールを1つ選択する。
対応情報群は、間接関係ルール内の複数の直接依存種類に対応する複数の直接関係情報である。つまり、対応情報群は、間接関係ルール内の直接依存種類と同じ数の直接関係情報から成る。そして、対応情報群には、間接関係ルール内の直接依存種類毎に、間接関係ルール内の直接依存種類と同じ直接依存種類を含んだ直接関係情報が1つ含まれる。
対応情報群が複数ある場合、間接関係抽出部120は複数の対応情報群を抽出する。
間接関係抽出部120は、間接関係ルール内の直接依存種類毎に、直接依存種類に対応する直接関係情報を直接関係リスト220から抽出する。直接依存種類に対応する直接関係情報とは、その直接依存種類を含んだ直接関係情報である。
そして、間接関係抽出部120は、間接関係ルール内の直接依存種類毎に、抽出された直接関係情報から直接関係情報を1つ選択する。選択された直接関係情報の組が対応情報群を成す。
図5に含まれる「No.1」の間接関係ルールにおいて、第1直接依存種類は「変数への書込み」である。したがって、間接関係抽出部120は、図4の直接関係リスト220から、3つ目の直接関係情報を第1直接関係情報として抽出する。
図5に含まれる「No.1」の間接関係ルールにおいて、第2直接依存種類は「変数の参照」である。したがって、間接関係抽出部120は、図4の直接関係リスト220から、4つ目の直接関係情報を第2直接関係情報として抽出する。
その結果、第1直接関係情報と第2直接関係情報とが対応情報群を成す。
ステップS123において、間接関係抽出部120は、対応情報群があるか判定する。S122で少なくとも1つの対応情報群が抽出された場合、間接関係抽出部120は、対応情報群があると判定する。
対応情報群がある場合、処理はステップS124に進む。
対応情報群がない場合、処理はステップS128に進む。
具体的には、間接関係抽出部120は、間接関係ルール内の要素関係に対応する複数の要素を対応情報群から抽出する。そして、間接関係抽出部120は、間接関係ルール内の要素関係が、抽出された複数の要素にあるか判定する。
間接関係ルール内の要素関係に対応する複数の要素に、間接関係ルール内の要素関係がある場合、処理はステップS126に進む。
間接関係ルール内の要素関係に対応する複数の要素に、間接関係ルール内の要素関係がない場合、処理はステップS127に進む。
図5に含まれる「No.1」の間接関係ルールにおいて、第1直接依存種類に対応する第1直接関係情報は図4に含まれる3つ目の直接関係情報であり、第2直接依存種類に対応する第2直接関係情報は図4に含まれる4つ目の直接関係情報である。
「No.1」の間接関係ルールにおいて、要素関係に対応する複数の要素は変数γと変数ωとの2つの要素である。
変数γは、第1直接依存種類に対応する直接依存先である。第1直接依存種類に対応する直接依存先とは、第1直接関係情報に含まれる直接依存先である。つまり、変数γは、ソースコード「file1.c」の変数「variable1」である。
変数ωは、第2直接依存種類に対応する直接依存先である。第2直接依存種類に対応する直接依存先とは、第2直接関係情報に含まれる直接依存先である。つまり、変数ωは、ソースコード「file1.c」の変数「variable1」である。
「No.1」の間接関係ルールにおいて、要素関係は変数γと変数ωとの一致である。上記の通り、変数γと変数ωとは一致するため、要素関係が変数γと変数ωとにある。
したがって、間接関係抽出部120は、間接関係ルール内の要素関係が、抽出された複数の要素にあると判定する。
ステップS126において、間接関係抽出部120は、間接関係情報を生成し、生成された間接関係情報を間接関係リスト240に追加する。
まず、間接関係抽出部120は、間接関係ルール内の依存元要素に対応する要素と、間接関係ルール内の依存先要素に対応する要素と、を対応情報群から抽出する。間接関係ルール内の依存元要素に対応する要素は間接依存元となり、間接関係ルール内の依存先要素に対応する要素は間接依存先となる。
また、間接関係抽出部120は、間接関係ルールから間接依存種類を抽出する。
さらに、間接関係抽出部120は、対応情報群に含まれるそれぞれの直接関係情報から直接依存頻度を抽出し、抽出された直接依存頻度を用いて間接依存頻度を算出する。
そして、間接関係抽出部120は、間接依存元と間接依存先と間接依存種類と間接依存頻度とを含んだ間接関係情報を生成する。
図5に含まれる「No.1」の間接関係ルールにおいて、第1直接依存種類に対応する第1直接関係情報は図4に含まれる3つ目の直接関係情報であり、第2直接依存種類に対応する第2直接関係情報は図4に含まれる4つ目の直接関係情報である。
第1直接関係情報に含まれる直接依存頻度は1であり、第2直接関係情報に含まれる直接依存頻度は1であり、これらの直接依存頻度を用いて算出される間接依存頻度は1(=1×1)である。
「No.1」の間接関係ルールにおいて、依存元要素は関数βであり、依存先要素は関数αである。
関数βは、第2直接依存種類に対応する直接依存元である。第2直接依存種類に対応する直接依存元とは、第2直接関係情報に含まれる直接依存元である。つまり、変数βは、ソースコード「file1.c」の関数「func2()」である。
変数αは、第1直接依存種類に対応する直接依存元である。第1直接依存種類に対応する直接依存元とは、第1直接関係情報に含まれる直接依存元である。つまり、変数αは、ソースコード「file1.c」の関数「func1()」である。
間接関係抽出部120は、間接依存元と間接依存先と間接依存種類と間接依存頻度とを含んだ間接関係情報を生成し、生成された間接関係情報を間接関係リスト240に追加する。これにより、図6の間接関係リスト240に1つ目の間接関係情報が追加される。
ステップS127において、間接関係抽出部120は、未選択の対応情報群があるか判定する。
未選択の対応情報群がある場合、処理はステップS124に戻る。
未選択の対応情報群がない場合、処理はステップS128に進む。
未選択の間接関係ルールがある場合、処理はステップS121に戻る。
未選択の間接関係ルールがない場合、間接関係抽出処理(S120)は終了する。
直接的な依存関係を順に辿っても到達しない間接的な依存関係を抽出することが可能になる。
具体的には、図8に示すような間接関係を抽出することが可能である。実線の矢印は直接関係を意味し、上下矢印はパターンマッチを意味し、一点鎖線の矢印は間接関係を意味する。
図8において、直接関係情報は、関数「func1()」から変数「variable」への書込み、および、関数「func2()」から変数「variable1」の参照である。
また、間接関係ルールは、関数αから変数γへの書込み、関数βから変数ωの参照、および、変数γと変数ωとの一致である。この間接関係ルールが成立する場合の間接関係は、関数βから関数αへの間接関係である。
直接関係情報を間接関係ルールとパターンマッチングすると、関数「func2()」から関数「func1()」への間接関係が得られる。
具体的には、図9に示すような間接関係を抽出することが可能である。実線の矢印、上下矢印および一点鎖線の矢印の意味は、図8と同じである。
図9において、直接関係情報は、関数「func2()」から関数「func3()」の呼出し、および、関数「func3()」から関数「func4()」の呼出しである。
また、間接関係ルールは、関数αから関数γの呼出し、関数βから関数ωの呼出し、および、関数γと関数βとの一致である。この間接関係ルールが成立する場合の間接関係は、関数αから関数ωへの間接関係である。
直接関係情報を間接関係ルールとパターンマッチングすると、関数「func2()」から関数「func4()」への間接関係が得られる。
間接関係ルールは、図5に示したルールに限られるものではない。
間接関係ルール内の直接依存種類の数は、3つ以上であってもよい。
間接関係ルール内の要素関係は、3つ以上の要素の関係であってもよい。
間接関係ルール内の依存元要素と依存先要素とのそれぞれは、複数の要素であってもよい。
間接関係ルールリスト230に含まれる間接関係ルールの種類は、到達不可の間接関係ルールと到達可能な間接関係ルールとのいずれか一方であってもよい。到達不可の間接関係ルールとは、直接的な依存関係を順に辿っても到達しない間接的な依存関係を対象とする間接関係ルールであり、到達可能な間接関係ルールとは、直接的な依存関係を順に辿ることで到達可能な間接的な依存関係を対象とする間接関係ルールである。
システム間の間接的な依存関係を抽出する形態について、主に実施の形態1と異なる点を、図10から図15に基づいて説明する。
依存関係抽出装置100の構成は、実施の形態1と同じである。
但し、記憶部191には、互いに通信する複数のシステムに対応する複数のソースコード210が予め記憶される。
***動作の説明***
図10に基づいて、依存関係抽出方法を説明する。
ステップS210は直接関係抽出処理である。
ステップS210において、直接関係抽出部110は、複数のソースコード210を用いて、複数のシステムに対応する複数の直接関係リスト220を生成する。記憶部191は、生成された複数の直接関係リスト220を記憶する。
具体的には、直接関係抽出部110は、システム毎に、システムに対応するソースコード210を用いて、システムに対応する直接関係リスト220を生成する。これにより、システム毎の直接関係リスト220が生成される。
それぞれの直接関係リスト220を生成する方法は、実施の形態1と同じである。
それぞれの直接関係リスト220の構成は、実施の形態1と同じである。
図11の(1)は、システム1のソースコード210である。システム1のソースコード210には、関数「func5()」および関数「send()」といった要素を使用するための記載が含まれている。関数「send()」は、データを送信するための送信関数である。
図11の(2)は、システム2のソースコード210である。システム2のソースコード210には、関数「func6()」、関数「func7()」、関数「recv()」および関数「send()」といった要素を使用するための記載が含まれている。関数「recv()」は、データを受信するための受信関数である。
図11の(3)は、システム3のソースコード210である。システム3のソースコード210には、関数「func8()」および関数「recv()」といった要素を使用するための記載が含まれている。
図12の(1)は、システム1に対応する直接関係リスト220である。システム1に対応する直接関係リスト220は、1つの直接関係情報を含んでいる。その直接関係情報は、ソースコード「file3.c」の関数「func5()」が送信関数「send()」を呼び出す、という直接関係を示している。直接依存頻度は1である。
図12の(2)は、システム2に対応する直接関係リスト220である。システム2に対応する直接関係リスト220は、2つの直接関係情報を含んでいる。1つ目の直接関係情報は、ソースコード「file4.c」の関数「func6()」が受信関数「recv()」を呼び出す、という直接関係を示している。直接依存頻度は1である。2つ目の直接関係情報は、ソースコード「file4.c」の関数「func7()」が送信関数「send()」を呼び出す、という直接関係を示している。直接依存頻度は1である。 図12の(3)は、システム3に対応する直接関係リスト220である。システム3に対応する直接関係リスト220は、1つの直接関係情報を含んでいる。その直接関係情報は、ソースコード「file5.c」の関数「func8()」が受信関数「recv()」を呼び出す、という直接関係を示している。直接依存頻度は1である。
ステップS220において、間接関係抽出部120は、複数の直接関係リスト220と間接関係ルールリスト250とを用いてシステム間の間接関係を抽出し、抽出された間接関係を示す間接関係リスト240を生成する。記憶部191は、生成された間接関係リスト240を記憶する。間接関係ルールリスト250は、記憶部191に予め記憶される。
間接関係ルールは、複数の直接依存種類と、システム関係と、依存元要素と、間接依存先となる依存先要素とを含む。
システム関係は、システム間に成り立つ関係である。
間接関係抽出部120は、間接関係ルールに含まれる複数の直接依存種類とシステム関係とに対応する複数の直接関係情報を複数の直接関係リスト220から抽出する。
そして、間接関係抽出部120は、抽出された複数の直接関係情報に含まれる複数の直接依存元と複数の直接依存先との中から、間接関係ルールに含まれる依存元要素に対応する要素を前記間接依存元として抽出する。
また、間接関係抽出部120は、抽出された複数の直接関係情報に含まれる複数の直接依存元と複数の直接依存先との中から、間接関係ルールに含まれる依存先要素に対応する要素を間接依存先として抽出する。
間接関係ルールリスト250は、1つの間接関係ルールを含んでいる。
その間接関係ルールは、間接関係条件と間接関係とを含んでいる。
間接関係条件は、複数の直接依存種類とシステム関係とを含んでいる。
間接関係は、依存元要素と依存先要素と間接依存種類とを含んでいる。
第2直接依存種類は、システムDの関数Eから受信関数Fの呼出しである。システムDは第2直接依存種類を含む第2直接関係情報に対応するシステムであり、関数Eは第2直接関係情報に含まれる直接依存元であり、受信関数Fは第2直接関係情報に含まれる直接依存先である。
システム関係は、第1直接関係情報に対応するシステムと第2直接関係情報に対応するシステムとの関係である。具体的には、システム関係は、システムAとシステムDとの不一致である。
依存元要素は、第2直接関係情報に含まれる直接依存元である。具体的には、依存元要素は、関数Eである。
依存先要素は、第1直接関係情報に含まれる直接依存元である。具体的には、依存先要素は、関数Bである。
間接依存種類は、通信媒介である。通信媒介は、通信を媒介とする間接的な依存関係を意味する。
間接関係リスト240は、3つの間接関係情報を含んでいる。
それぞれの間接関係情報は、間接依存元と間接依存先と間接依存種類と間接依存頻度との組である。
2つ目の間接関係情報は、システム3のソースコード「file5.c」の関数「func8()」が、通信を媒介にして、システム1のソースコード「file3.c」の関数「func5()」から影響を受ける、という間接関係を示している。間接依存頻度は1である。
3つ目の間接関係情報は、システム3のソースコード「file5.c」の関数「func8()」が、通信を媒介にして、システム2のソースコード「file4.c」の関数「func7()」から影響を受ける、という間接関係を示している。間接依存頻度は1である。
ステップS221において、間接関係抽出部120は、間接関係ルールリスト250から、未選択の間接関係ルールを1つ選択する。
対応情報群がある場合、処理はステップS224に進む。
対応情報群がない場合、処理はステップS228に進む。
具体的には、間接関係抽出部120は、間接関係ルール内のシステム関係に対応する複数のシステムを選択する。そして、間接関係抽出部120は、間接関係ルール内の要素関係が、選択された複数のシステムにあるか判定する。
間接関係ルール内のシステム関係に対応する複数のシステムに、間接関係ルール内のシステム関係がある場合、処理はステップS226に進む。
間接関係ルール内のシステム関係に対応する複数のシステムに、間接関係ルール内のシステム関係がない場合、処理はステップS227に進む。
未選択の対応情報群がある場合、処理はステップS224に戻る。
未選択の対応情報群がない場合、処理はステップS228に進む。
未選択の間接関係ルールがある場合、処理はステップS221に戻る。
未選択の間接関係ルールがない場合、間接関係抽出処理(S220)は終了する。
システム間の間接的な依存関係を抽出することが可能になる。
一般的に、システムは、コンピュータまたはコンピュータの集合である。但し、実施の形態2におけるシステムは、タスク、プロセスまたはスレッドであってもよい。つまり、実施の形態2は、タスク間、プロセス間またはスレッド間の間接的な依存関係を抽出するために利用することも可能である。
システム間の間接的な依存関係から、通信が行われないシステム間の間接的な依存関係を除去する形態について、主に実施の形態2と異なる点を、図16から図20に基づいて説明する。
図16に基づいて、依存関係抽出装置100の構成を説明する。
依存関係抽出装置100は、無効関係除去部130を機能構成の要素として備える。無効関係除去部130の機能については後述する。
図17に基づいて、依存関係抽出方法を説明する。
ステップS210およびステップS220は、実施の形態2と同じである。
ステップS230において、無効関係除去部130は、事象データ260を用いて、間接関係リスト240から、無効関係を除去する。
第1通信システムは、互いに通信する2つのシステムのうちの一方のシステムである。具体的には、第1通信システムは、通信相手のシステムにデータを送信する通信元システムである。
第2通信システムは、互いに通信する2つのシステムのうちの他方のシステムである。具体的には、第2通信システムは、通信相手のシステムからデータを受信する通信先システムである。
第1通信システムと第2通信システムとの組み合わせに対応しない組は、第1通信システムに対応する直接関係情報から抽出された要素と第2通信システムに対応する直接関係情報から抽出された要素との組み合わせとは異なる組である。具体的には、第1通信システムに対応する直接関係情報から抽出される要素は間接依存先であり、第2通信システムに対応する直接関係情報から抽出される要素は間接依存元である。
事象データ260は、2つの事象情報を含んでいる。
それぞれの事象情報は、第1通信システムと第2通信システムとを含んでいる。
「No.1」の事象情報は、システム1からシステム2への送信を示している。
「No.2」の事象情報は、システム2からシステム3への送信を示している。
動的なデータとは、システムを動作させることによって得られるデータである。具体的には、動的なデータは、システム間で通信される通信データである。
図14において、1つ目の間接関係情報に含まれる間接依存元と間接依存先との組に対応するシステムの組み合わせは、システム2とシステム1との組み合わせである。システム2とシステム1との組み合わせは、図18において、「No.1」の事象情報が示す組み合わせと同じである。したがって、1つ目の間接関係情報は除去されない。
図14において、2つ目の間接関係情報に含まれる間接依存元と間接依存先との組に対応するシステムの組み合わせは、システム3とシステム1との組み合わせである。システム3とシステム1との組み合わせは、図18において、いずれの事象情報が示す組み合わせとも異なる。したがって、2つ目の間接関係情報は除去される。
図14において、3つ目の間接関係情報に含まれる間接依存元と間接依存先との組に対応するシステムの組み合わせは、システム3とシステム2との組み合わせである。システム3とシステム2との組み合わせは、図18において、「No.2」の事象情報が示す組み合わせと同じである。したがって、3つ目の間接関係情報は除去されない。
その結果、図19の間接関係リスト240が生成される。
ステップS231において、無効関係除去部130は、間接関係リスト240から、未選択の間接関係情報を1つ選択する。
具体的には、無効関係除去部130は、間接関係情報に含まれる間接依存元と間接依存先との組が、事象情報に含まれる第1通信システムと第2通信システムとの組み合わせに対応する組であるか判定する。間接依存元と間接依存先との組が第1通信システムと第2通信システムとの組み合わせに対応する組である場合、間接関係情報が示す間接関係は有効関係である。
間接関係情報が示す間接関係が有効関係である場合、処理はステップS236に進む。
間接関係情報が示す間接関係が有効関係でない場合、処理はステップS234に進む。
未選択の事象情報がある場合、処理はステップS232に戻る。
未選択の事象情報がない場合、処理はステップS235に進む。
未選択の間接関係情報がある場合、処理はステップS231に戻る。
未選択の間接関係情報がない場合、無効関係抽出処理(S230)は終了する。
システム間の間接的な依存関係から、通信が行われないシステム間の間接的な依存関係を除去することが可能になる。
つまり、通信が行われるシステム間の間接的な依存関係を抽出することが可能になる。
実施の形態において、依存関係抽出装置100の機能はハードウェアで実現してもよい。
図21に、依存関係抽出装置100の機能がハードウェアで実現される場合の構成を示す。
依存関係抽出装置100は処理回路990を備える。処理回路990はプロセッシングサーキットリともいう。
処理回路990は、実施の形態で説明した「部」の機能を実現する専用の電子回路である。この「部」には記憶部191も含まれる。
具体的には、処理回路990は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、FPGAまたはこれらの組み合わせである。GAはGate Arrayの略称であり、ASICはApplication Specific Integrated Circuitの略称であり、FPGAはField Programmable Gate Arrayの略称である。
Claims (9)
- ソフトウェアに含まれる要素のうち前記ソフトウェアに含まれる他の要素を使用する要素である直接依存元と、前記ソフトウェアに含まれる要素のうち直接依存元に使用される要素である直接依存先と、直接依存元が直接依存先を使用する方法を示す直接依存種類との組を含んだ直接関係リストを記憶する記憶部と、
前記ソフトウェアに含まれる要素のうち前記ソフトウェアに含まれる他の要素から影響を受ける要素である間接依存元と、前記ソフトウェアに含まれる要素のうち間接依存元に影響を与える要素である間接依存先とのルールである間接関係ルールと、前記直接関係リストとを用いて、前記間接依存元と前記間接依存先との組を抽出する間接関係抽出部と
を備える依存関係抽出装置。 - 前記直接関係リストは、直接依存元と直接依存先と直接依存種類との組を示す直接関係情報を含み、
前記間接関係ルールは、複数の直接依存種類と、複数の要素に成り立つ要素関係と、間接依存元となる依存元要素と、間接依存先となる依存先要素とを含み、
前記間接関係抽出部は、前記間接関係ルールに含まれる複数の直接依存種類と要素関係とに対応する複数の直接関係情報を前記直接関係リストから抽出し、抽出された複数の直接関係情報に含まれる複数の直接依存元と複数の直接依存先との中から、前記間接関係ルールに含まれる依存元要素に対応する要素を前記間接依存元として抽出し、抽出された複数の直接関係情報に含まれる複数の直接依存元と複数の直接依存先との中から、前記間接関係ルールに含まれる依存先要素に対応する要素を前記間接依存先として抽出する
請求項1に記載の依存関係抽出装置。 - 前記複数の直接関係情報は、前記複数の直接依存種類に含まれる直接依存種類の数と同じ数の直接関係情報から成り、且つ、複数の直接依存元と複数の直接依存先と前記複数の直接依存種類とを含み、且つ、前記複数の直接依存元と前記複数の直接依存先とのうち前記要素関係に対応する複数の要素に前記要素関係がある
請求項2に記載の依存関係抽出装置。 - 前記複数の直接依存種類は、第1直接依存種類と第2直接依存種類とを含み、
前記要素関係は、前記第1直接依存種類に対応する直接依存先と前記第2直接依存種類に対応する直接依存先との関係であり、
前記依存元要素は、前記第2直接依存種類に対応する直接依存元であり、
前記依存先要素は、前記第1直接依存種類に対応する直接依存元である
請求項3に記載の依存関係抽出装置。 - 前記第1直接依存種類は、直接依存元である第1関数から直接依存先である第1変数への書込みであり、
前記第2直接依存種類は、直接依存元である第2関数から直接依存先である第2変数の参照であり、
前記要素関係は、前記第1変数と前記第2変数との一致であり、
前記依存元要素は、前記第2関数であり、
前記依存先要素は、前記第1関数である
請求項4に記載の依存関係抽出装置。 - 前記記憶部は、前記直接関係リストとして、互いに通信する複数のシステムに対応する複数の直接関係リストを記憶し、
前記複数の直接関係リストそれぞれは、直接依存元と直接依存先と直接依存種類との組を示す直接関係情報を含み、
前記記憶部は、複数の直接依存種類と、システム間に成り立つ関係を示すシステム関係と、間接依存元となる依存元要素と、間接依存先となる依存先要素と、を含んだ間接関係ルールを記憶し、
前記間接関係抽出部は、前記間接関係ルールに含まれる複数の直接依存種類とシステム関係とに対応する複数の直接関係情報を前記複数の直接関係リストから抽出し、抽出された複数の直接関係情報に含まれる複数の直接依存元と複数の直接依存先との中から、前記間接関係ルールに含まれる依存元要素に対応する要素を前記間接依存元として抽出し、抽出された複数の直接関係情報に含まれる複数の直接依存元と複数の直接依存先との中から、前記間接関係ルールに含まれる依存先要素に対応する要素を前記間接依存先として抽出する
請求項1に記載の依存関係抽出装置。 - 前記複数の直接依存種類は、第1直接依存種類と第2直接依存種類とを含み、
前記第1直接依存種類は、直接依存元である第1関数から直接依存先である送信関数の呼出しであり、
前記第2直接依存種類は、直接依存元である第2関数から直接依存先である受信関数の呼出しであり、
前記システム関係は、前記第1直接依存種類を含む直接関係情報に対応するシステムと前記第2直接依存種類を含む直接関係情報に対応するシステムとの不一致であり、
前記依存元要素は、前記第2関数であり、
前記依存先要素は、前記第1関数である
請求項6に記載の依存関係抽出装置。 - 前記記憶部は、互いに通信する2つのシステムのうちの一方のシステムである第1通信システムと、互いに通信する2つのシステムのうちの他方のシステムである第2通信システムとを示す事象データを記憶し、
前記依存関係抽出装置は、
前記事象データを用いて、抽出された間接依存元と抽出された間接依存先との組から、前記第1通信システムと前記第2通信システムとの組み合わせに対応しない組を除去する無効関係除去部を備える
請求項6に記載の依存関係抽出装置。 - 直接関係リストと間接関係ルールとを用いる依存関係抽出プログラムであって、
前記直接関係リストは、ソフトウェアに含まれる要素のうち前記ソフトウェアに含まれる他の要素を使用する要素である直接依存元と、前記ソフトウェアに含まれる要素のうち直接依存元に使用される要素である直接依存先と、直接依存元が直接依存先を使用する方法を示す直接依存種類との組を含んだリストであり、
前記間接関係ルールは、前記ソフトウェアに含まれる要素のうち前記ソフトウェアに含まれる他の要素から影響を受ける要素である間接依存元と、前記ソフトウェアに含まれる要素のうち間接依存元に影響を与える要素である間接依存先とのルールであり、
前記直接関係リストと前記間接関係ルールとを用いて、前記間接依存元と前記間接依存先との組を抽出する間接関係抽出部として
コンピュータを機能させるための依存関係抽出プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/063112 WO2017187537A1 (ja) | 2016-04-26 | 2016-04-26 | 依存関係抽出装置および依存関係抽出プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2017187537A1 JPWO2017187537A1 (ja) | 2018-06-28 |
JP6548819B2 true JP6548819B2 (ja) | 2019-07-24 |
Family
ID=60161386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018514004A Expired - Fee Related JP6548819B2 (ja) | 2016-04-26 | 2016-04-26 | 依存関係抽出装置および依存関係抽出プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US10606571B2 (ja) |
EP (1) | EP3451166A4 (ja) |
JP (1) | JP6548819B2 (ja) |
WO (1) | WO2017187537A1 (ja) |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933820A (en) * | 1996-05-20 | 1999-08-03 | International Business Machines Corporation | System, method, and program for using direct and indirect pointers to logically related data and targets of indexes |
US6233729B1 (en) * | 1998-10-29 | 2001-05-15 | Nortel Networks Limited | Method and apparatus for identifying dynamic structure and indirect messaging relationships between processes |
US20100106655A1 (en) * | 2001-07-26 | 2010-04-29 | Bernd Schneider | CPW method with application in a CPW enterprise architecture engine |
US20030225761A1 (en) * | 2002-05-31 | 2003-12-04 | American Management Systems, Inc. | System for managing and searching links |
JP4617448B2 (ja) * | 2004-05-24 | 2011-01-26 | 独立行政法人科学技術振興機構 | 遺伝子ネットワークの推定方法及び推定プログラム |
US8615729B2 (en) * | 2004-12-10 | 2013-12-24 | International Business Machines Corporation | Extending existing model-to-model transformations |
US7664712B1 (en) * | 2005-08-05 | 2010-02-16 | Troux Technologies | Method and system for impact analysis using a data model |
JP4104622B2 (ja) | 2005-10-14 | 2008-06-18 | 株式会社アイティアイディコンサルティング | 製品開発プロセス支援システム及び製品開発プロセス支援方法 |
US8464225B2 (en) * | 2007-05-06 | 2013-06-11 | Dynatrace Software Gmbh | Method and system for adaptive, generic code instrumentation using run-time or load-time generated inheritance information for diagnosis and monitoring application performance and failure |
JP2008191963A (ja) * | 2007-02-06 | 2008-08-21 | Nec Corp | ソースコード検証システム、ソースコード検証方法、およびソースコード検証用プログラム |
CA2691306A1 (en) * | 2010-01-28 | 2011-07-28 | Ibm Canada Limited - Ibm Canada Limitee | Interdependent task management |
JP5687122B2 (ja) | 2011-04-26 | 2015-03-18 | 三菱電機株式会社 | ソフトウェア評価装置、ソフトウェア評価方法およびシステム評価装置 |
JP2013045421A (ja) * | 2011-08-26 | 2013-03-04 | Toshiba Corp | 保守度測定装置 |
JP2013069086A (ja) | 2011-09-22 | 2013-04-18 | Hitachi Ltd | ソフトウェア部品組合せ支援装置 |
JP2013125466A (ja) * | 2011-12-15 | 2013-06-24 | Mitsubishi Electric Corp | 影響度分析装置、影響度分析方法、及びプログラム |
US20140032552A1 (en) * | 2012-07-30 | 2014-01-30 | Ira Cohen | Defining relationships |
JP5981327B2 (ja) | 2012-12-05 | 2016-08-31 | トヨタ自動車株式会社 | ソフトウェア複雑度測定装置及び方法並びにプログラム |
US9886499B2 (en) * | 2013-08-26 | 2018-02-06 | Accenture Global Services Limited | Identifying and classifying non-functional requirements in text |
JP2015069332A (ja) | 2013-09-27 | 2015-04-13 | 日本電気株式会社 | 静的検証装置に静的検証を実行させる対象範囲を抽出する、対象範囲抽出装置、静的検証システム、対象範囲抽出方法、及び対象範囲抽出プログラム |
JP2015138356A (ja) | 2014-01-21 | 2015-07-30 | トヨタ自動車株式会社 | ソフトウェア構造可視化装置 |
US20170131973A1 (en) * | 2014-03-25 | 2017-05-11 | Hitachi, Ltd. | Software specification dependence relation verification apparatus and software specification dependence relation verification method |
JP2016076080A (ja) * | 2014-10-06 | 2016-05-12 | 三菱電機株式会社 | ソースコード解析装置、ソースコード解析方法、及びプログラム |
US9471468B2 (en) * | 2014-12-02 | 2016-10-18 | International Business Machines Corporation | System, method, and computer program to improve the productivity of unit testing |
US10075342B2 (en) * | 2015-06-12 | 2018-09-11 | Microsoft Technology Licensing, Llc | Action orchestration in fault domains |
US10007594B2 (en) * | 2015-07-21 | 2018-06-26 | International Business Machines Corporation | Proactive cognitive analysis for inferring test case dependencies |
CN105632551B (zh) * | 2015-12-18 | 2018-09-25 | 中国科学院上海微系统与信息技术研究所 | 存储阵列、存储对象逻辑关系的存储芯片及方法 |
CN107515886B (zh) * | 2016-06-17 | 2020-11-24 | 阿里巴巴集团控股有限公司 | 一种数据表的识别方法、装置和系统 |
US20180081691A1 (en) * | 2016-09-21 | 2018-03-22 | Qualcomm Incorporated | REPLAYING SPECULATIVELY DISPATCHED LOAD-DEPENDENT INSTRUCTIONS IN RESPONSE TO A CACHE MISS FOR A PRODUCING LOAD INSTRUCTION IN AN OUT-OF-ORDER PROCESSOR (OoP) |
-
2016
- 2016-04-26 JP JP2018514004A patent/JP6548819B2/ja not_active Expired - Fee Related
- 2016-04-26 WO PCT/JP2016/063112 patent/WO2017187537A1/ja active Application Filing
- 2016-04-26 EP EP16900410.8A patent/EP3451166A4/en not_active Withdrawn
- 2016-04-26 US US16/084,272 patent/US10606571B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US10606571B2 (en) | 2020-03-31 |
US20190079742A1 (en) | 2019-03-14 |
JPWO2017187537A1 (ja) | 2018-06-28 |
WO2017187537A1 (ja) | 2017-11-02 |
EP3451166A4 (en) | 2019-05-15 |
EP3451166A1 (en) | 2019-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11409703B2 (en) | File versions within content addressable storage | |
US8640241B2 (en) | Data identification system | |
US11360938B2 (en) | Files having unallocated portions within content addressable storage | |
CN110998558B (zh) | 区块链中数据库哈希码的延迟更新 | |
JP6386089B2 (ja) | 最適化されたブラウザレンダリングプロセス | |
JP6903755B2 (ja) | データ統合ジョブ変換 | |
US20150242389A1 (en) | Techniques to identify user interface elements associated with model violation events | |
US20120047124A1 (en) | Database query optimizations | |
CN109614559A (zh) | 数据处理方法及装置 | |
US9262219B2 (en) | Distributed processing system, distributed processing method, and distributed processing program | |
JPWO2018092206A1 (ja) | 情報処理装置、デバイス割り当て方法およびデバイス割り当てプログラム | |
US11341599B2 (en) | Image processing apparatus, image processing method, and computer readable medium storing image processing program | |
JP7031735B2 (ja) | 情報処理装置、制御方法、及びプログラム | |
JP6548819B2 (ja) | 依存関係抽出装置および依存関係抽出プログラム | |
US20150324161A1 (en) | Image processing apparatus, image processing method, and non-transitory computer-readable storage medium | |
JP2018136763A (ja) | 類似関数抽出装置および類似関数抽出プログラム | |
US20190179932A1 (en) | Tracking and reusing function results | |
JP7050587B2 (ja) | 違反依存検出装置および違反依存検出プログラム | |
WO2020100186A1 (ja) | 情報処理装置、制御方法、及びプログラム | |
US8626800B2 (en) | Synchronization of artifacts across different domains | |
JP6807721B2 (ja) | 状態遷移編集装置および状態遷移編集プログラム | |
JP7008780B2 (ja) | 状態遷移編集装置および状態遷移編集プログラム | |
WO2019171425A1 (ja) | ソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラム | |
EP3168757A1 (en) | Web content extraction system and method and non-transitory computer readable storage medium | |
US20240118878A1 (en) | Method and system for determining optimization applicability on intermediate representation from program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180302 |
|
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: 20190528 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190625 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6548819 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |