(57)【要約】  開示される主題は、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別するための方法およびシステムを含むプロジェクト再利用性に関する。この方法は、ＮＬＰを使用して１つまたは複数のデータソースから新しいプロジェクトの現在の要件を抽出し、潜在的意味解析（ＬＳＡ）技術などの所定の機械学習技術を使用して、現在の要件および既存の要件の意味解析を実行することによって、現在の要件に類似している既存のプロジェクトに関連する既存の要件を検出することを含む。さらに、現在の要件と既存の要件との間の類似度に基づいて、１つまたは複数の既存の要件のそれぞれについて類似度スコアが決定される。最後に、再利用性検出システムは、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントである類似度スコアに基づいて、既存の要件の１つに関連するプロジェクトコンポーネントを取り出し、それによって新しいプロジェクトの開発に必要な時間、コストおよびリソースを削減する。
2020026680.tif 000002
【特許請求の範囲】
【請求項１】
新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別する方法であって、前記方法は、
自然言語処理（ＮＬＰ）を使用して、再利用性検出システム（１０７）によって、１つまたは複数のデータソース（１０３）から新しいプロジェクトの現在の要件を抽出することと、
前記再利用性検出システム（１０７）によって、前記現在の要件および１つまたは複数の既存の要件の意味解析を実行することによって、前記現在の要件に類似している既存のプロジェクトに関連する前記１つまたは複数の既存の要件を検出することと、
前記再利用性検出システム（１０７）によって、前記現在の要件と前記１つまたは複数の既存の要件との間の類似度に基づいて、前記１つまたは複数の既存の要件のそれぞれについて類似度スコアを決定することと、
前記再利用性検出システム（１０７）によって、前記類似度スコアに基づいて、前記１つまたは複数の既存の要件のうちの１つに関連するプロジェクトコンポーネントを取り出すことであって、前記取り出されたプロジェクトコンポーネントは、前記新しいプロジェクトを構築するための前記再利用可能なプロジェクトコンポーネントである、ことと、
を含む、方法。
【請求項２】
前記１つまたは複数の既存の要件のうちの１つが、所定の類似度スコアより高い類似度スコアを有する１つまたは複数の既存の要件に属する、請求項１に記載の方法。
【請求項３】
前記１つまたは複数の既存の要件のそれぞれは、対応する再利用履歴（２１５）と関連付けられる、請求項１に記載の方法。
【請求項４】
前記再利用履歴（２１５）は、前記既存の要件が再利用された回数を示す所定の重み付けと、既存のプロジェクトを構築するための前記既存の要件の選択の推論とを含む、請求項３に記載の方法。
【請求項５】
前記１つまたは複数の既存の要件のうちの少なくとも２つが、同一の類似度スコアを有する場合、前記再利用性検出システム（１０７）によって、対応する再利用履歴（２１５）に基づいて前記１つまたは複数の既存の要件を優先させることをさらに含む、請求項１に記載の方法。
【請求項６】
前記再利用性検出システム（１０７）によって、優先される前記１つまたは複数の既存の要件のうちの１つのユーザ選択、および前記１つまたは複数の既存の要件のうちの１つを選択するための推論を受信することと、
前記再利用性検出システム（１０７）によって、再利用のために前記選択された既存の要件に関連するプロジェクトモジュールを取り出すことと、
をさらに含む、請求項５に記載の方法。
【請求項７】
前記再利用性検出システム（１０７）によって、前記ユーザ選択および前記選択に対する推論に基づいて、前記対応する再利用履歴（２１５）を更新することをさらに含む、請求項６に記載の方法。
【請求項８】
前記再利用性検出システム（１０７）によって、前記現在の要件に類似していると検出された前記１つまたは複数の既存の要件と類似の基本設計を有する１つまたは複数の他の既存の要件を検出することと、
前記再利用性検出システム（１０７）によって、ユーザ選択のために前記１つまたは複数の既存の要件と共に前記１つまたは複数の他の既存の要件を表示することと、
をさらに含む、請求項１に記載の方法。
【請求項９】
前記再利用性検出システム（１０７）によって、前記意味解析に基づいて、前記現在の要件の１つまたは複数の単語および前記１つまたは複数の既存の要件に関する同義語を自己学習することをさらに含む、請求項１に記載の方法。
【請求項１０】
前記意味解析は、所定の機械学習技術を使用して実行される、請求項１に記載の方法。
【請求項１１】
新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別するための再利用性検出システム（１０７）であって、前記再利用性検出システム（１０７）は、
プロセッサ（１０９）と、
前記プロセッサ（１０９）に通信可能に結合されたメモリ（１１３）であって、前記メモリ（１１３）が、プロセッサ実行可能命令を格納し、これは実行時に、前記プロセッサ（１０９）に、
自然言語処理（ＮＬＰ）を使用して、１つまたは複数のデータソース（１０３）から前記新しいプロジェクトの現在の要件を抽出させ、
前記現在の要件および１つまたは複数の既存の要件の意味解析を実行することによって、前記現在の要件に類似している既存のプロジェクトに関連する前記１つまたは複数の既存の要件を検出させ、
前記現在の要件と前記１つまたは複数の既存の要件との間の類似度に基づいて、前記１つまたは複数の既存の要件のそれぞれについて類似度スコアを決定させ、
前記類似度スコアに基づいて、前記１つまたは複数の既存の要件のうちの１つに関連するプロジェクトコンポーネントを取り出させ、前記取り出されたプロジェクトコンポーネントは、前記新しいプロジェクトを構築するための前記再利用可能なプロジェクトコンポーネントである、メモリと、
を備える、再利用性検出システム。
【請求項１２】
前記１つまたは複数の既存の要件のうちの１つが、所定の類似度スコアより高い類似度スコアを有する１つまたは複数の既存の要件に属する、請求項１１に記載の再利用性検出システム（１０７）。
【請求項１３】
前記１つまたは複数の既存の要件のそれぞれは、対応する再利用履歴（２１５）と関連付けられる、請求項１１に記載の再利用性検出システム（１０７）。
【請求項１４】
前記再利用履歴（２１５）は、前記既存の要件が再利用された回数を示す所定の重み付けと、既存のプロジェクトを構築するための前記既存の要件の選択の推論とを含む、請求項１３に記載の再利用性検出システム（１０７）。
【請求項１５】
前記プロセッサ（１０９）は、前記１つまたは複数の既存の要件のうちの少なくとも２つが、同一の類似度スコアを有する場合、対応する再利用履歴（２１５）に基づいて、前記１つまたは複数の既存の要件を優先させるようにさらに構成される、請求項１１に記載の再利用性検出システム（１０７）。
【請求項１６】
前記プロセッサ（１０９）は、
優先される前記１つまたは複数の既存の要件のうちの１つのユーザ選択、および前記１つまたは複数の既存の要件のうちの１つを選択するための推論を受信し、
再利用のために前記選択された既存の要件に関連するプロジェクトモジュールを取り出す
ようにさらに構成される、請求項１５に記載の再利用性検出システム（１０７）。
【請求項１７】
前記プロセッサ（１０９）は、前記ユーザ選択および前記選択に対する推論に基づいて、前記対応する再利用履歴（２１５）を更新するようにさらに構成される、請求項１６に記載の再利用性検出システム（１０７）。
【請求項１８】
前記プロセッサ（１０９）は、
前記現在の要件に類似していると検出された前記１つまたは複数の既存の要件と類似の基本設計を有する１つまたは複数の他の既存の要件を検出し、
ユーザ選択のために前記１つまたは複数の既存の要件と共に前記１つまたは複数の他の既存の要件を表示する
ようにさらに構成される、請求項１１に記載の再利用性検出システム（１０７）。
【請求項１９】
前記プロセッサ（１０９）は、前記意味解析に基づいて、前記現在の要件の１つまたは複数の単語および前記１つまたは複数の既存の要件に関する同義語を自己学習するようにさらに構成される、請求項１１に記載の再利用性検出システム（１０７）。
【請求項２０】
前記プロセッサ（１０９）は、所定の機械学習技術を使用して意味解析を実行する、請求項１１に記載の再利用性検出システム（１０７）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してプロジェクトの再利用性に関し、より詳細には、限定されるものではないが、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別するための方法およびシステムに関する。
【背景技術】
【０００２】
一般に、新しいプロジェクトを構築するには、新しいプロジェクトの要件が顧客から提供されたときに、ソフトウェア開発ライフサイクル（ＳＤＬＣ）全体を実行する必要がある。これには、膨大な人手、時間、お金およびリソースが必要である。すべての新しいプロジェクトに対してこの方法を採用することは、組織の生産性および効率性を低下させ、さらにコストを増加させるため、組織にとっては現実的ではない。【０００３】
最近では、新しいプロジェクトは、以前のプロジェクトに使用されていた既存のプロジェクトコンポーネントを再利用して設計されている。より良いプロジェクトをより早く、より低いコストで達成するために再利用が認識されている。したがって、プロジェクトコンポーネントの再利用に基づく設計プロセスは広く採用されている。ただし、再利用の概念で取り組むべき最大の問題は、どのプロジェクトコンポーネントを再利用するかを決定する方法である。【０００４】
既存の技術のいくつかは、最初にソフトウェア分類法が生成され、分類法に沿ったソフトウェアプロファイルが結果的に生成され得る方法を提供する。既存の技術は、もともとソフトウェア分類法が生成され、その結果としてソフトウェア分類法に沿ったソフトウェアプロファイルが生成され得る方法を提供する。しかしながら、ソフトウェア分類法を生成し、比較のためにソフトウェア分類法に基づいてソフトウェアプロファイルを作成することを考えると、この技術の複雑さのレベルは高く、ユーザにとって使いづらい可能性がある。また、この技術では、ソフトウェア分類法およびソフトウェアプロファイルを生成するために手作業が必要であり、この技術が時間のかかるものになる。既存のソフトウェアコンポーネントの既存の依存関係を分析し、それを新しいソフトウェアと照合して再利用可能なコンポーネントを識別する技術は、ほぼ他にはない。しかしながら、この技術は、サロゲートなどの中間コンポーネントを生成することによってコンポーネント間の依存関係を最初に識別することを扱い、それによってプロセスの複雑さが増す。【０００５】
したがって、プロジェクトコンポーネントを再利用することは非常に有益であるが、既存の技術では再利用可能なプロジェクトコンポーネントを決定するための効率的でユーザが使いやすい技術を提供できない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
先行技術の１つまたは複数の欠点が克服され、本開示を通してさらなる利点が提供される。追加の特徴および利点は、本開示の技術を通じて実現される。本開示の他の実施形態および態様は、本明細書に詳細に記載されており、特許請求された開示の一部と見なされる。
【課題を解決するための手段】
【０００７】
本明細書で開示されるのは、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別する方法である。この方法は、自然言語処理（ＮＬＰ）を使用して、再利用性検出システムによって、１つまたは複数のデータソースから新しいプロジェクトの現在の要件を抽出することを含む。さらに、再利用性検出システムは、現在の要件および１つまたは複数の既存の要件の意味解析を実行することによって、現在の要件に類似している既存のプロジェクトに関連する１つまたは複数の既存の要件を検出する。さらに、再利用性検出システムは、現在の要件と１つまたは複数の既存の要件との間の類似度に基づいて、１つまたは複数の既存の要件のそれぞれについて類似度スコアを決定する。最後に、再利用性検出システムは、類似度スコアに基づいて、１つまたは複数の既存の要件のうちの１つに関連するプロジェクトコンポーネントを取り出す。取り出されたプロジェクトコンポーネントは、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントである。【０００８】
さらに、本開示は、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別するための再利用性検出システムを含む。再利用性検出システムは、プロセッサと、プロセッサに通信可能に結合されたメモリとを含む。メモリはプロセッサ実行可能命令を格納し、これは実行時に、プロセッサに、自然言語処理（ＮＬＰ）を使用して、１つまたは複数のデータソースから新しいプロジェクトの現在の要件を抽出させる。さらに、プロセッサは、現在の要件および１つまたは複数の既存の要件の意味解析を実行することによって、現在の要件に類似している既存のプロジェクトに関連する１つまたは複数の既存の要件を検出する。【０００９】
さらに、プロセッサは、現在の要件と１つまたは複数の既存の要件との間の類似度に基づいて、１つまたは複数の既存の要件のそれぞれについて類似度スコアを決定する。最後に、プロセッサは、類似度スコアに基づいて、１つまたは複数の既存の要件のうちの１つに関連するプロジェクトコンポーネントを取り出す。【００１０】
取り出されたプロジェクトコンポーネントは、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントである。【００１１】
前述の概要は例示的なものにすぎず、決して限定的であることを意図するものではない。上記の例示的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴は、図面および以下の詳細な説明を参照することによって明らかになるであろう。【００１２】
本開示に組み込まれてその一部を構成する添付の図面は、例示的な実施形態を示し、説明と共に、開示された原理を説明するのに役立つ。図において、参照番号の左端の数字は、その参照番号が最初に現れる図を識別する。同様の特徴およびコンポーネントを参照するために、図面全体を通して同じ番号が使用されている。本発明の主題の実施形態によるシステムおよび／または方法のいくつかの実施形態を、単なる一例として、添付の図面を参照しながら説明する。
【図面の簡単な説明】
【００１３】
【図１Ａ】本開示のいくつかの実施形態による、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別するための例示的アーキテクチャを示す図である。
【図１Ｂ】本開示の代替の実施形態による、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別するための例示的アーキテクチャを示す図である。
【図２Ａ】本開示のいくつかの実施形態による、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別するための再利用性検出システムの詳細なブロック図である。
【図２Ｂ（１）】本開示のいくつかの実施形態によるベクトル化プロセスの例示的な説明図である。
【図２Ｂ（２）】本開示のいくつかの実施形態によるベクトル化プロセスの例示的な説明図である。
【図２Ｂ（３）】本開示のいくつかの実施形態によるベクトル化プロセスの例示的な説明図である。
【図２Ｃ】本開示のいくつかの実施形態による意味解析を示すための例示的グラフを示す図である。
【図３】本開示のいくつかの実施形態による、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別する方法を示すフロー図である。
【図４】本開示と一致する実施形態を実施するための例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【００１４】
本明細書における任意のブロック図は、本主題の原理を具体化する例示的なシステムの概念図を表すことを当業者は理解されたい。
【００１５】
同様に、任意のフローチャート、フロー図、状態遷移図、疑似コードなどは、実質的にコンピュータ可読媒体において表すことができ、したがってそのようなコンピュータまたはプロセッサが明示的に示されているか否かに関わらず、コンピュータまたはプロセッサによって実行され得る様々なプロセスを表すことが分かる。
【００１６】
本文書では、「例示的（ｅｘｅｍｐｌａｒｙ）」という用語は、「例（ｅｘａｍｐｌｅ）、実例（ｉｎｓｔａｎｃｅ）、または例証（ｉｌｌｕｓｔｒａｔｉｏｎ）として役立つこと」を意味するために本明細書で使用される。「例示的（ｅｘｅｍｐｌａｒｙ）」として本明細書に記載されている本主題の任意の実施形態または実装は、他の実施形態よりも好ましいまたは有利であると必ずしも解釈されるべきではない。
【００１７】
本開示は様々な修正および代替形態が可能であるが、その特定の実施形態は、例として図面に示されており、以下に詳細に説明される。しかしながら、本開示を開示された特定の形態に限定することを意図するものではなく、それどころか、本開示は、本開示の範囲内に含まれるすべての修正物、均等物、および代替物を網羅するものであることを理解すべきである。
【００１８】
用語「備える（ｃｏｍｐｒｉｓｅｓ）」、「備える（ｃｏｍｐｒｉｓｉｎｇ）」、またはそれらの任意の他の変形は、構成要素またはステップのリストを含む構成、装置または方法がそれらの構成要素またはステップのみを含まないように、非排他的な包含を含むことを意図するが、明示的に列挙されていない、またはそのような構成または装置または方法に固有の他の構成要素またはステップを含み得る。言い換えれば、「…を備える」によって次に進むシステムまたは装置内の１つまたは複数の要素は、さらなる制約なしに、システムまたは方法内の他の要素または追加の要素の存在を排除しない。
【００１９】
本明細書で開示されるのは、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別するための方法およびシステムである。再利用性検出システムは、自然言語処理（ＮＬＰ）を使用して、１つまたは複数のデータソースから新しいプロジェクトの現在の要件を抽出することができる。１つまたは複数のデータソースは、リポジトリ、顧客、および内容領域専門家（ＳＭＥ）を含むことができるが、それらに限定されない。新しいプロジェクトの現在の要件を抽出すると、再利用性検出システムは、既存のプロジェクトに関連付けられた１つまたは複数の既存の要件を用いて現在の要件の意味解析を実行することができる。いくつかの実施形態では、「１つまたは複数の既存の要件」という語句および「既存の要件」という語が、本開示において代替的に使用され得る。いくつかの実施形態では、意味解析は、所定の機械学習技術を使用して実行され得る。一例として、所定の機械学習技術は潜在的意味解析（ＬＳＡ）技術であり得る。
【００２０】
意味解析に基づいて、再利用性検出システムは、現在の要件に類似している１つまたは複数の既存の要件を検出することができる。さらに、再利用性検出システムは、類似度に基づいて１つまたは複数の既存の要件のそれぞれについて類似度スコアを決定することによって、類似度を定量化することができる。さらに、いくつかの実施形態では、再利用性検出システムは、類似度スコアに基づいて、１つまたは複数の既存の要件のうちの１つに関連するプロジェクトコンポーネントを取り出すことができ、これは新しいプロジェクトの再利用可能なプロジェクトコンポーネントと呼ばれる。
【００２１】
いくつかの実施形態では、２つ以上の既存の要件が同一の類似度スコアを有する場合、再利用性検出システムは既存の要件を優先してもよい。
【００２２】
いくつかの他の実施形態では、ユーザは自分の選択の既存の要件を選択することができる。さらに、いくつかの実施形態では、現在の要件と同様の既存の要件と共に、再利用性検出システムはまた、既存の要件と同様の基本設計を有する１つまたは複数の既存の要件を表示することができ、これは現在の要件に類似していることが検出される。
【００２３】
本開示は、既存のプロジェクトのプロジェクトモジュールがある程度類似した新しいプロジェクトを構築するために再利用され得るという特徴を提供する。再利用の機能により、最初から新しいプロジェクトモジュールを再構築するために必要となる膨大な時間、コスト、およびリソースが低減される。ＮＬＰを使用すると、所定のテンプレートおよび分類法を使用して、顧客の要件を機械が理解できるプロファイルに変換するプロセスが不要になる。したがって、本開示は、再利用性を検出することに含まれるかなりの数の手順を排除し、それによって複雑さを軽減し、ユーザが使いやすい環境を作り出す。本開示は、手動による介入を必要とするプロジェクトモジュールを開発する非効率的な方法を補うことによって生産性を高めるのに役立つ。
【００２４】
図１Ａは、本開示のいくつかの実施形態による、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別するための例示的アーキテクチャを示す図である。
【００２５】
アーキテクチャ１００は、１つまたは複数のデータソース、データソース１  １０３１からデータソースｎ  １０３ｎ（まとめて１つまたは複数のデータソース１０３と呼ばれる）、再利用性検出システム１０７、およびデータベース１１５を備える。１つまたは複数のデータソース１０３は、顧客および内容領域専門家（ＳＭＥ）を含むことができるが、これらに限定されない。いくつかの実施形態では、１つまたは複数のデータソース１０３は、通信ネットワーク（図１Ａには示されない）を使用して、再利用性検出システム１０７と関連付けられてもよい。一例として、通信ネットワークは、有線通信ネットワーク、無線通信ネットワーク、または有線と無線の両方の通信ネットワークの組合せであり得る。いくつかの実施形態において、データベース１１５は、図１Ａに示されるように再利用性検出システム１０７と関連付けられてもよい。いくつかの他の実施形態では、データベース１１５は再利用性検出システム１０７内に統合されてもよい。データベース１１５は、既存のプロジェクトに関連付けられた１つまたは複数の既存の要件、１つまたは複数の既存の要件のそれぞれに対応するプロジェクトモジュール、および１つまたは複数の既存の要件のそれぞれに関連付けられた再利用履歴（後のセクションで詳細に説明する）を含むことができるが、これらに限定されず、いくつかの実施形態では、「１つまたは複数の既存の要件」という語句および「既存の要件」という語が、本開示において代替的に使用され得る。
【００２６】
再利用性検出システム１０７は、プロセッサ１０９、入出力（Ｉ／Ｏ）インタフェース１１１、およびメモリ１１３を備える。一実施形態では、プロセッサ１０９は、１つまたは複数のデータソース１０３から新しいプロジェクトの現在の要件に関する情報を受け取ることができる。一例として、現在の要件に関連する情報は、識別子、シリアル番号、ステートメント、備考および全情報などを含み得る。プロセッサ１０９は、自然言語処理（ＮＬＰ）を使用して、全情報から新しいプロジェクトの現在の要件を抽出することができる。代替実施形態では、プロセッサ１０９は、図１Ｂに示されるように翻訳ユニットと関連付けられてもよい。現在の要件に関する情報が英語以外の言語である場合、翻訳ユニット１１７は、現在の要件に関する情報を英語に翻訳し、翻訳された情報をプロセッサ１０９に提供することができる。さらに、プロセッサ１０９は、既存のプロジェクトに関連付けられた１つまたは複数の既存の要件を用いて現在の要件の意味解析を実行し、現在の要件に類似している１つまたは複数の既存の要件を検出することができる。いくつかの実施形態では、意味解析は、所定の機械学習技術を使用して実行され得る。一例として、所定の機械学習技術は潜在的意味解析（ＬＳＡ）技術であり得る。いくつかの実施形態では、プロセッサ１０９は、現在の要件と１つまたは複数の既存の要件との類似度に基づいて、１つまたは複数の既存の要件のそれぞれについて類似度スコアを決定することができる。さらに、いくつかの実施形態では、プロセッサ１０９は、類似度スコアに基づいて、１つまたは複数の既存の要件のうちの１つに関連するプロジェクトコンポーネントを取り出すことができ、これは新しいプロジェクトの再利用可能なプロジェクトコンポーネントと呼ばれる。
【００２７】
いくつかの実施形態では、２つ以上の既存の要件が同一の類似度スコアを有することがある。そのようなシナリオでは、プロセッサ１０９は、既存の要件に関連する再利用履歴に基づいて同一の類似度スコアを有する既存の要件を優先させることができる。いくつかの実施形態では、再利用履歴は、既存の要件に関連する所定の重み付けと、既存のプロジェクトを構築するための既存の要件の選択の推論とを含むことができるが、それらに限定されない。いくつかの実施形態では、プロセッサ１０９は、再利用のために最も高い優先度を有する既存の要件を選択することができる。いくつかの他の実施形態では、ユーザは自分の選択の既存の要件を選択することができる。さらに、いくつかの実施形態では、現在の要件に類似している既存の要件と共に、プロセッサ１０９は、既存の要件と同様の基本設計を有する１つまたは複数の既存の要件を表示することができ、これは現在の要件に類似していることが検出される。
【００２８】
図２Ａは、本開示のいくつかの実施形態による、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別するための再利用性検出システムの詳細なブロック図である。
【００２９】
いくつかの実装形態では、再利用性検出システム１０７はデータ２０３およびモジュール２０５を含み得る。一例として、データ２０３は、図２Ａに示すように、再利用性検出システム１０７内に構成されたメモリ１１３に格納される。一実施形態では、データ２０３は、入力データ２０９、要件データ２１１、類似度データ２１３、スコアデータ２１４、再利用履歴２１５、再利用可能データ２１７、および他のデータ２２１を含み得る。図示された図２Ａにおいて、モジュール２０５は本明細書において詳細に説明される。
【００３０】
いくつかの実施形態において、データ２０３は、様々なデータ構造の形態でメモリ１１３に格納されてもよい。さらに、データ２０３は、リレーショナルデータモデルまたは階層データモデルなどのデータモデルを使用して編成することができる。他のデータ２２１は、再利用性検出システム１０７の様々な機能を実行するためにモジュール２０５によって生成された一時データおよび一時ファイルを含むデータを格納することができる。
【００３１】
いくつかの実施形態において、メモリ１１３に格納されたデータ２０３は、再利用性検出システム１０７のモジュール２０５によって処理されてもよい。モジュール２０５はメモリ１１３内に格納されてもよい。一例では、再利用性検出システム１０７内に構成されたプロセッサ１０９に通信可能に結合されたモジュール２０５はまた、図２Ａに示すようにメモリ１１３の外部に存在し、ハードウェアとして実装され得る。本明細書では、モジュールという用語は、特定用途向け集積回路（ＡＳＩＣ）、電子回路、プロセッサ（共有、専用、またはグループ）、ならびに１つまたは複数のソフトウェアまたはファームウェアプログラムを実行するメモリ、組合せ論理回路、および／または説明された機能を提供する他の適切なコンポーネントを指す。
【００３２】
一実施形態では、モジュール２０５は、例えば、受信モジュール２３１、要件抽出モジュール２３３、意味解析モジュール２３５、スコアリングモジュール２３７、再利用性検出モジュール２３９、および他のモジュール２４１を含むことができる。他のモジュール２４１は、再利用性検出システム１０７の様々な多岐にわたる機能を実行するために使用されてもよい。そのような前述のモジュール２０５は、単一のモジュールまたは異なるモジュールの組合せとして表すことができることを理解されよう。
【００３３】
いくつかの実施形態では、受信モジュール２３１は、１つまたは複数のデータソース１０３から新しいプロジェクトの現在の要件に関する情報を受信することがある。一例として、１つまたは複数のデータソース１０３は、顧客および内容領域専門家（ＳＭＥ）を含むことができるが、これらに限定されない。いくつかの実施形態では、顧客から受け取った情報は、自然言語で書かれた生データであり得、これは必ずしもドメイン固有の情報を含まなくてもよい。一方、ＳＭＥから受け取った情報は技術仕様であり得、すなわち情報には、ソフトウェア設計者など、ＳＭＥによって組み込まれたドメイン知識が含まれる。いくつかの実施形態では、受信モジュール２３１は、新しいプロジェクトごとに、顧客とＳＭＥの両方から現在の要件に関する情報を受信することができる。さらに、一例として、現在の要件に関連する情報は、識別子、シリアル番号、ステートメント、備考などを含み得る。現在の要件に関する情報は、入力データ２０９として格納されてもよい。いくつかの実施形態では、現在の要件に関する情報が英語以外の言語である場合、再利用性検出システム１０７に関連する翻訳ユニット１１７は、現在の要件に関する情報を英語に翻訳し、翻訳された情報をプロセッサ１０９に提供することができる。したがって、受信モジュール２３１は、現在の要件に関連する情報の翻訳版を受信することができる。
【００３４】
いくつかの実施形態では、要件抽出モジュール２３３は、自然言語処理（ＮＬＰ）を使用して、現在の要件に関する全情報から、新しいプロジェクトの現在の要件を抽出することができる。したがって、ＮＬＰ技術の一部として、要件抽出モジュール２３３は最初に入力データ２０９を収集することができる。また、要件抽出モジュール２３３は、入力データ２０９に所定のパターンを適用してもよい。一例として、所定のパターンは「抽出ステートメント」であり得る。そのようなシナリオでは、要件抽出モジュール２３３は、入力データ２０９から「ステートメント」という見出しの下に存在する情報だけを選択することができる。さらに、要件抽出モジュール２３３は、新しいプロジェクトの現在の要件を含む、選択された情報を入力データ２０９から抽出することができる。要件抽出モジュール２３３は、現在の要件を抽出すると、入力データ２０９の残りを破棄することができる。現在の要件は、要件データ２１１として格納されてもよい。
【００３５】
一例として、以下の表１に示すように、１つまたは複数のデータソース１０３から受信した例示的な入力データを検討する。
【００３６】
【表１】
2020026680.tif 000003
【００３７】
表１
要件抽出モジュール２３３が、現在の要件を抽出するためのパターン「抽出ステートメント」を適用したとする。次に、要件抽出モジュール２３３は、上記の表１から「ステートメント」という見出しを有する列のみを選択することができる。したがって、例示的な入力データ、すなわち例示的な新しいプロジェクトの例示的な現在の要件から抽出されたデータは、以下に示す通りであり得る。
【００３８】
フラッシュドライバは静的に構成可能でなければならない
フラッシュメモリのプロパティを公開すべきである
フラッシュドライバは非同期読み取り機能を提供すべきである
いくつかの実施形態では、要件抽出モジュール２３３はまた、再利用性検出システム１０７に関連するデータベース１１５から既存のプロジェクトの１つまたは複数の既存の要件を抽出することができる。
【００３９】
さらに、いくつかの実施形態では、意味解析モジュール２３５は、既存のプロジェクトに関連付けられた１つまたは複数の既存の要件を用いて現在の要件の意味解析を実行することができる。いくつかの実施形態では、意味解析は、複数の所定の機械学習技術を使用して実行され得る。一例として、所定の機械学習技術は、用語頻度−逆文書頻度（ＴＦ−ＩＤＦ）技術、潜在的意味解析（ＬＳＡ）技術などであり得る。しかしながら、これらの所定の機械学習技術は、本開示の限定として解釈されるべきではない。本開示は、当技術分野で知られている他の任意の意味解析技術を適用することができる。いくつかの実施形態では、意味解析のプロセスは、現在の要件の単語を１つまたは複数の既存の要件のそれぞれの単語と比較するために主に実行され得る。いくつかのシナリオでは、単語は異なる可能性があるが、単語によって伝えられる意味は同じか類似している可能性がある。そのような単語は、プロセッサ１０９によって同義語として登録されてもよい。最初に、意味解析モジュール２３５は、１つの現在の要件と１つの既存の要件を繰り返し検討し、現在の要件および既存の要件内の単語をトピックにセグメント化することができる。さらに、意味解析モジュール２３５は、ベクトル化として知られるプロセスを使用して、トピックを数値に変換することができる。
【００４０】
いくつかの実施形態では、ベクトル化がＴＦ−ＩＤＦ技術を使用して実行されることを検討する。ＴＦ−ＩＤＦ技術では、文書中の用語出現頻度および出現用語の希少性に基づいてベクトル化が行われる。図２Ｂ（１）は、ＴＦ−ＩＤＦ技術を用いたベクトル化の例示的なプロセスを示す。図２Ｂ（１）に示されるように、Ｔ１、Ｔ２およびＴ３は、その外観が文書（ｄｏｃ）１、２および３においてチェックされる３つの用語であると考える。用語の出現は、図２Ｂ（１）に示すように、行列形式（用語頻度行列とも呼ばれる）でさらに表にすることができる。さらに別の例では、文書１が文「Ｎｅｗ  Ｙｏｒｋ  Ｔｉｍｅｓ」を含み、文書２が文「Ｎｅｗ  Ｙｏｒｋ  Ｐｏｓｔ」を含み、文書３が文「Ｌｏｓ  Ａｎｇｅｌｅｓ  ｔｉｍｅｓ」を含むと考える。文書１、２、および３から検索されている用語が、「Ｎｅｗ」、「Ｌｏｓ」、「Ａｎｇｅｌｅｓ」などであると考える。用語の出現頻度は、図２Ｂ（２）に示されるように、文書１、２および３に関して表形式で表される。同様に、各文書における上記の各用語の出現の希少性は、図２Ｂ（２）の表形式に示されるような対数技術を使用して判定される。さらに、図２Ｂ（２）に示す２つの表の積、すなわち、文書中の用語出現頻度と出現用語の希少性の積は、各用語についてベクトル（数値）を提供し、それはグラフで表すことができる。
【００４１】
いくつかの他の実施形態では、ベクトル化はＬＳＡ技術を使用して実行されると考える。ＬＳＡ技術では、ベクトル化は、用語頻度行列から抽出することができる隠れ概念に基づいて実行される。図２Ｂ（３）に示すように、最初に、用語頻度行列は、上で説明したようにＴＦ−ＩＤＦ技術を使用して生成される。さらに、ＬＳＡ技術は、用語頻度行列から概念を自動的に導出することを含む。いくつかの実施形態では、概念は、各文書内の特定のパターンにおける優勢な語句の集まり（バグオブワード）であり得る。概念を導出する際、ＬＳＡ技術は、図２Ｂ（３）に示すように、文書と概念、概念と概念、および概念と用語の対について行列をプロットすることを含む。いくつかの実施形態では、文書は、いくつの概念が存在するか、およびどの概念が文書に存在するかに基づいて分類することができる。図２Ｂ（３）に示すように用語を行列に変換することは数学的に正しいが、概念が表すことは抽象的または不定であり得ることに留意されたい。
【００４２】
さらに、意味解析モジュール２３５は、各トピックに対応する数値（換言すれば、上述の技術を用いて得られたベクトル）をグラフ上にプロットすることができる。例示的なグラフは、図２Ｃに示す通りであり得る。図２Ｃにおいて、Ｄ１、Ｄ２、Ｄ３およびＤ４は、グラフ上に数値的に表される異なるトピックのベクトルであり得る。さらに、意味解析モジュール２３５は、以下の、
−ベクトル間の距離
−ベクトル間の角度の
うちの少なくとも１つを測定することができる。
【００４３】
いくつかの実施形態では、ベクトル間の距離が小さければ、対応する要件は類似していると見なすことができる。あるいは、ベクトル間の角度が小さい場合、これらのベクトルに対応する要件は類似していると見なされる。
【００４４】
一例として、図２Ｃでは、Ｄ３とＤ４との間の角度は小さい。したがって、Ｄ３およびＤ４によって示される要件は意味的に類似している可能性があり、すなわち、Ｄ３およびＤ４は類似の品質または意味を有すると見なすことができる。一方、Ｄ１とＤ４との間の距離は大きい。
【００４５】
したがって、Ｄ１およびＤ４に対応する要件は意味的に類似していない可能性がある、すなわち、Ｄ３およびＤ４は類似の品質または意味論を有すると見なされない可能性がある。
【００４６】
したがって、意味解析モジュール２３５の結果に基づいて、プロセッサ１０９は、現在の要件と１つまたは複数の既存の要件との間の類似度を検出することができる。
【００４７】
意味解析モジュール２３５の結果、すなわち検出された類似度は、類似度データ２１３として格納することができる。
【００４８】
いくつかの実施形態では、プロセッサ１０９は、意味解析モジュール２３５の結果に基づいて、すなわち類似度データ２１３に基づいて、現在の要件の１つまたは複数の単語および１つまたは複数の既存の要件に関する同義語を連続的に自己学習し得る。
【００４９】
さらに、いくつかの実施形態では、スコアリングモジュール２３７は、意味解析モジュール２３５によって生成された類似度データ２１３に基づいて、１つまたは複数の既存の要件のそれぞれについて類似度スコアを生成することができる。いくつかの実施形態では、類似度スコアは、現在の要件と１つまたは複数の既存の要件との間の類似度を定義することができる。類似度スコアはスコアデータ２１４として格納されてもよい。
【００５０】
類似度スコアに基づいて、再利用性検出モジュール２３９は、新しいプロジェクトを構築するために再利用することができる１つまたは複数の既存の要件のうちの１つを選択することができる。いくつかの実施形態では、再利用性検出モジュール２３９は、１つまたは複数の既存の要件のそれぞれの類似度スコアの中で最も高い類似度スコアを決定することができる。決定された最高の類似度スコアを有する１つまたは複数の既存の要件のうちの１つは、新しいプロジェクトの現在の要件に最も近いものと見なすことができる。したがって、再利用性検出モジュール２３９は、再利用のために最も高い類似度スコアを有する既存の要件を選択することができる。いくつかの他の実施形態では、再利用性検出モジュール２３９は、事前定義された類似度スコアを超える類似度スコアを決定することができる。いくつかの実施形態において、所定の類似度スコアは、再利用可能なプロジェクトコンポーネントを選択するために設定された閾値であり得る。さらに、再利用性検出モジュール２３９は、所定の類似度スコアより高い類似度スコアを有すると決定された１つまたは複数の既存の要件から、１つまたは複数の既存の要件のうちの１つを選択してもよい。
【００５１】
いくつかの実施形態では、再利用性検出モジュール２３９は、後のセクションで詳細に説明する再利用履歴２１５に基づいて１つまたは複数の既存の要件のうちの１つを選択することができる。上述のように類似度スコアに基づいて１つまたは複数の既存の要件のうちの１つを選択すると、プロセッサ１０９は、データベース１１５から選択された既存の要件に関連するプロジェクトコンポーネントを取り出すことができる。このようにして取り出されたプロジェクトコンポーネントは、新しいプロジェクトを構築するために使用され得る再利用可能なプロジェクトコンポーネントであり得る。いくつかの実施形態では、再利用可能なプロジェクトコンポーネントは、再利用可能データ２１７として格納されてもよい。
【００５２】
いくつかのシナリオでは、１つまたは複数の既存の要件は、同一の類似度スコアを有することがある。いくつかの実施形態では、同一の類似度スコアを有する１つまたは複数の既存の要件の類似度スコアは、所定の類似度スコアよりも高い可能性がある。これらのシナリオでは、再利用性検出モジュール２３９は、対応する再利用履歴２１５に基づいて１つまたは複数の既存の要件を優先させる。いくつかの実施形態では、再利用履歴２１５は、既存の要件に関連する所定の重み付けと、既存のプロジェクトを構築するための既存の要件の選択の推論とを含むことができるが、それらに限定されない。所定の重み付けは、対応する既存の要件が再利用のために選択された回数を示すことができる。選択を推論することは、なぜユーザが既存の要件を再使用のために選択したのかを示し得る。
【００５３】
一例として、以下に示すような例示的な既存の要件に対する例示的な再利用履歴２１５を検討する。
【００５４】
プロジェクト名−プロジェクト２
要件ＩＤ−ＳＲＳ＿Ｆｌｓ＿１２１３２ａ
説明−フラッシュドライバは静的に構成可能
選択理由−フラッシュドライバの構成は静的である必要があるため、要件は再利用された。
【００５５】
重み付け−＋３
さらに、上述の例示的な既存の要件がユーザによって選択されると考える。ユーザは既存の要件を選択する理由を提供してもよい。すぐに、再利用性検出モジュール２３９は再利用履歴２１５を更新することができ、すなわち選択の理由が更新され、既存の要件に関連する重み付けが１などの所定の値で増分され得る。したがって、上述の例示的シナリオにおける既存の要件に対する新しい重み付けは、「＋３」から「＋４」に更新され得る。したがって、再利用性検出システムは、再利用履歴２１５に基づいて、同一の類似度スコアを有する既存の要件を優先し得る。いくつかの実施形態では、既存の要件の重み付けが大きいほど、既存の要件に与えられる優先度が高くなる。再利用性検出モジュール２３９は、最も優先度の高い既存の要件を選択するようにユーザに推奨を提供することができる。しかしながら、選択に関する最終決定はユーザの決定に任されてもよい。既存の要件を選択する際、ユーザは選択の理由を提供すべきであり、それは再利用履歴２１５においてさらに更新される。いくつかの実施形態では、再利用性検出モジュール２３９は、ユーザ選択およびその選択に対する推論に基づいて再利用履歴２１５を更新することができる。類似度スコアに基づいて既存の要件を選択すると、プロセッサ１０９は、データベース１１５から選択された既存の要件に関連するプロジェクトコンポーネントを取り出すことができる。このようにして取り出されたプロジェクトコンポーネントは、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントであり得る。
【００５６】
さらなる実施形態では、プロセッサ１０９は、現在の要件に類似していると検出された１つまたは複数の既存の要件と同様の基本設計を有する１つまたは複数の他の既存の要件を検出することができる。さらに、プロセッサ１０９は、ユーザ選択のために１つまたは複数の既存の要件と共に１つまたは複数の他の既存の要件を表示することができる。
【００５７】
例として、元の要件（ＯＲ）１およびＯＲ  ２が基本設計（ＢＤ）１を有すると考える。プロセッサ１０９が新しい要件（ＮＲ）１を受信すると考える。類似度スコアに基づいて、ＮＲ  １がＯＲ  １と密接に関連していると考える。ただし、ＯＲ  １とＯＲ  ２は同じ基本設計を有する。したがって、ＯＲ  ２はＯＲ  １と同じ基本設計を有するため、ＯＲ  １とＯＲ  ２の両方がＮＲ  １に推奨される。この関係は、共起と呼ばれることがある。
【００５８】
図３は、本開示のいくつかの実施形態による、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別する方法を示すフロー図である。
【００５９】
図３に示すように、方法３００は、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別する方法を示す１つまたは複数のブロックを含む。方法３００は、コンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、コンピュータ実行可能命令は、機能を実行するかまたは抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、プロシージャ、モジュール、および機能を含むことができる。
【００６０】
方法３００を説明する順序は限定として解釈されることを意図するものではなく、方法３００を実施するために任意の数の説明された方法ブロックを任意の順序で組み合わせることができる。さらに、個々のブロックは、本明細書に記載の主題の趣旨および範囲から逸脱することなく方法から削除することができる。さらに、方法３００は、任意の適切なハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装することができる。
【００６１】
ブロック３０１において、方法３００は、自然言語処理（ＮＬＰ）を使用して、再利用性検出システム１０７のプロセッサ１０９によって、１つまたは複数のデータソース１０３から新しいプロジェクトの現在の要件を抽出することを含み得る。いくつかの実施形態では、プロセッサ１０９は、現在の要件に関する全情報から、（ＮＬＰ）を用いて新しいプロジェクトの現在の要件を抽出することができる。
【００６２】
ブロック３０３において、方法３００は、現在の要件および１つまたは複数の既存の要件の意味解析を実行することによって、現在の要件に類似している既存のプロジェクトに関連する１つまたは複数の既存の要件を、プロセッサ１０９によって検出することを含み得る。いくつかの実施形態では、意味解析は、所定の機械学習技術を使用して実行され得る。一例として、所定の機械学習技術は潜在的意味解析（ＬＳＡ）技術であり得る。
【００６３】
ブロック３０５において、方法３００は、プロセッサ１０９によって、現在の要件と１つまたは複数の既存の要件との間の類似度に基づいて、１つまたは複数の既存の要件のそれぞれについて類似度スコアを決定することを含み得る。
【００６４】
ブロック３０７において、方法３００は、プロセッサ１０９によって、類似度スコアに基づいて、１つまたは複数の既存の要件のうちの１つに関連するプロジェクトコンポーネントを取り出すことを含み得る。いくつかの実施形態では、プロセッサ１０９は、１つまたは複数の既存の要件のそれぞれの類似度スコアの中で最も高い類似度スコアを決定することができる。決定された最高の類似度スコアを有する１つまたは複数の既存の要件のうちの１つは、新しいプロジェクトの現在の要件に最も近いものと見なすことができる。いくつかの他の実施形態では、プロセッサ１０９は、所定の類似度スコアを超える類似度スコアを決定してもよい。さらに、プロセッサ１０９は、所定の類似度スコアより高い類似度スコアを有すると決定された１つまたは複数の既存の要件から、１つまたは複数の既存の要件のうちの１つを選択することができる。プロセッサ１０９は、再利用履歴２１５に基づいて、１つまたは複数の既存の要件のうちの１つを選択することができる。再利用履歴２１５の概念は、図２Ａの１つのセクションの下で詳細に説明される。類似度スコアに基づいて１つまたは複数の既存の要件のうちの１つを選択すると、プロセッサ１０９は、データベース１１５から選択された既存の要件に関連するプロジェクトコンポーネントを取り出すことができる。取り出されたプロジェクトコンポーネントは、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントである。
【００６５】
いくつかの実施形態では、プロジェクトコンポーネントは、限定はしないが、統一モデリング言語（ＵＭＬ）などの概念によって活用することができるトレーサビリティマップを使用して取り出すことができる。類似度スコアに基づいて１つ以上の既存の要件の１つを選択する際、ＵＭＬは、アクティビティ図、クラス図、および複合構造図などを使用して、トレーサビリティの確立を助け、要件を選択された既存の要件に関連する個々のコンポーネントにマッピングし、それらが他のソフトウェアコンポーネントと対話できる方法をマッピングできる。
【００６６】
図４は、本開示と一致する実施形態を実施するための例示的なコンピュータシステムのブロック図である。
【００６７】
一実施形態では、図４は、本発明による実施形態を実施するための例示的なコンピュータシステム４００のブロック図を示す。一実施形態では、コンピュータシステム４００は、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別するために使用される再利用性検出システム１０７とすることができる。コンピュータシステム４００は、中央処理装置（「ＣＰＵ」または「プロセッサ」）４０２を含み得る。プロセッサ４０２は、ユーザまたはシステム生成ビジネスプロセスを実行するためのプログラムコンポーネントを実行するための少なくとも１つのデータプロセッサを含み得る。ユーザは、人、本発明に含まれるものなどの装置を使用する人、またはそのような装置自体を含み得る。プロセッサ４０２は、統合システム（バス）コントローラ、メモリ管理制御ユニット、浮動小数点ユニット、グラフィック処理ユニット、デジタル信号処理ユニットなどの特殊な処理ユニットを含むことができる。
【００６８】
プロセッサ４０２は、入出力（Ｉ／Ｏ）インタフェース４０１を介して、１つまたは複数のＩ／Ｏ装置（４１１および４１２）と通信するように配置されてもよい。Ｉ／Ｏインタフェース４０１は、限定はしないが、オーディオ、アナログ、デジタル、ステレオ、ＩＥＥＥ−１３９４、シリアルバス、ユニバーサルシリアルバス（ＵＳＢ）、赤外線、ＰＳ／２、ＢＮＣ、同軸コンポーネント、複合、デジタルビジュアルインタフェース（ＤＶＩ）、高解像度マルチメディアインタフェース（ＨＤＭＩ（登録商標））、無線周波数（ＲＦ）アンテナ、Ｓビデオ、ビデオグラフィックアレイ（ＶＧＡ）、ＩＥＥＥ  ８０２．ｎ／ｂ／ｇ／ｎ／ｘ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、セルラ（例えば、符号分割多元接続（ＣＤＭＡ）、高速パケットアクセス（ＨＳＰＡ＋）、Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  Ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ（ＧＳＭ（登録商標））、ロングタームエボリューション（ＬＴＥ）、ＷｉＭａｘなど）などの通信プロトコル／方法を使用することができる。
【００６９】
Ｉ／Ｏインタフェース４０１を使用して、コンピュータシステム４００は１つまたは複数のＩ／Ｏ装置（４１１および４１２）と通信することができる。
【００７０】
いくつかの実施形態において、プロセッサ４０２は、ネットワークインタフェース４０３を介して通信ネットワーク４０９と通信するように配置されてもよい。ネットワークインタフェース４０３は、通信ネットワーク４０９と通信することができる。ネットワークインタフェース４０３は、直接接続、イーサネット（登録商標）（例えば、ツイストペア１０／１００／１０００Ｂａｓｅ  Ｔ）、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、トークンリング、ＩＥＥＥ  ８０２．１１ａ／ｂ／ｇ／ｎ／ｘなどを含むがこれらに限定されない接続プロトコルを使用することができる。ネットワークインタフェース４０３および通信ネットワーク４０９を使用して、コンピュータシステム４００は、データソース１  ４１０ａ〜データソースｎ  ４１０ｎ（１つまたは複数のデータソース４１０とも呼ばれる）およびデータベース４１３と通信することができる。通信ネットワーク４０９は、イントラネットまたはローカルエリアネットワーク（ＬＡＮ）などの組織内の様々な種類のネットワークのうちの１つとして実装することができる。通信ネットワーク４０９は、専用ネットワークまたは共有ネットワークのいずれかであり得、これは、様々なプロトコル、例えば、相互に通信するためにハイパーテキスト転送プロトコル（ＨＴＴＰ）、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、無線アプリケーションプロトコル（ＷＡＰ）などを使用する様々な種類のネットワークの関連を表す。さらに、通信ネットワーク４０９は、ルータ、ブリッジ、サーバ、コンピューティング装置、記憶装置などを含む様々なネットワーク装置を含み得る。１つまたは複数のデータソース４１０は、顧客および内容領域専門家（ＳＭＥ）を含むことができる。いくつかの実施形態において、プロセッサ４０２は、記憶装置インタフェース４０４を介してメモリ４０５（例えば、ＲＡＭ、ＲＯＭなど。図４には示されていない。）と通信するように配置されてもよい。記憶装置インタフェース４０４は、シリアル・アドバンスト・テクノロジ・アタッチメント（ＳＡＴＡ）、統合ドライブエレクトロニクス（ＩＤＥ）、ＩＥＥＥ−１３９４、ユニバーサルシリアルバス（ＵＳＢ）、ファイバチャネル、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ）などの接続プロトコルを使用して、メモリドライブ、リムーバブルディスクドライブなどを含むがこれに限定されないメモリ４０５に接続することができる。メモリドライブは、ドラム、磁気ディスクドライブ、光磁気ドライブ、光学ドライブ、リダンダント・アレイ・オブ・インエクスペンシブ・ディスクズ（ＲＡＩＤ）、ソリッドステートメモリデバイス、ソリッドステートドライブなどをさらに含み得る。
【００７１】
メモリ４０５は、ユーザインタフェース４０６、オペレーティングシステム４０７、ウェブブラウザ４０８などを含むがこれらに限定されない、プログラムまたはデータベースコンポーネントの集合を格納することができる。いくつかの実施形態では、コンピュータシステム４００は、本発明で説明されているように、データ、変数、レコードなどのユーザ／アプリケーションデータを格納することができる。そのようなデータベースは、ＯｒａｃｌｅまたはＳｙｂａｓｅなどのフォールトトレラント、リレーショナル、スケーラブル、安全なデータベースとして実装されてもよい。
【００７２】
オペレーティングシステム４０７は、リソース管理およびコンピュータシステム４００の動作を容易にすることができる。オペレーティングシステムの例には、限定するものではないが、Ａｐｐｌｅ  Ｍａｃｉｎｔｏｓｈ  ＯＳ  Ｘ、ＵＮＩＸ（登録商標）、Ｕｎｉｘのようなシステムディストリビューション（例：Ｂｅｒｋｅｌｅｙ  Ｓｏｆｔｗａｒｅ  Ｄｉｓｔｒｉｂｕｔｉｏｎ（ＢＳＤ）、ＦｒｅｅＢＳＤ、ＮｅｔＢＳＤ、ＯｐｅｎＢＳＤなど）、Ｌｉｎｕｘ（登録商標）ディストリビューション（例：Ｒｅｄ  Ｈａｔ、Ｕｂｕｎｔｕ、Ｋｕｂｕｎｔｕ等）、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ（ＩＢＭ）ＯＳ／２、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（ＸＰ、Ｖｉｓｔａ／７／８等）、Ａｐｐｌｅ  ｉＯＳ、Ｇｏｏｇｌｅ  Ａｎｄｒｏｉｄ、Ｂｌａｃｋｂｅｒｒｙ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）等が含まれる。ユーザインタフェース４０６は、テキストまたはグラフィック機能を介してプログラムコンポーネントの表示、実行、対話、操作、または動作を容易にすることができる。例えば、ユーザインタフェースは、カーソル、アイコン、チェックボックス、メニュー、スクローラ、ウィンドウ、ウィジェットなどの、コンピュータシステム４００に動作可能に接続されたディスプレイシステム上にコンピュータ対話インタフェース要素を提供することができる。限定するものではないが、Ａｐｐｌｅ  ＭａｃｉｎｔｏｓｈオペレーティングシステムのＡｑｕａ、ＩＢＭ  ＯＳ／２、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（例えば、Ａｅｒｏ、Ｍｅｔｒｏなど）、Ｕｎｉｘ  Ｘ−Ｗｉｎｄｏｗｓ、ウェブインタフェースライブラリ（例えば、ＡｃｔｉｖｅＸ、Ｊａｖａ（登録商標）、Ｊａｖａｓｃｒｉｐｔ（登録商標）、ＡＪＡＸ、ＨＴＭＬ、Ａｄｏｂｅ  Ｆｌａｓｈなど）などを含むグラフィカルユーザインタフェース（ＧＵＩ）を使用することができる。
【００７３】
いくつかの実施形態では、コンピュータシステム４００は、ウェブブラウザ４０８に格納されたプログラムコンポーネントを実装することができる。ウェブブラウザ４０８は、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ、Ｇｏｏｇｌｅ  Ｃｈｒｏｍｅ、Ｍｏｚｉｌｌａ  Ｆｉｒｅｆｏｘ、Ａｐｐｌｅ  Ｓａｆａｒｉ等などのハイパーテキスト閲覧アプリケーションであり得る。安全なウェブブラウジングは、Ｓｅｃｕｒｅ  Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ（ＨＴＴＰＳ）ｓｅｃｕｒｅ  ｓｏｃｋｅｔｓ  ｌａｙｅｒ（ＳＳＬ）、Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ（ＴＬＳ）などを使用して提供され得る。ウェブブラウザは、ＡＪＡＸ、ＤＨＴＭＬ、Ａｄｏｂｅ  Ｆｌａｓｈ、ＪａｖａＳｃｒｉｐｔ、Ｊａｖａ、Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅｓ（ＡＰＩ）等などの機能を利用することができる。いくつかの実施形態では、コンピュータシステム４００は、メールサーバ格納プログラムコンポーネントを実装することができる。メールサーバは、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅなどのインターネットメールサーバであり得る。メールサーバは、Ａｃｔｉｖｅ  Ｓｅｒｖｅｒ  Ｐａｇｅ（ＡＳＰ）、ＡｃｔｉｖｅＸ、米国規格協会（ＡＮＳＩ）Ｃ＋＋／Ｃ＃、Ｍｉｃｒｏｓｏｆｔ．ＮＥＴ、ＣＧＩスクリプト、Ｊａｖａ、ＪａｖａＳｃｒｉｐｔ、ＰＥＲＬ、ＰＨＰ、Ｐｙｔｈｏｎ、ＷｅｂＯｂｊｅｃｔｓなどの機能を利用することができる。メールサーバは、Ｉｎｔｅｒｎｅｔ  Ｍｅｓｓａｇｅ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＩＭＡＰ）、Ｍｅｓｓａｇｉｎｇ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ（ＭＡＰＩ）、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅ、Ｐｏｓｔ  Ｏｆｆｉｃｅ  Ｐｒｏｔｏｃｏｌ（ＰＯＰ）、Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＳＭＴＰ）等などの通信プロトコルを利用することができる。いくつかの実施形態では、コンピュータシステム４００は、メールクライアント格納プログラムコンポーネントを実装することができる。メールクライアントは、Ａｐｐｌｅ  Ｍａｉｌ、Ｍｉｃｒｏｓｏｆｔ  Ｅｎｔｏｕｒａｇｅ、Ｍｉｃｒｏｓｏｆｔ  Ｏｕｔｌｏｏｋ、Ｍｏｚｉｌｌａ  Ｔｈｕｎｄｅｒｂｉｒｄなどのメール表示アプリケーションであってもよい。
【００７４】
さらに、本発明による実施形態を実施する際に、１つまたは複数のコンピュータ可読記憶媒体を利用することができる。コンピュータ可読記憶媒体は、プロセッサによって読み取り可能な情報またはデータが格納され得る任意の種類の物理メモリを指す。したがって、コンピュータ可読記憶媒体は、本明細書で説明される実施形態によるステップまたは段階をプロセッサに実行させるための命令を含む、１つまたは複数のプロセッサによる実行のための命令を格納することができる。「コンピュータ可読媒体」という用語は、有形の品目を含み、搬送波および過渡信号、すなわち非一時的なものを排除すると理解されるべきである。例には、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、揮発性メモリ、不揮発性メモリ、ハードドライブ、コンパクトディスク（ＣＤ）ＲＯＭ、デジタルビデオディスク（ＤＶＤ）、フラッシュドライブ、ディスク、およびその他の既知の物理記憶媒体が含まれる。
【００７５】
本開示の実施形態の利点を本明細書に例示する。
【００７６】
一実施形態では、本開示は、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別するための方法およびシステムを提供する。再利用の機能により、最初から新しいプロジェクトモジュールを再構築するために必要となる膨大な時間、コスト、およびリソースが低減される。
【００７７】
本開示はＮＬＰベースであり、それは所定のテンプレートおよび分類法を使用して、顧客の要件を機械が理解できるプロファイルに手動で変換するプロセスを排除する。したがって、本開示は、再利用性を検出することに含まれるかなりの数の手順を排除し、それによって複雑さを軽減し、自動化されたユーザが使いやすい環境を作り出す。
【００７８】
本開示は、手動による介入を必要とするプロジェクトモジュールを開発する非効率的な方法を補うことによって生産性を高めるのに役立つ。
【００７９】
互いに通信するいくつかのコンポーネントを有する実施形態の説明は、そのようなコンポーネントすべてが必要とされることを意味するものではない。それどころか、本発明の様々な可能な実施形態を説明するために、様々な任意のコンポーネントが説明されている。
【００８０】
本明細書に単一の装置または物品が記載されている場合、（それらが協働するか否かに関わらず）複数の装置／物品を単一の装置または物品の代わりに使用することができることは明らかであろう。
【００８１】
同様に、本明細書に複数の装置または物品が記載されている場合（それらが協働するか否かに関わらず）、複数の装置または物品の代わりに単一の装置／物品を使用できるか、または示された数の装置またはプログラムの代わりに異なる数の装置／物品を使用することができることは明らかであろう。装置の機能および／または特徴は、そのような機能／特徴を有するものとして明示的に説明されていない１つまたは複数の他の装置によって代替的に具現化することができる。したがって、本発明の他の実施形態は装置自体を含む必要はない。
【００８２】
本明細書は、新しいプロジェクトを構築するための再利用可能なプロジェクトコンポーネントを識別するための方法およびシステムを説明している。示されたステップは、示された例示的な実施形態を説明するために示されており、進行中の技術開発は特定の機能が実行される方法を変えることを予想すべきである。これらの実施例は例示の目的で本明細書に提示されており、限定の目的ではない。さらに、機能的構成要素の境界は、説明の便宜上、本明細書では任意に定義されている。特定の機能およびそれらの関係が適切に実行される限り、代替の境界を定義することができる。代替形態（本明細書に記載されたものの等価物、拡張物、変形物、逸脱物などを含む）は、本明細書に含まれる教示に基づいて当業者には明らかであろう。そのような代替は、開示された実施形態の範囲および趣旨の範囲内に入る。また、「備える（ｃｏｍｐｒｉｓｉｎｇ）」、「有する（ｈａｖｉｎｇ）」、「包含する（ｃｏｎｔａｉｎｉｎｇ）」、および「含む（ｉｎｃｌｕｄｉｎｇ）」という単語、および他の同様の形態は、意味において同等であることを意図しており、またこれらの単語のうちの任意の１つに続く１つまたは複数の項目は、そのような１つまたは複数の項目の網羅的なリストであること、または列挙された１つまたは複数の項目のみに限定されることを意味するものではないという点で制限がない。本明細書および添付の特許請求の範囲で使用されるとき、単数形「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈が明らかにそうでないことを指示しない限り、複数の言及を含むことにも留意されたい。
【００８３】
最後に、本明細書で使用されている言語は、主に読みやすさおよび説明の目的で選択されており、本発明の主題を明確化するまたは範囲を限定するために選択されたものではない可能性がある。したがって、本発明の範囲は、この詳細な説明によってではなく、むしろ本明細書に基づく出願に発行される任意の請求項によって限定されることが意図されている。したがって、本発明の実施形態は、添付の特許請求の範囲に記載されている本発明の範囲を例示することを意図しており、限定することを意図していない。
【符号の説明】
【００８４】
参照番号  説明
１００  アーキテクチャ
１０３  １つまたは複数のデータソース
１０７  再利用性検出システム
１０９  プロセッサ
１１１  Ｉ／Ｏインタフェース
１１３  メモリ
２０３  データ
２０５  モジュール
２０９  入力データ
２１１  要件データ
２１３  類似度データ
２１４  スコアデータ
２１５  再利用履歴
２１７  再利用可能データ
２２１  その他のデータ
２３１  受信モジュール
２３３  要件抽出モジュール
２３５  意味解析モジュール
２３７  スコアリングモジュール
２３９  再利用性検出モジュール
２４１  その他のモジュール
４００  例示的なコンピュータシステム
４０１  例示的なコンピュータシステムのＩ／Ｏインタフェース
４０２  例示的なコンピュータシステムのプロセッサ
４０３  ネットワークインタフェース
４０４  記憶装置インタフェース
４０５  例示的なコンピュータシステムのメモリ
４０６  ユーザインタフェース
４０７  オペレーティングシステム
４０８  ウェブブラウザ
４０９  通信ネットワーク
４１０  例示的なコンピュータシステムの１つまたは複数のデータソース
４１１  入力装置
４１２  出力装置
４１３  データベース
【図１Ａ】
2020026680.tif 000004
【図１Ｂ】
2020026680.tif 000005
【図２Ａ】
2020026680.tif 000006
【図２Ｂ（１）】
2020026680.tif 000007
【図２Ｂ（２）】
2020026680.tif 000008
【図２Ｂ（３）】
2020026680.tif 000009
【図２Ｃ】
2020026680.tif 000010
【図３】
2020026680.tif 000011
【図４】
2020026680.tif 000012
【国際調査報告】
2020026680.tif 000013
2020026680.tif 000014