【手続補正書】
【提出日】平成30年5月18日(2018.5.18)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０１１５
【補正方法】変更
【補正の内容】
【０１１５】
本発明を、例示的な実施形態を参照しながら具体的に図示・説明したが、当業者であれば、添付の特許請求の範囲により包含される本発明の範囲を逸脱することなく形態や細部に様々な変更を施せることを理解するであろう。
なお、本発明は、態様として以下の内容を含む。
〔態様１〕
デザインパターンを特定する方法であって、
複数のファイルのそれぞれについての複数のアーチファクトを有するデータベースにアクセスする過程と、
前記複数のファイルのうちの第１のファイルについての、前記複数のアーチファクトのうちの少なくとも１つに基づいて、デザインパターンを自動的に特定する過程と、
を備える、方法。
〔態様２〕
態様１に記載の方法において、前記デザインパターンが、前記第１のファイル内のものである、方法。
〔態様３〕
態様１に記載の方法において、前記デザインパターンを自動的に特定する過程が、前記デザインパターンの前記特定を、前記複数のファイルのうちの第２のファイルについての、前記複数のアーチファクトのうちの少なくとも１つにも基づかせることを含み、前記第１のファイルおよび前記第２のファイルが、いずれも同じプロジェクトに属する、方法。
〔態様４〕
態様３に記載の方法において、前記デザインパターンを自動的に特定する過程が、前記第１のファイルについての、前記複数のアーチファクトのうちの前記少なくとも１つと、前記第２のファイルについての、前記複数のアーチファクトのうちの前記少なくとも１つとを、前記デザインパターンを表す予め特定されたパターンに照合することを含む、方法。
〔態様５〕
態様４に記載の方法において、前記デザインパターンが、前記第１のファイルと前記第２のファイルとの間のインターフェースに関するものである、方法。
〔態様６〕
態様１に記載の方法において、前記デザインパターンが、欠陥または修復である、方法。
〔態様７〕
態様１に記載の方法において、前記デザインパターンが、機能または付加拡張機能である、方法。
〔態様８〕
態様１に記載の方法において、前記デザインパターンが、予め特定されたプログラム断片である、方法。
〔態様９〕
態様１に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つに基づいて、前記デザインパターンを自動的に特定する過程が、前記複数のアーチファクトのうちの前記少なくとも１つにおいて、欠陥または修復を表す文字列を探し出すことを含む、方法。
〔態様１０〕
態様９に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つが、開発中アーチファクトである、方法。
〔態様１１〕
態様１に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つに基づいて、前記デザインパターンを自動的に特定する過程が、前記複数のアーチファクトのうちの前記少なくとも１つにおいて、機能または付加拡張機能を表す文字列を探し出すことを含む、方法。
〔態様１２〕
態様１１に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つが、開発中アーチファクトである、方法。
〔態様１３〕
態様１に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つに基づいて、前記デザインパターンを自動的に特定する過程が、前記複数のアーチファクトのうちの前記少なくとも１つを、前記デザインパターンを表す予め特定されたパターンに照合することを含む、方法。
〔態様１４〕
態様１に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つが、それぞれ静的アーチファクトである、方法。
〔態様１５〕
態様１に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つが、それぞれ動的アーチファクトである、方法。
〔態様１６〕
態様１に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つが、それぞれ導出アーチファクトである、方法。
〔態様１７〕
態様１に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つが、それぞれメタデータアーチファクトである、方法。
〔態様１８〕
態様１に記載の方法において、さらに、
前記デザインパターンについての識別子を前記データベースに記憶する過程、
を備える、方法。
〔態様１９〕
態様１８に記載の方法において、前記デザインパターンについての識別子を記憶する過程が、前記第１のファイルについての、前記複数のアーチファクトのうちの少なくとも１つから得られた文字列を用いて、前記デザインパターンについてのラベルを記憶することを含む、方法。
〔態様２０〕
態様２に記載の方法において、さらに、
前記第１のファイルにおいて、前記デザインパターンに対応するプログラム断片を見つけ出す過程、
を備える、方法。
〔態様２１〕
態様２０に記載の方法において、前記第１のファイルが、バイナリコードフォーマットである、方法。
〔態様２２〕
態様２０に記載の方法において、前記第１のファイルが、ソースコードフォーマットである、方法。
〔態様２３〕
態様２０に記載の方法において、前記第１のファイルが、中間表現（ＩＲ）フォーマットである、方法。
〔態様２４〕
デザインパターンを特定する方法であって、
複数のアーチファクトを有するデータベースにアクセスする過程と、
前記複数のアーチファクトをクラスタ化する過程と、
前記クラスタ化から、これまで特定されていなかったデザインパターンを、少なくとも１つの予め特定されたデザインパターンに基づいて特定する過程と、
を備える、方法。
〔態様２５〕
態様２４に記載の方法において、前記これまでに特定されていなかったデザインパターンと前記少なくとも１つの予め特定されたデザインパターンとが、同じデザインパターンである、方法。
〔態様２６〕
態様２４に記載の方法において、前記予め特定されたデザインパターンが、欠陥である、方法。
〔態様２７〕
態様２６に記載の方法において、さらに、
予め特定された前記欠陥に対応付けられた少なくとも１つの修復を特定する過程、
を備える、方法。
〔態様２８〕
態様２４に記載の方法において、前記複数のアーチファクトが、複数の開発中アーチファクトを含み、当該方法が、さらに、
クラスタ化された前記複数のアーチファクトに対応する前記複数の開発中アーチファクトから、当該開発中アーチファクトにおける文字、単語またはフレーズの出現に基づいて語義上意味を抽出する過程、
を備える、方法。
〔態様２９〕
態様２４に記載の方法において、前記複数のアーチファクトをクラスタ化する過程が、機械学習を用いることを含む、方法。
〔態様３０〕
態様２４に記載の方法において、前記複数のアーチファクトをクラスタ化する過程が、深層学習を用いることを含む、方法。
〔態様３１〕
態様２４に記載の方法において、前記複数のアーチファクトをクラスタ化する過程が、オートエンコーダを用いることを含む、方法。
〔態様３２〕
態様２４に記載の方法において、さらに、
前記複数のアーチファクトの前記クラスタ化のための訓練を提供する過程、
を備え、前記訓練が、ソフトウェアファイルの第１のバージョンと当該ソフトウェアファイルの第２のバージョンとの間の少なくとも１つの違いを用いることを含む、方法。
〔態様３３〕
態様３２に記載の方法において、前記少なくとも１つの違いが、欠陥または修復に対応する、方法。
〔態様３４〕
態様３３に記載の方法において、前記欠陥がセキュリティ脆弱性であるか、あるいは、前記修復がパッチである、方法。
〔態様３５〕
態様３２に記載の方法において、前記少なくとも１つの違いが、機能または付加拡張機能に対応する、方法。
〔態様３６〕
デザインパターンを特定するシステムであって、
複数のファイルのそれぞれについての複数のアーチファクトを有する少なくとも１つの記憶装置と、
前記複数のファイルのうちの第１のファイルについての、前記複数のアーチファクトのうちの少なくとも１つに基づいて、デザインパターンを自動的に特定するように構成されたプロセッサと、
を備える、システム。
〔態様３７〕
態様３６に記載のシステムにおいて、さらに、前記プロセッサを備え、当該プロセッサが、さらに、前記第１のファイルにおいて、前記デザインパターンを組み込むプログラム断片を見つけ出すように構成されている、システム。
〔態様３８〕
態様３６に記載のシステムにおいて、前記デザインパターンを自動的に特定することが、前記デザインパターンの前記特定を、前記複数のファイルのうちの第２のファイルについての、前記複数のアーチファクトのうちの少なくとも１つにも基づかせることを含み、前記第１のファイルおよび前記第２のファイルが、いずれも同じプロジェクトに属する、システム。
〔態様３９〕
態様３６に記載のシステムにおいて、前記デザインパターンが、欠陥または修復である、システム。
〔態様４０〕
態様３６に記載のシステムにおいて、前記デザインパターンが、機能または付加拡張機能である、システム。
〔態様４１〕
態様３６に記載のシステムにおいて、前記デザインパターンが、予め特定されたプログラム断片である、システム。
〔態様４２〕
デザインパターンを特定するシステムであって、
複数のアーチファクトを有する少なくとも１つの記憶装置と、
前記複数のアーチファクトをクラスタ化するように、かつ、当該クラスタ化から、これまで特定されていなかったデザインパターンを、少なくとも１つの予め特定されたデザインパターンに基づいて特定するように構成されたプロセッサと、
を備える、システム。
〔態様４３〕
態様４２に記載のシステムにおいて、前記予め特定されたデザインパターンが、欠陥である、システム。
〔態様４４〕
態様４２に記載のシステムにおいて、さらに、
予め特定された前記欠陥に対応付けられた少なくとも１つの修復を特定すること、
を備える、システム。
〔態様４５〕
態様４２に記載のシステムにおいて、前記複数のアーチファクトをクラスタ化することが、機械学習を用いることを含む、システム。
〔態様４６〕
態様４２に記載のシステムにおいて、前記複数のアーチファクトをクラスタ化することが、深層学習を用いることを含む、システム。
〔態様４７〕
実行可能なプログラムが記憶された、非過渡的なコンピュータ読取り可能な媒体であって、前記プログラムが、処理装置に：
複数のファイルのそれぞれについての複数のアーチファクトを有するデータベースにアクセスする手順；および
前記複数のファイルのうちの第１のファイルについての、前記複数のアーチファクトのうちの少なくとも１つに基づいて、デザインパターンを自動的に特定する手順；
を実行させる、非過渡的なコンピュータ読取り可能な媒体。
〔態様４８〕
実行可能なプログラムが記憶された、非過渡的なコンピュータ読取り可能な媒体であって、前記プログラムが、処理装置に：
複数のアーチファクトを有するデータベースにアクセスする手順；
前記複数のアーチファクトをクラスタ化する手順；および
前記クラスタ化から、これまで特定されていなかったデザインパターンを、少なくとも１つの予め特定されたデザインパターンに基づいて特定する手順；
を実行させる、非過渡的なコンピュータ読取り可能な媒体。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
デザインパターンを特定する方法であって、
複数のファイルのそれぞれについての複数のアーチファクトを有するデータベースにアクセスする過程と、
前記複数のファイルのうちの第１のファイルについての、前記複数のアーチファクトのうちの少なくとも１つに基づいて、デザインパターンを自動的に特定する過程と、
を備える、方法。
【請求項２】
請求項１に記載の方法において、前記デザインパターンが、前記第１のファイル内のものである、方法。
【請求項３】
請求項１に記載の方法において、前記デザインパターンを自動的に特定する過程が、前記デザインパターンの前記特定を、前記複数のファイルのうちの第２のファイルについての、前記複数のアーチファクトのうちの少なくとも１つにも基づかせることを含み、前記第１のファイルおよび前記第２のファイルが、いずれも同じプロジェクトに属する、方法。
【請求項４】
請求項３に記載の方法において、前記デザインパターンを自動的に特定する過程が、前記第１のファイルについての、前記複数のアーチファクトのうちの前記少なくとも１つと、前記第２のファイルについての、前記複数のアーチファクトのうちの前記少なくとも１つとを、前記デザインパターンを表す予め特定されたパターンに照合することを含む、方法。
【請求項５】
請求項４に記載の方法において、前記デザインパターンが、前記第１のファイルと前記第２のファイルとの間のインターフェースに関するものである、方法。
【請求項６】
請求項１に記載の方法において、前記デザインパターンが、欠陥または修復である、方法。
【請求項７】
請求項１に記載の方法において、前記デザインパターンが、機能または付加拡張機能である、方法。
【請求項８】
請求項１に記載の方法において、前記デザインパターンが、予め特定されたプログラム断片である、方法。
【請求項９】
請求項１に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つに基づいて、前記デザインパターンを自動的に特定する過程が、前記複数のアーチファクトのうちの前記少なくとも１つにおいて、欠陥または修復を表す文字列を探し出すことを含む、方法。
【請求項１０】
請求項９に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つが、開発中アーチファクトである、方法。
【請求項１１】
請求項１に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つに基づいて、前記デザインパターンを自動的に特定する過程が、前記複数のアーチファクトのうちの前記少なくとも１つにおいて、機能または付加拡張機能を表す文字列を探し出すことを含む、方法。
【請求項１２】
請求項１１に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つが、開発中アーチファクトである、方法。
【請求項１３】
請求項１に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つに基づいて、前記デザインパターンを自動的に特定する過程が、前記複数のアーチファクトのうちの前記少なくとも１つを、前記デザインパターンを表す予め特定されたパターンに照合することを含む、方法。
【請求項１４】
請求項１に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つが、それぞれ静的アーチファクトである、方法。
【請求項１５】
請求項１に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つが、それぞれ動的アーチファクトである、方法。
【請求項１６】
請求項１に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つが、それぞれ導出アーチファクトである、方法。
【請求項１７】
請求項１に記載の方法において、前記複数のアーチファクトのうちの前記少なくとも１つが、それぞれメタデータアーチファクトである、方法。
【請求項１８】
請求項１に記載の方法において、さらに、
前記デザインパターンについての識別子を前記データベースに記憶する過程、
を備える、方法。
【請求項１９】
請求項１８に記載の方法において、前記デザインパターンについての識別子を記憶する過程が、前記第１のファイルについての、前記複数のアーチファクトのうちの少なくとも１つから得られた文字列を用いて、前記デザインパターンについてのラベルを記憶することを含む、方法。
【請求項２０】
請求項２に記載の方法において、さらに、
前記第１のファイルにおいて、前記デザインパターンに対応するプログラム断片を見つけ出す過程、
を備える、方法。
【請求項２１】
請求項２０に記載の方法において、前記第１のファイルが、バイナリコードフォーマットである、方法。
【請求項２２】
請求項２０に記載の方法において、前記第１のファイルが、ソースコードフォーマットである、方法。
【請求項２３】
請求項２０に記載の方法において、前記第１のファイルが、中間表現（ＩＲ）フォーマットである、方法。
【請求項２４】
デザインパターンを特定する方法であって、
複数のアーチファクトを有するデータベースにアクセスする過程と、
前記複数のアーチファクトをクラスタ化する過程と、
前記クラスタ化から、これまで特定されていなかったデザインパターンを、少なくとも１つの予め特定されたデザインパターンに基づいて特定する過程と、
を備える、方法。
【請求項２５】
請求項２４に記載の方法において、前記これまでに特定されていなかったデザインパターンと前記少なくとも１つの予め特定されたデザインパターンとが、同じデザインパターンである、方法。
【請求項２６】
請求項２４に記載の方法において、前記予め特定されたデザインパターンが、欠陥である、方法。
【請求項２７】
請求項２６に記載の方法において、さらに、
予め特定された前記欠陥に対応付けられた少なくとも１つの修復を特定する過程、
を備える、方法。
【請求項２８】
請求項２４に記載の方法において、前記複数のアーチファクトが、複数の開発中アーチファクトを含み、当該方法が、さらに、
クラスタ化された前記複数のアーチファクトに対応する前記複数の開発中アーチファクトから、当該開発中アーチファクトにおける文字、単語またはフレーズの出現に基づいて語義上意味を抽出する過程、
を備える、方法。
【請求項２９】
請求項２４に記載の方法において、前記複数のアーチファクトをクラスタ化する過程が、機械学習を用いることを含む、方法。
【請求項３０】
請求項２４に記載の方法において、前記複数のアーチファクトをクラスタ化する過程が、深層学習を用いることを含む、方法。
【請求項３１】
請求項２４に記載の方法において、前記複数のアーチファクトをクラスタ化する過程が、オートエンコーダを用いることを含む、方法。
【請求項３２】
請求項２４に記載の方法において、さらに、
前記複数のアーチファクトの前記クラスタ化のための訓練を提供する過程、
を備え、前記訓練が、ソフトウェアファイルの第１のバージョンと当該ソフトウェアファイルの第２のバージョンとの間の少なくとも１つの違いを用いることを含む、方法。
【請求項３３】
請求項３２に記載の方法において、前記少なくとも１つの違いが、欠陥または修復に対応する、方法。
【請求項３４】
請求項３３に記載の方法において、前記欠陥がセキュリティ脆弱性であるか、あるいは、前記修復がパッチである、方法。
【請求項３５】
請求項３２に記載の方法において、前記少なくとも１つの違いが、機能または付加拡張機能に対応する、方法。
【請求項３６】
デザインパターンを特定するシステムであって、
複数のファイルのそれぞれについての複数のアーチファクトを有する少なくとも１つの記憶装置と、
前記複数のファイルのうちの第１のファイルについての、前記複数のアーチファクトのうちの少なくとも１つに基づいて、デザインパターンを自動的に特定するように構成されたプロセッサと、
を備える、システム。
【請求項３７】
請求項３６に記載のシステムにおいて、さらに、前記プロセッサを備え、当該プロセッサが、さらに、前記第１のファイルにおいて、前記デザインパターンを組み込むプログラム断片を見つけ出すように構成されている、システム。
【請求項３８】
請求項３６に記載のシステムにおいて、前記デザインパターンを自動的に特定することが、前記デザインパターンの前記特定を、前記複数のファイルのうちの第２のファイルについての、前記複数のアーチファクトのうちの少なくとも１つにも基づかせることを含み、前記第１のファイルおよび前記第２のファイルが、いずれも同じプロジェクトに属する、システム。
【請求項３９】
請求項３６に記載のシステムにおいて、前記デザインパターンが、欠陥または修復である、システム。
【請求項４０】
請求項３６に記載のシステムにおいて、前記デザインパターンが、機能または付加拡張機能である、システム。
【請求項４１】
請求項３６に記載のシステムにおいて、前記デザインパターンが、予め特定されたプログラム断片である、システム。
【請求項４２】
デザインパターンを特定するシステムであって、
複数のアーチファクトを有する少なくとも１つの記憶装置と、
前記複数のアーチファクトをクラスタ化するように、かつ、当該クラスタ化から、これまで特定されていなかったデザインパターンを、少なくとも１つの予め特定されたデザインパターンに基づいて特定するように構成されたプロセッサと、
を備える、システム。
【請求項４３】
請求項４２に記載のシステムにおいて、前記予め特定されたデザインパターンが、欠陥である、システム。
【請求項４４】
請求項４３に記載のシステムにおいて、前記プロセッサが、さらに、予め特定された前記欠陥に対応付けられた少なくとも１つの修復を特定するように構成されている、システム。
【請求項４５】
請求項４２に記載のシステムにおいて、前記複数のアーチファクトをクラスタ化することが、機械学習を用いることを含む、システム。
【請求項４６】
請求項４２に記載のシステムにおいて、前記複数のアーチファクトをクラスタ化することが、深層学習を用いることを含む、システム。
【請求項４７】
実行可能なプログラムが記憶された、非過渡的なコンピュータ読取り可能な媒体であって、前記プログラムが、処理装置に：
複数のファイルのそれぞれについての複数のアーチファクトを有するデータベースにアクセスする手順；および
前記複数のファイルのうちの第１のファイルについての、前記複数のアーチファクトのうちの少なくとも１つに基づいて、デザインパターンを自動的に特定する手順；
を実行させる、非過渡的なコンピュータ読取り可能な媒体。
【請求項４８】
実行可能なプログラムが記憶された、非過渡的なコンピュータ読取り可能な媒体であって、前記プログラムが、処理装置に：
複数のアーチファクトを有するデータベースにアクセスする手順；
前記複数のアーチファクトをクラスタ化する手順；および
前記クラスタ化から、これまで特定されていなかったデザインパターンを、少なくとも１つの予め特定されたデザインパターンに基づいて特定する手順；
を実行させる、非過渡的なコンピュータ読取り可能な媒体。