JP2008123254A - INFLUENCE ANALYSIS TOOL FOR LARGE-SCALE BUSINESS SYSTEM USING Java (R) LANGUAGE PROGRAM - Google Patents

INFLUENCE ANALYSIS TOOL FOR LARGE-SCALE BUSINESS SYSTEM USING Java (R) LANGUAGE PROGRAM Download PDF

Info

Publication number
JP2008123254A
JP2008123254A JP2006306422A JP2006306422A JP2008123254A JP 2008123254 A JP2008123254 A JP 2008123254A JP 2006306422 A JP2006306422 A JP 2006306422A JP 2006306422 A JP2006306422 A JP 2006306422A JP 2008123254 A JP2008123254 A JP 2008123254A
Authority
JP
Japan
Prior art keywords
class
information
concrete
destination
java
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006306422A
Other languages
Japanese (ja)
Other versions
JP4948126B2 (en
Inventor
Yoichi Kitagawa
陽一 北川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NIPPON SHOKEN TECHNOLOGY KK
Original Assignee
NIPPON SHOKEN TECHNOLOGY KK
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NIPPON SHOKEN TECHNOLOGY KK filed Critical NIPPON SHOKEN TECHNOLOGY KK
Priority to JP2006306422A priority Critical patent/JP4948126B2/en
Publication of JP2008123254A publication Critical patent/JP2008123254A/en
Application granted granted Critical
Publication of JP4948126B2 publication Critical patent/JP4948126B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a tool for extremely reducing a load on the maintenance work of a large-scale business system using a Java (R) language program. <P>SOLUTION: The tool for analyzing the Java (R) language program extracts class information, method information, and reference destination method information from the class file of the Java (R) language program. The tool generates, based on the extracted information, pair information of the combination of an association source concrete class method ID, composed of a concrete class ID and a concrete method ID, with an association destination concrete class method ID, which is the association destination of the association source concrete class method ID. The tool designates the desired class method, extracts the series of concrete class methods to be associated with the class method, and displays the methods on a screen. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、Java(登録商標)言語プログラムの分析ツールに関し、特にJava言語プログラムを用いた大規模業務系の影響分析ツールに関する。なお、Javaは米Sun Microsystems,Incの登録商標である。   The present invention relates to an analysis tool for a Java (registered trademark) language program, and particularly to an impact analysis tool for a large-scale business system using the Java language program. Java is a registered trademark of Sun Microsystems, Inc.

例えば証券業務などのような大規模業務系においては、従来、COBOL言語プログラムが一般に用いられている。そして保守効率を上げるために、プログラムは処理目的毎に分類され、階層化された構造を有するのが一般的である。また、プログラムが階層化された構造であることを前提とした構造解析ツール類も充実しており、これらのツールを使うことによって、効率的にシステムの保守を行うことができる。   For example, in a large-scale business system such as a securities business, a COBOL language program has been generally used. In order to increase maintenance efficiency, the program is generally classified for each processing purpose and has a hierarchical structure. In addition, there are a variety of structural analysis tools that presuppose that the program has a hierarchical structure. By using these tools, the system can be efficiently maintained.

ところで最近は、大規模業務系の再構築に当たり、使用言語をCOBOLからJavaに置き換える例が増えている。   Recently, in order to reconstruct a large-scale business system, an example in which the language used is changed from COBOL to Java is increasing.

COBOL言語に比べて、Java言語は生産性、拡張性及び適用性に優れているため、オープンシステムの開発用に広く用いられているが、保守作業効率において後述のような様々な問題があるため、非常に限られた条件の中でしか使用されていないのが実状である。   Compared to the COBOL language, the Java language is superior in productivity, extensibility, and applicability, so it is widely used for open system development. However, there are various problems in maintenance work efficiency as described below. In fact, it is used only in very limited conditions.

以下、まずJava言語の概要について述べ、次に大規模業務システムの開発にJava言語プログラムを用いた場合の課題について述べる。   In the following, the outline of the Java language will be described first, and then problems when the Java language program is used for the development of a large-scale business system will be described.

Java言語のプログラムは、複数のクラスの組み合わせにより成り立っている。クラスとは、データと処理とをまとめたものと言える。つまりJava言語では、関連するデータや処理をまとめたクラスという部品を作っておき、それらを自由に組み合わせたり、再利用して複雑なプログラムを作成する。クラスを構成するデータをフィールド、処理をメソッドと言い、フィールドやメソッドをクラスのメンバと称する。   A Java language program is composed of a combination of a plurality of classes. A class is a collection of data and processing. In other words, in the Java language, a part called a class in which related data and processes are collected is created, and a complex program is created by freely combining and reusing them. Data constituting a class is called a field, processing is called a method, and a field or method is called a class member.

クラスはプログラムコードであり、これを実際にコンピュータで実行するためには、オブジェクトを生成しなければならない。オブジェクトとは、プログラムコードであるクラスが、コンピュータメモリ上に実行可能な状態に存在している場合のクラスに対する呼称である。クラスからオブジェクトを生成することをインスタンス化又はオブジェクト化という。   A class is program code, and in order to actually execute it on a computer, an object must be created. An object is a name for a class when a class that is a program code exists in an executable state on a computer memory. Creating an object from a class is called instantiation or objectification.

フィールドとは、クラス内の変数(データ)であり、メソッドとは、データの操作方法(処理)を定義したものである。処理の対象となる値を引数(パラメータ)といい、処理の結果の値のことを戻り値(返り値)という。   A field is a variable (data) in a class, and a method defines a data operation method (processing). The value to be processed is called an argument (parameter), and the value resulting from the processing is called a return value (return value).

Java言語プログラムの拡張性及び適用性が優れている一つの理由は、クラスの継承という仕組みがあるからである。クラスの継承とは、クラスがほかのクラスのメンバを受け継ぐ機能である。例えば、クラスAのメンバをクラスBが受け継ぐことができる。継承する元となるクラスをスーパークラス(親クラス)、継承して作ったクラスをサブクラス(子クラス)という。   One reason why the extensibility and applicability of Java language programs is excellent is that there is a mechanism of class inheritance. Class inheritance is a function in which a class inherits members of another class. For example, class B can inherit class A members. The class that is inherited is called a superclass (parent class), and the class that is inherited is called a subclass (child class).

またJava言語では、クラスに対するアクセス方法を定義した、インターフェースと称されるものが使用される。インターフェースはクラスと似たものであるが、定数と、後述の抽象メソッドしかメンバになれないところがクラスとは異なる。   In the Java language, what is called an interface that defines an access method for a class is used. An interface is similar to a class, but differs from a class in that only constants and the abstract methods described below can be members.

クラスは、抽象クラスと具象クラス及びインターフェースに分類される。抽象クラスは、通常のクラスにインターフェースの機能を付加したものであり、具象クラスは、実際のプログラムコードを記述し、インスタンス化可能としたものである。インターフェースと抽象クラスは、そのままではインスタンス化することはできない。つまり、抽象クラス、具象クラス、インターフェースのうちで、オブジェクトコードを生成できるのは具象クラスのみである。   Classes are classified into abstract classes, concrete classes, and interfaces. An abstract class is obtained by adding an interface function to a normal class, and a concrete class describes an actual program code and can be instantiated. Interfaces and abstract classes cannot be instantiated as they are. In other words, among the abstract class, concrete class, and interface, only the concrete class can generate object code.

一方メソッドも、抽象メソッドと具象メソッドに分類される。抽象メソッドとは、メソッドの名前、戻り型、引数だけを定義し、ロジック(処理の内容)は定義していないものをいう。この抽象メソッドはインターフェースと、抽象クラスにおいて定義される。具象メソッドは、メソッドの名前、戻り型、引数及びロジックを定義したもので、抽象クラス又は具象クラスで定義される。参照先の具象メソッドを実装メソッドと称し、実装メソッドを有するクラスを実装クラスと称することもある。   On the other hand, methods are also classified into abstract methods and concrete methods. An abstract method is a method that defines only the method name, return type, and arguments, but does not define logic (contents of processing). This abstract method is defined in the interface and the abstract class. A concrete method defines a method name, a return type, an argument, and logic, and is defined by an abstract class or a concrete class. The concrete method of the reference destination may be referred to as an implementation method, and a class having the implementation method may be referred to as an implementation class.

次に、Java言語を用いて記述されたプログラムを図1−1を用いて説明する。   Next, a program written using the Java language will be described with reference to FIG.

図の100,300,400は具象クラス、200はインターフェースの一例を示す。具象クラス100は、Userclassという名前を有する。そのクラスは、usrmdtというメソッドを有する。そのメソッドは、参照先がIStrategyというインターフェースであることを示している。   In the figure, reference numerals 100, 300, and 400 denote concrete classes, and reference numeral 200 denotes an example of an interface. The concrete class 100 has the name Userclass. The class has a method called usrmdt. The method indicates that the reference destination is an interface called IStrategy.

一方、インターフェース200は、IStrategyという名称を有し、tcという抽象メソッドを含んでいる。   On the other hand, the interface 200 has a name IStrategy and includes an abstract method tc.

また具象クラス300は、classAという名称を有し、tcという具象メソッドを有する。具象クラス300はオブジェクトを生成しているので実装クラスと称される。具象クラス100は、インターフェース200を介して別の具象クラス300と関連付けられるので、本明細書では、100を関連元クラス、300を関連先クラスという。   The concrete class 300 has a name classA and a concrete method tc. The concrete class 300 is called an implementation class because it generates an object. Since the concrete class 100 is associated with another concrete class 300 via the interface 200, in this specification, 100 is referred to as an association source class, and 300 is referred to as an association destination class.

図1−2は、図1−1のように記述されたプログラムのクラス間の関係を表すクラス図である。クラス100はインターフェース200を参照し、クラス300はクラス400を参照している。また、クラス300はインターフェース200を継承しているので、500で示す記号を用いて表示される。   FIG. 1-2 is a class diagram showing the relationship between classes of programs described as in FIG. 1-1. Class 100 refers to interface 200 and class 300 refers to class 400. Further, since the class 300 inherits the interface 200, it is displayed using a symbol 500.

図1−3は、オブジェクト同士の関係を示すシーケンス図である。前述のように、具象クラス、抽象クラス及びインターフェースのうちでオブジェクトを生成できるのは具象クラスだけである。この図は、クラス100,300,400のオブジェクト100´,300´,400´の関係を示している。クラス100,300,400のオブジェクトは一般に、別のクラスにより生成される。各オブジェクト100´,300´,400´を生成しているクラスを生成クラスと称し、クラス100,300,400を被生成クラスと称する。   FIG. 1C is a sequence diagram illustrating the relationship between objects. As described above, only concrete classes can generate objects among concrete classes, abstract classes, and interfaces. This figure shows the relationship between objects 100 ′, 300 ′, and 400 ′ of classes 100, 300, and 400. Objects of class 100, 300, 400 are generally created by another class. A class that generates each object 100 ′, 300 ′, and 400 ′ is referred to as a generation class, and classes 100, 300, and 400 are referred to as generated classes.

次に、一つのクラスに含まれる情報について説明する。   Next, information included in one class will be described.

図1−4は、一つのクラスに含まれる情報とその関連を示す図である。1つのクラスには、クラス情報10、メソッド情報20、データ情報60及びメソッド間の関連を示す情報30が含まれる。   FIG. 1-4 is a diagram illustrating information included in one class and the relationship between the information. One class includes class information 10, method information 20, data information 60, and information 30 indicating a relationship between methods.

クラス情報10には、クラスID11、クラス名12、スーパークラス名(親クラス名)13、インターフェース名14が含まれる。また、メソッド情報20には、メソッドID21、メソッド名22、メソッドの型(具象タイプ、抽象タイプ)23、引数24及び引数の型25の情報が含まれる。   The class information 10 includes a class ID 11, a class name 12, a super class name (parent class name) 13, and an interface name 14. The method information 20 includes information on a method ID 21, a method name 22, a method type (concrete type, abstract type) 23, an argument 24, and an argument type 25.

メソッド間関連情報30としては、メソッド21が参照するメソッド31、参照するメソッドのメソッド名32、参照メソッドの引数のタイプ33が含まれる。参照先メソッド31は、static修飾子のついたメソッド34、インターフェースのメソッド35、コンストラクタという特殊なメソッド36及びその他のメソッド37の4種類に分類される。コンストラクタはオブジェクトの生成のときに自動的に呼び出されるメソッドであり、staticメソッドは、どのオブジェクトでも動作を同じにする特殊なメソッドである。   The inter-method relation information 30 includes a method 31 referred to by the method 21, a method name 32 of the referred method, and an argument type 33 of the reference method. The reference method 31 is classified into four types: a method 34 with a static qualifier, an interface method 35, a special method 36 called a constructor, and another method 37. A constructor is a method that is automatically called when an object is created, and a static method is a special method that makes the operation the same for any object.

インターフェース35には、インターフェース名41とメソッド型42の情報が含まれ、その他のクラス37にも同様に、参照先のクラス38とメソッドの型39の情報が含まれる。またstaticメソッド34には、参照先クラス40の情報が含まれる。   The interface 35 includes information on the interface name 41 and the method type 42, and the other class 37 also includes information on the reference class 38 and the method type 39. The static method 34 includes information on the reference destination class 40.

当該クラス10でオブジェクトを生成する場合は、そのオブジェクトを生成する対象となったクラス50の情報であるクラス名51が含まれる。   When an object is generated with the class 10, a class name 51 that is information of the class 50 that is a target for generating the object is included.

一方、クラス10のフィールドに関する情報60として変数名61、変数を参照する場合の参照先クラス62、変数の型63等の情報が含まれる。   On the other hand, information 60 such as a variable name 61, a reference class 62 when referring to a variable, a variable type 63, and the like is included as information 60 on the class 10 field.

次に、Java言語プログラムを大規模業務系に用いた場合の問題点について述べる。
Java言語は多数のクラスの組み合わせにより成り立っているため、生産性に優れ、また、システムを拡張するのに適した言語でもある。しかしながらシステムを保守する場合には、以下説明するような数々の問題がある。
Next, problems when the Java language program is used for a large-scale business system will be described.
Since the Java language is composed of a combination of a large number of classes, it is excellent in productivity and is also a language suitable for extending the system. However, when maintaining the system, there are a number of problems as described below.

証券業務システム等の大規模事務系のプログラムにJava言語を用いると、クラス数は、例えば数万個から数10万個、メソッド数は数10万個から数100万個に達する膨大なものとなる。   If the Java language is used for a large-scale administrative program such as a securities business system, the number of classes ranges from tens of thousands to hundreds of thousands, and the number of methods ranges from hundreds of thousands to millions. Become.

このようなシステムにおいて、何らかの不具合が発生した場合は、その不具合の原因となったクラスやメソッドを特定しなければならない。また、特定されたクラスやメソッドを修正したときに、影響を受ける一連のクラスやメソッドを把握する必要もある。   In such a system, if any trouble occurs, the class or method that caused the trouble must be identified. It is also necessary to know the set of classes and methods that will be affected when the identified class or method is modified.

また、システムに新たな機能を追加するためにクラスを追加したり、修正する場合も同様に、追加や修正したクラスやメソッドにより影響を受ける一連のクラスやメソッドを把握する必要がある。   Similarly, when adding or modifying a class to add a new function to the system, it is necessary to grasp a series of classes and methods that are affected by the added or modified class or method.

このような保守業務の効率化を図るために、COBOL言語を用いた場合と同様に、Java言語を用いたプログラムも、数万〜数10万のクラスは業務の処理目的毎に分類され、階層化された構造とされるのが一般的である。そしてJavaプログラムの保守においては、図1−2に例示したクラス図や、図1−3に例示したシーケンス図を用い、これらにソースコード分析を加えることによってクラスやメソッドを特定したり、特定のクラスやメソッドと関連のある一連のクラスやメソッドを把握している。   In order to improve the efficiency of such maintenance work, as in the case of using the COBOL language, the program using the Java language is classified into tens of thousands to hundreds of thousands of classes according to the processing purpose of the work. It is common to have a structured structure. In the maintenance of the Java program, the class diagram illustrated in FIG. 1-2 and the sequence diagram illustrated in FIG. 1-3 are used. You know the set of classes and methods that are associated with a class or method.

しかしながらJava言語プログラムは、不具合の発生したクラス、メソッドを特定したり、特定したクラス、メソッドに関連性のある一連のクラス、メソッドを把握することが困難な構造を有するため、保守業務においてプログラム開発者への負担が非常に大きい。   However, the Java language program has a structure in which it is difficult to identify a class or method in which a problem has occurred, or to identify a series of classes or methods related to the identified class or method. The burden on the person is very large.

一つの理由は、従来のツールではメソッド単位の詳細な流れを把握することはできないことによる。   One reason is that the conventional tool cannot grasp the detailed flow of each method.

また、図1−3に例示したように、オブジェクト100´,300´,400´の流れを示すシーケンス図も用いられるが、Java言語プログラムでは、具象クラス100,300,400とオブジェクト100´,300´,400´とは同期がとれていない。すなわち、オブジェクト100´は具象クラス300で生成され、オブジェクト300´は具象クラス400で生成されるというように、具象クラスとそのクラスのオブジェクトを生成するクラスとは一般に別々であるため、シーケンス図を用いてもプログラム開発者の負担はそれ程小さくならない。   Further, as illustrated in FIG. 1C, a sequence diagram showing the flow of the objects 100 ′, 300 ′, and 400 ′ is also used. In the Java language program, the concrete classes 100, 300, and 400 and the objects 100 ′ and 300 are used. 'And 400' are not synchronized. That is, a concrete class and a class that generates an object of that class are generally separate, such as an object 100 ′ is generated by a concrete class 300 and an object 300 ′ is generated by a concrete class 400. Even if it is used, the burden on the program developer is not reduced so much.

更に、従来の分析ツールはクラス図、シーケンス図を表示できるとは言え、一画面に表示できるクラス数、オブジェクト数は10数個程度が限界であり、膨大な数のクラス・メソッド関連を把握することはできないため、これもプログラムの保守を困難にする一つの理由となっている。   Furthermore, although the conventional analysis tools can display class diagrams and sequence diagrams, the number of classes and objects that can be displayed on a single screen is limited to about 10 or so, and a huge number of classes and methods are grasped. This is another reason why it is difficult to maintain the program.

本発明の目的は、上記のような従来の問題点を解決し、Java言語プログラムを用いた大規模業務システムにおける保守作業の負担を著しく軽減することができるツールを提供することにある。   An object of the present invention is to provide a tool that can solve the conventional problems as described above and can remarkably reduce the burden of maintenance work in a large-scale business system using a Java language program.

具体的には、本発明は、クラスの継承によりソースコードプログラム上では隠されたクラスに属する具象メソッドも含めて、具象クラス・メソッド間の関連を表示できるツールを提供することにある。   Specifically, an object of the present invention is to provide a tool capable of displaying a relation between concrete classes and methods, including concrete methods belonging to a class hidden in a source code program due to class inheritance.

本発明の他の目的は、インターフェースまたは抽象クラスにより隠蔽された具象クラス・メソッドと、その関連を表示することが可能なツールを提供することにある。   Another object of the present invention is to provide a tool capable of displaying concrete class methods hidden by an interface or abstract class and their relations.

本発明の他の目的は、クラスが機能的に分類され、階層化された構造のプログラムにおいて、ある分類に属する全ての具象クラス・メソッドと、その関連を表示することが可能なツールを提供することにある。   Another object of the present invention is to provide a tool capable of displaying all concrete class methods belonging to a certain class and their relations in a program having a hierarchical structure in which classes are functionally classified. There is.

本発明の他の目的は、クラスが機能的に分類され、階層化された構造のプログラムにおいて、所望の具象クラス・メソッドを特定したときに、その特定された具象クラス・メソッドに関連する一連の具象クラス・メソッドを表示できるツールを提供することにある。   Another object of the present invention is that when a desired concrete class method is specified in a program in which the classes are functionally classified and hierarchized, a series of related class methods are specified. The purpose is to provide a tool that can display concrete classes and methods.

本発明の他の目的は、実装済みの資源を基に、リバースエンジニアリングによって設計書を生成し、設計書を保守するコストを大幅に削減すると同時に、設計書と実装の乖離を起こさないようにするツールを提供することにある。   Another object of the present invention is to generate a design document by reverse engineering based on the implemented resources, greatly reducing the cost of maintaining the design document, and at the same time, avoiding a discrepancy between the design document and the implementation. To provide tools.

上記の目的を達成するために本発明に係る分析ツールは、Java言語プログラムのクラスファイルからクラス情報、メソッド情報及び参照先メソッド情報を抽出する第1の手段と、抽出したクラス情報、メソッド情報及び参照先メソッド情報に基づいて、具象クラスID及び具象メソッドIDよりなる関連元具象クラス・メソッドIDと、該関連元具象クラス・メソッドIDの関連先である関連先具象クラス・メソッドIDの組み合わせからなるペア情報を生成する第2の手段と、所望のクラス・メソッドを指定し、該クラス・メソッドに関連する一連の具象クラス・メソッドを抽出して画面に表示する第3の手段より構成したことに一つの特徴を有する。   In order to achieve the above object, an analysis tool according to the present invention includes a first means for extracting class information, method information, and reference destination method information from a class file of a Java language program, and extracted class information, method information, and Based on the reference destination method information, it consists of a combination of a related source concrete class / method ID consisting of a concrete class ID and a concrete method ID, and a related destination concrete class / method ID which is a related destination of the related source concrete class / method ID. The second means for generating pair information and the third means for specifying a desired class method, extracting a series of concrete class methods related to the class method, and displaying them on the screen. It has one feature.

本発明の他の特徴は、前記第1の手段のクラス情報が、クラスのID情報と、該クラスが具象クラス、インターフェース及び抽象クラスの何れかに属するかを示すクラス種類の情報と、該クラスの親子の関係にあるクラス情報を含んでいることにある。   Another feature of the present invention is that the class information of the first means is class ID information, class type information indicating whether the class belongs to a concrete class, an interface, or an abstract class, and the class Including the class information in the parent-child relationship.

本発明の他の特徴は、前記第1の手段のメソッド情報が、メソッドのID情報と、メソッドが具象メソッド、抽象メソッド及びその他のメソッドの何れに属するかを示すメソッド種類の情報を含んでいることにある。   In another feature of the present invention, the method information of the first means includes method ID information and method type information indicating whether the method belongs to a concrete method, an abstract method, or another method. There is.

本発明の他の特徴は、前記第1の手段の参照先メソッド情報が、参照元クラス・メソッドのID情報と、該参照元クラス・メソッドの参照先となるクラス・メソッドの名称情報と、参照先クラスが具象クラス、インターフェース及び抽象クラスの何れに属するかを示す参照先クラス種類の情報を含んでいることにある。   Another feature of the present invention is that the reference method information of the first means includes ID information of a reference source class method, name information of a class method that is a reference destination of the reference source class method, and a reference That is, it includes information on the type of reference destination class indicating whether the destination class belongs to a concrete class, an interface, or an abstract class.

本発明によれば、次のような効果が得られる。   According to the present invention, the following effects can be obtained.

(1)Java言語プログラムを、クラス間の関連よりも更に詳細なクラス・メソッド間の関連として画面上で把握することが可能となる。クラス・メソッド間の関連は、オブジェクトを生成しないインターフェースや抽象クラスを除いた具象クラス・メソッド間の関連として把握することができる。   (1) A Java language program can be grasped on the screen as a more detailed relationship between classes and methods than a relationship between classes. Relationships between class methods can be grasped as relationships between concrete class methods excluding interfaces and abstract classes that do not generate objects.

(2)具象クラス・メソッドIDを単位としてその関連を把握できるので、あるクラスのあるデータ項目にアクセスするクラス・メソッドを特定したり、当該データ項目が利用されている一連のクラス・メソッドを特定することが可能となる。   (2) Since the relationship can be grasped by using a concrete class / method ID as a unit, a class / method for accessing a data item of a certain class or a series of class / methods in which the data item is used is identified. It becomes possible to do.

(3)具象クラス・メソッドを対象としたクラス・メソッドを単位として、その関連を把握できるので、階層構造のJava言語プログラムにおいて、あるクラス・メソッドが他のクラス・メソッドに及ぼす範囲を特定したり、一つのトランザクションに用いられる全てのクラス・メソッドを特定し、画面上に表示することが可能となる。   (3) Since it is possible to grasp the relationship of a class method for a concrete class method as a unit, in a hierarchical Java language program, the range that a certain class method has on other class methods can be specified. All classes and methods used for one transaction can be specified and displayed on the screen.

(4)オブジェクトの関連を示す従来のシーケンス図を作成するツールでは、隠蔽メソッドへの関連より先の具象メソッドへの関連を分析することもできないが、本発明ツールにおいては、隠蔽メソッドの先の具象メソッドへの関連も分析し、画面上に表示することが可能となる。   (4) Although the conventional tool for creating a sequence diagram showing the relationship between objects cannot analyze the relationship to a concrete method prior to the relationship to the concealment method, in the tool of the present invention, The relationship to the concrete method can also be analyzed and displayed on the screen.

上記の(1)〜(4)により、大規模業務系のJava言語プログラムの保守作業の負担を著しく軽減することが可能になる。   With the above (1) to (4), it is possible to remarkably reduce the burden of maintenance work on a large-scale business Java language program.

(5)設計書をリバースエンジニアリングで生成することにより、人手で設計書を保守する工数を大幅に低減することができる。   (5) By generating the design document by reverse engineering, the number of man-hours for maintaining the design document manually can be greatly reduced.

(6)人手で設計書を保守すると、設計書と実装との乖離を起こし易いが、リバースエンジニアリングで生成することによって、実装との乖離を起こさない。   (6) If the design document is manually maintained, a divergence between the design document and the implementation is likely to occur, but by generating by reverse engineering, there is no divergence from the implementation.

本発明はJava言語プログラムをクラス・メソッドの単位として捉え、特にシステムを構成するJava言語プログラム内で実質的な処理に関与している具象クラス・メソッドIDの関連を表すようにしたものである。   In the present invention, a Java language program is regarded as a unit of a class method, and in particular, a relation between concrete class and method IDs involved in substantial processing in the Java language program constituting the system is expressed.

図1−5は、Java言語プログラムを、クラス・メソッドを単位として捉えた場合の処理の流れを例示したものである。   FIG. 1-5 exemplifies the flow of processing when a Java language program is regarded as a class method.

この図は、最上位階層のクラスC11のメソッドM2が次の階層のクラスC21のメソッドM4を参照し、クラスC21のメソッドM4が次の階層のクラスC31のメソッドM5を参照し、以下点線で示す参照関係がある例を示している。また同様に、クラスC11のメソッドM4がクラスC22のメソッドM1を参照し、クラスC22のメソッドM1がクラスC31のメソッドM5を参照している例を示している。   In this figure, the method M2 of the class C11 of the highest hierarchy refers to the method M4 of the class C21 of the next hierarchy, the method M4 of the class C21 refers to the method M5 of the class C31 of the next hierarchy, and is indicated by a dotted line below. An example having a reference relationship is shown. Similarly, an example is shown in which the method M4 of the class C11 refers to the method M1 of the class C22, and the method M1 of the class C22 refers to the method M5 of the class C31.

前述のクラス図(図1−2)は単に、クラスC11,C21,C22・・・の関連を示すだけであるため、保守業務に当たり、メソッド単位の詳細な処理の流れを調べるためには、プログラム開発者がソースコードを分析して把握せざるを得なくなる。   The above class diagram (FIGS. 1-2) merely shows the relationship between the classes C11, C21, C22... Developers have to analyze and understand the source code.

ここで、各クラスのIDは、C11,C21,C22・・・で表し、システムの中でユニークに(一意的に)特定できるコードが割り当てられ、各メソッドはM1,M2,M3・・・のように、各クラス内においてユニークに特定できるコードが割り当てられる。従って、クラスID+メソッドID(以下これをクラス・メソッドIDという)により、システム内の全てのメソッドをユニークに特定することができる。   Here, the ID of each class is represented by C11, C21, C22..., A code that can be uniquely (uniquely) specified in the system is assigned, and each method is M1, M2, M3. Thus, a code that can be uniquely specified in each class is assigned. Therefore, all methods in the system can be uniquely specified by class ID + method ID (hereinafter referred to as class / method ID).

それ故、システムを構成するJava言語プログラム内で実質的な処理に関与している(すなわちオブジェクトを生成している)全てのクラス・メソッドIDの関連を表すことができれば、所望のメソッドを特定したり、そのメソッドに関連する一連のクラス・メソッドを把握することができる。   Therefore, if it is possible to express the relationship between all the class method IDs that are involved in substantial processing (that is, the object is generated) in the Java language program constituting the system, the desired method is specified. Or a set of class methods related to the method.

以下、本発明に係る分析ツールを生成する手順について説明する。   Hereinafter, a procedure for generating an analysis tool according to the present invention will be described.

(1)クラスファイル生成
まず、Javaプログラムからクラスファイルを生成する。
(1) Class file generation First, a class file is generated from a Java program.

クラスファイルとは、Javaソースコードプログラムを構成する各クラスをコンパイルすることにより生成されたファイルである。例えばJavaソースコードプログラムの各クラスは、図2−1に例示されるように記述されており、これをコンパイルすると、図2−2に例示されるような数字で記述されたものになる。大規模業務システムではクラスの数が数10万個に達するから、その数のクラスファイルが作成されることになる。   A class file is a file generated by compiling each class constituting a Java source code program. For example, each class of the Java source code program is described as illustrated in FIG. 2A. When this class is compiled, it is described with numbers as illustrated in FIG. 2-2. In a large-scale business system, the number of classes reaches several hundred thousand, so that many class files are created.

このクラスファイルの中には具象ファイル、抽象クラス及びインターフェースのファイルが含まれる。   The class file includes a concrete file, an abstract class, and an interface file.

(2)ファイル分析
次に、このクラスファイルを分析して4種類の情報を抽出する。図3−1に示すクラス情報、図3−2に示すメソッド情報、図3−3に示すスーパークラス情報、及び図3−4に示すメソッド関連情報である。
(2) File analysis Next, this class file is analyzed to extract four types of information. The class information shown in FIG. 3A, the method information shown in FIG. 3B, the super class information shown in FIG. 3C, and the method related information shown in FIG.

従来、ソースコードプログラムからクラス情報やメソッド情報を抽出する試みはあるが、本発明においては更にメソッド関連情報を抽出したことに一つの特徴がある。   Conventionally, there has been an attempt to extract class information and method information from a source code program, but the present invention has one feature in that method related information is further extracted.

クラス情報には、具象クラス、抽象クラス及びインターフェースのクラスID、クラス名、パッケージ名、スーパークラス名、スーパークラスパッケージ名及びクラスの種類の情報が含まれる。   The class information includes concrete class, abstract class and interface class ID, class name, package name, super class name, super class package name, and class type information.

パッケージとは、複数のクラスやインターフェースをひとまとめにしたものである。またスーパークラスとは、継承する元となったクラス、つまり親クラスであり、継承して作ったクラスをサブクラス(子クラス)という。クラスの種類は、そのクラスが具象クラス、抽象クラス及びインターフェースの3種類に分類する情報である。   A package is a collection of multiple classes and interfaces. A superclass is a class that is inherited, that is, a parent class, and a class that is inherited is called a subclass (child class). The class type is information that the class classifies into three types: a concrete class, an abstract class, and an interface.

メソッド情報には、図3−2に示すように、クラスID、メソッドID、メソッド名、引数及び戻り値の情報、コンストラクタ、メソッドの種類などの情報が含まれる。メソッドIDは、各クラスIDの中で一義的に定められるIDである。コンストラクタとは、オブジェクトの生成をするときに自動的に呼び出される特殊なメソッドである。   As shown in FIG. 3B, the method information includes information such as class ID, method ID, method name, argument and return value information, constructor, and method type. The method ID is an ID uniquely determined in each class ID. A constructor is a special method that is automatically called when an object is created.

スーパークラス情報には、図3−3に示すように、子クラスIDと親クラス名との関係、及びクラスIDとインターフェース名との関係を表す情報が含まれる。   As shown in FIG. 3C, the super class information includes information indicating the relationship between the child class ID and the parent class name and the relationship between the class ID and the interface name.

メソッド関連情報には、図3−4に示すように、クラスID、メソッドIDの他に、一意キーID(図3−4のレコードを一意的(ユニーク)に特定するID)、参照先のクラス名、参照先のメソッド名が含まれる。また参照先クラスが具象クラス、インターフェース、抽象クラスのいずれに属するかを示す参照先クラス情報も含まれる。   In the method related information, as shown in FIG. 3-4, in addition to the class ID and method ID, a unique key ID (an ID that uniquely identifies the record in FIG. 3-4), a reference class Name and the name of the referenced method. Reference destination class information indicating whether the reference destination class belongs to a concrete class, an interface, or an abstract class is also included.

図3−5は、クラスファイルから上記のクラス情報、メソッド情報、スーパークラス情報及びメソッド関連情報を抽出するフローを示す。   FIG. 3-5 shows a flow for extracting the class information, method information, super class information, and method related information from the class file.

ステップS401において、図2−1に例示したクラスファイルを1件読み込む。続いて、クラス項目の記述からクラス名称の情報を取り出し(S402)、更にクラス種類の情報を取り出す(S403)。   In step S401, one class file illustrated in FIG. Subsequently, class name information is extracted from the class item description (S402), and class type information is further extracted (S403).

ステップS404では、extendsの項目値を全部取り出す。extendsは継承を定義する記号であり、例えば
class A extends B
という記述は、サブクラス(子クラス)Aがスーパークラス(親クラス)Bを継承したことを表す。また、インターフェースに対してextendsの記号を用いる場合は、拡張インターフェース(子インターフェース)がそのインターフェース(親インターフェース)を継承したことを表す。
In step S404, all the item values of “extends” are extracted. “extends” is a symbol that defines inheritance, for example, class A “extends B”.
The description indicates that the subclass (child class) A has inherited the superclass (parent class) B. Further, when the “extends” symbol is used for an interface, it indicates that the extended interface (child interface) inherits the interface (parent interface).

ステップS405では、implements項目値を全部取り出す。implementsは実装を定義する記号であり、例えば
class C implements D
と記述すると、例えばインターフェースDをクラスCが実装することを表す。
In step S405, all the implementations item values are extracted. Implementations is a symbol that defines the implementation, for example, class C components D
Describes that the class C implements the interface D, for example.

ステップS406では、読み込んだクラスファイルのクラス種類がインターフェースかクラスかを判定する。クラスの場合はextendsの項目に記述されたクラス(上記のD)をスーパークラス名称とし(S407)、また、implementsの項目値(上記のD)をインターフェース名称とする(S408)。   In step S406, it is determined whether the class type of the read class file is an interface or a class. In the case of a class, the class described in the “extends” item (above D) is used as the superclass name (S407), and the item value of “implements” (above D) is used as the interface name (S408).

一方、ステップS406でインターフェースと判定された場合、extends項目値を拡張インターフェース名称とする(S409)。   On the other hand, if it is determined in step S406 that the interface is an interface, the extended item value is set as the extended interface name (S409).

次に、ステップS410〜S419において、メソッドに関する情報を抽出する。まず、クラスファイルからメソッド名称を取り出し(S412)、更に戻り値(処理の結果の値)の型名(例えば整数型)及び引数(処理の対象となる変数、パラメータ)の型名称を順次取り出す(S413,S414)。   Next, in steps S410 to S419, information regarding the method is extracted. First, the method name is extracted from the class file (S412), and the type name (for example, integer type) of the return value (processing result value) and the type name of the argument (variable and parameter to be processed) are sequentially extracted (sequentially). S413, S414).

ステップS415でメソッド名称がクラス名称に等しいか否か判断し、等しい場合、上記メソッドはオブジェクトの生成のときに呼び出されるコンストラクタというメソッドであると判断する(S416)。   In step S415, it is determined whether the method name is equal to the class name. If the method name is equal, it is determined that the method is a method called a constructor called when an object is generated (S416).

ステップS415の判定がNOのときは、メソッド中に処理ロジックが存在するか否か判定する(S417)。処理ロジックが存在すれば具象メソッドと判断し(S418)、処理を記述せずに、単に呼び出した方だけを定義したメソッドは抽象メソッドと判断する(S419)。このようにして、図3−2に示したメソッド情報が抽出される。   If the determination in step S415 is no, it is determined whether processing logic exists in the method (S417). If processing logic exists, it is determined as a concrete method (S418), and a method that defines only the calling method without describing the processing is determined as an abstract method (S419). In this way, the method information shown in FIG. 3-2 is extracted.

次に、ステップS420〜S427によりメソッド関連情報を抽出する。ステップS420において、メソッド本体の処理ロジック中に記述された参照先のメソッド情報を検索する。ステップS421で未処理のメソッドがあるか否か判定し、ある場合はステップS422に進み、参照先メソッドのメソッド名称を取り出す。また、ステップS423において、参照先メソッドが属するクラスのクラス名称をそれぞれ取り出す。   Next, method-related information is extracted in steps S420 to S427. In step S420, the method information of the reference destination described in the processing logic of the method body is searched. In step S421, it is determined whether there is an unprocessed method. If there is, the process proceeds to step S422, and the method name of the reference destination method is extracted. In step S423, the class name of the class to which the reference method belongs is extracted.

次に、処理ロジックの引数がレジスタ変数か否かを判定し(S424)、レジスタ変数の場合は、ロジックを遡って、レジスタ変数に値を代入している箇所から引数の型名称(例えば整数型)を取り出す(S425)。またステップS424の判定がNOの場合は、参照先メソッドの引数の型名称を順次取り出す(S426)。また、参照先メソッドを呼び出すオペランドから参照先がインターフェースか、或いはクラスかを判断する(S427)。   Next, it is determined whether or not the argument of the processing logic is a register variable (S424). If the argument is a register variable, the type name of the argument (for example, an integer type) is traced back to the logic and assigned to the register variable. ) Is taken out (S425). If the determination in step S424 is no, the type names of the arguments of the reference method are sequentially extracted (S426). Further, it is determined from the operand that calls the reference destination method whether the reference destination is an interface or a class (S427).

このように本発明は、クラス情報及びメソッド情報だけでなく、参照先のクラス及びメソッドの情報をも抽出する。そして得られた情報は、図3−6に例示するXMLファイルとして整理される。   As described above, the present invention extracts not only class information and method information but also reference class and method information. The obtained information is organized as an XML file exemplified in FIGS. 3-6.

(3)抽出情報のDB投入
上記のようにして抽出された情報は、DBに投入される。図4−5は、DB投入のフローを示すもので、ステップS501において、前述のXMLファイルにより各クラス毎のレコードが読み込まれ、ステップS502でクラスに関する情報が、図4−1に例示するクラス情報テーブルT100に登録される。またステップS503では、メソッドに関する情報が、図4−2に例示するメソッド情報テーブルT200に登録される。ステップS504では、クラスのスーパークラス及びインターフェースの情報が、図4−3に例示するスーパークラス情報テーブルT300に登録される。更にステップS505では、メソッド関連情報が、図4−4に例示するメソッド関連情報テーブルT400に登録される。このようにして、数万〜数10万個の全クラスの情報が、すべてDBに投入される(S506)。
(3) DB input of extracted information The information extracted as described above is input to the DB. FIG. 4-5 shows a DB input flow. In step S501, the record for each class is read by the above-described XML file. In step S502, information on the class is class information illustrated in FIG. Registered in the table T100. In step S503, information about the method is registered in the method information table T200 illustrated in FIG. In step S504, the super class information and interface information of the class are registered in the super class information table T300 illustrated in FIG. In step S505, the method related information is registered in the method related information table T400 illustrated in FIG. 4-4. In this way, all the information of all tens of thousands to hundreds of thousands of classes is input to the DB (S506).

(4)メソッド間関連情報の生成
次にDBに投入された各種の情報に基づいて、メソッド間関連情報を作成する。メソッド間関連情報とは、図1−5を例にとると、具象クラス・メソッドIDのC11m2と、その参照先の具象クラス・メソッドIDのC21m4とのペア情報を称し、C11m2を参照元のクラス・メソッドID、C21m4を参照先のクラス・メソッドIDという。なお、具象クラス・メソッドが抽象クラスやインターフェースを介して他の具象クラスを参照する場合もあるので、関連先クラス・メソッドID、関連元クラス・メソッドIDということもある。
(4) Generation of inter-method related information Next, inter-method related information is created based on various information input to the DB. In the case of FIG. 1-5, the inter-method related information refers to pair information of C11m2 of the concrete class / method ID and C21m4 of the concrete class / method ID of the reference destination, and C11m2 is the reference source class. The method ID C21m4 is referred to as a referenced class method ID. Note that a concrete class / method may refer to another concrete class via an abstract class or an interface, and thus may be referred to as an associated class / method ID or an associated class / method ID.

このメソッド間の関連を表すペア情報は、メソッド間関連情報テーブルを作成することにより生成される。   The pair information indicating the relationship between the methods is generated by creating an inter-method relationship information table.

図5−1は、メソッド間関連情報テーブルT900を示す。901は処理フラグで、このテーブルT900を作成する過程で用いられる。分析が済んだときは0、オブジェクトIDを特定できないときは1、オブジェクトIDと参照先のクラス・メソッドを特定できないときには2がセットされる。903は参照元(関連元)の具象クラス(実装クラス)のクラスID、904は参照元(関連元)の具象メソッド(実装メソッド)のメソッドIDであり、903と904により参照元(関連元)の具象クラス・メソッドIDが形成される。903の情報はメソッド関連情報テーブルT400(図3−4)のクラスIDと同じであり、904は該テーブルT400のメソッドIDと同じである。906は参照先(関連先)の具象クラス(実装クラス)のクラスID、907は参照先(関連先)具象メソッドのメソッドIDである。   FIG. 5A shows an inter-method relation information table T900. A processing flag 901 is used in the process of creating the table T900. 0 is set when the analysis is completed, 1 is set when the object ID cannot be specified, and 2 is set when the object ID and the class method of the reference destination cannot be specified. 903 is a class ID of a concrete class (implementation class) of a reference source (relationship source), 904 is a method ID of a concrete method (implementation method) of the reference source (relationship source), and 903 and 904 refer to the reference source (relationship source) A concrete class / method ID is formed. The information 903 is the same as the class ID of the method related information table T400 (FIG. 3-4), and 904 is the same as the method ID of the table T400. Reference numeral 906 denotes a class ID of a concrete class (implementation class) of a reference destination (related destination), and reference numeral 907 denotes a method ID of a concrete method of the reference destination (related destination).

次に、図5−2を参照して、メソッド間関連情報を作成するフローについて説明する。   Next, with reference to FIG. 5B, a flow for creating inter-method related information will be described.

ステップS1001において、メソッド情報テーブルT200(図3−2)から具象メソッドを1件ずつ取り出す。ステップS1002で具象メソッドが存在するか否かを判定し、存在する場合は、メソッド関連情報テーブルT400(図3−4)を参照して、参照先クラス名、参照先メソッド名及び参照先パッケージ名の情報を取り出す(S1003)。   In step S1001, concrete methods are extracted from the method information table T200 (FIG. 3-2) one by one. In step S1002, it is determined whether or not a concrete method exists. If there is, a reference destination class name, a reference destination method name, and a reference destination package name are referenced with reference to the method related information table T400 (FIG. 3-4). Is extracted (S1003).

なお、以下の説明では、参照先及び関連先を代表して関連先とし、参照元及び関連元を代表して関連元という用語を用いる。   In the following description, the terms “reference destination” and “relationship destination” are used as representatives, and “reference source” and “relationship source” are used as representative terms.

ステップS1004で関連先情報が存在するか否か判定し、YESの場合はステップS1005に進む。   In step S1004, it is determined whether or not related destination information exists. If YES, the process proceeds to step S1005.

ステップS1005において、クラス情報テーブルT100を参照し、抽出したクラス名及びパッケージ名をキー情報として、関連先クラスのクラスID及びクラス種類の情報を取り出す。更にステップS1006において、メソッド情報テーブルT200を参照し、先に取り出したメソッド名と、上記ステップS1005で取り出したクラスIDをキー情報として、メソッドIDとメソッド種類の情報を取り出す。   In step S1005, the class information table T100 is referenced, and the class ID and class type information of the related class are extracted using the extracted class name and package name as key information. In step S1006, the method information table T200 is referred to, and the method ID and method type information are extracted using the method name extracted earlier and the class ID extracted in step S1005 as key information.

ステップS1005で取り出したクラス種類が具象クラスの場合、そのクラスIDをテーブルT900の関連先ID906として登録し、ステップS1006で取り出したメソッド種類が具象メソッドの場合、そのメソッドIDを関連先メソッドID907として登録する(S1007)。   If the class type extracted in step S1005 is a concrete class, the class ID is registered as the related destination ID 906 in the table T900. If the method type extracted in step S1006 is a concrete method, the method ID is registered as the related destination method ID 907. (S1007).

またステップS1001で取り出した具象メソッドのIDをテーブルT900の関連元メソッドID904として登録し、その関連元具象メソッドが属する具象クラスのクラスIDをテーブルT900の関連元クラスID903として登録する(S1007)。   Further, the concrete method ID extracted in step S1001 is registered as the association source method ID 904 of the table T900, and the class ID of the concrete class to which the association source concrete method belongs is registered as the association source class ID 903 of the table T900 (S1007).

以上の処理により関連元の具象クラス・メソッドIDと関連先の具象クラス・メソッドIDのペア情報が生成される。   Through the above processing, pair information of the concrete class / method ID of the relation source and the concrete class / method ID of the relation destination is generated.

(5)具象クラス・メソッド間関連情報の表示
次に、上述のようにして生成された具象クラス・メソッド間関連情報を表示するためのフローを、図6−1を参照して説明する。
(5) Displaying Concrete Class / Method Related Information Next, a flow for displaying the concrete class / method related information generated as described above will be described with reference to FIG.

Java言語プログラムのあるクラス・メソッドを指定し、例えばそのクラス・メソッドを修正した場合に、どの範囲のクラスに影響を及ぼすか解析を行うときには、まずステップS1301において、当該クラス・メソッドIDを指定する。次に、メソッド間関連情報テーブルT900から当該クラス・メソッドの関連先クラス・メソッド、該関連先クラス・メソッドの更に関連先のクラス・メソッドというように、次々に関連先クラス・メソッド情報を抽出する。   When a class method of a Java language program is specified and, for example, when analyzing the range of classes when the class method is modified, first, in step S1301, the class method ID is specified. . Next, related destination class / method information is sequentially extracted from the inter-method related information table T900, such as the related destination class / method of the class / method and the related destination class / method of the related destination class / method. .

抽出されたクラス・メソッドの関連が、例えば図6−2のように表される場合を例にとると、ステップS1303では図6−3に示すようなクラス名、メソッド名及び引数の文字列からなるテキストデータを生成する。   For example, in the case where the relationship between the extracted class and method is expressed as shown in FIG. 6B, for example, in step S1303, the class name, method name, and argument character string shown in FIG. Generate text data.

更にステップS1304では、生成したテキストデータをウェブ上で表示する既存のソフトウェアに受け渡し、ユーザのPCのウェブブラウザソフトウェア上に、例えば図6−4のような形式で表示する(S1305)。   Further, in step S1304, the generated text data is transferred to existing software that is displayed on the web, and is displayed on the web browser software of the user's PC, for example, in a format as shown in FIG. 6-4 (S1305).

このように、テキストデータを図6−4のようにウェブ上で表示するソフトウェア自体は既に公知である。   As described above, software for displaying text data on the web as shown in FIG. 6-4 is already known.

図6−5は、本発明ツールが適用される大規模業務系の説明図であり、70は端末機器、71はサーバ、72はDB、73は保守用のパソコンである。   FIG. 6-5 is an explanatory diagram of a large-scale business system to which the tool of the present invention is applied, in which 70 is a terminal device, 71 is a server, 72 is a DB, and 73 is a maintenance personal computer.

証券業務を例にとると、各支店に設置された数百台〜数千台のパソコンからなる端末70がネットワーク74を通して本店のサーバ71に接続されている。各端末70からは証券や債券の取引等のデータが入力され、本店のサーバ71により処理されてデータベース72に蓄積される。   Taking securities business as an example, a terminal 70 composed of hundreds to thousands of personal computers installed in each branch is connected to a server 71 of the head office through a network 74. Data such as securities and bond transactions is input from each terminal 70, processed by the server 71 at the head office, and stored in the database 72.

一方、この証券業務システムに用いられるJava言語プログラムの保守を行うために、前述のテーブルT100〜T900で示されたデータがDB72に格納され、各フローチャートで示されたプログラムが保守用のパソコン73に格納されている。保守用のパソコン73から特定のクラス・メソッドを指定する情報を入力すると、図6−4に例示した関係図が画面に表示される。   On the other hand, in order to maintain the Java language program used in this securities business system, the data shown in the tables T100 to T900 are stored in the DB 72, and the program shown in each flowchart is stored in the maintenance personal computer 73. Stored. When information specifying a specific class / method is input from the maintenance personal computer 73, the relationship diagram illustrated in FIG. 6-4 is displayed on the screen.

以上説明した本発明ツールによれば、クラス・メソッドの数が数10万個から数100万個に達する大規模業務系のJava言語プログラムの中で、特定の業務処理(トランザクション)に用いられるすべての具象クラス・メソッドを抽出し、これを画面上に表示することができる。   According to the above-described tool of the present invention, all of the large-scale business Java language programs in which the number of classes and methods reaches several hundred thousand to several million, all used for specific business processing (transactions). The concrete class / method can be extracted and displayed on the screen.

更に、所定の具象クラス・メソッドを指定して、それに関連する具象クラス・メソッドを抽出・表示することにより、所定の具象クラス・メソッドが影響を及ぼす範囲を特定することもできる。   Furthermore, by designating a predetermined concrete class method and extracting and displaying a concrete class method related thereto, it is also possible to specify a range in which the predetermined concrete class method affects.

従って、あるデータ項目にアクセスするクラス・メソッドを指定して、そのデータ項目が利用されているトランザクション、データベース並びに業務ロジックなどを特定することが可能となるため、大規模業務系のJava言語プログラムの保守作業の負担を従来に比べて著しく軽減することが可能となる。   Therefore, it is possible to specify a class / method to access a data item and specify the transaction, database, business logic, etc. in which the data item is used. The burden of maintenance work can be significantly reduced as compared with the conventional case.

Java言語プログラムの説明図。Explanatory drawing of a Java language program. Java言語プログラムのクラス図の一例を示す説明図。Explanatory drawing which shows an example of the class diagram of a Java language program. Java言語プログラムのシーケンス図の一例を示す説明図。Explanatory drawing which shows an example of the sequence diagram of a Java language program. Java言語プログラムにおけるクラスに含まれる情報とその関連を示す説明図。Explanatory drawing which shows the information contained in the class in a Java language program, and its relationship. Java言語プログラムをクラス・メソッドを単位として捉えた場合の処理の流れを示す説明図。Explanatory drawing which shows the flow of a process at the time of catching a Java language program as a class method. Javaソースコードプログラムの一例を示す説明図。Explanatory drawing which shows an example of a Java source code program. Javaソースコードプログラムのコンパイルを説明するための図。The figure for demonstrating compilation of a Java source code program. クラスファイルのクラス情報の内容を示す説明図。Explanatory drawing which shows the content of the class information of a class file. クラスファイルのメソッド情報の内容を示す説明図。Explanatory drawing which shows the content of the method information of a class file. クラスファイルのスーパークラス情報の内容を示す説明図。Explanatory drawing which shows the content of the super class information of a class file. クラスファイルメソッド関連情報の内容を示す説明図。Explanatory drawing which shows the content of the class file method related information. クラスファイルから各情報を抽出するフローを示すフローチャート。The flowchart which shows the flow which extracts each information from a class file. クラスファイルを分析した結果得られるXMLファイルを示す説明図。Explanatory drawing which shows the XML file obtained as a result of analyzing a class file. クラス情報テーブルの説明図。Explanatory drawing of a class information table. メソッド情報テーブルの説明図。Explanatory drawing of a method information table. スーパークラス情報テーブルの説明図。Explanatory drawing of a super class information table. メソッド関連情報テーブルの説明図。Explanatory drawing of a method related information table. クラスファイルより抽出した情報をDBに投入するフローを示すフローチャート。The flowchart which shows the flow which throws into the DB the information extracted from the class file. メソッド間関連情報テーブルの説明図。Explanatory drawing of the related information table between methods. メソッド間関連情報テーブルを作成するフローを示すフローチャート。The flowchart which shows the flow which produces the related information table between methods. クラス・メソッド間の関係を表示するフローを示すフローチャート。The flowchart which shows the flow which displays the relationship between class methods. クラス・メソッド間の関係を表示する説明図。Explanatory drawing that displays the relationship between classes and methods. クラス・メソッド間の関係を表示するために生成するテキストデータの説明図。Explanatory drawing of the text data produced | generated in order to display the relationship between a class method. クラス・メソッド間の関係を表示する画面の説明図。Explanatory drawing of the screen that displays the relationship between classes and methods. 本発明ツールから適用されるシステムの一例を示すブロック図。The block diagram which shows an example of the system applied from this invention tool.

符号の説明Explanation of symbols

100,300,400:具象クラス
200:インターフェース
100´,300´,400´:オブジェクト
10:クラス情報
20:メソッド情報
30:メソッド間関連情報
C11,C21,C22,C31,C41,C42,C43:具象クラス
M1,M2,M3,M4,M5:具象メソッド
T100:クラス情報テーブル
T200:メソッド情報テーブル
T300:スーパークラス情報テーブル
T400:メソッド関連情報テーブル
T900:メソッド間関連情報テーブル
70:端末
71:サーバ
72:データベース(DB)
73:PC
74:ネットワーク
100, 300, 400: Concrete class 200: Interface 100 ', 300', 400 ': Object 10: Class information 20: Method information 30: Inter-method related information C11, C21, C22, C31, C41, C42, C43: Concrete Class M1, M2, M3, M4, M5: Concrete method T100: Class information table T200: Method information table T300: Super class information table T400: Method related information table T900: Intermethod related information table 70: Terminal 71: Server 72: Database (DB)
73: PC
74: Network

Claims (4)

Java言語プログラムのクラスファイルからクラス情報、メソッド情報及び参照先メソッド情報を抽出する第1の手段と、
前記クラスファイルから抽出したクラス情報、メソッド情報及び参照先メソッド情報に基づいて、具象クラスID及び具象メソッドIDよりなる関連元具象クラス・メソッドIDと、該関連元具象クラス・メソッドIDの関連先である関連先具象クラス・メソッドIDの組み合わせからなるペア情報を生成する第2の手段と、
所望のクラス・メソッドを指定し、該クラス・メソッドに関連する一連の具象クラス・メソッドを抽出して画面に表示する第3の手段よりなることを特徴とするJava言語プログラムの分析ツール。
First means for extracting class information, method information and reference method information from a class file of a Java language program;
Based on the class information, method information and reference method information extracted from the class file, the related source concrete class / method ID composed of the concrete class ID and the concrete method ID, and the related destination of the related source concrete class / method ID A second means for generating pair information consisting of a combination of a certain related concrete class and method ID;
A Java language program analysis tool comprising third means for designating a desired class method, extracting a series of concrete class methods related to the class method, and displaying them on a screen.
請求項1において、前記第1の手段のクラス情報は、クラスのID情報と、該クラスが具象クラス、インターフェース及び抽象クラスの何れかに属するかを示すクラス種類の情報と、該クラスの親子の関係にあるクラス情報を含んでいることを特徴とする分析ツール。   2. The class information according to claim 1, wherein the class information of the first means includes class ID information, class type information indicating whether the class belongs to a concrete class, an interface, or an abstract class, and parent and child of the class. An analysis tool characterized by containing related class information. 請求項1において、前記第1の手段のメソッド情報は、メソッドのID情報と、メソッドが具象メソッド、抽象メソッド及びその他のメソッドの何れに属するかを示すメソッド種類の情報を含むことを特徴とする分析ツール。   2. The method information according to claim 1, wherein the method information of the first means includes method ID information and method type information indicating whether the method belongs to a concrete method, an abstract method, or another method. Analysis tool. 請求項1において、前記第1の手段の参照先メソッド情報は、参照元クラス・メソッドのID情報と、該参照元クラス・メソッドの参照先となるクラス・メソッドの名称情報と、参照先クラスが具象クラス、インターフェース及び抽象クラスの何れに属するかを示す参照先クラス種類の情報を含むことを特徴とする分析ツール。   The reference method information of the first means includes ID information of a reference source class method, name information of a class method serving as a reference destination of the reference source class method, and a reference destination class. An analysis tool characterized by including information on a class of a reference destination indicating whether it belongs to a concrete class, an interface, or an abstract class.
JP2006306422A 2006-11-13 2006-11-13 Program for analyzing large-scale business system using Java (registered trademark) language program and processing method thereof Expired - Fee Related JP4948126B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006306422A JP4948126B2 (en) 2006-11-13 2006-11-13 Program for analyzing large-scale business system using Java (registered trademark) language program and processing method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006306422A JP4948126B2 (en) 2006-11-13 2006-11-13 Program for analyzing large-scale business system using Java (registered trademark) language program and processing method thereof

Publications (2)

Publication Number Publication Date
JP2008123254A true JP2008123254A (en) 2008-05-29
JP4948126B2 JP4948126B2 (en) 2012-06-06

Family

ID=39507944

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006306422A Expired - Fee Related JP4948126B2 (en) 2006-11-13 2006-11-13 Program for analyzing large-scale business system using Java (registered trademark) language program and processing method thereof

Country Status (1)

Country Link
JP (1) JP4948126B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123259A (en) * 2006-11-13 2008-05-29 Nippon Shoken Technology Kk INFLUENCE ANALYSIS TOOL FOR LARGE-SCALE BUSINESS SYSTEM USING Java (R) LANGUAGE PROGRAM
JP2008134699A (en) * 2006-11-27 2008-06-12 Nippon Shoken Technology Kk Impact analysis tool of large-scale business system using java (r) language program
JP2010016797A (en) * 2008-06-06 2010-01-21 Ricoh Co Ltd Image processing apparatus
JP2012173771A (en) * 2011-02-17 2012-09-10 Hitachi Solutions Ltd Library conversion method and program between programming languages

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07319676A (en) * 1994-05-20 1995-12-08 Hitachi Ltd Message flow diagram generation system
JPH1195990A (en) * 1997-09-22 1999-04-09 Nippon Telegr & Teleph Corp <Ntt> Method and device for displaying program structure
WO2002046921A1 (en) * 2000-12-08 2002-06-13 Fujitsu Limited Sequence analysis method and sequence analysis apparatus
JP2002222082A (en) * 2000-11-24 2002-08-09 Fujitsu Ltd Recording medium and program

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07319676A (en) * 1994-05-20 1995-12-08 Hitachi Ltd Message flow diagram generation system
JPH1195990A (en) * 1997-09-22 1999-04-09 Nippon Telegr & Teleph Corp <Ntt> Method and device for displaying program structure
JP2002222082A (en) * 2000-11-24 2002-08-09 Fujitsu Ltd Recording medium and program
WO2002046921A1 (en) * 2000-12-08 2002-06-13 Fujitsu Limited Sequence analysis method and sequence analysis apparatus

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008123259A (en) * 2006-11-13 2008-05-29 Nippon Shoken Technology Kk INFLUENCE ANALYSIS TOOL FOR LARGE-SCALE BUSINESS SYSTEM USING Java (R) LANGUAGE PROGRAM
JP2008134699A (en) * 2006-11-27 2008-06-12 Nippon Shoken Technology Kk Impact analysis tool of large-scale business system using java (r) language program
JP2010016797A (en) * 2008-06-06 2010-01-21 Ricoh Co Ltd Image processing apparatus
JP2012173771A (en) * 2011-02-17 2012-09-10 Hitachi Solutions Ltd Library conversion method and program between programming languages

Also Published As

Publication number Publication date
JP4948126B2 (en) 2012-06-06

Similar Documents

Publication Publication Date Title
US11169784B2 (en) Computing expression medium, development environment, and device communication and control architecture
Androutsopoulos et al. State-based model slicing: A survey
JPH08512152A (en) Incremental generation system
Cho et al. Design patterns for metamodels
TW200844855A (en) Using collaborative development information in a team environment
Mitchell et al. Modeling runtime behavior in framework-based applications
US8918756B2 (en) Generating constraints in a class model
Bhattacharya et al. Combining concern input with program analysis for bloat detection
de Boer et al. Enterprise architecture analysis with xml
JPH10254689A (en) Application constitution design supporting system for client/server system
Rouhi et al. Towards a formal model of patterns and pattern languages
JP4948126B2 (en) Program for analyzing large-scale business system using Java (registered trademark) language program and processing method thereof
Lee et al. A reengineering process for migrating from an object-oriented legacy system to a component-based system
Oliveira et al. Using REO on ETL conceptual modelling: a first approach
US11188307B2 (en) Modelizing resources and external data of a program for procedural language coding
Wojszczyk et al. The process of verifying the implementation of design patterns—used data models
Molina et al. Specifying conceptual interface patterns in an object-oriented method with automatic code generation
US10657476B2 (en) Just in time compilation (JIT) for business process execution
JP5057539B2 (en) A program that analyzes the impact of large-scale business using a Java (registered trademark) language program
Wang et al. An aspect-oriented UML tool for software development with early aspects
Garcés et al. White-box modernization of legacy applications
Garg et al. Insight to model clone’s differentiation, classification, and visualization
Sprogis Configuration language for domain specific modeling tools and its implementation
Salah An environment for comprehending the behavior of software systems
Fatolahi et al. Assessing a model-driven web-application engineering approach

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120118

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120306

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150316

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4948126

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees