JP2008102831A - Information providing device, program and information providing method - Google Patents

Information providing device, program and information providing method Download PDF

Info

Publication number
JP2008102831A
JP2008102831A JP2006286346A JP2006286346A JP2008102831A JP 2008102831 A JP2008102831 A JP 2008102831A JP 2006286346 A JP2006286346 A JP 2006286346A JP 2006286346 A JP2006286346 A JP 2006286346A JP 2008102831 A JP2008102831 A JP 2008102831A
Authority
JP
Japan
Prior art keywords
function
information
module
relationship
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
JP2006286346A
Other languages
Japanese (ja)
Inventor
Akihiko Koga
明彦 古賀
Kenji Ogasawara
健二 小笠原
Hideto Noguchi
秀人 野口
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 JP2006286346A priority Critical patent/JP2008102831A/en
Publication of JP2008102831A publication Critical patent/JP2008102831A/en
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To determine whether a program created by a user conforms to an architecture of software or not, and provide, when the program does not conform to the architecture of software, information for specifying a function to be corrected. <P>SOLUTION: A reference relation inspection part 122 inspects whether a relation of modules between a referring function contained in a program stored in a program accumulation area 112 and each of functions to be referred to by the referring function, respectively, conforms to architecture model information stored in a model accumulation area 11 or not. When the relation does not conform to the architecture model information, a relevant function analysis part 123 acquires function information for specifying a function related to at least either of the referring function or the referred function. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、アーキテクチャに関する情報を提供する技術に関する。   The present invention relates to a technique for providing information about an architecture.

ソフトウェアのアーキテクチャに関する技術として、特許文献1に記載の技術がある。   As a technique related to software architecture, there is a technique described in Patent Document 1.

特許文献1に記載の技術は、入力された評価対象のプログラムからモジュール間の呼び出し関係を構造化チャートとして作成し、モジュール間で共通に使用されるグローバル変数の構造化チャート上での分布をもとに、プログラムの保守性の評価値を求めることができるようにしている。   The technique described in Patent Document 1 creates a calling relationship between modules as a structured chart from an input program to be evaluated, and has a distribution on the structured chart of global variables commonly used among modules. In addition, an evaluation value of the maintainability of the program can be obtained.

特開平6−266550号公報JP-A-6-266550

特許文献1に記載の技術では、プログラムの保守性の評価値を求めるにとどまり、ユーザが作成したプログラムがソフトウェアのアーキテクチャに合っているか否かの判断や、当該プログラムがソフトウェアのアーキテクチャに合っていない場合にどのように修正すればよいのかの判断については、ユーザに委ねられている。   In the technique described in Patent Document 1, the evaluation value of the maintainability of the program is merely obtained, and it is determined whether the user-created program matches the software architecture or the program does not match the software architecture. It is left to the user to decide how to correct the situation.

そこで、本発明は、ユーザが作成したプログラムがソフトウェアのアーキテクチャに合っているか否かを判断し、当該プログラムがソフトウェアのアーキテクチャに合っていない場合にどの関数を修正すればよいのかを特定する情報を提供することを目的とする。   Therefore, the present invention determines whether or not the program created by the user matches the software architecture, and specifies information about which function should be corrected when the program does not match the software architecture. The purpose is to provide.

以上の課題を解決するため、本発明は、ユーザが作成したプログラムにおいて、第1関数から第2関数への参照がソフトウェアのアーキテクチャに合っていない場合に、第1関数又は第2関数に直接的又は間接的に関連する関数を特定する。   In order to solve the above problems, the present invention is directed to a first program or a second function in a user-created program when the reference from the first function to the second function does not match the software architecture. Or identify indirectly related functions.

例えば、本発明は、アーキテクチャに関する情報を提供する情報提供装置であって、前記アーキテクチャにおいて参照が許可されるモジュールの関係を特定するアーキテクチャモデル情報、プログラム、および、当該プログラムが属するモジュールを特定するプログラム情報、を記憶する記憶部と、制御部と、出力部と、を備え、前記制御部は、プログラムに含まれる第1関数が参照する第2関数が含まれるプログラムを前記記憶部から特定し、特定した前記プログラムが属するモジュールを前記プログラム情報から特定し、前記第1関数、当該第1関数が含まれるモジュールを特定する情報、当該第1関数が参照する第2関数、および、当該第2関数が属するモジュールを特定する情報、を有する参照関係からなる参照関係情報を生成する参照関係解析処理と、前記第1関数が含まれるモジュールと前記第2関数が属するモジュールとの関係が、前記アーキテクチャモデル情報で特定される関係か否かを検査して、前記アーキテクチャにおいて参照が許可されない参照違反の参照関係を特定する参照関係検査処理と、前記参照違反の参照関係を解消するために、前記第1関数又は前記第2関数の少なくとも何れか一方に関連する関数を特定する関数情報を前記参照関係情報から取得する関連関数解析処理と、前記関数情報を予め定めた形式にして前記出力部から出力する出力処理と、を行うこと、を特徴とする。   For example, the present invention is an information providing apparatus that provides information related to an architecture, and includes architecture model information for specifying a relationship of modules permitted to be referenced in the architecture, a program, and a program for specifying a module to which the program belongs. A storage unit that stores information, a control unit, and an output unit, wherein the control unit identifies a program including a second function referred to by a first function included in the program from the storage unit, The module to which the specified program belongs is specified from the program information, the first function, the information specifying the module including the first function, the second function referred to by the first function, and the second function Generating reference relationship information consisting of a reference relationship having information identifying a module to which It is checked whether the relationship between the reference relationship analysis process and the module including the first function and the module to which the second function belongs is a relationship specified by the architecture model information, and reference is permitted in the architecture. A reference relationship checking process for specifying a reference relationship of a reference violation that is not performed, and function information for specifying a function related to at least one of the first function and the second function in order to eliminate the reference relationship of the reference violation And a related function analysis process for acquiring the function information from the reference relation information, and an output process for outputting the function information from the output unit in a predetermined format.

以上のように、本発明によれば、ユーザが作成したプログラムがソフトウェアのアーキテクチャに合っていない場合に、適合しない関数に関連する関数を特定することができるため、特定された関数を修正することにより、アーキテクチャに適合させる修正を容易に行うことができるようになる。   As described above, according to the present invention, when a program created by a user does not match the software architecture, a function related to a function that does not match can be specified. This makes it easy to make modifications that conform to the architecture.

図1は、本発明の第一の実施形態である情報提供装置100の概略図である。   FIG. 1 is a schematic diagram of an information providing apparatus 100 according to the first embodiment of the present invention.

図示するように情報提供装置100は、記憶部110と、制御部120と、入力部130と、出力部140と、を備えている。   As illustrated, the information providing apparatus 100 includes a storage unit 110, a control unit 120, an input unit 130, and an output unit 140.

記憶部110は、モデル蓄積領域111と、プログラム蓄積領域112と、を有している。   The storage unit 110 has a model storage area 111 and a program storage area 112.

モデル蓄積領域111には、ソフトウェアアーキテクチャにおいて参照が許されるモジュール間の関係を特定する情報が記憶される。   The model storage area 111 stores information for specifying the relationship between modules that can be referred to in the software architecture.

例えば、本実施形態においては、図2(モデルテーブル111aの概略図)に示されているようなモデルテーブル111aが記憶されている。   For example, in the present embodiment, a model table 111a as shown in FIG. 2 (schematic diagram of the model table 111a) is stored.

モデルテーブル111aには、ソフトウェアアーキテクチャにおいて参照が許されるモジュール間の関係として、参照が許される参照元のモジュールと参照先のモジュールとを特定する情報が記憶されている。   The model table 111a stores information for identifying a reference source module and a reference destination module that are permitted to be referenced as a relationship between modules that are permitted to be referenced in the software architecture.

具体的には、モデルテーブル111aは、参照元モジュール名欄111bと、参照先モジュール名欄111cと、が設けられており、同じ行の参照元モジュール名欄111b及び参照先モジュール名欄111cに、ソフトウェアアーキテクチャにおいて参照が許される参照元と参照先のモジュールのモジュール名を各々格納するようにしている。   Specifically, the model table 111a is provided with a reference source module name column 111b and a reference destination module name column 111c. In the reference source module name column 111b and the reference destination module name column 111c on the same line, In the software architecture, the module names of reference sources and reference destination modules that are allowed to be referenced are stored.

参照元モジュール名欄111bには、ソフトウェアアーキテクチャにおいて参照が許される参照元のモジュールを一意に特定する情報が格納される。ここで本実施形態では、ソフトウェアアーキテクチャにおいて参照が許される参照元のモジュールを一意に特定する情報としてモジュール名を使用しているが、このような態様に限定されず、例えば、モジュール毎に一意に割り当てられたID等を使用することも可能である。   The reference source module name column 111b stores information for uniquely specifying a reference source module that is allowed to be referenced in the software architecture. Here, in the present embodiment, the module name is used as information for uniquely identifying a reference source module that is allowed to be referenced in the software architecture. However, the present invention is not limited to such an aspect. It is also possible to use an assigned ID or the like.

参照先モジュール名欄111cには、同じ行の参照元モジュール名欄111bに格納されたモジュール名で特定されるモジュールが、ソフトウェアアーキテクチャにおいて参照が許されている参照先のモジュールを一意に特定する情報が格納される。ここで本実施形態では、ソフトウェアアーキテクチャにおいて参照が許される参照先のモジュールを一意に特定する情報としてモジュール名を使用しているが、このような態様に限定されず、例えば、モジュール毎に一意に割り当てられたID等を使用することも可能である。   In the reference destination module name column 111c, information that uniquely specifies a reference destination module that is specified by the module name stored in the reference source module name column 111b in the same row and is allowed to be referenced in the software architecture. Is stored. Here, in the present embodiment, the module name is used as information for uniquely identifying a reference destination module that is allowed to be referenced in the software architecture. However, the present invention is not limited to this mode. For example, each module is uniquely identified. It is also possible to use an assigned ID or the like.

ここで、本実施形態においては、図2に示されているように、モジュールAからモジュールBへの参照と、モジュールBからモジュールCへの参照が、ソフトウェアアーキテクチャにおいて許されているものとする。即ち、これら以外のモジュール間の参照関係、例えば、モジュールAからモジュールCへの参照、モジュールBからモジュールAへの参照、モジュールCからモジュールBへの参照、および、モジュールCからモジュールAへの参照がソフトウェアアーキテクチャの参照違反となる。   In this embodiment, as shown in FIG. 2, it is assumed that the reference from the module A to the module B and the reference from the module B to the module C are permitted in the software architecture. That is, a reference relationship between other modules, for example, a reference from module A to module C, a reference from module B to module A, a reference from module C to module B, and a reference from module C to module A Is a software architecture reference violation.

プログラム蓄積領域112には、モジュールを特定する情報と、当該モジュールに属するプログラムを特定する情報と、が記憶される。   The program storage area 112 stores information for specifying a module and information for specifying a program belonging to the module.

例えば、本実施形態においては、図3(プログラムテーブル113及びファイル114の概略図)に示されているように、プログラムテーブル113と、ファイル114と、が記憶される。   For example, in this embodiment, as shown in FIG. 3 (schematic diagram of the program table 113 and the file 114), the program table 113 and the file 114 are stored.

プログラムテーブル113には、各モジュールに属するプログラムを特定する情報がモジュール毎に記憶される。   In the program table 113, information for specifying a program belonging to each module is stored for each module.

例えば、本実施形態におけるプログラムテーブル113は、モジュール名欄113aと、ファイル名欄113bと、を備えている。   For example, the program table 113 in the present embodiment includes a module name column 113a and a file name column 113b.

モジュール名欄113aには、各プログラムテーブル113のモジュールを一意に特定する情報が格納される。   The module name column 113a stores information for uniquely specifying a module in each program table 113.

例えば、本実施形態では、モジュールを一意に特定する情報として、モジュール名が格納される。   For example, in the present embodiment, a module name is stored as information for uniquely specifying a module.

ファイル名欄113bには、モジュール名欄113aに格納されたモジュール名で特定されるモジュールに属するプログラムを一意に特定する情報が格納される。   The file name column 113b stores information for uniquely specifying a program belonging to the module specified by the module name stored in the module name column 113a.

例えば、本実施形態では、プログラムを一意に特定する情報として、プログラムファイルのファイル名が格納される。   For example, in the present embodiment, the file name of the program file is stored as information for uniquely specifying the program.

また、プログラム蓄積領域112には、ファイル名欄113bに対応させて、プログラムが格納されたファイル114が記憶される。   In the program storage area 112, a file 114 storing a program is stored in association with the file name column 113b.

制御部120は、参照関係解析部121と、参照関係検査部122と、関連関数解析部123と、を備えている。   The control unit 120 includes a reference relationship analysis unit 121, a reference relationship inspection unit 122, and a related function analysis unit 123.

参照関係解析部121は、プログラム蓄積領域112に記憶される特定のモジュールに属するプログラムにおける関数の呼び出し先のモジュール及び関数を特定することで、参照関係を特定する。   The reference relationship analysis unit 121 specifies a reference relationship by specifying a function call destination module and function in a program belonging to a specific module stored in the program storage area 112.

例えば、本実施形態においては、参照関係解析部121は、モジュール毎のプログラムテーブル113から、モジュール名と当該モジュールに属するプログラムのファイル名を取得して、取得したファイル名に対応するファイル114のプログラムを解析することにより、当該プログラムに含まれる関数を特定する。   For example, in the present embodiment, the reference relationship analysis unit 121 acquires the module name and the file name of the program belonging to the module from the program table 113 for each module, and the program of the file 114 corresponding to the acquired file name To identify the functions included in the program.

そして、特定した関数が呼び出す関数を抽出して、抽出した関数を有するプログラムのファイル114を特定し、そのファイル名を特定する。   Then, the function called by the identified function is extracted, the file 114 of the program having the extracted function is identified, and the file name is identified.

さらに、特定したファイル名が格納されているプログラムテーブル113のモジュール名欄113aから抽出した関数の属するモジュール名を特定する。   Further, the module name to which the function extracted from the module name column 113a of the program table 113 storing the specified file name is specified.

そして、参照関係解析部121は、参照元のモジュール名と関数、および、参照先のモジュール名と関数、を対応させることで、参照関係を特定する。このようにしてプログラム蓄積領域112に記憶されている全てのプログラムに含まれる関数について参照関係を特定し、特定した参照関係を参照関係情報として記憶部110に記憶しておく。   Then, the reference relationship analysis unit 121 identifies the reference relationship by associating the module name and function of the reference source with the module name and function of the reference destination. In this way, the reference relationship is specified for the functions included in all programs stored in the program storage area 112, and the specified reference relationship is stored in the storage unit 110 as reference relationship information.

参照関係検査部122は、参照関係解析部121において特定した参照関係情報に含まれる各参照関係を検査して、ソフトウェアアーキテクチャにおいて参照が許されるものか否かを判断する。   The reference relationship checking unit 122 checks each reference relationship included in the reference relationship information specified by the reference relationship analyzing unit 121 to determine whether or not reference is permitted in the software architecture.

例えば、本実施形態においては、参照関係検査部122は、参照関係解析部121において特定した各参照関係から参照元となっているモジュール名と参照先となっているモジュール名とを特定し、特定したモジュール名が、モデル蓄積領域111に記憶されているモデルテーブル111aの参照元モジュール名欄111b及び参照先モジュール名欄111cのそれぞれに対応する欄に格納されている行があるか否かを確認する。   For example, in the present embodiment, the reference relationship inspecting unit 122 identifies and specifies the module name that is the reference source and the module name that is the reference destination from each reference relationship specified in the reference relationship analysis unit 121. Whether or not there is a row in which the module name stored in the column corresponding to each of the reference source module name column 111b and the reference destination module name column 111c of the model table 111a stored in the model storage area 111 is present To do.

そして、参照関係検査部122は、そのような行がある場合には、ソフトウェアアーキテクチャにおいて参照が許されるものであり、そのような行がない場合には、ソフトウェアアーキテクチャにおいて参照が許されるものではない(参照違反である)と判断する。   When there is such a line, the reference relationship checking unit 122 is allowed to refer to the software architecture, and when there is no such line, the reference is not permitted in the software architecture. (It is a reference violation).

関連関数解析部123は、参照関係検査部122において参照違反と判断された参照関係を解消するための方法を解析する。ここで、本実施形態においては、関連関数解析部123は、参照違反と判断された参照関係を解消するために関数の呼び出しを迂回する迂回候補関数情報を生成する。   The related function analysis unit 123 analyzes a method for eliminating the reference relationship that is determined to be a reference violation by the reference relationship checking unit 122. Here, in the present embodiment, the related function analysis unit 123 generates detour candidate function information that detours the function call in order to eliminate the reference relationship determined to be a reference violation.

具体的には、本実施形態においては、関連関数解析部123は、参照関係検査部122において参照違反と判断された参照関係における参照先の関数を呼び出している他のモジュールの関数を、参照関係解析部121が特定した参照関係情報から抽出する。   Specifically, in the present embodiment, the related function analysis unit 123 converts the function of another module that is calling the reference destination function in the reference relationship determined as a reference violation by the reference relationship checking unit 122 to the reference relationship. Extracted from the reference relationship information identified by the analysis unit 121.

次に、関連関数解析部123は、抽出した関数の属するモジュールのモジュール名を参照元モジュール名とし、参照違反と判断された参照関係における参照先のモジュールのモジュール名を参照先モジュール名とする行がモデル蓄積領域111のモデルテーブル111aにあるか否かを判断する。   Next, the related function analysis unit 123 sets the module name of the module to which the extracted function belongs as the reference source module name, and the module name of the reference destination module in the reference relationship determined to be a reference violation as the reference destination module name. Is stored in the model table 111 a of the model storage area 111.

そして、そのような行がある場合には、参照違反と判断された参照関係における参照元のモジュールのモジュール名を参照元モジュール名とし、抽出した関数の属するモジュールのモジュール名を参照先モジュール名とする行がモデル蓄積領域111のモデルテーブル111aにあるか否かを判断し、そのような行があるときには抽出した関数と当該関数が属するモジュール名とを対応させた情報を迂回候補関数情報として取得する。   If there is such a line, the module name of the reference source module in the reference relationship determined to be a reference violation is set as the reference source module name, and the module name of the module to which the extracted function belongs is referred to as the reference destination module name. It is determined whether or not the line to be stored is in the model table 111a of the model storage area 111. If there is such a line, information associating the extracted function with the module name to which the function belongs is obtained as bypass candidate function information. To do.

次に、関連関数解析部123は、迂回候補関数情報として取得された関数を呼び出している他の関数を、参照関係解析部121が特定した参照関係情報から抽出する。   Next, the related function analysis unit 123 extracts another function calling the function acquired as the detour candidate function information from the reference relationship information identified by the reference relationship analysis unit 121.

そして、関連関数解析部123は、抽出した関数の属するモジュールのモジュール名を参照元モジュール名とし、迂回候補関数情報として取得された関数の属するモジュールのモジュール名を参照先モジュール名とする行がモデル蓄積領域111のモデルテーブル111aにあるか否かを判断する。そのような行がある場合には、参照違反と判断された参照関係における参照元のモジュールのモジュール名を参照元モジュール名とし、抽出した関数の属するモジュールのモジュール名を参照先モジュール名とする行がモデル蓄積領域111のモデルテーブル111aにあるか否かを判断し、そのような行があるときには抽出した関数と当該関数が属するモジュール名とを対応させた情報を迂回候補関数情報として取得する。   Then, the related function analysis unit 123 uses the module name of the module to which the extracted function belongs as the reference source module name, and the line with the module name of the module to which the function obtained as the detour candidate function information belongs as the reference destination module name. It is determined whether or not it exists in the model table 111a of the storage area 111. If there is such a line, the module name of the module of the reference source in the reference relationship determined to be a reference violation is the reference source module name, and the module name of the module to which the extracted function belongs is the reference destination module name. Is stored in the model table 111a of the model storage area 111, and when there is such a line, information associating the extracted function with the module name to which the function belongs is obtained as bypass candidate function information.

以上の処理を、新たな迂回候補関数情報が取得されなくなるまで繰り返し行うことで、関連関数解析部123は、参照関係検査部122において参照違反と判断された参照関係における参照先の関数を直接又は間接に呼び出している他のモジュールの関数(及び当該館数の属するモジュール名)を迂回候補関数情報として取得する。   By repeatedly performing the above processing until new detour candidate function information is not acquired, the related function analysis unit 123 directly or directly selects the reference destination function in the reference relationship determined to be a reference violation by the reference relationship checking unit 122. The function of another module that is indirectly called (and the name of the module to which the number of buildings belongs) is acquired as bypass candidate function information.

図4は、関連関数解析部123で行う迂回候補関数情報の生成処理を説明するための模式図である。   FIG. 4 is a schematic diagram for explaining a process for generating detour candidate function information performed by the related function analysis unit 123.

図4においては、長方形で囲まれたノードでモジュールを示し、角丸長方形で囲まれたノードで各モジュールに属する関数を示している。そして、モジュールを示すノード間を結ぶ実線で示された有向エッジは、ソフトウェアアーキテクチャにおいて参照が許されているモジュール間の関係を示すものである。即ち、有向エッジの方向へのモジュール間の参照がソフトウェアアーキテクチャにおいて許されている(なお、一つのモジュール内での参照関係は認められているものとする)。また、関数を示すノード間を結ぶ破線で示された有向エッジは、各関数の呼び出し関係を示すものである。即ち、有向エッジで示す方向の関数を呼び出している。また、関数を示すノード内の文字は、(モジュール名,関数)を示している。   In FIG. 4, modules are indicated by nodes surrounded by rectangles, and functions belonging to each module are indicated by nodes surrounded by rounded rectangles. And the directed edge shown with the continuous line which connects between the nodes which show a module shows the relationship between the modules in which reference is permitted in software architecture. That is, the reference between the modules in the direction of the directed edge is permitted in the software architecture (note that the reference relationship within one module is allowed). In addition, the directed edge indicated by the broken line connecting the nodes indicating the function indicates the calling relationship of each function. That is, the function of the direction indicated by the directed edge is called. Further, the characters in the node indicating the function indicate (module name, function).

ここで、モジュールAに属する関数f1のノード161は、モジュールCに属する関数h2のノード162に有向エッジが延びており、この参照関係が参照違反となる。   Here, the directed edge of the node 161 of the function f1 belonging to the module A extends to the node 162 of the function h2 belonging to the module C, and this reference relationship becomes a reference violation.

そこで、関連関数解析部123は、モジュールCに属する関数h2のノード162に有向エッジが延びている他のモジュールの関数を示すノード163と、このノード163に対して有向エッジが延びているノード164を検索し、これらのノード163、164にノード161から有向エッジを延ばしても参照違反にならないことを確認して、これらのノード163、164で特定されるモジュール名及び関数を迂回候補関数情報として特定する。   Therefore, the related function analysis unit 123 includes a node 163 indicating a function of another module in which the directed edge extends to the node 162 of the function h2 belonging to the module C, and the directed edge extends to the node 163. The node 164 is searched, and it is confirmed that there is no reference violation even if the directed edge is extended from the node 161 to these nodes 163 and 164, and the module name and function specified by these nodes 163 and 164 are bypassed. It is specified as function information.

さらに、関連関数解析部123は、以上のようにして取得した迂回候補関数情報を予め定められた表示形式に加工して、後述する出力部140において表示する。   Further, the related function analysis unit 123 processes the detour candidate function information acquired as described above into a predetermined display format, and displays it on the output unit 140 described later.

所定の表示形式としては、例えば、図5(迂回候補関数情報の表示例を示す概略図)に示されているように、参照違反となった参照関係を示すため、参照元のモジュール名と関数(図5では、「モジュールA、f1」)から参照先のモジュール名と関数(図5では、「モジュールC、h2」)に矢印(→)を配置し、参照違反となった参照関係の下方に迂回候補関数(図5では、「モジュールB、g3」「モジュールB、g2」)を列挙するようにしている。   As a predetermined display format, for example, as shown in FIG. 5 (schematic diagram showing a display example of detour candidate function information), a reference source module name and function are shown to indicate a reference relationship that has resulted in a reference violation. An arrow (→) is placed from the module name and function of the reference destination ("module C, h2" in FIG. 5) from (module A, f1 in FIG. 5) to the bottom of the reference relationship that resulted in a reference violation. Detour candidate functions ("module B, g3" and "module B, g2" in FIG. 5) are listed.

また、所定の表示形式としては、このような態様に限られず、例えば、図6(迂回候補関数情報の表示例を示す概略図)に示されているように、参照違反となった参照関係の参照先関数に至るまでのノードの数が少ない順に候補関数を表示することも可能である。なお、図6では、候補関数の左方に位置する数字が参照違反となった参照関係の参照先関数に至るまでのノードの数を示している。   Further, the predetermined display format is not limited to such an aspect. For example, as shown in FIG. 6 (schematic diagram showing a display example of the detour candidate function information), the reference relation that has become a reference violation is displayed. Candidate functions can be displayed in ascending order of the number of nodes leading to the reference function. In FIG. 6, the number located to the left of the candidate function indicates the number of nodes up to the reference destination function of the reference relationship in which the reference violation occurred.

さらに、所定の表示形式としては、例えば、図7(迂回候補関数情報の表示例を示す概略図)に示されているように、参照違反となった参照関係の参照先関数に至るまでのノードの経路を表示することも可能である。   Furthermore, as a predetermined display format, for example, as shown in FIG. 7 (schematic diagram showing a display example of detour candidate function information), nodes up to the reference destination function of the reference relationship that has become a reference violation are displayed. It is also possible to display the route.

以上のように構成される情報提供装置100は、図8(コンピュータ170の概略図)に示すようないわゆるコンピュータ170により実現可能である。   The information providing apparatus 100 configured as described above can be realized by a so-called computer 170 as shown in FIG. 8 (schematic diagram of the computer 170).

例えば、記憶部110は、ハードディスク等の外部記憶装置171により実現可能であり、制御部120は、外部記憶装置171に記憶されている所定のプログラムをメモリ172に読み込みCPU(Central Processing Unit)173で実行することにより実現可能であり、入力部130は、キーボードやマウスといった入力装置174により実現可能であり、出力部140は、ディスプレイなどの出力装置175により実現可能である。   For example, the storage unit 110 can be realized by an external storage device 171 such as a hard disk, and the control unit 120 reads a predetermined program stored in the external storage device 171 into the memory 172 and a CPU (Central Processing Unit) 173. The input unit 130 can be realized by an input device 174 such as a keyboard or a mouse, and the output unit 140 can be realized by an output device 175 such as a display.

以下では、情報提供装置100での処理の流れをPAD(Problem Analysis Diagram)を用いて説明する。   Below, the flow of the process in the information provision apparatus 100 is demonstrated using PAD (Problem Analysis Diagram).

なお、PADについては、[二村良彦、「プログラム技法−PADによる構造化プログラミング(情報工学基礎講座4)」、オーム社、1984年]に詳細に記載されている。   The PAD is described in detail in [Yoshihiko Fumimura, “Program Technique-Structured Programming by PAD (Information Engineering Fundamental Course 4)”, Ohmsha, 1984].

図9は、情報提供装置100にプログラムを入力する処理を示すPADである。   FIG. 9 is a PAD showing processing for inputting a program to the information providing apparatus 100.

まず、情報提供装置100にプログラムを入力する際には、入力部130を介して、情報提供装置100のオペレータからプログラム、当該プログラムを格納するファイル名、および、当該プログラムの属するモジュール名の入力を受け付ける(S10)。   First, when inputting a program to the information providing apparatus 100, the operator of the information providing apparatus 100 inputs the program, the file name for storing the program, and the module name to which the program belongs through the input unit 130. Accept (S10).

次に、情報提供装置100の制御部120は、入力されたモジュール名をプログラム蓄積領域112から検索し、入力されたモジュール名のエントリにそのプログラムを対応付けて記憶する(S12)。   Next, the control unit 120 of the information providing apparatus 100 searches the program storage area 112 for the input module name, and stores the program in association with the input module name entry (S12).

具体的には、入力されたモジュール名を有するモジュール名欄113aに有するプログラムテーブル112aのファイル名欄113bに新たなエントリを作成し、作成したエントリに入力されたファイル名を格納するとともに、入力されたプログラムを入力されたファイル名のファイルとしてプログラム蓄積領域112に記憶する。   Specifically, a new entry is created in the file name column 113b of the program table 112a included in the module name column 113a having the input module name, and the input file name is stored in the created entry. The stored program is stored in the program storage area 112 as a file having the input file name.

図10は、制御部120の参照関係解析部121による処理を示すPADである。   FIG. 10 is a PAD showing processing by the reference relationship analysis unit 121 of the control unit 120.

まず、ステップS20では、参照関係解析部121は、プログラム蓄積領域112に記憶されている全てのプログラムを各々変数Pに格納して、ステップS21〜ステップS25の処理を繰り返す。   First, in step S20, the reference relationship analysis unit 121 stores all the programs stored in the program storage area 112 in the variable P, and repeats the processes in steps S21 to S25.

次に、ステップS21では、参照関係解析部121は、プログラムPの属するモジュール名を変数M1に格納する。   Next, in step S21, the reference relationship analysis unit 121 stores the module name to which the program P belongs in the variable M1.

なお、プログラムPのモジュール名は、プログラムのファイル名をプログラムテーブル112aのファイル名欄112cから検索して、ヒットしたプログラムテーブル112aのモジュール名欄112bから取得すればよい。   The module name of the program P may be acquired from the module name column 112b of the program table 112a that has been searched by searching the file name column 112c of the program table 112a for the file name of the program.

そして、ステップS22では、参照関係解析部121は、プログラムP内の全ての関数を各々変数Fに格納して、ステップS23〜ステップS25の処理を各々の関数につき繰り返す。   In step S22, the reference relationship analysis unit 121 stores all the functions in the program P in the variable F, and repeats the processing in steps S23 to S25 for each function.

次に、ステップS23では、参照関係解析部121は、関数Fが呼び出す全ての関数を変数Gに格納して、ステップS24及びステップS25の処理を各々の関数につき繰り返す。   Next, in step S23, the reference relationship analysis unit 121 stores all the functions called by the function F in the variable G, and repeats the processing in steps S24 and S25 for each function.

そして、ステップS24では、参照関係解析部121は、関数Gを有するプログラムの属するモジュール名を変数M2に格納する。   In step S24, the reference relationship analysis unit 121 stores the module name to which the program having the function G belongs in the variable M2.

なお、関数Gを有するプログラムの属するモジュール名は、関数Gを備えるプログラムをプログラム蓄積領域112に記憶されているファイル114から特定し、特定したファイル114のファイル名をプログラムテーブル112aのファイル名欄112cから検索し、ヒットしたプログラムテーブル112aのモジュール名欄112bから取得すればよい。   As for the module name to which the program having the function G belongs, the program having the function G is specified from the file 114 stored in the program storage area 112, and the file name of the specified file 114 is specified in the file name column 112c of the program table 112a. From the module name column 112b of the hit program table 112a.

そして、ステップS25では、モジュールM1と関数Fとを関連付けた要素(M1、F)を参照元要素とし、モジュールM2と関数Gとを関連付けた要素(M2、G)を参照先要素とする参照関係を特定する情報を参照関係情報として取得する。   In step S25, a reference relationship in which an element (M1, F) that associates the module M1 with the function F is a reference source element, and an element (M2, G) that associates the module M2 with the function G is a reference destination element. Is acquired as reference relationship information.

図11は、制御部120の参照関係検査部122による処理を示すPADである。   FIG. 11 is a PAD showing processing by the reference relationship checking unit 122 of the control unit 120.

まず、ステップS30において、参照関係検査部122は、参照関係解析部121が取得した要素(M1、F)を参照元要素とし、要素(M2、G)を参照先要素とする全ての参照関係を各々変数Kに格納して、ステップS31〜ステップS33の処理を各々の参照関係につき繰り返す。   First, in step S30, the reference relationship inspecting unit 122 uses all the reference relationships having the elements (M1, F) acquired by the reference relationship analyzing unit 121 as reference source elements and the elements (M2, G) as reference destination elements. Each of them is stored in a variable K, and the processing in steps S31 to S33 is repeated for each reference relationship.

次に、ステップS31において、参照関係検査部122は、参照元要素のモジュールM1が参照元モジュール名欄111bに格納されており、参照先要素のモジュールM2が参照先モジュール名欄111cに格納されている行がモデル蓄積領域111に記憶されているモデルテーブル111aにあるか否かを確認する。   Next, in step S31, the reference relationship inspecting unit 122 stores the module M1 of the reference source element in the reference source module name column 111b and the module M2 of the reference destination element stored in the reference destination module name column 111c. It is confirmed whether there is a row in the model table 111 a stored in the model accumulation area 111.

そして、そのような行がある場合には、ステップS32に進み、何も処理を行わず、そのような行がない場合には、ステップS33に進み、要素(M1、F)を参照元要素とし、要素(M2、G)を参照先要素とする参照関係Kを参照違反であると特定する。   If there is such a line, the process proceeds to step S32, and no processing is performed. If there is no such line, the process proceeds to step S33, and the element (M1, F) is set as a reference source element. The reference relationship K having the element (M2, G) as a reference destination element is specified as a reference violation.

図12は、制御部120の関連関数解析部123による迂回候補関数情報の生成処理を示すPADである。   FIG. 12 is a PAD showing a process of generating detour candidate function information by the related function analysis unit 123 of the control unit 120.

まず、ステップS40において、関連関数解析部123は、参照関係検査部122において参照違反であると特定された参照関係のうち、任意の参照関係を抽出し、変数Jに格納する。   First, in step S <b> 40, the related function analysis unit 123 extracts an arbitrary reference relationship among the reference relationships identified as a reference violation by the reference relationship checking unit 122, and stores it in the variable J.

ここで、参照関係Jの抽出は任意の方法でよいが、例えば、参照関係検査部122において参照違反であると特定された参照関係を出力部140において一覧表示し、そのなかから、入力部130を介して、情報提供装置100のオペレータが選択すればよい。   Here, the reference relationship J may be extracted by any method. For example, the reference relationship identified by the reference relationship checking unit 122 as being violated by reference is displayed as a list on the output unit 140, and the input unit 130 includes the reference relationship. The operator of the information providing apparatus 100 may make a selection via

そして、ステップS41において、関連関数解析部123は、変数CANDの初期値として、参照関係Jの参照先要素である要素(M2、G)を変数CANDに格納する。   In step S41, the related function analysis unit 123 stores the elements (M2, G), which are reference destination elements of the reference relationship J, in the variable CAND as the initial value of the variable CAND.

次に、ステップS42において、関連関数解析部123は、変数CANDの要素が増えなくなるまで、ステップS43〜ステップS46の処理を繰り返す。   Next, in step S42, the related function analysis unit 123 repeats the processes in steps S43 to S46 until the number of elements of the variable CAND does not increase.

そして、ステップS43では、関連関数解析部123は、変数CANDの全ての要素につき、モジュール名と関数を各々変数M3と変数G3に格納してステップS44〜ステップS46の処理を各々の要素につき繰り返す。   In step S43, the related function analysis unit 123 stores the module name and the function in each of the variables M3 and G3 for all elements of the variable CAND, and repeats the processing in steps S44 to S46 for each element.

ステップS44では、関連関数解析部123は、モデル蓄積領域111に記憶されているモデルテーブル111aにおいて、モジュールM3が参照先モジュール名欄111cに格納されている行における参照元モジュール名欄111bに格納されているモジュール名を変数M4に格納する。   In step S44, the related function analysis unit 123 stores the module M3 in the reference source module name column 111b in the row in which the module M3 is stored in the reference destination module name column 111c in the model table 111a stored in the model accumulation area 111. Is stored in the variable M4.

ステップS45では、関連関数解析部123は、プログラム蓄積領域112においてモジュールM4に対応して記憶されているファイル114に格納されているプログラムの中で関数G3を呼び出す関数を全て特定し、特定した関数からなる集合(H1、・・・、)Hj)を生成する。   In step S45, the related function analysis unit 123 identifies all functions that call the function G3 in the program stored in the file 114 stored in the program storage area 112 corresponding to the module M4, and identifies the identified function. A set (H1,...) Hj) is generated.

ステップS46では、関連関数解析部123は、ステップS45で特定した関数にモジュール名を対応させた要素{(M4、H1)、・・・、(M4、Hj)}を変数CANDに追加する。   In step S46, the related function analysis unit 123 adds elements {(M4, H1),..., (M4, Hj)} in which the module name is associated with the function specified in step S45 to the variable CAND.

そして、ステップS47では、関連関数解析部123は、変数CANDに含まれる全ての要素につき、モジュール名と関数を各々変数M5と変数G5に格納して、参照元要素のモジュールM1が参照元モジュール名欄111bに格納されており、参照先要素のモジュールM5が参照先モジュール名欄111cに格納されている行がモデル蓄積領域111に記憶されているモデルテーブル111aに存在する要素を抽出して、抽出した要素の集合を変数CAND2に格納する。   In step S47, the related function analysis unit 123 stores the module name and the function in the variable M5 and the variable G5 for all elements included in the variable CAND, respectively, and the module M1 of the reference source element is the reference source module name. The element stored in the column 111b and the module M5 of the reference destination element is stored in the reference storage module name column 111c and the element existing in the model table 111a stored in the model storage area 111 is extracted and extracted. This set of elements is stored in the variable CAND2.

そして、ステップS48において、関連関数解析部123は、変数CAND2に含まれる要素を特定する情報を迂回候補関数情報として取得する。   In step S48, the related function analysis unit 123 acquires information for specifying an element included in the variable CAND2 as bypass candidate function information.

なお、このようにして取得された迂回候補関数情報は、出力部140を介して所定の表示形式で表示される。   The detour candidate function information acquired in this way is displayed in a predetermined display format via the output unit 140.

図13は、本発明の第二の実施形態である情報提供装置200の概略図である。   FIG. 13 is a schematic diagram of an information providing apparatus 200 according to the second embodiment of the present invention.

本実施形態は、第一の実施形態と比較して、関連関数解析部223での処理が異なるので、以下、この異なる点に関連する事項について説明する。   Since the present embodiment differs from the first embodiment in the processing in the related function analysis unit 223, items related to this different point will be described below.

本実施形態における関連関数解析部223は、第一の実施形態における関連関数解析部123での処理に加えて、移譲候補関数情報を生成する処理を行う。   The related function analysis unit 223 in the present embodiment performs processing for generating transfer candidate function information in addition to the processing in the related function analysis unit 123 in the first embodiment.

図14は、関連関数解析部223で行う移譲候補関数情報の生成処理を説明するための模式図である。   FIG. 14 is a schematic diagram for explaining transfer candidate function information generation processing performed by the related function analysis unit 223.

図14においては、図4と同様に、長方形で囲まれたノードでモジュールを示し、角丸長方形で囲まれたノードで各モジュールに属する関数を示している。そして、モジュールを示すノード間を結ぶ実線で示された有向エッジは、ソフトウェアアーキテクチャにおいて参照が許されているモジュール間の関係を示すものである。即ち、有向エッジの方向へのモジュール間の参照がソフトウェアアーキテクチャにおいて許されている(なお、一つのモジュール内での参照関係は認められているものとする)。また、関数を示すノード間を結ぶ破線で示された有向エッジは、各関数の呼び出し関係を示すものである。即ち、有向エッジで示す方向の関数を呼び出している。また、関数を示すノード内の文字は、(モジュール名,関数)を示している。   In FIG. 14, as in FIG. 4, modules are indicated by nodes surrounded by rectangles, and functions belonging to each module are indicated by nodes surrounded by rounded rectangles. And the directed edge shown with the continuous line which connects between the nodes which show a module shows the relationship between the modules in which reference is permitted in software architecture. That is, the reference between the modules in the direction of the directed edge is permitted in the software architecture (note that the reference relationship within one module is allowed). In addition, the directed edge indicated by the broken line connecting the nodes indicating the function indicates the calling relationship of each function. That is, the function of the direction indicated by the directed edge is called. Further, the characters in the node indicating the function indicate (module name, function).

ここで、図14においては、モジュールCに属する関数h2のノード261は、モジュールBに属する関数g2のノード262に有向エッジが延びており、この参照関係が参照違反になっている。   Here, in FIG. 14, the node 261 of the function h2 belonging to the module C has a directed edge extending to the node 262 of the function g2 belonging to the module B, and this reference relationship is a reference violation.

この点、関連関数解析部223で第一の実施形態における処理と同様の処理を行っても、ノード262を直接又は間接に呼び出しているノード263及びノード264をノード261から呼び出すことができないため(参照違反となってしまうため)、最終的に迂回できるノードを提示することができない。   In this regard, even if the related function analysis unit 223 performs the same process as the process in the first embodiment, the node 263 and the node 264 calling the node 262 directly or indirectly cannot be called from the node 261 ( Because it becomes a reference violation, it is not possible to present a node that can eventually be bypassed.

このような場合に、入力部130を介して情報提供装置200のオペレータからの指示に応じて、関連関数解析部223は、参照違反となっている関数を参照元又は参照先のいずれかのモジュールに入れることにより、参照違反が解消されるか否かを判断する。   In such a case, in accordance with an instruction from the operator of the information providing apparatus 200 via the input unit 130, the related function analysis unit 223 selects a function that is a reference violation as either a reference source or a reference destination module. It is determined whether or not the reference violation is resolved.

例えば、関連関数解析部223は、参照関係検査部122において参照違反と判断された参照関係における参照先の関数が呼び出している他の関数を参照関係解析部121が特定した参照関係情報から抽出し、さらに、抽出した関数が呼び出している他の関数を抽出する処理を繰り返すことにより、参照違反と判断された参照関係における参照先の関数及び当該参照先の関数が直接又は間接に呼び出している他の関数を特定する。   For example, the related function analysis unit 223 extracts, from the reference relationship information identified by the reference relationship analysis unit 121, other functions called by the reference destination function in the reference relationship determined to be reference violation by the reference relationship checking unit 122. In addition, by repeating the process of extracting other functions called by the extracted function, the reference destination function in the reference relationship determined to be a reference violation and the reference destination function called directly or indirectly Specify the function.

そして、関連関数解析部223は、参照違反と判断された参照関係における参照先の関数及び当該参照先の関数が直接又は間接に呼び出している他の関数を、参照違反と判断された参照関係における参照元の関数の属するモジュールに移すことにより、参照違反が解消するか否かを判断する。   Then, the related function analysis unit 223 uses the reference destination function in the reference relationship determined to be a reference violation and other functions that are directly or indirectly called by the reference destination function in the reference relationship determined to be the reference violation. It is determined whether or not the reference violation is resolved by moving to the module to which the reference source function belongs.

この判断は、参照違反と判断された参照関係における参照先の関数、または、当該参照先の関数が直接又は間接に呼び出している他の関数、を呼び出している関数が属するモジュールのモジュール名を参照元モジュール名とし、参照違反と判断された参照関係における参照元のモジュール名を参照先モジュール名とする行がモデル蓄積領域111のモデルテーブル111aにあるか否かで判断する。そして、モデルテーブル111aにそのような行がある場合には、参照違反と判断された参照関係における参照先の関数及び当該参照先の関数が直接又は間接に呼び出している他の関数と、これらの関数が属するモジュール名と、を特定した情報を移譲候補関数情報として取得する。   This determination refers to the module name of the module to which the function that calls the reference function in the reference relationship determined to be a reference violation or another function that is directly or indirectly called by the reference function. The determination is made based on whether or not there is a line in the model table 111a of the model storage area 111 that uses the original module name and the module name of the reference source in the reference relationship determined to be a reference violation. When there is such a row in the model table 111a, the reference destination function in the reference relationship determined to be a reference violation, the other function that is directly or indirectly called by the reference destination function, and these Information specifying the module name to which the function belongs is acquired as transfer candidate function information.

また、関連関数解析部223は、参照関係検査部122において参照違反と判断された参照関係における参照元の関数を呼び出している他の関数を参照関係解析部121が特定した参照関係情報から抽出し、さらに、抽出した関数を呼び出している他の関数を抽出する処理を繰り返すことにより、参照違反と判断された参照関係における参照元の関数及び当該参照元の関数を直接又は間接に呼び出している他の関数を特定する。   In addition, the related function analysis unit 223 extracts other functions that call the function of the reference source in the reference relationship determined to be a reference violation by the reference relationship checking unit 122 from the reference relationship information specified by the reference relationship analysis unit 121. In addition, by repeating the process of extracting other functions that call the extracted function, the function of the reference source in the reference relationship determined to be a reference violation and the function of the reference source are directly or indirectly called. Specify the function.

そして、関連関数解析部223は、参照違反と判断された参照関係における参照元の関数及び当該参照元の関数を直接又は間接に呼び出している他の関数を、参照違反と判断された参照関係における参照先の関数の属するモジュールに移すことにより、参照違反が解消するか否かを判断する。   Then, the related function analysis unit 223 uses the reference function in the reference relation determined to be a reference violation and the other function that directly or indirectly calls the reference source function in the reference relation determined to be the reference violation. It is determined whether or not the reference violation is resolved by moving to the module to which the reference destination function belongs.

この判断は、参照違反と判断された参照関係における参照元の関数、および、当該参照元の関数を直接又は間接に呼び出している他の関数、を呼び出している関数が属するモジュールのモジュール名を参照元モジュール名とし、参照違反と判断された参照関係における参照元のモジュール名を参照先モジュール名とする行がモデル蓄積領域111のモデルテーブル111aにあるか否かで判断する。そして、モデルテーブル111aにそのような行がある場合には、参照違反と判断された参照関係における参照元の関数及び当該参照元の関数を直接又は間接に呼び出している他の関数と、これらの関数が属するモジュール名と、を特定した情報を移譲候補関数情報として取得する。   This determination refers to the module name of the module to which the function that calls the reference source function in the reference relationship determined to be a reference violation and another function that directly or indirectly calls the reference source function belongs. The determination is made based on whether or not there is a line in the model table 111a of the model storage area 111 that uses the original module name and the module name of the reference source in the reference relationship determined to be a reference violation. When there is such a row in the model table 111a, the reference source function in the reference relationship determined to be a reference violation, the other function that directly or indirectly calls the reference source function, and these Information specifying the module name to which the function belongs is acquired as transfer candidate function information.

そして、関連関数解析部223は、以上のようにして取得した移譲候補関数情報を予め定められた表示形式に加工して、後述する出力部140において表示する。   Then, the related function analysis unit 223 processes the transfer candidate function information acquired as described above into a predetermined display format and displays it on the output unit 140 described later.

図15は、制御部120の関連関数解析部223による移譲候補関数情報の生成処理を示すPADである。   FIG. 15 is a PAD showing a transfer candidate function information generation process by the related function analysis unit 223 of the control unit 120.

まず、ステップS50において、関連関数解析部223は、参照関係検査部122において参照違反であると特定された参照関係のうち、任意の参照関係を抽出し、変数Iに格納する。   First, in step S <b> 50, the related function analysis unit 223 extracts an arbitrary reference relationship from among the reference relationships identified as a reference violation by the reference relationship checking unit 122, and stores it in the variable I.

ここで、参照関係Iの抽出は任意の方法でよいが、例えば、参照関係検査部122において参照違反であると特定された参照関係を出力部140において一覧表示し、そのなかから、入力部130を介して、情報提供装置100のオペレータが選択すればよい。   Here, the reference relationship I may be extracted by any method. For example, the reference relationship identified by the reference relationship inspecting unit 122 as being in violation of the reference is displayed in a list on the output unit 140, and the input unit 130 is displayed. The operator of the information providing apparatus 100 may make a selection via

次に、ステップS51において、関連関数解析部223は、参照関係Iの参照先要素である要素(B、g2)における関数g2と、モジュールBの中で関数g2が直接又は間接に呼び出す全ての関数と、をモジュールCに移すことによって、参照違反が解消するか否かを判断し、参照違反が解消する場合には、関数g2と、モジュールBの中で関数g2が直接又は間接に呼び出す全ての関数と、を特定する情報を移譲候補関数情報として取得する。   Next, in step S51, the related function analysis unit 223 causes the function g2 in the element (B, g2) that is the reference destination element of the reference relationship I and all the functions that the function g2 calls in the module B directly or indirectly. Is transferred to the module C to determine whether or not the reference violation is resolved. If the reference violation is resolved, the function g2 and all the functions g2 in the module B that are directly or indirectly called Information specifying the function is acquired as transfer candidate function information.

なお、参照違反が解消するか否かの判断は、関数g2、および、モジュールBの中で関数g2が直接又は間接に呼び出す全ての関数、を呼び出す関数のモジュール名を参照元モジュール名とし、モジュールBを参照先モジュール名とする行がモデル蓄積領域111のモデルテーブル111aにあるか否かで判断すればよい。   Whether or not the reference violation is resolved is determined by using the module name of the function g2 and the function g2 that calls the function g2 in the module B directly or indirectly as the reference source module name. The determination may be made based on whether or not there is a line having B as a reference module name in the model table 111a of the model storage area 111.

また、移譲候補関数情報には、移譲先であるモジュールCを特定する情報も含めることができる。   The transfer candidate function information can also include information for specifying the module C that is the transfer destination.

次に、関連関数解析部223は、参照関係Iの参照元要素である要素(C、h2)における関数h2と、モジュールCの中で関数h2を直接又は間接に呼び出す全ての関数と、をモジュールBに移すことによって、参照違反が解消するか否かを判断し、参照違反が解消する場合には、関数h2と、モジュールCの中で関数h2を直接又は間接に呼び出す全ての関数と、を特定する情報を移譲候補関数情報として取得する。   Next, the related function analysis unit 223 is a module that includes the function h2 in the element (C, h2) that is the reference source element of the reference relationship I and all the functions that directly or indirectly call the function h2 in the module C. It is determined whether or not the reference violation is resolved by moving to B. If the reference violation is resolved, the function h2 and all the functions that directly or indirectly call the function h2 in the module C are Information to be specified is acquired as transfer candidate function information.

なお、参照違反が解消するか否かの判断は、関数h2、および、モジュールCの中で関数h2を直接又は間接に呼び出す全ての関数、を呼び出す関数のモジュール名を参照元モジュール名とし、モジュールCを参照先モジュール名とする行がモデル蓄積領域111のモデルテーブル111aにあるか否かで判断すればよい。   Note that whether or not the reference violation is resolved is determined by using the module name of the function h2 and all functions that directly or indirectly call the function h2 in the module C as the reference source module name. The determination may be made based on whether or not a line having C as a reference module name exists in the model table 111a of the model storage area 111.

また、移譲候補関数情報には、移譲先であるモジュールBを特定する情報も含めることができる。   The transfer candidate function information can also include information for specifying the module B that is the transfer destination.

なお、このようにして取得された移譲候補関数情報は、出力部140を介して所定の表示形式で表示される。   The transfer candidate function information acquired in this way is displayed in a predetermined display format via the output unit 140.

図16は、本発明の第三の実施形態である情報提供装置300の概略図である。   FIG. 16 is a schematic diagram of an information providing apparatus 300 according to the third embodiment of the present invention.

本実施形態は、第二の実施形態と比較して、関連関数解析部323での処理が異なるので、以下、この異なる点に関連する事項について説明する。   Since the present embodiment differs from the second embodiment in the processing in the related function analysis unit 323, items related to the different points will be described below.

本実施形態における関連関数解析部323は、第二の実施形態における関連関数解析部223での処理に加えて、修正候補関数情報を生成する処理を行う。   The related function analysis unit 323 in the present embodiment performs processing for generating correction candidate function information in addition to the processing in the related function analysis unit 223 in the second embodiment.

図17は、関連関数解析部323で行う修正候補関数情報の生成処理を説明するための模式図である。   FIG. 17 is a schematic diagram for explaining correction candidate function information generation processing performed by the related function analysis unit 323.

図17においては、図4と同様に、長方形で囲まれたノードでモジュールを示し、角丸長方形で囲まれたノードで各モジュールに属する関数を示している。そして、モジュールを示すノード間を結ぶ実線で示された有向エッジは、ソフトウェアアーキテクチャにおいて参照が許されているモジュール間の関係を示すものである。即ち、有向エッジの方向へのモジュール間の参照がソフトウェアアーキテクチャにおいて許されている(なお、一つのモジュール内での参照関係は認められているものとする)。また、関数を示すノード間を結ぶ破線で示された有向エッジは、各関数の呼び出し関係を示すものである。即ち、有向エッジで示す方向の関数を呼び出している。また、関数を示すノード内の文字は、(モジュール名,関数)を示している。   In FIG. 17, as in FIG. 4, modules are indicated by nodes surrounded by rectangles, and functions belonging to each module are indicated by nodes surrounded by rounded rectangles. And the directed edge shown with the continuous line which connects between the nodes which show a module shows the relationship between the modules in which reference is permitted in software architecture. That is, the reference between the modules in the direction of the directed edge is permitted in the software architecture (note that the reference relationship within one module is allowed). In addition, the directed edge indicated by the broken line connecting the nodes indicating the function indicates the calling relationship of each function. That is, the function of the direction indicated by the directed edge is called. Further, the characters in the node indicating the function indicate (module name, function).

ここで、図17においては、モジュールCに属する関数h2のノード361が、モジュールBに属する関数g2のノード362に有向エッジが延びており、この参照関係が参照違反になっている。   Here, in FIG. 17, the directed edge of the node 361 of the function h2 belonging to the module C extends to the node 362 of the function g2 belonging to the module B, and this reference relationship is a reference violation.

この点、関連関数解析部323で第二の実施形態における処理と同様の処理により、ノード362をモジュールCに移譲しても、ノード362からノード363への呼び出しがあるため、参照違反となってしまう。   In this regard, even if the node 362 is transferred to the module C by the same processing as the processing in the second embodiment by the related function analysis unit 323, there is a call from the node 362 to the node 363. End up.

このような場合に、入力部130を介して情報提供装置300のオペレータからの指示に応じて、関連関数解析部323は、参照違反となっている関数を修正するための修正候補関数情報を提示する。   In such a case, in accordance with an instruction from the operator of the information providing apparatus 300 via the input unit 130, the related function analysis unit 323 presents correction candidate function information for correcting a function that is in violation of the reference. To do.

例えば、関連関数解析部323は、提示する修正候補関数情報は、プログラムの構成を下記の(1)〜(4)のように修正する修正案である。
(1)参照関係検査部122において参照違反と判断された参照関係における参照元のモジュールに関数を保持するための変数を設ける。
(2)参照関係検査部122において参照違反と判断された参照関係における参照元のモジュールに、関数を受け取って、受け取った関数を(1)で設けた変数に設定する新たな関数を設ける。
(3)参照関係検査部122において参照違反と判断された参照関係における参照元の関数を(1)で設けた変数を呼び出すように変更する。
(4)参照関係検査部122において参照違反と判断された参照関係における参照元のモジュールに対して参照が許可されているモジュールに、(2)で設けた新たな関数に対して参照違反と判断された参照関係における参照先の関数を(1)で設けた変数に設定する処理を行わせる新たな関数を設ける。
For example, the related function analysis unit 323 is a correction proposal that corrects the configuration of the program as shown in the following (1) to (4).
(1) A variable for holding the function is provided in the module of the reference source in the reference relationship determined as a reference violation by the reference relationship inspecting unit 122.
(2) A new function that receives the function and sets the received function in the variable provided in (1) is provided in the module of the reference source in the reference relationship determined to be a reference violation by the reference relationship checking unit 122.
(3) The reference source function in the reference relationship determined to be a reference violation by the reference relationship checking unit 122 is changed to call the variable provided in (1).
(4) It is determined that the reference function for the reference source module in the reference relationship determined as a reference violation by the reference relationship checking unit 122 is a reference violation for the new function provided in (2). A new function is provided for performing the process of setting the reference function in the reference relationship to the variable provided in (1).

なお、参照違反と判断された参照関係における参照元のモジュールに対して参照が許可されているモジュールについては、モデル蓄積領域111に記憶されているモデルテーブル111aにおいて参照先モジュール名が、参照違反と判断された参照関係における参照元のモジュールのモジュール名となっているものから、所定の法則に従って任意のものを選択すればよい。   For modules that are allowed to be referenced with respect to the reference source module in the reference relationship determined to be a reference violation, the reference module name in the model table 111a stored in the model storage area 111 is referred to as a reference violation. Any one of the module names of the reference source modules in the determined reference relationship may be selected according to a predetermined rule.

このような修正候補関数情報については、例えば、図17で示したような参照違反がある場合に、図18(関連関数解析部323で行う修正候補関数情報の生成処理を説明するための模式図)で示されているように、モジュールCに関数を保持するための変数364と、関数を受け取って、受け取った関数を変数364に設定する新たな関数h3を設ける(ノード365)。そして、モジュールCにおいて、参照違反と判断された参照関係における参照元の関数h2(ノード361)を変数364から呼び出しを行うように変更し、モジュールBには、モジュールCに設けた新たな関数h3(ノード365)に対して、参照違反と判断された参照関係における参照先の関数g2(ノード362)を、変数364に設定する処理を行わせる新たな関数g3(ノード366)を設けるようにする。   For such correction candidate function information, for example, when there is a reference violation as shown in FIG. 17, FIG. 18 (schematic diagram for explaining generation processing of correction candidate function information performed by the related function analysis unit 323) ), A variable 364 for holding the function in the module C and a new function h3 for receiving the function and setting the received function in the variable 364 are provided (node 365). Then, in module C, the function h2 (node 361) of the reference source in the reference relationship determined to be a reference violation is changed so as to be called from the variable 364, and the module B has a new function h3 provided in the module C. For (node 365), a new function g3 (node 366) that causes the variable 364 to be set to the function g2 (node 362) of the reference destination in the reference relationship determined to be a reference violation is provided. .

図19は、制御部120の関連関数解析部323による修正候補関数情報の生成処理を示すPADである。   FIG. 19 is a PAD showing processing for generating correction candidate function information by the related function analysis unit 323 of the control unit 120.

まず、ステップS50において、関連関数解析部323は、参照関係検査部122において参照違反であると特定された参照関係のうち、任意の参照関係を抽出し、変数Lに格納する。   First, in step S <b> 50, the related function analysis unit 323 extracts an arbitrary reference relationship among the reference relationships identified as a reference violation by the reference relationship checking unit 122 and stores the extracted reference relationship in the variable L.

ここで、参照関係Lの抽出は任意の方法でよいが、例えば、参照関係検査部122において参照違反であると特定された参照関係を出力部140において一覧表示し、そのなかから、入力部130を介して、情報提供装置100のオペレータが選択すればよい。   Here, the reference relationship L may be extracted by any method. For example, the reference relationship identified by the reference relationship inspecting unit 122 as being in violation of the reference is displayed as a list in the output unit 140, and the input unit 130 includes the reference relationship. The operator of the information providing apparatus 100 may make a selection via

次に、ステップS61において、関連関数解析部323は、次の(1)〜(4)からなる修正候補関数情報を生成する。
(1)参照関係Lの参照元要素である要素(C、h2)におけるモジュールCに関数を保持するための変数hhhを設ける。
(2)参照関係Lの参照元要素である要素(C、h2)におけるモジュールCに関数を受け取り、受け取った関数を変数hhhに設定する関数h3を設ける。
(3)参照関係Lの参照元要素である要素(C、h2)における関数h2を、参照関係Lの参照先要素である要素(B、g2)におけるモジュールBの関数g2の代わりにモジュールCに設けられた変数hhhを呼び出すように書き換える。
(4)参照関係Lの参照先要素である要素(B、g2)におけるモジュールBに、モジュールCの関数h3を使って、モジュールBの関数g2を変数hhhに設定する関数g3を設ける。
Next, in step S61, the related function analysis unit 323 generates correction candidate function information including the following (1) to (4).
(1) A variable hhh for holding a function is provided in the module C in the element (C, h2) which is a reference source element of the reference relationship L.
(2) A function h3 that receives a function in the module C in the element (C, h2) that is a reference source element of the reference relationship L and sets the received function in a variable hhh is provided.
(3) The function h2 in the element (C, h2) that is the reference source element of the reference relationship L is changed to the module C instead of the function g2 of the module B in the element (B, g2) that is the reference destination element of the reference relationship L. Rewrite to call the provided variable hhh.
(4) A function g3 for setting the function g2 of the module B to the variable hhh is provided in the module B in the element (B, g2) which is the reference destination element of the reference relationship L by using the function h3 of the module C.

なお、以上の処理においては、モジュールBからモジュールCへの参照が許可されているものとしているが、このような参照が許可されていない場合には、(4)で設ける関数g3をモジュールCへの参照が許可されている他のモジュールに設けることも可能である。   In the above processing, it is assumed that reference from module B to module C is permitted. However, when such reference is not permitted, function g3 provided in (4) is given to module C. It is also possible to provide it in other modules that are allowed to refer to.

また、(4)で設ける関数は、少なくとも(3)で書き換える関数を実行する前に実行されるようにする。   The function provided in (4) is executed at least before executing the function rewritten in (3).

なお、このようにして生成された修正候補関数情報は、出力部140を介して所定の表示形式で表示する。   The correction candidate function information generated in this way is displayed in a predetermined display format via the output unit 140.

また、図20は、プログラムがC言語である場合に、図19のステップS61において提示された修正候補関数情報に沿って修正したプログラムの一例を示す概略図である。   FIG. 20 is a schematic diagram showing an example of a program modified along the modification candidate function information presented in step S61 in FIG. 19 when the program is in C language.

例えば、図19のステップS61における(1)で設ける変数は、符号381に記載されており、(2)で設ける関数は、符号382に記載されており、(3)で書き換える関数は、符号383に記載されており、(4)で設ける関数は、符号384に記載されている。   For example, the variable provided in (1) in step S61 of FIG. 19 is described by reference numeral 381, the function provided in (2) is described by reference numeral 382, and the function rewritten in (3) is expressed by reference numeral 383. The function provided in (4) is described in reference numeral 384.

以上に記載した実施形態においては、モデル蓄積領域111に、ソフトウェアアーキテクチャにおいて参照が許されるモジュール間の関係を特定する情報が記憶されているが、このような態様に限定されず、例えば、ソフトウェアアーキテクチャにおいて参照が許されないモジュール間の関係を特定する情報を記憶するようにしてもよい。   In the embodiment described above, the model storage area 111 stores information for specifying the relationship between modules that are allowed to be referenced in the software architecture. However, the present invention is not limited to this mode. In this case, information for specifying the relationship between modules that are not allowed to be referenced may be stored.

第一の実施形態である情報提供装置の概略図。1 is a schematic diagram of an information providing apparatus according to a first embodiment. モデルテーブルの概略図。Schematic diagram of the model table. プログラムテーブル及びファイルの概略図。Schematic diagram of program table and file. 迂回候補関数情報の生成処理を説明するための模式図。The schematic diagram for demonstrating the production | generation process of detour candidate function information. 迂回候補関数情報の表示例を示す概略図。Schematic which shows the example of a display of detour candidate function information. 迂回候補関数情報の表示例を示す概略図。Schematic which shows the example of a display of detour candidate function information. 迂回候補関数情報の表示例を示す概略図。Schematic which shows the example of a display of detour candidate function information. コンピュータの概略図。Schematic diagram of a computer. 情報提供装置にプログラムを入力する処理を示すPAD。A PAD indicating a process of inputting a program to the information providing apparatus. 参照関係解析部による処理を示すPAD。PAD indicating processing by the reference relationship analysis unit. 参照関係検査部による処理を示すPAD。PAD indicating processing by the reference relationship inspection unit. 関連関数解析部による迂回候補関数情報の生成処理を示すPAD。A PAD showing a generation process of detour candidate function information by the related function analysis unit. 第二の実施形態である情報提供装置の概略図。Schematic of the information provision apparatus which is 2nd embodiment. 移譲候補関数情報の生成処理を説明するための模式図。The schematic diagram for demonstrating the generation process of transfer candidate function information. 関連関数解析部による移譲候補関数情報の生成処理を示すPAD。PAD showing generation processing of transfer candidate function information by the related function analysis unit. 第三の実施形態である情報提供装置の概略図。Schematic of the information provision apparatus which is 3rd embodiment. 修正候補関数情報の生成処理を説明するための模式図。The schematic diagram for demonstrating the production | generation process of correction candidate function information. 修正候補関数情報の生成処理を説明するための模式図。The schematic diagram for demonstrating the production | generation process of correction candidate function information. 関連関数解析部による修正候補関数情報の生成処理を示すPAD。PAD showing the generation process of correction candidate function information by the related function analysis unit. 修正したプログラムの一例を示す概略図。Schematic which shows an example of the corrected program.

符号の説明Explanation of symbols

100、200、300 情報提供装置
110 記憶部
111 モデル蓄積領域
112 プログラム蓄積領域
120 制御部
121 参照関係解析部
122 参照関係検査部
123、223、323 関連関数解析部
130 入力部
140 出力部
100, 200, 300 Information providing device 110 Storage unit 111 Model storage region 112 Program storage region 120 Control unit 121 Reference relationship analysis unit 122 Reference relationship check unit 123, 223, 323 Related function analysis unit 130 Input unit 140 Output unit

Claims (15)

アーキテクチャに関する情報を提供する情報提供装置であって、
前記アーキテクチャにおいて参照が許可されるモジュールの関係を特定するアーキテクチャモデル情報、プログラム、および、当該プログラムが属するモジュールを特定するプログラム情報、を記憶する記憶部と、
制御部と、
出力部と、を備え、
前記制御部は、
プログラムに含まれる第1関数が参照する第2関数が含まれるプログラムを前記記憶部から特定し、特定した前記プログラムが属するモジュールを前記プログラム情報から特定し、前記第1関数、当該第1関数が含まれるモジュールを特定する情報、当該第1関数が参照する第2関数、および、当該第2関数が属するモジュールを特定する情報、を有する参照関係からなる参照関係情報を生成する参照関係解析処理と、
前記第1関数が含まれるモジュールと前記第2関数が属するモジュールとの関係が、前記アーキテクチャモデル情報で特定される関係か否かを検査して、前記アーキテクチャにおいて参照が許可されない参照違反の参照関係を特定する参照関係検査処理と、
前記参照違反の参照関係を解消するために、前記第1関数又は前記第2関数の少なくとも何れか一方に関連する関数を特定する関数情報を前記参照関係情報から取得する関連関数解析処理と、
前記関数情報を予め定めた形式にして前記出力部から出力する出力処理と、
を行うこと、
を特徴とする情報提供装置。
An information providing device that provides information about an architecture,
A storage unit for storing architecture model information for identifying a relationship of modules permitted to be referenced in the architecture, a program, and program information for identifying a module to which the program belongs;
A control unit;
An output unit,
The controller is
A program including a second function referred to by a first function included in the program is specified from the storage unit, a module to which the specified program belongs is specified from the program information, and the first function and the first function are A reference relationship analysis process for generating reference relationship information including a reference relationship having information specifying a module included, a second function referred to by the first function, and information specifying a module to which the second function belongs; ,
Check whether the relationship between the module including the first function and the module to which the second function belongs is a relationship specified by the architecture model information, and the reference relationship of the reference violation that is not permitted in the architecture A reference relationship inspection process for identifying
In order to eliminate the reference relationship of the reference violation, a related function analysis process for acquiring function information specifying a function related to at least one of the first function or the second function from the reference relationship information;
An output process for outputting the function information from the output unit in a predetermined format;
To do the
An information providing apparatus characterized by the above.
請求項1に記載の情報提供装置であって、
前記関連関数解析処理は、
第L関数の属するモジュールに対して前記アーキテクチャモデル情報で特定される関係を満たすモジュールに属し、前記第L関数を参照する関数を第L+1関数として前記参照関係情報から抽出する処理を、Lに対して2から順に自然数を代入して新たな第L+1関数が抽出されなくなるまで繰り返すことで抽出した第L+1関数のうち、当該第L+1関数の属するモジュールと前記第1関数の属するモジュールとの間の関係が前記アーキテクチャモデル情報で特定される関係を満たすものを迂回候補関数情報として取得するものであること、
を特徴とする情報提供装置。
The information providing device according to claim 1,
The related function analysis process is:
A process of extracting a function that belongs to a module satisfying the relationship specified by the architecture model information with respect to a module to which the Lth function belongs and that refers to the Lth function as an L + 1th function from the reference relationship information The relationship between the module to which the L + 1 function belongs and the module to which the first function belongs among the L + 1 functions extracted by substituting natural numbers in order from 2 and repeating until no new L + 1 function is extracted. Is obtained as detour candidate function information satisfying the relationship specified in the architecture model information,
An information providing apparatus characterized by the above.
請求項1又は2に記載の情報提供装置であって、
前記間連関数解析処理は、
第M関数が参照する関数を第M+1関数として前記参照関係情報から抽出する処理を、Mに対して2から順に自然数を代入して新たな第M+1関数が抽出されなくなるまで繰り返し、前記第M+1関数を参照する関数の属するモジュールと前記第1関数の属するモジュールとの関係が、前記アーキテクチャモデル情報で特定される関係を満たすものである場合には、前記第M+1関数を移譲候補関数情報として取得するものであること、
を特徴とする情報提供装置。
The information providing device according to claim 1 or 2,
The interfunction analysis process is
The process of extracting the function referred to by the Mth function from the reference relationship information as the M + 1th function is repeated until a new M + 1 function is not extracted by substituting a natural number for M sequentially from 2 until the M + 1th function is extracted. If the relationship between the module to which the function that refers to and the module to which the first function belongs satisfy the relationship specified by the architecture model information, the M + 1th function is acquired as transfer candidate function information. Being a thing,
An information providing apparatus characterized by the above.
請求項1又は3に記載の情報提供装置であって、
前記関連関数解析処理は、
第N関数を参照する関数を第N+2関数として前記参照関係情報から抽出する処理を、Nに対して1から順に自然数を代入して新たな第N+2関数が抽出されなくなるまで繰り返し、前記第N+2関数が参照する関数の属するモジュールと前記第2関数の属するモジュールとの関係が、前記アーキテクチャモデル情報で特定される関数を満たすものである場合には、前記第N+2関数を移譲候補関数情報として取得するものであること、
を特徴とする情報提供装置。
The information providing device according to claim 1 or 3,
The related function analysis process is:
The process of extracting the function referring to the Nth function as the N + 2 function from the reference relation information is repeated until a new N + 2 function is not extracted by substituting a natural number sequentially from 1 to N, and the N + 2 function If the relationship between the module to which the function referred to and the module to which the second function belongs satisfy the function specified by the architecture model information, the N + 2 function is acquired as transfer candidate function information. Being a thing,
An information providing apparatus characterized by the above.
請求項1に記載の情報提供装置であって、
前記関連関数解析処理は、
第1関数の属するモジュールに関数を保持するための変数を設けること、
第1関数の属するモジュールに、関数を受け取って、受け取った関数を前記変数に設定する新たな関数を設けること、
第1関数を前記変数を呼び出すように変更すること、
前記第1関数の属するモジュールに対して前記アーキテクチャモデル情報で特定される関係を満たすモジュールに前記第2関数を前記変数に設定する処理を行わせる処理を行わせる新たな関数を設けること、
を特定する修正候補関数情報を生成する処理をさらに行うこと、
を特徴とする情報提供装置。
The information providing device according to claim 1,
The related function analysis process is:
Providing a variable for holding the function in the module to which the first function belongs;
Providing a new function for receiving the function in the module to which the first function belongs, and setting the received function as the variable;
Changing the first function to call the variable;
Providing a new function for causing the module satisfying the relationship specified by the architecture model information to the module to which the first function belongs to perform processing for setting the second function as the variable;
Further processing to generate correction candidate function information for identifying
An information providing apparatus characterized by the above.
コンピュータを、
前記アーキテクチャにおいて参照が許可されるモジュールの関係を特定するアーキテクチャモデル情報、プログラム、および、当該プログラムが属するモジュールを特定するプログラム情報、を記憶する記憶手段、
制御手段、
出力手段、として機能させるプログラムであって、
前記制御手段は、
プログラムに含まれる第1関数が参照する第2関数が含まれるプログラムを前記記憶部から特定し、特定した前記プログラムが属するモジュールを前記プログラム情報から特定し、前記第1関数、当該第1関数が含まれるモジュールを特定する情報、当該第1関数が参照する第2関数、および、当該第2関数が属するモジュールを特定する情報、を有する参照関係からなる参照関係情報を生成する参照関係解析処理と、
前記第1関数が含まれるモジュールと前記第2関数が属するモジュールとの関係が、前記アーキテクチャモデル情報で特定される関係か否かを検査して、前記アーキテクチャにおいて参照が許可されない参照違反の参照関係を特定する参照関係検査処理と、
前記参照違反の参照関係を解消するために、前記第1関数又は前記第2関数の少なくとも何れか一方に関連する関数を特定する関数情報を前記参照関係情報から取得する関連関数解析処理と、
前記関数情報を予め定めた形式にして前記出力部から出力する出力処理と、
を行うこと、
を特徴とするプログラム。
Computer
Storage means for storing architecture model information for identifying a relationship of modules permitted to be referenced in the architecture, a program, and program information for identifying a module to which the program belongs;
Control means,
A program that functions as an output means,
The control means includes
A program including a second function referred to by a first function included in the program is specified from the storage unit, a module to which the specified program belongs is specified from the program information, and the first function and the first function are A reference relationship analysis process for generating reference relationship information including a reference relationship having information specifying a module included, a second function referred to by the first function, and information specifying a module to which the second function belongs; ,
Check whether the relationship between the module including the first function and the module to which the second function belongs is a relationship specified by the architecture model information, and the reference relationship of the reference violation that is not permitted in the architecture A reference relationship inspection process for identifying
In order to eliminate the reference relationship of the reference violation, a related function analysis process for acquiring function information specifying a function related to at least one of the first function or the second function from the reference relationship information;
An output process for outputting the function information from the output unit in a predetermined format;
To do the
A program characterized by
請求項6に記載のプログラムであって、
前記関連関数解析処理は、
第L関数の属するモジュールに対して前記アーキテクチャモデル情報で特定される関係を満たすモジュールに属し、前記第L関数を参照する関数を第L+1関数として前記参照関係情報から抽出する処理を、Lに対して2から順に自然数を代入して新たな第L+1関数が抽出されなくなるまで繰り返すことで抽出した第L+1関数のうち、当該第L+1関数の属するモジュールと前記第1関数の属するモジュールとの間の関係が前記アーキテクチャモデル情報で特定される関係を満たすものを迂回候補関数情報として取得するものであること、
を特徴とするプログラム。
The program according to claim 6,
The related function analysis process is:
A process of extracting a function that belongs to a module satisfying the relationship specified by the architecture model information with respect to the module to which the Lth function belongs and that references the Lth function as the (L + 1) th function from the reference relationship information. The relationship between the module to which the L + 1 function belongs and the module to which the first function belongs among the L + 1 functions extracted by substituting natural numbers in order from 2 and repeating until no new L + 1 function is extracted. Is obtained as detour candidate function information satisfying the relationship specified by the architecture model information,
A program characterized by
請求項6又は7に記載のプログラムであって、
前記間連関数解析処理は、
第M関数が参照する関数を第M+1関数として前記参照関係情報から抽出する処理を、Mに対して2から順に自然数を代入して新たな第M+1関数が抽出されなくなるまで繰り返し、前記第M+1関数を参照する関数の属するモジュールと前記第1関数の属するモジュールとの関係が、前記アーキテクチャモデル情報で特定される関係を満たすものである場合には、前記第M+1関数を移譲候補関数情報として取得するものであること、
を特徴とするプログラム。
The program according to claim 6 or 7,
The interfunction analysis process is
The process of extracting the function referred to by the Mth function from the reference relationship information as the M + 1th function is repeated until a new M + 1 function is not extracted by substituting a natural number for M sequentially from 2 until the M + 1th function is extracted. If the relationship between the module to which the function that refers to and the module to which the first function belongs satisfy the relationship specified by the architecture model information, the M + 1th function is acquired as transfer candidate function information. Being a thing,
A program characterized by
請求項6又は8に記載のプログラムであって、
前記関連関数解析処理は、
第N関数を参照する関数を第N+2関数として前記参照関係情報から抽出する処理を、Nに対して1から順に自然数を代入して新たな第N+2関数が抽出されなくなるまで繰り返し、前記第N+2関数が参照する関数の属するモジュールと前記第2関数の属するモジュールとの関係が、前記アーキテクチャモデル情報で特定される関数を満たすものである場合には、前記第N+2関数を移譲候補関数情報として取得するものであること、
を特徴とするプログラム。
A program according to claim 6 or 8,
The related function analysis process is:
The process of extracting the function referring to the Nth function as the N + 2 function from the reference relation information is repeated until a new N + 2 function is not extracted by substituting a natural number sequentially from 1 to N, and the N + 2 function If the relationship between the module to which the function referred to and the module to which the second function belongs satisfy the function specified by the architecture model information, the N + 2 function is acquired as transfer candidate function information. Being a thing,
A program characterized by
請求項6に記載のプログラムであって、
前記関連関数解析処理は、
第1関数の属するモジュールに関数を保持するための変数を設けること、
第1関数の属するモジュールに、関数を受け取って、受け取った関数を前記変数に設定する新たな関数を設けること、
第1関数を前記変数を呼び出すように変更すること、
前記第1関数の属するモジュールに対して前記アーキテクチャモデル情報で特定される関係を満たすモジュールに前記第2関数を前記変数に設定する処理を行わせる処理を行わせる新たな関数を設けること、
を特定する修正候補関数情報を生成する処理をさらに行うこと、
を特徴とするプログラム。
The program according to claim 6,
The related function analysis process is:
Providing a variable for holding the function in the module to which the first function belongs;
Providing a new function for receiving the function in the module to which the first function belongs, and setting the received function as the variable;
Changing the first function to call the variable;
Providing a new function for causing the module satisfying the relationship specified by the architecture model information to the module to which the first function belongs to perform processing for setting the second function as the variable;
Further processing to generate correction candidate function information for identifying
A program characterized by
アーキテクチャにおいて参照が許可されるモジュールの関係を特定するアーキテクチャモデル情報、プログラム、および、当該プログラムが属するモジュールを特定するプログラム情報、を記憶する記憶部と、
制御部と、
出力部と、を備える情報提供装置においてアーキテクチャに関する情報を提供する情報提供方法であって、
前記制御部が、プログラムに含まれる第1関数が参照する第2関数が含まれるプログラムを前記記憶部から特定し、特定した前記プログラムが属するモジュールを前記プログラム情報から特定し、前記第1関数、当該第1関数が含まれるモジュールを特定する情報、当該第1関数が参照する第2関数、および、当該第2関数が属するモジュールを特定する情報、を有する参照関係からなる参照関係情報を生成する参照関係解析過程と、
前記制御部が、前記第1関数が含まれるモジュールと前記第2関数が属するモジュールとの関係が、前記アーキテクチャモデル情報で特定される関係か否かを検査して、前記アーキテクチャにおいて参照が許可されない参照違反の参照関係を特定する参照関係検査過程と、
前記制御部が、前記参照違反の参照関係を解消するために、前記第1関数又は前記第2関数の少なくとも何れか一方に関連する関数を特定する関数情報を前記参照関係情報から取得する関連関数解析過程と、
前記制御部が、前記関数情報を予め定めた形式にして前記出力部から出力する出力過程と、
を備えること、
を特徴とする情報提供方法。
A storage unit that stores architecture model information for identifying a relationship of modules permitted to be referenced in the architecture, a program, and program information for identifying a module to which the program belongs;
A control unit;
An information providing method for providing information about an architecture in an information providing apparatus comprising: an output unit;
The control unit specifies a program including a second function referred to by a first function included in the program from the storage unit, specifies a module to which the specified program belongs from the program information, the first function, Generates reference relationship information including a reference relationship including information specifying a module including the first function, a second function referred to by the first function, and information specifying a module to which the second function belongs. Reference relationship analysis process;
The control unit checks whether the relationship between the module including the first function and the module to which the second function belongs is a relationship specified by the architecture model information, and the reference is not permitted in the architecture. A reference relationship checking process for identifying reference relationships of reference violations;
The control unit obtains from the reference relation information function information for specifying a function related to at least one of the first function and the second function in order to eliminate the reference relation of the reference violation. Analysis process,
An output process in which the control unit outputs the function information in a predetermined format from the output unit;
Providing
An information providing method characterized by the above.
請求項11に記載の情報提供方法であって、
前記関連関数解析過程は、
第L関数の属するモジュールに対して前記アーキテクチャモデル情報で特定される関係を満たすモジュールに属し、前記第L関数を参照する関数を第L+1関数として前記参照関係情報から抽出する処理を、Lに対して2から順に自然数を代入して新たな第L+1関数が抽出されなくなるまで繰り返すことで抽出した第L+1関数のうち、当該第L+1関数の属するモジュールと前記第1関数の属するモジュールとの間の関係が前記アーキテクチャモデル情報で特定される関係を満たすものを迂回候補関数情報として取得するものであること、
を特徴とする情報提供方法。
The information providing method according to claim 11, comprising:
The related function analysis process includes:
A process of extracting a function that belongs to a module satisfying the relationship specified by the architecture model information with respect to the module to which the Lth function belongs and that references the Lth function as the (L + 1) th function from the reference relationship information. The relationship between the module to which the L + 1 function belongs and the module to which the first function belongs among the L + 1 functions extracted by substituting natural numbers in order from 2 and repeating until no new L + 1 function is extracted. Is obtained as detour candidate function information satisfying the relationship specified by the architecture model information,
An information providing method characterized by the above.
請求項11又は12に記載の情報提供方法であって、
前記間連関数解析処理は、
第M関数が参照する関数を第M+1関数として前記参照関係情報から抽出する処理を、Mに対して2から順に自然数を代入して新たな第M+1関数が抽出されなくなるまで繰り返し、前記第M+1関数を参照する関数の属するモジュールと前記第1関数の属するモジュールとの関係が、前記アーキテクチャモデル情報で特定される関係を満たすものである場合には、前記第M+1関数を移譲候補関数情報として取得するものであること、
を特徴とする情報提供方法。
An information providing method according to claim 11 or 12,
The interfunction analysis process is
The process of extracting the function referred to by the Mth function from the reference relationship information as the M + 1th function is repeated until a new M + 1 function is not extracted by substituting a natural number for M sequentially from 2 until the M + 1th function is extracted. If the relationship between the module to which the function that refers to and the module to which the first function belongs satisfy the relationship specified by the architecture model information, the M + 1th function is acquired as transfer candidate function information. Being a thing,
An information providing method characterized by the above.
請求項11又は13に記載の情報提供方法であって、
前記関連関数解析処理は、
第N関数を参照する関数を第N+2関数として前記参照関係情報から抽出する処理を、Nに対して1から順に自然数を代入して新たな第N+2関数が抽出されなくなるまで繰り返し、前記第N+2関数が参照する関数の属するモジュールと前記第2関数の属するモジュールとの関係が、前記アーキテクチャモデル情報で特定される関数を満たすものである場合には、前記第N+2関数を移譲候補関数情報として取得するものであること、
を特徴とする情報提供方法。
The information providing method according to claim 11 or 13,
The related function analysis process is:
The process of extracting the function referring to the Nth function as the N + 2 function from the reference relation information is repeated until a new N + 2 function is not extracted by substituting a natural number sequentially from 1 to N, and the N + 2 function If the relationship between the module to which the function referred to and the module to which the second function belongs satisfy the function specified by the architecture model information, the N + 2 function is acquired as transfer candidate function information. Being a thing,
An information providing method characterized by the above.
請求項11に記載の情報提供方法であって、
前記関連関数解析処理は、
第1関数の属するモジュールに関数を保持するための変数を設けること、
第1関数の属するモジュールに、関数を受け取って、受け取った関数を前記変数に設定する新たな関数を設けること、
第1関数を前記変数を呼び出すように変更すること、
前記第1関数の属するモジュールに対して前記アーキテクチャモデル情報で特定される関係を満たすモジュールに前記第2関数を前記変数に設定する処理を行わせる処理を行わせる新たな関数を設けること、
を特定する修正候補関数情報を生成する処理をさらに行うこと、
を特徴とする情報提供方法。
The information providing method according to claim 11, comprising:
The related function analysis process is:
Providing a variable for holding the function in the module to which the first function belongs;
Providing a new function for receiving the function in the module to which the first function belongs, and setting the received function as the variable;
Changing the first function to call the variable;
Providing a new function for causing the module satisfying the relationship specified by the architecture model information to the module to which the first function belongs to perform processing for setting the second function as the variable;
Further processing to generate correction candidate function information for identifying
An information providing method characterized by the above.
JP2006286346A 2006-10-20 2006-10-20 Information providing device, program and information providing method Pending JP2008102831A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006286346A JP2008102831A (en) 2006-10-20 2006-10-20 Information providing device, program and information providing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006286346A JP2008102831A (en) 2006-10-20 2006-10-20 Information providing device, program and information providing method

Publications (1)

Publication Number Publication Date
JP2008102831A true JP2008102831A (en) 2008-05-01

Family

ID=39437098

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006286346A Pending JP2008102831A (en) 2006-10-20 2006-10-20 Information providing device, program and information providing method

Country Status (1)

Country Link
JP (1) JP2008102831A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012033017A (en) * 2010-07-30 2012-02-16 Fujitsu Marketing Ltd Rule inspection device, rule inspection method and rule inspection program
JP2014059775A (en) * 2012-09-18 2014-04-03 Fuji Electric Co Ltd Program structure evaluation system and program
JP2015088191A (en) * 2013-10-31 2015-05-07 タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited System and method to facilitate user interface enabled review of static analysis warnings
JP6077115B2 (en) * 2013-06-27 2017-02-08 株式会社日立製作所 Control device and software rewriting system using the same
JP7370264B2 (en) 2020-01-30 2023-10-27 三菱電機株式会社 Traceability management device, traceability management method, and traceability management program

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012033017A (en) * 2010-07-30 2012-02-16 Fujitsu Marketing Ltd Rule inspection device, rule inspection method and rule inspection program
JP2014059775A (en) * 2012-09-18 2014-04-03 Fuji Electric Co Ltd Program structure evaluation system and program
JP6077115B2 (en) * 2013-06-27 2017-02-08 株式会社日立製作所 Control device and software rewriting system using the same
JP2015088191A (en) * 2013-10-31 2015-05-07 タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited System and method to facilitate user interface enabled review of static analysis warnings
JP7370264B2 (en) 2020-01-30 2023-10-27 三菱電機株式会社 Traceability management device, traceability management method, and traceability management program

Similar Documents

Publication Publication Date Title
JP2008102831A (en) Information providing device, program and information providing method
JP2007122135A (en) Development support device, development support method and development support program
JP5941859B2 (en) Verification device, verification method, and program
CN104797993A (en) System-building assistance device
JP2009048259A (en) Program conversion method and program for conversion
JP6451417B2 (en) Debug support device, debug support system, debug support method, and debug support program
JP5041990B2 (en) Software component extraction support device
JP5758311B2 (en) Test code generation device, test code generation method, test code generation program
JP4977681B2 (en) Data pattern / test data generation / storage method and system
JP6665576B2 (en) Support device, support method, and program
JP2009223843A (en) Device and method for automatically generating source code of computer program
JP6369177B2 (en) Development support program, development support method, and development support apparatus
JP2009211143A (en) Information processor and information processing program
JP2005251127A (en) Pattern system construction device and pattern application device
WO2011145363A1 (en) Software specification proof support device and proof support method
JP5971193B2 (en) Software development support apparatus, development support method and program
JP4797378B2 (en) Data processing program automatic generation system, data processing program automatic generation method, and data processing program automatic generation program
Gomes et al. Mining Reuse Processes.
JP2006099349A (en) Jsp test system and jsp test program
JP2010040016A (en) Screen transition design support device and program
JP2016151973A (en) Management control system, development support device therefor, and management device
JP2012208939A (en) Process setting support processing program and task program generation processing program
JP2009258814A (en) Process setting support processing program and business program generation processing program
JP5181947B2 (en) Embedded software development support system, support method and program
JP2011164772A (en) Document processing program and document processing apparatus