WO2020158374A1 - 準拠性判定装置及びその方法 - Google Patents

準拠性判定装置及びその方法 Download PDF

Info

Publication number
WO2020158374A1
WO2020158374A1 PCT/JP2020/000937 JP2020000937W WO2020158374A1 WO 2020158374 A1 WO2020158374 A1 WO 2020158374A1 JP 2020000937 W JP2020000937 W JP 2020000937W WO 2020158374 A1 WO2020158374 A1 WO 2020158374A1
Authority
WO
WIPO (PCT)
Prior art keywords
api
item
design guideline
character string
compliance determination
Prior art date
Application number
PCT/JP2020/000937
Other languages
English (en)
French (fr)
Inventor
健一 橿渕
Original Assignee
日本電信電話株式会社
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 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to US17/423,055 priority Critical patent/US20220101337A1/en
Publication of WO2020158374A1 publication Critical patent/WO2020158374A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/018Certifying business or products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Definitions

  • the present invention relates to a technique for determining whether or not a design specification complies with a rule.
  • API application programming interfaces
  • design guideline a unified guideline in order to facilitate the use of the API. Therefore, it is necessary to determine whether each API specification complies with the design guideline (hereinafter, design guideline).
  • Non-Patent Document 1 A tool that tests after API implementation is known as a system for determining compliance with design guidelines.
  • Non-Patent Document 1 Although it can be determined that a certain value in the API specification is included in the regulation shown in the design guideline, that value is used in the meaning shown in the design guideline. I can not judge That is, it is not possible to deal with fluctuations in the expression of the API specifications. In short, there is a problem that an accurate determination cannot be made because the determination is made based on a fixed determination rule.
  • the present invention has been made in view of this problem, and an object of the present invention is to provide a compliance determination apparatus and method capable of determining compliance with design guidelines without preparing fixed determination rules in advance. ..
  • a compliance determination device which is an API specification storage unit in which application programming interface specifications conforming to the regulations shown in design guidelines are stored, and a character string for explaining each item of the application programming interface specifications.
  • a learning data extraction unit that extracts learning data in which a label corresponding to the character string is combined, and each item of API specification information input from the outside that acquires the learning data complies with the design guideline.
  • a discriminant function generating unit that generates a discriminant function for determining whether or not is extracted by machine learning, and test data that is a combination of the character string and the label corresponding to each item of the design guideline is extracted from the API specification information.
  • the gist of the present invention is to provide a conformity determining unit that inputs the test data to the identification function and determines whether the test data conforms to the design guideline.
  • a compliance determination method is a compliance determination method executed by the above-described compliance determination device, and includes a character string that describes each item of the application programming interface specification, and A learning data extraction step of extracting learning data including a pair of corresponding labels, and acquiring the learning data to determine whether or not each item of API specification information input from the outside complies with the design guideline.
  • the gist is to perform a conformity determination step of inputting to the identification function and determining whether or not the test data complies with the design guideline.
  • the present invention it is possible to provide a compliance determination apparatus and method capable of determining compliance with a design guideline without preparing fixed determination rules in advance.
  • FIG. 3 is a flowchart showing a schematic processing procedure of the compliance determination device shown in FIG. 1. It is a figure which shows an example of a part of specification of an application programming interface. It is a figure which shows an example of a part of specification of the application programming interface which does not comply with a design guideline. It is a block diagram which shows the functional structural example of the compliance determination apparatus which concerns on 2nd Embodiment of this invention. 6 is a flowchart showing a schematic processing procedure of the compliance determination device shown in FIG. 5. It is a block diagram which shows the functional structural example of the compliance determination apparatus which concerns on 3rd Embodiment of this invention. 8 is a flowchart showing a schematic processing procedure of the compliance determination device shown in FIG. 7. 9 is a diagram showing an example of application programming interface specifications collected by the API information collecting unit shown in FIG. 7. FIG.
  • FIG. 1 is a block diagram showing a functional configuration example of a compliance determination apparatus according to the first embodiment of the present invention.
  • FIG. 2 is a flowchart showing a schematic processing procedure of the compliance determination device 100 shown in FIG.
  • the compliance determination device 100 includes an API specification storage unit 10, a learning data extraction unit 20, a discriminant function generation unit 30, and a compliance determination unit 40. Coordination between the functional components is controlled by a controller (not shown). It should be noted that FIG. 1 shows only the functional components necessary for explaining the present embodiment. Descriptions of general functional components such as an input unit, a storage unit, a control unit, and a display unit necessary to configure the compliance determination apparatus 100 are omitted.
  • the compliance determination device 100 can be realized by, for example, a computer including a ROM, a RAM, a CPU, and the like.
  • a computer including a ROM, a RAM, a CPU, and the like.
  • the processing content of the function that each functional component should have is described by a program. This also applies to other embodiments described later.
  • the API specification storage unit 10 stores application programming interface (hereinafter abbreviated as API) specifications that comply with the rules shown in the design guidelines.
  • the design guideline is a so-called design guideline and describes definitions of common data items and the like when data is exchanged between servers.
  • the API specification storage unit 10 stores the design guideline and one or more API specifications conforming to the rules shown in the design guideline in association with each other.
  • the API specification may be a plurality of API specifications within the same design guideline. There is only one design guideline.
  • design guideline is, for example, “TMF630 DesignDesignguidelines3.0R17.5.1”, and an example of API specification information that conforms to the rules shown in the design guidelines is, for example, “TMF629 CustomerManagementAPI REST RESTSpecification R18.0.0. It is.
  • the learning data extraction unit 20 includes a specific character string (eg, Summary item included in each rule in the Swagger file) related to each item of the design guideline in the API specification, and a label (eg, HTTP method item) corresponding to the character string. ) And learning data that is a combination of and are extracted.
  • the extracted learning data is stored in, for example, a RAM or the like.
  • the learning data extraction unit 20 extracts learning data which is a combination of a character string describing each item of the API specification and a label corresponding to the character string (FIG. 2: step S1).
  • learning data is a combination of a character string describing each item of the API specification and a label corresponding to the character string (FIG. 2: step S1).
  • one of the items of the API specification is, for example, the "HTTP method” shown in Table 1.
  • a status code indicating the result of executing the API is also one of the items of the API specification.
  • Table 1 shows a part of the HTTP method. In addition to those shown in Table 1, there are, for example, HEAD, etc., but their description is omitted.
  • “reading out resource information” is one of the character strings that describes the GET method. Then, for example, "GET" in the first column is a label corresponding to the character string.
  • the learning data extraction unit 20 extracts the learning data in which the character string “reading out of resource information” and the label “GET” are combined. Also, a set of a character string and a label is extracted from the status code indicating the result of executing the API.
  • the character string is, for example, “normal response”.
  • the label corresponding to the character string of the status code is "200".
  • Table 2 shows some status codes.
  • FIG. 3 is a diagram showing an example of learning data.
  • the character strings that explain the meaning of the API that uses the GET method that is the same HTTP method are “List all fruits” (FIG. 3(a)) and “Find a pet ID” (FIG. 3(b )) shows two examples. In this way, there may be fluctuations in the expression of the API specifications.
  • the discriminant function generator 30 acquires the learning data extracted by the learning data extractor 20, and uses a discriminant function that determines whether or not each item of API specification information input from the outside complies with the design guideline. It is generated by learning (step S2). For machine learning, for example, a well-known support vector machine is used. Also, machine learning by the naive Bayes method may be performed.
  • the identification function generated by machine learning determines whether the API specification information complies with the design guideline.
  • the compliance determination unit 40 extracts test data, which is a combination of a character string and a label corresponding to each item of the design guideline, from the API specification information input from the outside, inputs the test data into an identification function, and then performs the test. It is determined whether the data complies with the design guideline (step S3).
  • test data extracted from the API specification information input from the outside has a label “GET” and a character string “List all fruits”, the discriminant function generated from the learning data illustrated in FIG. It is determined that the item of API specification information complies with the design guideline.
  • FIG. 4 is a diagram showing an example of API specification information that does not comply with the design guideline. As shown in FIG. 4, the GET method is described in the third line. However, there is a description of "Create a pet ID" in the 4th line description. From this description, it is considered that this API is an API that newly creates resource information, and the HTTP method should use the POST method.
  • the compliance determination unit 40 determines that the test data including the label of "GET” and the character string of "Create pet ID" does not conform to the design guideline.
  • the determination result is displayed on, for example, a display unit (not shown).
  • the conformity determining device 100 includes the API specification storage unit 10 in which the API specifications complying with the regulations shown in the design guidelines are stored, and the character string describing each item of the API specifications. And a learning data extraction unit 20 that extracts learning data in which a label corresponding to the character string is combined, and whether each item of API specification information input from the outside by acquiring the learning data complies with the design guideline.
  • a discriminant function generation unit 30 that generates a discriminant function for determining whether or not it is extracted by machine learning, and test data that is a set of a character string and a label corresponding to each item of the design guideline are extracted from API specification information input from the outside.
  • test data is input to the discriminant function to determine whether the test data complies with the design guideline. Accordingly, it is possible to provide a compliance determination device and a compliance determination device that can determine compliance with the design guideline without preparing a fixed determination rule in advance.
  • FIG. 5 is a block diagram showing a functional configuration example of the conformity determination device according to the second embodiment of the present invention.
  • FIG. 6 is a flowchart showing a schematic processing procedure of the compliance determination device 200 shown in FIG.
  • the compliance determination device 200 differs from the compliance determination device 100 (FIG. 1) in that a specification modification unit 210 is provided.
  • the specification modifying unit 210 modifies the API specification information, which is determined by the conformity determining apparatus 100 as not conforming to the design guideline (NO in step 4), to a specification conforming to the design guideline using an identification function (step). S5).
  • the specification modification unit 210 modifies the HTTP method “GET” for the API specification information items shown in FIG. 4 to the HTTP method “POST” corresponding to the description of “Create pet ID” in the description. If the identification function is used, the HTTP method character string corresponding to the API specification information can be generated.
  • the conformity determining apparatus 200 uses the identification function to correct the API specification information that is determined not to conform to the design guideline, to the specification conforming to the design guideline using the identification function. Equipped with. As a result, the API design specification information that does not comply with the design guideline is corrected to be compliant, so that the convenience of the user can be improved.
  • FIG. 7 is a block diagram showing a functional configuration example of a compliance determination device according to the second embodiment of the present invention.
  • FIG. 8 is a flowchart showing a schematic processing procedure of the compliance determination device 300 shown in FIG. 7.
  • the compliance determination device 300 differs from the compliance determination device 100 (FIG. 1) and the compliance determination device 200 (FIG. 5) in that an API information collecting unit 310 is provided.
  • the API information collection unit 310 collects a plurality of API specifications conforming to other design guidelines having the same regulations as the items of the design guidelines from the outside via the network and outputs them to the learning data extraction unit 20 (step S6).
  • FIG. 9 is a diagram showing an example of API specifications collected by the API information collection unit 310. From the left of FIG. 9, “design guideline item”, “character string to be explained”, “place of character string”, “label”, and “place of label”.
  • the set of "design guideline items”, "explaining character string”, and “label” shown in Fig. 9 constitutes the learning data.
  • the “character string location” and the “label location” do not have to be information indicating the location in the API specification where the respective information exists.
  • the API information collection unit 310 has a plurality of API specifications (Swagger files) that comply with other design guidelines having the same rules for each item of the design guidelines to be compliant (for example, the usage standard of HTTP method according to the application). Alternatively, information (eg URI) for identifying the API specification is collected. Since the information collected by the API information collection unit 310 is output to the learning data extraction unit 20, the learning data can be increased.
  • API specifications Swagger files
  • other design guidelines having the same rules for each item of the design guidelines to be compliant (for example, the usage standard of HTTP method according to the application).
  • information eg URI
  • the learning data extraction unit 20 the learning data can be increased.
  • the conformity determining apparatus 300 collects a plurality of API specifications conforming to other design guidelines having the same regulations as each item of the design guidelines from the outside via the network and learning data. Output to the extraction unit 20. Thereby, the number of learning data can be increased and the accuracy of the discrimination function can be improved.
  • the conformity determining apparatus and method capable of determining conformity to the design guideline without preparing fixed determination rules in advance. Can be provided.
  • conformity determining device 300 (FIG. 7) has been described as an example in which the conformity determining device 100 (FIG. 1) includes the API information collection unit 310, but the present invention is not limited to this example.
  • the compliance determination device 200 (FIG. 5) may be configured to include the API information collection unit 310.
  • Compliance determination device 10 API specification storage unit 20: Learning data extraction unit 30: Discrimination function generation unit 40: Compliance determination unit 210: Specification correction unit 310: API information collection unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Marketing (AREA)
  • Computing Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

固定的な判定規則を予め用意することなく設計ガイドラインへの準拠性を判定できる準拠性判定装置を提供する。設計ガイドラインで示された規定に準拠したアプリケーションプログラミングインターフェース仕様が記憶されたAPI仕様記憶部10と、アプリケーションプログラミングインターフェース仕様の各項目を説明する文字列と、当該文字列に対応するラベルとを組みにした学習データを抽出する学習データ抽出部20と、学習データを取得し、外部から入力されるAPI仕様情報の各項目が設計ガイドラインに準拠するか否かを判定する識別関数を、機械学習によって生成する識別関数生成部30と、API仕様情報から設計ガイドラインの項目ごとに対応する文字列とラベルを組みにした試験データを抽出し、当該試験データを識別関数に入力し、当該試験データが設計ガイドラインに準拠しているか否かを判定する準拠性判定部40とを備える。

Description

準拠性判定装置及びその方法
 本発明は、設計仕様書がルールに準拠しているか否かを判定する技術に関する。
 近年、様々なネットワークサービスがアプリケーションプログラミングインターフェース(以降、API)という形で提供されている。APIとは、データのやり取りを通じて、他のシステムの情報や機能等を利用する仕組みである。
 よって、新たなネットワークサービスを構築する際は、API利用を容易にするために、API仕様は統一的な指針(API設計指針)に基づいて設計されることが望ましい。そこで、各API仕様が設計指針(以降、設計ガイドライン)に準拠しているか否かを判定する必要がある。
 設計ガイドラインへの準拠性を判定するシステムとして、API実装後に試験するツール(非特許文献1)が知られている。
[平成31年1月16日検索]、Postman Makes API Development Simple、インターネット<URL: http://www.getpostman.com/>
 しかしながら、非特許文献1に開示された技術では、API仕様内のある値が設計ガイドラインで示された規定に含まれることは判定できるが、その値が設計ガイドラインで示された意味で使用されているかを判定することができない。つまり、API仕様書の表現の揺らぎに対応することができない。要するに、固定的な判定規則に基づいて判定するため正確な判定ができないという課題がある。
 本発明は、この課題に鑑みてなされたものであり、固定的な判定規則を予め用意することなく設計ガイドラインへの準拠性を判定できる準拠性判定装置及びその方法を提供することを目的とする。
 本発明の一態様に係る準拠性判定装置は、設計ガイドラインで示された規定に準拠したアプリケーションプログラミングインターフェース仕様が記憶されたAPI仕様記憶部と、前記アプリケーションプログラミングインターフェース仕様の各項目を説明する文字列と、当該文字列に対応するラベルとを組みにした学習データを抽出する学習データ抽出部と、前記学習データを取得し、外部から入力されるAPI仕様情報の各項目が前記設計ガイドラインに準拠するか否かを判定する識別関数を、機械学習によって生成する識別関数生成部と、前記API仕様情報から前記設計ガイドラインの項目ごとに対応する前記文字列と前記ラベルを組みにした試験データを抽出し、当該試験データを前記識別関数に入力し、当該試験データが前記設計ガイドラインに準拠しているか否かを判定する準拠性判定部とを備えることを要旨とする。
 また、本発明の一態様に係る準拠性判定方法は、上記の準拠性判定装置が実行する準拠性判定方法であって、アプリケーションプログラミングインターフェース仕様の各項目を説明する文字列と、当該文字列に対応するラベルとを組みにした学習データを抽出する学習データ抽出ステップと、前記学習データを取得し、外部から入力されるAPI仕様情報の各項目が前記設計ガイドラインに準拠するか否かを判定する識別関数を、機械学習によって生成する識別関数生成ステップと、前記API仕様情報から前記設計ガイドラインの項目ごとに対応する前記文字列と前記ラベルを組みにした試験データを抽出し、当該試験データを前記識別関数に入力し、当該試験データが前記設計ガイドラインに準拠しているか否かを判定するする準拠性判定ステップとを行うことを要旨とする。
 本発明によれば、固定的な判定規則を予め用意することなく設計ガイドラインへの準拠性を判定できる準拠性判定装置及びその方法を提供することができる。
本発明の第1実施形態に係る準拠性判定装置の機能構成例を示すブロック図である。 図1に示す準拠性判定装置の概略の処理手順を示すフローチャートである。 アプリケーションプログラミングインターフェースの仕様の一部の例を示す図である。 設計ガイドラインに準拠していないアプリケーションプログラミングインターフェースの仕様の一部の例を示す図である。 本発明の第2実施形態に係る準拠性判定装置の機能構成例を示すブロック図である。 図5に示す準拠性判定装置の概略の処理手順を示すフローチャートである。 本発明の第3実施形態に係る準拠性判定装置の機能構成例を示すブロック図である。 図7に示す準拠性判定装置の概略の処理手順を示すフローチャートである。 図7に示すAPI情報収集部が収集したアプリケーションプログラミングインターフェース仕様の例を示す図である。
 以下、本発明の実施形態について図面を用いて説明する。複数の図面中同一のものには同じ参照符号を付し、説明は繰り返さない。
 〔第1実施形態〕
 図1は、本発明の第1実施形態に係る準拠性判定装置の機能構成例を示すブロック図である。図2は、図1に示す準拠性判定装置100の概略の処理手順を示すフローチャートである。
 準拠性判定装置100は、API仕様記憶部10、学習データ抽出部20、識別関数生成部30、及び準拠性判定部40を備える。各機能構成部の連携は、制御部(図示せず)によって制御される。なお、図1は、本実施形態を説明するのに必要な機能構成部のみを表記している。準拠性判定装置100を構成するのに必要な入力部、記憶部、制御部、及び表示部等の一般的な機能構成部の表記は省略している。
 準拠性判定装置100は、例えば、ROM、RAM、CPU等からなるコンピュータで実現することができる。各機能構成部をコンピュータによって実現する場合、各機能構成部が有すべき機能の処理内容はプログラムによって記述される。このことは、後述する他の実施形態でも同じである。
 API仕様記憶部10には、設計ガイドラインで示された規定に準拠したアプリケーションプログラミングインターフェース(以降、APIと略す)仕様が記憶される。ここで設計ガイドラインは、いわゆる設計指針のことであり、サーバ間でデータのやりとりをする際の共通的なデータ項目等の定義を記載したものである。
 API仕様記憶部10は、設計ガイドラインと、当該設計ガイドラインで示された規定に準拠した一つ以上のAPI仕様書を対応付けて記憶する。API仕様書は、同一の設計ガイドラインの範囲内の複数のAPI仕様書であっても良い。なお、設計ガイドラインは一つである。
 設計ガイドラインラインの一例は、例えば“TMF630 API Design Guidelines 3.0 R17.5.1”であり、その設計ガイドラインで示された規定に準拠したAPI仕様情報の一例は、例えば“TMF629 Customer Management API REST Specification R18.0.0”である。
 学習データ抽出部20は、API仕様書内の設計ガイドラインの各項目が関連する特定文字列(例えばSwaggerファイルにおける各規定に含まれるSummary項)と、当該文字列に対応するラベル(例えばHTTPメソッド項)とを組みにした学習データを抽出する。抽出された学習データは、例えばRAM等に記憶される。
 学習データ抽出部20は、API仕様書の各項目を説明する文字列と、当該文字列に対応するラベルとを組みにした学習データを抽出する(図2:ステップS1)。ここで、API仕様書の各項目の一つは、例えば表1に示す「HTTPメソッド」のことである。また、APIを実行した結果を表すステータスコードもAPI仕様書の各項目の一つである。
 表1は、HTTPメソッドの一部を示す。表1に示すものの他に例えばHEAD等があるがそれらの表記は省略する。
Figure JPOXMLDOC01-appb-T000001
 
 表1の2列目の例えば「リソース情報の「読み出し」」は、GETメソッドを説明する文字列の一つである。そして1列目の例えば「GET」は、当該文字列に対応するラベルである。
 よって、学習データ抽出部20は、「リソース情報の「読み出し」」の文字列と、「GET」のラベルを組みにした学習データを抽出する。また、APIを実行した結果を表すステータスコードからも、文字列とラベルの組みを抽出する。その文字列は、例えば「正常応答」である。また、ステータスコードの当該文字列に対応するラベルは「200」である。
 表2は、ステータスコードの一部を示す。
Figure JPOXMLDOC01-appb-T000002
 
 図3は、学習データの例を示す図である。図3に示す例は、同じHTTPメソッドであるGETメソッドを利用するAPIの意味を説明する文字列が“List all fruits”(図3(a))と“Find a pet ID”(図3(b))の2つある例を示している。このようにAPI仕様の表現に揺らぎが有っても構わない。
 識別関数生成部30は、学習データ抽出部20で抽出された学習データを取得し、外部から入力されるAPI仕様情報の各項目が設計ガイドラインに準拠するか否かを判定する識別関数を、機械学習によって生成する(ステップS2)。機械学習は、例えば周知のサポートベクターマシンを用いる。また、ナイーブベイズ法による機械学習を行っても良い。
 機械学習によって生成された識別関数は、外部から入力されるAPI仕様情報の各項目を入力することで当該API仕様情報が、設計ガイドラインに準拠しているか否かを判定する。
 準拠性判定部40は、外部から入力されるAPI仕様情報から設計ガイドラインの項目ごとに対応する文字列とラベルを組みにした試験データを抽出し、当該試験データを識別関数に入力し、当該試験データが設計ガイドラインに準拠しているか否かを判定する(ステップS3)。
 図3に示した学習データから生成された識別関数は、外部から入力されるAPI仕様情報から抽出した試験データに例えば「GET」のラベルと“List all fruits”の文字列が在れば、当該API仕様情報の項目を設計ガイドラインに準拠していると判定する。
 図4は、設計ガイドラインに準拠していないAPI仕様情報の一例を示す図である。図4に示すように3行目にGETメソッドの記載がある。しかし、4行目の説明文に“Create  a pet ID”の記述がある。この説明文からは、このAPIはリソース情報を新規に作成するAPIであり、HTTPメソッドはPOSTメソッドを利用すべきであると考えられる。
 この場合、準拠性判定部40は、「GET」のラベルと“Create a pet ID”の文字列からなる試験データを設計ガイドラインに準拠していないと判定する。判定結果は、例えば表示部(図示せず)に表示される。
 以上説明したように本実施形態に係る準拠性判定装置100は、設計ガイドラインで示された規定に準拠したAPI仕様が記憶されたAPI仕様記憶部10と、API仕様の各項目を説明する文字列と、当該文字列に対応するラベルとを組みにした学習データを抽出する学習データ抽出部20と、学習データを取得し、外部から入力されるAPI仕様情報の各項目が設計ガイドラインに準拠するか否かを判定する識別関数を、機械学習によって生成する識別関数生成部30と、外部から入力されるAPI仕様情報から設計ガイドラインの項目ごとに対応する文字列とラベルを組みにした試験データを抽出し、当該試験データを識別関数に入力し、当該試験データが設計ガイドラインに準拠しているか否かを判定する準拠性判定部40とを備える。これにより、固定的な判定規則を予め用意することなく設計ガイドラインへの準拠性を判定できる準拠性判定装置及を提供することができる。
 〔第2実施形態〕
 図5は、本発明の第2実施形態に係る準拠性判定装置の機能構成例を示すブロック図である。図6は、図5に示す準拠性判定装置200の概略の処理手順を示すフローチャートである。
 準拠性判定装置200は、準拠性判定装置100(図1)に対して仕様修正部210を備える点で異なる。仕様修正部210は、準拠性判定装置100によって設計ガイドラインに準拠していないと判定(ステップ4のNO)されたAPI仕様情報を、識別関数を用いて設計ガイドラインに準拠する仕様に修正する(ステップS5)。
 仕様修正部210は、図4に示すAPI仕様情報の項目については、HTTPメソッドの「GET」を、説明文の“Create a pet ID”の記述に対応するHTTPメソッドの「POST」に修正する。識別関数を用いればAPI仕様情報に対応するHTTPメソッドの文字列を生成することができる。
 このように本実施形態に係る準拠性判定装置200は、設計ガイドラインに準拠していないと判定されたAPI仕様情報を、識別関数を用いて、設計ガイドラインに準拠する仕様に修正する仕様修正部210を備える。これにより、設計ガイドラインに準拠していないAPI設計仕様情報を準拠するように修正するので利用者の利便性を向上させることができる。
 〔第3実施形態〕
 図7は、本発明の第2実施形態に係る準拠性判定装置の機能構成例を示すブロック図である。図8は、図7に示す準拠性判定装置300の概略の処理手順を示すフローチャートである。
 準拠性判定装置300は、準拠性判定装置100(図1)及び準拠性判定装置200(図5)に対してAPI情報収集部310を備える点で異なる。API情報収集部310は、設計ガイドラインの各項目と同一の規定を有する他の設計ガイドラインに準拠する複数のAPI仕様を、ネットワークを介して外部から収集して学習データ抽出部20に出力する(ステップS6)。
 図9は、API情報収集部310で収集されたAPI仕様の例を示す図である。図9の左から、「設計ガイドラインの項目」、「説明する文字列」、「文字列の場所」、「ラベル」、及び「ラベルの場所」である。
 図9に示す「設計ガイドラインの項目」、「説明する文字列」、及「ラベル」の組みが学習データを構成する。「文字列の場所」及び「ラベルの場所」は、それぞれの情報が存在するAPI仕様書内の場所を表す情報であり無くても構わない。
 API情報収集部310は、準拠対象とする設計ガイドラインの各項目(例えば、用途に応じたHTTPメソッドの使い分け基準)に対し、同一の規定を有する他の設計ガイドラインに従う複数のAPI仕様(Swaggerファイル)あるいは当該API仕様を識別するための情報(例えばURI)を収集する。API情報収集部310で収集された情報は、学習データ抽出部20に出力されるので、学習データを増やすことができる。
 このように本実施形態に係る準拠性判定装置300は、設計ガイドラインの各項目と同一の規定を有する他の設計ガイドラインに準拠する複数のAPI仕様を、ネットワークを介して外部から収集して学習データ抽出部20に出力する。これにより、学習データの数を増やすことができ、識別関数の精度を向上させることができる。
 以上説明したように本実施形態に係る準拠性判定装置100,200,300によれば、固定的な判定規則を予め用意することなく設計ガイドラインへの準拠性を判定できる準拠性判定装置及びその方法を提供することができる。
 なお、準拠性判定装置300(図7)は、準拠性判定装置100(図1)がAPI情報収集部310を備える例で説明したがこの例に限られない。準拠性判定装置200(図5)がAPI情報収集部310を備えるように構成しても良い。
 このように、本発明はここでは記載していない様々な実施形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
100,200,300:準拠性判定装置
10:API仕様記憶部
20:学習データ抽出部
30:識別関数生成部
40:準拠性判定部
210:仕様修正部
310:API情報収集部

Claims (6)

  1.  設計ガイドラインで示された規定に準拠したアプリケーションプログラミングインターフェース仕様が記憶されたAPI仕様記憶部と、
     前記アプリケーションプログラミングインターフェース仕様の各項目を説明する文字列と、当該文字列に対応するラベルとを組みにした学習データを抽出する学習データ抽出部と、
     前記学習データを取得し、外部から入力されるAPI仕様情報の各項目が前記設計ガイドラインに準拠するか否かを判定する識別関数を、機械学習によって生成する識別関数生成部と、
     前記API仕様情報から前記設計ガイドラインの項目ごとに対応する前記文字列と前記ラベルを組みにした試験データを抽出し、当該試験データを前記識別関数に入力し、当該試験データが前記設計ガイドラインに準拠しているか否かを判定する準拠性判定部と
     を備えることを特徴とする準拠性判定装置。
  2.  前記設計ガイドラインに準拠していないと判定された前記API仕様情報を、前記識別関数を用いて、前記設計ガイドラインに準拠する仕様に修正する仕様修正部を
     備えることを特徴とする請求項1に記載の準拠性判定装置。
  3.  前記設計ガイドラインの各項目と同一の規定を有する他の設計ガイドラインに準拠する複数の前記アプリケーションプログラミングインターフェース仕様を、ネットワークを介して外部から収集して前記学習データ抽出部に出力するAPI情報収集部を
     備えることを特徴とする請求項1又は2に記載の準拠性判定装置。
  4.  準拠性判定装置が実行する準拠性判定方法であって、
     アプリケーションプログラミングインターフェース仕様の各項目を説明する文字列と、当該文字列に対応するラベルとを組みにした学習データを抽出する学習データ抽出ステップと、
     前記学習データを取得し、外部から入力されるAPI仕様情報の各項目が設計ガイドラインに準拠するか否かを判定する識別関数を、機械学習によって生成する識別関数生成ステップと、
     前記API仕様情報から前記設計ガイドラインの項目ごとに対応する前記文字列と前記ラベルを組みにした試験データを抽出し、当該試験データを前記識別関数に入力し、当該試験データが前記設計ガイドラインに準拠しているか否かを判定するする準拠性判定ステップと
     を行うことを特徴とする準拠性判定方法。
  5.  前記設計ガイドラインに準拠していないと判定された前記API仕様情報を、前記識別関数を用いて、前記設計ガイドラインに準拠する仕様に修正する仕様修正ステップを
     行うことを特徴とする請求項4に記載の準拠性判定方法。
  6.  前記設計ガイドラインの各項目と同一の項目を有する他の設計ガイドラインに準拠する複数の前記アプリケーションプログラミングインターフェース仕様を、ネットワークを介して外部から収集するAPI情報収集ステップを
     行うことを特徴とする請求項4又は5に記載の準拠性判定方法。
     
PCT/JP2020/000937 2019-01-29 2020-01-15 準拠性判定装置及びその方法 WO2020158374A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/423,055 US20220101337A1 (en) 2019-01-29 2020-01-15 Compliance determination device, and method therefor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-012682 2019-01-29
JP2019012682A JP7111972B2 (ja) 2019-01-29 2019-01-29 準拠性判定装置及びその方法

Publications (1)

Publication Number Publication Date
WO2020158374A1 true WO2020158374A1 (ja) 2020-08-06

Family

ID=71842143

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/000937 WO2020158374A1 (ja) 2019-01-29 2020-01-15 準拠性判定装置及びその方法

Country Status (3)

Country Link
US (1) US20220101337A1 (ja)
JP (1) JP7111972B2 (ja)
WO (1) WO2020158374A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018142271A (ja) * 2017-02-28 2018-09-13 日本電信電話株式会社 Api規約チェック装置、api規約チェック方法、およびプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035841B2 (en) * 2002-07-18 2006-04-25 Xerox Corporation Method for automatic wrapper repair
US7512553B2 (en) * 2003-12-05 2009-03-31 International Business Machines Corporation System for automated part-number mapping
US8347214B2 (en) * 2005-03-09 2013-01-01 Cisco Technology, Inc. Automated interface-specification generation for enterprise architectures
US8065662B1 (en) * 2007-03-30 2011-11-22 Oracle America, Inc. Compatibility testing of an application programming interface
US20170142156A1 (en) * 2015-11-12 2017-05-18 Toyota Infotechnology Center Usa, Inc. Application Assurance for Open Platform In-Vehicle Infotainment System
US20170235796A1 (en) * 2016-02-16 2017-08-17 Taleris Global Llp Interrelation of Multiple Data Streams
US10666753B2 (en) * 2016-11-02 2020-05-26 The Bank Of New York Mellon Enhancing API messages
US10649978B2 (en) * 2017-11-08 2020-05-12 International Business Machines Corporation Preview processing and automatic correction of bulk data for software as a service applications
US10733675B2 (en) * 2017-11-09 2020-08-04 Wolters Kluwer Elm Solutions, Inc. Accuracy and speed of automatically processing records in an automated environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018142271A (ja) * 2017-02-28 2018-09-13 日本電信電話株式会社 Api規約チェック装置、api規約チェック方法、およびプログラム

Also Published As

Publication number Publication date
JP2020122999A (ja) 2020-08-13
US20220101337A1 (en) 2022-03-31
JP7111972B2 (ja) 2022-08-03

Similar Documents

Publication Publication Date Title
JP5756386B2 (ja) 動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援方法、装置、およびプログラム
WO2015143970A1 (zh) 一种基于二维码的信息采集系统及其方法
JP2012083951A (ja) 情報処理装置、情報処理方法及びプログラム
CN105808701B (zh) 实现表单自动化验证及多系统间通讯的方法及系统
KR20190095099A (ko) 거래 시스템 에러 검출 방법, 장치, 저장 매체 및 컴퓨터 장치
US10572566B2 (en) Image quality independent searching of screenshots of web content
Shatnawi et al. Recovering architectural variability of a family of product variants
JP6440895B2 (ja) ソフトウェア分析装置及びソフトウェア分析方法
JP5949222B2 (ja) 運用管理支援装置、方法及びプログラム
JP2017041171A (ja) テストシナリオ生成支援装置およびテストシナリオ生成支援方法
US11868708B2 (en) Method and system for labeling and organizing data for summarizing and referencing content via a communication network
WO2020158374A1 (ja) 準拠性判定装置及びその方法
CN111158973B (zh) 一种web应用动态演化监测方法
JP5576570B2 (ja) 業務仕様からワークフローを生成する方法、プログラム及びシステム
JP5690657B2 (ja) プログラムテスト支援装置、プログラムテスト支援方法、プログラムテスト支援プログラム
JP5973091B2 (ja) 開発支援システム
JP5253788B2 (ja) 画像認識装置、画像認識プログラムおよび画像認識方法
JP5758311B2 (ja) テストコード生成装置、テストコード生成方法、テストコード生成プログラム
JP5443788B2 (ja) 正式名称判定システム及び正式名称判定プログラム
JP7126808B2 (ja) 情報処理装置および情報処理装置用プログラム
JP6111150B2 (ja) ソースコード解析装置、ソースコード解析方法、及びプログラム
WO2022180815A1 (ja) 情報処理プログラム、情報処理方法及び情報処理装置
JP2013161182A (ja) テスト項目生成装置、テスト項目生成方法
JP5382303B2 (ja) 情報解析システム、端末装置、サーバ装置、情報解析方法、及びプログラム
JP6062735B2 (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法、ソフトウェア開発支援プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20749144

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20749144

Country of ref document: EP

Kind code of ref document: A1