【手続補正書】
【提出日】平成30年5月18日(2018.5.18)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０１１８
【補正方法】変更
【補正の内容】
【０１１８】
本発明を、例示的な実施形態を参照しながら具体的に図示・説明したが、当業者であれば、添付の特許請求の範囲により包含される本発明の範囲を逸脱することなく形態や細部に様々な変更を施せることを理解するであろう。
なお、本発明は、態様として以下の内容を含む。
〔態様１〕
ソフトウェアを特定する方法であって、
ソフトウェアファイルを取得する過程と、
前記ソフトウェアファイルについての複数のアーチファクトを決定する過程と、
複数の参照ソフトウェアファイルのそれぞれについての複数の参照アーチファクトを記憶するデータベースにアクセスする過程と、
前記複数のアーチファクトを前記複数の参照アーチファクトと比較する過程と、
前記複数のアーチファクトとマッチする前記複数の参照アーチファクトを有する前記参照ソフトウェアファイルを特定することにより、前記ソフトウェアファイルを特定する過程と、
を備える、方法。
〔態様２〕
態様１に記載の方法において、前記複数のアーチファクトが、コールグラフ、制御フローグラフ、ｕｓｅ−ｄｅｆチェイン、ｄｅｆ−ｕｓｅチェイン、支配木、基本ブロック、変数、定数、ブランチセマンティック、およびプロトコルのうちの少なくとも１つを含む、方法。
〔態様３〕
態様１に記載の方法において、前記複数のアーチファクトが、システムコールトレースおよび実行トレースのうちの少なくとも１つを含む、方法。
〔態様４〕
態様１に記載の方法において、前記複数のアーチファクトが、ループ不変条件、型情報、Ｚ言語、およびラベル遷移体系表現のうちの少なくとも１つを含む、方法。
〔態様５〕
態様１に記載の方法において、前記複数のアーチファクトが、インラインコードコメント、コミット履歴、マニュアルファイル、および共通脆弱性識別子ソース登録のうちの任意のものから決定される少なくとも１つのアーチファクトを含む、方法。
〔態様６〕
態様１に記載の方法において、前記複数のアーチファクトが、それぞれグラフアーチファクトである、方法。
〔態様７〕
態様１に記載の方法において、前記複数のアーチファクトが、それぞれメタデータアーチファクトである、方法。
〔態様８〕
態様１に記載の方法において、前記複数の参照アーチファクトは、当該複数の参照アーチファクトと前記複数のアーチファクトとの間に少なくともファジーマッチが存在する場合に、前記複数のアーチファクトとマッチする、方法。
〔態様９〕
態様１に記載の方法において、前記ソフトウェアファイルについての前記複数のアーチファクトを決定する過程が、前記ソフトウェアファイルを中間表現に変換すること、および当該中間表現から前記複数のアーチファクトのうちの少なくとも１つを決定することを含む、方法。
〔態様１０〕
態様１に記載の方法において、さらに、
前記ソフトウェアファイルのより新しいバージョンが存在するか否かを、特定された前記参照ソフトウェアファイルの前記参照アーチファクトの少なくとも１つを分析することによって判定する過程、
を備える、方法。
〔態様１１〕
態様１０に記載の方法において、さらに、
前記ソフトウェアファイルの前記より新しいバージョンを自動的に提供する過程、
を備える、方法。
〔態様１２〕
態様１に記載の方法において、さらに、
前記ソフトウェアファイルについてのパッチが存在するか否かを、特定された前記参照ソフトウェアファイルの前記参照アーチファクトの少なくとも１つを分析することによって判定する過程、
を備える、方法。
〔態様１３〕
態様１２に記載の方法において、さらに、
前記パッチを前記ソフトウェアファイルに自動的に適用する過程、
を備える、方法。
〔態様１４〕
態様１２に記載の方法において、さらに、
前記ソフトウェアファイルにおける欠陥の修復に対応する前記パッチの修復部を決定するように、前記パッチを分析する過程と、
前記パッチの前記修復部のみを前記ソフトウェアファイルに適用する過程と、
を備える、方法。
〔態様１５〕
態様１４に記載の方法において、前記パッチを分析する過程が、前記パッチを中間表現に変換すること、および当該中間表現から少なくとも１つのパッチアーチファクトを決定することを含む、方法。
〔態様１６〕
態様１に記載の方法において、さらに、
前記ソフトウェアファイルにおいて欠陥が存在するか否かを、特定された前記参照ソフトウェアファイルの前記参照アーチファクトの少なくとも１つ、および、前記ソフトウェアファイルの前記アーチファクトの少なくとも１つを分析することによって判定する過程、
を備える、方法。
〔態様１７〕
態様１６に記載の方法において、さらに、
前記ソフトウェアファイルにおける前記欠陥を自動的に修復する過程、
を備える、方法。
〔態様１８〕
態様１７に記載の方法において、前記欠陥を自動的に修復する過程が、ソースコードのブロックをソースコードの修復ブロックに置き換えることを含む、方法。
〔態様１９〕
態様１７に記載の方法において、前記欠陥を自動的に修復する過程が、バイナリコードのブロックをバイナリコードの修復ブロックに置き換えることを含む、方法。
〔態様２０〕
態様１７に記載の方法において、前記欠陥を自動的に修復する過程が、前記ソフトウェアファイルにおける中間表現のブロックを中間表現の修復ブロックに置き換えることを含む、方法。
〔態様２１〕
少なくとも１つのソフトウェアファイルを取得する過程と、
前記少なくとも１つのソフトウェアファイルについての複数のアーチファクトを決定する過程と、
複数の参照アーチファクトを記憶するデータベースにアクセスする過程と、
前記少なくとも１つのソフトウェアファイルについてのプログラム断片を、当該プログラム断片に対応する前記複数のアーチファクトと当該プログラム断片に対応する前記複数の参照アーチファクトとを照合することによって特定する過程と、
を備える、方法。
〔態様２２〕
態様２１に記載の方法において、前記プログラム断片が、欠陥に対応させるために、前記データベースにおいて特定済みである、方法。
〔態様２３〕
態様２１に記載の方法において、前記プログラム断片が、前記少なくとも１つのソフトウェアファイルにおける欠陥に対応する、方法。
〔態様２４〕
態様２１に記載の方法において、前記プログラム断片が、バグ、セキュリティ脆弱性、およびプロトコル不備からなる群から選択される欠陥に対応する、方法。
〔態様２５〕
態様２３に記載の方法において、さらに、
前記少なくとも１つのソフトウェアファイルにおける前記欠陥を自動的に修復する過程、
を備える、方法。
〔態様２６〕
態様２５に記載の方法において、前記欠陥を自動的に修復する過程が、欠陥プログラム断片を置き換えるために修復プログラム断片を提供することを含む、方法。
〔態様２７〕
態様２３に記載の方法において、さらに、
前記欠陥を修復するための少なくとも１つの修復選択肢をユーザに提示する過程、
を備える、方法。
〔態様２８〕
態様２７に記載の方法において、さらに、
前記ユーザに提示された前記少なくとも１つの修復選択肢を順序付ける過程、
を備える、方法。
〔態様２９〕
態様２８に記載の方法において、前記少なくとも１つの修復選択肢の前記順序付けが、前記ユーザにより選択された過去の少なくとも１つの修復選択肢に基づくものである、方法。
〔態様３０〕
態様２８に記載の方法において、前記少なくとも１つの修復選択肢の前記順序付けが、前記修復選択肢のそれぞれについての成功の確率に基づくものである、方法。
〔態様３１〕
態様２１に記載の方法において、前記プログラム断片が、機能に対応させるために、前記データベースにおいて特定済みである、方法。
〔態様３２〕
態様３１に記載の方法において、さらに、
前記機能を、付加拡張機能を用いて自動的に強化させる過程、
を備える、方法。
〔態様３３〕
態様２１に記載の方法において、前記複数のアーチファクトが、グラフアーチファクトを含む、方法。
〔態様３４〕
態様２１に記載の方法において、前記複数のアーチファクトが、開発中アーチファクトを含む、方法。
〔態様３５〕
態様２１に記載の方法において、前記複数のアーチファクトが、それぞれメタデータアーチファクトである、方法。
〔態様３６〕
態様２１に記載の方法において、前記少なくとも１つのソフトウェアファイルについての前記複数のアーチファクトを決定する過程が、前記少なくとも１つのソフトウェアファイルを中間表現に変換すること、および当該中間表現から前記複数のアーチファクトのうちの少なくとも１つを決定することを含む、方法。
〔態様３７〕
態様２１に記載の方法において、前記少なくとも１つのソフトウェアファイルが、それぞれソースコードフォーマットである、方法。
〔態様３８〕
態様２１に記載の方法において、前記少なくとも１つのソフトウェアファイルが、それぞれバイナリコードフォーマットである、方法。
〔態様３９〕
態様２１に記載の方法において、前記少なくとも１つのソフトウェアファイルが、ソフトウェアプロジェクト内のファイルである、方法。
〔態様４０〕
ソフトウェアを特定するシステムであって、
ソフトウェアファイルを有するソースと通信することが可能なインターフェースと、
複数の参照ソフトウェアファイルのそれぞれについての複数の参照アーチファクトを記憶する記憶装置と、
前記インターフェース及び前記記憶装置に通信可能に接続されたプロセッサであって：
前記ソフトウェアファイルが取得されるように；
前記ソフトウェアファイルについての複数のアーチファクトを決定するように；
前記記憶装置内の前記複数の参照アーチファクトにアクセスするように；
前記複数のアーチファクトを前記複数の参照アーチファクトと比較するように；かつ、
前記複数のアーチファクトとマッチした前記複数の参照アーチファクトを有する前記参照ソフトウェアファイルを特定することにより、前記ソフトウェアファイルを特定するように；構成されているプロセッサと、
を備える、システム。
〔態様４１〕
態様４０に記載のシステムにおいて、前記ソフトウェアファイルについての前記複数のアーチファクトを決定することが、前記ソフトウェアファイルを中間表現に変換すること、および当該中間表現から前記複数のアーチファクトのうちの少なくとも１つを決定することを含む、システム。
〔態様４２〕
態様４０に記載のシステムにおいて、さらに、前記プロセッサを備え、当該プロセッサが、さらに、前記ソフトウェアファイルについてのパッチが存在するか否かを、特定された前記参照ソフトウェアファイルの前記参照アーチファクトの少なくとも１つを分析することによって判定するように構成されている、システム。
〔態様４３〕
態様４０に記載のシステムにおいて、さらに、前記プロセッサを備え、当該プロセッサが、さらに、パッチを前記ソフトウェアファイルに自動的に適用するように構成されている、システム。
〔態様４４〕
態様４２に記載のシステムにおいて、さらに、前記プロセッサを備え、当該プロセッサが、さらに；前記ソフトウェアファイルにおける欠陥の修復に対応する前記パッチの修復部を決定するために前記パッチを分析するように；かつ、前記パッチのうちの前記修復部のみを前記ソフトウェアファイルに適用するように；構成されている、システム。
〔態様４５〕
少なくとも１つのソフトウェアファイルを有するソースと通信することが可能なインターフェースと、
複数の参照アーチファクトを記憶する記憶装置と、
前記インターフェース及び前記記憶装置に通信可能に接続されたプロセッサであって：
少なくとも１つのソフトウェアファイルが取得されるように；
前記少なくとも１つのソフトウェアファイルについての複数のアーチファクトを決定するように；
複数の参照アーチファクトを記憶するデータベースにアクセスするように；かつ、
前記少なくとも１つのソフトウェアファイルについてのプログラム断片を、当該プログラム断片に対応する前記複数のアーチファクトと当該プログラム断片に対応する前記複数の参照アーチファクトとを照合することによって特定するように；構成されているプロセッサと、
を備える、システム。
〔態様４６〕
態様４５に記載のシステムにおいて、前記プログラム断片が、欠陥に対応させるために、前記データベースにおいて特定済みである、システム。
〔態様４７〕
態様４５に記載のシステムにおいて、前記プログラム断片が、バグ、セキュリティ脆弱性、およびプロトコル不備からなる群から選択される欠陥に対応する、システム。
〔態様４８〕
態様４５に記載のシステムにおいて、さらに、前記プロセッサを備え、当該プロセッサが、さらに、前記少なくとも１つのソフトウェアファイルにおける前記欠陥を自動的に修復するように構成されている、システム。
〔態様４９〕
実行可能なプログラムが記憶された、非過渡的なコンピュータ読取り可能な媒体であって、前記プログラムが、処理装置に：
ソフトウェアファイルを取得する手順；
前記ソフトウェアファイルについての複数のアーチファクトを決定する手順；
複数の参照ソフトウェアファイルのそれぞれについての複数の参照アーチファクトを記憶するデータベースにアクセスする手順；
前記複数のアーチファクトを前記複数の参照アーチファクトと比較する手順；および
前記複数のアーチファクトとマッチする前記複数の参照アーチファクトを有する前記参照ソフトウェアファイルを特定することにより、前記ソフトウェアファイルを特定する手順；
を実行させる、非過渡的なコンピュータ読取り可能な媒体。
〔態様５０〕
実行可能なプログラムが記憶された、非過渡的なコンピュータ読取り可能な媒体であって、前記プログラムが、処理装置に：
少なくとも１つのソフトウェアファイルを取得する手順；
前記少なくとも１つのソフトウェアファイルについての複数のアーチファクトを決定する手順；
複数の参照アーチファクトを記憶するデータベースにアクセスする手順；および
前記少なくとも１つのソフトウェアファイルについてのプログラム断片を、当該プログラム断片に対応する前記複数のアーチファクトと当該プログラム断片に対応する前記複数の参照アーチファクトとを照合することによって特定する手順；
を実行させる、非過渡的なコンピュータ読取り可能な媒体。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ソフトウェアを特定する方法であって、
ソフトウェアファイルを取得する過程と、
前記ソフトウェアファイルについての複数のアーチファクトを決定する過程と、
複数の参照ソフトウェアファイルのそれぞれについての複数の参照アーチファクトを記憶するデータベースにアクセスする過程と、
前記複数のアーチファクトを前記複数の参照アーチファクトと比較する過程と、
前記複数のアーチファクトとマッチする前記複数の参照アーチファクトを有する前記参照ソフトウェアファイルを特定することにより、前記ソフトウェアファイルを特定する過程と、
を備える、方法。
【請求項２】
請求項１に記載の方法において、前記複数のアーチファクトが、コールグラフ、制御フローグラフ、ｕｓｅ−ｄｅｆチェイン、ｄｅｆ−ｕｓｅチェイン、支配木、基本ブロック、変数、定数、ブランチセマンティック、およびプロトコルのうちの少なくとも１つを含む、方法。
【請求項３】
請求項１に記載の方法において、前記複数のアーチファクトが、システムコールトレースおよび実行トレースのうちの少なくとも１つを含む、方法。
【請求項４】
請求項１に記載の方法において、前記複数のアーチファクトが、ループ不変条件、型情報、Ｚ言語、およびラベル遷移体系表現のうちの少なくとも１つを含む、方法。
【請求項５】
請求項１に記載の方法において、前記複数のアーチファクトが、インラインコードコメント、コミット履歴、マニュアルファイル、および共通脆弱性識別子ソース登録のうちの任意のものから決定される少なくとも１つのアーチファクトを含む、方法。
【請求項６】
請求項１に記載の方法において、前記複数のアーチファクトが、それぞれグラフアーチファクトである、方法。
【請求項７】
請求項１に記載の方法において、前記複数のアーチファクトが、それぞれメタデータアーチファクトである、方法。
【請求項８】
請求項１に記載の方法において、前記複数の参照アーチファクトは、当該複数の参照アーチファクトと前記複数のアーチファクトとの間に少なくともファジーマッチが存在する場合に、前記複数のアーチファクトとマッチする、方法。
【請求項９】
請求項１に記載の方法において、前記ソフトウェアファイルについての前記複数のアーチファクトを決定する過程が、前記ソフトウェアファイルを中間表現に変換すること、および当該中間表現から前記複数のアーチファクトのうちの少なくとも１つを決定することを含む、方法。
【請求項１０】
請求項１に記載の方法において、さらに、
前記ソフトウェアファイルのより新しいバージョンが存在するか否かを、特定された前記参照ソフトウェアファイルの前記参照アーチファクトの少なくとも１つを分析することによって判定する過程、
を備える、方法。
【請求項１１】
請求項１０に記載の方法において、さらに、
前記ソフトウェアファイルの前記より新しいバージョンを自動的に提供する過程、
を備える、方法。
【請求項１２】
請求項１に記載の方法において、さらに、
前記ソフトウェアファイルについてのパッチが存在するか否かを、特定された前記参照ソフトウェアファイルの前記参照アーチファクトの少なくとも１つを分析することによって判定する過程、
を備える、方法。
【請求項１３】
請求項１２に記載の方法において、さらに、
前記パッチを前記ソフトウェアファイルに自動的に適用する過程、
を備える、方法。
【請求項１４】
請求項１２に記載の方法において、さらに、
前記ソフトウェアファイルにおける欠陥の修復に対応する前記パッチの修復部を決定するように、前記パッチを分析する過程と、
前記パッチの前記修復部のみを前記ソフトウェアファイルに適用する過程と、
を備える、方法。
【請求項１５】
請求項１４に記載の方法において、前記パッチを分析する過程が、前記パッチを中間表現に変換すること、および当該中間表現から少なくとも１つのパッチアーチファクトを決定することを含む、方法。
【請求項１６】
請求項１に記載の方法において、さらに、
前記ソフトウェアファイルにおいて欠陥が存在するか否かを、特定された前記参照ソフトウェアファイルの前記参照アーチファクトの少なくとも１つ、および、前記ソフトウェアファイルの前記アーチファクトの少なくとも１つを分析することによって判定する過程、
を備える、方法。
【請求項１７】
請求項１６に記載の方法において、さらに、
前記ソフトウェアファイルにおける前記欠陥を自動的に修復する過程、
を備える、方法。
【請求項１８】
請求項１７に記載の方法において、前記欠陥を自動的に修復する過程が、ソースコードのブロックをソースコードの修復ブロックに置き換えることを含む、方法。
【請求項１９】
請求項１７に記載の方法において、前記欠陥を自動的に修復する過程が、バイナリコードのブロックをバイナリコードの修復ブロックに置き換えることを含む、方法。
【請求項２０】
請求項１７に記載の方法において、前記欠陥を自動的に修復する過程が、前記ソフトウェアファイルにおける中間表現のブロックを中間表現の修復ブロックに置き換えることを含む、方法。
【請求項２１】
少なくとも１つのソフトウェアファイルを取得する過程と、
前記少なくとも１つのソフトウェアファイルについての複数のアーチファクトを決定する過程と、
複数の参照アーチファクトを記憶するデータベースにアクセスする過程と、
前記少なくとも１つのソフトウェアファイルについてのプログラム断片を、当該プログラム断片に対応する前記複数のアーチファクトと当該プログラム断片に対応する前記複数の参照アーチファクトとを照合することによって特定する過程と、
を備える、方法。
【請求項２２】
請求項２１に記載の方法において、前記プログラム断片が、欠陥に対応させるために、前記データベースにおいて特定済みである、方法。
【請求項２３】
請求項２１に記載の方法において、前記プログラム断片が、前記少なくとも１つのソフトウェアファイルにおける欠陥に対応する、方法。
【請求項２４】
請求項２１に記載の方法において、前記プログラム断片が、バグ、セキュリティ脆弱性、およびプロトコル不備からなる群から選択される欠陥に対応する、方法。
【請求項２５】
請求項２３に記載の方法において、さらに、
前記少なくとも１つのソフトウェアファイルにおける前記欠陥を自動的に修復する過程、
を備える、方法。
【請求項２６】
請求項２５に記載の方法において、前記欠陥を自動的に修復する過程が、欠陥プログラム断片を置き換えるために修復プログラム断片を提供することを含む、方法。
【請求項２７】
請求項２３に記載の方法において、さらに、
前記欠陥を修復するための少なくとも１つの修復選択肢をユーザに提示する過程、
を備える、方法。
【請求項２８】
請求項２７に記載の方法において、さらに、
前記ユーザに提示された前記少なくとも１つの修復選択肢を順序付ける過程、
を備える、方法。
【請求項２９】
請求項２８に記載の方法において、前記少なくとも１つの修復選択肢の前記順序付けが、前記ユーザにより選択された過去の少なくとも１つの修復選択肢に基づくものである、方法。
【請求項３０】
請求項２８に記載の方法において、前記少なくとも１つの修復選択肢の前記順序付けが、前記修復選択肢のそれぞれについての成功の確率に基づくものである、方法。
【請求項３１】
請求項２１に記載の方法において、前記プログラム断片が、機能に対応させるために、前記データベースにおいて特定済みである、方法。
【請求項３２】
請求項３１に記載の方法において、さらに、
前記機能を、付加拡張機能を用いて自動的に強化させる過程、
を備える、方法。
【請求項３３】
請求項２１に記載の方法において、前記複数のアーチファクトが、グラフアーチファクトを含む、方法。
【請求項３４】
請求項２１に記載の方法において、前記複数のアーチファクトが、開発中アーチファクトを含む、方法。
【請求項３５】
請求項２１に記載の方法において、前記複数のアーチファクトが、それぞれメタデータアーチファクトである、方法。
【請求項３６】
請求項２１に記載の方法において、前記少なくとも１つのソフトウェアファイルについての前記複数のアーチファクトを決定する過程が、前記少なくとも１つのソフトウェアファイルを中間表現に変換すること、および当該中間表現から前記複数のアーチファクトのうちの少なくとも１つを決定することを含む、方法。
【請求項３７】
請求項２１に記載の方法において、前記少なくとも１つのソフトウェアファイルが、それぞれソースコードフォーマットである、方法。
【請求項３８】
請求項２１に記載の方法において、前記少なくとも１つのソフトウェアファイルが、それぞれバイナリコードフォーマットである、方法。
【請求項３９】
請求項２１に記載の方法において、前記少なくとも１つのソフトウェアファイルが、ソフトウェアプロジェクト内のファイルである、方法。
【請求項４０】
ソフトウェアを特定するシステムであって、
ソフトウェアファイルを有するソースと通信することが可能なインターフェースと、
複数の参照ソフトウェアファイルのそれぞれについての複数の参照アーチファクトを記憶する記憶装置と、
前記インターフェース及び前記記憶装置に通信可能に接続されたプロセッサであって：
前記ソフトウェアファイルが取得されるように；
前記ソフトウェアファイルについての複数のアーチファクトを決定するように；
前記記憶装置内の前記複数の参照アーチファクトにアクセスするように；
前記複数のアーチファクトを前記複数の参照アーチファクトと比較するように；かつ、
前記複数のアーチファクトとマッチした前記複数の参照アーチファクトを有する前記参照ソフトウェアファイルを特定することにより、前記ソフトウェアファイルを特定するように；構成されているプロセッサと、
を備える、システム。
【請求項４１】
請求項４０に記載のシステムにおいて、前記ソフトウェアファイルについての前記複数のアーチファクトを決定することが、前記ソフトウェアファイルを中間表現に変換すること、および当該中間表現から前記複数のアーチファクトのうちの少なくとも１つを決定することを含む、システム。
【請求項４２】
請求項４０に記載のシステムにおいて、前記プロセッサが、さらに、前記ソフトウェアファイルについてのパッチが存在するか否かを、特定された前記参照ソフトウェアファイルの前記参照アーチファクトの少なくとも１つを分析することによって判定するように構成されている、システム。
【請求項４３】
請求項４０に記載のシステムにおいて、前記プロセッサが、さらに、パッチを前記ソフトウェアファイルに自動的に適用するように構成されている、システム。
【請求項４４】
請求項４２に記載のシステムにおいて、前記プロセッサが、さらに；前記ソフトウェアファイルにおける欠陥の修復に対応する前記パッチの修復部を決定するために前記パッチを分析するように；かつ、前記パッチのうちの前記修復部のみを前記ソフトウェアファイルに適用するように；構成されている、システム。
【請求項４５】
少なくとも１つのソフトウェアファイルを有するソースと通信することが可能なインターフェースと、
複数の参照アーチファクトを記憶する記憶装置と、
前記インターフェース及び前記記憶装置に通信可能に接続されたプロセッサであって：
少なくとも１つのソフトウェアファイルが取得されるように；
前記少なくとも１つのソフトウェアファイルについての複数のアーチファクトを決定するように；
複数の参照アーチファクトを記憶するデータベースにアクセスするように；かつ、
前記少なくとも１つのソフトウェアファイルについてのプログラム断片を、当該プログラム断片に対応する前記複数のアーチファクトと当該プログラム断片に対応する前記複数の参照アーチファクトとを照合することによって特定するように；構成されているプロセッサと、
を備える、システム。
【請求項４６】
請求項４５に記載のシステムにおいて、前記プログラム断片が、欠陥に対応させるために、前記データベースにおいて特定済みである、システム。
【請求項４７】
請求項４５に記載のシステムにおいて、前記プログラム断片が、バグ、セキュリティ脆弱性、およびプロトコル不備からなる群から選択される欠陥に対応する、システム。
【請求項４８】
請求項４５に記載のシステムにおいて、前記プロセッサが、さらに、前記少なくとも１つのソフトウェアファイルにおける前記欠陥を自動的に修復するように構成されている、システム。
【請求項４９】
実行可能なプログラムが記憶された、非過渡的なコンピュータ読取り可能な媒体であって、前記プログラムが、処理装置に：
ソフトウェアファイルを取得する手順；
前記ソフトウェアファイルについての複数のアーチファクトを決定する手順；
複数の参照ソフトウェアファイルのそれぞれについての複数の参照アーチファクトを記憶するデータベースにアクセスする手順；
前記複数のアーチファクトを前記複数の参照アーチファクトと比較する手順；および
前記複数のアーチファクトとマッチする前記複数の参照アーチファクトを有する前記参照ソフトウェアファイルを特定することにより、前記ソフトウェアファイルを特定する手順；
を実行させる、非過渡的なコンピュータ読取り可能な媒体。
【請求項５０】
実行可能なプログラムが記憶された、非過渡的なコンピュータ読取り可能な媒体であって、前記プログラムが、処理装置に：
少なくとも１つのソフトウェアファイルを取得する手順；
前記少なくとも１つのソフトウェアファイルについての複数のアーチファクトを決定する手順；
複数の参照アーチファクトを記憶するデータベースにアクセスする手順；および
前記少なくとも１つのソフトウェアファイルについてのプログラム断片を、当該プログラム断片に対応する前記複数のアーチファクトと当該プログラム断片に対応する前記複数の参照アーチファクトとを照合することによって特定する手順；
を実行させる、非過渡的なコンピュータ読取り可能な媒体。