JP7085938B2 - Change impact analyzer - Google Patents
Change impact analyzer Download PDFInfo
- Publication number
- JP7085938B2 JP7085938B2 JP2018147082A JP2018147082A JP7085938B2 JP 7085938 B2 JP7085938 B2 JP 7085938B2 JP 2018147082 A JP2018147082 A JP 2018147082A JP 2018147082 A JP2018147082 A JP 2018147082A JP 7085938 B2 JP7085938 B2 JP 7085938B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- source code
- information
- unit
- changed
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明は、特定の機能の変更がソフトウェア全体に及ぼす影響を分析する、変更影響分析装置に関する。 The present invention relates to a change impact analyzer that analyzes the effect of a specific functional change on the entire software.
特許文献1は、ソフトウェアの仕様を構成するいずれかの仕様要素に変更がある場合に、その変更により影響を受ける他の仕様要素、関数、および変更影響優先度を抽出する変更影響分析装置を開示している。変更影響分析装置が変更により影響を受ける他の仕様要素、関数、および変更影響優先度を抽出するので、ユーザは、効率的にソフトウェアを変更することができる。
特許文献1の変更影響分析装置は、「変更対象の関数が他の関数により参照される回数」に基づいて変更影響優先度を算出する。しかしながら、変更影響優先度は、変更対象の関数と関連する関数を包括的に考慮していない。具体的に言うと、「変更対象の関数が他の関数を参照する回数」、「変更対象の関数と直接的な参照関係にある他の関数を参照する回数」、および「変更対象の関数と直接的な参照関係にある関数が他の関数に参照される回数」を考慮していない。また、特許文献1の変更影響分析装置は、変更対象の機能と、当該機能を実現するプロセスおよび関数とを対応付けて表示しない。これらのことを考慮していないことにより、ユーザは、特定の機能の変更がソフトウェア全体に及ぼす影響を適切に把握することができない場合がある。
The change effect analyzer of
本発明は、特定の機能の変更がソフトウェア全体に及ぼす影響の度合いを適切に分析して表示する、変更影響分析装置を提供する。 The present invention provides a change impact analyzer that appropriately analyzes and displays the degree of influence that a change of a specific function has on the entire software.
本発明の一態様による変更影響分析装置は、ソースコードを分析して、変更対象の機能が、ソースコードに基づくソフトウェア全体に与える影響を示す、ソフトウェア影響情報を出力する装置である。変更影響分析装置は、制御部を備える。制御部は、第1ソースコードリバース部と、第2ソースコードリバース部と、マッピング部と、関数指定部と、変更影響分析部とを備える。第1ソースコードリバース部は、ソースコードから、ソースコードに含まれる各関数が記述されるオブジェクトリストを生成する。第2ソースコードリバース部は、オブジェクトリストから、各関数により実現される各プロセスの入力、処理、および出力が記述されるプロセス仕様書を生成する。マッピング部は、プロセス仕様書および各プロセスにより実現される各機能が定義される、機能の依存関係情報から、変更対象の機能を実現する変更対象のプロセスの処理が記述される機能仕様書を生成する。関数指定部は、ソースコードから、変更対象の関数から影響を受ける他の関数が記述される被影響関数情報を生成する。変更影響分析部は、機能仕様書および被影響関数情報から、ソフトウェア影響情報を生成して出力する。 The change effect analysis device according to one aspect of the present invention is a device that analyzes the source code and outputs software effect information showing the effect of the function to be changed on the entire software based on the source code. The change impact analyzer includes a control unit. The control unit includes a first source code reverse unit, a second source code reverse unit, a mapping unit, a function designation unit, and a change effect analysis unit. The first source code reverse unit generates an object list in which each function included in the source code is described from the source code. The second source code reverse part generates a process specification that describes the input, processing, and output of each process realized by each function from the object list. The mapping part generates a functional specification that describes the processing of the process to be changed that realizes the function to be changed from the process specification and the dependency information of the function that defines each function realized by each process. do. The function specification unit generates affected function information in which other functions affected by the function to be changed are described from the source code. The change impact analysis unit generates and outputs software impact information from the functional specifications and the affected function information.
ソフトウェア影響情報を参照することによって、ユーザは、特定の機能の変更がソフトウェア全体に及ぼす影響を適切に把握することができる。このことにより、ユーザは、当該影響を考慮した上で効率よくソフトウェアの流用開発を行うことができる。 By referring to the software impact information, the user can better understand the impact of a particular functional change on the software as a whole. As a result, the user can efficiently divert and develop the software in consideration of the influence.
以下で説明する複数の実施形態およびその変形例は、それぞれ、特徴的構成を有する。ある形態における特徴的構成または動作は、他の形態においても適用可能であり、また、本発明は、以下に例示する形態に限定されるものではない。 Each of the plurality of embodiments and variations thereof described below has a characteristic configuration. The characteristic configuration or behavior in one form is also applicable in other forms, and the invention is not limited to the forms exemplified below.
実施の形態1.
1.構成
図1は、実施の形態1に係る、変更影響分析装置10の構成を示すブロック図である。変更影響分析装置10は、変更対象の関数を含むソースコード等を読み込んで、当該関数の変更がソフトウェア全体に及ぼす影響の度合い(以下、変更影響度と称する)を算出する装置である。変更影響分析装置10は、プロセッサ20と、記憶部30と、表示部40と、操作部50と、を備える。プロセッサ20は、制御部の一例である。
1. 1. Configuration Figure 1 is a block diagram showing the configuration of the change
プロセッサ20は、中央演算処理装置(CPU)、MPU、DSP、マイコン、FPGA、ASIC等で実現できる。プロセッサ20は、OS、アプリケーションプログラム、種々のデータを読み込んで演算処理を実行することにより、種々の機能を実現する。プロセッサ20は、機能的構成として、第1ソースコードリバース部21と、第2ソースコードリバース部22と、マッピング部23と、関数指定部24と、変更影響分析部25とを備える。
The
記憶部30は、フラッシュメモリ、SSD(Solid State Device)、ハードディスク等で構成される。記憶部30は変更影響分析装置10の各種機能を実現するために必要なプログラムおよびデータを記憶する。
The
表示部40は、ユーザによる操作に基づいて、後述する文字列や画像を表示する。表示部40は、液晶ディスプレイ、有機ELディスプレイなどで構成される。
The
操作部50は、キーボード、マウスなどで構成される。ユーザは操作部50を介して、変更影響分析装置10を操作する。
The
2.動作
以上のように構成される変更影響分析装置10の動作について、図1~33を参照して説明する。
2. 2. Operation The operation of the
図1において、第1ソースコードリバース部21、第2ソースコードリバース部22、およびマッピング部23は、分析対象であるソースコード60および機能の依存関係情報63を入力して、それに基づき機能仕様書64を生成する。一方で、関数指定部24は、ソースコード60を入力して、それに基づき被影響関数情報65を生成する。その後、変更影響分析部25は、機能仕様書64および被影響関数情報65を入力して、それに基づき機能に対する変更影響度情報66を生成する。機能に対する変更影響度情報66は、ソフトウェア影響情報の一例である。
In FIG. 1, the first source
図2は、第1ソースコードリバース部21、第2ソースコードリバース部22、およびマッピング部23に対する、データの入出力を示す図である。第1ソースコードリバース部21は、分析の対象であるソースコード60を入力して、それに基づきリバースエンジニアリングの技術を用いてリバースして、オブジェクトリスト61を生成して記憶部30に記憶する。
FIG. 2 is a diagram showing data input / output to the first source code
ソースコード60は、変更対象の関数を含む。ソースコード60はC言語で記述される。ソースコード60は、所定の書式に基づく日本語記述によるコメントを含む。ソースコード60は、ユーザによって事前に作成されて記憶部30に記憶されている。
The
オブジェクトリスト61は、ソースコード60に含まれる変数名、関数名等の識別子(以下、「ラベル」と称する。)と、それらの日本語記述とを含む。変更影響分析装置10は、オブジェクトリスト61を用いて、当該ラベルとそれらの日本語記述とを対応付けて管理する。
The
次に、第2ソースコードリバース部22は、ソースコード60およびオブジェクトリスト61を入力して、それに基づきプロセス仕様書62を生成して記憶部30に記憶する。
Next, the second source
プロセス仕様書62は、ソースコード60に含まれる各関数のプロセス、すなわち入力、処理、および出力の流れを表すデータである。プロセス仕様書62は、入力欄、処理欄、出力欄の3つの欄を含む。プロセス仕様書62は、人が理解できる言語、本例では日本語で記述される。
The
次に、マッピング部23は、プロセス仕様書62および機能の依存関係情報63を入力して、それに基づき機能仕様書64を生成して記憶部30に記憶する。
Next, the
機能の依存関係情報63は、ソースコード60に含まれる関数により実現される機能の名称と、当該機能に含まれる機能ブロックとを対応付けた一覧形式のデータである。機能の依存関係情報63は、ユーザによって事前に作成されて記憶部30に記憶されている。
The
機能仕様書64は、変更対象の機能の名称および当該機能を実現する処理が記述されたデータである。変更対象の機能は、変更対象の関数を含んで実現される。
The
図3は、関数指定部24に対する、データの入出力を示す図である。関数指定部24は、ソースコード60を入力して、それに基づき被影響関数情報65を生成して記憶部30に記憶する。
FIG. 3 is a diagram showing data input / output to the
被影響関数情報65は、変更対象の関数を変更することによって、影響を受ける関数が一覧形式で記述されたデータである。
The
図4は、変更影響分析部25に対する、データの入出力を示す図である。変更影響分析部25は、機能仕様書64および被影響関数情報65を入力して、それに基づき機能に対する変更影響度情報66を生成して記憶部30に記憶する。
FIG. 4 is a diagram showing data input / output to the change
機能に対する変更影響度情報66は、変更影響度が記述されたデータである。変更影響度は、被影響関数情報65に記述された関数の数と等しい。
The change
2-1.第1ソースコードリバース部の動作
図2に示すように、第1ソースコードリバース部21は、ソースコード60を入力して、それに基づきオブジェクトリスト61を生成して記憶部30に記憶する。図5,6は、第1ソースコードリバース部21の動作を示すフローチャートである。図7は、ユーザにより事前に作成される、ソースコード60の一例を示す図である。図8は、第1ソースコードリバース部21により、図7に示すようなソースコード60aから生成されたオブジェクトリスト61aを示す図である。
2-1. Operation of the First Source Code Reverse Unit As shown in FIG. 2, the first source code
以下、図5,6を用いて、第1ソースコードリバース部21の動作を説明する。
Hereinafter, the operation of the first source code
図5において、最初に、第1ソースコードリバース部21は、記憶部30からソースコード60を読み込む(S401)。例えば、第1ソースコードリバース部21は、図7のソースコード60aを読み込む。
In FIG. 5, first, the first source code
その後、第1ソースコードリバース部21は、ソースコード60の、ファイル名の日本語記述を、オブジェクトリスト61のファイル名欄に入力する(S402)。図7の例では、第1ソースコードリバース部21は、ソースコード60aのファイル名の日本語記述「ソースコード1」を、図8のようにオブジェクトリスト61aのファイル名欄に入力する。
After that, the first source code
その後、第1ソースコードリバース部21は、ソースコード60の、拡張子を除いたファイル名を、オブジェクトリスト61のファイル名のラベル欄に入力する(S403)。図7の例では、第1ソースコードリバース部21は、ソースコード60aのファイル名「sourcecode1.c」から、拡張子「.c」を除いた「sourcecode1」を、図8のようにオブジェクトリスト61aのファイル名のラベル欄に入力する。
After that, the first source code
その後、第1ソースコードリバース部21は、ソースコード60に含まれる関数についての情報を、オブジェクトリスト61に入力する(S404~S407)。
After that, the first source code
具体的には、第1ソースコードリバース部21は、変数mに1を入力する(S404)。
Specifically, the first source code
第1ソースコードリバース部21は、ソースコード60にm番目の関数が含まれていると判断した場合(S405にてYes)、m番目の関数に関する情報をオブジェクトリスト61に入力する(S406)。図7の例では、m=1のときに、第1ソースコードリバース部21は、ソースコード60aに含まれる1番目の関数xxxxxに関する情報を、図8のようにオブジェクトリスト61aに入力する。この処理の詳細は後述する。
When the first source code
その後、第1ソースコードリバース部21は、変数mに1を加算する(S407)。
After that, the first source code
一方、第1ソースコードリバース部21は、ソースコード60にm番目の関数が含まれていないと判断した場合(S405にてNo)、本処理を終了する。図7の例では、m=2のときに、第1ソースコードリバース部21は、ソースコード60aに2番目の関数が含まれていないと判断して、本処理を終了する。
On the other hand, when the first source code
図6は、図5のm番目の関数に関するオブジェクトをオブジェクトリスト61に入力する処理(S406)の詳細を示すフローチャートである。
FIG. 6 is a flowchart showing the details of the process (S406) of inputting the object related to the m-th function of FIG. 5 into the
最初に、第1ソースコードリバース部21は、ソースコード60の、m番目の関数の関数名の日本語記述を、オブジェクトリスト61の関数欄に入力する(S408)。図7の例では、m=1のときに、ソースコード60aの1番目の関数の関数名の日本語記述「xxxxx機能」を、図8のようにオブジェクトリスト61aの関数欄に入力する。
First, the first source code
その後、第1ソースコードリバース部21は、ソースコード60の、m番目の関数の関数名を、オブジェクトリスト61の関数のラベル欄に入力する(S409)。図7の例では、m=1のときに、ソースコード60aの1番目の関数の関数名「xxxxx」を、図8のようにオブジェクトリスト61aの関数のラベル欄に入力する。
After that, the first source code
その後、第1ソースコードリバース部21は、ソースコード60の、m番目の関数の入力変数の日本語記述を、オブジェクトリスト61の入力欄に入力する(S410)。図7の例では、m=1のときに、ソースコード60aの1番目の関数の入力変数の日本語記述「外気温度」および「運転モード」を、図8のようにオブジェクトリスト61aの入力欄に入力する。
After that, the first source code
その後、第1ソースコードリバース部21は、ソースコード60の、m番目の関数の入力変数名を、オブジェクトリスト61の入力のラベル欄に入力する(S411)。図7の例では、m=1のときに、ソースコード60aの1番目の関数の入力変数名「outdoor_temp」および「drive_mode」を、図8のようにオブジェクトリスト61aの入力のラベル欄に入力する。
After that, the first source code
その後、第1ソースコードリバース部21は、ソースコード60の、m番目の関数の入力変数への入力値の日本語記述を、オブジェクトリスト61の入力属性欄に入力する(S412)。図7の例では、m=1のときに、ソースコード60aの1番目の関数の入力変数「outdoor_temp」への入力値の日本語記述「10℃」と、入力変数「drive_mode」への入力値の日本語記述「冷房」とを、図8のようにオブジェクトリスト61の入力属性欄にそれぞれ入力する。
After that, the first source code
その後、第1ソースコードリバース部21は、ソースコード60の、m番目の関数の入力変数への入力値を、オブジェクトリスト61の入力属性のラベル欄に入力する(S413)。図7の例では、m=1のときに、ソースコード60aの1番目の関数の入力変数「outdoor_temp」への入力値「10」と、入力変数「drive_mode」への入力値「cool」とを、図8のようにオブジェクトリスト61の入力属性のラベル欄にそれぞれ入力する。
After that, the first source code
その後、第1ソースコードリバース部21は、ソースコード60の、m番目の関数の出力変数名の日本語記述を、オブジェクトリスト61の出力欄に入力する(S414)。図7の例では、m=1のときに、ソースコード60aの1番目の関数の出力変数名の日本語記述「計測状態」を、図8のようにオブジェクトリスト61aの出力欄に入力する。
After that, the first source code
その後、第1ソースコードリバース部21は、ソースコード60の、m番目の関数の出力変数名を、オブジェクトリスト61の出力のラベル欄に入力する(S415)。図7の例では、m=1のときに、ソースコード60aの1番目の関数の出力変数名「measured_st」を、図8のようにオブジェクトリスト61aの出力のラベル欄に入力する。
After that, the first source code
その後、第1ソースコードリバース部21は、ソースコード60の、m番目の関数の出力変数への代入文字列の日本語記述を、オブジェクトリスト61の出力属性欄に入力する(S416)。図7の例では、m=1のときに、ソースコード60aの1番目の関数の出力変数「measured_st」への代入文字列の日本語記述「開始」を、図8のようにオブジェクトリスト61aの出力属性欄に入力する。
After that, the first source code
その後、第1ソースコードリバース部21は、ソースコード60の、m番目の関数の出力変数への代入文字列を、オブジェクトリスト61の出力属性のラベル欄に入力する(S417)。図7の例では、m=1のときに、ソースコード60aの1番目の関数の出力変数「measured_st」への代入文字列「START」を、図8のようにオブジェクトリスト61aの出力属性のラベル欄に入力する。以上のようにして、ソースコード60からオブジェクトリスト61が生成されて記憶部30に記憶される。
After that, the first source code
2-2.第2ソースコードリバース部の動作
図2に示すように、第2ソースコードリバース部22は、ソースコード60およびオブジェクトリスト61を入力して、それに基づきプロセス仕様書62を生成して記憶部30に記憶する。図9は、第2ソースコードリバース部22の動作を示すフローチャートである。図10,11は、第2ソースコードリバース部22により、プロセス仕様書62が生成される過程を説明するための図である。なお、図10は、説明の便宜上、第2ソースコードリバース部22による処理の過程で生成される、中間的な状態にあるプロセス仕様書62を概念的に説明した図である。図10に示す情報は、記憶部30に記憶される。最終的には、第2ソースコードリバース部22は、プロセス仕様書62として、図11(A),(B)に示す情報を出力する。
2-2. Operation of the Second Source Code Reverse Section As shown in FIG. 2, the second source
以下、図9のフローチャートに即して、第2ソースコードリバース部22の動作を説明する。
Hereinafter, the operation of the second source code
図9において、最初に、第2ソースコードリバース部22は、ソースコード60およびオブジェクトリスト61を記憶部30から読み込む(S601)。例えば、第2ソースコードリバース部22は、図7のソースコード60aおよび図8のオブジェクトリスト61aを読み込む。
In FIG. 9, first, the second source code
その後、第2ソースコードリバース部22は、オブジェクトリスト61の関数欄の各文字列に対応するプロセス仕様書62を生成して記憶部30に記憶する(S602)。図7,8の例では、関数欄の文字列は「xxxxx機能」のみであるので、「xxxxx機能」に対応するプロセス仕様書のみを生成する。
After that, the second source code
その後、第2ソースコードリバース部22は、オブジェクトリスト61の関数欄の各文字列を、対応するプロセス仕様書62の最上欄に入力する(S603)。図7,8の例では、オブジェクトリスト61aの関数欄の文字列「xxxxx機能」を、図10(A)のようにプロセス仕様書62a1の最上欄に入力する。
After that, the second source code
その後、第2ソースコードリバース部22は、オブジェクトリスト61の入力欄の各文字列を、対応するプロセス仕様書62の入力欄に入力する(S604)。図7,8の例では、オブジェクトリスト61aの入力欄の文字列「外気温度」および「運転モード」を、図10(A)のようにプロセス仕様書62a1の入力欄に入力する。
After that, the second source code
その後、第2ソースコードリバース部22は、オブジェクトリスト61の出力欄の各文字列を、対応するプロセス仕様書62の出力欄に入力する(S605)。図7,8の例では、オブジェクトリスト61aの出力欄の文字列「計測状態」を、図10(A)のようにプロセス仕様書62a1の出力欄に入力する。
After that, the second source code
その後、第2ソースコードリバース部22は、ソースコード60に含まれる条件文についての情報を、対応するプロセス仕様書62に入力する(S606、S607、S609~S613)。
After that, the second source code
具体的には、第2ソースコードリバース部22は、変数nに1を入力する(S606)。
Specifically, the second source code
第2ソースコードリバース部22は、ソースコード60にn番目の条件文が含まれていると判断した場合(S607にてYes)、n番目の条件文を、対応するプロセス仕様書62の処理欄に入力する(S609)。図7,8の例では、n=1のときに、ソースコード60aの1番目の条件文「(outdoor_temp>10)&&(drive_mode==cool)」を、図10(A)のようにプロセス仕様書62a1の処理欄に入力する。
When the second source code
その後、第2ソースコードリバース部22は、プロセス仕様書62の処理欄の文字列を日本語記述に変換する(S610)。図7,8の例では、n=1のときに、図10(A)のプロセス仕様書62a1の処理欄の「(outdoor_temp>10)&&(drive_mode==cool)」を、図10(B)のプロセス仕様書62a2のように日本語記述「(外気温度>10℃)and(運転モード=冷房)」に変換する。
After that, the second source code
このとき、「outdoor_temp」および「drive_mode」は、オブジェクトリスト61aの入力のラベル欄と入力欄との対応関係に基づいて、それぞれ「外気温度>10℃」および「運転モード」に変換される。「10」および「cool」は、オブジェクトリスト61aの入力属性のラベル欄と入力属性欄との対応関係に基づいて、それぞれ「10℃」および「冷房」に変換される。第2ソースコードリバース部22は、「&&」が「and」と対応する旨の変換規則情報を備えており、「&&」は、当該変換規則情報に基づいて「and」に変換される。
At this time, "outdoor_temp" and "drive_mode" are converted into "outside air temperature> 10 ° C." and "operation mode", respectively, based on the correspondence between the input label field and the input field of the object list 61a. "10" and "cool" are converted into "10 ° C." and "cooling", respectively, based on the correspondence between the input attribute label column and the input attribute column of the
さらに、プロセス仕様書62a2の「(外気温度>10℃)」は、図10(C)のプロセス仕様書62a3ように「(1)」に変換され、2行目に「(1)外気温度>10℃」と入力される。プロセス仕様書62a2の「(運転モード=冷房)」は、プロセス仕様書62a3のように「(2)」に変換され、3行目に「運転モード=冷房」と入力される。 Further, "(outside air temperature> 10 ° C.)" in the process specification 62a2 is converted into "(1)" as in the process specification 62a3 in FIG. 10 (C), and "(1) outside air temperature>" in the second line. 10 ° C. ”is input. “(Operation mode = cooling)” in the process specification 62a2 is converted into “(2)” as in the process specification 62a3, and “operation mode = cooling” is input in the third line.
その後、第2ソースコードリバース部22は、ソースコード60の、n番目の条件文が含む処理文を、対応するプロセス仕様書62の処理欄に入力する(S611)。図7,8の例では、n=1のときに、ソースコード60aの1番目の条件文に対応する処理文「measured_st=START;」を、図10(D)のプロセス仕様書62a4のように処理欄に入力する。
After that, the second source code
その後、第2ソースコードリバース部22は、プロセス仕様書62の処理欄の文字列を日本語記述に変換する(S612)。図7,8の例では、n=1のときに、プロセス仕様書62a4の処理欄の文字列「measured_st=START;」を、図11(A)のプロセス仕様書62a5ように日本語記述「・計測状態←開始」に変換する。
After that, the second source code
このとき、第2ソースコードリバース部22は、「measured_st=START;」を操作の記述であると判断して、文頭に操作の記述であることを示す記号「・」を入力する。「measured_st」は、オブジェクトリスト61aの出力欄と出力のラベル欄との対応関係に基づいて「計測状態」に変換される。「START」は、オブジェクトリスト61aの出力属性欄と出力属性のラベル欄との対応関係に基づいて「開始」に変換される。第2ソースコードリバース部22は、「=」が「←」と対応する旨の変換規則情報を備えており、「=」は、当該変換規則情報に基づいて「←」に変換される。
At this time, the second source code
その後、第2ソースコードリバース部22は、変数nに1を加算する(S613)。
After that, the second source code
一方、第2ソースコードリバース部22は、ソースコード60にn番目の条件文がないと判断した場合(S607にてNo)、ユーザによる操作に基づいて、プロセス仕様書62の処理欄の記述を変更する(S608)。図7,8の例では、nが2のときに、第2ソースコードリバース部22は、ソースコード60に2番目の条件文がないと判断する。ユーザは、操作部50を介して、図11(A)のプロセス仕様書62a5を、図11(B)のプロセス仕様書62a6のように変更する。
On the other hand, when the second source code
プロセス仕様書62a6において、ユーザは、条件「外気温度>10℃」を「(1)」と、条件「運転モード=冷房」を「(2)」と定義し、条件「(1)and(2)」が真である状態を「不快検知」と定義している。プロセス仕様書62a6は、xxxxx機能のプロセスが「不快検知」の状態になると計測状態を開始することを意味している。 In the process specification 62a6, the user defines the condition "outside air temperature> 10 ° C." as "(1)" and the condition "operation mode = cooling" as "(2)", and the condition "(1) and (2) The state in which ")" is true is defined as "discomfort detection". The process specification 62a6 means that the measurement state is started when the process of the xxxxxx function is in the "discomfort detection" state.
その後、第2ソースコードリバース部22は、本処理を終了する。以上のようにして、ソースコード60およびオブジェクトリスト61からプロセス仕様書62が生成されて記憶部30に記憶される。
After that, the second source code
2-3.マッピング部の動作
図2に示すように、マッピング部23は、プロセス仕様書62および機能の依存関係情報63を入力して、それに基づき機能仕様書64を生成して記憶部30に記憶する。図12は、マッピングの動作を示すフローチャートである。図13は、ユーザにより事前に作成される、機能の依存関係情報63の一例を示す図である。図14は、マッピング部23により生成される、機能仕様書64の一例を示す図である。図15,16は、ユーザによるマッピング部23の操作を説明するための図である。
2-3. Operation of the mapping unit As shown in FIG. 2, the
以下、図12を用いて、マッピング部23の動作を説明する。
Hereinafter, the operation of the
図12において、最初に、マッピング部23は、プロセス仕様書62および機能の依存関係情報63を記憶部30から読み込む(S901)。機能の依存関係情報63は、ユーザにより事前に作成されるデータである。例えば、マッピング部23は、図11(B)のプロセス仕様書62a6および図13の機能の依存関係情報63aを読み込む。
In FIG. 12, first, the
その後、マッピング部23は、ユーザによる操作に従って、機能の依存関係情報63の機能名欄から任意の機能名を選択して、当該機能名の機能仕様書64への配置を確定する(S902)。図11(B),13の例では、機能の依存関係情報63aの機能名欄から「xxxxx機能」が選択されて、図14の機能仕様書64aのように最上欄に配置される。
After that, the
その後、マッピング部23は、ユーザによる操作に従って、プロセス仕様書62を選択して、選択したプロセス仕様書62の処理欄の文字列の機能仕様書64への配置を確定する(S903)。図11(B),13の例では、プロセス仕様書62a6の処理欄の文字列が、図14の機能仕様書64aように上から2番目の欄に配置される。
After that, the
その後、マッピング部23は、機能仕様書64を生成して記憶部30に記憶する(S904)。図11(B),13の例では、図14の機能仕様書64aが生成される。
After that, the
図15は、機能の依存関係情報63のうちの1つの機能名を選択して、当該機能名の機能仕様書64への配置を確定する処理(図12のS902)における、ユーザによる操作を例示するための図である。
FIG. 15 illustrates an operation by a user in a process of selecting a function name from the
プロセス仕様書62a6および機能の依存関係情報63aを読み込むと、マッピング部23は、機能の依存関係情報63aを表示部40に表示する。ユーザは、操作部50を介して、マッピングしたい項目、すなわち機能仕様書64に配置したい項目を選択する。図15(A)は、機能名「xxxxx機能」が選択された状態を示す。
When the process specification 62a6 and the
マッピングしたい項目が選択されたことを検出すると、マッピング部23は、読み込んだプロセス仕様書62a6を、プルダウンメニューから選択可能に表示する。図15(B)は、プロセス仕様書62a6が選択された状態を示す。
When it is detected that the item to be mapped is selected, the
プロセス仕様書62a6が選択されたことを検出すると、マッピング部23は、プロセス仕様書62a6を表示部40に表示する。ユーザは、操作部50を介して、プロセス仕様書62a6のうち、マッピングしたい箇所を選択する。図15(C)は、プロセス仕様書62a6の最上欄の文字列「xxxxx機能」が選択された状態を示す。
When it is detected that the process specification 62a6 is selected, the
図16は、プロセス仕様書62を選択して、選択したプロセス仕様書の処理欄の文字列の機能仕様書64への配置を確定する処理(図12のS903)における、ユーザによる操作を例示するための図である。
FIG. 16 illustrates an operation by a user in a process of selecting a
図15(C)においてプロセス仕様書62a6の最上欄の文字列「xxxxx機能」が選択されたことを検出すると、マッピング部23は、プロセス仕様書62a6を、プルダウンメニューから選択可能に表示する。図16(A)は、プロセス仕様書62a6が選択された状態を示す。
When it is detected in FIG. 15C that the character string "xxxxxx function" in the uppermost column of the process specification 62a6 is selected, the
プロセス仕様書62a6が選択されたことを検出すると、マッピング部23は、プロセス仕様書62a6を表示部40に表示する。ユーザは、操作部50を介して、プロセス仕様書62a6のうち、マッピングしたい箇所を選択する。図16(B)は、プロセス仕様書62a6の処理欄の2行目から8行目までの文字列が選択された状態を示す。
When it is detected that the process specification 62a6 is selected, the
マッピングしたい箇所が選択されたことを検出すると、マッピング部23は、機能の依存関係情報63aを表示部40に表示する。ユーザは、操作部50を介して、マッピングしたい箇所と対応する機能ブロックを選択する。図16(C)は、機能の依存関係情報63aの「不快検知」が選択された状態を示す。
When it is detected that the location to be mapped is selected, the
マッピングしたい箇所と対応する機能ブロック「不快検知」が選択されたことを検出すると、マッピング部23は、機能仕様書64において、マッピングしたい箇所を配置する箇所を選択する。図16(D)は、操作部50を介して、マッピングしたい箇所を配置する箇所の先頭を、機能仕様書64の上から2番目の欄の1行目に合わせたときの、上から2番目の欄の1行目から7行目までが選択された状態を示す。マッピングしたい箇所を配置する箇所が選択されたことを検出すると、マッピング部23は、機能仕様書64aを生成する。以上のようにして、プロセス仕様書62および機能の依存関係情報63から機能仕様書64が生成されて記憶部30に記憶される。
When it is detected that the functional block "discomfort detection" corresponding to the location to be mapped is selected, the
2-4.関数指定部の動作
図3に示すように、関数指定部24は、ソースコード60を入力して、それに基づき被影響関数情報65を生成して記憶部30に記憶する。図17,18は、関数指定部24の動作を示すフローチャートである。図19は、関数指定部24により生成される、被影響関数情報65の一例を示す図である。図20は、関数指定部24の動作を説明するための図である。
2-4. Operation of the function designation unit As shown in FIG. 3, the
以下、図17,18を用いて、関数指定部24の動作を説明する。
Hereinafter, the operation of the
図17において、最初に、関数指定部24は、ユーザによる操作に従って、ソースコード60を選択して(S1101)、記憶部30から読み込む(S1102)。例えば、関数指定部24は、図7のソースコード60aを選択して読み込む。
In FIG. 17, first, the
その後、関数指定部24は、読み込んだソースコード60を解析して(S1103)、ソースコード60に含まれる関数を、ユーザによる操作により選択可能に表示部40に表示する(S1104)。例えば、ソースコード60に含まれる関数は、プルダウンメニューから選択可能に表示されてもよい。その後、関数指定部24は、ユーザによる操作に従って変更対象の関数を選択する(S1105)。図20は、ソースコード60aが読み込まれて、ソースコード60aに含まれる関数xxxxxが選択されている状態を示す。
After that, the
その後、関数指定部24は、被影響関数情報65を生成して記憶部30に記憶し(S1106)、ソースコード60に含まれる関数を、被影響関数情報65に入力する(S1107~S1110)。
After that, the
関数指定部24は、変数kに1を入力する(S1107)。
The
関数指定部24は、ソースコード60にk番目の関数が含まれていると判断した場合(S1107でYes)、k番目の関数に関する情報を、被影響関数情報65に入力する(S1109)。詳細は後述する。
When the
その後、関数指定部24は、変数kに1を加算する(S1110)。
After that, the
一方、関数指定部24は、ソースコード60にk番目の関数が含まれていないと判断した場合(S1108でNo)、本処理を終了する。
On the other hand, when the
図18は、k番目の関数に関する情報を、被影響関数情報65に入力する処理(図17のS1109)を示すフローチャートである。
FIG. 18 is a flowchart showing a process (S1109 of FIG. 17) of inputting information about the k-th function into the
最初に、k番目の関数が変更対象の関数を参照していないと判断した場合(S1111でNo)、関数指定部24は、変更対象の関数がk番目の関数を参照しているか否かを判断する(S1112)。図7の例では、k=1のときに、1番目の関数xxxxxは、変更対象の関数xxxxxを参照していないと判断する。
First, when it is determined that the kth function does not refer to the function to be changed (No in S1111), the
その後、変更対象の関数がk番目の関数を参照していないと判断した場合(S1112でNo)、関数指定部24は、変更対象の関数と参照関係にある関数が、k番目の関数を参照しているか否かを判断する(S1113)。図7の例では、k=1のときに、変更対象の関数と参照関係にある関数が、1番目の関数xxxxxを参照していないと判断する。
After that, when it is determined that the function to be changed does not refer to the kth function (No in S1112), the
その後、変更対象の関数と参照関係にある関数が、k番目の関数を参照していないと判断した場合(S1113でNo)、関数指定部24は、k番目の関数が、変更対象の関数と参照関係にある関数を参照しているか否かを判断する(S1114)。図7の例では、k=1のときに、変更対象の関数と参照関係にある関数が、1番目の関数xxxxxを参照していないと判断する。
After that, when it is determined that the function having a reference relationship with the function to be changed does not refer to the kth function (No in S1113), the
その後、k番目の関数が、変更対象の関数と参照関係にある関数を参照していないと判断した場合(S1114でNo)、関数指定部24は、本処理を終了する。図7の例では、k=1のときに、関数指定部24は、1番目の関数xxxxxが、変更対象の関数と参照関係にある関数を参照していないと判断して、本処理を終了する。
After that, when it is determined that the kth function does not refer to the function having a reference relationship with the function to be changed (No in S1114), the
一方、k番目の関数が変更対象の関数を参照していると判断した場合(S1111でYes)、関数指定部24は、被影響関数情報65の影響の分類欄に「1」を入力して(S1115)、k番目の関数の関数名を、被影響関数情報65の関数欄に入力して(S1119)、本処理を終了する。
On the other hand, when it is determined that the kth function refers to the function to be changed (Yes in S1111), the
変更対象の関数がk番目の関数を参照していると判断した場合(S1112でYes)、関数指定部24は、被影響関数情報65の影響の分類欄に「2」を入力して(S1116)、k番目の関数の関数名を、被影響関数情報65の関数欄に入力して(S1119)、本処理を終了する。
When it is determined that the function to be changed refers to the kth function (Yes in S1112), the
変更対象の関数と参照関係にある関数が、k番目の関数を参照していると判断した場合(S1113でYes)、関数指定部24は、被影響関数情報65の影響の分類欄に「3」を入力して(S1117)、k番目の関数の関数名を、被影響関数情報65の関数名欄に入力して(S1119)、本処理を終了する。
When it is determined that the function having a reference relationship with the function to be changed refers to the kth function (Yes in S1113), the
k番目の関数が、変更対象の関数と参照関係にある関数を参照していると判断した場合(S1114でYes)、関数指定部24は、被影響関数情報65の影響の分類欄に「4」を入力して(S1118)、k番目の関数の関数名を、被影響関数情報65の関数欄に入力して(S1119)、本処理を終了する。
When it is determined that the kth function refers to a function having a reference relationship with the function to be changed (Yes in S1114), the
以上のようにして、ソースコード60から被影響関数情報65が生成されて記憶部30に記憶される。
As described above, the
2-5.変更影響分析部の動作
図4に示すように、変更影響分析部25は、機能仕様書64および被影響関数情報65を入力して、それに基づき機能に対する変更影響度情報66を生成して記憶部30に記憶する。図21は、変更影響分析部25の動作を示すフローチャートである。図22は、変更影響分析部25により生成される、機能に対する変更影響度情報66の一例を示す図である。
2-5. Operation of the change impact analysis unit As shown in FIG. 4, the change
以下、図21を用いて、変更影響分析部25の動作を説明する。
Hereinafter, the operation of the change
図21において、最初に、変更影響分析部25は、機能仕様書64および被影響関数情報65を記憶部30から読み込む(S1601)。例えば、変更影響分析部25は、図14の機能仕様書64aおよび図19の被影響関数情報65aを読み込む。
In FIG. 21, first, the change
その後、変更影響分析部25は、機能仕様書64の最上欄の文字列の、機能に対する変更影響度情報66への配置を確定する(S1602)。図14,19の例では、変更影響分析部25は、図22のように機能仕様書64aの最上欄の文字列「xxxxx機能」の、機能に対する変更影響度情報66aの機能欄への配置を確定する。
After that, the change
その後、変更影響分析部25は、変更影響度、すなわち、被影響関数情報65に含まれる関数の数を算出する(S1603)。図14,19の例では、被影響関数情報65aが関数を含まないので、変更影響分析部25は、変更影響度として「0」を算出する。
After that, the change
その後、変更影響分析部25は、算出した変更影響度の、機能に対する変更影響度情報66への配置を確定する(S1604)。図14,19の例では、変更影響度「0」の、機能に対する変更影響度情報66aの変更影響度欄への配置を確定する。
After that, the change
その後、変更影響分析部25は、機能に対する変更影響度情報66を生成して記憶部30に記憶する(S1605)。図14,19の例では、機能に対する変更影響度情報66aを生成する。以上のようにして、機能仕様書64および被影響関数情報65から機能に対する変更影響度情報66が生成されて記憶部30に記憶される。プロセッサ20は、操作部50を介したユーザによる操作に基づいて、機能に対する変更影響度情報66を表示部40に表示する。
After that, the change
3.別のソースコードを読み込んだときの変更影響分析装置の動作例
以上の説明においては、図7に示すような、変更対象の関数が他の関数を含んでいないソースコード60aを例示して変更影響分析装置10の動作を説明した。以下では、図23に示すような、変更対象の関数が他の関数を含むソースコード60bを例示して変更影響分析装置10の動作を説明する。
3. 3. Operation example of the change effect analyzer when another source code is read In the above description, the change effect is illustrated by exemplifying the
図23は、別のソースコード60bを例示する図である。図24は、ソースコード60bから生成されるオブジェクトリスト61bを示す。ソースコード60aと比べて、ソースコード60bは、関数1~4をさらに含む。したがって、第1ソースコードリバース部21は、関数xxxxxについての情報に加えて、関数1~4についての情報を、オブジェクトリスト61bに入力する(図5のS404~S407)。このとき、第1ソースコードリバース部21は、関数名の日本語記述および関数名をオブジェクトリスト61bに入力し(図6のS408、S409)、関数1~4は入力および出力を有しないので、入力欄および出力欄に文字列「なし」を入力する(図6のS411~S417)。
FIG. 23 is a diagram illustrating another
図25~29は、ソースコード60bおよびオブジェクトリスト61bに基づいて作成されるプロセス仕様書62を示す。オブジェクトリスト61aと比べて、オブジェクトリスト61bは、関数欄に関数1~4をさらに含む。よって、第2ソースコードリバース部22は、関数xxxxxのプロセス仕様書に加えて、関数1~4のプロセス仕様書をさらに生成する(図9のS602)。
25 to 29 show the
また、ソースコード60aの関数xxxxxと比べて、ソースコード60bの関数xxxxxは、「f2();」をさらに含む。第2ソースコードリバース部22は、「f2();」を操作の記述であると判断して、操作の記述であることを示す記号「・」を入力する。さらに、オブジェクトリスト61bの関数欄と関数のラベル欄との対応関係に基づいて「f2();」を「関数2」に変換する(図9のS613)。よって、第2ソースコードリバース部22は、図25のプロセス仕様書62b1を出力する。同様に、第2ソースコードリバース部22は、図26~29の、関数1~4のプロセス仕様書62b2~62b5を出力する。
Further, the function xxxxxx of the
図30は、別の機能仕様書64bを例示する図である。機能仕様書64bは、プロセス仕様書62b1~62b5および図13の機能の依存関係情報63aから生成される。図11(B)のプロセス仕様書62a6と比べて、プロセス仕様書62b1は、処理欄に文字列「・関数2」をさらに含む。したがって、マッピング部23は、図30のように機能仕様書64bを生成する。
FIG. 30 is a diagram illustrating another
図31は、別の、被影響関数情報65bを例示する図である。被影響関数情報65bは、ソースコード60bから生成される。ソースコード60aと比べて、ソースコード60bは、変更対象の関数xxxxxと関連する関数1~4をさらに含む。関数指定部24は、関数1~4を4つに分類する。
FIG. 31 is a diagram illustrating another affected
図33は、関数xxxxxと関数1~4との関連性を説明するための図である。図33において、矢印は、参照元の関数から参照先の関数に向かっている。関数1は、関数xxxxxを参照するので「1」に分類される(図18のS1115)。関数2は、関数xxxxxに参照されるので「2」に分類される(図18のS1116)。関数3は、関数xxxxxと参照関係にある関数2を参照するので「3」に分類される(図18のS1117)。関数4は、関数xxxxxと参照関係にある関数2に参照されるので「4」に分類される(図18のS1118)。
FIG. 33 is a diagram for explaining the relationship between the functions xxxxxx and the
図32は、別の、機能に対する変更影響度情報66bを例示する図である。機能に対する変更影響度情報66bは、機能仕様書64bおよび被影響関数情報65bから生成される。xxxxx機能は変更対象の関数xxxxxで実現され、関数xxxxxと関連する関数は、被影響関数情報65bによれば、4つあるので、機能に対する変更影響度情報66bのように、変更影響度欄には「4」が入力される。
FIG. 32 is a diagram illustrating another change
以上のように、本実施の形態の変更影響分析装置10は、変更対象の機能に対する変更影響度を算出して表示する。変更影響度は、「変更対象の関数が他の関数により参照される回数」に加えて、「変更対象の関数が他の関数を参照する回数」、「変更対象の関数と直接的な参照関係にある関数が他の関数を参照する回数」、および「変更対象の関数と直接的な参照関係にある関数が他の関数に参照される回数」を考慮して算出される。算出された変更影響度を参照することによって、ユーザは、特定の機能の変更がソフトウェア全体に及ぼす影響を適切に把握することができる。このことにより、ユーザは、当該影響を考慮した上で効率よくソフトウェアの流用開発を行うことができる。
As described above, the change
4.まとめ
以上説明したように、本実施の形態に係る変更影響分析装置10は、ソースコード60を分析して、変更対象の機能が、ソースコード60に基づくソフトウェア全体に与える影響を示す、機能に対する変更影響度情報66を出力する装置である。変更影響分析装置10は、ソースコードの分析処理を行うプロセッサ20を備える。プロセッサ20は、第1ソースコードリバース部21と、第2ソースコードリバース部22と、マッピング部23と、関数指定部24と、変更影響分析部25とを備える。第1ソースコードリバース部21は、ソースコード60から、ソースコード60に含まれる各関数が記述されるオブジェクトリスト61を生成する。第2ソースコードリバース部22は、オブジェクトリスト61から、各関数により実現される各プロセスの入力、処理、および出力が記述されるプロセス仕様書62を生成する。マッピング部23は、プロセス仕様書62および各プロセスにより実現される各機能が定義される機能の依存関係情報63から、変更対象の機能を実現する変更対象のプロセスの処理が記述される機能仕様書64を生成する。関数指定部24は、ソースコード60から、変更対象の関数から影響を受ける他の関数が記述される、被影響関数情報65を生成する。変更影響分析部25は、機能仕様書64および被影響関数情報65から、機能に対する変更影響度情報66を出力する。
4. Summary As described above, the
機能に対する変更影響度情報66は、変更対象の機能と、変更対象の機能からソフトウェア全体が受ける影響の度合いを示す変更影響度とを対応付けた情報である。
The change
変更影響度は、「変更対象の関数が他の関数により参照される回数」と、「変更対象の関数が他の関数を参照する回数」と、「変更対象の関数と直接的な参照関係にある関数が他の関数を参照する回数」と、「変更対象の関数と直接的な参照関係にある関数が他の関数に参照される回数」と、に基づき算出する値である。 The degree of change impact is "the number of times the function to be changed is referenced by another function", "the number of times the function to be changed refers to another function", and "the direct reference relationship with the function to be changed". It is a value calculated based on "the number of times a function refers to another function" and "the number of times a function having a direct reference relationship with the function to be changed is referred to by another function".
より具体的には、変更影響度は、「変更対象の関数が他の関数により参照される回数」と、「変更対象の関数が他の関数を参照する回数」と、「変更対象の関数と直接的な参照関係にある関数が他の関数を参照する回数」と、「変更対象の関数と直接的な参照関係にある関数が他の関数に参照される回数」と、を加算した値である。 More specifically, the degree of influence of the change is "the number of times the function to be changed is referenced by another function", "the number of times the function to be changed refers to another function", and "the function to be changed". The sum of "the number of times a function in a direct reference relationship refers to another function" and "the number of times a function in a direct reference relationship with the function to be changed is referred to by another function". be.
または、変更影響度は、「変更対象の関数が他の関数により参照される回数」と、「変更対象の関数が他の関数を参照する回数」と、「変更対象の関数と直接的な参照関係にある関数が他の関数を参照する回数」と、「変更対象の関数と直接的な参照関係にある関数が他の関数に参照される回数」と、を乗算した値としても良いし、それ以外に組み合わせて関連付けることにより増加する値としても良い。 Alternatively, the degree of impact of the change is "the number of times the function to be changed is referenced by another function", "the number of times the function to be changed refers to another function", and "the number of times the function to be changed refers to another function" and "direct reference to the function to be changed". It may be a value obtained by multiplying "the number of times the related function refers to another function" and "the number of times the function having a direct reference relationship with the function to be changed is referred to by another function". Other than that, it may be a value that increases by associating in combination.
機能に対する変更影響度情報66を参照することによって、ユーザは、特定の機能の変更がソフトウェア全体に及ぼす影響を適切に把握することができる。このことにより、ユーザは、当該影響を考慮した上で効率よくソフトウェアの流用開発を行うことができる。
By referring to the
実施の形態2.
以下、変更影響分析装置10の別の実施の形態について説明する。
Hereinafter, another embodiment of the change
実施の形態1の変更影響分析装置10は、変更対象の機能と当該機能の変更影響度とを表示部40に表示することによって、ユーザに、変更の難易度を認識させた。これに対して、本実施の形態の変更影響分析装置10は、変更対象の機能と、当該機能を実現するプロセスおよび関数とを表示部40に表示する。それにより、ユーザに、より詳細に変更の難易度を認識させる。
The change
図34は、本実施の形態に係る、変更影響分析部25aに対するデータの入出力を示す図である。本実施の形態の変更影響分析装置10は、変更影響分析部25aの機能が実施の形態1のものと異なる。変更影響分析部25aは、プロセス仕様書62、機能仕様書64、および被影響関数情報65を入力して、それに基づき機能、プロセス、関数の対応情報67を生成して記憶部30に記憶する。機能、プロセス、関数の対応情報67は、ソフトウェア影響情報の一例である。
FIG. 34 is a diagram showing data input / output to the change
機能、プロセス、関数の対応情報67は、変更対象の機能と、当該機能を実現するプロセスおよび関数とが記述されたデータである。
The
本実施の形態に係る、変更影響分析部25aの動作について説明する。
The operation of the change
図35は、本実施の形態に係る、変更影響分析部25aの動作を示すフローチャートである。図36は、機能、プロセス、関数の対応情報67の一例を示す図である。
FIG. 35 is a flowchart showing the operation of the change
最初に、変更影響分析部25aは、プロセス仕様書62、機能仕様書64、および被影響関数情報65を記憶部30から読み込む(S1701)。例えば、変更影響分析部25aは、図25~29のプロセス仕様書62b1~62b5、図30の機能仕様書64b、および図31の被影響関数情報65bを読み込む。
First, the change
その後、変更影響分析部25aは、機能仕様書64の最上欄の文字列の、機能、プロセス、関数の対応情報67への配置を確定する(S1702)。図25~29,30,31の例では、変更影響分析部25aは、図36のように、機能仕様書64bの最上欄の文字列「xxxxx機能」の、機能、プロセス、関数の対応情報67bの機能欄への配置を確定する。
After that, the change
その後、変更影響分析部25aは、被影響関数情報65の関数欄に記述された各関数と関連するプロセスのプロセス名および当該プロセスが記述されたプロセス仕様書の行番号の、機能、プロセス、関数の対応情報67のプロセス欄への配置を確定する(S1703)。
After that, the change
図25~29,30,31の例では、被影響関数情報65bによれば、プロセス関数1は、xxxxx機能のプロセスを呼び出すので、図36の機能、プロセス、関数の対応情報67bのように、プロセス名「関数1」および関数1のプロセス仕様書62b2の処理欄の行番号「○」が配置される。同様に、プロセス関数2は、xxxxx機能のプロセスにより呼び出されるので、プロセス名「xxxxx機能」およびxxxxx機能のプロセス仕様書62b1の処理欄の行番号「3」が配置される。プロセス関数3は、プロセス関数2を呼び出すので、プロセス名「関数2」および関数2のプロセス仕様書62b3の処理欄の行番号「△」が配置される。プロセス関数4は、プロセス関数2を呼び出すので、プロセス名「関数4」および関数4のプロセス仕様書62b5の処理欄の行番号「×」が配置される。
In the examples of FIGS. 25 to 29, 30, and 31, according to the affected
その後、変更影響分析部25aは、被影響関数情報65の関数欄の各文字列の、機能、プロセス、関数の対応情報67への配置を確定する(S1704)。図25~29,30,31の例では、図36のように、被影響関数情報65bの関数欄の文字列「関数1」「関数2」「関数3」「関数4」それぞれの、機能、プロセス、関数の対応情報67bの関数欄への配置を確定する。
After that, the change
その後、変更影響分析部25aは、機能、プロセス、関数の対応情報67を生成して記憶部30に記憶する(S1705)。図25~29,30,31の例では、図36の機能、プロセス、関数の対応情報67bを生成する。以上のようにして、プロセス仕様書62、機能仕様書64、および被影響関数情報65から機能、プロセス、関数の対応情報67が生成されて記憶部30に記憶される。プロセッサ20は、操作部50を介したユーザによる操作に基づいて、機能、プロセス、関数の対応情報67を表示部40に表示する。
After that, the change
以上のように、本実施の形態に係る変更影響分析装置10は、機能、プロセス、関数の対応情報67を表示部40に表示する。機能、プロセス、関数の対応情報67は、変更対象の機能と、当該機能を実現するプロセスおよび関数とを対応付けたデータである。機能、プロセス、関数の対応情報67を参照することによって、ユーザは、変更対象の機能を、プロセスおよび関数と対応付けて把握することができる。このことにより、ユーザは、特定の機能の変更により影響を受けるプロセスおよび関数を考慮した上でソフトウェアの流用開発を行うことができる。
As described above, the change
以上説明したように、本実施の形態に係る変更影響分析部25aは、プロセス仕様書62をさらに読み込んで、機能、プロセス、関数の対応情報67を出力する。
As described above, the change
機能、プロセス、関数の対応情報67は、変更対象の機能と、変更対象の機能から影響を受けるプロセスおよび関数とを対応付けた情報である。
The
機能、プロセス、関数の対応情報67を参照することによって、ユーザは、変更対象の機能を、プロセスおよび関数と対応付けて把握することができる。このことにより、ユーザは、特定の機能の変更により影響を受けるプロセスおよび関数を考慮した上でソフトウェアの流用開発を行うことができる。
By referring to the
他の実施の形態.
以上のように、本発明における技術の例示として、実施の形態を説明した。しかしながら、本発明における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。また、上記実施の形態で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。
Other embodiments.
As described above, an embodiment has been described as an example of the technique in the present invention. However, the technique of the present invention is not limited to this, and can be applied to embodiments in which changes, replacements, additions, omissions, etc. are made as appropriate. Further, it is also possible to combine the components described in the above-described embodiment into a new embodiment.
上記の実施の形態では、ソースコード60はC言語で記述されるが、これに限定されない。例えば、C++、Java(登録商標)、Python、Ruby等の他の言語で記述されていてもよい。
In the above embodiment, the
上記の実施の形態では、プロセス仕様書62は日本語で記述されるが、これに限定されない。例えば、英語、フランス語、スペイン語等の他の言語で記述されてもよい。
In the above embodiment, the
実施の形態1の変更影響分析装置10は、機能に対する変更影響度情報66のみを出力し、実施の形態2の変更影響分析装置10は、機能、プロセス、関数の対応情報67のみを出力したが、これに限定されない。例えば、変更影響分析装置10は、分析を開始する前に図37の選択画面を表示して、ユーザは、機能に対する変更影響度情報66、および機能、プロセス、関数の対応情報67のうちの少なくとも一つを選択できてもよい。
The
10 変更影響分析装置
20 プロセッサ
21 第1ソースコードリバース部
22 第2ソースコードリバース部
23 マッピング部
24 関数指定部
25、25a 変更影響分析部
30 記憶部
40 表示部
50 操作部
60 ソースコード
61 オブジェクトリスト
62 プロセス仕様書
63 機能の依存関係情報
64 機能仕様書
65 被影響関数情報
66 機能に対する変更影響度情報
67 機能、プロセス、関数の対応情報
10 Change
Claims (5)
前記ソースコードの分析処理を行う制御部を備え、
前記制御部は、
前記ソースコードから、前記ソースコードに含まれる各関数が記述されるオブジェクトリストを生成する第1ソースコードリバース部と、
前記オブジェクトリストから、前記各関数により実現される各プロセスの入力、処理、および出力が記述されるプロセス仕様書を生成する第2ソースコードリバース部と、
前記プロセス仕様書および前記各プロセスにより実現される各機能が定義される、機能の依存関係情報から、変更対象の機能を実現する変更対象のプロセスの処理が記述される機能仕様書を生成するマッピング部と、
前記ソースコードから、変更対象の関数から影響を受ける他の関数が記述される、被影響関数情報を生成する関数指定部と、
前記機能仕様書および前記被影響関数情報から、前記ソフトウェア影響情報を出力する変更影響分析部と、を備える
変更影響分析装置。 A device that analyzes source code and outputs software impact information that shows the impact of the function to be changed on the entire software based on the source code.
A control unit that performs analysis processing of the source code is provided.
The control unit
From the source code, a first source code reverse part that generates an object list in which each function included in the source code is described, and
From the object list, a second source code reverse unit that generates a process specification in which the inputs, processes, and outputs of each process realized by each function are described, and
Mapping that generates a functional specification that describes the processing of the process to be changed that realizes the function to be changed from the dependency information of the function that defines the process specification and each function realized by each process. Department and
From the source code, a function specification unit that generates affected function information, in which other functions affected by the function to be changed are described, and
A change impact analysis device including a change impact analysis unit that outputs the software impact information from the functional specifications and the affected function information.
前記変更対象の機能と、前記変更対象の機能から前記ソフトウェア全体が受ける影響の度合いを示す変更影響度とを対応付けた情報である、
請求項1に記載の変更影響分析装置。 The software impact information is
This is information in which the function to be changed is associated with the degree of influence of the change, which indicates the degree of influence of the function to be changed on the entire software.
The change impact analyzer according to claim 1.
前記変更対象の関数が他の関数により参照される回数と、
前記変更対象の関数が他の関数を参照する回数と、
前記変更対象の関数と直接的な参照関係にある関数が他の関数を参照する回数と、
前記変更対象の関数と直接的な参照関係にある関数が他の関数に参照される回数と、
に基づき算出する値である、請求項2に記載の変更影響分析装置。 The degree of influence of the change is
The number of times the function to be changed is referenced by other functions, and
The number of times the function to be changed refers to another function,
The number of times a function that has a direct reference relationship with the function to be changed refers to another function, and
The number of times a function that has a direct reference relationship with the function to be changed is referenced by another function, and
The change impact analyzer according to claim 2, which is a value calculated based on the above.
請求項1に記載の変更影響分析装置。 The change impact analysis unit further reads the process specifications and outputs the software impact information.
The change impact analyzer according to claim 1.
請求項4に記載の変更影響分析装置。 The software impact information is information in which the function to be changed is associated with a process and a function affected by the function to be changed.
The change impact analyzer according to claim 4.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018147082A JP7085938B2 (en) | 2018-08-03 | 2018-08-03 | Change impact analyzer |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018147082A JP7085938B2 (en) | 2018-08-03 | 2018-08-03 | Change impact analyzer |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2020021427A JP2020021427A (en) | 2020-02-06 |
| JP7085938B2 true JP7085938B2 (en) | 2022-06-17 |
Family
ID=69589932
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2018147082A Active JP7085938B2 (en) | 2018-08-03 | 2018-08-03 | Change impact analyzer |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7085938B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7584708B2 (en) * | 2022-06-01 | 2024-11-15 | 三菱電機株式会社 | Attack analysis device, attack analysis method, and attack analysis program |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012212281A (en) | 2011-03-31 | 2012-11-01 | Hitachi Government & Public Corporation System Engineering Ltd | Range of influence setting device for program and range of influence specification method using the same and extraction method for program with ripple of influence |
| JP2014052757A (en) | 2012-09-06 | 2014-03-20 | Mitsubishi Electric Corp | Software design support device and software design support method |
| JP2016110330A (en) | 2014-12-04 | 2016-06-20 | 三菱電機株式会社 | Change influence analysis device and change influence analysis method and program |
-
2018
- 2018-08-03 JP JP2018147082A patent/JP7085938B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012212281A (en) | 2011-03-31 | 2012-11-01 | Hitachi Government & Public Corporation System Engineering Ltd | Range of influence setting device for program and range of influence specification method using the same and extraction method for program with ripple of influence |
| JP2014052757A (en) | 2012-09-06 | 2014-03-20 | Mitsubishi Electric Corp | Software design support device and software design support method |
| JP2016110330A (en) | 2014-12-04 | 2016-06-20 | 三菱電機株式会社 | Change influence analysis device and change influence analysis method and program |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2020021427A (en) | 2020-02-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101323281B1 (en) | Input device and method for inputting character | |
| US20180210420A1 (en) | Display device and display method | |
| JP7085938B2 (en) | Change impact analyzer | |
| US10018983B2 (en) | PLC system and arithmetic-expression-data-creation supporting apparatus | |
| JP6112968B2 (en) | Command generation method, apparatus, and program | |
| JP2014186508A (en) | Programming apparatus, programming support method and program | |
| JP2012146028A (en) | Menu display device, menu display method and program | |
| JP2015170009A (en) | Display information generation device, program execution situation display system, method and program | |
| JP5523047B2 (en) | Electronic document generation method and electronic document generation apparatus | |
| JP7230573B2 (en) | Information processing device, information processing system, information processing method and program | |
| JP2019003290A (en) | Display control apparatus, display control method and display control program | |
| KR101376442B1 (en) | Hangul learning method using arithmetic operation and its device | |
| JP7095346B2 (en) | Information processing equipment and programs | |
| JP2012118933A (en) | Screen design evaluation device, screen design evaluation method and program | |
| JP2013182329A (en) | Information processing device, control method for information processing device, and program | |
| EP3133146B1 (en) | Cell observation information processing system, cell observation information processing method, cell observation information processing program, recording unit provided in cell observation information processing system, and device provided in cell observation information processing system | |
| JP5836062B2 (en) | Medical information processing apparatus and information retrieval apparatus | |
| CN113764064A (en) | Report production aids and report production aids | |
| JP2645027B2 (en) | Guide help information display device and guide help information display method | |
| JP6657799B2 (en) | Graphic processing apparatus, graphic processing method, and graphic processing program | |
| JPH10187762A (en) | Search formula input device | |
| JP2697775B2 (en) | Conversation system | |
| JPH11306281A (en) | Recognizing condition specifying system, its method, and recording medium in which program to generate recognizing condition specifying function on computer is recorded | |
| JP4930891B1 (en) | Input support method | |
| US20150178888A1 (en) | Display device, data processing device and computer readable medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210506 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220419 |
|
| 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: 20220510 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220607 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7085938 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |