JP6937589B2 - License management device, license management method, and program - Google Patents

License management device, license management method, and program Download PDF

Info

Publication number
JP6937589B2
JP6937589B2 JP2017033559A JP2017033559A JP6937589B2 JP 6937589 B2 JP6937589 B2 JP 6937589B2 JP 2017033559 A JP2017033559 A JP 2017033559A JP 2017033559 A JP2017033559 A JP 2017033559A JP 6937589 B2 JP6937589 B2 JP 6937589B2
Authority
JP
Japan
Prior art keywords
license
source code
unit
dependency
software
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
JP2017033559A
Other languages
Japanese (ja)
Other versions
JP2018139054A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2017033559A priority Critical patent/JP6937589B2/en
Publication of JP2018139054A publication Critical patent/JP2018139054A/en
Application granted granted Critical
Publication of JP6937589B2 publication Critical patent/JP6937589B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、ライセンス管理装置、ライセンス管理方法、及びプログラムに関する。 The present invention relates to a license management device, a license management method, and a program.

近年、オープン・ソース・ソフトウェア(OSS)を利用したソフトウェアの開発が盛んとなっている。OSSの中には、OSSを利用した場合に、一定の条件を課すライセンスを伴うものが多い。従って、OSSを利用する場合、そのライセンスの調査や管理に多大な工数が必要となる。特許文献1は、この多大な工数を減らすため、OSSのライセンスをチェックするシステムを開示している。具体的には、特許文献1に開示されたシステムは、ユーザがOSSをインターネットからダウンロードした際、そのOSSのライセンスをチェックする。そして、ユーザがそのOSSを用いて作成したソフトウェアをビルドする際、そのシステムは、そのソフトウェアが、そのOSSのライセンスに違反していないかを判定し、その結果を出力する。 In recent years, software development using open source software (OSS) has become active. Many OSSs come with a license that imposes certain conditions when using OSS. Therefore, when OSS is used, a great deal of man-hours are required to investigate and manage the license. Patent Document 1 discloses a system for checking the OSS license in order to reduce this great man-hours. Specifically, the system disclosed in Patent Document 1 checks the license of the OSS when the user downloads the OSS from the Internet. Then, when the user builds the software created by using the OSS, the system determines whether the software violates the license of the OSS and outputs the result.

特開2008−191889号公報Japanese Unexamined Patent Publication No. 2008-191889

OSSの中には、そのライセンスが、そのOSSを直接的に用いたソフトウェアだけでなく、そのOSSを間接的に用いたソフトウェアに伝播するものがある。例えば、OSSのライセンスの1つであるGPL(GNU General Public License)では、GPLを有するプログラムAを用いたプログラムBだけでなく、プログラムBを用いたプログラムCにも、GPLの影響が及ぶ。特許文献1に開示されたシステムでは、ユーザによるOSSの改変や、そのOSSへのリンクがそのOSSのライセンスに違反しているか否かを判定できるが、そのOSSを間接的に用いたソフトウェアについては、そのOSSのライセンスに違反しているか否かを判定することは、困難である。 In some OSSs, the license propagates not only to software that directly uses the OSS, but also to software that indirectly uses the OSS. For example, under the GPL (GNU General Public License), which is one of the OSS licenses, the GPL affects not only the program B using the program A having the GPL but also the program C using the program B. In the system disclosed in Patent Document 1, it is possible to determine whether or not the user modifies the OSS and whether the link to the OSS violates the license of the OSS, but for software that indirectly uses the OSS, , It is difficult to determine whether or not the OSS license is violated.

本発明は、上記実情に鑑みてなされたものであり、ソフトウェアを構成する複数のプログラムのソースコードのライセンスを漏れなく管理することが可能なライセンス管理装置、ライセンス管理方法、及びプログラムを提供することを目的とする。 The present invention has been made in view of the above circumstances, and provides a license management device, a license management method, and a program capable of managing licenses of source codes of a plurality of programs constituting software without omission. With the goal.

上記目的を達成するため、本発明のライセンス管理装置は、
ソフトウェアをビルドする際のログであるビルド情報に基づいて、前記ソフトウェアを構成する複数のプログラムのソースコード間の依存関係を判別する依存関係判別部と、
ライセンスの種類毎に、当該ライセンスを特定するためのライセンス特定情報と、当該ライセンスを有するソースコードに依存する他のソースコードにも当該ライセンスが伝播するか否かを示す伝播フラグと、を記憶するライセンス情報記憶部と、
前記ライセンス情報記憶部に記憶されているライセンス特定情報を参照して前記複数のプログラムのソースコードそれぞれが有するライセンスを判別するとともに、判別したライセンスの前記伝播フラグが伝播することを示している場合には、前記依存関係判別部による判別結果に基づいて、当該ライセンスを有するソースコードに依存する他のソースコードを特定し、該他のソースコードに対しても当該ライセンスを有すると判別するライセンス調査部と、
前記ライセンス調査部による判別結果を出力する結果出力部と、
を備える。
In order to achieve the above object, the license management device of the present invention
A dependency determination unit that determines the dependency between the source codes of a plurality of programs constituting the software based on the build information that is a log when building the software.
For each type of license, the license identification information for identifying the license and the propagation flag indicating whether or not the license is propagated to other source code depending on the source code having the license are stored. License information storage and
When the license possessed by each of the source codes of the plurality of programs is determined by referring to the license identification information stored in the license information storage unit, and the propagation flag of the determined license is shown to be propagated. is on the basis of the dependency determination unit according to the determination result, to identify other source code that depends on the source code with the license, the license check unit for determining that also has the license to said other source code When,
A result output unit that outputs the determination result by the license investigation unit, and
To be equipped.

本発明によれば、ソフトウェアを構成する複数のプログラムのソースコードのライセンスを漏れなく管理することができる。 According to the present invention, it is possible to manage the licenses of the source codes of a plurality of programs constituting the software without omission.

本発明の実施形態に係るライセンス管理システムの構成例を示す図The figure which shows the structural example of the license management system which concerns on embodiment of this invention. 本発明の実施形態に係るライセンス管理装置の構成例を示す図The figure which shows the structural example of the license management apparatus which concerns on embodiment of this invention. ライセンス情報テーブルに格納されるデータの一例を示す図Diagram showing an example of data stored in the license information table 調査結果格納テーブルに格納されるデータの一例を示す図Diagram showing an example of data stored in the survey result storage table 制御部の機能構成の一例を示す概略ブロック図Schematic block diagram showing an example of the functional configuration of the control unit 依存関係取得部により取得されたソースコード間の依存関係の一例を模式的に表す図A diagram schematically showing an example of the dependency between the source codes acquired by the dependency acquisition unit. ライセンス診断処理のフローチャートFlowchart of license diagnosis process

以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付す。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. The same or corresponding parts in the figure are designated by the same reference numerals.

本発明の実施形態に係るライセンス管理システム1の構成例を図1に示す。ライセンス管理システム1は、利用者端末100と、開発環境サーバ200と、ライセンス管理装置300と、を備える。利用者端末100と開発環境サーバ200とライセンス管理装置300とは、インターネット400を介して、互いに通信可能に接続されている。 FIG. 1 shows a configuration example of the license management system 1 according to the embodiment of the present invention. The license management system 1 includes a user terminal 100, a development environment server 200, and a license management device 300. The user terminal 100, the development environment server 200, and the license management device 300 are connected to each other so as to be able to communicate with each other via the Internet 400.

利用者端末100は、ユーザによって操作されるパーソナルコンピュータ、タブレット端末等である。ユーザは、利用者端末100を操作して、ソフトウェアのビルドの指示、ライセンス診断の指示等を行う。 The user terminal 100 is a personal computer, a tablet terminal, or the like operated by the user. The user operates the user terminal 100 to instruct software build, license diagnosis, and the like.

開発環境サーバ200は、利用者端末100又はライセンス管理装置300からの指示に基づいてソフトウェアのビルドを実行するサーバである。なお、ソフトウェアのビルドとは、ソフトウェアを構成する複数のプログラムのソースコードを正規の手順でコンパイル及びリンクして実行可能なソフトウェア生成物に変換することをいう。開発環境サーバ200には、ビルドを行うために必要なコンパイラ、リンケージエディタ、スクリプト、ビルドコマンド等が予めインストールされている。 The development environment server 200 is a server that executes software builds based on instructions from the user terminal 100 or the license management device 300. Note that building software means converting the source code of a plurality of programs constituting the software into an executable software product by compiling and linking them in a normal procedure. The development environment server 200 is pre-installed with a compiler, a linkage editor, a script, a build command, and the like necessary for performing a build.

ライセンス管理装置300は、ソフトウェアのライセンスを管理する。具体的には、ライセンス管理装置300は、診断対象のソフトウェアを構成する複数のプログラムのソースコード各々のライセンスをチェックし、その結果を出力する。 The license management device 300 manages software licenses. Specifically, the license management device 300 checks the licenses of the source codes of the plurality of programs constituting the software to be diagnosed, and outputs the result.

ランセンス管理装置300の構成を図2に示す。ライセンス管理装置300は、制御部310と、記憶部320と、通信部330と、入力部340と、出力部350と、を備える。これらの各部は、バス360により接続されている。 The configuration of the license management device 300 is shown in FIG. The license management device 300 includes a control unit 310, a storage unit 320, a communication unit 330, an input unit 340, and an output unit 350. Each of these parts is connected by a bus 360.

制御部310は、例えば、CPU(Central Processing Unit)、CPUが実行するプログラムを格納するROM(Read Only Memory)、CPUが生成したデータを一時的に格納するRAM(Random Access Memory)等を備え、ライセンス管理装置300全体の制御を行う。 The control unit 310 includes, for example, a CPU (Central Processing Unit), a ROM (Read Only Memory) for storing a program executed by the CPU, a RAM (Random Access Memory) for temporarily storing data generated by the CPU, and the like. It controls the entire license management device 300.

記憶部320は、ハードディスクドライブや、フラッシュメモリ、SSD(Solid State Drive)のような書き込み可能な記憶装置を備える。記憶部320は、ライセンス情報テーブル321と、調査結果格納テーブル322と、を記憶する。 The storage unit 320 includes a hard disk drive, a flash memory, and a writable storage device such as an SSD (Solid State Drive). The storage unit 320 stores the license information table 321 and the search result storage table 322.

ライセンス情報テーブル321は、ライセンス情報記憶部に対応し、ライセンスの種類毎に、ライセンスに関する各種の情報が登録されるテーブルである。 The license information table 321 corresponds to the license information storage unit, and is a table in which various information related to the license is registered for each type of license.

図3に、ライセンス情報テーブル321に格納される情報の一例を示す。図3に示すライセンス情報テーブル321には、ライセンスの種類毎に、ライセンス特定情報と、ライセンス種別と、伝播フラグと、公開フラグと、バージョンと、URI(Uniform Resource Identifier)と、を表す情報が対応付けて格納されている。ライセンス情報テーブル321に格納される各種データは、定期的にインターネット400を介して収集され、最新のものに更新される。 FIG. 3 shows an example of the information stored in the license information table 321. The license information table 321 shown in FIG. 3 corresponds to information representing license identification information, license type, propagation flag, publication flag, version, and URI (Uniform Resource Identifier) for each type of license. It is stored with it. Various data stored in the license information table 321 are periodically collected via the Internet 400 and updated to the latest ones.

なお、ライセンス特定情報は、ライセンスを特定するための情報である。ライセンス特定情報は、例えば、そのライセンスを有するプログラムのソースコード中に一般的に記述されるキーワードである。
ライセンス種別は、ライセンスの種類を表す。具体的なライセンスの種類は、例えば、GPL、BSD(Berkeley Software Distribution License)等である。
伝播フラグは、あるソースコードに付与されているライセンスが、そのソースコードに依存する他のソースコードにも伝播(ライセンス伝播)するか否かを示すフラグである。伝播フラグ「1」は、ライセンス伝播することを示す。伝播フラグ「0」は、ライセンス伝播しないことを示す。
公開フラグは、そのソースコードの公開が義務づけられているか否かを示すフラグである。公開フラグ「1」は、ソースコードの公開が義務づけられていることを示す。公開フラグ「0」は、ソースコードの公開が義務づけられていないことを示す。
URIは、そのライセンスがインターネット400のウェブ上で公開されている場合のそのウェブページのアドレスである。
The license identification information is information for specifying the license. The license identification information is, for example, a keyword generally described in the source code of the program having the license.
The license type represents the type of license. Specific license types are, for example, GPL, BSD (Berkeley Software Distribution License), and the like.
The propagation flag is a flag indicating whether or not a license granted to a certain source code is propagated (license propagation) to other source codes that depend on the source code. The propagation flag "1" indicates that the license is propagated. The propagation flag "0" indicates that the license is not propagated.
The public flag is a flag indicating whether or not the source code is obliged to be published. The public flag "1" indicates that the source code is obliged to be published. The public flag "0" indicates that the source code is not obliged to be published.
The URI is the address of the web page if the license is published on the web of Internet 400.

ここで、GPLは、あるOSSを利用したソフトウェア全体に対して、そのソースコードを公開する必要がある。すなわち、GPLは、そのOSSのライセンスの影響が伝播するライセンスである。例えば、あるOSSが、GPLを有する場合、そのOSSを改変することにより作成されたプログラム、そのOSSへのリンクを含むプログラム等も、GPLを有することとなる。従って、それらのプログラムも、そのソースコードを公開することが義務づけられる。そのため、ライセンス情報テーブル321において、GPLの伝播フラグは「1」、公開フラグは「1」に設定されている。 Here, the GPL needs to publish its source code to the entire software using a certain OSS. That is, the GPL is a license that propagates the influence of the OSS license. For example, when a certain OSS has the GPL, a program created by modifying the OSS, a program including a link to the OSS, and the like also have the GPL. Therefore, those programs are also obliged to publish their source code. Therefore, in the license information table 321, the GPL propagation flag is set to "1" and the public flag is set to "1".

これに対し、BSDライセンスは、BSDライセンスを有するOSSの利用、再配布にあたり、予め定められている条件を満たせばよく、制限が少ないライセンスである。また、BSDライセンスを有するOSSを改変したプログラムは、そのソースコードを非公開にすることができる。そのため、図3に示すライセンス情報テーブル321において、BSDライセンスの伝播フラグは「0」、公開フラグは「0」に設定されている。 On the other hand, the BSD license is a license with few restrictions as long as it satisfies predetermined conditions when using and redistributing the OSS having the BSD license. In addition, the OSS modified program having the BSD license can keep its source code private. Therefore, in the license information table 321 shown in FIG. 3, the propagation flag of the BSD license is set to "0" and the public flag is set to "0".

図2に戻り、調査結果格納テーブル322には、ソフトウェアを構成する各プログラムのソースコードのライセンスを調査した結果を示す情報が格納される。具体的には、図4に示すように、調査結果格納テーブル322には、ソースコード毎に、ソースコードのファイル名と、ソースコードに課せられているライセンスの種別と、伝播元ファイル名と、を示す情報が格納される。伝播元ファイル名は、そのソースコードがライセンス伝播の影響を受ける場合、そのソースコードに影響を与える原因であるソースコードのファイル名である。 Returning to FIG. 2, the search result storage table 322 stores information indicating the result of checking the license of the source code of each program constituting the software. Specifically, as shown in FIG. 4, in the survey result storage table 322, the file name of the source code, the type of license imposed on the source code, the propagation source file name, and the file name of the source code are displayed for each source code. Information indicating that is stored. The source file name is the file name of the source code that affects the source code when the source code is affected by license propagation.

図2に戻り、通信部330は、インターネット400を介して、利用者端末100及び開発環境サーバ200と、無線または有線による通信を行うためのインターフェースである。 Returning to FIG. 2, the communication unit 330 is an interface for wirelessly or wired communication with the user terminal 100 and the development environment server 200 via the Internet 400.

入力部340は、ボタン、タッチパネル、キーボード等の入力装置を備える。入力部340は、ユーザからの操作入力を受け付け、受け付けた操作入力に対応する操作入力信号を制御部310に出力する。 The input unit 340 includes input devices such as buttons, a touch panel, and a keyboard. The input unit 340 receives an operation input from the user and outputs an operation input signal corresponding to the received operation input to the control unit 310.

出力部350は、CRT(Cathode Ray Tube)、液晶ディスプレイ等の表示装置を備える。出力部350は、制御部310から供給される文字、画像等のデータを表示する。 The output unit 350 includes display devices such as a CRT (Cathode Ray Tube) and a liquid crystal display. The output unit 350 displays data such as characters and images supplied from the control unit 310.

次に、ライセンス管理装置300の制御部310の機能について説明する。図5は、制御部310の機能構成の一例を示す概略ブロック図である。制御部310は、機能的な構成として、プログラム取得部311と、依存関係判別部312と、ライセンス調査部313と、結果出力部314と、アーカイブ作成部315と、を備える。 Next, the function of the control unit 310 of the license management device 300 will be described. FIG. 5 is a schematic block diagram showing an example of the functional configuration of the control unit 310. The control unit 310 includes a program acquisition unit 311, a dependency determination unit 312, a license investigation unit 313, a result output unit 314, and an archive creation unit 315 as functional configurations.

プログラム取得部311は、開発環境サーバ200から、ライセンス診断の対象とするソフトウェアを構成する複数のプログラムのソースコードと、このソフトウェアをビルドした際のビルド情報とを取得する。 The program acquisition unit 311 acquires the source codes of a plurality of programs constituting the software to be licensed and the build information when the software is built from the development environment server 200.

依存関係判別部312は、プログラム取得部311により取得されたビルド情報に基づいて、プログラム取得部311により取得された複数のプログラム間の依存関係を判別する。プログラム間の依存関係は、例えば、あるプログラムが、他のプログラムをリンク(利用、参照等)するという形式で利用している関係である。リンクには、動的リンクや静的リンクが含まれる。 The dependency determination unit 312 determines the dependency between a plurality of programs acquired by the program acquisition unit 311 based on the build information acquired by the program acquisition unit 311. Dependencies between programs are, for example, relationships in which one program uses another program in the form of linking (using, referencing, etc.). Links include dynamic linking and static linking.

図6は、依存関係判別部312により判別されたソースコード間の依存関係の一例を模式的に表す図である。この依存関係は、プログラム取得部311により取得された複数のプログラムのソースコードそれぞれを表すノードと、依存関係があるプログラムを表すノード間を結ぶ矢印線と、から構成される木構造で表される。矢印線の始点に接続するノードのソースコードは、この矢印線の終点に接続するノードのソースコードに依存していることを示す。例えば、図6から、ソースコード「aa.c」は、2つのソースコード「bb.c」、「dd.c」に依存していることが分かる。さらに、ソースコード「bb.c」は、ソースコード「cc.h」に依存していることが分かる。そのため、ソースコード「aa.c」は、間接的にソースコード「cc.h」にも依存していることが分かる。 FIG. 6 is a diagram schematically showing an example of the dependency relationship between the source codes determined by the dependency relationship determination unit 312. This dependency is represented by a tree structure composed of a node representing each of the source codes of a plurality of programs acquired by the program acquisition unit 311 and an arrow line connecting the nodes representing the programs having the dependency. .. It is shown that the source code of the node connecting to the start point of the arrow line depends on the source code of the node connecting to the end point of this arrow line. For example, from FIG. 6, it can be seen that the source code "aa.c" depends on two source codes "bb.c" and "dd.c". Furthermore, it can be seen that the source code "bb.c" depends on the source code "cc.h". Therefore, it can be seen that the source code "aa.c" indirectly depends on the source code "cc.h".

なお、以下の説明では、直接及び間接的に他のソースコードに依存する回数が多いソースコードほど、依存関係が上位のソースコードであると定義する。例えば、図6の例では、どのソースコードにも依存していないソースコード「cc.h」、「dd.c」、「ff.c」、「hh.c」、「ii.c」、「jj.c」は、依存関係が最下位のソースコードとなる。また、ソースコード「main.c」は、依存関係が最上位のソースコードとなる。 In the following description, it is defined that the source code having a higher number of times of directly and indirectly depending on other source code has a higher dependency relationship. For example, in the example of FIG. 6, the source codes "cc.h", "dd.c", "ff.c", "hh.c", "ii.c", and " "JJ.c" is the source code with the lowest dependency. In addition, the source code "main.c" is the source code with the highest dependency.

図5に戻り、ライセンス調査部313は、ライセンス情報テーブル321に記憶されているライセンス情報及び依存関係判別部312によって判別されたソースコード間の依存関係に基づいて、調査対象とするプログラムのソースコード各々のライセンスを判別し、判別結果を調査結果格納テーブル322に登録する。 Returning to FIG. 5, the license investigation unit 313 uses the license information stored in the license information table 321 and the source code of the program to be investigated based on the dependency between the source codes determined by the dependency determination unit 312. Each license is discriminated, and the discriminant result is registered in the search result storage table 322.

具体的には、まず、ライセンス調査部313は、調査対象とする複数のプログラムのソースコードのうち、ライセンス情報テーブル321に記憶されたライセンス特定情報を含むソースコードを特定してそのライセンスの種類を判別する。そして、ライセンス調査部313は、判別結果を調査結果格納テーブル322に登録する。 Specifically, first, the license investigation unit 313 identifies the source code including the license identification information stored in the license information table 321 from the source codes of the plurality of programs to be investigated, and determines the type of the license. Determine. Then, the license investigation unit 313 registers the determination result in the investigation result storage table 322.

例えば、ライセンス情報テーブル321に図3に示すような情報が記憶されており、調査対象とする複数のプログラムのソースコードの中から、ライセンス特定情報「GNU General Public License」が記述されているソースコードを特定した場合、ライセンス調査部313は、当該ソースコードのライセンスは「GPL」であると判別する。そして、ライセンス調査部313は、特定したソースコードのファイル名と判別したライセンス種別とを対応付けたエントリを調査結果格納テーブル322に登録する。なお、ここで登録されるエントリの伝播元ファイル名は「無し」とする。 For example, the information shown in FIG. 3 is stored in the license information table 321, and the source code in which the license specific information "GNU General Public License" is described from the source codes of a plurality of programs to be investigated. When the above is specified, the license investigation unit 313 determines that the license of the source code is "GPL". Then, the license investigation unit 313 registers an entry in the investigation result storage table 322 that associates the file name of the specified source code with the determined license type. The propagation source file name of the entry registered here is "None".

続いて、ライセンス調査部313は、ライセンス情報テーブル321を参照して、判別したソースコードのライセンスの伝播フラグが「1」であるか否かを判別する。伝播フラグが「1」である場合、ライセンス調査部313は、依存関係判別部312が判別した依存関係に基づいて、このソースコードに直接又は間接的に依存する他のソースコードを全て特定する。そして、ライセンス調査部313は、特定した他のソースコードに対しても、同様のライセンス種別を有すると判別し、判別結果を調査結果格納テーブル322に登録する。 Subsequently, the license investigation unit 313 determines whether or not the license propagation flag of the determined source code is "1" by referring to the license information table 321. When the propagation flag is "1", the license investigation unit 313 identifies all other source code that directly or indirectly depends on this source code based on the dependency determined by the dependency determination unit 312. Then, the license investigation unit 313 determines that the other specified source code has the same license type, and registers the determination result in the investigation result storage table 322.

例えば、ソースコード間に図6に示すような依存関係が有り、ソースコード「ii.c」のライセンスが「GPL」であると判別された場合を考える。図3より、「GPL」は他のソースコードに伝播するため、ライセンス調査部313は、このソースコード「ii.c」に依存するソースコード「gg.c」も、ライセンス種別が「GPL」であると判別する。さらに、ライセンス調査部313は、このソースコード「gg.c」に依存する「ee.c」も、ライセンス種別が「GPL」であると判別する。さらに、ライセンス調査部313は、このソースコード「ee.c」に依存する「main.c」も、ライセンス種別が「GPL」であると判別する。よって、最終的にライセンス調査部313は、ソースコード「ii.c」に直接又は間接的に依存するソースコードとして「gg.c」、「ee.c」、「main.c」の3つのソースコードを判別する。そして、ライセンス調査部313は、ファイル名「gg.c」、ライセンス種別「GPL」、伝播元ファイル名「ii.c」としたエントリと、ファイル名「ee.c」、ライセンス種別「GPL」、伝播元ファイル名「ii.c」としたエントリと、ファイル名「main.c」、ライセンス種別「GPL」、伝播元ファイル名「ii.c」としたエントリと、を調査結果格納テーブル322に登録する。 For example, consider a case where there is a dependency relationship between the source codes as shown in FIG. 6, and the license of the source code "ii.c" is determined to be "GPL". From FIG. 3, since "GPL" is propagated to other source codes, the license investigation unit 313 has decided that the license type of the source code "gg.c" that depends on this source code "ii.c" is also "GPL". Determine if there is. Further, the license investigation unit 313 determines that the license type of "ee.c", which depends on the source code "gg.c", is also "GPL". Further, the license investigation unit 313 determines that the license type of "main.c", which depends on the source code "ee.c", is also "GPL". Therefore, finally, the license investigation unit 313 has three sources, "gg.c", "ee.c", and "main.c", as source codes that directly or indirectly depend on the source code "ii.c". Determine the code. Then, the license investigation unit 313 has an entry with the file name "gg.c", the license type "GPL", and the propagation source file name "ii.c", and the file name "ee.c", the license type "GPL", The entry with the propagation source file name "ii.c" and the entry with the file name "main.c", license type "GPL", and propagation source file name "ii.c" are registered in the investigation result storage table 322. do.

図5に戻り、結果出力部314は、ライセンス調査部313による調査結果として、調査結果格納テーブル322に格納されたデータを出力部350から出力させる。 Returning to FIG. 5, the result output unit 314 outputs the data stored in the search result storage table 322 from the output unit 350 as the search result by the license search unit 313.

アーカイブ作成部315は、調査結果格納テーブル322を参照して、ライセンスを調査したソースコードの中から公開が義務づけられているソースコードを特定し、特定したソースコードを、コンポーネント毎にまとめたアーカイブファイルを作成する(アーカイブする)。なお、コンポーネントとは、機能毎のまとまりを意味し、予めどのソースコードがどのコンポーネントに属するかが定義されている。なお、コンポーネントの単位をライブラリの単位と一致させてもよい。また、アーカイブ作成部315は、コンポーネント毎ではなく、特定した全てのソースコードを1つにまとめたアーカイブファイルを作成してもよく、アーカイブファイルを作成する単位は種々のものが採用可能である。 The archive creation unit 315 refers to the investigation result storage table 322, identifies the source code that is obliged to be released from the source code for which the license has been investigated, and summarizes the identified source code for each component in the archive file. Create (archive). The component means a group for each function, and which source code belongs to which component is defined in advance. The unit of the component may match the unit of the library. Further, the archive creation unit 315 may create an archive file in which all the specified source codes are put together, not for each component, and various units for creating the archive file can be adopted.

次に、本実施形態に係るライセンス管理装置300の制御部310が実施するライセンス診断処理の動作について、図7のフローチャートを用いて説明する。 Next, the operation of the license diagnosis process performed by the control unit 310 of the license management device 300 according to the present embodiment will be described with reference to the flowchart of FIG. 7.

ライセンス診断処理は、ユーザからの操作により入力部340を介してライセンス診断処理の実行開始を表す旨の指示情報を受け取った場合、若しくは、インターネット400を介して利用者端末100からライセンス診断処理の実行開始を示す指示情報を通信部330が受信した場合に開始される。なお、この指示情報には、調査対象とするソフトウェアを特定する情報と、このソフトウェアを構成する複数のプログラムのソースコードのうち、実際にライセンスを調査するソースコードを指定するための調査対象指定情報とが含まれている。調査対象指定情報は、ライブラリ、ヘッダファイル、スクリプトファイルのようにソースコードの種類を指定するものでもよいし、ファイル名でライセンス調査対象のソースコードを直接指定するものでもよい。 In the license diagnosis process, when an instruction information indicating the start of execution of the license diagnosis process is received via the input unit 340 by an operation from the user, or when the license diagnosis process is executed from the user terminal 100 via the Internet 400. It is started when the communication unit 330 receives the instruction information indicating the start. In addition, this instruction information includes information for specifying the software to be investigated and information for specifying the investigation target for specifying the source code for actually investigating the license among the source codes of a plurality of programs constituting this software. And are included. The search target specification information may specify the type of source code such as a library, header file, or script file, or may directly specify the source code to be searched for license by the file name.

まず、ライセンス調査部313は、調査結果格納テーブル322に格納されているデータ(前回の調査結果)が有ればこのデータを消去する(ステップS101)。 First, the license investigation unit 313 deletes the data (previous investigation result) stored in the investigation result storage table 322 if it exists (step S101).

続いて、プログラム取得部311は、開発環境サーバ200から、ライセンスの管理対象であるソフトウェアを構成する複数のプログラムのソースコードと、当該ソフトウェアのビルド情報とを取得する(ステップS102)。 Subsequently, the program acquisition unit 311 acquires the source codes of a plurality of programs constituting the software whose license is to be managed and the build information of the software from the development environment server 200 (step S102).

次に、依存関係判別部312は、取得したビルド情報に基づいて、取得した複数のプログラム間の依存関係を判別する(ステップS103)。 Next, the dependency determination unit 312 determines the dependency between the acquired plurality of programs based on the acquired build information (step S103).

続いて、ライセンス調査部313は、判別した依存関係を参照して、調査対象指定情報で指定されているソースコードとこのソースコードが直接又は間接的に依存するソースコードとを、調査対象モジュールとして特定する(ステップS104)。 Subsequently, the license investigation unit 313 refers to the determined dependency relationship, and sets the source code specified in the investigation target designation information and the source code on which this source code directly or indirectly depends as the investigation target module. Identify (step S104).

例えば、ステップS103で図6に示すようなソースコード間の依存関係が判別され、調査対象指定情報としてソースコード「ee.c」が指定されている場合を考える。この場合、ライセンス調査部313は、調査対象モジュールとして、このソースコード「ee.c」と、このソースコード「ee.c」が直接又は間接的に依存するソースコード「ff.c」、「gg.c」、「hh.c」、「ii.c」、「jj.c」とを特定する。 For example, consider a case where the dependency between the source codes as shown in FIG. 6 is determined in step S103 and the source code "ee.c" is specified as the investigation target designation information. In this case, the license investigation unit 313 determines the source code "ee.c" and the source codes "ff.c" and "gg" on which the source code "ee.c" directly or indirectly depends on the module to be investigated. Identify ".c", "hh.c", "ii.c", "jj.c".

図7に戻り、続いて、ライセンス調査部313は、判別した調査対象モジュールに含まれる未選択のソースコードの中から、ステップS103で判別した依存関係が最下位のソースコードを1つ選択する(ステップS105)。 Returning to FIG. 7, the license investigation unit 313 then selects one source code having the lowest dependency determined in step S103 from the unselected source codes included in the determined investigation target module (). Step S105).

そして、ライセンス調査部313は、ライセンス情報テーブル321のライセンス特定情報をキーワードに選択したソースコードを検索することにより、当該ソースコードのライセンスの有無及び、ライセンスを有する場合はその種類を判別し、判別結果を調査結果格納テーブル322に登録する(ステップS106)。 Then, the license investigation unit 313 determines whether or not the source code is licensed and, if it has a license, the type of the source code by searching the source code for which the license specific information in the license information table 321 is selected as a keyword. The result is registered in the investigation result storage table 322 (step S106).

続いて、ライセンス調査部313は、ライセンス情報テーブル321の伝播フラグを参照して、ステップS106で判別したソースコードのライセンスが、このソースコードを利用する他のソースコードにも伝播するか否かを判別する(ステップS107)。伝播しないと判別した場合(ステップS107;No)、ステップS109に処理は移る。 Subsequently, the license investigation unit 313 refers to the propagation flag of the license information table 321 to determine whether or not the license of the source code determined in step S106 is propagated to other source codes that use this source code. Determine (step S107). If it is determined that the propagation does not occur (step S107; No), the process proceeds to step S109.

一方、ソースコードのライセンスが伝播すると判別した場合(ステップS107;Yes)、ライセンス調査部313は、ステップS103で判別した依存関係に基づいて、そのソースコードが直接又は間接的に依存する他のソースコードを判別する。そして、ライセンス調査部313は、判別した他のソースコードに対しても、ステップS106で判別したものと同じライセンスを有すると判別し、判別結果を調査結果格納テーブル322に登録する(ステップS108)。 On the other hand, when it is determined that the license of the source code is propagated (step S107; Yes), the license investigation unit 313 determines that the source code is directly or indirectly dependent on another source based on the dependency determined in step S103. Determine the code. Then, the license investigation unit 313 determines that the other source code determined has the same license as that determined in step S106, and registers the determination result in the investigation result storage table 322 (step S108).

続いて、ライセンス調査部313は、調査対象モジュールに含まれる全てのソースコードをステップS105で選択したか否かを判別する(ステップS109)。未選択のソースコードがある場合(ステップS109;No)、ステップS105に処理は戻る。 Subsequently, the license investigation unit 313 determines whether or not all the source codes included in the investigation target module have been selected in step S105 (step S109). If there is unselected source code (step S109; No), the process returns to step S105.

全てのソースコードを選択した場合(ステップS109;Yes)、結果出力部314は、ライセンスの調査結果を出力する。具体的には、結果出力部314は、調査結果格納テーブル322に格納されているデータを出力部に出力(表示)させる(ステップS110)。なお、利用者端末100からの指示によってライセンス診断処理が開始された場合は、結果出力部314は、調査結果格納テーブル322に格納されているデータをこの利用者端末100に送信して、利用者端末100の図示せぬ表示部に調査結果を出力させてもよい。 When all the source codes are selected (step S109; Yes), the result output unit 314 outputs the license search result. Specifically, the result output unit 314 outputs (displays) the data stored in the survey result storage table 322 to the output unit (step S110). When the license diagnosis process is started by the instruction from the user terminal 100, the result output unit 314 transmits the data stored in the survey result storage table 322 to the user terminal 100, and the user. The survey result may be output to a display unit (not shown) of the terminal 100.

続いて、アーカイブ作成部315は、ライセンスを調査したソースコードのうち、公開が義務づけられているソースコードを特定する。例えば、ライセンス調査部313は、調査結果格納テーブル322を参照して、ライセンス情報テーブル321の公開フラグが「1」であるライセンス(例えばGPL)を有するソースコードを特定すればよい。そして、ライセンス調査部313は、特定した公開が義務づけられているソースコードをコンポーネント毎にまとめたアーカイブファイルを作成する(アーカイブする)(ステップS111)。以上でライセンス診断処理は終了する。 Subsequently, the archive creation unit 315 identifies the source code that is obliged to be released from the source code for which the license has been investigated. For example, the license investigation unit 313 may refer to the investigation result storage table 322 and specify a source code having a license (for example, GPL) in which the public flag of the license information table 321 is "1". Then, the license investigation unit 313 creates (archives) an archive file that summarizes the specified source code that is obliged to be published for each component (step S111). This completes the license diagnosis process.

以上説明したように、本実施形態のライセンス管理装置300は、ソフトウェアをビルドする際のログであるビルド情報に基づいて、ライセンス管理対象であるソフトウェアを構成する複数のプログラムのソースコード間の依存関係を判別する。そして、ライセンス管理装置300は、ライセンス特定情報を用いて予め定めたライセンスを有するソースコードを判別する。そして、判別したライセンスが伝播する場合、ライセンス管理装置300は、判別した依存関係に基づいて、このソースコードに依存する他のソースコードを特定し、特定した他のソースコードに対しても同じライセンスを有すると判別する。従って、ライセンス管理装置300は、ライセンス伝播も考慮して、プログラムのソースコードのライセンスを調査することができ、ライセンスを漏れなく管理することができる。 As described above, the license management device 300 of the present embodiment has a dependency relationship between the source codes of a plurality of programs constituting the software to be license-managed based on the build information which is a log when the software is built. To determine. Then, the license management device 300 determines the source code having a predetermined license by using the license identification information. Then, when the determined license is propagated, the license management device 300 identifies other source code that depends on this source code based on the determined dependency, and the same license is applied to the specified other source code. Is determined to have. Therefore, the license management device 300 can investigate the license of the source code of the program in consideration of the license propagation, and can manage the license without omission.

以上、本発明の実施形態について説明したが、本発明は本実施形態によって限定されるものではない。 Although the embodiments of the present invention have been described above, the present invention is not limited to the present embodiments.

例えば、上記実施形態では、調査対象モジュールに含まれるソースコードのライセンスを調査したが、ソフトウェアを構成する全てのプログラムのソースコードを対象に、ライセンスを調査してもよい。 For example, in the above embodiment, the license of the source code included in the module to be investigated is investigated, but the license may be investigated for the source code of all the programs constituting the software.

例えば、ビルドを実行するビルドコマンドとは別に、ビルドコマンドをラッパーしたラッパーコマンドを開発環境サーバ200に用意しておく。このラッパーコマンドは、通常のビルドとは異なり、ソフトウェア生成物を生成せずにビルドのログ(ビルド情報)の出力を目的とした擬似ビルドを実行するためのコマンドである。そして、ライセンス管理装置300は、このラッパーコマンドを用いて擬似ビルドが実行された際のログ情報を開発環境サーバ200から取得し、取得したログ情報を用いてソースコード間の依存関係の判別(図7のステップS103)をしてもよい。擬似ビルドでは、ソフトウェア生成部が生成されずに通常のビルドよりも短時間でビルド情報が出力されるため、ライセンス診断処理の実行速度を向上させることが可能となる。なお、擬似ビルド時に出力されるビルド情報を通常のビルド時で出力されるビルド情報よりも詳細な内容で出力させたり、ソースコード間の依存関係の判別が容易になる形式でビルド情報を出力させたりしてもよい。 For example, in addition to the build command that executes the build, a wrapper command that wraps the build command is prepared in the development environment server 200. This wrapper command is different from a normal build, and is a command for executing a pseudo build for the purpose of outputting a build log (build information) without generating a software product. Then, the license management device 300 acquires the log information when the pseudo build is executed by using this wrapper command from the development environment server 200, and determines the dependency between the source codes by using the acquired log information (Fig.). Step S103) of 7 may be performed. In the pseudo build, the build information is output in a shorter time than the normal build without generating the software generation unit, so that the execution speed of the license diagnosis process can be improved. In addition, the build information output at the time of pseudo build is output with more detailed contents than the build information output at the time of normal build, and the build information is output in a format that makes it easy to determine the dependency between source codes. You may do it.

例えば、ライセンス管理装置300は、開発環境サーバ200からビルド情報を取得したが、ライセンス管理装置300にビルド又は擬似ビルドを実行できる環境を構築し、ライセンス管理装置300でビルド又は擬似ビルドを実行してビルド情報を取得してもよい。 For example, the license management device 300 has acquired build information from the development environment server 200, but builds an environment in which the license management device 300 can execute a build or a pseudo build, and executes a build or a pseudo build in the license management device 300. You may get the build information.

また、ライセンス診断処理の各ステップを複数の装置で分担して実行してもよい。例えば、依存関係の判別までのステップ(ステップS101〜S103)を利用者端末100又は開発環境サーバ200で実行して結果をライセンス管理装置300に送信し、以降のステップS104〜S111をライセンス管理装置300が実行してもよい。 Further, each step of the license diagnosis process may be shared and executed by a plurality of devices. For example, the steps up to the determination of the dependency (steps S101 to S103) are executed by the user terminal 100 or the development environment server 200, the result is transmitted to the license management device 300, and the subsequent steps S104 to S111 are performed by the license management device 300. May be executed.

また、上記実施形態では、ライセンス管理装置300の依存関係判別部312が、ビルド情報を用いてソースコード間の依存関係を判別したが、他の情報を用いて依存関係を判別してもよい。例えば、依存関係判別部312は、ビルドによって生成されるソフトウェア生成物を開発環境サーバ200から取得し、ソフトウェア生成物の内容を解析してソースコード間の依存関係を判別してもよい。また、依存関係判別部312は、依存関係のうち静的リンクはビルド情報を用いて判別し、動的リンクはソフトウェア生成物を用いて判別してもよい。 Further, in the above embodiment, the dependency determination unit 312 of the license management device 300 uses the build information to determine the dependency between the source codes, but other information may be used to determine the dependency. For example, the dependency determination unit 312 may acquire the software product generated by the build from the development environment server 200, analyze the contents of the software product, and determine the dependency between the source codes. Further, the dependency determination unit 312 may determine static links among the dependencies using build information and dynamic links using software products.

また、上記実施形態では、ライセンス診断処理において、調査対象モジュールに含まれる未選択のソースコードから、依存関係が下位のものを順に選択してライセンスを判別したが(図7のステップS105、S106)、ソースコードをどのような順で選択するかは任意であり、例えば、調査対象モジュールに含まれる未選択のソースコードから、ランダムに1つを選択してもよい。 Further, in the above embodiment, in the license diagnosis process, the licenses are determined by sequentially selecting the unselected source codes included in the investigation target module with lower dependencies (steps S105 and S106 in FIG. 7). , The order in which the source code is selected is arbitrary. For example, one may be randomly selected from the unselected source codes included in the module to be investigated.

例えば、上記実施形態では、結果出力部314は、ライセンスの調査結果として、調査結果格納テーブル322に格納されているデータを出力したが(図7のステップS110)、これ以外のデータを出力してもよい。例えば、結果出力部314は、ライセンスを調査したソースコードのうち、公開が義務づけられているラインセンスを有するものや、非推奨のライセンスを有するものが有る場合に、ソフトウェア全体にライセンスに関する問題があるとして、警告メッセージを出力部350に出力してもよい。 For example, in the above embodiment, the result output unit 314 outputs the data stored in the search result storage table 322 as the license search result (step S110 in FIG. 7), but outputs other data. May be good. For example, the result output unit 314 has a license problem in the entire software when some of the source code for which the license has been investigated has a license that is obliged to be released or a deprecated license. A warning message may be output to the output unit 350.

また、例えば、結果出力部314は、判別したライセンスの条文をインターネット400を介して取得し、付加情報としてライセンス結果とともに出力させてもよい。また、結果出力部314は、予め定めた形式(PDF形式、HTML形式、XML形式等)で取得したライセンスの条文を1つにまとめたファイルを出力させてもよい。 Further, for example, the result output unit 314 may acquire the determined license text via the Internet 400 and output it together with the license result as additional information. Further, the result output unit 314 may output a file in which the provisions of the license acquired in a predetermined format (PDF format, HTML format, XML format, etc.) are put together.

また、上記実施形態では、ライセンス管理装置300と利用者端末100と開発環境サーバ200とが、別々の機器により実現されている例が記載されているが、各装置の上述した機能が、1つのパーソナルコンピュータ、サーバ等の機器によって実現されてもよい。 Further, in the above embodiment, an example in which the license management device 300, the user terminal 100, and the development environment server 200 are realized by separate devices is described, but the above-mentioned function of each device is one. It may be realized by a device such as a personal computer or a server.

例えば、本実施形態に係るライセンス管理装置300の動作を規定する動作プログラムを既存のパーソナルコンピュータや情報端末機器等に適用することで、当該パーソナルコンピュータ等を本発明に係るライセンス管理装置300として機能させることも可能である。 For example, by applying an operation program that defines the operation of the license management device 300 according to the present embodiment to an existing personal computer, information terminal device, or the like, the personal computer or the like functions as the license management device 300 according to the present invention. It is also possible.

また、このようなプログラムの配布方法は任意であり、例えば、CD−ROM(Compact Disk Read-Only Memory)、DVD(Digital Versatile Disk)、MO(Magneto Optical Disk)、メモリカードなどのコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネット400などの通信ネットワークを介して配布してもよい。 The distribution method of such a program is arbitrary, and for example, a computer-readable CD-ROM (Compact Disk Read-Only Memory), DVD (Digital Versatile Disk), MO (Magneto Optical Disk), memory card, etc. can be read. It may be stored in a recording medium and distributed, or may be distributed via a communication network such as the Internet 400.

1 ライセンス管理システム、100 利用者端末、200 開発環境サーバ、300 ライセンス管理装置、400 インターネット、310 制御部、320 記憶部、321 ライセンス情報テーブル、322 調査結果格納テーブル、330 通信部、340 入力部、350 出力部、360 バス、311 プログラム取得部、312 依存関係判別部、313 ライセンス調査部、314 結果出力部、315 アーカイブ作成部 1 License management system, 100 user terminals, 200 development environment server, 300 license management device, 400 Internet, 310 control unit, 320 storage unit, 321 license information table, 322 survey result storage table, 330 communication unit, 340 input unit, 350 output unit, 360 bus, 311 program acquisition unit, 312 dependency determination unit, 313 license investigation unit, 314 result output unit, 315 archive creation unit

Claims (7)

ソフトウェアをビルドする際のログであるビルド情報に基づいて、前記ソフトウェアを構成する複数のプログラムのソースコード間の依存関係を判別する依存関係判別部と、
ライセンスの種類毎に、当該ライセンスを特定するためのライセンス特定情報と、当該ライセンスを有するソースコードに依存する他のソースコードにも当該ライセンスが伝播するか否かを示す伝播フラグと、を記憶するライセンス情報記憶部と、
前記ライセンス情報記憶部に記憶されているライセンス特定情報を参照して前記複数のプログラムのソースコードそれぞれが有するライセンスを判別するとともに、判別したライセンスの前記伝播フラグが伝播することを示している場合には、前記依存関係判別部による判別結果に基づいて、当該ライセンスを有するソースコードに依存する他のソースコードを特定し、該他のソースコードに対しても当該ライセンスを有すると判別するライセンス調査部と、
前記ライセンス調査部による判別結果を出力する結果出力部と、
を備えるライセンス管理装置。
A dependency determination unit that determines the dependency between the source codes of a plurality of programs constituting the software based on the build information that is a log when building the software.
For each type of license, the license identification information for identifying the license and the propagation flag indicating whether or not the license is propagated to other source code depending on the source code having the license are stored. License information storage and
When the license possessed by each of the source codes of the plurality of programs is determined by referring to the license identification information stored in the license information storage unit, and the propagation flag of the determined license is shown to be propagated. is on the basis of the dependency determination unit according to the determination result, to identify other source code that depends on the source code with the license, the license check unit for determining that also has the license to said other source code When,
A result output unit that outputs the determination result by the license investigation unit, and
License management device.
前記依存関係判別部は、The dependency determination unit is
前記ビルド情報に基づいて、前記複数のプログラムのソースコード間の静的な依存関係を判別し、 Based on the build information, the static dependency between the source code of the plurality of programs is determined.
前記ソフトウェアをビルドすることによって生成されるソフトウェア生成物に基づいて、前記複数のプログラムのソースコード間の動的な依存関係を判別する、 Determining the dynamic dependencies between the source code of the plurality of programs based on the software products generated by building the software.
請求項1に記載のライセンス管理装置。 The license management device according to claim 1.
前記ビルド情報は、ソフトウェア生成物を生成しないビルドである擬似ビルドを実行した際のログである、
請求項1又は2に記載のライセンス管理装置。
The build information is a log when a pseudo build, which is a build that does not generate software products, is executed.
The license management device according to claim 1 or 2.
前記予め定めたライセンスがソースコードの公開を義務づけるライセンスである場合に、前記ライセンス調査部が判別した前記予め定めたライセンスを有するソースコードのアーカイブを作成するアーカイブ作成部をさらに備える、
請求項1から3の何れか1項に記載のライセンス管理装置。
When the predetermined license is a license that obliges the disclosure of the source code, an archive creation unit for creating an archive of the source code having the predetermined license determined by the license investigation unit is further provided.
The license management device according to any one of claims 1 to 3.
前記結果出力部は、前記ライセンス調査部が判別したライセンスの条文の一覧を出力する、
請求項1からの何れか1項に記載のライセンス管理装置。
The result output unit outputs a list of license texts determined by the license investigation unit.
The license management device according to any one of claims 1 to 4.
コンピュータが、
ソフトウェアをビルドする際のログであるビルド情報に基づいて、前記ソフトウェアを構成する複数のプログラムのソースコード間の依存関係を判別する依存関係判別ステップと、
ライセンスの種類毎に、当該ライセンスを特定するためのライセンス特定情報と、当該ライセンスを有するソースコードに依存する他のソースコードにも当該ライセンスが伝播するか否かを示す伝播フラグと、を記憶するライセンス情報記憶ステップと、
前記ライセンス特定情報を参照して前記複数のプログラムのソースコードそれぞれが有するライセンスを判別するとともに、判別したライセンスの前記伝播フラグが伝播することを示している場合には、前記依存関係判別ステップでの判別結果に基づいて、当該ライセンスを有するソースコードに依存する他のソースコードを特定し、該他のソースコードに対しても当該ライセンスを有すると判別するライセンス調査ステップと、
実行するライセンス管理方法。
The computer
A dependency determination step for determining the dependency between the source codes of a plurality of programs constituting the software based on the build information which is a log when the software is built, and a dependency determination step.
For each type of license, the license identification information for identifying the license and the propagation flag indicating whether or not the license is propagated to other source code depending on the source code having the license are stored. License information storage step and
When the license possessed by each of the source codes of the plurality of programs is determined by referring to the license identification information and the propagation flag of the determined license is indicated to be propagated, the dependency determination step is performed. based on the determination result, to identify other source code that depends on the source code with the license, and the license investigation step of determining to have the license against said other source code,
License management method to execute.
コンピュータを、
ソフトウェアをビルドする際のログであるビルド情報に基づいて、前記ソフトウェアを構成する複数のプログラムのソースコード間の依存関係を判別する依存関係判別部、
ライセンスの種類毎に、当該ライセンスを特定するためのライセンス特定情報と、当該ライセンスを有するソースコードに依存する他のソースコードにも当該ライセンスが伝播するか否かを示す伝播フラグと、を記憶するライセンス情報記憶部、
前記ライセンス情報記憶部に記憶されているライセンス特定情報を参照して前記複数のプログラムのソースコードそれぞれが有するライセンスを判別するとともに、判別したライセンスの前記伝播フラグが伝播することを示している場合には、前記依存関係判別部による判別結果に基づいて、当該ライセンスを有するソースコードに依存する他のソースコードを特定し、該他のソースコードに対しても当該ライセンスを有すると判別するライセンス調査部、
として機能させるプログラム。
Computer,
Dependency determination unit that determines the dependency between the source codes of a plurality of programs that make up the software based on the build information that is the log when building the software.
For each type of license, the license identification information for identifying the license and the propagation flag indicating whether or not the license is propagated to other source code depending on the source code having the license are stored. License information storage,
When the license possessed by each of the source codes of the plurality of programs is determined by referring to the license identification information stored in the license information storage unit, and the propagation flag of the determined license is shown to be propagated. is on the basis of the dependency determination unit according to the determination result, to identify other source code that depends on the source code with the license, the license check unit for determining that also has the license to said other source code ,
A program that functions as.
JP2017033559A 2017-02-24 2017-02-24 License management device, license management method, and program Active JP6937589B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017033559A JP6937589B2 (en) 2017-02-24 2017-02-24 License management device, license management method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017033559A JP6937589B2 (en) 2017-02-24 2017-02-24 License management device, license management method, and program

Publications (2)

Publication Number Publication Date
JP2018139054A JP2018139054A (en) 2018-09-06
JP6937589B2 true JP6937589B2 (en) 2021-09-22

Family

ID=63451391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017033559A Active JP6937589B2 (en) 2017-02-24 2017-02-24 License management device, license management method, and program

Country Status (1)

Country Link
JP (1) JP6937589B2 (en)

Also Published As

Publication number Publication date
JP2018139054A (en) 2018-09-06

Similar Documents

Publication Publication Date Title
US11868231B2 (en) System and method for evaluating code by a hybrid of local and cloud-based computers
US10019256B2 (en) Systems and methods for incremental software development
US9367305B1 (en) Automatic container definition
US9342273B1 (en) Automatic communications graphing for a source application
US11625528B2 (en) System, method and computer program product to generate a web application using reusable themes
US20180081982A1 (en) Managing a display of results of a keyword search on a web page by modifying attributes of a dom tree structure
JP7507564B2 (en) Automatically finding the location of translated text in localized applications
US20160380915A1 (en) Rules-Based Workflow Messaging
CN111158674A (en) Component management method, system, device and storage medium
US9965256B2 (en) Method and system for evaluating computational algorithms described in printed publications
CN107608672B (en) UI module manager, UI module management method and system
CN105159686A (en) Website page development method and apparatus
US20220206934A1 (en) Test apparatus, test method and program
Griffiths et al. React Cookbook
JP6937589B2 (en) License management device, license management method, and program
JP6045707B2 (en) License management apparatus, license management method, and program
JP5758311B2 (en) Test code generation device, test code generation method, test code generation program
JP6717140B2 (en) Analysis program, analysis method, and analysis device
JP7168532B2 (en) Information processing system, information processing method, development device, and program for development device
JP5500968B2 (en) Information processing apparatus, information processing method, and information processing program
Serrão SMART: Static and Dynamic Analysis to Reverse Engineer Android Applications
US11960560B1 (en) Methods for analyzing recurring accessibility issues with dynamic web site behavior and devices thereof
JP2019179383A (en) Api processing method, terminal, and api processing program
JP2011113298A (en) Shared source code analysis system, program, and recording medium
JP2023055358A (en) Simulation method for microcomputer control program and simulation system therefor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201020

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20201216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210205

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210831

R150 Certificate of patent or registration of utility model

Ref document number: 6937589

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150