(57)【要約】【課題】ソフトウェア開発の際に作成される文書に関して必要事項の記載漏れを効果的に抑制することのできる文書検査方法を提供する。【解決手段】検査対象文書の記述内容を解析することによって得られる結果と各処理の処理名および内容を定義した処理定義データとを照合して検査対象文書の記述内容に関連する処理の名称（処理名）を抽出する処理名抽出処理（Ｓ１０）と、処理名抽出処理で抽出された処理名の処理に関連する管理レコード（要求レコードおよび障害レコード）をデータベースから抽出して、その抽出した管理レコードの一覧表示を行う要求・障害リスト化処理（Ｓ２０）と、関連する２つの文書の間で処理名の対応付けを行い、対応付けられた処理名に関する２つの文書の記述内容を比較表示する比較表示処理（Ｓ３０）とを順次に行う。【選択図】図６
2018026029.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア開発で作成される文書を検査する方法であって、
検査対象文書の記述内容の解析結果と各処理の処理名および内容を定義した処理定義データとを照合することにより、前記検査対象文書の記述内容に関連する処理名を抽出する処理名抽出ステップと、
処理名を格納するための処理名フィールドを有する複数の管理レコードを格納する管理データ格納手段から前記処理名フィールドに前記処理名抽出ステップで抽出された処理名が格納されている管理レコードを抽出し、その抽出した管理レコードの一覧表示を行う関連管理レコードリスト化ステップと
を含むことを特徴とする、文書検査方法。
【請求項２】
指定された２つの文書のうちの一方を比較元文書、他方を比較先文書として当該２つの文書の間で処理名の対応付けを行い、対応付けられた処理名に関する前記比較元文書の記述内容と前記比較先文書の記述内容とが並べられた画面である比較画面を表示する比較表示ステップを更に含むことを特徴とする、請求項１に記載の文書検査方法。
【請求項３】
前記比較表示ステップでは、前記比較元文書および前記比較先文書の指定を受け付けるために、一覧形式で表示される複数の文書の中から前記比較元文書を選択するための比較元文書指定領域と一覧形式で表示される複数の文書の中から前記比較先文書を選択するための比較先文書指定領域とを含む画面が表示され、
前記比較元文書指定領域の初期状態は、前記検査対象文書が選択された状態となっていて、
前記比較先文書指定領域は、前記関連管理レコードリスト化ステップで一覧表示された管理レコードに関連する文書が選択可能な状態となっていることを特徴とする、請求項２に記載の文書検査方法。
【請求項４】
前記比較表示ステップは、
前記比較元文書の記述内容を所定の規則に従ってタイトルと当該タイトルに関する説明文とに分割する比較元文書分割ステップと、
前記比較先文書の記述内容を前記所定の規則に従ってタイトルと当該タイトルに関する説明文とに分割する比較先文書分割ステップと、
前記比較画面を表示する表示ステップと
を含み、
前記表示ステップでは、前記比較元文書に関して選択されたタイトルに関する説明文と前記比較先文書に関して選択されたタイトルに関する説明文とが前記比較画面に並べて表示されることを特徴とする、請求項２または３に記載の文書検査方法。
【請求項５】
前記処理名抽出ステップは、
前記検査対象文書の記述内容に対して形態素解析を含む解析処理を施す第１の解析ステップと、
前記第１の解析ステップで得られた解析結果に基づいて、前記処理定義データを構成する各処理定義レコードで定義されている処理名と前記検査対象文書の記述内容との関連性の有無を判断する第２の解析ステップと
を含むことを特徴とする、請求項１から４までのいずれか１項に記載の文書検査方法。
【請求項６】
前記第２の解析ステップでは、
前記第１の解析ステップで得られた解析結果と各処理定義レコードとを用いた複数の検索処理であって、それぞれ結果に応じて処理に用いられた処理定義レコードで定義されている処理名に付与するポイント数が定められた前記複数の検索処理が行われ、
各処理名に付与されたポイント数に基づいて、各処理名と前記検査対象文書の記述内容との関連性の有無が判断されることを特徴とする、請求項５に記載の文書検査方法。
【請求項７】
前記処理定義データは、各処理につき複数の処理名を定義することができるように構成されていることを特徴とする、請求項１から６までのいずれか１項に記載の文書検査方法。
【請求項８】
前記複数の管理レコードには、対象のソフトウェアに求められる要求に関する情報を保持する要求レコードが含まれていることを特徴とする、請求項１から７までのいずれか１項に記載の文書検査方法。
【請求項９】
前記複数の管理レコードには、更に、対象のソフトウェアで生じた障害に関する情報を保持する障害レコードが含まれていることを特徴とする、請求項８に記載の文書検査方法。
【請求項１０】
ソフトウェア開発で作成される文書を検査するプログラムであって、
検査対象文書の記述内容の解析結果と各処理の処理名および内容を定義した処理定義データとを照合することにより、前記検査対象文書の記述内容に関連する処理名を抽出する処理名抽出ステップと、
処理名を格納するための処理名フィールドを有する複数の管理レコードを格納する管理データ格納手段から前記処理名フィールドに前記処理名抽出ステップで抽出された処理名が格納されている管理レコードを抽出し、その抽出した管理レコードの一覧表示を行う関連管理レコードリスト化ステップと
をコンピュータのＣＰＵがメモリを利用して実行することを特徴とする、文書検査プログラム。
【請求項１１】
指定された２つの文書のうちの一方を比較元文書、他方を比較先文書として当該２つの文書の間で処理名の対応付けを行い、対応付けられた処理名に関する前記比較元文書の記述内容と前記比較先文書の記述内容とが並べられた画面である比較画面を表示する比較表示ステップを更に含むことを特徴とする、請求項１０に記載の文書検査プログラム。
【請求項１２】
前記比較表示ステップでは、前記比較元文書および前記比較先文書の指定を受け付けるために、一覧形式で表示される複数の文書の中から前記比較元文書を選択するための比較元文書指定領域と一覧形式で表示される複数の文書の中から前記比較先文書を選択するための比較先文書指定領域とを含む画面が表示され、
前記比較元文書指定領域の初期状態は、前記検査対象文書が選択された状態となっていて、
前記比較先文書指定領域は、前記関連管理レコードリスト化ステップで一覧表示された管理レコードに関連する文書が選択可能な状態となっていることを特徴とする、請求項１１に記載の文書検査プログラム。
【請求項１３】
前記比較表示ステップは、
前記比較元文書の記述内容を所定の規則に従ってタイトルと当該タイトルに関する説明文とに分割する比較元文書分割ステップと、
前記比較先文書の記述内容を前記所定の規則に従ってタイトルと当該タイトルに関する説明文とに分割する比較先文書分割ステップと、
前記比較画面を表示する表示ステップと
を含み、
前記表示ステップでは、前記比較元文書に関して選択されたタイトルに関する説明文と前記比較先文書に関して選択されたタイトルに関する説明文とが前記比較画面に並べて表示されることを特徴とする、請求項１１または１２に記載の文書検査プログラム。
【請求項１４】
前記処理名抽出ステップは、
前記検査対象文書の記述内容に対して形態素解析を含む解析処理を施す第１の解析ステップと、
前記第１の解析ステップで得られた解析結果に基づいて、前記処理定義データを構成する各処理定義レコードで定義されている処理名と前記検査対象文書の記述内容との関連性の有無を判断する第２の解析ステップと
を含むことを特徴とする、請求項１０から１３までのいずれか１項に記載の文書検査プログラム。
【請求項１５】
前記第２の解析ステップでは、
前記第１の解析ステップで得られた解析結果と各処理定義レコードとを用いた複数の検索処理であって、それぞれ結果に応じて処理に用いられた処理定義レコードで定義されている処理名に付与するポイント数が定められた前記複数の検索処理が行われ、
各処理名に付与されたポイント数に基づいて、各処理名と前記検査対象文書の記述内容との関連性の有無が判断されることを特徴とする、請求項１４に記載の文書検査プログラム。
【請求項１６】
前記処理定義データは、各処理につき複数の処理名を定義することができるように構成されていることを特徴とする、請求項１０から１５までのいずれか１項に記載の文書検査プログラム。
【請求項１７】
前記複数の管理レコードには、対象のソフトウェアに求められる要求に関する情報を保持する要求レコードが含まれていることを特徴とする、請求項１０から１６までのいずれか１項に記載の文書検査プログラム。
【請求項１８】
前記複数の管理レコードには、更に、対象のソフトウェアで生じた障害に関する情報を保持する障害レコードが含まれていることを特徴とする、請求項１７に記載の文書検査プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発で作成される文書を検査する方法およびプログラムに関する。
【背景技術】
【０００２】
従来より、ソフトウェアの開発過程において、開発対象のソフトウェアに求められる要求の仕様等を記述した各種仕様書が作成されている。なお、「設計書」と呼ばれる文書も仕様書の１つである。仕様書としては、ソフトウェアの開発段階に応じて、例えば、「要求仕様書」，「基本設計書」，「詳細設計書」，「プログラム仕様書」，「テスト仕様書」などという名称の文書が作成される。また、一般に、ソフトウェア開発は不具合が伴うものである。ソフトウェア開発で生じる不具合は典型的には「障害」と呼ばれており、このような障害を管理する文書も作成されている。
【０００３】
ところで、或る要求に関する仕様書が作成された際、当該要求を実現するために必要な事項が仕様書に充分に記載されていなければ、例えば、完成後のソフトウェアが不充分なものとなり得る。また、或る障害への対処プログラムの完成後にテスト仕様書が作成された際、テスト仕様書に記載されたテスト項目が不充分であると、例えば、当該対処プログラムをリリースすることによって別の障害が生じるおそれがある。以上のようなことから、ソフトウェア開発においては、仕様書等の文書における必要事項の記載漏れを防止することが重要となっている。
【０００４】
また、ソフトウェア開発においては、過去に実現している要求と似たような要求の開発が行われることや過去に生じた障害と似たような障害が生じることが多々ある。そこで、仕様書等の文書での記載漏れを防止するために、現在の要求・障害に関する文書の作成の際にそれに類似する要求・障害に関する過去の文書がしばしば参照されている。
【０００５】
なお、本件発明に関連して、以下の先行技術文献が知られている。特開２０１４−０８１６８０号公報には、仕様書内の文章に形態素解析および係り受け解析を施して主語・目的語・動詞・事前条件に関する不備を検出する仕様検証装置の発明が開示されている。また、特開２０１４−２３２５０５号公報には、トレーサビリティマトリックスを自動生成する項目間関連生成支援装置の発明が開示されている。なお、トレーサビリティとは成果物の項目間における追跡可能性のことであり、トレーサビリティマトリックスとは２つの成果物の項目間の関連づけを示す表のことである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−０８１６８０号公報
【特許文献２】特開２０１４−２３２５０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したように、現在の要求・障害に関する文書の作成の際にそれに類似する要求・障害に関する過去の文書がしばしば参照される。これに関し、要求・障害に関する文書はデータベース化されていることもあるが、実際の検索は担当者の記憶に基づいて行われる。このため、過去の文書が有効に活用されないことが多い。また、仮に現在の要求・障害と類似する要求・障害に関する文書が発見されても、当該文書中における必要情報の記載場所を見つけるのに手間を要することが多い。なお、特開２０１４−０８１６８０号公報に開示された仕様検証装置の発明によれば、文法上の誤りは容易に検出されるが、必要事項の記載漏れを検出することはできない。また、特開２０１４−２３２５０５号公報に開示された項目間関連生成支援装置の発明によれば、文書の増加に従って、トレーサビリティマトリクスのサイズも大きくなり、現在の要求・障害と類似する要求・障害を見つけることが困難となる。
【０００８】
そこで本発明は、ソフトウェア開発の際に作成される文書に関して必要事項の記載漏れを効果的に抑制することのできる文書検査方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
第１の発明は、ソフトウェア開発で作成される文書を検査する方法であって、
検査対象文書の記述内容の解析結果と各処理の処理名および内容を定義した処理定義データとを照合することにより、前記検査対象文書の記述内容に関連する処理名を抽出する処理名抽出ステップと、
処理名を格納するための処理名フィールドを有する複数の管理レコードを格納する管理データ格納手段から前記処理名フィールドに前記処理名抽出ステップで抽出された処理名が格納されている管理レコードを抽出し、その抽出した管理レコードの一覧表示を行う関連管理レコードリスト化ステップと
を含むことを特徴とする。
【００１０】
第２の発明は、第１の発明において、
指定された２つの文書のうちの一方を比較元文書、他方を比較先文書として当該２つの文書の間で処理名の対応付けを行い、対応付けられた処理名に関する前記比較元文書の記述内容と前記比較先文書の記述内容とが並べられた画面である比較画面を表示する比較表示ステップを更に含むことを特徴とする。
【００１１】
第３の発明は、第２の発明において、
前記比較表示ステップでは、前記比較元文書および前記比較先文書の指定を受け付けるために、一覧形式で表示される複数の文書の中から前記比較元文書を選択するための比較元文書指定領域と一覧形式で表示される複数の文書の中から前記比較先文書を選択するための比較先文書指定領域とを含む画面が表示され、
前記比較元文書指定領域の初期状態は、前記検査対象文書が選択された状態となっていて、
前記比較先文書指定領域は、前記関連管理レコードリスト化ステップで一覧表示された管理レコードに関連する文書が選択可能な状態となっていることを特徴とする。
【００１２】
第４の発明は、第２または第３の発明において、
前記比較表示ステップは、
前記比較元文書の記述内容を所定の規則に従ってタイトルと当該タイトルに関する説明文とに分割する比較元文書分割ステップと、
前記比較先文書の記述内容を前記所定の規則に従ってタイトルと当該タイトルに関する説明文とに分割する比較先文書分割ステップと、
前記比較画面を表示する表示ステップと
を含み、
前記表示ステップでは、前記比較元文書に関して選択されたタイトルに関する説明文と前記比較先文書に関して選択されたタイトルに関する説明文とが前記比較画面に並べて表示されることを特徴とする。
【００１３】
第５の発明は、第１から第４までのいずれかの発明において、
前記処理名抽出ステップは、
前記検査対象文書の記述内容に対して形態素解析を含む解析処理を施す第１の解析ステップと、
前記第１の解析ステップで得られた解析結果に基づいて、前記処理定義データを構成する各処理定義レコードで定義されている処理名と前記検査対象文書の記述内容との関連性の有無を判断する第２の解析ステップと
を含むことを特徴とする。
【００１４】
第６の発明は、第５の発明において、
前記第２の解析ステップでは、
前記第１の解析ステップで得られた解析結果と各処理定義レコードとを用いた複数の検索処理であって、それぞれ結果に応じて処理に用いられた処理定義レコードで定義されている処理名に付与するポイント数が定められた前記複数の検索処理が行われ、
各処理名に付与されたポイント数に基づいて、各処理名と前記検査対象文書の記述内容との関連性の有無が判断されることを特徴とする。
【００１５】
第７の発明は、第１から第６までのいずれかの発明において、
前記処理定義データは、各処理につき複数の処理名を定義することができるように構成されていることを特徴とする。
【００１６】
第８の発明は、第１から第７までのいずれかの発明において、
前記複数の管理レコードには、対象のソフトウェアに求められる要求に関する情報を保持する要求レコードが含まれていることを特徴とする。
【００１７】
第９の発明は、第８の発明において、
前記複数の管理レコードには、更に、対象のソフトウェアで生じた障害に関する情報を保持する障害レコードが含まれていることを特徴とする。
【００１８】
第１０の発明は、ソフトウェア開発で作成される文書を検査するプログラムであって、
検査対象文書の記述内容の解析結果と各処理の処理名および内容を定義した処理定義データとを照合することにより、前記検査対象文書の記述内容に関連する処理名を抽出する処理名抽出ステップと、
処理名を格納するための処理名フィールドを有する複数の管理レコードを格納する管理データ格納手段から前記処理名フィールドに前記処理名抽出ステップで抽出された処理名が格納されている管理レコードを抽出し、その抽出した管理レコードの一覧表示を行う関連管理レコードリスト化ステップと
をコンピュータのＣＰＵがメモリを利用して実行することを特徴とする。
【００１９】
第１１の発明は、第１０の発明において、
指定された２つの文書のうちの一方を比較元文書、他方を比較先文書として当該２つの文書の間で処理名の対応付けを行い、対応付けられた処理名に関する前記比較元文書の記述内容と前記比較先文書の記述内容とが並べられた画面である比較画面を表示する比較表示ステップを更に含むことを特徴とする。
【００２０】
第１２の発明は、第１１の発明において、
前記比較表示ステップでは、前記比較元文書および前記比較先文書の指定を受け付けるために、一覧形式で表示される複数の文書の中から前記比較元文書を選択するための比較元文書指定領域と一覧形式で表示される複数の文書の中から前記比較先文書を選択するための比較先文書指定領域とを含む画面が表示され、
前記比較元文書指定領域の初期状態は、前記検査対象文書が選択された状態となっていて、
前記比較先文書指定領域は、前記関連管理レコードリスト化ステップで一覧表示された管理レコードに関連する文書が選択可能な状態となっていることを特徴とする。
【００２１】
第１３の発明は、第１１または第１２の発明において、
前記比較表示ステップは、
前記比較元文書の記述内容を所定の規則に従ってタイトルと当該タイトルに関する説明文とに分割する比較元文書分割ステップと、
前記比較先文書の記述内容を前記所定の規則に従ってタイトルと当該タイトルに関する説明文とに分割する比較先文書分割ステップと、
前記比較画面を表示する表示ステップと
を含み、
前記表示ステップでは、前記比較元文書に関して選択されたタイトルに関する説明文と前記比較先文書に関して選択されたタイトルに関する説明文とが前記比較画面に並べて表示されることを特徴とする。
【００２２】
第１４の発明は、第１０から第１３までのいずれかの発明において、
前記処理名抽出ステップは、
前記検査対象文書の記述内容に対して形態素解析を含む解析処理を施す第１の解析ステップと、
前記第１の解析ステップで得られた解析結果に基づいて、前記処理定義データを構成する各処理定義レコードで定義されている処理名と前記検査対象文書の記述内容との関連性の有無を判断する第２の解析ステップと
を含むことを特徴とする。
【００２３】
第１５の発明は、第１４の発明において、
前記第２の解析ステップでは、
前記第１の解析ステップで得られた解析結果と各処理定義レコードとを用いた複数の検索処理であって、それぞれ結果に応じて処理に用いられた処理定義レコードで定義されている処理名に付与するポイント数が定められた前記複数の検索処理が行われ、
各処理名に付与されたポイント数に基づいて、各処理名と前記検査対象文書の記述内容との関連性の有無が判断されることを特徴とする。
【００２４】
第１６の発明は、第１０から第１５までのいずれかの発明において、
前記処理定義データは、各処理につき複数の処理名を定義することができるように構成されていることを特徴とする。
【００２５】
第１７の発明は、第１０から第１６までのいずれかの発明において、
前記複数の管理レコードには、対象のソフトウェアに求められる要求に関する情報を保持する要求レコードが含まれていることを特徴とする。
【００２６】
第１８の発明は、第１７の発明において、
前記複数の管理レコードには、更に、対象のソフトウェアで生じた障害に関する情報を保持する障害レコードが含まれていることを特徴とする。
【発明の効果】
【００２７】
上記第１の発明によれば、処理名抽出ステップによって、検査対象文書の記述内容に関連する処理の名称（処理名）が抽出される。そして、関連管理レコードリスト化ステップによって、複数の管理レコードの中から処理名フィールドに処理名抽出ステップで抽出された処理名が格納されている管理レコードが抽出され、その抽出された管理レコードの一覧表示が行われる。このようにして、検査対象文書に関連する管理レコードが漏れなくリスト化される。これにより、作業者（文書作成者）は、仕様書等の文書を作成する際に、人（文書作成者自身や他の担当者等）の記憶に頼ることなく、どの文書を参照すれば良いのかを把握することが可能となる。
【００２８】
上記第２の発明によれば、指定された２つの文書間で処理名の対応付けが行われ、対応付けられた処理名に関する一方の文書の記述内容と他方の文書の記述内容とが並べて表示される。このため、ソフトウェア開発において或る文書（仕様書等）が作成された際に、各処理に関する記載内容を、同様の処理に関して過去に作成された文書の記載内容と容易に比較することが可能となる。
【００２９】
上記第３の発明によれば、ソフトウェア開発において或る文書（仕様書等）が作成された際に、より容易に、各処理に関する記載内容を、同様の処理に関して過去に作成された文書の記載内容と比較することが可能となる。
【００３０】
上記第４の発明によれば、作業者が内容の確認を望む処理についての説明文だけを比較表示することができるので、文書の記載内容を確認する作業が効率的に行われる。
【００３１】
上記第５の発明によれば、検査対象文書の記述内容に関連する処理名の抽出が、より適切に行われる。
【００３２】
上記第６の発明によれば、処理名抽出ステップの際に検査対象文書の記述内容との関連性が高い処理の名称（処理名）のみを抽出することが可能となり、検査対象文書との関連性が高い管理レコードのみをリスト化することが可能となる。これにより、作業者（文書作成者）は、参照すべき文書をより効果的に把握することが可能となる。
【００３３】
上記第７の発明によれば、１つの処理に関して様々な名称が使用されていても、検査対象文書の記述内容に関連する処理の名称の抽出が適切に行われ、管理レコードの一覧表示が適切に行われる。
【００３４】
上記第８の発明によれば、作業者（文書作成者）は、仕様書等の文書を作成する際に、人（文書作成者自身や他の担当者等）の記憶に頼ることなく、どの要求に関する文書を参照すれば良いのかを把握することが可能となる。
【００３５】
上記第９の発明によれば、作業者（文書作成者）は、仕様書等の文書を作成する際に、人（文書作成者自身や他の担当者等）の記憶に頼ることなく、どの障害に関する文書を参照すれば良いのかを把握することが可能となる。
【００３６】
上記第１０から上記第１８までの発明によれば、それぞれ上記第１から上記第９までの発明と同様の効果が得られる。
【図面の簡単な説明】
【００３７】
【図１】本発明の一実施形態に係る文書検査方法を実現する文書検査システムを含むソフトウェア開発管理システムの全体構成図である。
【図２】上記実施形態において、文書検査システムを実現するサーバのハードウェア構成を示すブロック図である。
【図３】上記実施形態において、処理定義レコードの構成を模式的に示した図である。
【図４】上記実施形態において、要求レコードの構成を模式的に示した図である。
【図５】上記実施形態において、障害レコードの構成を模式的に示した図である。
【図６】上記実施形態に係る文書検査方法の概略手順を示すフローチャートである。
【図７】上記実施形態における文書検査の全体の流れを模式的に示した図である。
【図８】上記実施形態において、処理名抽出処理の詳細な手順を示すフローチャートである。
【図９】上記実施形態において、処理名抽出処理の流れを模式的に示す図である。
【図１０】上記実施形態において、係り受け解析の結果画面の一例を示す図である。
【図１１】上記実施形態において、関連処理解析の結果画面の一例を示す図である。
【図１２】上記実施形態において、関連処理解析の詳細な手順を示すフローチャートである。
【図１３】上記実施形態において、要求・障害リスト化処理の詳細な手順を示すフローチャートである。
【図１４】上記実施形態において、要求・障害リスト化処理の具体例について説明するための図である。
【図１５】上記実施形態において、要求・障害リスト化処理で表示される一覧表示画面の一例を示す図である。
【図１６】上記実施形態において、比較表示処理の詳細な手順を示すフローチャートである。
【図１７】上記実施形態において、比較表示処理の開始後に表示される処理名対応付け画面の一例を示す図である。
【図１８】上記実施形態において、処理名対応付け画面の文書分析ボタンが押下されたときに表示される文書分析画面の一例を示す図である。
【図１９】上記実施形態において、文章分析実行後の文書分析画面の一例を示す図である。
【図２０】上記実施形態において、文書分割の具体例について説明するための図である。
【図２１】上記実施形態において、文書分割実行後の文書分析画面の一例を示す図である。
【図２２】上記実施形態において、処理名選択後の文書分析画面の一例を示す図である。
【図２３】上記実施形態において、比較元文書についての処理名抽出（関連処理解析）の結果が反映された状態の処理名対応付け画面の一例を示す図である。
【図２４】上記実施形態において、比較先文書についての処理名抽出（関連処理解析）の結果が反映された状態の処理名対応付け画面の一例を示す図である。
【図２５】上記実施形態において、処理名対応付け処理の実行後の処理名対応付け画面の一例を示す図である。
【図２６】上記実施形態において、関連付け処理が実行される際の処理名対応付け画面の一例を示す図である。
【図２７】上記実施形態において、関連付け処理の実行後の処理名対応付け画面の一例を示す図である。
【図２８】上記実施形態において、比較表示処理が実行される際の処理名対応付け画面の一例を示す図である。
【図２９】上記実施形態において、比較画面の一例を示す図である。
【図３０】上記実施形態において、比較表示処理が実行されている際の表示画面の遷移について説明するための図である。
【発明を実施するための形態】
【００３８】
以下、添付図面を参照しつつ本発明の一実施形態について説明する。なお、以下では、文書の作成者や装置に対して操作を行う者のことをまとめて「作業者」という。
【００３９】
＜１．システムの構成＞
＜１．１  システムの概要＞
図１は、本発明の一実施形態に係る文書検査方法を実現する文書検査システム２を含むシステムの全体構成図である。このシステムは、「ソフトウェア開発管理システム」と呼ばれており、サブシステムとして要求管理システム３と障害管理システム４と文書検査システム２とを含んでいる。要求管理システム３は、開発対象のソフトウェアに関する要求を管理するシステムである。障害管理システム４は、開発対象のソフトウェアで生じた障害を管理するシステムである。文書検査システム２は、ソフトウェア開発に伴って作成される文書（典型的には仕様書）の記述内容を検査して作成中の文書と過去に作成された文書とを比較表示するなどによって文書の作成を支援するためのシステムである。
【００４０】
＜１．２  ハードウェア構成＞
図２は、文書検査システム２を実現するサーバ１０のハードウェア構成を示すブロック図である。このサーバ１０は、ＣＰＵ１１とＲＯＭ１２とＲＡＭ１３と補助記憶装置１４と入力操作部１５と表示部１６と光学ディスクドライブ１７とネットワークインタフェース部１８とを備えている。ＣＰＵ１１は、このサーバ１０の全体を制御するために各種演算処理等を行う。ＲＯＭ１２は、読み出し専用のメモリであって、例えばサーバ１０の起動時にＣＰＵ１１に実行させる初期プログラムなどを格納する。ＲＡＭ１３は、書き込み可能な揮発性のメモリであって、実行中のプログラムやデータ等を一時的に格納する。補助記憶装置１４は、サーバ１０の電源がオフされても保持されるべき各種プログラム・各種データを格納する。本実施形態に関連するプログラムとしては、文書検査プログラムＰが補助記憶装置１４に格納される。また、この補助記憶装置１４には、データベース１４０が設けられている。入力操作部１５は、例えばキーボードやマウスであって、作業者による入力操作を受け付ける。表示部１６は、例えば、作業者が作業を行うための各種画面を表示する。光学ディスクドライブ１７は、光学ディスク１７０からのデータの読み出しや光学ディスク１７０へのデータの書き込みを行うデバイスである。ネットワークインタフェース部１８は、通信回線９に接続されており、外部へのデータ送信の制御や外部からのデータ受信の制御を行う。
【００４１】
なお、要求管理システム３および障害管理システム４についても上記サーバ１０によって実現されるものとして説明する。従って、データベース１４０には、文書検査システム２で使用される処理定義データに加えて、要求管理システム３で管理される要求データおよび障害管理システム４で管理される障害データが格納される。処理定義データ，要求データ，および障害データについての説明は後述する。また、以下においては各種画面がサーバ１０の表示部１６に表示されるものとして説明するが、クライアント／サーバ型の構成を採用してクライアントの表示部に各種画面が表示されるようにしても良い。
【００４２】
上述したように、補助記憶装置１４には文書検査プログラムＰが格納されている。作業者によって文書検査プログラムＰの実行が指示されると、文書検査プログラムＰがＲＡＭ１３へと読み出され、そのＲＡＭ１３に読み出された文書検査プログラムＰをＣＰＵ１１が実行する。文書検査プログラムＰは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体に格納されて提供される。すなわちユーザは、例えば、文書検査プログラムＰの記録媒体としての光学ディスク（ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）１７０を購入して光学ディスクドライブ１７に装着し、その光学ディスク１７０から文書検査プログラムＰを読み出して補助記憶装置１４にインストールする。また、これに代えて、通信回線９を介して送られる文書検査プログラムＰをネットワークインタフェース部１８で受信して、それを補助記憶装置１４にインストールするようにしてもよい。
【００４３】
＜２．データ＞
次に、本実施形態における文書検査システム２で使用されるデータについて説明する。この文書検査システム２では、処理定義データ，要求データ，および障害データが使用される。
【００４４】
＜２．１  処理定義データ＞
処理定義データは、開発対象のソフトウェアで実行される各処理（例えばプログラム内のモジュール）の名称（処理名）や内容などを定義したデータである。なお、１件分の処理定義データのことを「処理定義レコード」という。複数の処理定義レコードからなるデータの総称が処理定義データである。以下、処理定義データには符号２０を付し、処理定義レコードには符号２０Ｒを付す。
【００４５】
図３は、処理定義レコード２０Ｒの構成を模式的に示した図である。処理定義レコード２０Ｒは、データ項目（フィールド）として、処理名と、操作名と、操作名に対応する範囲と、親処理名と、子処理名と、管理リソース名と、管理リソース名に対応する操作と、管理リソース名に対応する範囲と、除外語とを含んでいる。なお、図３から把握されるように、処理定義レコード２０Ｒは、操作に関する情報および管理リソースに関する情報については、それぞれ複数保持することができる。また、処理定義レコード２０Ｒは、除外語についても複数保持することができる。
【００４６】
処理定義レコード２０Ｒの各データ項目の欄に入力される内容について説明する。処理名の欄には、該当の処理定義レコード２０Ｒで定義する処理の名称が入力される。操作名の欄には、該当の処理に含まれる内部処理の名称が入力される。操作名に対応する範囲の欄には、内部処理が実行される時間的範囲や空間的範囲を規定する記述が入力される。親処理名の欄には、該当の処理の親処理（例えば親モジュール）の名称が入力される。子処理名の欄には、該当の処理の子処理（例えば子モジュール）の名称が入力される。管理リソース名の欄には、該当の処理で管理する資源（変数，テーブル，装置など）の名称が入力される。管理リソース名に対応する操作の欄には、該当の資源に対して行われる操作の名称が入力される。管理リソース名に対応する範囲の欄には、該当の資源に対して該当の操作が行われる時間的範囲や空間的範囲を規定する記述が入力される。除外語の欄には、後述する関連処理解析の際に解析の対象外とされる語が入力される。
【００４７】
処理名，操作名，親処理名，子処理名，管理リソース名，および管理リソース名に対応する操作については、処理定義レコード２０Ｒは別名称を保持することができる。仕様書等の文書で使用される用語は作業者（文書作成者）に依存するので、或る１つの処理に関して様々な名称が使用されることがある。例えば、データベースからの検索を行う処理に関して、「データベース検索」，「ＤＢ検索」，「ＤＢＫＥＮＳＡＫＵ」などの様々な名称が文書内で使用されることがある。このようなことから、処理名等については、処理定義レコード２０Ｒへの別名称の登録が可能となっている。また、操作名に対応する範囲および管理リソース名に対応する範囲については、処理定義レコード２０Ｒは、該当の操作が実行される条件を規定する記述を複数保持することができる。
【００４８】
＜２．２  要求データ＞
要求データは、開発対象のソフトウェアに求められる各要求を管理するためのデータである。なお、１件分の要求データのことを「要求レコード」という。複数の要求レコードからなるデータの総称が要求データである。以下、要求データには符号３０を付し、要求レコードには符号３０Ｒを付す。
【００４９】
図４は、要求レコード３０Ｒの構成を模式的に示した図である。要求レコード３０Ｒは、データ項目（フィールド）として、ＩＤと件名と要求概要と関連処理名とを含んでいる。なお、要求レコード３０Ｒは、関連処理名については複数保持することができる。また、要求レコード３０Ｒは、複数の添付文書を保持することができる。
【００５０】
要求レコード３０Ｒの各データ項目の欄に入力される内容について説明する。ＩＤの欄には、各要求レコード３０Ｒを一意に識別するための番号が入力される。件名の欄には、該当の要求の名称が入力される。要求概要の欄には、該当の要求の概要を表す記述が入力される。関連処理名の欄には、該当の要求に関連する処理の名称が入力される。
【００５１】
＜２．３  障害データ＞
障害データは、開発対象のソフトウェアで生じた各障害を管理するためのデータである。なお、１件分の障害データのことを「障害レコード」という。複数の障害レコードからなるデータの総称が障害データである。以下、障害データには符号４０を付し、障害レコードには符号４０Ｒを付す。
【００５２】
図５は、障害レコード４０Ｒの構成を模式的に示した図である。障害レコード４０Ｒは、データ項目（フィールド）として、ＩＤと件名と障害内容と対策と関連処理名とを含んでいる。なお、障害レコード４０Ｒは、関連処理名については複数保持することができる。また、障害レコード４０Ｒは、複数の添付文書を保持することができる。
【００５３】
障害レコード４０Ｒの各データ項目の欄に入力される内容について説明する。ＩＤの欄には、各障害レコード４０Ｒを一意に識別するための番号が入力される。件名の欄には、該当の障害の名称が入力される。障害内容の欄には、該当の障害の内容を表す記述が入力される。対策の欄には、該当の障害に対して施された処置を表す記述が入力される。関連処理名の欄には、該当の障害に関連する処理の名称が入力される。
【００５４】
＜２．４  データの格納場所などについて＞
本実施形態においては、データベース１４０に処理定義テーブル，要求テーブル，および障害テーブルが用意され、処理定義データ２０は処理定義テーブルに格納され、要求データ３０は要求テーブルに格納され、障害データ４０は障害テーブルに格納される。
【００５５】
なお、以下において、要求レコード３０Ｒと障害レコード４０Ｒとを総称して「管理レコード」ともいう。本実施形態においては、要求テーブルと障害テーブルとによって、管理レコード（要求レコード３０Ｒおよび障害レコード４０Ｒ）を格納する管理データ格納手段が実現されている。また、要求レコード３０Ｒおよび障害レコード４０Ｒのそれぞれの関連処理名の欄によって管理データ格納手段の処理名フィールドが実現されている。
【００５６】
＜３．文書の検査方法＞
以下、上述した処理定義データ２０，要求データ３０，および障害データ４０を使用して文書検査システム２で行われる文書の検査方法について説明する。典型的には、ソフトウェアの開発過程において新しく作成された文書が検査対象文書となる。例えば、或る新しい要求に関する要求仕様書が作成された場合、当該要求仕様書が検査対象文書となる。
【００５７】
＜３．１  概略＞
図６は、本実施形態に係る文書検査方法の概略手順を示すフローチャートである。また、図７は、本実施形態における文書検査の全体の流れを模式的に示した図である。まず、検査対象文書ＴＤの記述内容を解析することによって得られる結果と上述した処理定義データ２０とを照合して検査対象文書ＴＤの記述内容に関連する処理の名称（処理名）を抽出する処理名抽出処理が行われる（ステップＳ１０）。図７に示すように、処理名抽出処理では、検査対象文書ＴＤと処理定義データ２０とを入力データとして、処理名の抽出が行われる。次に、ステップＳ１０で抽出された処理名の処理に関連する管理レコード（要求レコード３０Ｒ，障害レコード４０Ｒ）をデータベース１４０から抽出して、その抽出した管理レコードの一覧表示を行う要求・障害リスト化処理が行われる（ステップＳ２０）。図７に示すように、要求・障害リスト化処理では、ステップＳ１０で得られた処理名と要求データ３０と障害データ４０とを入力データとして、管理レコードの一覧表示が行われる。最後に、関連する２つの文書を比較表示する比較表示処理が行われる（ステップＳ３０）。このとき、典型的には、検査対象文書ＴＤが比較元文書として選択され、ステップＳ２０で一覧表示が行われた管理レコードに関連するいずれかの文書が比較先文書として文書群（開発対象のソフトウェアに関して作成された各種文書の集合）から選択される。すなわち、図７に示すように、比較表示処理では、典型的には検査対象文書ＴＤと文書群から選択された文書とを入力データとして、それら２つの文書を並べて表示する比較表示が行われる。
【００５８】
なお、ステップＳ１０によって処理名抽出ステップが実現され、ステップＳ２０によって関連管理レコードリスト化ステップが実現され、ステップＳ３０によって比較表示ステップが実現されている。以下、処理名抽出処理，要求・障害リスト化処理，および比較表示処理について詳しく説明する。
【００５９】
＜３．２  処理名抽出処理＞
まず、処理名抽出処理について説明する。図８は、処理名抽出処理の詳細な手順を示すフローチャートである。また、図９は、処理名抽出処理の流れを模式的に示す図である。処理名抽出処理の開始後、まず、作業者による検査対象文書ＴＤの指定が行われる（ステップＳ１００）。検査対象文書ＴＤを指定する具体的な手法は特に限定されず、例えば、ファイルを選択する一般的なダイアログが表示部１６に表示され、作業者によるファイル（文書）の指定が受け付けられる。
【００６０】
次に、検査対象文書ＴＤに対して形態素解析が行われる（ステップＳ１１０）。形態素解析とは、文（文章）を意味のある最小単位（品詞）に分割する処理のことである。なお、形態素解析そのものについては公知の手法を採用することができる。次に、形態素解析の結果を利用して、係り受け解析が行われる（ステップＳ１２０）。係り受け解析とは、文節間の修飾関係を解析する処理のことである。なお、形態素解析と同様、係り受け解析そのものについても公知の手法を採用することができる。係り受け解析は、主として「・・・を・・・する」という部分を抽出することによって該当の文がいずれの処理の説明であるのかを特定するために使用される。係り受け解析の終了後、例えば図１０に示すように、係り受け解析の結果が表示部１６に表示される（ステップＳ１３０）。なお、図１０には或る１文についての結果のみを示しているが、実際には検査対象文書ＴＤの全文についての結果が表示される。
【００６１】
その後、検査対象文書ＴＤの記述内容に関連する処理の名称（処理名）を抽出するために、係り受け解析で得られた結果（文）を解析する処理である関連処理解析が行われる（ステップＳ１４０）。なお、この関連処理解析についての詳しい説明は後述する。関連処理解析の終了後、例えば図１１に示すように、関連処理解析の結果が表示部１６に表示される（ステップＳ１５０）。図１１に示す例では、関連処理解析で抽出された処理名毎にポイント数と判定結果（関連の有無）とが表示されるとともに、処理名を抽出する際に利用した語句，利用しなかった語句が表示されている。作業者は、このような結果を見て、関連処理解析を再実行するか否かを判断する（ステップＳ１６０）。そして、作業者によって関連処理解析を再実行する旨の判断がなされると、処理はステップＳ１７０に進み、そうでなければ、この処理名抽出処理は終了する。
【００６２】
ステップＳ１７０では、作業者によって処理定義データ２０の更新が行われる。例えば、作業者は、関連処理解析の結果である「利用した語句」および「利用しなかった語句」を参考にしつつ、処理定義レコード２０Ｒに対して、除外語の追加や或るデータ項目の別名称の追加などを行う。このようにして処理定義データ２０が更新された後、ステップＳ１４０以降の処理が再実行される。
【００６３】
上述したように、ステップＳ１６０で作業者によって関連処理解析を再実行しない旨の判断がなされると処理名抽出処理は終了する。このとき、作業者は、関連処理解析の結果を参考にしつつ、検査対象文書ＴＤに関連する要求レコード３０Ｒあるいは障害レコード４０Ｒに対して、関連処理名の追加などを行う（図９参照）。
【００６４】
なお、本実施形態においては、ステップＳ１１０およびステップＳ１２０によって第１の解析ステップが実現され、ステップＳ１４０によって第２の解析ステップが実現されている。
【００６５】
ここで、関連処理解析（図８のステップＳ１４０）について詳しく説明する。図１２は、関連処理解析の詳細な手順を示すフローチャートである。なお、この関連処理解析では、処理定義レコード２０Ｒごとに、ポイント数をカウントするための処理使用カウンタＣＮＴとループ処理（図１２のステップＳ４１０〜ステップＳ４６０の処理）内で使用するための処理使用変数ＶＡとが用意される。
【００６６】
関連処理解析の開始後、まず、係り受け解析（図８のステップＳ１２０）で得られた結果の１文が取得される（ステップＳ４００）。次に、ステップＳ４００で取得された１文に含まれる動詞を見出し語化する処理が行われる（ステップＳ４０２）。なお、見出し語化とは、語尾を基本形にすることである。例えば、「送り」を見出し語化することによって得られる語は「送る」である。
【００６７】
次に、ステップＳ４００で取得された１文から不必要な説明文を削除する処理が行われる（ステップＳ４０４）。なお、係り受け解析で得られた構文木のうち付属的な係り受け関係を有する部分が不必要な説明文に相当する。例えば、「処理Ａは処理Ｂを呼び出し、伝文を装置Ｃに送り、応答伝文を受け取る。」という１文が取得されていると仮定する。この場合、当該１文中の「処理Ｂを呼び出し、伝文を装置Ｃに送り、」という部分は、処理Ａの説明とは関係がない。従って、ステップＳ４０４では、当該１文から「処理Ｂを呼び出し、伝文を装置Ｃに送り、」という部分が削除される。そして、ステップＳ４１０以降のステップにおいて、「処理Ａは応答伝文を受け取る」という文に基づいて、後述するように処理名や管理リソース名の検索が行われる。
【００６８】
ステップＳ４０４の終了後、全ての処理定義レコード２０ＲについてステップＳ４２０以降の処理が行われたか否かの判定が行われる（ステップＳ４１０）。その結果、全ての処理定義レコード２０ＲについてステップＳ４２０以降の処理が行われていれば、処理はステップＳ４７０に進み、そうでなければ、処理はステップＳ４２０に進む。
【００６９】
ステップＳ４２０では、ステップＳ４０４で得られた文の中から処理対象の処理定義レコード２０Ｒで指定されている除外語を削除する処理が行われる。次に、ステップＳ４２０で得られた文の中から処理対象の処理定義レコード２０Ｒに含まれる処理名（別名称を含む）（図３参照）を検索する処理が行われる（ステップＳ４３０）。そして、ステップＳ４３２では、ステップＳ４２０で得られた文の中に該当の処理名が含まれているか否かの判定が行われる。その結果、該当の処理名が含まれていれば、処理はステップＳ４３４に進み、そうでなければ、処理はステップＳ４５０に進む。
【００７０】
ステップＳ４３４では、ステップＳ４２０で得られた文の中に含まれていた処理名が主語であるか否かの判定が行われる。その結果、当該処理名が主語であれば、処理はステップＳ４３６に進み、そうでなければ、処理はステップＳ４３８に進む。ステップＳ４３６では、処理使用変数ＶＡに２が加算される。ステップＳ４３８では、処理使用変数ＶＡに１が加算される。ステップＳ４３６またはステップＳ４３８の終了後、処理はステップＳ４４０に進む。
【００７１】
ステップＳ４４０では、ステップＳ４２０で得られた文の中から処理対象の処理定義レコード２０Ｒに含まれる操作名（別名称を含む）を検索する処理が行われる。そして、ステップＳ４４２では、ステップＳ４２０で得られた文の中に該当の操作名が含まれているか否かの判定が行われる。その結果、該当の操作名が含まれていれば、処理はステップＳ４４４に進み、そうでなければ、処理はステップＳ４５０に進む。ステップＳ４４４では、処理使用変数ＶＡに１が加算される。
【００７２】
ステップＳ４５０では、ステップＳ４２０で得られた文の中から処理対象の処理定義レコード２０Ｒに含まれる管理リソース名（別名称を含む）を検索する処理が行われる。そして、ステップＳ４５２では、ステップＳ４２０で得られた文の中に該当の管理リソース名が含まれているか否かの判定が行われる。その結果、該当の管理リソース名が含まれていれば、処理はステップＳ４５４に進み、そうでなければ、処理はステップＳ４６０に進む。
【００７３】
ステップＳ４５４では、ステップＳ４２０で得られた文の中から処理対象の処理定義レコード２０Ｒに含まれている別の管理リソース名（別名称を含む）（ステップＳ４５０で検索が行われた管理リソース名とは異なる管理リソース名）を検索する処理が行われる。そして、ステップＳ４５６では、ステップＳ４２０で得られた文の中に該当の管理リソース名が含まれているか否かの判定が行われる。その結果、該当の管理リソース名が含まれていれば、処理はステップＳ４５７に進み、そうでなければ、処理はステップＳ４５８に進む。ステップＳ４５７では、処理使用変数ＶＡに２が加算される。ステップＳ４５８では、処理使用変数ＶＡに１が加算される。ステップＳ４５７またはステップＳ４５８の終了後、処理はステップＳ４６０に進む。
【００７４】
ステップＳ４６０では、処理使用カウンタＣＮＴへの値のセットが行われる。より詳しくは、処理使用カウンタＣＮＴの値に処理使用変数ＶＡの値が加算される。その後、処理はステップＳ４１０に戻る。以上のようにして、ステップＳ４００で取得された１文毎に、ステップＳ４２０〜ステップＳ４６０の処理が処理定義レコード２０Ｒの数だけ繰り返される。
【００７５】
ステップＳ４７０では、検査対象文書ＴＤの全ての文についてステップＳ４００〜ステップＳ４６０の処理が終了したか否かの判定が行われる。その結果、全ての文についてステップＳ４００〜ステップＳ４６０の処理が終了していれば、処理はステップＳ４８０に進み、そうでなければ、処理はステップＳ４００に戻る。
【００７６】
ステップＳ４８０の処理が行われる時点には、各処理定義レコード２０Ｒについての処理使用カウンタＣＮＴに検査対象文書ＴＤの記述内容に応じた値（この値が各処理名についてのポイント数に相当する）がセットされている。そして、ステップＳ４８０では、各処理定義レコード２０Ｒについての処理使用カウンタＣＮＴの値が所定の閾値と比較されることにより、検査対象文書ＴＤと各処理との関連性の判断が行われる。具体的には、処理定義レコード２０Ｒについての処理使用カウンタＣＮＴの値が閾値以上であれば、当該処理定義レコード２０Ｒによって定義された処理は検査対象文書ＴＤと関連性があると判断される。一方、処理定義レコード２０Ｒについての処理使用カウンタＣＮＴの値が閾値未満であれば、当該処理定義レコード２０Ｒによって定義された処理は検査対象文書ＴＤと関連性がないと判断される。ステップＳ４８０の処理が終了することにより、関連処理解析は終了する。
【００７７】
以上のような関連処理解析が行われることにより、上述したように、処理名毎のポイント数と判定結果（関連の有無）とを示した画面（図１１参照）が表示部１６に表示される。図１１に示す例では、検査対象文書ＴＤと各処理との関連性を判断するための上記閾値が１０となっている。
【００７８】
なお、各処理名の処理についてのポイント数の求め方（換言すれば、処理使用変数ＶＡの値の加算方法）は上述の例には限定されず、関連性についての妥当な判断結果が得られるよう、形態素解析および係り受け解析で得られた情報（例えば、各文中の修飾関係に関する情報や各文に含まれる主語，目的語，修飾語，述語などの情報）と処理対象の処理定義レコード２０Ｒに含まれる情報とに基づいてポイント数を求めるようにすれば良い。
【００７９】
＜３．３  要求・障害リスト化処理＞
次に、要求・障害リスト化処理について説明する。図１３は、要求・障害リスト化処理の詳細な手順を示すフローチャートである。要求・障害リスト化処理の開始後、まず、処理名抽出処理（図６のステップＳ１０）で抽出された処理名（以下、「抽出処理名」という。）のうちの１つが処理対象として取得される（ステップＳ２００）。次に、要求データ３０の中から処理対象の抽出処理名を関連処理名（図４参照）として含んでいる要求レコード３０Ｒが検索される（ステップＳ２１０）。更に、障害データ４０の中から処理対象の抽出処理名を関連処理名（図５参照）として含んでいる障害レコード４０Ｒが検索される（ステップＳ２２０）。
【００８０】
その後、全ての抽出処理名について要求データ３０および障害データ４０からのレコードの検索が終了したか否かの判定が行われる（ステップＳ２３０）。その結果、全ての抽出処理名についてレコードの検索が終了していれば、処理はステップＳ２４０に進み、そうでなければ、処理はステップＳ２００に戻る。以上のようにして、処理名抽出処理で抽出された処理名の数だけ要求データ３０および障害データ４０からのレコードの検索が繰り返される。
【００８１】
ステップＳ２４０では、ステップＳ２１０で検索された要求レコード３０ＲおよびステップＳ２２０で検索された障害レコード４０Ｒが一覧形式で表示部１６に表示される。なお、要求・障害を特定できるものであれば、ステップＳ２４０で表示されるデータ項目については特に限定されない。このステップＳ２４０の処理が終了することにより、要求・障害リスト化処理は終了する。
【００８２】
要求・障害リスト化処理の具体例について説明する。ここでは、処理名抽出処理によって「処理Ａ」という処理名と「処理Ｚ」という処理名とが抽出されていると仮定する。また、図１４に示すような要求データ３０および障害データ４０がデータベース１４０に格納されていると仮定する。この場合、要求データ３０の中からは、「処理Ａ」という処理名を関連処理名として含んでいる要求レコード（符号３１の矢印で示す行の要求レコード）と「処理Ｚ」という処理名を関連処理名として含んでいる要求レコード（符号３２の矢印で示す行の要求レコード）とが検索される。また、障害データ４０の中からは、「処理Ａ」という処理名を関連処理名として含んでいる障害レコード（符号４２の矢印で示す行の障害レコード）と「処理Ｚ」という処理名を関連処理名として含んでいる障害レコード（符号４１の矢印で示す行の障害レコード）とが検索される。その結果、例えば図１５に示すような一覧表示画面が表示部１６に表示される。図１５に示す例では、検索された要求レコード３０Ｒ，障害レコード４０Ｒの件名の一覧が表示されている。このようにして、要求・障害リスト化処理によって、検査対象文書ＴＤに関連性の高い要求や障害がリスト化される。
【００８３】
＜３．４  比較表示処理＞
次に、比較表示処理について説明する。図１６は、比較表示処理の詳細な手順を示すフローチャートである。なお、この比較表示処理では３種類の画面が表示され、処理の流れはそれら３種類の画面における作業者の操作内容に依存する。従って、ここでは、作業者によって典型的な操作が行われたものと仮定して、処理の流れを説明する。
【００８４】
比較表示処理の開始後、まず、図１７に示すような処理名対応付け画面６０が表示部１６に表示される（ステップＳ３００）。この処理名対応付け画面６０には、比較元文書情報表示領域６１０と比較先文書情報表示領域６２０と処理名対応付けボタン６３０と対応済処理名表示領域６４０と未対応処理名表示領域６５０と比較表示ボタン６６０と関連付けボタン６７０と閉じるボタン６９０とが含まれている。比較元文書情報表示領域６１０には、文書指定ドロップダウンリスト６１２と文書分析ボタン６１４と処理名表示領域６１６と対象外表示領域６１８とが含まれている。比較先文書情報表示領域６２０には、文書指定ドロップダウンリスト６２２と文書分析ボタン６２４と処理名表示領域６２６と対象外表示領域６２８とが含まれている。なお、対応済処理名表示領域６４０および未対応処理名表示領域６５０に関し、左側の列は比較元文書用の領域であり、右側の列は比較先文書用の領域である。本実施形態においては、文書指定ドロップダウンリスト６１２によって比較元文書指定領域が実現され、文書指定ドロップダウンリスト６２２によって比較先文書指定領域が実現されている。
【００８５】
ステップＳ３００で上述のような処理名対応付け画面６０が表示された後、作業者によって、比較元文書の指定が行われる（ステップＳ３０２）。比較元文書の指定は、文書指定ドロップダウンリスト６１２から対象の文書を選択することによって行われる。典型的には、ステップＳ３０２では、直前に実行された処理名抽出処理の際に検査対象文書ＴＤとして指定された文書が比較元文書として指定される。なお、文書指定ドロップダウンリスト６１２に関し、直前に実行された処理名抽出処理の際に検査対象文書ＴＤとして指定された文書がデフォルトで選択されるようにしても良い。
【００８６】
比較元文書が指定された後、作業者が文書分析ボタン６１４を押下することによって、図１８に示すような文書分析画面７０が表示部１６に表示される（ステップＳ３１０）。この文書分析画面７０には、文書名ドロップダウンリスト７１０と形態素解析・係り受け解析用表示領域７２０と関連処理解析用表示領域７３０と閉じるボタン７９０とが含まれている。形態素解析・係り受け解析用表示領域７２０には、文章分析結果欄７２２と第１のチェックボックス７２４と第２のチェックボックス７２６と文章分析ボタン７２８とが含まれている。関連処理解析用表示領域７３０には、処理名表示領域７３２と対象外表示領域７３４と説明文表示領域７３６と処理名抽出ボタン７３８とが含まれている。なお、処理名対応付け画面６０の文書分析ボタン６１４が押下されたことによって文書分析画面７０が表示される際には、文書名ドロップダウンリスト７１０にはデフォルトで比較元文書の文書名が表示され、処理名対応付け画面６０の文書分析ボタン６２４が押下されたことによって文書分析画面７０が表示される際には、文書名ドロップダウンリスト７１０にはデフォルトで比較先文書の文書名が表示される。
【００８７】
文書分析画面７０の表示後、作業者が文章分析ボタン７２８を押下することによって、比較元文書に対する文章分析（形態素解析および係り受け解析）が行われる（ステップＳ３１２）。なお、ここでは第１のチェックボックス７２４が選択されている場合を例に挙げているが、第２のチェックボックス７２６が選択されている場合には形態素解析のみが行われる。文章分析が実行されると、例えば図１９に示すように、文章分析結果欄７２２に文章分析の結果が表示される。
【００８８】
その後、作業者が処理名抽出ボタン７３８を押下することによって、処理名抽出処理（図８参照）の際と同様の関連処理解析が実行され、さらに、比較元文書の記述内容を内部的にタイトルとその説明文とに分割する文書分割が実行される（ステップＳ３１４）。関連処理解析によって、比較元文書の記述内容に関連する処理の名称（処理名）がステップＳ３１２での文章分析の結果に基づいて抽出される。文書分割の際、タイトルについては、処理名であるか処理名以外の名称（ここでは便宜上「対象外」という。）であるかの判断が行われる。
【００８９】
ところで、一般的に、ソフトウェア開発に関する仕様書では、或る処理について記載される際、「処理名の宣言に続いて当該処理についての説明文を記載する」という形式が採用されている。そこで、上述の文書分割は、例えば以下のようなルールに従って文書を分析することによって行われる。
ルールＡ：「タブ」や「インデント」などと呼ばれる空白部分・余白部分を除く行頭から始まる体言止めの文（語）をタイトルとみなす。
ルールＢ：章番号を表す記号など行頭に存在する特定の記号については文書を分析する際に削除する。
ルールＣ：「・・・について」など特定の表現で終了している文については、当該特定の表現を削除した上で体言止めの文として扱う。
ルールＤ：タイトルとみなされた文（語）のうち処理定義データ２０で定義されている処理名（別名称を含む）と一致するものを処理名とみなす。
ルールＥ：タイトルとみなされた文（語）のうちルールＤによって処理名とみなされなかったものを対象外とみなす。
ルールＦ：タイトルとみなされた文（語）に続く記載を当該タイトルに関する説明文とみなす。
ルールＧ：各タイトルに関し、次に現れるタイトルの直前の文までを説明文とみなす。但し、改行が連続する場合など所定の条件を満たす場合には、その直前の文までを説明文とみなす。
【００９０】
また、或る処理名についての説明文以外の箇所で当該処理名に言及している箇所があれば、その記述内容が「言及箇所」として扱われる。
【００９１】
ここで、処理対象の文書の記述内容が図２０に示すようなものであると仮定して、文書分割の具体例について説明する。まず、ルールＡ，Ｂ，およびＣに基づいて、「概要」，「データ受信」，「データ送信」，および「その他」という語がタイトルとみなされる（符号５１，５３，５５，および５７の矢印で示す行を参照）。この際、符号５１の矢印で示す行については、ルールＢに従って「Ｉ」という記号を削除することによって得られる「概要」という語がタイトルとみなされる。また、符号５３の矢印で示す行については、ルールＣに従って「・・・について」という表現を削除することによって得られる「データ受信」という語がタイトルとみなされる。また、符号５５の矢印で示す行については、先頭の空白部分を除いた「データ送信」という語がタイトルとみなされる。
【００９２】
さらに、処理定義データ２０で定義されている処理名の中に「データ受信」という名称および「データ送信」という名称が含まれていると仮定する。このとき、ルールＤに従って、「データ受信」という語および「データ送信」という語が処理名とみなされる。また、ルールＥに従って、「概要」という語および「その他」という語が対象外とみなされる。そして、ルールＦ，Ｇに従って、符号５２で示す部分の記述が「概要」に関する説明文とみなされ、符号５４で示す部分の記述が「データ受信」に関する説明文とみなされ、符号５６で示す部分の記述が「データ送信」に関する説明文とみなされ、符号５８で示す部分の記述が「その他」に関する説明文とみなされる。
【００９３】
また、符号５６で示す部分の記述が「データ送信」に関する説明文とみなされるが、符号５８で示す部分の記述に「データ送信」という語が含まれている。従って、符号５８で示す部分の記述は、「データ送信」に関する言及箇所として扱われる。
【００９４】
以上のような文書分割が行われた後、例えば図２１に示すように、文書分割で処理名と判断された文（語）が処理名表示領域７３２に表示されるとともに、文書分割で対象外と判断された文（語）が対象外表示領域７３４に表示される（ステップＳ３１６）。
【００９５】
その後、作業者は、処理名表示領域７３２および対象外表示領域７３４に表示された結果を見て、処理名の抽出（関連処理解析）を再実行するか否かを判断する（ステップＳ３１８）。そして、作業者によって処理名の抽出（関連処理解析）を再実行する旨の判断がなされると、処理はステップＳ３１９に進み、そうでなければ、処理はステップＳ３２０に進む。ステップＳ３１９では、上述した処理名抽出処理におけるステップＳ１７０と同様、作業者によって処理定義データ２０の更新が行われる。処理定義データ２０の更新後、処理はステップＳ３１４に戻る。ステップＳ３１４およびステップＳ３１６の処理は、作業者によって処理名の抽出（関連処理解析）の再実行を要さないと判断されるまで繰り返される。
【００９６】
ステップＳ３２０では、処理名表示領域７３２に表示されている処理名のいずれかが作業者によって選択され、その選択された処理名に関する説明文および言及箇所の記述内容が例えば図２２に示すように説明文表示領域７３６に表示される。その後、作業者が文書分析画面７０の閉じるボタン７９０を押下することによって、文書分析画面７０が非表示となり、処理名対応付け画面６０が表示部１６に表示される（ステップＳ３３０）。このとき、図２３に示すように、処理名表示領域６１６および対象外表示領域６１８には、ステップＳ３１４での処理名の抽出（関連処理解析）の結果が反映されている。
【００９７】
次に、ステップＳ３０２と同様にして、作業者によって、比較先文書の指定が行われる（ステップＳ３３２）。なお、このとき、比較元文書についての要求・障害リスト化処理の際に一覧表示された要求レコード３０Ｒおよび障害レコード４０Ｒに関連する文書（添付文書）が文書指定ドロップダウンリスト６１２で選択可能となっている。ステップＳ３４０〜Ｓ３５０では、処理名対応付け画面６０の文書指定ドロップダウンリスト６２２で指定された文書（比較先文書）が処理対象（分析対象）とされた状態で、ステップＳ３１０〜Ｓ３２０と同様の処理が行われる。
【００９８】
その後、作業者が文書分析画面７０の閉じるボタン７９０を押下することによって、文書分析画面７０が非表示となり、処理名対応付け画面６０が表示部１６に表示される（ステップＳ３６０）。このとき、図２４に示すように、処理名表示領域６２６および対象外表示領域６２８には、ステップＳ３４４での処理名の抽出（関連処理解析）の結果が反映されている。
【００９９】
その後、比較元文書から抽出された処理名と比較先文書から抽出された処理名とを互いに対応付ける処理（処理名対応付け処理）が行われる（ステップＳ３７０）。具体的には、まず、作業者が処理名対応付け画面６０の処理名対応付けボタン６３０を押下する。これにより、比較元文書から抽出された処理名と比較先文書から抽出された処理名との間で名称が一致しているものが互いに対応付けられる。このとき、処理定義データ２０に登録されている別名称も考慮される。例えば、或る処理についての処理定義レコード２０Ｒに関し、「図形分析」という名称が処理名として登録され、「図形解析」という名称が別名称として登録されていると仮定する。この場合において、比較元文書に基づき「図形分析」という処理名が抽出されていて、かつ、比較先文書に基づき「図形解析」という処理名が抽出されていれば、処理名対応付けボタン６３０の押下によって、比較元文書内の「図形分析」という名称と比較先文書内の「図形解析」という名称とが互いに対応付けられる。以上のような処理名対応付け処理の結果が、図２５に示すように、処理名対応付け画面６０の対応済処理名表示領域６４０および未対応処理名表示領域６５０に反映される。
【０１００】
また、ステップＳ３７０に関し、作業者は、処理名対応付けボタン６３０の押下によって対応付けが行われなかった２つの名称（未対応処理名表示領域６５０に表示されている、比較元文書から抽出された名称と比較先文書から抽出された名称）を互いに対応付けることもできる。例えば、作業者は、比較元文書内の「給湯ボタン」という名称と比較先文書内の「給湯スイッチ」という名称とを互いに対応付けようとする場合、図２６に示すように未対応処理名表示領域６５０内の「給湯ボタン」という名称と「給湯スイッチ」という名称とを選択した状態で、関連付けボタン６７０を押下する。これにより、「給湯ボタン」という名称と「給湯スイッチ」という名称とが互いに対応付けられ、図２７に示すように、対応済処理名表示領域６４０に「給湯ボタン」という名称と「給湯スイッチ」という名称とが表示される。
【０１０１】
以上のようにして処理名の対応付けが行われた後、作業者は、図２８に示すように対応済処理名表示領域６４０に表示されている処理名の中から比較したい処理名を選択した状態で、比較表示ボタン６６０を押下する。これにより、図２９に示すような比較画面８０が表示部１６に表示される（ステップＳ３８０）。比較画面８０には、比較元処理名ドロップダウンリスト８１２と比較元説明文表示領域８１４と比較元対応箇所開ボタン８１６と比較先処理名ドロップダウンリスト８２２と比較先説明文表示領域８２４と比較先対応箇所開ボタン８２６と閉じるボタン８９０とが含まれている。
【０１０２】
比較画面８０の表示直後には、処理名対応付け画面６０で選択された処理名に対応する説明文が比較元説明文表示領域８１４および比較先説明文表示領域８２４に表示される（言及箇所が存在する場合には、その記述内容も表示される。）。図２８に示す例では、処理名対応付け画面６０の対応済処理名表示領域６４０において「解除ボタン」が選択されている。従って、図２９に示すように、比較画面８０には、比較元文書における「解除ボタン」の説明文と比較先文書における「解除ボタン」の説明文とが並べて表示される。
【０１０３】
比較画面８０が表示されている状態において、作業者は、比較元処理名ドロップダウンリスト８１２および比較先処理名ドロップダウンリスト８２２から現在選択されている処理名とは別の処理名を選択することができる。これにより、作業者は、比較画面８０を一旦閉じることを要することなく、現在選択されている処理名とは別の処理名についての説明文を比較することができる。
【０１０４】
なお、比較画面８０において、比較元対応箇所開ボタン８１６が押下されると、文書編集用のアプリケーションソフトウェアが起動し、比較元文書が編集可能な状態となる。同様に、比較画面８０において、比較先対応箇所開ボタン８２６が押下されると、文書編集用のアプリケーションソフトウェアが起動し、比較先文書が編集可能な状態となる。
【０１０５】
以上のように、比較表示処理では、作業者によって指定された比較元文書と比較先文書との間で処理名の対応付けが行われ、対応付けられた処理名に関する比較元文書の説明文と比較先文書の説明文とが並べて表示される。
【０１０６】
なお、本実施形態においては、ステップＳ３１４によって比較元文書分割ステップが実現され、ステップＳ３４４によって比較先文書分割ステップが実現され、ステップＳ３８０によって表示ステップが実現されている。
【０１０７】
ところで、ここでは、作業者によって典型的な操作が行われたものと仮定して、処理の流れを説明した。しかしながら、実際には、作業者は、必要に応じて、処理名対応付け画面６０と文書分析画面７０との間で表示画面を遷移させることができるし、処理名対応付け画面６０と比較画面８０との間で表示画面を遷移させることもできる。具体的には、処理名対応付け画面６０が表示されている状態で文書分析ボタン６１４または文書分析ボタン６２４が押下されると、表示画面が処理名対応付け画面６０から文書分析画面７０に遷移し、文書分析画面７０が表示されている状態で閉じるボタン７９０が押下されると、表示画面が文書分析画面７０から処理名対応付け画面６０に遷移する（図３０参照）。また、処理名対応付け画面６０が表示されている状態で比較表示ボタン６６０が押下されると、表示画面が処理名対応付け画面６０から比較画面８０に遷移し、比較画面８０が表示されている状態で閉じるボタン８９０が押下されると、表示画面が比較画面８０から処理名対応付け画面６０に遷移する（図３０参照）。
【０１０８】
＜４．効果＞
本実施形態によれば、処理名抽出処理によって、検査対象文書ＴＤの記述内容と関連性が高い処理の名称（処理名）が抽出される。そして、要求・障害リスト化処理によって、要求データ３０および障害データ４０の中から処理名抽出処理で抽出された処理名を関連処理名として含んでいる要求レコード３０Ｒおよび障害レコード４０Ｒが抽出され、その抽出された要求レコード３０Ｒおよび障害レコード４０Ｒの一覧表示が行われる。このようにして、検査対象文書ＴＤに関連性の高い要求や障害が漏れなくリスト化される。これにより、作業者（文書作成者）は、仕様書等の文書を作成する際に、人（文書作成者自身や他の担当者等）の記憶に頼ることなく、どの要求に関する文書あるいはどの障害に関する文書を参照すれば良いのかを把握することが可能となる。
【０１０９】
また、本実施形態によれば、作業者によって指定された２つの文書間で処理名の対応付けが行われ、対応付けられた処理名に関する一方の文書の説明文と他方の文書の説明文とが並べて表示される。このため、或る要求や或る障害に関する文書が作成された際に、各処理に関する記載内容を、同様の処理に関して過去に作成された文書の記載内容と容易に比較することができる。このとき、上流工程で作成した文書と下流工程で作成した文書とを比較することもできる。また、作業者が内容の確認を望む処理についての説明文だけを比較表示することができるので、文書の記載内容を確認する作業が効率的に行われる。
【０１１０】
以上より、本実施形態によれば、ソフトウェア開発の際に作成される仕様書等の文書に関して必要事項の記載漏れを効果的に抑制することが可能となる。
【符号の説明】
【０１１１】
１…ソフトウェア開発管理システム
２…文書検査システム
１０…サーバ
２０，２０Ｒ…処理定義データ、処理定義レコード
３０，３０Ｒ…要求データ、要求レコード
４０，４０Ｒ…障害データ、障害レコード
６０…処理名対応付け画面
７０…文書分析画面
８０…比較画面
１４０…データベース
ＴＤ…検査対象文書
【図１】
2018026029.tif 000003
【図２】
2018026029.tif 000004
【図３】
2018026029.tif 000005
【図４】
2018026029.tif 000006
【図５】
2018026029.tif 000007
【図６】
2018026029.tif 000008
【図７】
2018026029.tif 000009
【図８】
2018026029.tif 000010
【図９】
2018026029.tif 000011
【図１０】
2018026029.tif 000012
【図１１】
2018026029.tif 000013
【図１２】
2018026029.tif 000014
【図１３】
2018026029.tif 000015
【図１４】
2018026029.tif 000016
【図１５】
2018026029.tif 000017
【図１６】
2018026029.tif 000018
【図１７】
2018026029.tif 000019
【図１８】
2018026029.tif 000020
【図１９】
2018026029.tif 000021
【図２０】
2018026029.tif 000022
【図２１】
2018026029.tif 000023
【図２２】
2018026029.tif 000024
【図２３】
2018026029.tif 000025
【図２４】
2018026029.tif 000026
【図２５】
2018026029.tif 000027
【図２６】
2018026029.tif 000028
【図２７】
2018026029.tif 000029
【図２８】
2018026029.tif 000030
【図２９】
2018026029.tif 000031
【図３０】
2018026029.tif 000032