(57)【要約】  要素数特定部（２２）は、開発工程の各工程で生成された成果物の各構成要素を対象要素として、対象要素に関連する構成要素の数であって、隣接する工程で生成された成果物の構成要素の数を関連数として特定する。粒度判定部（２３）は、各工程で生成された成果物を対象成果物として、要素数特定部（２２）によって特定された対象成果物の各構成要素についての関連数と閾値とを比較することにより、対象成果物についての構成要素の粒度が適切であるか否かを判定する。
2019171445.tif 000002
【特許請求の範囲】
【請求項１】
開発工程の各工程で生成された成果物の各構成要素を対象要素として、前記対象要素に関連する構成要素の数であって、隣接する工程で生成された成果物の構成要素の数を関連数として特定する要素数特定部と、
前記各工程で生成された成果物を対象成果物として、前記要素数特定部によって特定された前記対象成果物の各構成要素についての前記関連数と閾値とを比較することにより、前記対象成果物についての構成要素の粒度が適切であるか否かを判定する粒度判定部と
を備えるトレーサビリティ管理装置。
【請求項２】
前記要素数特定部は、前記各工程を対象工程とし、前記対象工程で生成された成果物の各構成要素を対象要素として、前記対象要素に関連する構成要素の数であって、前記対象工程に隣接する上流工程で生成された成果物の構成要素の数を上流関連数として特定するとともに、前記対象要素に関連する構成要素の数であって、前記対象工程に隣接する下流工程で生成された成果物の構成要素の数を下流関連数として特定し、
前記粒度判定部は、前記対象成果物の各構成要素についての前記上流関連数と前記閾値とを比較するとともに、前記対象成果物の各構成要素についての前記下流関連数と前記閾値とを比較することにより、前記対象成果物についての構成要素の粒度が適切であるか否かを判定する
請求項１に記載のトレーサビリティ管理装置。
【請求項３】
前記粒度判定部は、前記上流関連数が前記閾値以上であり、かつ、前記下流関連数が前記閾値以上である場合と、前記上流関連数が前記閾値未満であり、かつ、前記下流関連数が前記閾値以上である場合と、前記上流関連数が前記閾値以上であり、かつ、前記下流関連数が前記閾値未満であり、かつ、前記下流関連数が１でない場合とは、前記粒度が不適切であると判定する
請求項２に記載のトレーサビリティ管理装置。
【請求項４】
前記要素数特定部は、前記粒度判定部によって前記粒度が不適切であると判定された場合に、修正された成果物である修正後成果物の各構成要素を対象要素として、前記対象要素に関連する構成要素の数であって、隣接する工程で生成された成果物の構成要素の数を修正後関連数として特定し、
前記トレーサビリティ管理装置は、さらに、
修正前の成果物についての前記関連数と、前記修正後成果物についての前記修正後関連数との差分を表す差分情報を特定する学習部
を備える請求項１から３までのいずれか１項に記載のトレーサビリティ管理装置。
【請求項５】
前記トレーサビリティ管理装置は、さらに、
前記粒度判定部によって判定された結果と、他の開発工程についての前記差分情報とを表示する表示部
を備える請求項４に記載のトレーサビリティ管理装置。
【請求項６】
要素数特定部が、開発工程の各工程で生成された成果物の各構成要素を対象要素として、前記対象要素に関連する構成要素の数であって、隣接する工程で生成された成果物の構成要素の数を関連数として特定し、
粒度判定部が、前記各工程で生成された成果物を対象成果物として、前記対象成果物の各構成要素についての前記関連数と閾値とを比較することにより、前記対象成果物についての構成要素の粒度が適切であるか否かを判定するトレーサビリティ管理方法。
【請求項７】
開発工程の各工程で生成された成果物の各構成要素を対象要素として、前記対象要素に関連する構成要素の数であって、隣接する工程で生成された成果物の構成要素の数を関連数として特定する要素数特定処理と、
前記各工程で生成された成果物を対象成果物として、前記要素数特定処理によって特定された前記対象成果物の各構成要素についての前記関連数と閾値とを比較することにより、前記対象成果物についての構成要素の粒度が適切であるか否かを判定する粒度判定処理と
をコンピュータに実行させるトレーサビリティ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソフトウェア等の製品開発における成果物の構成要素間のトレーサビリティ構築技術に関する。
【背景技術】
【０００２】
ソフトウェアの開発では、過去に開発されたソフトウェアを流用する流用開発が行われる場合がある。この場合には、上流の設計工程の要件変更が下流の工程のソフトウェア機能仕様及びソースコードに及ぼす影響範囲を可視化する必要がある。影響範囲を可視化することにより、下流の工程への影響を考慮して上流の工程での設計が可能になる。
この可視化技術は、トレーサビリティ技術と呼ばれている。トレーサビリティ技術では、具体的には、成果物を構成する構成要素毎に、隣接する工程の成果物の構成要素との対応関係が特定される。【０００３】
ソフトウェアの開発規模の増加と繰り返される流用開発に伴い、成果物間で強い依存関係を有する場合が増加している。この場合、上流文書の要件修正により影響を受ける下流文書の仕様範囲を特定することが困難となることがある。【０００４】
特許文献１には、複数の工程の成果物間の対応付けを行い、適合性確認及び妥当性検証を行う技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１３７７４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
トレーサビリティ技術では、成果物を構成する構成要素単位で対応関係が特定される。特許文献１に記載された技術では、構成要素の粒度に関する指針が示されておらず、構成要素の粒度の設定は開発者による判断が必要であった。
構成要素の粒度が細かいほど、要件変更時の下流への影響を的確に特定することができる。一方で、構成要素の粒度が細か過ぎると、対応関係を特定するために多くの時間を要する。そのため、開発者が対応関係を保守可能な構成要素の粒度を設定することになる。しかし、構成要素の粒度が粗すぎる場合、下流の工程への影響が広く出過ぎてしまい、影響範囲を特定することが困難になる。
この発明は、適切な構成要素の粒度でのトレーサビリティの構築を支援することを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係るトレーサビリティ管理装置は、
開発工程の各工程で生成された成果物の各構成要素を対象要素として、前記対象要素に関連する構成要素の数であって、隣接する工程で生成された成果物の構成要素の数を関連数として特定する要素数特定部と、
前記各工程で生成された成果物を対象成果物として、前記要素数特定部によって特定された前記対象成果物の各構成要素についての前記関連数と閾値とを比較することにより、前記対象成果物についての構成要素の粒度が適切であるか否かを判定する粒度判定部と
を備える。
【発明の効果】
【０００８】
この発明では、各構成要素に関連する、隣接する工程で生成された成果物の構成要素の数に基づき、成果物における構成要素の粒度が適切であるか否かが判定される。これにより、構成要素の粒度を是正することが可能になり、適切な構成要素の粒度でのトレーサビリティを構築することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係るトレーサビリティ管理装置１０の構成図。
【図２】実施の形態１に係るトレーサビリティ管理装置１０の全体的な動作を示すフローチャート。
【図３】実施の形態１に係るトレーサビリティテーブル３１を示す図。
【図４】実施の形態１に係る関連数テーブル３２を示す図。
【図５】実施の形態１に係る粒度判定処理のフローチャート。
【図６】変形例２に係るトレーサビリティ管理装置１０の構成図。
【図７】実施の形態２に係るトレーサビリティ管理装置１０の構成図。
【図８】実施の形態２に係る学習処理のフローチャート。
【発明を実施するための形態】
【００１０】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１を参照して、実施の形態１に係るトレーサビリティ管理装置１０の構成を説明する。
トレーサビリティ管理装置１０は、コンピュータである。
トレーサビリティ管理装置１０は、プロセッサ１１と、メモリ１２と、ストレージ１３と、通信インタフェース１４とのハードウェアを備える。プロセッサ１１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００１１】
プロセッサ１１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ１１は、具体例としては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００１２】
メモリ１２は、データを一時的に記憶する記憶装置である。メモリ１２は、具体例としては、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００１３】
ストレージ１３は、データを保管する記憶装置である。ストレージ１３は、具体例としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。また、ストレージ１３は、ＳＤ（登録商標，Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、ＣＦ（ＣｏｍｐａｃｔＦｌａｓｈ，登録商標）、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）といった可搬記録媒体であってもよい。
【００１４】
通信インタフェース１４は、外部の装置と通信するためのインタフェースである。通信インタフェース１４は、具体例としては、Ｅｔｈｅｒｎｅｔ（登録商標）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＨＤＭＩ（登録商標，Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）のポートである。
【００１５】
トレーサビリティ管理装置１０は、機能構成要素として、受付部２１と、要素数特定部２２と、粒度判定部２３と、表示部２４とを備える。トレーサビリティ管理装置１０の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ１３には、トレーサビリティ管理装置１０の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ１１によりメモリ１２に読み込まれ、プロセッサ１１によって実行される。これにより、トレーサビリティ管理装置１０の各機能構成要素の機能が実現される。
【００１６】
ストレージ１３は、トレーサビリティテーブル３１と、関連数テーブル３２とを記憶する。
【００１７】
図１では、プロセッサ１１は、１つだけ示されていた。しかし、プロセッサ１１は、複数であってもよく、複数のプロセッサ１１が、各機能を実現するプログラムを連携して実行してもよい。
【００１８】
＊＊＊動作の説明＊＊＊
図２から図５を参照して、実施の形態１に係るトレーサビリティ管理装置１０の動作を説明する。
実施の形態１に係るトレーサビリティ管理装置１０の動作は、実施の形態１に係るトレーサビリティ管理方法に相当する。また、実施の形態１に係るトレーサビリティ管理装置１０の動作は、実施の形態１に係るトレーサビリティ管理プログラムの処理に相当する。
【００１９】
実施の形態１では、ソフトウェアといった製品の開発工程が、上流設計工程と、下流設計工程と、実装工程との３つの工程であると仮定して説明する。
実施の形態１では、上流設計工程では、成果物として上流文書が生成され、下流設計工程では、成果物として下流文書が生成され、実装工程では、成果物としてソースコードが生成されるとする。
【００２０】
図２を参照して、実施の形態１に係るトレーサビリティ管理装置１０の全体的な動作を説明する。
（ステップＳ１１：受付処理）
受付部２１は、開発工程の各工程で生成された成果物と、隣接する工程で生成された成果物における構成要素間の対応関係を示す関連情報との入力を受け付ける。
具体的には、受付部２１は、開発者等によって入力装置を介して入力された成果物及び関連情報を、通信インタフェース１４を介して受け付ける。ここでは、受付部２１は、上流文書と下流文書とソースコードとの成果物と、上流文書における構成要素と下流文書における構成要素との間の対応関係を示す第１関連情報と、下流文書における構成要素とソースコードにおける構成要素との間の対応関係を示す第２関連情報とを受け付ける。受付部２１は、上流文書と下流文書とソースコードと、第１関連情報と第２関連情報とをメモリ１２に書き込む。
【００２１】
上流文書における構成要素とは、具体例としては製品機能である。下流文書における構成要素とは、具体例としてはソフトウェア要件と制御動作とである。ソースコードにおける構成要素とは、具体例としては関数である。
【００２２】
関連情報は、各成果物の構成要素中に埋め込まれた、隣接する成果物における対応する構成要素を示す情報であってもよい。また、関連情報は、成果物とは別に用意された、対応する構成要素を示す情報であってもよい。
【００２３】
（ステップＳ１２：要素数特定処理）
要素数特定部２２は、開発工程の各工程で生成された成果物の各構成要素を対象要素として、対象要素に関連する構成要素の数であって、隣接する工程で生成された成果物の構成要素の数を関連数として特定する。
ここでは、要素数特定部２２は、各工程を対象工程とし、対象工程で生成された成果物の各構成要素を対象要素として、対象要素に関連する構成要素の数であって、対象工程に隣接する上流工程で生成された成果物の構成要素の数を上流関連数として特定する。また、要素数特定部２２は、対象要素に関連する構成要素の数であって、対象工程に隣接する下流工程で生成された成果物の構成要素の数を下流関連数として特定する。
【００２４】
具体的には、要素数特定部２２は、上流文書と下流文書とソースコードと、第１関連情報と第２関連情報とをメモリ１２から読み出す。
要素数特定部２２は、各成果物から構成要素を抽出し、抽出された構成要素をトレーサビリティテーブル３１に書き込む。ここでは、図３に示すように、トレーサビリティテーブル３１は、上流文書の構成要素が各列に設定され、下流文書の構成要素が各行に設定された上流テーブルと、下流文書の構成要素が各行に設定され、ソースコードの構成要素が各列に設定された下流テーブルとを有する。
要素数特定部２２は、上流文書から抽出された構成要素を、上流テーブルの各列に書き込む。要素数特定部２２は、下流文書から抽出された構成要素を、上流テーブルの各行と、下流テーブルの各行とに書き込む。要素数特定部２２は、ソースコードから抽出された構成要素を、下流テーブルの各列に書き込む。
ここでは、上流文書からはｎ個の構成要素が抽出され、下流文書からはｔ個の構成要素が抽出され、ソースコードからはｍ個の構成要素が抽出されたとする。
【００２５】
要素数特定部２２は、隣接する工程の成果物における各構成要素間に対応関係があるか否かを判定する。ここでは、要素数特定部２２は、上流文書の各構成要素と、下流文書の各構成要素との間に対応関係があるか否かを判定するとともに、下流文書の各構成要素と、ソースコードの各構成要素との間に対応関係があるか否かを判定する。そして、要素数特定部２２は、対応関係がある場合には、トレーサビリティテーブル３１の対象の欄に１を書き込み、対応関係がない場合には、トレーサビリティテーブル３１の対象の欄に０を書き込む。対象の欄とは、対象の構成要素の行と列とが交差する欄である。
【００２６】
要素数特定部２２は、トレーサビリティテーブル３１の上流テーブルを参照して、上流文書から抽出された各構成要素を対象として、対象の構成要素と対応関係がある下流文書の構成要素の数を下流関連数として特定する。同様に、要素数特定部２２は、トレーサビリティテーブル３１の下流テーブルを参照して、下流文書から抽出された各構成要素を対象として、対象の構成要素と対応関係があるソースコードの構成要素の数を下流関連数として特定する。
また、要素数特定部２２は、トレーサビリティテーブル３１の上流テーブルを参照して、下流文書から抽出された各構成要素を対象として、対象の構成要素と対応関係がある上流文書の構成要素の数を上流関連数として特定する。同様に、要素数特定部２２は、トレーサビリティテーブル３１の下流テーブルを参照して、ソースコードから抽出された各構成要素を対象として、対象の構成要素と対応関係がある下流文書の構成要素の数を上流関連数として特定する。
図４に示すように、要素数特定部２２は、各構成要素について特定された下流関連数及び上流関連数を関連数テーブル３２に書き込む。その結果、上流文書から抽出されたｎ個の構成要素それぞれについての下流関連数と、下流文書から抽出されたｔこの構成要素それぞれについての上流関連数及び下流関連数と、ソースコードから抽出されたｍ個の構成要素それぞれについての上流関連数とが関連数テーブル３２に書き込まれる。
【００２７】
（ステップＳ１３：粒度判定処理）
粒度判定部２３は、各工程で生成された成果物を対象成果物として、対象成果物の各構成要素についての関連数と閾値とを比較することにより、対象成果物についての構成要素の粒度が適切であるか否かを判定する。ここでは、対象成果物の各構成要素についての上流関連数と閾値とを比較するとともに、対象成果物の各構成要素についての下流関連数と閾値とを比較することにより、対象成果物についての構成要素の粒度が適切であるか否かを判定する。粒度判定部２３は、判定された結果をメモリ１２に書き込む。
粒度判定処理について詳しくは後述する。
【００２８】
（ステップＳ１４：結果表示処理）
表示部２４は、ステップＳ１３で判定された結果を表示する。
具体的には、表示部２４は、判定された結果をメモリ１２から読み出す。表示部２４は、通信インタフェース１４を介して表示装置に判定された結果を出力し、表示装置に判定された結果を表示させる。これにより、粒度が不適切であると判定された成果物について、粒度の修正を促す。
【００２９】
図５を参照して、実施の形態１に係る粒度判定処理（図２のステップＳ１３）を説明する。
（ステップＳ２１：閾値算出処理）
粒度判定部２３は、関連数に基づき閾値を計算する。
具体例としては、粒度判定部２３は、関連数の平均に、補正値を加えて閾値を計算する。この際、粒度判定部２３は、処理の対象としている製品の成果物についての関連数だけでなく、これまでに処理の対象とした製品の成果物についての関連数も考慮して閾値を計算してもよい。例えば、粒度判定部２３は、処理の対象とした製品の成果物についての関連数の平均に、補正値を加えて閾値を計算してもよい。
また、粒度判定部２３は、処理の対象としている製品の各成果物に含まれる構成要素の数を考慮して閾値を計算してもよい。例えば、粒度判定部２３は、構成要素の数に応じて補正値を決定してもよい。粒度判定部２３は、構成要素の数が多くなるほど、補正値を大きくしてもよい。
なお、閾値は、全ての成果物に共通の値を設定してもよいし、成果物毎に異なる値を設定してもよい。
【００３０】
ステップＳ２２からステップＳ３０の処理は、各成果物から抽出された各構成要素を対象要素として実行される。
【００３１】
（ステップＳ２２：上流判定処理）
粒度判定部２３は、対象要素についての上流関連数が閾値以上であるか否かを判定する。
粒度判定部２３は、上流関連数が閾値未満である場合には、処理をステップＳ２３に進める。一方、粒度判定部２３は、上流関連数が閾値以上である場合には、処理をステップＳ２４に進める。
なお、最上流の成果物から抽出された構成要素については、上流関連数が存在しない。ここでは、この場合には、粒度判定部２３は、処理をステップＳ２３に進める。
【００３２】
（ステップＳ２３：第１下流判定処理）
粒度判定部２３は、対象要素についての下流関連数が閾値以上であるか否かを判定する。
粒度判定部２３は、下流関連数が閾値未満である場合には、処理をステップＳ２６に進める。一方、粒度判定部２３は、下流関連数が閾値以上である場合には、処理をステップＳ２７に進める。
なお、最下流の成果物から抽出された構成要素については、下流関連数が存在しない。ここでは、この場合には、粒度判定部２３は、処理をステップＳ２６に進める。
【００３３】
（ステップＳ２４：第２下流判定処理）
粒度判定部２３は、対象要素についての下流関連数が閾値以上であるか否かを判定する。
粒度判定部２３は、下流関連数が閾値未満である場合には、処理をステップＳ２５に進める。一方、粒度判定部２３は、下流関連数が閾値以上である場合には、処理をステップＳ３０に進める。
【００３４】
（ステップＳ２５：関連数判定処理）
粒度判定部２３は、対象要素についての下流関連数が１であるか否かを判定する。
粒度判定部２３は、対象要素についての下流関連数が１でない場合には、処理をステップＳ２８に進める。一方、粒度判定部２３は、対象要素についての下流関連数が１である場合には、処理をステップＳ２９に進める。
【００３５】
（ステップＳ２６：第１対応処理）
粒度判定部２３は、上流関連数及び下流関連数が閾値未満のため、対象要素の粒度は適切であると判定する。つまり、粒度判定部２３は、対象要素に関して粒度を修正する必要はないと判定する。
【００３６】
（ステップＳ２７：第２対応処理）
粒度判定部２３は、上流関連数は閾値未満であるが、下流関連数が閾値以上であり、下流側の成果物における関連する構成要素数が多いため、対象要素の粒度が不適切であると判定する。つまり、粒度判定部２３は、対象要素の粒度が大きいため、粒度を小さくする必要があると判定する。
【００３７】
（ステップＳ２８：第３対応処理）
粒度判定部２３は、下流関連数は閾値未満であるが、上流関連数が閾値以上であり、上流側の成果物における関連する構成要素数が多いため、対象要素の粒度が不適切であると判定する。つまり、粒度判定部２３は、対象要素の粒度が大きいため、粒度を小さくする必要があると判定する。
【００３８】
（ステップＳ２９：第４対応処理）
粒度判定部２３は、上流関連数が閾値以上であるが、下流関連数が１であるため、多くの機能等に共通の要素であると判定する。つまり、ソフトウェア等には、多くの機能で用いられる共通関数といった共通の要素が存在する。共通の要素は、単体では特別な意味を持たず、様々な構成要素と関連する要素である。この場合には、下流の成果物における対応関係がある構成要素は１つだけになる場合が多い。そこで、粒度判定部２３は、上流関連数が閾値以上であっても、下流関連数が１である場合には、対象要素の粒度は適切であると判定する。すなわち、粒度判定部２３は、対象要素に関して粒度を修正する必要はないと判定する。
ただし、“１”とするのは一例であり、共通の要素を区別するために用いることができる値であれば“１”以外であってもよい。
【００３９】
（ステップＳ３０：第５対応処理）
粒度判定部２３は、上流関連数及び下流関連数が閾値以上であり、上流側及び下流側の成果物における関連する構成要素数が多いため、対象要素の粒度が不適切であると判定する。つまり、粒度判定部２３は、対象要素の粒度が大きいため、粒度を小さくする必要があると判定する。
【００４０】
＊＊＊実施の形態１の効果＊＊＊
以上のように、実施の形態１に係るトレーサビリティ管理装置１０は、各構成要素に関連する、隣接する工程で生成された成果物の構成要素の数に基づき、成果物における構成要素の粒度が適切であるか否かが判定される。これにより、構成要素の粒度を是正することが可能になり、適切な構成要素の粒度でのトレーサビリティを構築することが可能になる。
【００４１】
＊＊＊他の構成＊＊＊
＜変形例１＞
実施の形態１では、ソフトウェアといった製品の開発工程が、上流設計工程と、下流設計工程と、実装工程との３つの工程であると仮定した。しかし、開発工程は、２つの工程であってもよいし、４つ以上の工程であってもよい。
開発工程が４つの工程である場合には、最上流の工程を実施の形態１における上流工程とみなし、実装工程を除く残りの工程を実施の形態１における下流設計工程とみなして処理をしてもよい。
【００４２】
また、実施の形態１では、各開発工程の成果物が１つである場合を例として説明した。しかし、各開発工程の成果物は複数であってもよい。この場合には、各成果物間で構成要素の関連付けが行われる。
例えば、上流設計工程において、上流文書１ａと、上流文書１ｂとが生成され、下流設計工程において、下流文書１と、下流文書２と、下流文書３とが生成されるとする。この場合には、上流文書１ａと下流文書１との間の関連付けが行われ、上流文書１ａと下流文書２との間の関連付けが行われ、上流文書１ａと下流文書３との間の関連付けが行われる。また、上流文書１ｂと下流文書１との間の関連付けが行われ、上流文書１ｂと下流文書２との間の関連付けが行われ、上流文書１ｂと下流文書３との間の関連付けが行われる。
【００４３】
＜変形例２＞
実施の形態１では、各機能構成要素がソフトウェアで実現された。しかし、変形例２として、各機能構成要素はハードウェアで実現されてもよい。この変形例２について、実施の形態１と異なる点を説明する。
【００４４】
図６を参照して、変形例２に係るトレーサビリティ管理装置１０の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、トレーサビリティ管理装置１０は、プロセッサ１１とメモリ１２とストレージ１３とに代えて、電子回路１５を備える。電子回路１５は、各機能構成要素と、メモリ１２と、ストレージ１３との機能とを実現する専用の回路である。
【００４５】
電子回路１５としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が想定される。
各機能構成要素を１つの電子回路１５で実現してもよいし、各機能構成要素を複数の電子回路１５に分散させて実現してもよい。
【００４６】
＜変形例３＞
変形例３として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
【００４７】
プロセッサ１１とメモリ１２とストレージ１３と電子回路１５とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。
【００４８】
実施の形態２．
実施の形態２は、修正された成果物である修正後成果物について関連数を特定し、修正前後の差分をユースケースとして学習する点が実施の形態１と異なる。実施の形態２では、この異なる点を説明し、同一の点については説明を省略する。
【００４９】
＊＊＊構成の説明＊＊＊
図７を参照して、実施の形態２に係るトレーサビリティ管理装置１０の構成を説明する。
トレーサビリティ管理装置１０は、学習部２５を備える点が図１に示すトレーサビリティ管理装置１０と異なる。また、トレーサビリティ管理装置１０は、ストレージ１３がユースケースデータ３３を記憶する点が図１に示すトレーサビリティ管理装置１０と異なる。
【００５０】
＊＊＊動作の説明＊＊＊
図２及び図８を参照して、実施の形態２に係るトレーサビリティ管理装置１０の動作を説明する。
実施の形態２に係るトレーサビリティ管理装置１０の動作は、実施の形態２に係るトレーサビリティ管理方法に相当する。また、実施の形態２に係るトレーサビリティ管理装置１０の動作は、実施の形態２に係るトレーサビリティ管理プログラムの処理に相当する。
【００５１】
図２を参照して、実施の形態２に係るトレーサビリティ管理装置１０の全体的な動作を説明する。
ステップＳ１１からステップＳ１３の処理は、実施の形態１と同じである。
【００５２】
（ステップＳ１４：結果表示処理）
表示部２４は、ステップＳ１３で判定された結果を表示する。この際、表示部２４は、ストレージ１３からユースケースデータ３３を読み出して、判定された結果と合わせて表示する。
ユースケースデータ３３は、後述する学習処理でストレージ１３に書き込まれる。
【００５３】
図８を参照して、実施の形態２に係る学習処理を説明する。
学習処理は、図２のステップＳ１３で粒度が不適切であると判定され、成果物が修正された場合に実行される。ここでは、上流文書と下流文書とソースコードとの少なくともいずれか成果物が修正された場合に、学習処理は実行される。
【００５４】
（ステップＳ３１：受付処理）
受付部２１は、修正された成果物である修正後成果物と、修正後成果物についての関連情報である修正関連情報との入力を受け付ける。
具体的には、受付部２１は、開発者等によって入力装置を介して入力された修正成果物及び修正関連情報を、通信インタフェース１４を介して受け付ける。ここでは、受付部２１は、修正成果物である上流文書と下流文書とソースコードと、修正関連情報である第１関連情報と第２関連情報とを受け付ける。ここで、上流文書と下流文書とソースコードとの全てが修正されている場合に限らず、上流文書と下流文書とソースコードと一部が修正されている場合もある。上流文書と下流文書とソースコードと一部が修正されている場合であっても、上流文書と下流文書とソースコードとを修正成果物と呼ぶ。
【００５５】
（ステップＳ３２：要素数特定処理）
要素数特定部２２は、修正後成果物の各構成要素を対象要素として、対象要素に関連する構成要素の数であって、隣接する工程で生成された成果物の構成要素の数を修正後関連数として特定する。
ここでは、要素数特定部２２は、図２のステップＳ１２と同様に、上流関連数と下流関連数とを修正後関連数として特定する。具体的には、要素数特定部２２は、図２のステップＳ１２と同様に、修正後成果物についても、トレーサビリティテーブル３１及び関連数テーブル３２を生成する。
【００５６】
（ステップＳ３３：差分抽出処理）
学習部２５は、ステップＳ３２で生成されたトレーサビリティテーブル３１と、修正前の成果物について、図２のステップＳ１２で生成されたトレーサビリティテーブル３１とを照合して、差分を特定する。同様に、学習部２５は、関連数テーブル３２で生成された関連数テーブル３２と、修正前の成果物について、図２のステップＳ１２で生成された関連数テーブル３２とを照合して、差分を特定する。
学習部２５は、抽出された差分を示す差分情報をユースケースデータ３３としてストレージ１３に書き込む。なお、ユースケースデータ３３に、トレーサビリティを再構築した理由を含めてもよい。
【００５７】
＊＊＊実施の形態２の効果＊＊＊
以上のように、実施の形態２に係るトレーサビリティ管理装置１０は、修正前後のトレーサビリティテーブル３１及び関連数テーブル３２の差分情報をユースケースデータ３３として蓄積する。これにより、粒度が不適切であると判定された場合に、どのように成果物を修正すればよいかの参考としてユースケースデータ３３を示すことが可能である。
【００５８】
以上、この発明の実施の形態及び変形例について説明した。これらの実施の形態及び変形例のうち、いくつかを組み合わせて実施してもよい。また、いずれか１つ又はいくつかを部分的に実施してもよい。なお、この発明は、以上の実施の形態及び変形例に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００５９】
１０  トレーサビリティ管理装置、１１  プロセッサ、１２  メモリ、１３  ストレージ、１４  通信インタフェース、１５  電子回路、２１  受付部、２２  要素数特定部、２３  粒度判定部、２４  表示部、２５  学習部、３１  トレーサビリティテーブル、３２  関連数テーブル、３３  ユースケースデータ。
【図１】
2019171445.tif 000003
【図２】
2019171445.tif 000004
【図３】
2019171445.tif 000005
【図４】
2019171445.tif 000006
【図５】
2019171445.tif 000007
【図６】
2019171445.tif 000008
【図７】
2019171445.tif 000009
【図８】
2019171445.tif 000010
【国際調査報告】
2019171445.tif 000011
2019171445.tif 000012
2019171445.tif 000013
2019171445.tif 000014