JP5725623B2 - Program analysis apparatus and method, and program - Google Patents

Program analysis apparatus and method, and program Download PDF

Info

Publication number
JP5725623B2
JP5725623B2 JP2012107121A JP2012107121A JP5725623B2 JP 5725623 B2 JP5725623 B2 JP 5725623B2 JP 2012107121 A JP2012107121 A JP 2012107121A JP 2012107121 A JP2012107121 A JP 2012107121A JP 5725623 B2 JP5725623 B2 JP 5725623B2
Authority
JP
Japan
Prior art keywords
program
concept
scenario
formal
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012107121A
Other languages
Japanese (ja)
Other versions
JP2013235398A (en
Inventor
俊介 宮田
俊介 宮田
星野 隆
隆 星野
敏 岡田
敏 岡田
広史 風戸
広史 風戸
元司 佐伯
元司 佐伯
晋平 林
晋平 林
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 Telegraph and Telephone Corp
Tokyo Institute of Technology NUC
Original Assignee
Nippon Telegraph and Telephone Corp
Tokyo Institute of Technology NUC
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 Telegraph and Telephone Corp, Tokyo Institute of Technology NUC filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012107121A priority Critical patent/JP5725623B2/en
Publication of JP2013235398A publication Critical patent/JP2013235398A/en
Application granted granted Critical
Publication of JP5725623B2 publication Critical patent/JP5725623B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、プログラム分析装置及び方法及びプログラムに係り、特に、形式概念分析を適用した情報処理システムを構成する電子計算機向けのプログラムのソースコードのリバースエンジニアリングにおけるプログラム分析装置及び方法及びプログラムに関する。   The present invention relates to a program analysis apparatus, method, and program, and more particularly to a program analysis apparatus, method, and program in reverse engineering of a source code of a program for an electronic computer constituting an information processing system to which formal concept analysis is applied.

様々な業務が電子計算機を利用した情報処理システムとして実現されている。これらの情報処理システムの動作は、プログラミング言語を使用したプログラムとして記述されている。プログラム言語で記述されたプログラムはソースコードと呼ばれる。   Various tasks are realized as an information processing system using an electronic computer. The operations of these information processing systems are described as programs using a programming language. A program written in a programming language is called source code.

プログラミング言語は、電子計算機が解釈し実行することを目的としたものであるが、プログラムの保守や機能追加のための開発を実施する場合には、人間が既存のソースコードを読解し、プログラムの構造や処理の内容を理解する必要がある。かかるプログラムを理解するための行為がリバースエンジニアリングである。   The programming language is intended to be interpreted and executed by an electronic computer, but when developing programs to maintain programs and add functions, humans read and understand existing source code. It is necessary to understand the structure and contents of processing. The act of understanding such a program is reverse engineering.

リバースエンジニアリングには様々な手法が存在するが、その中に形式概念分析を用いた手法が存在する。   There are various methods for reverse engineering, among them methods using formal concept analysis.

形式概念分析(Formal Concept Analysis)は、数学的な束論(Lattice Theory)を応用した一分野である。オブジェクトの集合Gと、Gに属するオブジェクトが保有する属性の集合Mが有り、どのオブジェクトがどの属性を保有するのかを記述した対応表(形式文脈:Formal Context)が存在する場合に、Gの部分集合であるAとMの部分集合Bについて、Bの要素である属性の全てが、それぞれAの要素であるオブジェクトに保有され、かつAの要素以外のオブジェクトからは保有されない、という規則を満たすAとBの組み合わせ(形式概念:Formal Concept)に分類する方法である。形式概念の分類にあたっては、ある形式概念(A1、B1)と別の形式概念(A2、B2)において、A2がA1の部分集合になっている場合には、B2もB1の部分集合になっており、(A1、B1)と(A2、B2)の間に半順序関係が定義できる。このような順序により関係づけられた形式概念の集合は、束の公理を満たすことから、数学的な束論の手法を適用することが可能になる。形式概念の集合を束として表現したものを、概念束(Concept Latitce)と呼ぶ。意味のわかりにくい形式文脈から、形式概念を抽出し、概念束を形成することで形式概念同士の関係を発見することが形式概念分析と呼ばれる手法である。   Formal concept analysis is a field that applies mathematical theory theory (Lattice Theory). If there is a set G of objects and a set M of attributes held by objects belonging to G, and there is a correspondence table (formal context: Formal Context) describing which objects have which attributes, the G part For a subset B of sets A and M, A that satisfies the rule that all of the attributes that are elements of B are held by the object that is an element of A, and are not held by objects other than the elements of A And a combination of B and B (Formal Concept). When classifying formal concepts, if A2 is a subset of A1 in one formal concept (A1, B1) and another formal concept (A2, B2), B2 is also a subset of B1. A partial order relationship can be defined between (A1, B1) and (A2, B2). Since a set of formal concepts related by such an order satisfies the axiom of the bundle, it is possible to apply a mathematical bundle theory method. A representation of a set of formal concepts as a bundle is called a concept lattice. Extracting formal concepts from a formal context whose meaning is difficult to understand and forming a concept bundle to discover the relationship between formal concepts is a technique called formal concept analysis.

係る形式概念分析の手法により、ソースコードに含まれるプログラムの部品を分類することで、プログラムの構造や処理の内容を理解するリバースエンジニアリングを実施することが本発明が属する技術分野である。   The technical field to which the present invention belongs is to perform reverse engineering for understanding the structure of the program and the contents of the processing by classifying the program parts included in the source code by the method of formal concept analysis.

当該リバースエンジニアリングを実施することの従来の技術としては、非特許文献1に示す技術が存在する。   As a conventional technique for performing the reverse engineering, there is a technique shown in Non-Patent Document 1.

当該技術では、プログラムを幾つかのシナリオに沿って起動した場合に、シナリオの起動により実行されるプログラムの部品「モジュール」を特定する。モジュールとは、例えば手続き型言語における手続き(Procedure)や、オブジェクト指向言語におけるメソッド(Method)などである。各々のシナリオをオブジェクトとし、シナリオを起動した場合に実行されるプログラムのモジュールを属性とみなして形式文脈を形成し、形式概念分析の手法を適用することを提案している。すなわち、オブジェクトであるシナリオと、属性であるプログラムモジュールとの間で形式概念を抽出し、概念束を形成することで、プログラムの特徴(Feature)を見つけ出せるとしている。   In this technique, when a program is started according to some scenarios, a program component “module” to be executed by the activation of the scenario is specified. The module is, for example, a procedure in a procedural language or a method in an object-oriented language. It is proposed that each scenario be an object, a module of a program executed when the scenario is activated is regarded as an attribute, a formal context is formed, and a formal concept analysis method is applied. In other words, a feature of a program can be found by extracting a formal concept between a scenario that is an object and a program module that is an attribute and forming a concept bundle.

図1に、従来技術の処理のフローを示す。   FIG. 1 shows a processing flow of the conventional technique.

ステップ1) プログラムを実行すると、実行されるモジュールが判別できるようなトレース手段を用意する。トレース手段としては例えば、gdb等がある。   Step 1) Prepare a tracing means that can determine the module to be executed when the program is executed. Examples of the tracing means include gdb.

ステップ2) プログラムの機能を起動する入力操作の集合(シナリオ)を、プログラムの典型的な機能を網羅するように用意し、実行してトレース群を取得する。ここでシナリオの例としては、登録処理、参照処理、削除処理等がある。   Step 2) A set of input operations (scenarios) for starting the program functions is prepared so as to cover typical functions of the program, and executed to obtain a trace group. Examples of scenarios include registration processing, reference processing, and deletion processing.

ステップ3) シナリオをオブジェクトとし、実行されるモジュールの出現を「属性」として、形式概念分析の入力である「形式文脈」とする。   Step 3) Assuming that the scenario is an object, the appearance of the module to be executed is “attribute”, and “formal context” which is the input of formal concept analysis.

ステップ4) 形式概念分析の手法を適用し、「概念束」を得る。ここで、形式概念分析の手法としては、Concept Explorer、Toscana-J等がある。   Step 4) Apply a formal concept analysis method to obtain a “concept bundle”. Here, there are Concept Explorer, Toscana-J, etc. as methods of formal concept analysis.

ステップ5) 概念束のノードに含まれるモジュールより、機能とそれを実現するモジュールを得る。   Step 5) A function and a module that realizes the function are obtained from the modules included in the nodes of the concept bundle.

例えば、図2に示すようなプログラム1に対し、適当なシナリオ(登録、参照、削除)を定義すると、図3に示すような形式文脈が抽出される。これに対し、形式概念分析の手法を適用すると、図4に示す形式概念が抽出され、これに対する概念束を形成すると、図5が得られる。図5の概念束に対し、各ノードの概念間の差分を示す形で表現の変換を行なうと、希薄(sparse)な概念束として図6が得られる。この結果、
シナリオ1だけが有する特徴:{m、m
シナリオ2だけが有する特徴:{m
シナリオ3だけが有する特徴:{m、m
シナリオ2と3が共通に有する特徴:{m
シナリオ1、2、3が共通に有する特徴:{m、m、m
が抽出される。これにより、各モジュールがどのような状況において実行されるかを理解することができる。
For example, if an appropriate scenario (registration, reference, deletion) is defined for the program 1 as shown in FIG. 2, a formal context as shown in FIG. 3 is extracted. On the other hand, when a formal concept analysis technique is applied, the formal concept shown in FIG. 4 is extracted, and when a concept bundle is formed for this, FIG. 5 is obtained. 6 is obtained as a sparse concept bundle when expression conversion is performed in the form of showing the difference between the concepts of each node with respect to the concept bundle of FIG. As a result,
Features that only scenario 1 has: {m 2 , m 5 }
Features that only scenario 2 has: {m 3 }
Features that only scenario 3 has: {m 4 , m 7 }
Features common to scenarios 2 and 3: {m 6 }
Features common to scenarios 1, 2, and 3: {m 1 , m 8 , m 9 }
Is extracted. This makes it possible to understand under what circumstances each module is executed.

Locating features in source code, Eisenbarth, T.; Koschke, R.; Simon, D.; IEEE Transactions on Software Engineering, Volume: 29 , Issue: 3, Digital Object Identifier: 10.1109/TSE.2003.1183929, Publication Year: 2003 , Page(s): 210 - 224Locating features in source code, Eisenbarth, T .; Koschke, R .; Simon, D .; IEEE Transactions on Software Engineering, Volume: 29, Issue: 3, Digital Object Identifier: 10.1109 / TSE.2003.1183929, Publication Year: 2003, Page (s): 210-224

しかしながら、非特許文献1により開示された従来技術では、プログラムを幾つかのシナリオに沿って起動した場合に、シナリオの起動により実行されるプログラムの部品「モジュール」を属性としており、形式概念分析を行なうことにより、モジュールの部分集合が概念として抽出される。   However, in the prior art disclosed in Non-Patent Document 1, when a program is started according to some scenarios, the component “module” of the program executed by the scenario startup is an attribute, and formal concept analysis is performed. By doing so, a subset of modules is extracted as a concept.

ここで抽出される概念の中では、シナリオの起動により個々のモジュールが実行されることだけしかわからない。例えば、シナリオ1、2、3に共通する特徴:{m、m、m}が抽出されるが、特徴を構成する各々の属性であるモジュールのm、m、mがどのような関係にあるのかは判らない。このため、形式概念分析の手法を適用する目的である、プログラムの構造や処理の内容の理解に向けては限定的な情報が得られるに留まっている。したがって、抽出された特徴に含まれるモジュールについてそれぞれソースコードを読解し、関係を紐解く必要があった。 Among the concepts extracted here, only the individual modules are executed by starting the scenario. For example, the features common to the scenarios 1, 2, and 3 are extracted: {m 1 , m 8 , m 9 }, which is the attribute m 1 , m 8 , m 9 of each module that constitutes the feature. I don't know if this is the case. For this reason, limited information can be obtained for understanding the structure of the program and the contents of processing, which is the purpose of applying the method of formal concept analysis. Therefore, it is necessary to read and understand the source code for each module included in the extracted features and to understand the relationship.

本発明は、上記の点に鑑みなされたもので、形式概念分析に得られる特徴から得られる情報をより複雑なものとするとともに、抽出された特徴に関わるソースコード読解の手間を軽減することが可能なプログラム分析装置及び方法及びプログラムを提供することを目的とする。   The present invention has been made in view of the above points, and can make information obtained from features obtained by formal concept analysis more complicated and reduce the effort of reading source code related to the extracted features. It is an object of the present invention to provide a possible program analysis apparatus, method and program.

上記の課題を解決するため、本発明のプログラムの構造や処理の理解を支援するためのプログラム分析装置は、
プログラムへの入力操作の集合であり、該プログラムの典型的な機能を網羅するシナリオ群の実行に関するトレース情報が格納されているトレースファイル記憶手段と、
理解の対象となるソースコードが入力されると、前記トレースファイル記憶手段からトレース情報を読み出し、前記シナリオを起動した際に実行されるモジュールと該モジュールの依存関係を特定する依存関係特定手段と、
前記シナリオをオブジェクトとし、前記モジュールの依存関係を属性とする形式文脈を抽出する形式文脈抽出手段と、
前記形式文脈を形式概念分析の手法で分析し、概念束を生成する概念分析手段と、
を有する。
In order to solve the above problems, a program analysis apparatus for supporting an understanding of the structure and processing of the program of the present invention,
Trace file storage means that is a set of input operations to a program and that stores trace information relating to the execution of a scenario group that covers typical functions of the program;
When the source code to be understood is input, the trace information is read from the trace file storage means, and the dependency specifying means for specifying the module executed when the scenario is started and the dependency relation of the module;
Formal context extraction means for extracting a formal context having the scenario as an object and the dependency of the module as an attribute;
A concept analysis means for analyzing the formal context by a formal concept analysis method and generating a concept bundle;
Have

上記のように本発明によれば、特徴に含まれるモジュールについてソースコードを読み解き、モジュールの関係を対応付けることなく、形式概念分析で得られる特徴からの情報をより複雑・高度なものとするとともに、抽出された特徴に関わるソースコード読解の手間を軽減することが可能となる。   As described above, according to the present invention, the source code is read and interpreted for the module included in the feature, and the information from the feature obtained by the formal concept analysis is made more complicated and sophisticated without associating the relationship of the module. It is possible to reduce the trouble of reading the source code related to the extracted features.

従来技術の形式概念分析のフローチャートである。It is a flowchart of a formal concept analysis of a prior art. 分析対象となるプログラム1と、モジュール(m)の呼び出し関係の例である。It is an example of a calling relationship between a program 1 to be analyzed and a module (m i ). 図2のプログラム1により抽出された形式文脈1の例である。It is an example of the formal context 1 extracted by the program 1 of FIG. 抽出された形式文脈1に対する形式概念1の例である。It is an example of the formal concept 1 with respect to the extracted formal context 1. FIG. 形式概念から形成された概念束1の例である。It is an example of the concept bundle 1 formed from the formal concept. 希薄な概念束1の例である。This is an example of a thin concept bundle 1. 本発明の一実施の形態におけるプログラム分析装置の構成図である。It is a block diagram of the program analysis apparatus in one embodiment of this invention. 本発明の一実施の形態におけるデータの流れを示す図である。It is a figure which shows the flow of the data in one embodiment of this invention. 本発明の一実施の形態におけるプログラム分析装置の概要動作のフローチャートである。It is a flowchart of outline | summary operation | movement of the program analysis apparatus in one embodiment of this invention. 本発明の一実施の形態における図9のS200の依存関係特定部120の詳細動作のフローチャートである。It is a flowchart of detailed operation | movement of the dependence relationship specific | specification part 120 of S200 of FIG. 9 in one embodiment of this invention. 本発明の一実施の形態における図10のアルゴリズムの例である。It is an example of the algorithm of FIG. 10 in one embodiment of this invention. 本発明の一実施の形態における図9のS300の詳細動作のフローチャートである。It is a flowchart of detailed operation | movement of S300 of FIG. 9 in one embodiment of this invention. 本発明の一実施の形態における図12のフローのアルゴリズムの例である。It is an example of the algorithm of the flow of FIG. 12 in one embodiment of this invention. 本発明の一実施の形態における抽出された形式文脈2の例である。It is an example of the extracted formal context 2 in one embodiment of this invention. 本発明の一実施の形態における形式文脈2に対する形式概念2の例である。It is an example of the formal concept 2 with respect to the formal context 2 in one embodiment of this invention. 本発明の一実施の形態における概念束2の例である。It is an example of the concept bundle | flux 2 in one embodiment of this invention. 本発明の一実施の形態における希薄な概念束2の例である。It is an example of the thin concept bundle | flux 2 in one embodiment of this invention.

以下、図面と共に本発明の実施の形態を説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

本願発明では、非特許文献1により開示された従来技術と同様、プログラムを幾つかのシナリオに沿って起動した場合に、シナリオの起動により実行されるモジュールを特定するとともに、そのモジュールの依存関係も特定する。非特許文献1の手法ではシナリオをオブジェクト、実行されるモジュールを属性としたのに対し、本願発明では、シナリオをオブジェクト、実行されるモジュールとその依存関係を属性とし、形式文脈とすることを特徴とする。この形式文脈に対し、形式概念分析の手法を適用し、形式概念を抽出し、概念束および希薄な概念束を形成することで、プログラムの特徴として、モジュールの実行に加え、モジュール間の依存関係の集合を見つけ出すことを特徴とする。   In the present invention, as in the prior art disclosed in Non-Patent Document 1, when a program is started according to several scenarios, a module to be executed by starting the scenario is specified, and the dependency relationship between the modules is also determined. Identify. In the method of Non-Patent Document 1, a scenario is an object, and a module to be executed is an attribute. In the present invention, a scenario is an object, a module to be executed and its dependency are attributes, and a formal context is used. And By applying formal concept analysis methods to this formal context, extracting formal concepts and forming concept bundles and sparse concept bundles, the module features are not only executed, but also dependencies between modules. It is characterized by finding a set of.

最初に本明細書で用いる用語について説明する。   First, terms used in this specification will be described.

・形式概念分析(Formal Concept Analysis):数学の束論を応用した一分野(例えば、http://www.upriss.org.uk/fca/,http://en.wikipedia.org/wiki/Formal_concept_analysis参照)。   -Formal Concept Analysis: A field that applies mathematics bundle theory (eg http://www.upriss.org.uk/fca/, http://en.wikipedia.org/wiki/Formal_concept_analysis) reference).

・オブジェクト:形式概念分析が分析の対象とする物事。非特許文献1、本実施の形態では、プログラムの機能を起動する入出力の集合(シナリオ)。   • Object: Things that formal concept analysis analyzes. Non-Patent Document 1, in the present embodiment, an input / output set (scenario) that activates a program function.

・属性:形式概念分析の対象であるオブジェクトが必ず保有する性質。本発明では、シナリオにより起動されるモジュールと、モジュールの依存関係。トレースに出現した依存関係をオブジェクト(シナリオ)の属性として扱う。従来技術では、シナリオにより起動されるモジュールであり、トレースに出現したモジュールを、オブジェクト(シナリオ)との属性として扱う。   ・ Attribute: The property that an object that is the object of formal concept analysis must possess. In the present invention, the module activated by the scenario and the module dependency. Dependencies that appear in the trace are handled as attributes of the object (scenario). In the prior art, a module that is activated by a scenario, and a module that appears in the trace is handled as an attribute with an object (scenario).

・形式文脈:どのオブジェクトが、どの属性を保有するのかを記述した対応表。   -Formal context: A correspondence table that describes which object has which attribute.

・形式概念:形式概念分析により発見される、オブジェクトの部分集合が保有する属性の部分集合。本発明では、プログラムの機能を実現するモジュールとモジュール間の依存関係を、形式概念として発見する。従来技術では、プログラムの機能を実現するモジュールを形式概念として発見する。   Formal concept: A subset of attributes held by a subset of objects discovered by formal concept analysis. In the present invention, the module that realizes the function of the program and the dependency relationship between the modules are discovered as a formal concept. In the prior art, a module that realizes a program function is found as a formal concept.

・概念束:形式概念を数学の束(そく)として表現したもの。   -Concept bundle: A formal concept expressed as a bundle of mathematics.

・希薄な概念束:概念束を、下位ノードとの属性の差分のみを記述する形で表現したもの。   -Sparse concept bundle: A concept bundle expressed in a form that describes only the attribute difference from the lower node.

・モジュール:プログラムを構成する部品。サブルーチンや、ブラウザに送信されるHTML文書などが代表例だが、これに限定されない。   Module: A part that constitutes a program. Typical examples include subroutines and HTML documents sent to the browser, but this is not a limitation.

・シナリオ:プログラムの入力装置の集合。本発明や従来技術では、プログラムの機能を起動し、モジュールのトレースを取得するために使用する。取得したシナリオによるトレース情報を形式概念分析のオブジェクトとして扱う。   Scenario: A set of program input devices. In the present invention and the prior art, it is used to activate a program function and acquire a module trace. The trace information according to the acquired scenario is handled as an object of formal concept analysis.

・依存関係:あるモジュールが起動されるために、必要な別モジュールが存在する場合、あるモジュールは別モジュールとの間に依存関係があると呼ぶ。あるモジュールの呼び出し元(Caller)は、典型的な依存元である。   Dependency: A certain module is called as having a dependency relationship with another module when there is another module necessary for the module to be activated. The caller of a module is a typical dependency.

・出現:シナリオのトレースに、あるモジュールが起動された事実や、依存関係が存在した事実が記録されている場合、そのモジュールや、依存関係が出現したと呼ぶ。   Appearance: When the fact that a certain module is activated or the fact that a dependency exists is recorded in the trace of the scenario, it is said that the module or dependency has appeared.

以下に、本実施の形態を詳細に説明する。   Hereinafter, this embodiment will be described in detail.

本発明では、
1) 理解の対象となるソースコード;
2) プログラムへの入力操作の集合であり、プログラムの典型的な機能を網羅するシナリオ群;
3) シナリオを起動した際に、実行されるモジュールとモジュールの依存関係を特定する手段;
4) シナリオをオブジェクトとし、シナリオにより実行されるモジュールとモジュールの依存関係を属性とする形式文脈を抽出する手段、
5) 形式文脈を形式概念分析の手法で分析する手段;
を使用することが最良の形態である。1)に対し、2)を定義し、3)により依存関係を特定する。さらに依存関係を用いて、4)としてシナリオをオブジェクト、実行されるモジュールとその依存関係を属性とする形式文脈を構成する。これに対し5)により分析を行なうことで、本願発明が実施可能となる。
In the present invention,
1) Source code to be understood;
2) A set of scenarios that cover a typical function of a program, which is a set of input operations to the program;
3) Means for specifying the module to be executed and the dependency relationship between the modules when the scenario is activated;
4) Means for extracting a formal context having a scenario as an object and a module executed by the scenario and its dependency as an attribute,
5) Means for analyzing formal contexts using formal concept analysis techniques;
It is the best form to use. For 1), define 2) and specify the dependency by 3). Further, by using the dependency relationship, as 4), a formal context having a scenario as an object, a module to be executed and its dependency as an attribute is constructed. On the other hand, the present invention can be implemented by performing the analysis according to 5).

1)の理解の対象となるソースコードとして、例えば、Cなどのプログラミング言語で記述されたソースコードが該当する。   As the source code to be understood in 1), for example, source code written in a programming language such as C is applicable.

2)のシナリオ群として、例えば、1)のプログラムの操作説明書などを元に、プログラムが実現する機能を起動するための操作手順が該当する。   The scenario group 2) corresponds to, for example, an operation procedure for starting a function realized by the program based on the operation manual of the program 1).

3)の依存関係を特定する手段としては、例えば、プログラムの実行を追跡(トレース)することにより、モジュールの実行と、モジュールの呼び出し関係などの依存関係を特定することが可能な、デバッガと呼ばれるツールが利用可能である。デバッガには様々なものが存在するが、例えば広く普及しているUNIX(登録商標)−OSの上で使用可能なものとして、gdb、dbxなどが知られている。   The means for specifying the dependency in 3) is called a debugger that can specify the dependency such as the module execution and the module calling relation by tracing (tracing) the execution of the program. Tools are available. Various debuggers exist, and gdb, dbx, and the like are known as those that can be used on, for example, the widely used UNIX (registered trademark) -OS.

5)の形式概念分析の手法の例としては、形式概念分析を実施するためのツールが複数存在し、Concept Explorer(http://conexp.sourceforge.net/)、ToscanaJ(http://toscanaj.sourceforge.net/)はオープンソースプログラムとして公開されている。   As an example of the formal concept analysis method of 5), there are several tools for conducting formal concept analysis, such as Concept Explorer (http://conexp.sourceforge.net/), ToscanaJ (http: // toscanaj. sourceforge.net/) is released as an open source program.

図7は、本発明の一実施の形態におけるプログラム分析装置の構成を示す。   FIG. 7 shows the configuration of the program analysis apparatus according to the embodiment of the present invention.

同図に示す形式概念分析装置は、図8に示すトレース部110、依存関係特定部120、形式文脈抽出部130、概念分析部140を有するCPU100、トレースファイルを格納した実行トレース記憶部210を有する磁気ディスク200、依存元記憶部310と依存性記憶部320と属性記憶部330と形式文脈記憶部340を格納したメモリ300から構成される。   The formal concept analysis apparatus shown in FIG. 8 includes a trace unit 110, a dependency relationship specifying unit 120, a formal context extraction unit 130, a CPU 100 having a concept analysis unit 140, and an execution trace storage unit 210 that stores a trace file. The memory 300 includes a magnetic disk 200, a dependency source storage unit 310, a dependency storage unit 320, an attribute storage unit 330, and a format context storage unit 340.

実行トレース記憶部210のトレースファイルA[i]には、トレースコードの列B[j]が格納されており、トレースファイルA[i]のj番目のトレースレコードB[j]にはj番目に実行されたモジュールの識別情報が記録されているものとする。なお、本実施の形態では、モジュールの識別情報を1…nの整数値について表すものとする。 The trace file A [i] of the execution trace storage unit 210 stores the trace code string B i [j], and the jth trace record B i [j] of the trace file A [i] contains j. It is assumed that the identification information of the module executed for the second time is recorded. In the present embodiment, module identification information is expressed with respect to integer values of 1... N.

メモリ300の依存元記憶部310は、モジュールの識別情報を1つ記憶するための変数Cを有するものとする。   The dependency source storage unit 310 of the memory 300 has a variable C for storing one piece of module identification information.

依存性記憶部320には、依存性記録レコードD[i][j][k]が記録されるものとする。ここで、iは実行トレース記録ファイル210を指し示すために使用され(iは1…a)、j、kはモジュールを指し示すために使用される(j,kは0…m、値0は基点を意味する特殊な値とする)。依存性記録レコードD[i][j][k]はトレースファイルA[i]中に識別情報jで表されるモジュールの識別情報kで表されるモジュールへの依存関係の有無を表すために使用され、依存関係があれば値1、依存関係がなければ値0をとるものとする。   It is assumed that the dependency storage unit 320 records dependency record records D [i] [j] [k]. Here, i is used to indicate the execution trace recording file 210 (i is 1... A), j and k are used to indicate modules (j, k is 0... M, value 0 is the base point) Special value to mean). The dependency record D [i] [j] [k] is used to indicate whether or not there is a dependency on the module represented by the identification information k of the module represented by the identification information j in the trace file A [i]. If a dependency is used, the value 1 is assumed. If there is no dependency, the value 0 is assumed.

属性記録部330には、属性レコードE[i]が記録されるものとする。属性レコードE[i]はモジュール間の依存関係を形式概念分析の入力となる属性として管理するために使用する。各々が1つの文字列を記録し、例えば識別情報jで表されるモジュールの識別情報kで表される依存関係のためには、"k→j"のような文字列を格納する。   It is assumed that an attribute record E [i] is recorded in the attribute recording unit 330. The attribute record E [i] is used to manage the dependency relationship between modules as an attribute serving as an input for formal concept analysis. Each records one character string, and for example, a character string such as “k → j” is stored for the dependency represented by the module identification information k represented by the identification information j.

形式文脈記憶部340には、形式文脈記録レコードF[i][j]が記録されるものとする。ここで、iはトレースファイルを指し示すために使用され(iは1…a)、jは属性レコードを指し示すために使用される。形式文脈記録レコードF[i][j]は、トレースファイルA[i]中に、属性レコードE[j]に記録されたモジュールの依存関係の有無を表すために使用され、依存関係があれば値1、依存関係になければ値0をとるものとする。   In the format context storage unit 340, a format context record record F [i] [j] is recorded. Here, i is used to point to the trace file (i is 1 ... a) and j is used to point to the attribute record. The formal context record record F [i] [j] is used in the trace file A [i] to indicate whether or not there is a dependency relationship of the module recorded in the attribute record E [j]. If the value is 1 and there is no dependency, the value 0 is assumed.

以下に、形式概念分析装置の動作を説明する。   The operation of the formal concept analyzer will be described below.

図9は、本発明の一実施の形態におけるプログラム分析装置の概要動作のフローチャートである。   FIG. 9 is a flowchart of an outline operation of the program analysis apparatus according to the embodiment of the present invention.

ステップ100) CPU100のトレース部110において、解析対象プログラムの典型的な機能を網羅するシナリオ群(入力操作の集合)が解析対象プログラムに与えられることで、プログラムを実行すると実行されるモジュールとそのモジュールの依存元を判別し、シナリオ群の実行に関するトレース情報を実行トレース記録ファイル210に出力する。なお、トレース部110として、gdbやdbx等のデバッガを用いるものとする。また、本明細書におけるシナリオとは、登録処理、参照処理、削除処理を想定する。   Step 100) In the trace unit 110 of the CPU 100, a scenario group (a set of input operations) that covers typical functions of the analysis target program is given to the analysis target program. And the trace information related to the execution of the scenario group is output to the execution trace recording file 210. Note that a debugger such as gdb or dbx is used as the trace unit 110. The scenario in this specification assumes registration processing, reference processing, and deletion processing.

ステップ200) 依存関係特定部120では、実行トレース記憶部210のトレースファイルを入力とし、シナリオを実行することにより実行されるモジュールとそのモジュールに関する依存関係を特定し、依存性記憶部320に格納する。   Step 200) The dependency relationship specifying unit 120 receives the trace file in the execution trace storage unit 210 as input, specifies a module to be executed by executing the scenario and a dependency relationship related to the module, and stores the module in the dependency storage unit 320. .

ステップ300) 形式文脈抽出部130において、シナリオを「オブジェクト」とし、モジュール間の依存関係の出現を「属性」として、形式概念分析の入力である「形式文脈」を抽出し、形式文脈記憶部340に出力する。   Step 300) In the formal context extraction unit 130, the scenario is “object”, the appearance of the dependency relationship between modules is “attribute”, “formal context” which is the input of formal concept analysis is extracted, and the formal context storage unit 340 Output to.

ステップ400) 概念分析部140は、ステップ300で形式文脈記憶部340に出力された形式文脈を入力とし、「概念束」を得る。ここで、概念分析部140として具体的には、Concept Explorer、ToscanaJ等を用いる。   Step 400) The concept analysis unit 140 receives the formal context output to the formal context storage unit 340 in Step 300, and obtains a “concept bundle”. Here, specifically, Concept Explorer, ToscanaJ, or the like is used as the concept analysis unit 140.

ステップ500) 概念分析部140は、「概念束」のノードに含まれるモジュールと、その依存関係により、機能とそれを実現するモジュールの依存関係を出力する。   Step 500) The concept analysis unit 140 outputs the dependency relationship between the function and the module that realizes the function based on the module included in the node of the “concept bundle” and its dependency relationship.

次に、上記のステップ300の処理を詳細に説明する。   Next, the process of step 300 will be described in detail.

図10は、本発明の一実施の形態における図9のステップ200の依存関係特定部120の詳細動作のフローチャートである。また、図11に当該フローのアルゴリズムの例を示す。   FIG. 10 is a flowchart of detailed operation of the dependency relationship specifying unit 120 in step 200 of FIG. 9 according to the embodiment of the present invention. FIG. 11 shows an example of the flow algorithm.

ステップ210) 依存性記憶部320の依存性記録レコードDを0に初期化する。   Step 210) The dependency record D in the dependency storage unit 320 is initialized to zero.

ステップ220) 実行トレース記憶部210の全トレースファイル(A[i])に対し、以下を繰り返す。   Step 220) The following is repeated for all trace files (A [i]) in the execution trace storage unit 210.

ステップ230) 全てのトレースレコードBi[j]に対し、以下を繰り返す。   Step 230) Repeat for all trace records Bi [j].

ステップ240) トレースレコードBi[j]の値がbで、トレースレコードBi [j-1]の値がaの場合、依存性記憶部320の依存性記録レコードD[i][a][b]を1にする。 Step 240) If the value of the trace record B i [j] is b and the value of the trace record B i [j−1] is a, the dependency record record D [i] [a] [ b] is set to 1.

図12は、本発明の一実施の形態における図9のステップ300の形式文脈抽出部130の詳細動作のフローチャートである。また、図13に当該フローのアルゴリズムの例を示す。   FIG. 12 is a flowchart of detailed operation of the formal context extraction unit 130 in step 300 of FIG. 9 according to the embodiment of this invention. FIG. 13 shows an example of the algorithm of the flow.

ステップ310) 形式文脈記憶部340の全ての形式文脈レコードF[i][j]を0に初期化する。   Step 310) Initialize all format context records F [i] [j] in the format context storage unit 340 to zero.

ステップ320) カウンタxを1にする。   Step 320) The counter x is set to 1.

ステップ330) 全てのj=1…nに対し、以下を繰り返す。   Step 330) Repeat for all j = 1... N.

ステップ340) 全てのk=1…nに対し、以下を繰り返す。   Step 340) Repeat for all k = 1... N.

ステップ350) 全てのi=1…mに対し、以下を繰り返す。   Step 350) Repeat for all i = 1.

ステップ360) 依存性記憶部320の依存性記録レコードD[i][j][k]から、値が1であるもののみ抽出する。j,kの組み合わせが新たに発生する度に、
・カウンタxを1加算し、
・属性記憶部330の属性レコードE[x]を文字列"j→k"とし、
・形式文脈記憶部340の形式文脈レコードF[i][x]を1とする。
Step 360) From the dependency record D [i] [j] [k] in the dependency storage unit 320, only those having a value of 1 are extracted. Each time a new combination of j and k occurs,
-Add 1 to the counter x
The attribute record E [x] in the attribute storage unit 330 is set to the character string “j → k”,
The format context record F [i] [x] in the format context storage unit 340 is set to 1.

以下に具体的な例を示す。   Specific examples are shown below.

モジュール間の依存関係として、モジュールの呼び出し関係を使用した例を示す。   An example of using a module call relationship as a dependency relationship between modules is shown.

従来技術の例示として、図2に示した「プログラム1」に対し、従来技術を示すために使用したのと同一のシナリオ(登録、参照、削除)を定義すると、モジュールの実行及び、その依存関係により、形式文脈抽出部130により、図14に示すような形式文脈2が抽出される。従来技術が実行されるモジュールのみを属性としているのに対し、本願発明ではその依存関係を組み合わせて属性とすることにより、図2に示したプログラム1の形式文脈は、従来技術においては図3に示すとおり9種類の属性が存在したが、図14では12種類の属性が存在する。これは図3において、モジュールm6の実行は属性a6として管理されていたのに対し、図14においてはモジュールm6の実行は呼び出し元との依存関係により属性a6とa7の2つに分別され、同様に図3において、モジュールmの実行は属性aとして管理されていたのに対し、図14においてはモジュールmの実行は呼び出し元との依存関係により属性aとa10、a11の3つに分別されることに起因する。このように本願発明によると形式文脈は従来技術による形式文脈より詳細化されることになる。図14の形式文脈2に対し、概念分析部140において、形式概念分析の手法を適用すると、図15に示す形式概念が抽出され、これに対する概念束を形成すると、図16が得られ、これに対し希薄な概念束を形成すると図17が得られる。この結果、
シナリオ1だけが有する特徴:{m→m、m→m、m→m
シナリオ2だけが有する特徴:{m→m、m→m}、
シナリオ3だけが有する特徴:{m→m、m→m、m→m、m→m
シナリオ2と3に共通する特徴:{m→m
シナリオ1、2、3に共通する特徴:{s→m、m→m
が抽出される。各特徴に含まれる属性は、依存関係をもとにグループ化することができ、グループ化を行なうと、
シナリオ1だけが有する特徴:{m→m→m→m
シナリオ2だけが有する特徴:{m→m→m
シナリオ3だけが有する特徴:{m→m→m、m→m→m→m
シナリオ2と3に共通する特徴:{m→m
シナリオ1、2、3に共通する特徴:{s→m、m→m}、
のような、モジュールの実行と、実行されるモジュール間の依存関係を、モジュールのソースコードを読解すること無く得ることが出来る。
As an example of the prior art, if the same scenario (registration, reference, deletion) used to show the prior art is defined for “Program 1” shown in FIG. Thus, the formal context extraction unit 130 extracts the formal context 2 as shown in FIG. Whereas only the module in which the prior art is executed is an attribute, in the present invention, by combining the dependency relationship, the formal context of the program 1 shown in FIG. As shown, there are nine types of attributes, but there are 12 types of attributes in FIG. In FIG. 3, the execution of the module m 6 is managed as the attribute a 6 , whereas in FIG. 14, the execution of the module m 6 has two attributes a 6 and a 7 depending on the dependency with the caller. Similarly, in FIG. 3, the execution of module m 8 is managed as attribute a 8 in FIG. 3, whereas in FIG. 14, the execution of module m 8 is attribute a 9 and a a due to the dependency with the caller. 10, due to being separated into three a 11. Thus, according to the present invention, the formal context is more detailed than the formal context according to the prior art. When the concept analysis unit 140 applies the method of formal concept analysis to the formal context 2 in FIG. 14, the formal concept shown in FIG. 15 is extracted, and when a concept bundle is formed for this, FIG. 16 is obtained. On the other hand, when a sparse concept bundle is formed, FIG. 17 is obtained. As a result,
Features that only scenario 1 has: {m 1 → m 2 , m 2 → m 5 , m 5 → m 8 }
Features that only scenario 2 has: {m 1 → m 3 , m 3 → m 6 },
Features that only scenario 3 has: {m 1 → m 4 , m 4 → m 6 , m 4 → m 7 , m 7 → m 8 }
Features common to scenarios 2 and 3: {m 6 → m 8 }
Features common to scenarios 1, 2, and 3: {s → m 1 , m 8 → m 9 }
Is extracted. The attributes included in each feature can be grouped based on the dependency relationship.
Features that only scenario 1 has: {m 1 → m 2 → m 5 → m 8 }
Features that only scenario 2 has: {m 1 → m 3 → m 6 }
Features that only scenario 3 has: {m 1 → m 4 → m 6 , m 1 → m 4 → m 7 → m 8 }
Features common to scenarios 2 and 3: {m 6 → m 8 }
Features common to scenarios 1, 2, and 3: {s → m 1 , m 8 → m 9 },
As described above, the module execution and the dependency relationship between the modules to be executed can be obtained without reading the module source code.

上記の図8に示すCPU100の各構成要素の動作をプログラムとして構築し、形式概念分析装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。   The operation of each component of the CPU 100 shown in FIG. 8 described above can be constructed as a program and installed in a computer used as a formal concept analyzer, or can be distributed via a network.

本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。   The present invention is not limited to the above-described embodiments, and various modifications and applications can be made within the scope of the claims.

情報処理システムを構成するプログラムの開発においては、保守等において人間が使用するためにプログラムの処理内容を自然言語で記述した設計ドキュメントが作成されることが多い。しかしながら、情報処理システムの保守などによりプログラムが変更されても、設計ドキュメントが同期して変更されない場合も多く、後になって別の保守者が保守を実施する場合には不完全な設計ドキュメントを参照しながら、プログラムの構造や処理内容を理解することが求められることになる。このような場合に、保守者によるプログラムの構造や処理内容の理解を支援するために従来技術や、本発明を使用することが、産業上の利用方法として想定される。   In the development of a program constituting an information processing system, a design document in which the processing contents of the program are described in a natural language is often created for use by humans for maintenance or the like. However, even if the program is changed due to maintenance of the information processing system, etc., the design document is often not changed synchronously. If another maintenance person performs maintenance later, refer to the incomplete design document. However, it is required to understand the structure and processing contents of the program. In such a case, it is assumed as an industrial utilization method that the conventional technique or the present invention is used to assist the maintenance person in understanding the program structure and processing contents.

最初に不完全な設計ドキュメントの記載や、それまで当該情報処理システムを使用していた利用者へのヒアリングなどを通じて、当該情報処理システムが有するであろう機能を利用するためのシナリオ群を作成する。   Create a scenario group to use the functions that the information processing system will have through first describing incomplete design documents and interviewing users who have used the information processing system until then. .

シナリオ群を実行し、形式概念分析の手法により、互いに関連するモジュールの集合をプログラムの特徴(Feature)として発見する。   The scenario group is executed, and a set of modules related to each other is discovered as a feature of the program by a method of formal concept analysis.

不完全な設計ドキュメントに記載されていた機能に関わるモジュールの集合が発見された場合には、ドキュメントに記載された機能の実装箇所が特定される、という効果が生じる。   When a set of modules related to the function described in the incomplete design document is found, there is an effect that the mounting location of the function described in the document is specified.

モジュールの集合が発見されたが、不完全な設計ドキュメントに記載された機能とは無関係な場合は、新規に追加された機能であるため、設計ドキュメントへの追加を行なう。   If a set of modules is found but is not related to the function described in the incomplete design document, it is a newly added function, and is added to the design document.

このように、既存プログラムの保守にむけて形式概念分析の手法を利用することは、
1) 設計ドキュメントに記載された機能の、プログラムによる実装箇所を特定する;
2) 特徴として得られたモジュールの実装状況の分析にもとづき、設計ドキュメントを修正に資することができる;
という効果を求める産業上の利用可能性がある。
In this way, using formal concept analysis techniques to maintain existing programs
1) Specify the location where the function described in the design document is implemented by the program;
2) Based on the analysis of the module mounting status obtained as a feature, the design document can be contributed to corrections;
There is an industrial applicability that demands that effect.

100 CPU
110 トレース部
120 依存関係特定部
130 形式文脈抽出部
140 概念分析部
200 磁気ディスク
210 実行トレース記憶部
300 メモリ
310 依存元記憶部
320 依存性記憶部
330 属性記憶部
340 形式文脈記憶部
100 CPU
DESCRIPTION OF SYMBOLS 110 Trace part 120 Dependency specific | specification part 130 Format context extraction part 140 Concept analysis part 200 Magnetic disk 210 Execution trace memory | storage part 300 Memory 310 Dependent memory | storage part 320 Dependency memory | storage part 330 Attribute memory | storage part 340 Format context memory | storage part

Claims (8)

プログラムの構造や処理の理解を支援するためのプログラム分析装置であって、
プログラムへの入力操作の集合であり、該プログラムの典型的な機能を網羅するシナリオ群の実行に関するトレース情報が格納されているトレースファイル記憶手段と、
理解の対象となるソースコードが入力されると、前記トレースファイル記憶手段からトレース情報を読み出し、前記シナリオを起動した際に実行されるモジュールと該モジュールの依存関係を特定する依存関係特定手段と、
前記シナリオをオブジェクトとし、前記モジュールの依存関係を属性とする形式文脈を抽出する形式文脈抽出手段と、
前記形式文脈を形式概念分析の手法で分析し、概念束を生成する概念分析手段と、
を有することを特徴とするプログラム分析装置。
A program analyzer for supporting understanding of the structure and processing of a program,
Trace file storage means that is a set of input operations to a program and that stores trace information relating to the execution of a scenario group that covers typical functions of the program;
When the source code to be understood is input, the trace information is read from the trace file storage means, and the dependency specifying means for specifying the module executed when the scenario is started and the dependency relation of the module;
Formal context extraction means for extracting a formal context having the scenario as an object and the dependency of the module as an attribute;
A concept analysis means for analyzing the formal context by a formal concept analysis method and generating a concept bundle;
A program analysis apparatus comprising:
前記概念分析手段は、
前記概念束を、各ノードの概念間の差分を示す形の表現変換を行うことにより希薄な概念束を生成する手段を含む
請求項1記載のプログラム分析装置。
The concept analysis means includes
2. The program analysis apparatus according to claim 1, further comprising means for generating a sparse concept bundle by performing expression conversion of the concept bundle in a form indicating a difference between concepts of each node.
前記概念分析手段は、
前記シナリオの特徴に含まれる属性を、依存関係に基づいてグループ化する手段を含む
請求項1または2記載のプログラム分析装置。
The concept analysis means includes
3. The program analysis apparatus according to claim 1, further comprising means for grouping attributes included in the features of the scenario based on a dependency relationship.
前記シナリオが入力されると、該シナリオに関するトレース情報をトレースファイル記憶手段に格納するトレース手段を
更に有する請求項1記載のプログラム分析装置。
2. The program analysis apparatus according to claim 1, further comprising a trace unit that stores trace information related to the scenario in a trace file storage unit when the scenario is input.
プログラムの構造や処理の理解を支援するためのプログラム分析方法であって、
依存関係特定手段が、理解の対象となるソースコードが入力されると、プログラムへの入力操作の集合であり、該プログラムの典型的な機能を網羅するシナリオ群の実行に関するトレース情報が格納されているトレースファイル記憶手段からトレース情報を読み出し、前記シナリオを起動した際に実行されるモジュールと該モジュールの依存関係を特定する依存関係特定ステップと、
形式文脈抽出手段が、前記シナリオをオブジェクトとし、前記モジュールの依存関係を属性とする形式文脈を抽出する形式文脈抽出ステップと、
概念分析手段が、前記形式文脈を形式概念分析の手法で分析し、概念束を生成する概念分析ステップと、
を行うことを特徴とするプログラム分析方法。
A program analysis method for supporting understanding of the structure and processing of a program,
When the source code to be understood is input, the dependency specifying means is a set of input operations to the program, and trace information relating to execution of a scenario group covering typical functions of the program is stored. A dependency specifying step for reading the trace information from the trace file storage means, and specifying the module executed when the scenario is activated and the dependency relationship of the module;
A formal context extraction step for extracting a formal context having the scenario as an object and the module dependency as an attribute; and
A concept analysis step in which a concept analysis means analyzes the formal context by a formal concept analysis method to generate a concept bundle;
The program analysis method characterized by performing.
前記概念分析ステップにおいて、
前記概念束を、各ノードの概念間の差分を示す形の表現変換を行うことにより希薄な概念束を生成する
請求項5記載のプログラム分析方法。
In the concept analysis step,
The program analysis method according to claim 5, wherein a sparse concept bundle is generated by performing expression conversion of the concept bundle in a form indicating a difference between concepts of each node.
前記シナリオが入力されると、該シナリオに関するトレース情報をトレースファイル記憶手段に格納するトレースステップを
更に行う請求項5記載のプログラム分析方法。
6. The program analysis method according to claim 5, wherein when the scenario is input, a trace step of storing trace information regarding the scenario in a trace file storage means is further performed.
コンピュータを、
請求項1乃至4のいずれか1項に記載のプログラム分析装置の各手段として機能させるためのプログラム分析プログラム。
Computer
The program analysis program for functioning as each means of the program analysis apparatus of any one of Claims 1 thru | or 4.
JP2012107121A 2012-05-08 2012-05-08 Program analysis apparatus and method, and program Expired - Fee Related JP5725623B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012107121A JP5725623B2 (en) 2012-05-08 2012-05-08 Program analysis apparatus and method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012107121A JP5725623B2 (en) 2012-05-08 2012-05-08 Program analysis apparatus and method, and program

Publications (2)

Publication Number Publication Date
JP2013235398A JP2013235398A (en) 2013-11-21
JP5725623B2 true JP5725623B2 (en) 2015-05-27

Family

ID=49761482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012107121A Expired - Fee Related JP5725623B2 (en) 2012-05-08 2012-05-08 Program analysis apparatus and method, and program

Country Status (1)

Country Link
JP (1) JP5725623B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391584A (en) * 2017-06-22 2017-11-24 中南大学 Facet searching method and system based on formal notion lattice

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10546233B1 (en) 2014-07-23 2020-01-28 Hrl Laboratories, Llc Method and system to predict and interpret conceptual knowledge in the brain
US10671917B1 (en) 2014-07-23 2020-06-02 Hrl Laboratories, Llc System for mapping extracted Neural activity into Neuroceptual graphs
WO2016043846A2 (en) * 2014-07-23 2016-03-24 Hrl Laboratories Llc A general formal concept analysis (fca) framework for classification
US10360506B2 (en) 2014-07-23 2019-07-23 Hrl Laboratories, Llc General formal concept analysis (FCA) framework for classification

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010147010A1 (en) * 2009-06-17 2010-12-23 日本電気株式会社 Module classification analysis system, module classification analysis method, and module classification analysis program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107391584A (en) * 2017-06-22 2017-11-24 中南大学 Facet searching method and system based on formal notion lattice
CN107391584B (en) * 2017-06-22 2020-12-11 中南大学 Formal concept lattice-based facet search method and system

Also Published As

Publication number Publication date
JP2013235398A (en) 2013-11-21

Similar Documents

Publication Publication Date Title
US9767008B2 (en) Automatic test case generation
CA2713247C (en) Integration environment generator
Miles et al. Prime: A methodology for developing provenance-aware applications
US9569177B2 (en) Service extraction and application composition
JP5725623B2 (en) Program analysis apparatus and method, and program
EP3234851B1 (en) A system and method for facilitating static analysis of software applications
Sivanandan Agile development cycle: Approach to design an effective Model Based Testing with Behaviour driven automation framework
CN110019116B (en) Data tracing method, device, data processing equipment and computer storage medium
US20170193375A1 (en) Rule guided fabrication of structured data and messages
WO2015154474A1 (en) Query interface generation method and device
US20180025162A1 (en) Application program analysis apparatus and method
CN111966718B (en) System and method for data propagation tracking of application systems
Silva et al. Capturing provenance for runtime data analysis in computational science and engineering applications
JP2017522639A5 (en)
Kamimori et al. Automatic method of generating a web prototype employing live interactive widget to validate functional usability requirements
Mohite et al. Analysis of System Requirements by Aspects-J Methodology
Mayer et al. On the applicability of workflow management systems for the preservation of business processes
Miksa et al. VPlan–ontology for collection of process verification data
Geepalla et al. Transformation of spatio-temporal role based access control specification to alloy
JP6021109B2 (en) Program analysis apparatus and method, and program
Gao et al. Generating open api usage rule from error descriptions
KR101673151B1 (en) Method and Apparatus for Analyzing Relationship Change of Program Source and DB Schema
Weiss et al. Introducing the QCEP-testing system for executable acceptance test driven development of complex event processing applications
Quéval et al. Extracting the Architecture of Microservices: An Approach for Explainability and Traceability
JP2013235350A (en) Design support device and method for controlling the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150224

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150327

R150 Certificate of patent or registration of utility model

Ref document number: 5725623

Country of ref document: JP

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

LAPS Cancellation because of no payment of annual fees