JP7356013B2 - Information presentation program, information presentation device, and information presentation method - Google Patents
Information presentation program, information presentation device, and information presentation method Download PDFInfo
- Publication number
- JP7356013B2 JP7356013B2 JP2019191821A JP2019191821A JP7356013B2 JP 7356013 B2 JP7356013 B2 JP 7356013B2 JP 2019191821 A JP2019191821 A JP 2019191821A JP 2019191821 A JP2019191821 A JP 2019191821A JP 7356013 B2 JP7356013 B2 JP 7356013B2
- Authority
- JP
- Japan
- Prior art keywords
- range
- data
- program
- program group
- group
- 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
- Stored Programmes (AREA)
Description
本発明は、情報提示プログラム、情報提示装置、及び情報提示方法に関する。 The present invention relates to an information presentation program, an information presentation device, and an information presentation method.
情報処理技術の発達により、利用者に対して様々なサービスを提供するためのコンピュータシステムが活用されている。そのようなコンピュータシステムでは、例えばサービスを提供する業務内容が見直されたときに、システムで使用される一部のプログラムやデータを変更することがある。 With the development of information processing technology, computer systems are being utilized to provide various services to users. In such a computer system, for example, when the business content of providing a service is reviewed, some programs and data used in the system may be changed.
しかし、大規模なコンピュータシステムでは、プログラム同士の依存関係が複雑であり、一部のプログラムを変更したときにその影響が及ぶ範囲を調べるのが容易ではない。そのため、複数のプログラムと複数のデータのうちのどの部分を切り出して変更を行えばいいのかが容易には分らず、コンピュータシステムの変更を行うのが難しい。 However, in large-scale computer systems, the dependencies between programs are complex, and it is not easy to determine the extent to which changes in some programs will affect the system. Therefore, it is difficult to know which part of the multiple programs and multiple data should be cut out and modified, making it difficult to modify the computer system.
一側面によれば、複数のプログラムと複数のデータから切り出す範囲を提示することを目的とする。 According to one aspect, the object is to present a range to be extracted from a plurality of programs and a plurality of data.
一側面によれば、コンピュータに、複数のプログラム群と複数のデータの少なくとも一部を含む第1の範囲の指定を受け付ける処理と、前記複数のプログラム群と、当該複数のプログラム群がそれぞれアクセスする前記複数のデータとを対応付けた情報に基づいてグラフを生成する処理と、前記グラフ上で未使用データを反映させる処理と、前記第1の範囲と、前記第1の範囲に含まれるデータに前記第1の範囲の外からアクセスするプログラム群と、複数の前記プログラム群のうち前記第1の範囲に含まれるプログラム群のみがアクセスするデータであって前記第1の範囲の外にあるデータとを含む第2の範囲を、複数の前記プログラム群と複数の前記データから切り出す範囲として、前記グラフ上に重ねて提示する処理とを実行させるための情報提示プログラムが提供される。
According to one aspect, there is provided a process for receiving, in a computer, a first range that includes a plurality of program groups and at least part of a plurality of data , the plurality of program groups and the plurality of program groups respectively accessing. a process of generating a graph based on information associating the plurality of data; a process of reflecting unused data on the graph; and a process of generating the first range and the data included in the first range. A program group that is accessed from outside the first range, and data that is accessed only by a program group that is included in the first range among the plurality of program groups and is outside the first range. An information presentation program is provided for executing a process of superimposing and presenting a second range including a plurality of programs and a plurality of data on the graph as a range cut out from a plurality of the program groups and a plurality of the data.
一側面によれば、複数のプログラムと複数のデータから切り出す範囲を提示することができる。 According to one aspect, a range to be extracted from a plurality of programs and a plurality of data can be presented.
本実施形態の説明に先立ち、本願発明者が検討した事項について説明する。 Prior to describing this embodiment, matters considered by the inventor of the present application will be described.
大規模なコンピュータシステムにおいては、複数のプログラムと複数のデータを備えたプログラム資産の一部を変更しようとした場合、その変更によって影響を受ける範囲が容易には分からない。そのような問題を解決するため、例えば、以下のようにプログラム同士の依存関係を利用してプログラム資産を分割し、分割された範囲内でプログラムの変更を行う方法が考えられる。 In a large-scale computer system, when an attempt is made to change part of a program asset that includes multiple programs and multiple data, it is not easy to know the range that will be affected by the change. In order to solve such problems, for example, a method can be considered in which the program assets are divided using the dependencies between programs as described below, and the program is changed within the divided range.
図1は、分割の対象となるプログラム資産について示す模式図である。 FIG. 1 is a schematic diagram showing program assets to be divided.
このプログラム資産1は、コンピュータシステムにおいて実行される複数のプログラムと複数のデータとを有する。このうち、データは、各プログラムが実行時に参照するファイルやデータベースである。図1においては、プログラムによるデータの書き込みを実線矢印で示し、プログラムによるデータの読み出しを一点鎖線の矢印で示す。
This
また、各プログラムは、実行時にデータに対して読み書きを行ったり、他のプログラムを呼び出したりすることによりサービスを実現する。このように一方のプログラムが実行時に他方のプログラムを呼び出す場合、これらのプログラムには依存関係があるという。図1においては、呼び出し元のプログラムから呼び出し先のプログラムに向かう点線矢印で依存関係を示している。 Furthermore, each program implements a service by reading and writing data or calling other programs during execution. When one program calls another program during execution, these programs are said to have a dependency relationship. In FIG. 1, dependence relationships are indicated by dotted arrows pointing from a calling program to a called program.
図2は、プログラム資産1の分割方法を示す模式図である。
図2に示すように、この例では、どこからも呼ばれないプログラムPG1、PG10、PG20を起点のプログラムとする。
FIG. 2 is a schematic diagram showing a method of dividing the
As shown in FIG. 2, in this example, the starting programs are programs PG1, PG10, and PG20 that are not called from anywhere.
そして、起点のプログラムから呼び出されるプログラムを、起点のプログラムと共に一つのプログラム群に含める。例えば、プログラム群p1は、起点となるプログラムPG1の他に、そのプログラムPG1から呼ばれるプログラムPG2、PG3を有する。 Then, a program called from the starting point program is included in one program group together with the starting point program. For example, the program group p1 includes, in addition to the program PG1 serving as a starting point, programs PG2 and PG3 called from the program PG1.
次に、複数のデータの各々を、複数のプログラム群のどれと共にプログラム資産1から切り出すかについて考える。
図3は、各データの取り扱いについて示す模式図である。
Next, consider which of the plurality of program groups each of the plurality of data should be extracted from the
FIG. 3 is a schematic diagram showing how each data is handled.
あるデータに対してプログラム群が書き込みを行う場合、そのプログラム群とデータとを切り離してしまうと、プログラム群の書き込み先がなくなるため、プログラム群が自立して動作することができない。 When a program group writes to certain data, if the program group and the data are separated, there will be no place for the program group to write, and the program group will not be able to operate independently.
そこで、この例では、データに書き込みを行うプログラム群を、そのデータと共に切り出し範囲7に含める。例えば、プログラム群p1は、データd1に対して書き込みを行っているため、そのデータd1と共に切り出し範囲7に含める。
Therefore, in this example, a program group that writes data is included in the
また、データd2は、プログラム群p2、p3によって書き込みが行われているため、これらのプログラム群p2、p3と同じ切り出し範囲7に含める。
Furthermore, since the data d 2 is written by the program groups p 2 and p 3 , it is included in the
切り出し範囲7は、その内側にあるプログラム群が自立して動作することが期待される範囲であって、プログラム資産1からの切り出しが推奨される範囲である。
The
一方、プログラム群が、あるデータに対して書き込みを行わず、読み出しのみを行っている場合を考える。この場合は、書き込みの場合と比較してデータとプログラム群との関連性は弱いと考え、データとプログラム群とを切り離す。図3の例では、データd2とプログラム群p1とが切り離されることになる。 On the other hand, consider a case where a program group does not write to certain data, but only reads from it. In this case, it is considered that the relationship between the data and the program group is weaker than in the case of writing, and the data and the program group are separated. In the example of FIG. 3, data d 2 and program group p 1 are separated.
このような方法によれば、複数の切り出し範囲7の各々に、自立して動作することが期待されるプログラム群とデータとを含めることができる。そのため、プログラム資産1から切り出し範囲7を切り出し、その切り出し範囲7に含まれるプログラム群やデータをユーザが変更することで、その変更の影響が及ぶ範囲を切り出し範囲7に収めることが可能となる。
According to such a method, each of the plurality of cutting ranges 7 can include a program group and data that are expected to operate independently. Therefore, by cutting out the
しかしながら、本願発明者が検討したところ、この方法には次のような問題があることが明らかとなった。 However, upon study by the inventor of the present application, it has become clear that this method has the following problems.
図4は、その問題について模式的に示す図である。
コンピュータシステムが対象とする業務要件等が変更された場合は、プログラム資産1において新たな業務要件等に対応する部分を指定し、その部分をプログラム資産1から切り出してユーザが変更作業を行うことになる。このように業務要件等を考慮してプログラム資産1から切り出すのが指定された範囲を指定範囲8と呼ぶ。
FIG. 4 is a diagram schematically showing this problem.
When the business requirements etc. targeted by the computer system change, the user can designate the part corresponding to the new business requirements etc. in
指定範囲8は、業務要件等を考慮してユーザにより設定される範囲であるため、プログラム群やデータの依存関係を考慮して設定した切り出し範囲7とは必ずしも一致しない。そのため、図4のように一つの切り出し範囲7の中に指定範囲8に属するプログラム群p2と属さないプログラム群p3とが生じることがある。その結果、指定範囲8に属さないプログラム群p3を切り出すべきかどうかをユーザが明確に判断することができず、プログラム資産1の保守や変更をするのが難しいという問題が生じてしまう。
Since the specified
(本実施形態)
本実施形態では、以下のようにしてプログラム資産から切り出すプログラムとデータを提示する。
(This embodiment)
In this embodiment, programs and data extracted from program assets are presented as follows.
[情報提示装置]
図5は、本実施形態に係る情報提示装置について説明するための模式図である。
情報提示装置10は、プログラム資産11の一部を含む指定範囲12の指定を受け付けて、その指定範囲12を含むような切り出し範囲13を提示するPC(Personal Computer)等のコンピュータである。
[Information presentation device]
FIG. 5 is a schematic diagram for explaining the information presentation device according to this embodiment.
The
プログラム資産11は、業務システム等のコンピュータシステムで実行される複数のプログラムと複数のデータとを有する。このうち、各プログラムは、予めプログラム群に分類されているものとする。この例では、図1及び図2の例と同様に、どこからも呼ばれていない起点のプログラムと、そのプログラムから呼ばれるプログラムとを一つのプログラム群に含める。例えば、プログラム群p1には、起点のプログラムPG1と、これから呼び出されるプログラムPG2、PG3とが含められる。また、プログラム群p2には、起点のプログラムPG4と、これから呼び出されるプログラムPG2、PG3とが含められる。そして、プログラム群p3には一つのプログラムPG5のみが含められる。なお、図5においては、呼び出し元から呼び出し先に向かう点線矢印でプログラム同士の依存関係を示している。
The
また、データは、各プログラムが実行時に読み書きを行うファイルやデータベースである。本実施形態では、プログラムによるデータの読み出しと書き込みのいずれもアクセスと呼ぶ。図5においてプログラムからデータに向かう実線矢印は、このようにプログラムがデータにアクセスすることを示す。例えば、プログラムPG1、PG4はデータd2にアクセスしており、プログラムPG5はデータd3にアクセスしている。 Furthermore, data is a file or database that is read and written by each program during execution. In this embodiment, both reading and writing of data by a program is called an access. The solid arrow pointing from the program to the data in FIG. 5 indicates that the program accesses the data in this way. For example, programs PG1 and PG4 are accessing data d2 , and program PG5 is accessing data d3 .
ここで、前述のように、プログラムの依存関係のみを利用してプログラム資産11を複数の切り出し範囲に分割しても、その切り出し範囲は業務要件の見直し等によって変更が指定される指定範囲と一致しない場合がある。
Here, as described above, even if the
このような場合に、情報提示装置10は、ユーザが切り出しを希望するプログラム群とデータの指定を受け付ける。例えば、業務要件の見直しによって変更を加えた方がいいとユーザが判断したプログラム群p2とデータd2とが指定範囲12に含められた場合を考える。指定範囲12は、第1の範囲の一例であって、ユーザが指定しないプログラム群とデータはその指定範囲12には含まれない。なお、プログラム群とデータのいずれか一方の指定のみを情報提示装置10が受け付けてもよい。
In such a case, the
この場合、情報提示装置10は、プログラム資産11からの切り出しを推奨する切り出し範囲13を提示する。切り出し範囲13は、第2の範囲の一例であって、指定範囲12のプログラムやデータを変更したときにそれに伴ってプログラムやデータを変更する必要が生じる可能性のある範囲である。
In this case, the
本実施形態では、後述のように切り出し範囲13に指定範囲12が含まれるようになる。そのため、プログラム資産11から切り出し範囲13を切り出すことにより、ユーザが指定した指定範囲12も切り出すことができ、その指定範囲12に含まれるプログラム群やデータを変更することができる。更に、その変更の影響は、切り出し範囲13の外側のプログラム資産11に及ぶ可能性が低く、変更の影響を切り出し範囲13の内側に局所化することができる。
In this embodiment, the designated
[機能構成]
次に、情報提示装置10の機能構成について説明する。
[Functional configuration]
Next, the functional configuration of the
図6は、情報提示装置10の機能構成図である。
図6に示すように、情報提示装置10は、通信部21、制御部22、及び記憶部23を有する。
FIG. 6 is a functional configuration diagram of the
As shown in FIG. 6, the
このうち、通信部21は、他の装置との間の通信を制御する処理部であり、例えば通信インターフェース等である。
Among these, the
また、制御部22は、情報提示装置10の全体を制御する処理部であり、受付部24、グラフ生成部25、提示部26、及び特定部27を有する。
Further, the
受付部24は、通信部21を介して、プログラムアクセス情報31、指定範囲12、ログ情報33、及び命令アクセス情報34の入力を受け付け、これらの情報を記憶部23に格納する。
The receiving
記憶部23は、HDD(Hard Disk Drive)等の記憶装置やDRAM(Dynamic Random Access Memory)等のメモリによって実現することができ、各種情報を記憶する。
The
図7(a)は、その記憶部23に格納されたプログラムアクセス情報31について模式的に示す図である。
FIG. 7A is a diagram schematically showing the
プログラムアクセス情報31は、プログラム群と、そのプログラム群がアクセスするデータとを対応付けた情報である。なお、プログラム群に含まれる複数のプログラムのいずれか一つがデータにアクセスする場合、当該プログラム群はそのデータにアクセスするという。
The
図7(a)の例では、プログラム群とデータとの対応関係を順序対で表しており、その順序対の第1成分がプログラム群を表し、第2成分がデータを表す。よって、順序対(p1, d1)は、プログラム群p1がデータd1にアクセスすることを示すことになる。なお、各順序対の並びは特に限定されず、この例のように辞書的に各順序対を並べてもよいし、これらをランダムに並べてもよい。 In the example of FIG. 7A, the correspondence between a program group and data is expressed as an ordered pair, where the first component of the ordered pair represents the program group, and the second component represents the data. Therefore, the ordered pair (p 1 , d 1 ) indicates that the program group p 1 accesses the data d 1 . Note that the arrangement of each ordered pair is not particularly limited, and the ordered pairs may be arranged dictionary-like as in this example, or they may be arranged randomly.
更に、プログラムアクセス情報31の生成方法も特に限定されない。例えば、各プログラム群のソースコードに対して静的解析を行い、これによりプログラムとそれがアクセスするデータを特定することでプログラムアクセス情報31を生成することができる。更に、ユーザが手作業でプログラムアクセス情報31を作成してもよい。
Furthermore, the method of generating the
例えば、データがデータベースである場合には、そのデータベースを操作するためのSQL文のキーワードがプログラム群のソースコードに存在するかを文字列検索でユーザが検索すればよい。そして、これによりキーワードが発見されときに、そのデータベースとプログラム群とをプログラムアクセス情報31において対応付ければよい。
For example, if the data is a database, the user can use a string search to find out whether keywords for SQL statements for operating the database exist in the source code of the program group. Then, when a keyword is discovered, the database and the program group may be associated in the
図7(b)は、指定範囲12について模式的に示す図である。
指定範囲12は、ユーザが指定したプログラム資産の一部を示す範囲である。この例では、ユーザが指定したプログラム群とデータの一覧を指定範囲とする。例えば、図5のように指定範囲12にプログラム群p2とデータd2とが含まれている場合、これらの一覧が指定範囲12となる。
FIG. 7(b) is a diagram schematically showing the designated
The specified
図8(a)は、ログ情報33について模式的に示す図である。
ログ情報33は、コンピュータシステムにおいて事前にプログラム資産11を実行したときの各プログラム同士の呼び出し関係を示す情報である。例えば、呼び出し元のプログラムと、呼び出し先のプログラムにおいて呼び出された命令の位置とが対応付けられてログ情報33に格納される。その命令の位置として、本実施形態ではプログラムにおいてその命令が記述されている行番号を採用する。
FIG. 8(a) is a diagram schematically showing the
The
例えば、図8(a)の一行目では、呼び出し元のプログラムPG1がプログラムPG4を呼び出し、更にそのプログラムPG4が自身の100行目の命令を呼び出した場合を示している。同様に、二行目においては、呼び出し元のプログラムPG2がプログラムPG4を呼び出し、そのプログラムPG4が自身の105行目の命令を呼び出した場合が示されている。 For example, the first line of FIG. 8A shows a case where the calling program PG1 calls the program PG4, and the program PG4 further calls its own instruction on the 100th line. Similarly, the second line shows a case where the calling program PG2 calls the program PG4, and the program PG4 calls its own instruction on the 105th line.
ログ情報33の生成方法は特に限定されないが、コンピュータシステムにおいて事前にプログラム資産11を実行したときのスタックトレースをログ情報33として採用し得る。
Although the method for generating the
図8(b)は、命令アクセス情報34について模式的に示す図である。
FIG. 8(b) is a diagram schematically showing the
命令アクセス情報34は、各プログラムにおける命令の位置と、その命令がアクセスするデータとを対応付けた情報である。命令の位置は、前述のようにプログラム中の行番号である。
The
図8(b)の一行目の例は、プログラムPG4の100行目にある命令がデータd1にアクセスしていることを示す。また、二行目の例は、プログラムPG4の105行目にある命令がデータd2にアクセスしていることを示す。 The example in the first line of FIG. 8(b) shows that the instruction in the 100th line of program PG4 accesses data d1 . Furthermore, the example on the second line shows that the instruction on the 105th line of program PG4 accesses data d2 .
再び図6を参照する。
グラフ生成部25は、受付部24によって入力が受け付けられたプログラムアクセス情報31に基づいて、プログラム群がどのデータにアクセスしているのかを示すグラフを生成する。
Referring again to FIG.
The
図9は、図7(a)のプログラムアクセス情報31に基づいてグラフ生成部25が生成したグラフを示す模式図である。
FIG. 9 is a schematic diagram showing a graph generated by the
このグラフ35は、プログラム群とデータとをノードとする有向グラフであって、プログラム群とそれがアクセスするデータとの間にエッジを有する。そのエッジの方向は、プログラム群からデータに向かう方向とする。
This
グラフ35の生成方法は特に限定されない。
例えば、グラフ生成部25は、プログラムアクセス情報31にある全てのプログラム群と全てのデータに対応した全てのノードを生成する。そして、一つのプログラム群と一つのデータとがプログラムアクセス情報31で対応付けられている場合には、グラフ生成部25は、これらのプログラム群とデータとの間にエッジを張る。このような操作をグラフ生成部25がプログラムアクセス情報31にある全ての順序対に対して行うことによりグラフ35を生成することができる。
The method of generating the
For example, the
再び図6を参照する。
提示部26は、記憶部23に格納された指定範囲12と、グラフ生成部25が生成したグラフ35に基づいて、プログラム資産11から切り出すことが推奨される切り出し範囲13(図13参照)を提示する処理部である。切り出し範囲13の提示方法は特に限定されない。例えば、提示部26は、CUI(Character User Interface)やGUI(Graphical User Interface)で切り出し範囲13を表示するための表示情報を生成してもよい。その場合、通信部21がその表示情報を外部装置に送信することにより、外部装置のディスプレイに切り出し範囲13が提示される。なお、情報提示装置10にディスプレイを設け、そのディスプレイに切り出し範囲13を提示してもよい。
Referring again to FIG.
The
切り出し範囲13の設定は、以下のルール1~3に従って提示部26が行う。
The setting of the
・ルール1
図10(a)、(b)は、ルール1が適用されるグラフ35の一例を示す図である。
・
FIGS. 10A and 10B are diagrams showing an example of a
ルール1は、指定範囲12にデータが含まれている場合に切り出し範囲13を設定する方法を定めた規則である。
図10(a)は、指定範囲12に一つのデータd2のみが含まれている場合のグラフ35を例示する図である。
FIG. 10A is a diagram illustrating a
そのデータd2はプログラム群p2からアクセスされているため、変更対象をデータd2のみに限定すると、変更後のデータd2にプログラム群p2がアクセスしたときにプログラム群p2が正常に実行されないおそれがある。また、プログラム実行の際にはプログラム群p2がデータd2にアクセスするため、プログラム群p2とデータd2とで一つのサービスが実現されると考えることもできる。プログラムやデータの変更はサービス単位で行われることがあり、サービス単位でプログラム資産11から切り出すのが好ましい。
Since that data d 2 is accessed by program group p 2 , if you limit the change target to data d 2 only, program group p 2 will not be able to function properly when
そこで、本実施形態では、提示部26が、指定範囲12と、その指定範囲12に含まれるデータにアクセスするプログラム群とを切り出し範囲13に含める。なお、そのようなプログラム群が指定範囲12の内側にある場合には、そもそもユーザがプログラム群とデータとを一緒にして切り出すことを意図しているため、そのプログラム群を切り出し範囲13に含める実益がない。よって、提示部26は、指定範囲12に含まれるデータに指定範囲12の外からアクセスするプログラム群を切り出し範囲13に含める。
Therefore, in the present embodiment, the
図10(a)の例では、プログラム群p2がデータd2と共に切り出し範囲13に含められることになる。切り出し範囲13の提示方法は特に限定されないが、ここでは{p2, d2}のようにプログラム群とデータとを列挙することにより提示部26が提示する。
In the example of FIG. 10A, the program group p 2 is included in the
なお、プログラム群p2はデータd3にもアクセスしているため、データd3も切り出し範囲13に含めることも考えられる。しかし、データd3は、プログラム群p3からもアクセスされているため、プログラム群p2とデータd2とで実現されるサービスのみが利用するデータではない。よって、サービス単位で切り出すという考えに基づき、本実施形態ではデータd3を切り出し範囲13に含めない。
Note that since the program group p 2 also accesses the data d 3 , the data d 3 may also be included in the
図10(b)は、指定範囲12に二つのデータd1、d2が含まれている場合のグラフ35を例示する図である。
FIG. 10B is a diagram illustrating the
この場合も、図10(a)と同様の理由により、提示部26は、データd1にアクセスするプログラム群p1と、データd2にアクセスするプログラム群p2と、指定範囲12とを切り出し範囲13に含める。その切り出し範囲13は{p1, p2, d1, d2}と表すことができる。
In this case as well, for the same reason as in FIG. 10(a), the
・ルール2
図11(a)、(b)は、ルール2が適用されるグラフ35の一例を示す図である。
・
FIGS. 11A and 11B are diagrams showing an example of a
ルール2は、指定範囲12にプログラム群が含まれている場合に切り出し範囲13を設定する方法を定めた規則である。
図11(a)は、指定範囲12に一つのプログラム群p2のみが含まれている場合のグラフ35を例示する図である。
FIG. 11A is a diagram illustrating a
プログラム群p2のアクセス先にはデータd1、d2、d3があり、プログラム群p2の変更に合わせてこれらのデータも変更するのが好ましいとも考えられる。しかし、例えばデータd3はプログラム群p3からもアクセスされているため、データd3の変更に合わせてプログラム群p3も変更する必要が生じ、変更を加えるべきデータやプログラムが連鎖してしまう。 There are data d 1 , d 2 , and d 3 to which the program group p 2 is accessed, and it is considered preferable to change these data in accordance with changes in the program group p 2 . However, for example, data d 3 is also accessed by program group p 3 , so when data d 3 is changed, program group p 3 also needs to be changed, resulting in a chain of data and programs that need to be changed. .
これを防ぐため、本実施形態では、提示部26が、複数のプログラム群のうちで指定範囲12に含まれるプログラム群のみがアクセスするデータを、指定範囲12と共に切り出し範囲13に含める。なお、そのデータが指定範囲12に含まれている場合には、そもそもユーザがそのデータを切り出すことを意図しているため、そのデータを切り出し範囲13に含める実益がない。そこで、この例では、提示部26は、指定範囲12に含まれるプログラム群のみがアクセスするデータのうち、指定範囲12の外にあるデータを切り出し範囲13に含める。
In order to prevent this, in the present embodiment, the
図11(a)の例では、プログラム群p2のみがアクセスするデータd2が、プログラム群p2と共に切り出し範囲13に含められる。その切り出し範囲13は{p2, d2}と表すことができる。
In the example of FIG. 11A, data d 2 that is accessed only by program group p 2 is included in the
このように切り出し範囲13に含めるデータを指定範囲12に含まれるプログラム群のみがアクセスするデータに限定することにより、変更を加えるべきデータやプログラムが連鎖するのを防止できる。
By limiting the data included in the
図11(b)は、指定範囲12に二つのプログラム群p1、p2が含まれている場合のグラフ35を例示する図である。
FIG. 11B is a diagram illustrating the
この場合も、図11(a)と同様の理由により、提示部26は、プログラム群p1、p2のみがアクセスするデータd1、d2を、指定範囲12と共に切り出し範囲13に含める。その切り出し範囲13は{p1, p2, d1, d2}と表すことができる。
In this case as well, for the same reason as in FIG. 11A, the
・ルール3
図12(a)、(b)は、ルール3が適用されるグラフ35の一例を示す図である。
・Rule 3
FIGS. 12A and 12B are diagrams showing an example of a
ルール3は、指定範囲12にプログラム群とデータの両方が含まれている場合に切り出し範囲13を設定する方法を定めた規則である。
Rule 3 is a rule that defines a method for setting the
図12(a)は、指定範囲12にプログラム群p2とデータd2とが含まれている場合のグラフ35を例示する図である。
FIG. 12A is a diagram illustrating the
この場合は、前述のルール1に従って、提示部26が、指定範囲12に含まれるデータd2にアクセスするプログラム群p1を、指定範囲12と共に切り出し範囲13に含める。
In this case, according to
そのプログラム群p1は更にデータd1にアクセスしており、ユーザがプログラム群p1を変更するとその影響をデータd1が受ける可能性がある。更に、データd1は、プログラム群p1のみからアクセスされているため、切り出し範囲13にデータd1を含めても、変更を加えるべきデータやプログラムの連鎖は生じない。
The program group p 1 is also accessing the data d 1 , and if the user changes the program group p 1 , the data d 1 may be affected by the change. Furthermore, since the data d 1 is accessed only by the program group p 1 , even if the data d 1 is included in the
そこで、提示部26はデータd1も切り出し範囲13に含める。ルール3において切り出し範囲13に含められるデータは、指定範囲12の外にあるデータであり、かつ複数のプログラム群のうちで指定範囲12のデータにアクセスするプログラム群のみがアクセスするデータである。
Therefore, the
なお、切り出し範囲13に含めるデータを指定範囲12の外のデータとしたのは、指定範囲12の内側のデータは切り出し範囲13に包含されているため、改めて切り出し範囲13に含める必要がないからである。
Note that the reason why the data to be included in the
図12(b)は、指定範囲12にプログラム群p2とデータd2とが含まれている場合のグラフ35の別の例を示す図である。
FIG. 12B is a diagram showing another example of the
この例では、データd1は、指定範囲12のデータd2にアクセスするプログラム群p1だけでなく、プログラム群p0からもアクセスされている。この場合には、変更を加えるべきデータやプログラムの連鎖を防止するために、提示部26は切り出し範囲13にデータd1を含めない。これにより、切り出し範囲13が際限なく広がるのを防止して、変更対象となるプログラム群やデータが増加するのを抑制することができる。
In this example, the data d 1 is accessed not only by the program group p 1 that accesses the data d 2 in the specified
以上のように、提示部26は、ルール1~3に従って切り出し範囲13を設定する。
As described above, the
その切り出し範囲13の他に、プログラム資産11から切り出さないことを推奨する範囲を提示するとユーザの利便性が向上する。そこで、提示部26は、以下のルール4に従い、グラフ35に基づいて切り出さない範囲を提示する。
In addition to the
・ルール4
図13は、ルール4が適用されるグラフ35の一例を示す図である。
提示部26は、このグラフ35に基づいて切り出さない範囲14を提示する。切り出さない範囲14は、第3の範囲の一例であって、プログラム資産11から切り出さないことを推奨する範囲である。例えば、切り出し範囲13に含まれるプログラム群やデータを変更しても、その影響を受け難いプログラム群やデータが切り出さない範囲14に含められる。
・Rule 4
FIG. 13 is a diagram showing an example of a
The
ここでは、提示部26は、切り出し範囲13に含まれるプログラム群からアクセスされないデータを切り出さない範囲14に含める。図13の例では、データd4、d6がそのようなデータとなる。これらのデータd4、d6は、切り出し範囲13に含まれるプログラム群p1、p2からアクセスされておらず、プログラム群p1、p2に合わせた変更をする必要がないため、切り出さない範囲14に含められる。
Here, the
また、この例では、上記のように切り出し範囲13に含まれるプログラム群からアクセスされないデータd4が、切り出し範囲13にないプログラム群p4からアクセスされている。そのプログラム群p4は、切り出し範囲13に含まれるデータd1、d2にアクセスしていないため、データd1、d2の変更に合わせた変更を行う必要性が少なく、切り出さない範囲14に含めることができる。
Furthermore, in this example, the data d 4 that is not accessed by the program group included in the
よって、提示部26は、切り出し範囲13に含まれるプログラム群からアクセスされないデータにアクセスするプログラム群のうち、切り出し範囲13に含まれるデータにアクセスしないプログラム群を切り出さない範囲14に含める。
Therefore, the presenting
このようなルールにより、プログラム群p4、p5、p6が切り出さない範囲14に含められることになる。そして、提示部26が切り出さない範囲14を提示することにより、切り出さない範囲14に含まれるデータやプログラム群をプログラム資産11に残してもよいとユーザが判断することができ、ユーザの利便性を向上させることができる。
According to such rules, the program groups p 4 , p 5 , and p 6 are included in the
ところで、プログラム資産11の中には、切り出し範囲13と切り出さない範囲14の各々が共用するデータやプログラム群が存在する場合がある。そのようなデータやプログラム群を含む範囲を以下では共用範囲と呼ぶ。その共用範囲は、以下のルール5に従って提示部26がグラフ35に基づいて設定する。
Incidentally, in the
・ルール5
図14は、ルール5が適用されるグラフ35の一例を示す図である。
共用範囲15は、第4の範囲の一例であって、以下のように設定される。
・
FIG. 14 is a diagram showing an example of a
The shared
まず、提示部26は、切り出し範囲13に含まれるプログラム群と切り出さない範囲14に含まれるプログラム群の各々からアクセスされるデータを共用範囲15に含める。
First, the
図14の例では、データd3が、切り出し範囲13のプログラム群p2及び切り出さない範囲14のプログラム群p4からアクセスされており、切り出し範囲13と切り出さない範囲14が共用しているデータと捉えることができる。よって、提示部26は、共用範囲15にデータd3を含める。同様の理由により、データd5も共用範囲15に含められる。
In the example of FIG. 14, data d 3 is accessed by program group p 2 in the
また、このように切り出し範囲13と切り出さない範囲14の各々のプログラム群からアクセスされるデータが存在するとき、そのデータにアクセスするプログラム群が存在することがある。図14の例では、データd3にアクセスするプログラム群p3がそのようなプログラム群となる。プログラム群p3は、アクセス先のデータd3と協働して一つのサービスを提供すると考えることができる。また、ユーザにとっては、同一のサービスを提供するプログラム群とデータとを同一の範囲に含めて提示された方が便利である。
Furthermore, when there is data that is accessed by each of the program groups in the
そこで、提示部26は、このように切り出し範囲13と切り出さない範囲14の各々のプログラム群からアクセスされるデータが存在するとき、そのデータにアクセスするプログラム群も共用範囲15に含める。これにより、前述のプログラム群p3も共用範囲15に含められることになる。
Therefore, when there is data accessed by each of the program groups in the
なお、プログラム群p3が切り出し範囲13と切り出さない範囲14のいずれか一方に既に分類されている場合には、切り出し範囲13と切り出さない範囲14の各々でプログラム群p3が共用されているとは言い難い。よって、提示部26は、切り出し範囲13と切り出さない範囲14の各々の外にあるプログラム群を切り出さない範囲14に含める候補とする。
Note that if the program group p 3 has already been classified into either the
図15は、共用範囲15を決めるルール5が適用されるグラフ35の別の例について示す図である。
FIG. 15 is a diagram showing another example of the
図15の例では、提示部26が、ルール5に従うことにより、切り出し範囲13のプログラム群p2と切り出さない範囲14のプログラム群p4の各々からアクセスされるデータd3を共用範囲15に含める。同様に、提示部26は、データd5も共用範囲15に含める。
In the example of FIG. 15, the
また、ルール5に従い、提示部26は、データd3にアクセスするプログラム群p3と、データd5にアクセスするプログラム群p5も切り出さない範囲14に含める。なお、プログラム群p5はデータd3とデータd5の二つにアクセスしているが、アクセス先の個数はルール5の解釈に影響を与えないため、このようにプログラム群p5も切り出さない範囲14に含めて構わない。
Further, according to
図16は、共用範囲15を決めるルール5が適用されるグラフ35の更に別の例について示す図である。
FIG. 16 is a diagram showing still another example of the
図16の例では、ルール5に従うことにより、切り出し範囲13のプログラム群p2と切り出さない範囲14のプログラム群p0の各々からアクセスされるデータd1が共用範囲15に含められる。また、ルール5に従い、データd1にアクセスするプログラム群p1も切り出さない範囲14に含められる。
In the example of FIG. 16, by following
図17は、共用範囲15を決めるルール5が適用されるグラフ35の他の例について示す図である。
FIG. 17 is a diagram showing another example of the
図17の例では、切り出し範囲13に含まれるデータと切り出さない範囲14に含まれるデータのいずれにもアクセスしないプログラム群p0が存在する。そのプログラム群p0は、切り出し範囲13と切り出さない範囲14のどちらとも関連性がない独立したプログラム群である。そのように独立したプログラム群が存在することを提示すると、ユーザがプログラム資産11の現状を把握することができる。
In the example of FIG. 17, there is a program group p0 that does not access either data included in the
そこで、提示部26は、このように切り出し範囲13に含まれるデータと切り出さない範囲14に含まれるデータのいずれにもアクセスしないプログラム群も共用範囲15に含めて提示する。
Therefore, the
以上説明したように、本実施形態によれば、提示部26が、切り出し範囲13、切り出さない範囲14、及び共用範囲15を提示する。
As described above, according to the present embodiment, the
図18は、これらの各範囲と指定範囲12とが設定されたグラフ35を例示する図である。
FIG. 18 is a diagram illustrating a
図18に示すように、本実施形態に従って切り出し範囲13を設定すると、指定範囲12の全ての部分が切り出し範囲13に含まれるようになる。そのため、切り出し範囲13をプログラム資産11から切り出すことで、ユーザがプログラム群やデータの変更を希望する指定範囲12もプログラム資産11から切り出すことができる。これにより、指定範囲12と共に切り出すべき範囲が明確になると共に、その指定範囲12のプログラム群やデータを変更したときに影響を受ける範囲を切り出し範囲13に留めることが可能となる。
As shown in FIG. 18, when the
図19は、図2~図3の例で説明した方法で切り出し範囲13が設定されたグラフ35を例示する図である。
FIG. 19 is a diagram illustrating a
その切り出し範囲13は、指定範囲12を考慮せずに、前述のようにプログラムの依存関係のみを利用して設定される。そのため、一つの切り出し範囲13の中に、指定範囲12に属するプログラム群p2と、指定範囲12に属さないプログラム群p3及びデータd2、d3が生じてしまう。その結果、プログラム群p3とデータd2、d3とを切り出すべきかどうかをユーザが明確に判断することができず、プログラム資産11の変更や保守が困難となる。
The
ところで、プログラム資産11の中には、実行時に指定範囲12に含まれるプログラム群が使用しないデータや、指定範囲12に含まれるデータを使用しないプログラム群がある。このように実行時に使用されないプログラム群やデータは、指定範囲12に含まれるプログラム群やデータに対する変更の影響を受けないため、プログラム資産11から切り出さずに残すことができる。
By the way, among the
特定部27(図6参照)は、このような未使用のデータとプログラム群とを特定するための処理部である。 The specifying unit 27 (see FIG. 6) is a processing unit for specifying such unused data and program groups.
その処理について図20を参照して説明する。
図20は、未使用のデータと未使用のプログラム群とを特定する処理について模式的に示す図である。
The processing will be explained with reference to FIG. 20.
FIG. 20 is a diagram schematically showing the process of identifying unused data and unused program groups.
ここでは、プログラム群p1の起点がプログラムPG1であり、プログラム群p2の起点がプログラムPG2であるとする。そして、各プログラム群p1、p2に共通に含まれるプログラムPG4が、ソースコード上でデータd1とデータd2の両方にアクセスしているものとする。 Here, it is assumed that the starting point of program group p 1 is program PG1, and the starting point of program group p 2 is program PG2. It is assumed that a program PG4 commonly included in each program group p 1 and p 2 accesses both data d 1 and data d 2 in the source code.
このような依存関係によれば、ソースコード上ではプログラムPG1がプログラムPG4を介してデータd1とデータd2の両方にアクセスしているように見える。しかし、実際にプログラムを実行すると、以下のように未使用のデータが発生する。 According to such a dependency relationship, it appears in the source code that program PG1 is accessing both data d 1 and data d 2 via program PG4. However, when the program is actually executed, unused data is generated as shown below.
ログ情報33を参照すると、プログラムPG1は、プログラムPG4の100行目の命令を呼び出している。その命令は、命令アクセス情報34を参照すると、データd1にアクセスする命令であって、データd2にアクセスする命令ではない。これにより、データd2は、プログラムPG1がアクセスしない未使用のデータであることが分かる。同様に、データd1が、プログラムPG2がアクセスしない未使用のデータであることも分かる。
Referring to the
これを利用して、特定部27は、以下のように未使用のデータやプログラム群を特定する。
Using this, the specifying
まず、特定部27は、ログ情報33を記憶した記憶部23を参照することにより、呼び出し元のプログラムを実行したときに、呼び出し先のプログラムが実際に呼び出す命令の位置を特定する。
First, by referring to the
図20のログ情報33の一行目では、呼び出し先のプログラムPG4における100行目の命令が呼び出されている。よって、特定部27は、呼び出し先のプログラムPG4における100行目の命令が、呼び出し元のプログラムPG1を実行したときに呼び出されることを特定する。同様に、特定部27は、呼び出し先のプログラムPG4における105行目の命令が、呼び出し元のプログラムPG2を実行したときに呼び出されることを特定する。
In the first line of the
次に、特定部27は、命令アクセス情報34を記憶した記憶部23を参照することにより、先に特定した命令の位置に対応しないデータを、呼び出し元のプログラムが使用していないことを特定する。
Next, the identifying
例えば、命令アクセス情報34に含まれるデータd1を考える。命令アクセス情報34においてデータd1に対応する命令の位置は、プログラムPG4の100行目である。この位置は、ログ情報33におけるプログラムPG2に対応した位置(プログラムPG4の105行目)とは異なる。よって、実際にはプログラムPG2がデータd1を使用しないことが特定部27によって特定される。同様に、プログラムPG1が実際にはデータd2を使用しないことが特定部27によって特定される。
For example, consider data d 1 included in the
この処理によって生成された結果を図21に示す
図21は、未使用のデータを特定した結果を模式的に示す図である。
図21に示すように、実行時にプログラムPG1が使用するのはデータd1であり、データd2をプログラムPG1は使用しない。また、実行時にプログラムPG2が使用するのはデータd2であり、データd1をプログラムPG2は使用しない。
The results generated by this process are shown in FIG. 21. FIG. 21 is a diagram schematically showing the results of identifying unused data.
As shown in FIG. 21, during execution, program PG1 uses data d1 , and program PG1 does not use data d2 . Further, during execution, program PG2 uses data d2 , and program PG2 does not use data d1 .
グラフ生成部25は、特定部27のこの処理の結果を以下のようにグラフ35に反映させる。
The
図22(a)、(b)は、図21のプログラム群p1、p2とデータd1、d2から生成されるグラフ35に対し、未使用のデータを特定した結果をグラフ生成部25が反映させる方法について模式的に示す図である。
22A and 22B show the results of identifying unused data in the
このうち、図22(a)は、結果を反映させる前のグラフ35を模式的に示す図である。結果を反映させる前は、グラフ生成部25によって、プログラム群p1がデータd2にアクセスすることを示すエッジがプログラム群p1とデータd2との間に張られる。同様に、グラフ生成部25によって、プログラム群p2とデータd1との間にもエッジが張られる。
Of these, FIG. 22(a) is a diagram schematically showing the
一方、図22(b)は、未使用のデータを特定した結果を反映させた後のグラフ35を模式的に示す図である。グラフ生成部25は、結果を反映させるために、プログラム群p1とデータd2との間のエッジを、データが未使用であることを示す点線に変える。同様に、グラフ生成部25は、プログラム群p2とデータd1との間のエッジを点線にする。
On the other hand, FIG. 22(b) is a diagram schematically showing the
ここで、ユーザがプログラム群p1とデータd1とを含む指定範囲12を指定した場合を考える。
Here, consider a case where the user specifies a specified
この場合、提示部26は、指定範囲12に含まれるプログラム群p1が実行時に使用しないデータd2を未使用範囲16に含める。例えば、提示部26は、プログラム群p1とデータd2との間のエッジが点線である場合に、そのデータd2を未使用範囲16に含める。
In this case, the
更に、提示部26は、指定範囲12に含まれるデータd1を実行時に使用しないプログラム群p2も未使用範囲16に含める。この場合も、提示部26は、プログラム群p2とデータd1との間のエッジが点線である場合に、そのプログラム群p2を未使用範囲16に含める。
Furthermore, the
未使用範囲16は、第5の範囲の一例であって、指定範囲12に含まれるプログラム群p1とデータd1をユーザが変更してもその影響を受けない範囲である。よって、提示部26が未使用範囲16を提示することにより、ユーザが未使用範囲16をプログラム資産11から切り出す必要はないと判断することが可能となる。
The
[全体処理の流れ]
図23は、本実施形態に係る情報提示方法の全体的な処理の流れを示すフローチャートである。
[Overall processing flow]
FIG. 23 is a flowchart showing the overall processing flow of the information presentation method according to this embodiment.
図23に示すように、情報提示装置10は各種情報を受け付ける(ステップS1)。例えば、情報提示装置10は、指定範囲12、プログラムアクセス情報31、ログ情報33、及び命令アクセス情報34の各々を受け付ける。
As shown in FIG. 23, the
次いで、情報提示装置10は、プログラムアクセス情報31に基づいてグラフ35を生成し(ステップS2)、そのグラフ35上で未使用データを反映させる(ステップS3)。未使用データを反映させる方法としては、図22に示したように、未使用のデータとプログラム群との間のエッジを点線にする等の方法がある。
Next, the
そして、情報提示装置10は、切り出し範囲13の設定処理を行い(ステップS4)、その後に切り出さない範囲14の設定処理を行う(ステップS5)。続いて、情報提示装置10は、共用範囲15の設定処理を行い(ステップS6)、未使用範囲16の設定処理を行う(ステップS7)。
Then, the
その後、情報提示装置10は、指定範囲12、切り出し範囲13、切り出さない範囲14、共用範囲15、及び未使用範囲16の各範囲をCUIやGUIで提示する(ステップS8)。
After that, the
GUIの場合には、提示部26は、図18や図22(b)のようにグラフ35に各範囲を重ねて表示するための表示情報を生成する。
In the case of GUI, the
また、CUIの場合には、提示部26は、各範囲に含まれるグラフ35のノードを列挙するような表示情報を生成する。図18のグラフ35の場合には、提示部26は、例えば以下のようにノードを列挙するための括弧「{}」を用意し、その括弧の中に各ノードを列挙して提示すればよい。
Further, in the case of CUI, the
指定範囲12:{p1, p2}
切り出し範囲13:{p1, p2, d1, d2}
切り出さない範囲14: {p4, d4}, {p5, p6, d6}
共用範囲15:{p3, d3}, {d5}, {p0}
Specified range 12: {p 1 , p 2 }
Cutting range 13: {p 1 , p 2 , d 1 , d 2 }
Range not to be extracted 14: {p 4 , d 4 }, {p 5 , p 6 , d 6 }
Shared range 15: {p 3 , d 3 }, {d 5 }, {p 0 }
また、図22のグラフ35の場合には、提示部26は、以下のように未使用範囲16を提示し得る。
未使用範囲16:{p2, d2}
Furthermore, in the case of the
Unused range 16: {p 2 , d 2 }
[切り出し範囲の設定処理の流れ]
次に、図23のステップS4で実行される切り出し範囲の設定処理について説明する。
[Flow of processing for setting cropping range]
Next, the cutting range setting process executed in step S4 of FIG. 23 will be described.
図24は、切り出し範囲の設定処理の流れを示すフローチャートである。 FIG. 24 is a flowchart showing the flow of the cutting range setting process.
図24に示すように、提示部26は、切り出し範囲13を空に初期化する(ステップS11)。例えば、提示部26は、切り出し範囲13を提示するための括弧「{}」の中身を空に初期化する。
As shown in FIG. 24, the
続いて、提示部26は、指定範囲12を切り出し範囲13に追加する(ステップS12)。例えば、図12(a)のように指定範囲12にプログラム群p2とデータd2が含まれている場合には、提示部26はプログラム群p2とデータd2とを切り出し範囲13に追加する。
Subsequently, the
次いで、提示部26は、指定範囲12に含まれるデータに指定範囲12の外からアクセスするプログラム群を切り出し範囲13に追加する(ステップS13)。図12(a)の例では、データd2にアクセスするプログラム群p1が切り出し範囲13に追加されることになる。
Next, the
そして、提示部26は、指定範囲12に含まれるプログラム群のみがアクセスするデータのうち、指定範囲12の外にあるデータを切り出し範囲13に追加する(ステップS14)。図11(a)の例では、データd2は、指定範囲12の外にあるデータであり、更に指定範囲12に含まれるプログラム群p2のみがアクセスするデータであるから、切り出し範囲13に追加されることになる。
Then, the
次に、提示部26は、指定範囲12の外にあるデータのうち、指定範囲12に含まれるデータに指定範囲12の外からアクセスするプログラム群のみがアクセスするデータを切り出し範囲に追加する(ステップS15)。図12(a)の例では、指定範囲12の外にあるデータd1がプログラム群p1のみからアクセスされている。そのプログラム群p1は、指定範囲12にあるデータd2に指定範囲12の外からアクセスするプログラム群である。よって、データd1が切り出し範囲13に追加されることになる。
Next, the
[切り出さない範囲の設定処理の流れ]
次に、図25のステップS5で実行される切り出さない範囲の設定処理について説明する。
[Flow of process for setting range not to be cut out]
Next, a description will be given of the process of setting the range not to be cut out, which is executed in step S5 of FIG. 25.
図25は、切り出さない範囲の設定処理の流れを示すフローチャートである。 FIG. 25 is a flowchart illustrating the process of setting a range that will not be cut out.
図25に示すように、提示部26は、切り出さない範囲14を空に初期化する(ステップS21)。例えば、提示部26は、切り出さない範囲14を提示するための括弧「{}」の中身を空に初期化する。
As shown in FIG. 25, the
続いて、提示部26は、指定範囲12に含まれるプログラム群からアクセスされないデータを切り出さない範囲14に追加する(ステップS22)。図13の例では、データd4、d6は、切り出し範囲13に含まれるプログラム群p1、p2からアクセスされていないため、切り出さない範囲14に追加される。
Subsequently, the
次に、提示部26は、ステップS22のデータにアクセスするプログラム群のうち、切り出し範囲13のデータにアクセスしないプログラム群を切り出さない範囲14に追加する(ステップS23)。図13の例ではプログラム群p4、p5、p6が切り出さない範囲14に追加される。
Next, the
[共用範囲の設定処理の流れ]
次に、図23のステップS6で実行される共用範囲の設定処理について説明する。
[Flow of sharing range setting process]
Next, the shared range setting process executed in step S6 of FIG. 23 will be described.
図26は、共用範囲の設定処理の流れを示すフローチャートである。
図26に示すように、提示部26は、共用範囲15を空に初期化する(ステップS31)。例えば、提示部26は、共用範囲15を提示するための括弧「{}」の中身を空に初期化する。
FIG. 26 is a flowchart showing the flow of shared range setting processing.
As shown in FIG. 26, the
次に、提示部26は、切り出し範囲13と切り出さない範囲14の各々のプログラム群からアクセスされるデータを共用範囲15に追加する(ステップS32)。図14の例では、データd3、d5が共用範囲15に追加される。
Next, the
続いて、提示部26は、ステップS32のデータにアクセスするプログラム群のうち、切り出し範囲13と切り出さない範囲14の各々の外にあるプログラム群を共用範囲15に追加する(ステップS33)。図14の例では、プログラム群p3が共用範囲15に追加される。
Subsequently, the
次いで、提示部26は、切り出し範囲13と切り出さない範囲14のいずれのデータにもアクセスしないプログラム群を共用範囲15に追加する(ステップS34)。図17の例ではプログラム群p0が共用範囲15に追加される。
Next, the
[未使用範囲の設定処理の流れ]
次に、図23のステップS7で実行される未使用範囲の設定処理について説明する。
[Flow of unused range setting process]
Next, the unused range setting process executed in step S7 of FIG. 23 will be described.
図27は、未使用範囲の設定処理の流れを示すフローチャートである。 FIG. 27 is a flowchart showing the flow of the unused range setting process.
図27に示すように、提示部26は、未使用範囲16を空に初期化する(ステップS41)。例えば、提示部26は、未使用範囲16を提示するための括弧「{}」の中身を空に初期化する。
As shown in FIG. 27, the
次いで、特定部27は、ログ情報33と命令アクセス情報34が記憶された記憶部23を参照することにより、プログラム実行の際に未使用となるデータを特定する(ステップS42)。例えば、特定部27は、ログ情報33と命令アクセス情報34において、呼び出し元のプログラムとデータとが対応付けられない場合に、その呼び出し元のプログラムが実行時にそのデータを使用しないと特定する。図22(b)の例では、プログラム群p1が実行時にデータd2を使用せず、プログラム群p2が実行時にデータd1を使用しないことが特定される。
Next, the identifying
続いて、提示部26は、特定部27の処理の結果を利用して、指定範囲12のプログラムが使用しないデータと、指定範囲12のデータを使用しないプログラム群とを未使用範囲16に追加する(ステップS43)。
Next, the presenting
[ハードウェア構成]
図28は、本実施形態に係る情報提示装置10のハードウェア構成図である。
[Hardware configuration]
FIG. 28 is a hardware configuration diagram of the
図28に示すように、情報提示装置10は、記憶装置10a、メモリ10b、プロセッサ10c、及び通信インターフェース10dを有する。これらの各部は、バス10eにより相互に接続される。
As shown in FIG. 28, the
このうち、記憶装置10aは、HDDやSSD(Solid State Drive)等の不揮発性のストレージデバイスであり、本実施形態に係る情報提示プログラム40を記憶する。
Among these, the
なお、情報提示プログラム40をコンピュータが読み取り可能な記録媒体10fに記録させておき、プロセッサ10cに記録媒体10fの情報提示プログラム40を読み取らせるようにしてもよい。
Note that the
そのような記録媒体10fとしては、例えばCD-ROM(Compact Disc - Read Only Memory)、DVD(Digital Versatile Disc)、及びUSB(Universal Serial Bus)メモリ等の物理的な可搬型記録媒体がある。また、フラッシュメモリ等の半導体メモリやハードディスクドライブを記録媒体10fとして使用してもよい。これらの記録媒体10fは、物理的な形態を持たない搬送波のような一時的な媒体ではない。
Examples of such a
更に、公衆回線、インターネット、及びLAN(Local Area Network)等に接続された装置に情報提示プログラム40を記憶させておき、プロセッサ10cがその情報提示プログラム40を読み出して実行するようにしてもよい。
Furthermore, the
一方、メモリ10bは、DRAM等のようにデータを一時的に記憶するハードウェアであって、その上に前述の情報提示プログラム40が展開される。
On the other hand, the
プロセッサ10cは、情報提示装置10の各部を制御したり、メモリ10bと協働して情報提示プログラム40を実行したりするCPU(Central Processing Unit)やGPU(Graphical Processing Unit)等のハードウェアである。
The
このようにメモリ10bとプロセッサ10cとが協働して情報提示プログラム40を実行することにより、図6に示したように、受付部24、グラフ生成部25、提示部26、及び特定部27を備えた制御部22が実現される。また、記憶部23は、記憶装置10aとメモリ10bによって実現される。
As shown in FIG. 6, the
更に、通信インターフェース10dは、情報提示装置10をLAN等のネットワークに接続するためのインターフェースである。その通信インターフェース10dにより通信部21(図6参照)が実現される。
Furthermore, the
以上説明した各実施形態に関し、更に以下の付記を開示する。
(付記1) コンピュータに、
複数のプログラム群と複数のデータの少なくとも一部を含む第1の範囲の指定を受け付ける処理と、
前記第1の範囲と、前記第1の範囲に含まれるデータに前記第1の範囲の外からアクセスするプログラム群と、複数の前記プログラム群のうち前記第1の範囲に含まれるプログラム群のみがアクセスするデータであって前記第1の範囲の外にあるデータとを含む第2の範囲を、複数の前記プログラム群と複数の前記データから切り出す範囲として提示する処理と、
を実行させるための情報提示プログラム。
(付記2) 前記提示する処理において、
複数の前記プログラム群のうち、前記第1の範囲に含まれるデータに前記第1の範囲の外からアクセスするプログラム群のみがアクセスするデータであって、前記第1の範囲の外のデータを前記第2の範囲に含めることを特徴とする付記1に記載の情報提示プログラム。
(付記3) 前記提示する処理において、
前記第2の範囲に含まれるプログラム群からアクセスされないデータと、当該データにアクセスするプログラム群のうち、前記第2の範囲に含まれるデータにアクセスしないプログラム群とを含む第3の範囲を、複数の前記プログラム群と複数の前記データから切り出さない範囲として提示することを特徴とする付記1に記載の情報提示プログラム。
(付記4) 前記提示する処理において、
前記第2の範囲に含まれるプログラム群及び前記第3の範囲に含まれるプログラム群の各々からアクセスされるデータと、当該データにアクセスするプログラム群であって、前記第2の範囲及び前記第3の範囲の各々の外にあるプログラム群と、前記第2の範囲に含まれるデータと前記第3の範囲に含まれるデータのいずれにもアクセスしないプログラム群とを含む第4の範囲を、前記第2の範囲と前記第3の範囲の各々のプログラム群とデータとが共用する共用範囲として提示することを特徴とする付記3に記載の情報提示プログラム。
(付記5) 前記提示する処理において、
前記第1の範囲のプログラム群に含まれるプログラムが実行時に使用しないデータと、前記第1の範囲に含まれるデータを実行時に使用しないプログラム群とを含む第5の範囲を、前記第1の範囲のプログラム群とデータが実行時に使用しない未使用範囲として提示することを特徴とする付記1に記載の情報提示プログラム。
(付記6) 前記プログラムと、当該プログラムが呼び出した呼び出し先のプログラムが実行時に呼び出した命令の位置とを対応させたログ情報と、前記命令の位置と前記命令がアクセスするデータとを対応させたアクセス情報とを記憶した記憶部を参照し、前記プログラムと前記データとが対応付けられない場合に、前記プログラムが実行時に前記データを使用しないことを特定する処理を更に有することを特徴とする付記5に記載の情報提示プログラム。
(付記7) 複数のプログラム群と複数のデータの少なくとも一部を含む第1の範囲の指定を受け付ける受付部と、
前記第1の範囲と、前記第1の範囲に含まれるデータに前記第1の範囲の外からアクセスするプログラム群と、複数の前記プログラム群のうち前記第1の範囲に含まれるプログラム群のみがアクセスするデータであって前記第1の範囲の外にあるデータとを含む第2の範囲を、複数の前記プログラム群と複数の前記データから切り出す範囲として提示する提示部と、
を有することを特徴とする情報提示装置。
(付記8) 複数のプログラム群と複数のデータの少なくとも一部を含む第1の範囲の指定を受け付ける処理と、
前記第1の範囲と、前記第1の範囲に含まれるデータに前記第1の範囲の外からアクセスするプログラム群と、複数の前記プログラム群のうち前記第1の範囲に含まれるプログラム群のみがアクセスするデータであって前記第1の範囲の外にあるデータとを含む第2の範囲を、複数の前記プログラム群と複数の前記データから切り出す範囲として提示する処理と、
をコンピュータが実行することを特徴とする情報提示方法。
Regarding each embodiment described above, the following additional notes are further disclosed.
(Additional note 1) On the computer,
a process of accepting a first range that includes at least part of a plurality of program groups and a plurality of data;
The first range, a program group that accesses data included in the first range from outside the first range, and only the program group included in the first range among the plurality of program groups. a process of presenting a second range including data to be accessed that is outside the first range as a range to be extracted from the plurality of program groups and the plurality of data;
An information presentation program for executing.
(Additional Note 2) In the process presented above,
Among the plurality of program groups, only the program group that accesses data included in the first range from outside the first range accesses the data, and the data outside the first range is The information presentation program according to
(Additional note 3) In the process presented above,
A third range including data that is not accessed by the program group included in the second range and a program group that does not access the data included in the second range among the program groups that access the data. The information presentation program according to
(Additional note 4) In the process presented above,
Data accessed by each of the program group included in the second range and the program group included in the third range, and the program group that accesses the data, the program group included in the second range and the third range. and a program group that accesses neither the data included in the second range nor the data included in the third range; 3. The information presentation program according to appendix 3, wherein the information presentation program is presented as a shared range that is shared by the program groups and data of each of the
(Additional note 5) In the process presented above,
A fifth range that includes data that is not used during execution by programs included in the program group in the first range, and a program group that does not use data included in the first range during execution, is defined as the first range. The information presentation program according to
(Additional Note 6) Log information that associates the position of an instruction called by the program and a called program called by the program during execution, and a correspondence between the position of the instruction and the data accessed by the instruction. Supplementary note characterized in that the method further comprises a process of specifying that the program does not use the data during execution when the program and the data are not associated with each other by referring to a storage unit that stores the access information. The information presentation program described in 5.
(Additional Note 7) A reception unit that accepts designation of a first range including at least part of a plurality of program groups and a plurality of data;
The first range, a program group that accesses data included in the first range from outside the first range, and only the program group included in the first range among the plurality of program groups. a presentation unit that presents a second range including data to be accessed that is outside the first range as a range to be extracted from the plurality of program groups and the plurality of data;
An information presentation device comprising:
(Additional Note 8) Processing for accepting the designation of a first range including at least part of a plurality of program groups and a plurality of data;
The first range, a program group that accesses data included in the first range from outside the first range, and only the program group included in the first range among the plurality of program groups. a process of presenting a second range including data to be accessed that is outside the first range as a range to be extracted from the plurality of program groups and the plurality of data;
An information presentation method characterized by being executed by a computer.
1、11…プログラム資産、7…切り出し範囲、8…指定範囲、10…情報提示装置、10a…記憶装置、10b…メモリ、10c…プロセッサ、10d…通信インターフェース、10e…バス、10f…記録媒体、12…指定範囲、13…切り出し範囲、14…切り出さない範囲、15…共用範囲、16…未使用範囲、21…通信部、22…制御部、23…記憶部、24…受付部、25…グラフ生成部、26…提示部、27…特定部、31…プログラムアクセス情報、33…ログ情報、34…命令アクセス情報、35…グラフ、40…情報提示プログラム。
DESCRIPTION OF
Claims (5)
複数のプログラム群と複数のデータの少なくとも一部を含む第1の範囲の指定を受け付ける処理と、
前記複数のプログラム群と、当該複数のプログラム群がそれぞれアクセスする前記複数のデータとを対応付けた情報に基づいてグラフを生成する処理と、
前記グラフ上で未使用データを反映させる処理と、
前記第1の範囲と、前記第1の範囲に含まれるデータに前記第1の範囲の外からアクセスするプログラム群と、複数の前記プログラム群のうち前記第1の範囲に含まれるプログラム群のみがアクセスするデータであって前記第1の範囲の外にあるデータとを含む第2の範囲を、複数の前記プログラム群と複数の前記データから切り出す範囲として、前記グラフ上に重ねて提示する処理と、
を実行させるための情報提示プログラム。 to the computer,
a process of accepting a first range that includes at least part of a plurality of program groups and a plurality of data;
a process of generating a graph based on information associating the plurality of program groups with the plurality of data accessed by the plurality of program groups;
a process of reflecting unused data on the graph;
The first range, a program group that accesses data included in the first range from outside the first range, and only the program group included in the first range among the plurality of program groups. a process of superimposing and presenting a second range including data to be accessed and data outside the first range on the graph as a range cut out from the plurality of program groups and the plurality of data; ,
An information presentation program for executing.
複数の前記プログラム群のうち、前記第1の範囲に含まれるデータに前記第1の範囲の外からアクセスするプログラム群のみがアクセスするデータであって、前記第1の範囲の外のデータを前記第2の範囲に含めることを特徴とする請求項1に記載の情報提示プログラム。 In the process presented above,
Among the plurality of program groups, only the program group that accesses data included in the first range from outside the first range accesses the data, and the data outside the first range is The information presentation program according to claim 1, characterized in that it is included in the second range.
前記第2の範囲に含まれるプログラム群からアクセスされないデータと、当該データにアクセスするプログラム群のうち、前記第2の範囲に含まれるデータにアクセスしないプログラム群とを含む第3の範囲を、複数の前記プログラム群と複数の前記データから切り出さない範囲として提示することを特徴とする請求項1に記載の情報提示プログラム。 In the process presented above,
A third range including data that is not accessed by the program group included in the second range and a program group that does not access the data included in the second range among the program groups that access the data. The information presentation program according to claim 1, wherein the information presentation program is presented as a range that is not extracted from the program group and a plurality of the data.
前記複数のプログラム群と、当該複数のプログラム群がそれぞれアクセスする前記複数のデータとを対応付けた情報に基づいてグラフを生成するとともに、前記グラフ上で未使用データを反映させるグラフ生成部と、
前記第1の範囲と、前記第1の範囲に含まれるデータに前記第1の範囲の外からアクセスするプログラム群と、複数の前記プログラム群のうち前記第1の範囲に含まれるプログラム群のみがアクセスするデータであって前記第1の範囲の外にあるデータとを含む第2の範囲を、複数の前記プログラム群と複数の前記データから切り出す範囲として、前記グラフ上に重ねて提示する提示部と、
を有することを特徴とする情報提示装置。 a reception unit that accepts specification of a first range including at least part of a plurality of program groups and a plurality of data;
a graph generation unit that generates a graph based on information associating the plurality of program groups with the plurality of data accessed by the plurality of program groups, and reflects unused data on the graph;
The first range, a program group that accesses data included in the first range from outside the first range, and only the program group included in the first range among the plurality of program groups. a presentation unit that presents a second range that includes data to be accessed and that is outside the first range, overlaid on the graph as a range to be extracted from the plurality of program groups and the plurality of data; and,
An information presentation device comprising:
前記複数のプログラム群と、当該複数のプログラム群がそれぞれアクセスする前記複数のデータとを対応付けた情報に基づいてグラフを生成する処理と、
前記グラフ上で未使用データを反映させる処理と、
前記第1の範囲と、前記第1の範囲に含まれるデータに前記第1の範囲の外からアクセスするプログラム群と、複数の前記プログラム群のうち前記第1の範囲に含まれるプログラム群のみがアクセスするデータであって前記第1の範囲の外にあるデータとを含む第2の範囲を、複数の前記プログラム群と複数の前記データから切り出す範囲として、前記グラフ上に重ねて提示する処理と、
をコンピュータが実行することを特徴とする情報提示方法。 a process of accepting a first range that includes at least part of a plurality of program groups and a plurality of data;
a process of generating a graph based on information associating the plurality of program groups with the plurality of data accessed by the plurality of program groups;
a process of reflecting unused data on the graph;
The first range, a program group that accesses data included in the first range from outside the first range, and only the program group included in the first range among the plurality of program groups. a process of superimposing and presenting a second range including data to be accessed and data outside the first range on the graph as a range cut out from the plurality of program groups and the plurality of data; ,
An information presentation method characterized by being executed by a computer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019191821A JP7356013B2 (en) | 2019-10-21 | 2019-10-21 | Information presentation program, information presentation device, and information presentation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019191821A JP7356013B2 (en) | 2019-10-21 | 2019-10-21 | Information presentation program, information presentation device, and information presentation method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021068091A JP2021068091A (en) | 2021-04-30 |
JP7356013B2 true JP7356013B2 (en) | 2023-10-04 |
Family
ID=75637242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019191821A Active JP7356013B2 (en) | 2019-10-21 | 2019-10-21 | Information presentation program, information presentation device, and information presentation method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7356013B2 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011060062A (en) | 2009-09-11 | 2011-03-24 | Hitachi Information Systems Ltd | Support system, support method, and support program for system specification change |
US8806450B1 (en) | 2008-06-26 | 2014-08-12 | Juniper Networks, Inc. | Static analysis in selective software regression testing |
JP2018028776A (en) | 2016-08-17 | 2018-02-22 | 日本電気株式会社 | Software asset management device, software asset management method, and software asset management program |
JP2018045508A (en) | 2016-09-15 | 2018-03-22 | 日本電気株式会社 | Information processing device, information processing method, and program |
JP2019133541A (en) | 2018-02-02 | 2019-08-08 | 富士通株式会社 | Separation method, separation apparatus and separation program |
-
2019
- 2019-10-21 JP JP2019191821A patent/JP7356013B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8806450B1 (en) | 2008-06-26 | 2014-08-12 | Juniper Networks, Inc. | Static analysis in selective software regression testing |
JP2011060062A (en) | 2009-09-11 | 2011-03-24 | Hitachi Information Systems Ltd | Support system, support method, and support program for system specification change |
JP2018028776A (en) | 2016-08-17 | 2018-02-22 | 日本電気株式会社 | Software asset management device, software asset management method, and software asset management program |
JP2018045508A (en) | 2016-09-15 | 2018-03-22 | 日本電気株式会社 | Information processing device, information processing method, and program |
JP2019133541A (en) | 2018-02-02 | 2019-08-08 | 富士通株式会社 | Separation method, separation apparatus and separation program |
Also Published As
Publication number | Publication date |
---|---|
JP2021068091A (en) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6875557B2 (en) | Methods and devices for writing service data to the blockchain system | |
CN102929786B (en) | The volatile memory of non-volatile memory device set represents | |
JP6542909B2 (en) | File operation method and apparatus | |
US10353636B2 (en) | Write filter with dynamically expandable overlay | |
US8849753B2 (en) | Automating asynchronous programming in single threaded systems | |
JP6506412B2 (en) | Application loading method and apparatus | |
JP2011520201A (en) | Providing search results for mobile computing devices | |
CN107391544B (en) | Processing method, device and equipment of column type storage data and computer storage medium | |
US20230177009A1 (en) | Techniques for handling letter case in file systems | |
JP5062909B2 (en) | Copy files from one directory to another | |
CN105260139B (en) | A kind of disk management method and system | |
JP7356013B2 (en) | Information presentation program, information presentation device, and information presentation method | |
EP1850250A1 (en) | Method and system for renewing an index | |
US10372299B2 (en) | Preserve input focus in virtualized dataset | |
CN109324867A (en) | A kind of virtual machine temporary storage method, restoration methods and device | |
US9507794B2 (en) | Method and apparatus for distributed processing of file | |
US20230409235A1 (en) | File system improvements for zoned storage device operations | |
US7949632B2 (en) | Database-rearranging program, database-rearranging method, and database-rearranging apparatus | |
US20150006578A1 (en) | Dynamic search system | |
JP5488587B2 (en) | Information processing system and method | |
US8977814B1 (en) | Information lifecycle management for binding content | |
US11442668B2 (en) | Prioritizing volume accesses in multi-volume storage device based on execution path of a service | |
JP5928577B2 (en) | Determination device, determination system, determination method, and determination program | |
JP5963313B2 (en) | Information processing apparatus, method, and program | |
JP2023177481A (en) | Request specification device, method for specifying requirement, and requirement specification program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220708 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230412 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230418 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230609 |
|
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: 20230822 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230904 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7356013 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |