JP7255420B2 - ASSET MANAGEMENT DEVICE, ASSET MANAGEMENT METHOD AND ASSET MANAGEMENT PROGRAM - Google Patents

ASSET MANAGEMENT DEVICE, ASSET MANAGEMENT METHOD AND ASSET MANAGEMENT PROGRAM Download PDF

Info

Publication number
JP7255420B2
JP7255420B2 JP2019152021A JP2019152021A JP7255420B2 JP 7255420 B2 JP7255420 B2 JP 7255420B2 JP 2019152021 A JP2019152021 A JP 2019152021A JP 2019152021 A JP2019152021 A JP 2019152021A JP 7255420 B2 JP7255420 B2 JP 7255420B2
Authority
JP
Japan
Prior art keywords
program
data
programs
called
asset management
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019152021A
Other languages
Japanese (ja)
Other versions
JP2021033562A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019152021A priority Critical patent/JP7255420B2/en
Publication of JP2021033562A publication Critical patent/JP2021033562A/en
Application granted granted Critical
Publication of JP7255420B2 publication Critical patent/JP7255420B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、資産管理装置、資産管理方法および資産管理プログラムに関する。 The present invention relates to an asset management device, an asset management method, and an asset management program.

コンピュータシステムの発達により、世の中の様々な場面でコンピュータシステムが活用されている。一度構築したコンピュータシステムでも歳月を経ることで、改良を行う必要性あるいはシステム全体を見直す必要性が生じることがある。このとき、既に作成したプログラムの一部に修正を行うことがあり、既存のシステムの仕様を理解する必要がある。しかし、ソフトウェアは大規模になるとその仕様は複雑なものとなり、仕様の把握や変更は容易ではない。また、膨大なプログラムを対象とした時、プログラム間の関係やデータとの関係数も膨大になるため、全ての関係を基にソフトウェアを分割することは容易ではない。 With the development of computer systems, computer systems are being used in various situations in the world. Even a computer system that has been built once may need to be improved or reviewed as a whole as time passes. At this time, part of the already created program may be modified, and it is necessary to understand the specifications of the existing system. However, when software becomes large, its specifications become complicated, and it is not easy to grasp and change the specifications. In addition, when a huge number of programs are targeted, the number of relationships between programs and data becomes enormous, so it is not easy to divide software based on all the relationships.

近年では、大規模システムを対象に、ソフトウェアを理解可能な部分集合であるサービス部品に分割する技術として、プログラムの呼び出し関係から、自動的に部分集合を抽出してクラスタリングする技術が知られている。また、部分集合を抽出する際に、外部から更新されるデータは、外部に共通データとして定義し、共通データを除いて新たに切り出しの単位を定義した上で、クラスタリングする技術も知られている。また、モダナイゼーションの対象とするアプリケーションの優先順位を直感的に分かりやすくするために、アプリケーションの機能構造を自動的に地図化する技術も知られている。 In recent years, as a technology for dividing software into comprehensible subsets of service components for large-scale systems, a technology for automatically extracting and clustering subsets based on program call relationships is known. . In addition, when extracting a subset, there is also known a technique of defining externally updated data as common data, defining a new extraction unit excluding common data, and clustering. . Also known is a technology that automatically maps the functional structure of applications in order to intuitively understand the priority of applications targeted for modernization.

特開2012-098902号公報JP 2012-098902 A 特開2018-181005号公報Japanese Patent Application Laid-Open No. 2018-181005

しかしながら、上記技術では、アプリケーションが有する複数のプログラムやデータを、サービスを実行する部品であるプロセス単位の部分集合で配置する場合に、プログラムの配置によっては、アプリケーションの構造が理解しにくくなる。 However, with the above technology, when arranging a plurality of programs and data of an application in subsets for each process, which is a component for executing a service, it becomes difficult to understand the structure of the application depending on the arrangement of the programs.

例えば、あるプログラムを複数のプロセスに割当てると、デットロックなどを誘発させることがあり、排他管理を考慮して正しくクラスタリングできず、結果として、プログラムの修正が実行できない。また、デットロックを抑制するために、あるプログラムをどのプロセスにも所属させないようにクラスタリングすることも考えられるが、独立したプログラムが多発し、アプリケーションの構造が理解できなくなる。 For example, when a certain program is assigned to multiple processes, deadlocks may be induced, and correct clustering cannot be performed in consideration of exclusive management, and as a result, program correction cannot be executed. Also, in order to suppress deadlocks, it is conceivable to cluster a program so that it does not belong to any process.

一つの側面では、アプリケーションの構造を理解し易い形式で分類することができる資産管理装置、資産管理方法および資産管理プログラムを提供することを目的とする。 An object of one aspect is to provide an asset management device, an asset management method, and an asset management program capable of classifying the structure of an application in an easy-to-understand format.

第1の案では、資産管理装置は、プログラム資産を構成する複数のプログラムと複数のデータのうち、他のプログラムから呼び出される第1のプログラムを特定する第1特定部を有する。資産管理装置は、前記第1のプログラムのうち、前記複数のデータのいずれかのデータを内部に保持する、または、前記複数のデータのいずれかのデータを更新する、第2のプログラムを特定する第2特定部を有する。資産管理装置は、前記複数のプログラムと前記複数のデータとを依存関係に基づき、プログラムとデータとを関連付けるサービス部品に分類する場合に、前記第2のプログラムを独立したサービス部品に分類する分類部を有する。 In the first proposal, the asset management apparatus has a first identification unit that identifies a first program called from another program among a plurality of programs and a plurality of data constituting program assets. The asset management device identifies a second program, among the first programs, that internally retains any of the plurality of data or updates any of the plurality of data. It has a second specifying part. The asset management device classifies the second program into an independent service component when classifying the plurality of programs and the plurality of data into service components that associate the programs and data based on dependency relationships. have

一実施形態によれば、アプリケーションの構造を理解し易い形式で分類することができる。 According to one embodiment, the structure of an application can be categorized in an easy-to-understand format.

図1は、実施例1にかかる分析装置を説明する図である。FIG. 1 is a diagram for explaining an analysis apparatus according to a first embodiment; FIG. 図2は、一般的な分析手法の問題点を説明する図である。FIG. 2 is a diagram for explaining problems of a general analysis method. 図3は、重複が問題となる例を説明する図である。FIG. 3 is a diagram illustrating an example in which duplication becomes a problem. 図4は、重複により分類が容易になる例を説明する図である。FIG. 4 is a diagram illustrating an example in which overlap facilitates classification. 図5は、実施例1に係る分析装置の機能構成を示す機能ブロック図である。FIG. 5 is a functional block diagram showing the functional configuration of the analysis device according to the first embodiment; 図6は、プログラム資産DBに記憶されるプログラム全体の例を示す図である。FIG. 6 is a diagram showing an example of the entire program stored in the program asset DB. 図7は、重複可能と判定される例を説明する図である。FIG. 7 is a diagram illustrating an example in which duplication is determined to be possible. 図8は、重複不可と判定される例を説明する図である。FIG. 8 is a diagram illustrating an example in which duplication is determined to be impossible. 図9は、重複不可と判定される例を説明する図である。FIG. 9 is a diagram illustrating an example in which duplication is determined to be impossible. 図10は、重複不可と判定される例を説明する図である。FIG. 10 is a diagram illustrating an example in which duplication is determined to be impossible. 図11は、重複不可と判定される例を説明する図である。FIG. 11 is a diagram illustrating an example in which duplication is determined to be impossible. 図12は、プログラムの呼出構造および分類を説明する図である。FIG. 12 is a diagram for explaining the calling structure and classification of programs. 図13は、サービス部品候補の生成結果を説明する図である。FIG. 13 is a diagram for explaining the result of generating service component candidates. 図14は、分析結果および出力例を説明する図である。FIG. 14 is a diagram for explaining analysis results and output examples. 図15は、全体的な処理の流れを示すフローチャートである。FIG. 15 is a flowchart showing the overall flow of processing. 図16は、重複判定処理の流れを示すフローチャートである。FIG. 16 is a flowchart showing the flow of duplication determination processing. 図17は、プログラム群生成処理の流れを示すフローチャートである。FIG. 17 is a flow chart showing the flow of program group generation processing. 図18は、ハードウェア構成例を説明する図である。FIG. 18 is a diagram illustrating a hardware configuration example.

以下に、本願の開示する資産管理装置、資産管理方法および資産管理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。 Embodiments of an asset management device, an asset management method, and an asset management program disclosed in the present application will be described below in detail with reference to the drawings. In addition, this invention is not limited by this Example. Moreover, each embodiment can be appropriately combined within a range without contradiction.

[分析装置の説明]
図1は、実施例1にかかる分析装置100を説明する図である。図1に示すように、分析装置100は、複数のプログラムと複数のデータとを含むプログラム資産に対して疎結合分析を実行し、アプリケーションなどのプログラム資産内にプログラムやデータベースなどを分割や分類して、アプリケーションの構造を分析した分析結果を生成する。つまり、分析装置100は、資産管理装置の一例であり、プログラム資産の内部構造の把握と、機能やデータをサービスとして切出しやすい形への再構造化を行う。
[Description of analyzer]
FIG. 1 is a diagram illustrating an analysis device 100 according to Example 1. FIG. As shown in FIG. 1, the analysis apparatus 100 performs loosely coupled analysis on program assets including multiple programs and multiple data, and divides and classifies programs, databases, etc. within program assets such as applications. to generate an analysis result that analyzes the structure of the application. In other words, the analysis apparatus 100 is an example of an asset management apparatus, and grasps the internal structure of program assets, and restructures functions and data into forms that are easy to extract as services.

一般的に、あるシステムへ適用されたプログラム資産は、システムの改変、増築、ネットワークなどの周辺環境の変化に伴い、更新されていく。つまり、システムが長年使用されることにより、プログラム資産へプログラムやデータベースなどの部品(要素)の追加、プログラム資産内の部品の変更などが経年的に実行される。このように経年的に更新されるプログラム資産は、複数人によって更新されることから、正確な管理資料(更新資料)などがないことも珍しくない。このため、リバースエンジニアリングやプログラム構造の分析などを行う場合に、プログラム資産の全体を参照して、プログラム資産内に部品が他の部品とどのように関係しているのか、ある部品を更新するとどの部品に影響を与えるのかを分析して把握することは、システムエンジニアやプログラマであっても簡単ではない。 In general, program assets applied to a certain system are updated along with changes in the surrounding environment such as modification, extension, and network of the system. In other words, as the system is used for many years, parts (elements) such as programs and databases are added to the program assets, and parts in the program assets are changed over time. Since such program assets that are updated over time are updated by multiple people, it is not uncommon for there to be no accurate management data (update data). For this reason, when performing reverse engineering or program structure analysis, etc., the entire program assets can be referred to, and how parts within the program assets are related to other parts, and how to update a certain part. It is not easy even for system engineers and programmers to analyze and understand what affects parts.

近年、変化の激しい業務に合わせて、システムを迅速に変更することが求められている。例えば、産業流通の業務では、拠点追加や取引先の変更などが度々あり、それに合わせて、業務システムも変更していくことが要求される。しかし、以前の業務システムは、プログラム同士や、プログラムとデータとが一体となった構造になっていることが多く、システムを変更しようとすると、どこに影響が及ぶかわからない。この結果、改修が難しく、頻繁に変更することが出来ない。また、影響範囲を局所化するように分割しようとすると多くの依存関係を調べなければならないので、作業時間が膨大となっていた。 In recent years, there has been a demand to quickly change systems in accordance with rapidly changing business. For example, in the business of industrial distribution, there are frequent additions of bases and changes in business partners, and it is required to change the business system accordingly. However, many of the previous business systems had a structure in which programs and data were integrated, and it was impossible to know where the impact would be if the system were to be changed. As a result, it is difficult to modify and cannot be changed frequently. In addition, when attempting to divide a program so as to localize the scope of influence, many dependencies must be examined, resulting in an enormous amount of work time.

一般的な手法の問題点として、サービスを実行するサービス部品であるプロセス別にプログラムを分割する場合、各プロセスに配置することを許容するプログラムと、重複配置せずに一つのプロセスに配置するべきプログラムとを判定できないことが挙げられる。 The problem with general methods is that when a program is divided into processes, which are service components that execute services, programs that can be placed in each process and programs that should be placed in a single process without duplication. and cannot be determined.

図2は、一般的な分析手法の問題点を説明する図である。図2の(a)には、プログラム資産であるアプリケーションを示す。図2の(a)において、アプリケーションは、複数のプログラムから構成されるプロセスと、データベース等であるデータX、Y、Zとから構成される。ここで、簡略化するために、プログラム1をPG1などと表記し、プログラム間の呼出関係を実線の矢印で示し、データ更新の流れを破線の矢印で示し、データ参照の流れを太線の矢印で示す。つまり、PG1、PG10、PG20のそれぞれからPG2とPG3とが呼び出される依存関係がある。また、PG1とPG10とPG3のそれぞれからデータXへデータ更新の関係性、PG1からデータYへデータ参照、PG20からデータZへデータ更新の関係性がある。 FIG. 2 is a diagram for explaining problems of a general analysis method. FIG. 2(a) shows an application, which is a program resource. In (a) of FIG. 2, an application is composed of a process composed of a plurality of programs and data X, Y, Z such as a database. Here, for the sake of simplification, program 1 is denoted as PG1, etc., the calling relationship between programs is indicated by solid-line arrows, the data update flow is indicated by broken-line arrows, and the data reference flow is indicated by thick-line arrows. show. That is, there is a dependency relationship in which PG2 and PG3 are called from PG1, PG10, and PG20, respectively. Further, there is a relationship of updating data from PG1, PG10, and PG3 to data X, a relationship of data reference from PG1 to data Y, and a relationship of updating data from PG20 to data Z.

このような状態で、一般的には、図2の(b)に示すように、プログラムは必ず1のプロセスにのみ分類される手法や、図2の(c)に示すように、関係するプログラムは全て、分類対象のプロセスに配置可能としてそれぞれに配置する手法が考えられる。つまり、プログラムの重複を行わずに分類するか、プログラムの重複を許容して分類することが行われる。ところが、アプリケーションの構造によっては、分類が正しく実行されず、デットロックなどの問題が発生し、却って、アプリケーションの構造が理解しにくくなることがある。 In such a state, generally, as shown in FIG. 2(b), a program is always classified into only one process, can be placed in each process to be classified. In other words, classification is performed without duplication of programs, or classification is performed with duplication of programs allowed. However, depending on the structure of the application, the classification may not be performed correctly, causing problems such as deadlocks, and on the contrary, the structure of the application may become difficult to understand.

図3は、重複が問題となる例を説明する図である。色々な処理から更新されるデータは、実行時に排他管理等のデータの管理が難しくなるので、データを更新する箇所は出来るだけ限定したい。また、データを複数の箇所で持つレプリケーションもあるが、更新箇所は限定した方が管理しやすい。具体的には、1つの資源の貸し借りをするようなシステムでは、各処理が直接データを参照や更新する形にすると、データアクセスが集中する。また、貸し出されているかどうかは、他の処理にそのデータが即時に反映されなければならないので、レプリケーションなどで分散して管理することが難しい。 FIG. 3 is a diagram illustrating an example in which duplication becomes a problem. It is difficult to manage data, such as exclusive management, during execution of data that is updated by various processes. Also, although there is replication in which data is stored in multiple locations, it is easier to manage if the update location is limited. Specifically, in a system that lends and borrows one resource, if each process directly refers to or updates data, data access will be concentrated. In addition, whether or not the data is lent out must be immediately reflected in other processing, so it is difficult to distribute and manage the data by replication or the like.

例えば、図3に示すように、サービス監視処理、イントラネット系サービス提供処理、提供サービス検索処理などの各処理から要求を受け付けて、プールされているIP(Internet Protocol)アドレスの使用や解放を実行するアドレス管理プログラムを考える。この場合、各処理ではIPアドレスの貸し借りができればよいので、各処理がIPアドレスの貸し借りを直接行うように複数のプロセスにアドレス管理プログラムを配置するより、1つのプロセスで管理する方が効率的である。 For example, as shown in FIG. 3, it accepts requests from each process such as service monitoring process, intranet service provision process, and service search process, and executes use and release of pooled IP (Internet Protocol) addresses. Consider an address management program. In this case, since it is sufficient for each process to lend and borrow IP addresses, it is more efficient to manage them in one process rather than arranging the address management program in a plurality of processes so that each process directly lends and borrows IP addresses. be.

図4は、重複により分類が容易になる例を説明する図である。異なるデータに対して、同じ処理又は類似した処理を実行する場合がある。この場合、同じプログラムを呼び出す場合でも、プロセス毎に配置すればプロセス間の関係を簡潔にできることがある。 FIG. 4 is a diagram illustrating an example in which overlap facilitates classification. The same or similar processing may be performed on different data. In this case, even if the same program is called, it may be possible to simplify the relationship between processes by arranging them for each process.

例えば、図4に示すように、見積りの予定日を計算する見積もり取得予定日計算処理と納期の予定日を計算する納期予定日計算処理とのそれぞれからの要求に対して、指定営業日とカレンダ情報から予定日を返却する応答プログラムを考える。この応答プログラムの場合、データは引数で渡され、DBなどのデータ更新は実行しない。このため、各処理(各プロセス)に応答プログラムを配置すれば、それぞれの処理の独立性が確保され、通信を削減できる。 For example, as shown in FIG. 4, for a request from each of the estimated acquisition date calculation processing for calculating the scheduled date of the estimate and the scheduled delivery date calculation processing for calculating the scheduled delivery date, the specified business day and the calendar Consider a response program that returns a scheduled date from information. In the case of this response program, data is passed as an argument, and data update of DB etc. is not executed. Therefore, if a response program is placed in each process (each process), the independence of each process can be ensured and communication can be reduced.

上述したように、処理の形態やデータの更新状況等により、分類対象の各プロセスに配置する方がよい場合と、分類対象の各プロセスには配置せずに独立した1つのプロセスとして分類する方がよい場合とがあり、その判断は難しい。 As mentioned above, depending on the type of processing and data update status, there are cases where it is better to place it in each process to be classified, and there are cases where it is classified as an independent process without being placed in each process to be classified. There are cases where it is better, and it is difficult to judge.

そこで、実施例1にかかる分析装置100は、プログラム資産を構成する複数のプログラムと複数のデータのうち、他のプログラムから呼び出される第1のプログラムを特定する。分析装置100は、第1のプログラムのうち、複数のデータのいずれかのデータを内部に保持する、または、複数のデータのいずれかのデータを更新する、第2のプログラムを特定する。その後、分析装置100は、複数のプログラムと複数のデータとを依存関係に基づき、プログラムとデータとを関連付けるサービス部品(プロセス)に分類する場合に、第2のプログラムを独立したサービス部品に分類する。 Therefore, the analysis apparatus 100 according to the first embodiment identifies the first program called by another program among the plurality of programs and the plurality of data constituting the program assets. Analysis device 100 identifies a second program, among the first programs, that internally retains any of the plurality of data or updates any of the plurality of data. After that, when classifying the plurality of programs and the plurality of data into service components (processes) that associate the programs and data based on the dependency relationship, the analysis device 100 classifies the second program into independent service components. .

このようにして、分析装置100は、プロセス毎にプログラムを配置しても良いものか、プロセス毎に重複は配置せずに一つの単位に配置するべきものかを自動で判別し、適切に分類することで、アプリケーションの構造を理解し易い形式で分類することができる。 In this way, the analysis apparatus 100 automatically determines whether the programs may be arranged for each process or whether the programs should be arranged in one unit without duplication for each process, and appropriately classifies the programs. By doing so, the structure of the application can be categorized in an easy-to-understand format.

[用語の説明]
ここで、実施例1で使用する用語について説明する。アプリケーションとは、プログラム全体を示し、本実施例では、業務ロジックなどが実装されたプログラムであるアプリケーションを対象とする。なお、本実施例では、オペレーティングシステムはプログラムに含まれないこととする。
[Explanation of terms]
Here, terms used in the first embodiment will be explained. An application indicates an entire program, and in this embodiment, an application that is a program in which business logic or the like is implemented is targeted. Note that the operating system is not included in the program in this embodiment.

プログラムは、アプリケーションを構成する一部分であり、機能は、アプリケーションで実装されているロジックが提供する処理である。データは、データベースのテーブルやファイルなどである。サービスは、アプリケーションを一塊で実装するのではなく、複数のサービスを組み合わせて実現するマイクロサービスの1つの実行単位を指す。プロセスは、サービスの実行形態である。 A program is a part of an application, and a function is processing provided by logic implemented in the application. The data are database tables, files, and the like. A service refers to one execution unit of a microservice that implements a plurality of services by combining them, rather than implementing an application as a block. A process is an execution form of a service.

[機能構成]
図5は、実施例1に係る分析装置100の機能構成を示す機能ブロック図である。図5に示すように、分析装置100は、通信部101、記憶部102、制御部110を有する。
[Function configuration]
FIG. 5 is a functional block diagram showing the functional configuration of the analysis device 100 according to the first embodiment. As shown in FIG. 5, the analysis device 100 has a communication section 101, a storage section 102, and a control section 110. FIG.

通信部101は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどである。例えば、通信部101は、管理者端末から、処理開始の指示や分析対象のプログラム資産の入力を受け付ける。また、通信部101は、管理者端末などに、分析結果を送信する。 The communication unit 101 is a processing unit that controls communication with another device, such as a communication interface. For example, the communication unit 101 receives an instruction to start processing and an input of a program asset to be analyzed from the administrator terminal. Also, the communication unit 101 transmits the analysis result to the administrator terminal or the like.

記憶部102は、プログラムやデータを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部102は、プログラム資産DB103、重複判定結果DB104、分析結果DB105を記憶する。 The storage unit 102 is an example of a storage device that stores programs and data, such as a memory or a hard disk. This storage unit 102 stores a program asset DB 103 , a duplication determination result DB 104 and an analysis result DB 105 .

プログラム資産DB13は、分析対象のアプリケーションであるプログラム資産を記憶するデータベースである。ここで記憶されるプログラム資産は、管理者等によって格納される。図6は、プログラム資産DB13に記憶されるプログラム全体の例を示す図である。図6に示すように、プログラム資産は、プログラム1、プログラム10、プログラム2、プログラム3、プログラム20を含む。図6は、5つのプログラムの記述例を模式的に示した例で、プログラム呼出部分およびデータアクセスのみを記述している。 The program asset DB 13 is a database that stores program assets, which are applications to be analyzed. The program assets stored here are stored by an administrator or the like. FIG. 6 is a diagram showing an example of the entire program stored in the program asset DB 13. As shown in FIG. As shown in FIG. 6, the program assets include program 1, program 10, program 2, program 3, and program 20. FIG. FIG. 6 is an example schematically showing description examples of five programs, and describes only program calling portions and data access.

重複判定結果DB104は、各プログラムが重複配置を許容するか否かを特定する情報を記憶するデータベースである。例えば、重複判定結果DB104は、各プログラムが複数のプロセスに重複して配置可能であるか否かを示す情報や、重複して配置可能なプログラムの一覧などを記憶する。 The overlap determination result DB 104 is a database that stores information specifying whether or not each program permits overlapping placement. For example, the duplication determination result DB 104 stores information indicating whether or not each program can be redundantly arranged in a plurality of processes, a list of programs that can be redundantly arranged, and the like.

分析結果DB105は、後述する制御部20によるプログラム資産の分析結果を記憶するデータベースである。例えば、分析結果DB105は、プログラム資産を示す識別子、分析結果、分析日時などを対応付けて記憶する。 The analysis result DB 105 is a database that stores analysis results of program assets by the control unit 20, which will be described later. For example, the analysis result DB 105 associates and stores identifiers indicating program assets, analysis results, analysis dates, and the like.

制御部110は、分析装置100全体を司る処理部であり、例えばプロセッサなどである。この制御部110は、解析部111、重複判定部112、分析部113、提示部114を有する。なお、解析部111、重複判定部112、分析部113、提示部114は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例などである。 The control unit 110 is a processing unit that controls the entire analysis apparatus 100, such as a processor. The control unit 110 has an analysis unit 111 , a duplication determination unit 112 , an analysis unit 113 and a presentation unit 114 . Note that the analysis unit 111, the duplication determination unit 112, the analysis unit 113, and the presentation unit 114 are an example of an electronic circuit possessed by a processor, an example of a process executed by the processor, and the like.

解析部111は、プログラム資産内のプログラム間の関係性を解析する処理部である。具体的には、解析部111は、プログラム資産を入力として、プログラムの呼び出し関係およびプログラムとデータの関係に基づき、起点となるプログラムと他のプログラムから読み出されるプログラムとを特定する。 The analysis unit 111 is a processing unit that analyzes relationships between programs in program assets. Specifically, the analysis unit 111 receives program assets as an input, and identifies a program serving as a starting point and a program read from another program based on the relationship between program calls and the relationship between programs and data.

例えば、図6を例にして説明すると、解析部111は、プログラム1、プログラム10、プログラム20について、他のプログラムから呼び出されていないため起点と特定する。一方、解析部111は、プログラム2とプログラム3については、他のプログラムから呼び出されるので、起点ではなく、他のプログラムから呼び出される非起点プログラムと特定する。そして、解析部111は、特定した情報を、記憶部102に格納したり、他の処理部に出力したりする。 For example, using FIG. 6 as an example, the analysis unit 111 identifies program 1, program 10, and program 20 as starting points because they are not called by other programs. On the other hand, since the programs 2 and 3 are called from other programs, the analysis unit 111 identifies them as non-originating programs called from other programs, not originating programs. Then, the analysis unit 111 stores the specified information in the storage unit 102 or outputs it to another processing unit.

重複判定部112は、各プログラムに対して、複数のプロセスに重複して配置することを許容できるか否かを判定する処理部である。具体的には、重複判定部112は、解析部111により特定された非起点プログラム(呼出先プログラム)が、データを内部に保持するプログラム、または、データを更新するプログラムかを判定する。そして、重複判定部112は、これらに該当する場合にそのプログラムを重複配置不可と判定し、これらに該当しない場合にそのプログラムを重複配置可と判定し、その結果を重複判定結果DB104に格納する。 The duplication determination unit 112 is a processing unit that determines whether or not it is permissible for each program to be redundantly placed in a plurality of processes. Specifically, the duplication determination unit 112 determines whether the non-originating program (called program) identified by the analysis unit 111 is a program that holds data internally or a program that updates data. Then, the duplication judging unit 112 judges that the program cannot be redundantly arranged when these conditions apply, and judges that the program can be arranged redundantly when it does not correspond to these conditions, and stores the result in the duplication judgment result DB 104. .

例えば、図6を例にして説明すると、重複判定部112は、他のプログラムから呼び出されるプログラムと判定されたプログラム2とプログラム3のうち、プログラム3はデータYに書き込みを行うので重複不可と判定し、プログラム2はデータの書き込みを行わないので重複可と判定する。 For example, referring to FIG. 6, of program 2 and program 3, which are determined to be called by another program, program 3 writes to data Y, so the duplication determination unit 112 determines that duplication is not possible. However, since program 2 does not write data, it is determined that duplication is possible.

ここで、図7から図11を用いて、重複可否の判定例を具体的に説明する。図7は、重複可能と判定される例を説明する図であり、図8から図11は、重複不可と判定される例を説明する図である。ここでは、COBOLで記述されたプログラムを例にして説明する。 Here, an example of judging whether overlap is possible will be specifically described with reference to FIGS. 7 to 11. FIG. FIG. 7 is a diagram for explaining an example in which it is determined that overlap is possible, and FIGS. 8 to 11 are diagrams for explaining examples in which it is determined that overlap is not possible. Here, a program written in COBOL will be described as an example.

図7の例では、プログラム2は、プログラム1から呼び出されるプログラムであり、呼出元のプログラム1からの入力のみを用いて処理して応答するプログラムである。具体的には、プログラム1は、プログラム2を呼び出すときに入力Aを指定すると出力Bを取得する。プログラム2は、入力Aが1であれば出力Bとして1を返却し、入力Aが1でなければ出力Bとして2を返却する。すわなち、プログラム2は、データを参照するだけであることから、重複可のプログラムと判定される。 In the example of FIG. 7, program 2 is a program that is called from program 1 and that processes and responds using only the input from program 1 that called it. Specifically, program 1 acquires output B when input A is specified when program 2 is called. Program 2 returns 1 as output B if input A is 1, and returns 2 as output B if input A is not 1. That is, program 2 is determined as a duplication-permissible program because it only refers to data.

図8の例では、プログラム3は、プログラム1から呼び出されるプログラムである。具体的には、呼出先のプログラム3は、図7で説明したプログラム2と同様の記述に加えて、データベースであるデータXに対して更新を行う。すわなち、プログラム3は、データに直接アクセスしてデータ更新を行うプログラムであり、データを更新する構文が記述されていることから、重複不可のプログラムと判定される。 In the example of FIG. 8, program 3 is a program called from program 1. In the example of FIG. Specifically, the called program 3 updates the data X, which is a database, in addition to the description similar to that of the program 2 described with reference to FIG. That is, program 3 is a program that directly accesses data and updates data, and since the syntax for updating data is described, it is determined to be a non-duplicate program.

図9の例では、プログラム4は、プログラム1から呼び出されるプログラムである。具体的には、プログラム4は、プログラム1からの入力Aが1の場合に、データXを更新し、データXに対してID=Bを設定する。また、プログラム4は、プログラム1からの入力Aが1ではない場合に、データYを更新し、データYに対してID=Bを設定する。すなわち、プログラム4は、1つ以上のデータベースを更新するプログラムであることから、重複不可のプログラムと判定される。 In the example of FIG. 9, program 4 is a program called from program 1. In the example of FIG. Specifically, when the input A from the program 1 is 1, the program 4 updates the data X and sets ID=B for the data X. Also, program 4 updates data Y when input A from program 1 is not 1, and sets ID=B for data Y. FIG. In other words, since program 4 is a program that updates one or more databases, it is determined as a non-duplicate program.

図10の例では、プログラム4は、プログラム1から呼び出されるプログラムである。具体的には、プログラム4は、プログラム1からの入力AをファイルAAに書き込み、ファイルAAのデータを、各プログラムがアクセス可能な共有メモリ領域のデータ項目BBに移動させる。すなわち、プログラム4は、ファイルに書き込む構文が記述されるプログラムであり、ファイル側と一体として管理すべきであることから、重複不可のプログラムと判定される。また、プログラム4は、共有メモリの領域を更新する構文が記述されるプログラムでもあり、共有メモリ領域と一体として管理すべきであり、重複不可のプログラムと判定される。 In the example of FIG. 10, program 4 is a program called from program 1. In the example of FIG. Specifically, program 4 writes input A from program 1 to file AA, and moves the data in file AA to data item BB in the shared memory area accessible by each program. That is, the program 4 is a program in which a syntax for writing to a file is described, and should be managed together with the file side, so it is determined as a non-overlapping program. Program 4 is also a program in which a syntax for updating the shared memory area is described, and should be managed as an integral part of the shared memory area, and is determined to be a non-overlapping program.

図11の例は、Java(登録商標)等のオブジェクト指向言語で記述されたプログラムの例である。図11のプログラムは、SQL文などの明示的な記述がないものの、データベースへの参照や更新を行うプログラムである。このように、更新文がないプログラムであっても、データオブジェクトように、複数の処理で共有するデータを更新するプログラムについても、データと一体として管理すべきであり、重複不可のプログラムと判定される。 The example of FIG. 11 is an example of a program written in an object-oriented language such as Java (registered trademark). The program in FIG. 11 is a program that refers to and updates a database although there is no explicit description such as an SQL statement. In this way, even programs that do not have update statements, like data objects, that update data shared by multiple processes should be managed together with the data, and will be judged as non-duplicate programs. be.

図5に戻り、分析部113は、プログラム資産内に各プログラムや各データを、アプリケーションの構造を理解し易くすることができるように分析および分類する処理部である。具体的には、分析部113は、特開2018-181005号公報の手法を用いて、分類し、サービス部品を生成する。このとき、分析部113は、重複判定部112により重複不可と判定されたプログラムについては、独立したサービス部品に分類する。 Returning to FIG. 5, the analysis unit 113 is a processing unit that analyzes and classifies each program and each data in the program assets so that the structure of the application can be easily understood. Specifically, the analysis unit 113 classifies and generates service components using the technique disclosed in Japanese Patent Application Laid-Open No. 2018-181005. At this time, the analysis unit 113 classifies the programs determined by the duplication determination unit 112 to be non-duplicate into independent service components.

例えば、分析部113は、起点のプログラムから呼び出し関係を追跡して、プログラムの呼び出し構造全体を作成し、「プログラム群」として定義する。続いて、分析部113は、各プログラム群とデータとの関係性から、プログラム群とデータの関係で特に近いものをグループ化した部分集合であるサービス部品候補を生成する。その後、分析部113は、複数のサービス部品候補に関連付けられるデータのうち、他のサービス部品候補から更新されるデータを共通データとして抽出し、共通データを含まない複数のサービス部品候補および共通データを、プログラム資産のサービス部品として生成する。 For example, the analysis unit 113 traces the calling relationship from the starting program, creates the entire calling structure of the program, and defines it as a "program group". Subsequently, the analysis unit 113 generates service component candidates, which are subsets obtained by grouping program groups and data that are particularly close in relation to each program group and data, based on the relationship between each program group and data. After that, the analysis unit 113 extracts, as common data, data updated from other service component candidates among the data associated with the plurality of service component candidates, and extracts the common data and the plurality of service component candidates that do not include common data. , is generated as a service component of the program assets.

ここで、それぞれの処理について説明する。図12は、プログラムの呼出構造および分類を説明する図である。図12では、図6のプログラム資産からプログラム群を生成する例を図示している。上記例で説明すると、分析部113は、解析部111から通知される情報にしたがって、起点としてプログラム1、プログラム10、プログラム20を特定する。 Each process will now be described. FIG. 12 is a diagram for explaining the calling structure and classification of programs. FIG. 12 illustrates an example of generating a program group from the program assets of FIG. In the above example, the analysis unit 113 identifies program 1, program 10, and program 20 as starting points according to the information notified from the analysis unit 111. FIG.

続いて、分析部113は、起点であるプログラム1を起点に呼出構造を作成する。プログラム1は、プログラム2とプログラム3を呼び出す。このことから、プログラム1は、プログラム2、3と合わせて呼び出し構造を保持すると判定できる。したがって、分析部113は、プログラム1を起点とするプログラム群1を生成し、プログラム1から追跡できるプログラム2、プログラム3をプログラム群1に分類するが、プログラム3については重複不可と判定されていることから、プログラム群1からは除外する。なお、プログラム2は、重複可能と判定されているので、そのままプログラム群1に分類される。 Subsequently, the analysis unit 113 creates a call structure starting from program 1, which is the starting point. Program 1 calls Program 2 and Program 3. From this, it can be determined that the program 1 holds the call structure together with the programs 2 and 3. FIG. Therefore, the analysis unit 113 generates a program group 1 starting from the program 1, and classifies the programs 2 and 3 that can be traced from the program 1 into the program group 1, but it is determined that the duplication of the program 3 is impossible. Therefore, it is excluded from program group 1. It should be noted that program 2 is classified as program group 1 as it is because it has been determined that duplication is possible.

このようにして、分析部113は、プログラム10とプログラム2から構成されるプログラム群10と、プログラム20とプログラム2から構成されるプログラム群20とを生成する。なお、分析部113は、プログラム3については重複不可と判定されていることから、いずれのプログラム群にも属さない独立したプログラム群として、プログラム群3を生成する。この結果、分析部113は、プログラム群1、プログラム群10、プログラム群20、プログラム群3を生成することができる。 Thus, the analysis unit 113 generates a program group 10 composed of the program 10 and the program 2 and a program group 20 composed of the program 20 and the program 2. FIG. Since it is determined that program 3 cannot overlap, analysis unit 113 generates program group 3 as an independent program group that does not belong to any program group. As a result, the analysis unit 113 can generate program group 1, program group 10, program group 20, and program group 3. FIG.

続いて、分析部113は、各プログラム群に対して、各プログラム群がアクセスするデータを対応付ける。具体的には、プログラム群1のプログラム1は、データXを更新するとともに、データYを参照する。このため、分析部113は、プログラム群1がデータXを更新しデータ参照するという関係を定義する。このようにして、分析部113は、プログラム群1、プログラム群10、プログラム群20、プログラム群3それぞれについて、データを対応付ける。 Subsequently, the analysis unit 113 associates data accessed by each program group with each program group. Specifically, program 1 of program group 1 updates data X and references data Y. As shown in FIG. Therefore, the analysis unit 113 defines a relationship that the program group 1 updates the data X and refers to the data. In this manner, the analysis unit 113 associates data with each of program group 1, program group 10, program group 20, and program group 3. FIG.

これらの結果を図12に示す。分析部113は、図12の(a)に示す呼出関係を基に、図12の(b)に示すように、プログラム群1がデータXを更新しデータ参照するという関係などを生成して、記憶部12や他の処理部に出力する。具体的には、プログラム群1は、データXを更新し、データYを参照し、プログラム群3を呼び出す関係を有する。プログラム群10は、データYを更新し、プログラム群3を呼び出す関係を有する。プログラム群20は、データZを更新し、プログラム群3を呼び出す関係を有する。プログラム群3は、プログラム群1、10、20のそれぞれから呼び出され、データYを更新する関係を有する。 These results are shown in FIG. Based on the calling relationship shown in FIG. 12(a), the analysis unit 113 generates, for example, the relationship that the program group 1 updates and refers to the data X as shown in FIG. 12(b), It outputs to the storage unit 12 and other processing units. Specifically, program group 1 updates data X, references data Y, and calls program group 3 . Program group 10 updates data Y and calls program group 3 . Program group 20 updates data Z and calls program group 3 . A program group 3 is called by each of the program groups 1, 10, and 20 and has a relationship of updating data Y. FIG.

なお、出力形式は、これに限定されず、出力先のツール等にあわせて様々な形式を採用できる。例えば、図12の(c)に示すように、カンマ区切りで関係形成を定義し、プログラム群とデータおよび参照関係を#read、更新関係を#writeと言う形で追記することで関係を記述することもできる。例えば、図12の(c)の1行目は、プログラム群1がデータXを更新(write)していることを記述している。 Note that the output format is not limited to this, and various formats can be adopted according to the output destination tool. For example, as shown in (c) of FIG. 12, relationships are described by defining relationship formations separated by commas, adding programs, data, and reference relationships in the form of #read, and update relationships in the form of #write. can also For example, the first line in (c) of FIG. 12 describes that program group 1 updates (writes) data X. FIG.

次に、分析部113は、特開2013-148987号公報などのクラスタリング技術を用いて、各プログラム群とデータとの関係性から、プログラム群とデータの関係で特に近いものをグループ化した部分集合であるサービス部品候補を生成する。例えば、分析部113は、各データへの入力数が多いほど関係性が強いと判断して、関係性が強いプログラム群とデータとを同一グループとなるように、サービス部品候補を生成する。生成された結果を図13に示す。図13は、サービス部品候補の生成結果を説明する図である。 Next, the analysis unit 113 uses a clustering technique such as Japanese Patent Application Laid-Open No. 2013-148987 to group subsets that are particularly close in terms of the relationship between the program group and the data based on the relationship between each program group and the data. to generate a service component candidate. For example, the analysis unit 113 determines that the greater the number of inputs to each piece of data, the stronger the relationship, and generates service component candidates so that programs and data having a strong relationship are grouped together. The generated results are shown in FIG. FIG. 13 is a diagram for explaining the result of generating service component candidates.

図13に示すように、分析部113は、プログラム群1とデータXとを含むサービス部品候補(ID=01)、プログラム群10を含むサービス部品候補(ID=02)、プログラム群20とデータZを含むービス部品候補(ID=03)、プログラム群3とデータYを含むービス部品候補(ID=04)の4つのサービス部品候補を生成する。また、分析部113は、サービス部品候補IDと部品とを対応付けた二項関係として、「(01,プログラム群1)、(01,データX)、(02,プログラム群10)、(03,プログラム群10)、(03,データZ)、(04,プログラム群3)、(04,データY)」なども生成する。その後、分析部113は、生成したサービス部品候補を他の処理部に出力する。 As shown in FIG. 13, the analysis unit 113 analyzes a service component candidate (ID=01) including program group 1 and data X, a service component candidate (ID=02) including program group 10, a program group 20 and data Z and a service component candidate (ID=04) containing program group 3 and data Y are generated. In addition, the analysis unit 113 defines "(01, program group 1), (01, data X), (02, program group 10), (03, Program group 10), (03, data Z), (04, program group 3), (04, data Y), etc. are also generated. After that, the analysis unit 113 outputs the generated service component candidates to other processing units.

その後、分析部113は、複数のサービス部品候補に関連付けられるデータのうち、他のサービス部品候補から更新されるデータを共通データとして抽出し、共通データを含まない複数のサービス部品候補および共通データを、プログラム資産のサービス部品として生成する。本実施例では、共通データが存在しない場合を例示したので、分析部113は、分類したサービス部品の結果として、図13に示す情報を分析結果DB105に格納する。 After that, the analysis unit 113 extracts, as common data, data updated from other service component candidates among the data associated with the plurality of service component candidates, and extracts the common data and the plurality of service component candidates that do not include common data. , is generated as a service component of the program assets. In this embodiment, the case where common data does not exist is exemplified, so the analysis unit 113 stores the information shown in FIG. 13 in the analysis result DB 105 as a result of the classified service components.

図5に戻り、提示部114は、分析部113の分析結果をユーザ等に出力する処理部である。具体的には、提示部114は、分析結果DB105に記憶される分析結果を取得し、複数のサービス部品に分類した分析結果を表示する際に、起点となるプログラムや重複不可と判定されたプログラムを、他のプログラムやデータとは異なる形式で表示する。 Returning to FIG. 5, the presentation unit 114 is a processing unit that outputs the analysis result of the analysis unit 113 to a user or the like. Specifically, the presentation unit 114 obtains the analysis results stored in the analysis result DB 105, and displays the analysis results classified into a plurality of service components. display in a different format than other programs and data.

図14は、分析結果および出力例を説明する図である。図14に示すように、提示部114は、起点のプログラムを縦に長く表示したりすることにより、他のプログラムより大きく出力する。また、提示部114は、プロセスごと(パッケージごと)に属するプログラムの色などを変えて表示する。また、提示部114は、データ更新等を行うことから独立したプロセスに分類されたプログラム3の色や形を変えることで、他のプログラムとは異なる形式で出力する。なお、提示部114は、ソフトウェア地図技術などを用いる場合は、起点のプログラムや重複不可のプログラムの形状について、高さや色を変えることにより、他のプログラムと区別して表示することもできる。 FIG. 14 is a diagram for explaining analysis results and output examples. As shown in FIG. 14, the presentation unit 114 displays the starting program in a vertically elongated manner, thereby outputting the program in a larger size than the other programs. In addition, the presentation unit 114 displays the programs belonging to each process (each package) in different colors. In addition, the presentation unit 114 changes the color and shape of the program 3 classified as an independent process to update data and the like, thereby outputting the program in a format different from that of other programs. When software map technology or the like is used, the presentation unit 114 can also display the shapes of the originating program and non-overlapping programs by changing the height and color to distinguish them from other programs.

[処理の流れ]
図15は、全体的な処理の流れを示すフローチャートである。図15に示すように、分析装置100は、分析処理の開始指示などを受け付けると、プログラム資産内のプログラム間の関係性を解析する(S101)。
[Process flow]
FIG. 15 is a flowchart showing the overall flow of processing. As shown in FIG. 15, when the analysis apparatus 100 receives an analysis processing start instruction or the like, it analyzes the relationship between the programs in the program assets (S101).

続いて、分析装置100は、各プログラムに対して、複数のプロセスに重複して配置することを許容できるか否かを判定する重複判定処理を実行した後(S102)、プログラムの呼び出し構造全体を追跡してプログラム群を生成するプログラム群生成処理を実行する(S103)。 Subsequently, the analysis apparatus 100 executes overlap determination processing for determining whether or not it is permissible for each program to be redundantly placed in a plurality of processes (S102). A program group generation process for tracing and generating a program group is executed (S103).

その後、分析装置100は、プログラム群とデータの関係で特に近いものをグループ化した部分集合であるサービス部品候補の生成やサービス部品の抽出を行う部品抽出処理を実行し(S104)、共通データを含まない複数のサービス部品候補および共通データを、プログラム資産のサービス部品として生成した分析結果を提示する(S105)。 After that, the analysis device 100 generates service component candidates, which are subsets obtained by grouping programs and data that are particularly close in relation to the data, and performs component extraction processing for extracting service components (S104), and extracts common data. A plurality of service component candidates not included and common data are presented as analysis results generated as program resource service components (S105).

(重複判定処理)
図16は、重複判定処理の流れを示すフローチャートである。なお、この処理は、図15のS102で実行される処理である。
(Duplicate determination process)
FIG. 16 is a flowchart showing the flow of duplication determination processing. Note that this process is a process executed in S102 of FIG.

図16に示すように、重複判定部112は、プログラムを取得し(S201)、当該プログラムの記述内容を参照して、データやDBを更新する構文があるか否かを判定する(S202)。ここで、重複判定部112は、データやDBを更新する構文がある場合(S202:Yes)、当該プログラムを重複不可として分類する(S203)。 As shown in FIG. 16, the duplication determination unit 112 acquires a program (S201), refers to the description content of the program, and determines whether or not there is a syntax for updating data or a DB (S202). Here, if there is a syntax for updating data or DB (S202: Yes), the duplication determination unit 112 classifies the program as non-duplicatable (S203).

一方、重複判定部112は、データやDBを更新する構文がないものの(S202:No)、ファイルを書き込む構文がある場合(S204:Yes)、当該プログラムを重複不可として分類する(S203)。 On the other hand, if there is no syntax for updating data or DB (S202: No) but there is syntax for writing a file (S204: Yes), the duplication determination unit 112 classifies the program as non-duplicate (S203).

また、重複判定部112は、ファイルを書き込む構文がないものの(S204:No)、共有メモリの領域を更新する構文がある場合(S205:Yes)、当該プログラムを重複不可として分類する(S203)。 If there is no file writing syntax (S204: No) but there is a syntax for updating the shared memory area (S205: Yes), the duplication determination unit 112 classifies the program as non-duplicate (S203).

そして、重複判定部112は、共有メモリの領域を更新する構文もない場合(S205:No)、当該プログラムを重複可として分類する(S206)。その後、重複判定部112は、未判定のプログラムが存在する場合(S207:No)、S201以降を繰り返し、全プログラムについて判定が終了すると(S207:Yes)、処理を終了する。 Then, if there is no syntax for updating the shared memory area (S205: No), the duplication determination unit 112 classifies the program as duplication possible (S206). After that, when there is an undetermined program (S207: No), the duplication determination unit 112 repeats the steps from S201 onward, and when determination is completed for all programs (S207: Yes), the process ends.

(プログラム群生成処理)
図17は、プログラム群生成処理の流れを示すフローチャートである。なお、この処理は、図15のS103で実行される処理である。
(program group generation processing)
FIG. 17 is a flow chart showing the flow of program group generation processing. Note that this process is the process executed in S103 of FIG.

図17に示すように、分析部113は、起点のプログラムを取得し(S301)、起点のプログラムから呼び出される呼出先のプログラムを取得する(S302)。 As shown in FIG. 17, the analysis unit 113 acquires a starting program (S301), and acquires a called program called from the starting program (S302).

続いて、分析部113は、呼出先のプログラムが重複可能なプログラムの場合(S303:Yes)、呼出先のプログラムを起点プログラムと同一のプログラム群に含める(S304)。一方、分析部113は、呼出先のプログラムが重複不可能なプログラムの場合(S303:No)、呼出先のプログラムと起点のプログラム群との二項関係を生成する(S305)。 Next, when the called program is a program that can be duplicated (S303: Yes), the analysis unit 113 includes the called program in the same program group as the source program (S304). On the other hand, when the called program is a non-overlapping program (S303: No), the analysis unit 113 generates a binary relationship between the called program and the originating program group (S305).

そして、分析部113は、追跡していない呼出先のプログラムが存在する場合(S307:No)、S302以降を繰り返す。一方、分析部113は、全ての呼出先のプログラムについて追跡が完了し(S307:Yes)、未処理の起点のプログラムが存在する場合(S308:No)、S301以降を繰り返し、未処理の起点のプログラムが存在しない場合(S308:Yes)、処理を終了する。 If there is a called program that has not been tracked (S307: No), the analysis unit 113 repeats S302 and subsequent steps. On the other hand, the analysis unit 113 completes tracking of all called programs (S307: Yes), and if there is an unprocessed starting point program (S308: No), repeats S301 and subsequent steps to find the unprocessed starting point program. If the program does not exist (S308: Yes), the process ends.

[効果]
上述したように、分析装置100は、データに対して読み込み処理しかしないプログラムに対しては、多くの箇所(プロセス)からデータを読み込んでも問題が少なく、プロセス内部にプログラムを含めれば、プロセス内部の処理が早いと判定し、重複可能と判定することができる。また、分析装置100は、データに対して書込み処理をするプログラムに対しては、多くの箇所(プロセス)からデータを書き込むと他の処理が待たされることを優先し、重複不可能と判定することができる。
[effect]
As described above, the analysis apparatus 100 can read data from many places (processes) for a program that only reads data. It can be determined that the processing is fast, and it can be determined that duplication is possible. In addition, for a program that writes data, the analysis apparatus 100 prioritizes waiting for other processes if data is written from many places (processes), and determines that duplication is not possible. can be done.

したがって、分析装置100は、資産を分割するために、プログラムを重複して良いものと、重複してはいけないものを明示できることで、利用しやすい分割案を提示することができる。この結果、分析装置100は、理解し易い形式でアプリケーションの構造を提示することができる。 Therefore, the analysis apparatus 100 can clearly indicate what programs can be duplicated and what programs must not be duplicated in order to divide assets, thereby presenting an easy-to-use division plan. As a result, the analysis device 100 can present the structure of the application in an easy-to-understand format.

さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。 Although the embodiments of the present invention have been described so far, the present invention may be implemented in various different forms other than the embodiments described above.

[データや数値等]
上記実施例で用いたプログラム、プロセス、サービス部品、データの数等は、あくまで一例であり、任意に変更することができる。また、各処理の順序も矛盾のない範囲内で適宜変更することができる。
[Data, figures, etc.]
The number of programs, processes, service components, data, etc. used in the above embodiments are only examples and can be changed arbitrarily. Also, the order of each process can be changed as appropriate within a consistent range.

[プログラム解析]
上記実施例で説明した呼び出し関係やデータへの読み出し関係を取得する手法としては、パーサなどの公知のプログラム解析技術を採用することができる。
[Program analysis]
A known program analysis technique such as a parser can be employed as a method of acquiring the call relation and the read relation to data described in the above embodiment.

[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[system]
Information including processing procedures, control procedures, specific names, and various data and parameters shown in the above documents and drawings can be arbitrarily changed unless otherwise specified.

また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。 Also, each component of each device illustrated is functionally conceptual, and does not necessarily need to be physically configured as illustrated. That is, the specific forms of distribution and integration of each device are not limited to those shown in the drawings. That is, all or part of them can be functionally or physically distributed and integrated in arbitrary units according to various loads and usage conditions.

さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。 Further, each processing function performed by each device may be implemented in whole or in part by a CPU and a program analyzed and executed by the CPU, or implemented as hardware based on wired logic.

[ハードウェア]
図18は、ハードウェア構成例を説明する図である。図18に示すように、分析装置10は、通信装置100a、HDD(Hard Disk Drive)100b、メモリ100c、プロセッサ100dを有する。また、図18に示した各部は、バス等で相互に接続される。
[hardware]
FIG. 18 is a diagram illustrating a hardware configuration example. As shown in FIG. 18, the analysis device 10 has a communication device 100a, a HDD (Hard Disk Drive) 100b, a memory 100c, and a processor 100d. 18 are interconnected by a bus or the like.

通信装置100aは、ネットワークインタフェースカードなどであり、他の装置との通信を行う。HDD100bは、図2に示した機能を動作させるプログラムやDBを記憶する。 The communication device 100a is a network interface card or the like, and communicates with other devices. The HDD 100b stores programs and DBs for operating the functions shown in FIG.

プロセッサ100dは、図5に示した各処理部と同様の処理を実行するプログラムをHDD100b等から読み出してメモリ100cに展開することで、図5等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、分析装置100が有する各処理部と同様の機能を実行する。具体的には、プロセッサ100dは、解析部111、重複判定部112、分析部113、提示部114等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、解析部111、重複判定部112、分析部113、提示部114等と同様の処理を実行するプロセスを実行する。 The processor 100d reads from the HDD 100b or the like a program for executing the same processing as each processing unit shown in FIG. 5 and develops it in the memory 100c, thereby operating processes for executing each function described with reference to FIG. 5 and the like. For example, this process executes the same function as each processing unit of the analysis device 100 . Specifically, the processor 100d reads a program having functions similar to those of the analysis unit 111, the duplication determination unit 112, the analysis unit 113, the presentation unit 114, and the like, from the HDD 10b and the like. Then, the processor 10d executes processes for executing the same processes as the analysis unit 111, the duplication determination unit 112, the analysis unit 113, the presentation unit 114, and the like.

このように、分析装置100は、プログラムを読み出して実行することで資産管理方法を実行する情報処理装置として動作する。また、分析装置100は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、分析装置100によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。 In this way, the analysis apparatus 100 operates as an information processing apparatus that executes an asset management method by reading and executing a program. Further, the analysis apparatus 100 can read the program from the recording medium by the medium reading device and execute the read program to realize the same functions as the above embodiment. It should be noted that the programs referred to in other embodiments are not limited to being executed by the analyzer 100 . For example, the present invention can be applied in the same way when another computer or server executes the program, or when they cooperate to execute the program.

100 分析装置
101 通信部
102 記憶部
103 プログラム資産DB
104 重複判定結果DB
105 分析結果DB
110 制御部
111 解析部
112 重複判定部
113 分析部
114 提示部
100 analysis device 101 communication unit 102 storage unit 103 program asset DB
104 Duplication determination result DB
105 Analysis result DB
110 control unit 111 analysis unit 112 duplication determination unit 113 analysis unit 114 presentation unit

Claims (6)

プログラム資産を構成する複数のプログラムと複数のデータのうち、他のプログラムから呼び出される第1のプログラムを特定する第1特定部と、
前記第1のプログラムのうち、前記複数のデータのいずれかのデータを内部に保持する、または、前記複数のデータのいずれかのデータを更新する、第2のプログラムを特定する第2特定部と、
前記複数のプログラムと前記複数のデータとを依存関係に基づき、プログラムとデータとを関連付けるサービス部品に分類する場合に、前記第2のプログラムを独立したサービス部品に分類する分類部と
を有することを特徴とする資産管理装置。
a first identifying unit that identifies a first program called from another program among a plurality of programs and a plurality of data that constitute program assets;
a second identifying unit that identifies a second program of the first program that internally retains any of the plurality of data or updates any of the plurality of data; ,
a classifying unit that classifies the second program into an independent service component when classifying the plurality of programs and the plurality of data into service components that associate the programs and data based on dependency relationships. An asset management device characterized by:
前記第2特定部は、前記第1のプログラムのうち、データを更新する構文が記述されているプログラム、ファイルを書き込む構文が記述されているプログラム、または、共有メモリの領域を更新する構文が記述されているプログラムに該当するプログラムを、前記第2のプログラムと特定する、ことを特徴とする請求項1に記載の資産管理装置。 The second specifying unit is, among the first program, a program describing a syntax for updating data, a program describing a syntax for writing a file, or a syntax for updating an area of a shared memory. 2. The asset management apparatus according to claim 1, wherein a program corresponding to the program that has been registered is specified as the second program. 前記分類部は、他のプログラムから呼び出されない起点となる起点プログラムを特定し、前記起点プログラムが呼び出す呼出先プログラムが前記第2のプログラムに該当しない場合は、前記起点プログラムと前記呼出先プログラムとを同じサービス部品に分類し、前記呼出先プログラムが前記第2のプログラムに該当する場合は、前記起点プログラムと前記呼出先プログラムとを別々のサービス部品に分類する、ことを特徴とする請求項1または2に記載の資産管理装置。 The classifying unit specifies an originating program that is not called by other programs, and if a called program called by the originating program does not correspond to the second program, the originating program and the called program are identified. are classified into the same service component, and when the called program corresponds to the second program, the originating program and the called program are classified into separate service components. Or the asset management device according to 2. 前記プログラム資産から複数のサービス部品に分類した結果を表示する際に、前記起点プログラムおよび前記第2のプログラムを、他のプログラムおよびデータとは異なる形式で表示する表示制御部をさらに有することを特徴とする請求項3に記載の資産管理装置。 The method further comprises a display control unit that displays the originating program and the second program in a format different from that of other programs and data when displaying the result of classifying the program assets into a plurality of service components. 4. The asset management device according to claim 3. コンピュータが、
プログラム資産を構成する複数のプログラムと複数のデータのうち、他のプログラムから呼び出される第1のプログラムを特定し、
前記第1のプログラムのうち、前記複数のデータのいずれかのデータを内部に保持する、または、前記複数のデータのいずれかのデータを更新する、第2のプログラムを特定し、
前記複数のプログラムと前記複数のデータとを依存関係に基づき、プログラムとデータとを関連付けるサービス部品に分類する場合に、前記第2のプログラムを独立したサービス部品に分類する
処理を実行することを特徴とする資産管理方法。
the computer
Identifying a first program called from another program among a plurality of programs and a plurality of data constituting a program asset;
identifying a second program among the first programs that internally retains any of the plurality of data or updates any of the plurality of data;
and classifying the second program into an independent service component when classifying the plurality of programs and the plurality of data into service components that associate the programs and the data based on the dependency relationship. asset management method.
コンピュータに、
プログラム資産を構成する複数のプログラムと複数のデータのうち、他のプログラムから呼び出される第1のプログラムを特定し、
前記第1のプログラムのうち、前記複数のデータのいずれかのデータを内部に保持する、または、前記複数のデータのいずれかのデータを更新する、第2のプログラムを特定し、
前記複数のプログラムと前記複数のデータとを依存関係に基づき、プログラムとデータとを関連付けるサービス部品に分類する場合に、前記第2のプログラムを独立したサービス部品に分類する
処理を実行させることを特徴とする資産管理プログラム。
to the computer,
identifying a first program called from another program among a plurality of programs and a plurality of data constituting program assets;
identifying a second program among the first programs that internally retains any of the plurality of data or updates any of the plurality of data;
classifying the plurality of programs and the plurality of data into service components that associate the programs and the data based on dependencies, classifying the second program into independent service components. asset management program.
JP2019152021A 2019-08-22 2019-08-22 ASSET MANAGEMENT DEVICE, ASSET MANAGEMENT METHOD AND ASSET MANAGEMENT PROGRAM Active JP7255420B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019152021A JP7255420B2 (en) 2019-08-22 2019-08-22 ASSET MANAGEMENT DEVICE, ASSET MANAGEMENT METHOD AND ASSET MANAGEMENT PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019152021A JP7255420B2 (en) 2019-08-22 2019-08-22 ASSET MANAGEMENT DEVICE, ASSET MANAGEMENT METHOD AND ASSET MANAGEMENT PROGRAM

Publications (2)

Publication Number Publication Date
JP2021033562A JP2021033562A (en) 2021-03-01
JP7255420B2 true JP7255420B2 (en) 2023-04-11

Family

ID=74675872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019152021A Active JP7255420B2 (en) 2019-08-22 2019-08-22 ASSET MANAGEMENT DEVICE, ASSET MANAGEMENT METHOD AND ASSET MANAGEMENT PROGRAM

Country Status (1)

Country Link
JP (1) JP7255420B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006302135A (en) 2005-04-22 2006-11-02 Fujitsu Ltd Application asset analysis program, application asset analysis method and application asset analysis device
JP2013148987A (en) 2012-01-17 2013-08-01 Fujitsu Ltd Dividing device, dividing method, and dividing program
JP2018181005A (en) 2017-04-14 2018-11-15 富士通株式会社 Program analysis device, program analysis method, and analysis program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006302135A (en) 2005-04-22 2006-11-02 Fujitsu Ltd Application asset analysis program, application asset analysis method and application asset analysis device
JP2013148987A (en) 2012-01-17 2013-08-01 Fujitsu Ltd Dividing device, dividing method, and dividing program
JP2018181005A (en) 2017-04-14 2018-11-15 富士通株式会社 Program analysis device, program analysis method, and analysis program

Also Published As

Publication number Publication date
JP2021033562A (en) 2021-03-01

Similar Documents

Publication Publication Date Title
CN107644286B (en) Workflow processing method and device
US8769242B2 (en) Translation map simplification
US9356966B2 (en) System and method to provide management of test data at various lifecycle stages
US8918377B2 (en) Multiple source data management using a conflict rule
CN115934855B (en) Full-link field-level blood margin analysis method, system, equipment and storage medium
KR101355273B1 (en) A computing system, a method for controlling thereof, and a computer-readable recording medium having a computer program for controlling thereof
CN104536987A (en) Data query method and device
CN112579705B (en) Metadata acquisition method, device, computer equipment and storage medium
JP5963312B2 (en) Information processing apparatus, information processing method, and program
JP2024505236A (en) Data set multiplexer for data processing systems
JP2014123249A (en) Information processor, program, and information processing method
JP7255420B2 (en) ASSET MANAGEMENT DEVICE, ASSET MANAGEMENT METHOD AND ASSET MANAGEMENT PROGRAM
JP6880962B2 (en) Program analyzer, program analysis method and analysis program
JP4948126B2 (en) Program for analyzing large-scale business system using Java (registered trademark) language program and processing method thereof
Howison et al. BioLite, a Lightweight Bioinformatics Framework with Automated Tracking of Diagnostics and Provenance.
US20130111450A1 (en) Runtime environment and method for non-invasive monitoring of software applications
JP2011514596A (en) Efficiently correlate nominally incompatible types
CN108108422A (en) A kind of metadata acquisition methods, device and the medium of Ceph file system
JP2019101829A (en) Software component management system, computor, and method
US20130218928A1 (en) Information processing device
US20160292076A1 (en) Apparatus, program, and method for updating cache memory
CN113590660A (en) Data self-service query method and device and electronic equipment
US11468101B2 (en) Context-rich key framework implementations for global concept management
Krzikalla et al. Analyzing One-Sided Communication Using Memory Access Diagrams
JP2018025852A (en) Program analysis method, program analyzer and analysis program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220517

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230222

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230228

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230313

R150 Certificate of patent or registration of utility model

Ref document number: 7255420

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150