(57)【要約】【課題】ソフトウェアの要求仕様書自動生成ツール構成方法に関し、生成されるソースコードの制約を受けることなく、平易な自然言語記述によるソフトウェア要件１０２の記述を基に、ソフトウェア要求仕様書１０４を自動生成する。【解決手段】自然言語により記述されたソフトウェア要件１０２を入力として、自然言語解析情報１１１として出力する自然言語解析部１０１と、自然言語解析情報１１１を入力として、アクター情報１１２を出力するアクター情報抽出部１０３と、自然言語解析情報１１１を入力として、動作条件情報１１３を出力する動作条件情報抽出部１０５と、アクター情報１１２と動作条件情報１１３を入力として、ソフトウェア要求仕様書１０４を出力する要求仕様書生成部１０６と、開発対象ソフトウェアの分野固有の要求仕様知識を蓄積するドメイン知識データベース１０８〜１１０を複数種類保持するドメイン知識データベース部１０７とを備える。【選択図】図１
2009181550.tif 000002
【特許請求の範囲】
【請求項１】
自然言語により記述されたソフトウェア要件を入力として、ソフトウェア要求仕様に必要な情報を自然言語解析情報として出力する自然言語解析部と、
前記自然言語解析情報を入力として、ソフトウェア要求仕様に必要なアクター情報を出力するアクター情報抽出部と、
前記自然言語解析情報を入力として、ソフトウェア要求仕様に必要な動作条件情報を出力する動作条件情報抽出部と、
前記アクター情報と前記動作条件情報を入力として、ソフトウェア要求仕様書を出力する要求仕様書生成部と、
開発対象ソフトウェアの分野固有の要求仕様知識を蓄積するドメイン知識データベースを複数種類保持するドメイン知識データベース部と、を備えることを特徴とするソフトウェア要求仕様書自動生成ツール構成方法。
【請求項２】
前記ドメイン知識データベース部は、前記ドメイン知識データベースを処理対象ソフトウェアの分野に応じて解析処理中に動的に切り替え可能である、ことを特徴とする請求項１に記載のソフトウェア要求仕様書自動生成ツール構成方法。
【請求項３】
前記ソフトウェア要求仕様書の生成結果を前記ドメイン知識データベースに反映させて、前記ドメイン知識データベースを開発対象ソフトウェアの領域に特化させる、ことを特徴とする請求項１に記載のソフトウェア要求仕様書自動生成ツール構成方法。
【請求項４】
前記ドメイン知識データベースに蓄積されている知識を用いて、利用者が入力した自然言語によるソフトウェア要件記述に不足する情報の補完を自動的に行うことにより、前記自然言語によるソフトウェア要件記述を前記ソフトウェア要求仕様書の自動生成が可能な記述に修正する、ことを特徴とする請求項１に記載のソフトウェア要求仕様書自動生成ツール構成方法。
【請求項５】
前記ドメイン知識データベースに蓄積されている知識を用いて、利用者が入力した自然言語によるソフトウェア要件記述に不足する情報を補完する語句の候補を提示して、ユーザに前記不足語句の補完候補を選択させ、前記自然言語によるソフトウェア要件記述を前記ソフトウェア要求仕様書の自動生成が可能な記述に修正する、ことを特徴とする請求項１に記載のソフトウェア要求仕様書自動生成ツール構成方法。
【請求項６】
特定の語句を強調記述したソフトウェア要件記述を入力とし、前記ソフトウェア要求仕様書に必ず出力すべき語句を特定する、ことを特徴とする請求項４に記載のソフトウェア要求仕様書自動生成ツール構成方法。
【請求項７】
ユーザからのソフトウェア要件を入力するための入力部と、前記要求仕様書生成部によって生成された前記ソフトウェア要求仕様書を表示するための表示部とを備える、ことを特徴とする請求項１に記載のソフトウェア要求仕様書自動生成ツール構成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェアの要求仕様書自動生成ツール構成方法に関するものである。
【背景技術】
【０００２】
従来の自然言語を入力としたソフトウェア開発ツールには、例えば特許文献１のような構成方法があった。
【０００３】
図１９は特許文献１に記載された従来のソフトウェア開発ツールの構成方法を示す図である。図１９に示す従来のソフトウェア開発ツールの動作について説明する。
【０００４】
自然言語解析手段１９０１、推論手段１９０２、編集手段１９０３の各手段を用いて自然言語で記述されたソフトウェア仕様を形態素解析、意味解析を通して意味構文に変換し、意味構文の意図する内容を推論手段１９０２で分析し、必要なモジュールに展開する。
【特許文献１】特開平６−２１４７７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
図１９に示した従来のソフトウェア開発ツールでは、自然言語で記述されたソフトウェア仕様を直接プログラムのソースコードに変換していた。そのため、最初の入力となる自然言語で表現されたソフトウェア仕様はプログラムを生成しやすい文法、用語を用いて記述しなければならず、自然言語で仕様を表現するという特徴を十分に生かすことができなかった。
【０００６】
また直接ソースコードに変換するという特徴から、変換先のプログラム言語が規定されてしまう、プログラムの設計情報がなくそのまま実装にまで変換されてしまう、ソフトウェア仕様が自然言語でしか表現されていないので仕様レベルでのテスト仕様作成・テスト実施が困難、自然言語記述の揺らぎが直接生成されるソースコードに影響してしまう、ある程度生成されるソースコードを見据えた上で自然言語を記述しなければならないため結局プログラミング言語ではじめから記述するのとほとんど変らない、などのような課題もあった。
【０００７】
本発明は上記課題を解決するため、自然言語を入力とし、直接ソースコードを出力するのではなく、入力に従ったソフトウェア要求仕様書を自動生成するソフトウェア要求仕様書自動生成ツール構成方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
従来の課題を解決するために、本発明のソフトウェア要求仕様書自動生成ツール構成方法は、自然言語により記述されたソフトウェア要件を入力として、ソフトウェア要求仕様に必要な情報を自然言語解析情報として出力する自然言語解析部と、前記自然言語解析情報を入力として、ソフトウェア要求仕様に必要なアクター情報を出力するアクター情報抽出部と、前記自然言語解析情報を入力として、ソフトウェア要求仕様に必要な動作条件情報を出力する動作条件情報抽出部と、前記アクター情報と前記動作条件情報を入力として、ソフトウェア要求仕様書を出力する要求仕様書生成部と、開発対象ソフトウェアの分野固有の要求仕様知識を蓄積するドメイン知識データベースを複数種類保持するドメイン知識データベース部とを備えることを特徴とする。
【０００９】
好ましくは、前記ドメイン知識データベース部は、前記ドメイン知識データベースを処理対象ソフトウェアの分野に応じて解析処理中に動的に切り替え可能であることを特徴とする。
【００１０】
好ましくは、前記ソフトウェア要求仕様書の生成結果を前記ドメイン知識データベースに反映させて、前記ドメイン知識データベースを開発対象ソフトウェアの領域に特化させることを特徴とする。
【００１１】
好ましくは、ユーザからのソフトウェア要件を入力するための入力部と、前記要求仕様書生成部によって生成された前記ソフトウェア要求仕様書を表示するための表示部とを備えることを特徴とする。
【００１２】
本発明のソフトウェア要求仕様書自動生成ツール構成方法によると、自然言語により記述されたソフトウェア要件から作成した自然言語解析情報より、ドメイン知識データベースを用いてアクター情報と動作条件情報を抽出し、抽出したアクター情報と動作条件情報からソフトウェア要求仕様書を作成することができ、直接ソースコードを出力するのではなく、自然言語記述による要件からソフトウェア要求仕様書を出力することができる。
【００１３】
また本発明の記ソフトウェア要求仕様書自動生成ツール構成方法は、前記ドメイン知識データベースに蓄積されている知識を用いて、利用者が入力した自然言語によるソフトウェア要件記述に不足する情報の補完を自動的に行うことにより、前記自然言語によるソフトウェア要件記述を前記ソフトウェア要求仕様書の自動生成が可能な記述に修正することを特徴とする。
【００１４】
好ましくは、特定の語句を強調記述したソフトウェア要件記述を入力とし、前記ソフトウェア要求仕様書に必ず出力すべき語句を特定することを特徴とする。
【００１５】
本発明のソフトウェア要求仕様書自動生成ツール構成方法によると、利用者が入力した自然言語によるソフトウェア要件記述に不足する情報を補完することで、利用者に対して完全な自然言語の記述を求めることなく、より自然な言語記述による要件からソフトウェア要求仕様書を出力することができる。
【００１６】
また本発明の記ソフトウェア要求仕様書自動生成ツール構成方法は、前記ドメイン知識データベースに蓄積されている知識を用いて、利用者が入力した自然言語によるソフトウェア要件記述に不足する情報を補完する語句の候補を提示して、ユーザに前記不足語句の補完候補を選択させ、前記自然言語によるソフトウェア要件記述を前記ソフトウェア要求仕様書の自動生成が可能な記述に修正することを特徴とする。
【００１７】
本発明のソフトウェア要求仕様書自動生成ツール構成方法によると、利用者が入力した自然言語によるソフトウェア要件記述に不足する情報を補完する語句の候補を提示して、ユーザに前記不足語句の補完候補を選択させることで、完全な自然言語の記述が得られ、利用者に対して初めから完全な自然言語の記述を求めることなく、より自然な言語記述による要件からソフトウェア要求仕様書を出力することができる。
【発明の効果】
【００１８】
本発明のソフトウェア要求仕様書自動生成ツール構成方法によれば、生成されるソースコードの制約を受けることなく、平易な自然言語記述によるソフトウェア要件の記述を基に、ソフトウェア要求仕様書を自動生成することができる。
【発明を実施するための最良の形態】
【００１９】
以下に本発明の実施の形態について、図面を参照しながら説明する。
【００２０】
（実施の形態１）
図１は本発明の実施の形態１におけるソフトウェア要求仕様書自動生成ツール構成方法の構成図である。
【００２１】
図１において、自然言語解析部１０１は自然言語で記述されたソフトウェア要件１０２を入力として自然言語での記述内容を形態素解析などで解析し、機械的処理可能な自然言語解析情報１１１を作成する。アクター情報抽出部１０３は自然言語解析部１０１によって出力された自然言語解析情報１１１を元にして、要求仕様の一部であるアクター情報１１２を出力する。動作条件情報抽出部１０５は自然言語解析部１０１によって出力された自然言語解析情報１１１を元にして、要求仕様の一部である動作条件情報１１３を出力する。アクター情報抽出部１０３と動作条件情報抽出部１０５は、ドメイン知識データベース部１０７に格納されている対象分野毎のドメイン知識データベース１０８〜１１０をドメイン情報１１４に格納されている現在の開発対象ソフトウェアの分野に応じて変更しながら参照し、それぞれアクター情報１１２と動作条件情報１１３を出力する。要求仕様書生成部１０６はアクター情報１１２と動作条件情報１１３を入力として、ソフトウェア要求仕様書１０４を出力する。ソフトウェア要求仕様書１０４を出力する際の生成情報はドメイン知識データベース部１０７にフィードバックされ、ドメイン知識データベース１０８〜１１０が更新される。
【００２２】
図２に自然言語解析部１０１の処理フローを示す。自然言語解析部１０１はユーザにより入力されたソフトウェア要件１０２を入力として自然言語解析情報１１１を出力する。まずユーザにより自然言語で記述されたソフトウェア要件を読み込む（Ｓ２０１）。次に読み込んだソフトウェア要件を形態素解析などで自然言語記述を語句単位に分割し、品詞と語句の情報を得る（Ｓ２０２）。次に読み込んだ語句のうち語句が"「」"で括られているかどうかを判定する（Ｓ２０３）。語句が"「」"で括られていない場合には、ステップ２０５までスキップする。語句が"「」"で括られていた場合には自然言語解析情報の強制出力マーク（３０３（図３））を出力する（Ｓ２０４）。次に品詞と語句を組として自然言語解析情報１１１に出力する（Ｓ２０５）。なお、語句を括る"「」"は"〔〕" や"[]"などの括弧や"＊"などの記号をつけるなど、他の語句と違う印がつけられるものであればよいものとする。
【００２３】
図３に自然言語解析情報１１１を示す。自然言語解析情報１１１は複数の自然言語解析情報項目３０４から成る。各自然言語解析情報項目３０４は品詞３０１と語句３０２と強制出力マーク３０３の項目から構成される。品詞３０１は自然言語解析部１０１によって文節ごとに区切られた語句の品詞を格納する。語句３０２は自然言語解析部１０１によって文節ごとに区切られた語句を格納する。強制出力マーク３０３は必ずソフトウェア要求仕様書１０４に出力されるべき語句の場合にマークが設定される。一例として符号３０５〜３０７は品詞が「名詞」３０５であり、語句が「デコーダ」３０６であり、強制出力マーク付き３０７である場合のレコードを示す。
【００２４】
図４にアクター情報抽出部１０３の処理フローを示す。アクター情報抽出部１０３は自然言語解析部１０１から出力された自然言語解析情報１１１を受け取り、ソフトウェア要求仕様書１０４に記載すべきアクター情報１１２を抽出する。まず現在出力しようとしているソフトウェア要求仕様書１０４が開発対象とするソフトウェアのドメインをドメイン情報１１４から取得する（Ｓ４０１）。次に取得したドメイン情報１１４に従って、現在の処理ドメインに対応したドメイン知識データベース１０８〜１１０をドメイン知識データベース部１０７により選択する（Ｓ４０２）。次に、自然言語解析部１０１がソフトウェア要件１０２を解析して出力した自然言語解析情報１１１を読み込む（Ｓ４０３）。次に、読み込んだ自然言語解析情報１１１に含まれる全ての自然言語解析情報項目３０４について繰り返し処理を開始する（Ｓ４０４）。次に、最初の自然言語解析情報項目３０４から品詞３０１項目を読み込む（Ｓ４０５）。読み込んだ品詞３０１項目が名詞でなかった場合には次の自然言語解析情報項目３０４の処理に移る。読み込んだ品詞３０１項目が名詞であった場合には次ステップに移る（Ｓ４０６）。次に、自然言語解析情報項目３０４から語句３０２項目を読み込む（Ｓ４０７）。次に、現在選択されているドメイン知識データベース１０８〜１１０の中から、品詞３０１項目が名詞であるレコードを抽出する（Ｓ４０８）。次に、抽出された全ての品詞３０１項目が名詞であるレコードについて繰り返し処理を開始する（Ｓ４０９）。現在の処理対象のレコード中の語句８０３（図８）項目に格納されている語句と解析対象語句が一致しない場合には次のレコードの処理に移る。現在の処理対象のレコード中の語句８０３項目に格納されている語句と解析対象語句が一致した場合には次ステップに移る（Ｓ４１０）。レコード中の語句８０３項目と一致した現在の処理対象の語句をアクター候補としてアクター情報（１１２）に出力する（Ｓ４１１）。なお、ステップ４１２はステップ４０９の繰り返し処理の終了位置、ステップ４１３はステップ４０４の繰り返し処理の終了位置を示す。
【００２５】
図５にアクター情報１１２を示す。図５においてアクター候補名５０１にはアクター情報抽出部１０３によって自然言語解析情報１１１から抽出されたアクター候補名が格納される。アクター役割５０２にはアクター情報抽出部１０３によって自然言語解析情報１１１から抽出されたアクター候補名をキーとしてドメイン知識データベース部１０７のドメイン知識データベースを参照し、アクター候補名５０１に適合するアクター役割が格納される。強制出力マーク５０３には該当のアクター候補が必ずソフトウェア要求仕様書１０４に出力されるべきアクターである場合にマークが設定される。一例として符号５０４〜５０６はアクター候補名が「デコーダ」５０４であり、アクター役割が「受動アクター」５０５であり、強制出力マークがある５０６場合のレコードを示す。
【００２６】
図６に動作条件情報抽出部１０５の処理フローを示す。動作条件情報抽出部１０５は自然言語解析部１０１から出力された自然言語解析情報１１１を受け取り、ソフトウェア要求仕様書１０４に記載すべき動作条件情報１１３を抽出する。まず、現在出力しようとしているソフトウェア要求仕様書１０４が開発対象とするソフトウェアのドメインをドメイン情報１１４から取得する（Ｓ６０１）。次に取得したドメイン情報１１４に従って、現在の処理ドメインに対応したドメイン知識データベース１０８〜１１０をドメイン知識データベース部１０７により選択する（Ｓ６０２）。次に、自然言語解析部１０１がソフトウェア要件１０２を解析して出力した自然言語解析情報１１１を読み込む（Ｓ６０３）。次に、読み込んだ自然言語解析情報１１１に含まれる全ての自然言語解析情報項目３０４について繰り返し処理を開始する（Ｓ６０４）。次に、最初の自然言語解析情報項目３０４から品詞３０１項目を読み込む（Ｓ６０５）。読み込んだ品詞３０１項目が動詞であった場合には次ステップに移る（Ｓ６０６）。次に、自然言語解析情報項目３０４から語句３０２項目を読み込む（Ｓ６０７）。次に、現在選択されているドメイン知識データベース１０８〜１１０の中から、条件候補レコードを抽出する（Ｓ６０８）。次に、抽出された全ての条件候補レコードについて繰り返し処理を開始する（Ｓ６０９）。現在の処理対象のレコード中の条件内容８０７（図８）項目に格納されている条件内容文の中に全く解析対象語句が含まれていない場合には次のレコードの処理に移る。現在の処理対象のレコード中の条件内容８０７項目に格納されている条件内容文中の一部に解析対象語句が含まれている場合には次ステップに移る（Ｓ６１０）。一致した条件内容を動作条件候補として動作条件情報１１３に出力する（Ｓ６１１）。ステップ６０６において読み込んだ品詞３０１項目が動詞でなかった場合には、自然言語解析情報項目３０４から語句３０２項目を読み込む（Ｓ６１２）。次に現在選択されているドメイン知識データベース１０８〜１１０の中から、条件候補レコードを抽出する（Ｓ６１３）。次に、抽出された全ての条件候補レコードについて繰り返し処理を開始する（Ｓ６１４）。現在の処理対象のレコード中の条件内容８０７項目に格納されている条件内容と解析対象語句が完全に一致しない場合には次のレコードの処理に移る。現在の処理対象のレコード中の条件内容８０７項目に格納されている条件内容と解析対象語句が一致する場合には次ステップに移る（Ｓ６１５）。一致した条件内容を動作条件候補として動作条件情報１１３に出力する（Ｓ６１６）。次にステップ６０４に戻って繰り返し処理を行う。なお、ステップ６１７はステップ６１４の繰り返し処理の終了位置、ステップ６１８はステップ６０９の繰り返し処理の終了位置、ステップ６１９はステップ６０４の繰り返し処理の終了位置を示す。
【００２７】
図７に動作条件情報１１３を示す。図７において条件候補７０１には動作条件情報抽出部１０５によって自然言語解析情報１１１から抽出された条件候補文が格納される。条件種別７０２には動作条件情報抽出部１０５によって自然言語解析情報１１１から抽出された条件法補をキーとしてドメイン知識データベース部１０７のドメイン知識データベースを参照し、条件候補７０１に適合する条件種別が格納される。強制出力マーク７０３には該当の条件候補７０１が必ずソフトウェア要求仕様書１０４に出力されるべき条件である場合にマークが設定される。一例として符号７０４〜７０６は条件候補が「給湯が完了してロック状態であること」７０４であり、条件種別が「事後条件」７０５であり、強制出力マークがある７０６場合のレコードを示す。
【００２８】
図８にドメイン知識データベース１０８〜１１０のレコード情報を示す。ドメイン知識データベース１０８〜１１０は開発対象ソフトウェアの分野に特有の知識を保持するデータベースである。図８においてアクター候補８０１は開発対象ソフトウェア分野においてアクターとして使用される語句の候補である。アクター候補８０１はアクター候補の品詞を格納する品詞８０２項目とアクター候補語句を格納する語句８０３項目とからなる。条件候補８０６は開発対象ソフトウェア分野において要求仕様の条件記述として使用される語句の候補である。条件候補８０６は条件の語句を格納する条件内容８０７と条件の種別を格納する条件種別８０８とからなる。一例として符号８０４〜８０５、８０９〜８１０はアクター候補８０１のうち品詞８０２が「名詞」８０４、語句８０３が「温度センサ」８０５であり、条件候補８０６のうち条件内容８０７が「水位」８０９、条件種別８０８が「開始/不変/事後」８１０である場合のレコードを示す。
【００２９】
図９に要求仕様書生成部１０６によって自動的に生成されるソフトウェア要求仕様書１０４を示す。本実施の形態の要求仕様書はソフトウェアのユースケースを詳細に記述したユースケースドキュメントの集合であるとする。図９は一つの機能要件に対応したユースケースドキュメントである。図９において「ユースケースID」９０１は個々のユースケースを識別するための識別番号が格納される。「ユースケース名」９０２はユースケースの名前が格納される。「概要」９０３はユースケースの機能・動作の概要記述が格納される。「アクター」９０４はユースケースに関連し影響を及ぼす、または影響を及ぼされるアクターが格納される。「処理条件」９０５は「開始条件」９０８、「不変条件」９０９、「事後条件」９１０から成り、さらに「開始条件」９０８は「トリガ」９０６、「条件」９０７から成る。「トリガ」９０６にはユースケースが開始されるためのトリガが格納される。「条件」９０７にはトリガによってユースケースが開始される際に満たしていなければならない条件が格納される。「不変条件」９０９にはユースケースが実行されている間には常に満たしていなければならない条件が格納される。「事後条件」９１０にはユースケースの実行が終了した後に満たしていなければならない条件が格納される。「フロー」９１１にはユースケースの実行の流れをフローチャート、アクティビティ図等の図的表現を用いて記述し格納する。「備考/未決定事項/仮決定事項」９１２には要求仕様書記述の初期段階では決定できていないかもしくは仮に決定した事項や、仕様を把握する上で参考となる事項などを記述して格納する。ただし本実施の形態では、「フロー」９１１と「備考/未決定事項/仮決定事項」９１２は人手による記述を行うものとする。一例として符号９１３〜９２２に各項目の記述例を示す。例ではユースケースID９０１が「〔必須〕[UC-001]」９１３であり、ユースケース名９０２が「給湯する」９１４であり、概要９０３が「ポット内で沸騰済みのお湯を給湯する」９１５であり、アクター９０４が「１.ユーザ、２.システム」９１６の二種類であり、処理条件９０５のうち開始条件９０８のトリガ９０６が「アクタ１.(ユーザ)からの給湯準備指示、アクタ１.(ユーザ)からの給湯開始指示」９１７の二種類であり、処理条件９０５のうち開始条件９０８の条件９０７が「１.お湯があること、２.お湯の温度が設定値以上であること」９１８であり、処理条件９０５のうち不変条件９０９が「給水蓋が閉じていること」９１９であり、処理条件９０５のうち事後条件９１０が「給湯が完了してロック状態であること」９２０であり、フロー９１１が符号９２１のアクティビティ図で示される処理フローであり、備考/未決定事項/仮決定事項９１２が「１.お湯があること、２.お湯の温度が設定値以上であること」９２２の場合を示す。
【００３０】
なお本実施の形態で例示したソフトウェア要求仕様書１０４はソフトウェアのユースケースを詳細に記述したユースケースドキュメントの集合であるものとしたが、機能要件の箇条書き、図形表現等で記述されるソフトウェア要求仕様書も出力可能である。
【００３１】
図１０〜図１３に要求仕様書生成部１０６の処理フローを示す。
【００３２】
図１０は要求仕様書生成部１０６の処理フローの全体の流れを示す。要求仕様書生成部１０６はアクター情報１１２と動作条件情報１１３を入力としてソフトウェア要求仕様書１０４を出力する。まず、ドメイン情報１１４を読み込む（Ｓ１００１）。次に、読み込んだドメイン情報１１４に従って使用するドメイン知識データベースを選択する（Ｓ１００２）。次に、アクター設定処理を行う（Ｓ１００３）。アクター設定処理の詳細は図１１に示す。次に、動作条件設定処理を行う（Ｓ１００４）。動作条件設定処理の詳細は図１２に示す。次にソフトウェア要求仕様書１０４を出力する際に得られた新しいドメイン知識をドメイン知識データに反映するドメイン知識データベース更新処理を行う（Ｓ１００５）。ドメイン知識データベース更新処理の詳細は図１３に示す。次に前ステップまでで得られた情報をもとにしてソフトウェア要求仕様書１０４を出力する（Ｓ１００６）。
【００３３】
図１１は要求仕様書生成部１０６の処理フローのうちアクター設定処理の処理フローを示す。アクター設定処理はアクター情報１１２を入力としてソフトウェア要求仕様書１０４のアクター９０４項目に出力するアクターを決定する処理である。まず、アクター情報１１２を読み込む（Ｓ１１０１）。次に全てのアクター情報項目について繰り返しを開始する（Ｓ１１０２）。次に、現在処理対象のアクター情報項目の強制出力マーク欄５０３に強制出力マークがあるかどうか判定する（Ｓ１１０３）。強制出力マークがある場合にはステップ１１０６まで処理をスキップする。強制出力マークが無い場合には、アクター候補名をドメイン知識データベースから検索する（Ｓ１１０４）。次に、ドメイン知識データベースにアクター候補が含まれるかどうか判定する（Ｓ１１０５）。アクター候補が含まれない場合にはステップ１１０２に戻って次のアクター情報項目の処理に移行する。アクター候補が含まれる場合には、アクター役割５０２項目に従って処理を分岐する（Ｓ１１０６）。アクター役割５０２項目が「能動アクター」であった場合には、ソフトウェア要求仕様書１０４のアクター９０４項目の先頭にアクターとして設定する（Ｓ１１０７）。アクター役割５０２項目が「受動アクター」であった場合には、ソフトウェア要求仕様書１０４のアクター９０４項目の末尾にアクターとして設定する（Ｓ１１０８）。以上の処理を全てのアクター情報項目について繰り返す。なお、ステップ１１０９はステップ１１０２の繰り返し処理の終了位置を示す。
【００３４】
図１２は要求仕様書生成部１０６の処理フローのうち動作条件設定処理の処理フローを示す。動作条件設定処理は動作条件情報１１３を入力としてソフトウェア要求仕様書１０４の処理条件９０５項目に出力する動作条件を決定する処理である。まず、動作条件情報１１３を読み込む（Ｓ１２０１）。次に全ての動作条件情報項目について繰り返しを開始する（Ｓ１２０２）。次に、現在処理対象の動作条件情報項目の強制出力マーク欄７０３に強制出力マークがあるかどうか判定する（Ｓ１２０３）。強制出力マークがある場合にはステップ１２０６まで処理をスキップする。強制出力マークが無い場合には、動作条件候補をドメイン知識データベースから検索する（Ｓ１２０４）。次に、ドメイン知識データベースに動作条件候補が含まれるかどうか判定する（Ｓ１２０５）。動作条件候補が含まれない場合にはステップ１２０２に戻って次の動作条件情報項目の処理に移行する。動作条件候補が含まれる場合には、条件種別７０２項目に従って処理を分岐する（Ｓ１２０６）。条件種別７０２項目が「不変条件」であった場合には、ソフトウェア要求仕様書１０４の処理条件９０５項目のうち不変条件９０９に条件として設定する（Ｓ１２０７）。条件種別７０２項目が「開始条件」であった場合には、ソフトウェア要求仕様書１０４の処理条件９０５項目のうち開始条件９０８に条件として設定する（Ｓ１２０８）。条件種別７０２項目が「事後条件」であった場合には、ソフトウェア要求仕様書１０４の処理条件９０５項目のうち事後条件９１０に条件として設定する（Ｓ１２０９）。以上の処理を全ての条件情報項目について繰り返す。なお、ステップ１２１０はステップ１２０２の繰り返し処理の終了位置を示す。
【００３５】
図１３は要求仕様書生成部１０６の処理フローのうちドメイン知識データベース更新処理の処理フローを示す。ドメイン知識データベース更新処理はソフトウェア要求仕様書１０４の生成過程でドメイン知識データベースに含まれないドメイン知識が得られた場合にドメイン知識データベースを更新する処理である。まず、アクター情報１１２、動作条件情報１１３のうちから強制出力マークのついた項目のみを抽出する（Ｓ１３０１）。次に、全ての強制出力マーク付きの項目について繰り返し処理を開始する（Ｓ１３０２）。次に、ドメイン知識データベースに現在処理対象の強制出力マーク付き項目を追加する（Ｓ１３０３）。以上の処理を全ての強制出力マーク付きの項目について繰り返す。なお、ステップ１３０４はステップ１３０２の繰り返し処理の終了位置を示す。
【００３６】
なお、ユーザからのソフトウェア要件を入力するための入力部として例えばキーボード等を備え、要求仕様書生成部１０６によって生成されたソフトウェア要求仕様書１０４を表示するための表示部として例えばディスプレイ装置、プリンタを用いた紙出力、音声合成による読み上げに出力等を備える。
【００３７】
このように構成されたソフトウェア要求仕様書自動生成ツール構成方法によると、自然言語により記述されたソフトウェア要件から作成した自然言語解析情報１１１より、ドメイン知識データベース１０８〜１１０を用いてアクター情報１１２と動作条件情報１１３を抽出し、抽出したアクター情報１１２と動作条件情報１１３からソフトウェア要求仕様書１０４を作成することができ、直接ソースコードを出力するのではなく、自然言語記述による要件からソフトウェア要求仕様書１０４を出力することができる。
【００３８】
（実施の形態２）
図１４は本発明の実施の形態２におけるソフトウェア要求仕様書自動生成ツール構成方法の構成図である。図１４おいて図１と同じ構成要素については同じ符号を用いて説明を省略する。
【００３９】
実施の形態２の自然言語解析部１４０１においては、ソフトウェア要件１０２を読み込んだ後、ドメイン知識データベース部１０７に蓄積されているドメイン知識データベース１４０２〜１４０４のドメイン知識を利用して、ソフトウェア要求仕様書１０４を出力するのに不足するソフトウェア要件１０２の記述を補完した上で自然言語解析情報１１１を出力する。
【００４０】
図１５に実施の形態２における自然言語解析部１４０１の処理フローを示す。まずユーザにより自然言語で記述されたソフトウェア要件を読み込む（Ｓ１５０１）。次に、ドメイン情報１１４を取得する（Ｓ１５０２）。次に、読み込んだドメイン情報１１４に従って現在の処理ドメインに対応したドメイン知識データベースを選択する（Ｓ１５０３）。次に、読み込んだソフトウェア要件を形態素解析などで自然言語記述を語句単位に分割し、品詞と語句の情報を得る（Ｓ１５０４）。次に、読み込んだ語句のうち語句が"「」"で括られているかどうかを判定する（Ｓ１５０５）。語句が"「」"で括られていない場合にはステップ１５０７までスキップする。語句が"「」"で括られていた場合には自然言語解析情報の強制出力マーク３０３を出力する（Ｓ１５０６）。次に品詞と語句を組として自然言語解析情報１１１に出力する。なお、語句を括る"「」"は"〔〕" や"[]"などの括弧や"＊"などの記号をつけるなど、他の語句と違う印がつけられるものであればよいものとする。次に、選択されているドメイン知識データベースで処理対象の語句を検索する（Ｓ１５０７）。次に、処理対象語句がドメイン知識データベースに含まれているかどうか判定する（Ｓ１５０８）。処理対象語句がドメイン知識データベースに含まれている場合にはステップ１５１０までスキップする。処理対象語句がドメイン知識データベースに含まれていない場合には、ドメイン知識データベースに含まれる語句のうち必須マーク１６０１，１６０３（図１６）のついたものを自然言語解析情報１１１に出力する（Ｓ１５０９）。次に、ステップ１５０４で得られた品詞と語句を自然言語解析情報１１１に出力する（Ｓ１５１０）。
【００４１】
図１６に実施の形態２におけるドメイン知識データベース１４０２〜１４０４のレコード情報を示す。図１６において図８と同じ構成要素については同じ符号を用い、説明を省略する。
【００４２】
実施の形態２のドメイン知識データベース１４０２〜１４０４のレコード情報はアクター候補情報に対する必須マーク１６０１と条件候補情報に対する必須マーク１６０３が付加される。一例として符号１６０２は「名詞」８０４、「温度センサ」８０５であるアクター候補は必須であることを示す。また、符号１６０４は「水位」８０９、「開始/不変/事後」８１０である条件候補情報が必須ではないことを示す。
【００４３】
なお、自然言語解析情報１１１の出力以降の、アクター情報１１２、動作条件情報１１３の抽出、ソフトウェア要求仕様書１０４の出力等の構成ならびにフローについては、実施の形態１と同様である。
【００４４】
このように構成されたソフトウェア要求仕様書自動生成ツール構成方法によると、実施の形態１と同様の効果が得られる。さらに、利用者が入力した自然言語によるソフトウェア要件記述に不足する情報を補完することで、利用者に対して完全な自然言語の記述を求めることなく、より自然な言語記述による要件からソフトウェア要求仕様書１０４を出力することができる。
【００４５】
（実施の形態３）
図１７は本発明の実施の形態３におけるソフトウェア要求仕様書自動生成ツール構成方法の構成図である。図１７において図１または図１４と同じ構成要素については同じ符号を用いて説明を省略する。
【００４６】
実施の形態３の自然言語解析部１７０３においては、ソフトウェア要件１０２を読み込んだ後、ドメイン知識データベース部１０７に蓄積されているドメイン知識データベース１４０２〜１４０４のドメイン知識を利用して、ソフトウェア要求仕様書１０４を出力するのに不足するソフトウェア要件１０２をディスプレイ装置（表示部）１７０１によってユーザに提示し、ユーザが入力部１７０２を用いて不足するソフトウェア要件を追加して入力することによりソフトウェア要件を補完することが可能となる。なお、ディスプレイ装置１７０１に代わりプリンタを用いた紙出力、音声合成による読み上げに出力などを用いてもよい。
【００４７】
図１８に実施の形態３における自然言語解析部１７０３の処理フローを示す。まずユーザにより自然言語で記述されたソフトウェア要件を読み込む（Ｓ１８０１）。次に、ドメイン情報１１４を取得する（Ｓ１８０２）。次に、読み込んだドメイン情報１１４に従って現在の処理ドメインに対応したドメイン知識データベースを選択する（Ｓ１８０３）。次に、読み込んだソフトウェア要件を形態素解析などで自然言語記述を語句単位に分割し、品詞と語句の情報を得る（Ｓ１８０４）。次に、読み込んだ語句のうち語句が"「」"で括られているかどうかを判定する（Ｓ１８０５）。語句が"「」"で括られていない場合にはステップ１８０７までスキップする。語句が"「」"で括られていた場合には自然言語解析情報の強制出力マーク３０３を出力する（Ｓ１８０６）。次に品詞と語句を組として自然言語解析情報１１１に出力する。なお、語句を括る"「」"は"〔〕" や"[]"などの括弧や"＊"などの記号をつけるなど、他の語句と違う印がつけられるものであればよいものとする。次に、選択されているドメイン知識データベースで処理対象の語句を検索する（Ｓ１８０７）。次に、処理対象語句がドメイン知識データベースに含まれているかどうか判定する（Ｓ１８０８）。処理対象語句がドメイン知識データベースに含まれている場合にはステップ１８１３までスキップする。処理対象語句がドメイン知識データベースに含まれていない場合には、ドメイン知識データベースに含まれる語句のうち必須マーク１６０１，１６０３のついたものをディスプレイ装置１７０１に出力してユーザに提示する（Ｓ１８０９）。次に、ディスプレイ表示した語句を採用するかどうかをユーザに問い合わせを行う（Ｓ１８１０）。次に、ディスプレイ表示した語句を採用するかどうか判定を行う（Ｓ１８１１）。語句を採用しない場合にはステップ１８１３までスキップする。語句を採用する場合には、選択された必須マーク付きの語句を自然言語解析情報１１１に出力する。次に、ステップ１８０４で得られた品詞と語句を自然言語解析情報１１１に出力する（Ｓ１８１３）。
【００４８】
なお、自然言語解析情報１１１の出力以降の、アクター情報１１２、動作条件情報１１３の抽出、ソフトウェア要求仕様書１０４の出力等の構成ならびにフローについては、実施の形態１と同様である。
【００４９】
このように構成されたソフトウェア要求仕様書自動生成ツール構成方法によると、実施の形態１と同様の効果が得られる。さらに、利用者が入力した自然言語によるソフトウェア要件記述に不足する情報を補完する語句の候補を提示して、ユーザに前記不足語句の補完候補を選択させることで、完全な自然言語の記述が得られ、利用者に対して初めから完全な自然言語の記述を求めることなく、より自然な言語記述による要件からソフトウェア要求仕様書１０４を出力することができる。
【産業上の利用可能性】
【００５０】
本発明は自然言語からソフトウェアの要求仕様を自動的に抽出することで、ソフトウェア開発者やソフトウェアへの要求を行う開発委託者の負担を軽減し、ソフトウェアの生産性に寄与するソフトウェア開発ツールとして、広くソフトウェア設計一般に対して利用することができ、その産業上の利用可能性は非常に広く且つ大きい。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施の形態１におけるソフトウェア開発ツールの構成図
【図２】本発明の実施の形態１における自然言語解析部の動作流れ図
【図３】本発明の実施の形態１における自然言語解析情報の例
【図４】本発明の実施の形態１におけるアクター情報抽出部の動作流れ図
【図５】本発明の実施の形態１におけるアクター情報の例
【図６】本発明の実施の形態１における動作条件情報抽出部の動作流れ図
【図７】本発明の実施の形態１における動作条件情報の例
【図８】本発明の実施の形態１におけるドメイン知識データベースのドメイン知識データの例
【図９】本発明の実施の形態１において出力されるソフトウェア要求仕様書の例
【図１０】本発明の実施の形態１における要求仕様書生成部の全体動作流れ図
【図１１】本発明の実施の形態１における要求仕様書生成部のアクター設定処理の動作流れ図
【図１２】本発明の実施の形態１における要求仕様書生成部の動作条件設定処理の動作流れ図
【図１３】本発明の実施の形態１における要求仕様書生成部のドメイン知識データベース更新処理の動作流れ図
【図１４】本発明の実施の形態２におけるソフトウェア開発ツールの構成図
【図１５】本発明の実施の形態２における自然言語解析部の動作流れ図
【図１６】本発明の実施の形態２におけるドメイン知識データベースのドメイン知識データの例
【図１７】本発明の実施の形態３におけるソフトウェア開発ツールの構成図
【図１８】本発明の実施の形態３における自然言語解析部の動作流れ図
【図１９】従来例におけるソフトウェア開発ツールの構成図
【符号の説明】
【００５２】
１０１  自然言語解析部
１０２  ソフトウェア要件
１０３  アクター情報抽出部
１０４  ソフトウェア要求仕様書
１０５  動作条件情報抽出部
１０６  要求仕様書生成部
１０７  ドメイン知識データベース部
１０８  ドメインA知識データベース
１０９  ドメインB知識データベース
１１０  ドメインZ知識データベース
１１１  自然言語解析情報
１１２  アクター情報
１１３  動作条件情報
１１４  ドメイン情報
３０１  品詞
３０２  語句
３０３  強制出力マーク
３０４  自然言語解析情報項目
５０１  アクター候補名
５０２  アクター役割
５０３  強制出力マーク
７０１  条件候補
７０２  条件種別
７０３  強制出力マーク
８０１  アクター候補
８０２  品詞
８０３  語句
８０６  条件候補
８０７  条件内容
８０８  条件種別
９０１  ユースケースID
９０２  ユースケース名
９０３  概要
９０４  アクター
９０５  処理条件
９０６  トリガ
９０７  条件
９０８  開始条件
９０９  不変条件
９１０  事後条件
９１１  フロー(基本フロー、代替フロー、例外フロー)
９１２  備考/未決定事項/仮決定事項
１４０１  自然言語解析部
１４０２  ドメインA知識データベース
１４０３  ドメインB知識データベース
１４０４  ドメインZ知識データベース
１６０１  必須マーク
１６０３  必須マーク
１７０１  表示部
１７０２  入力部
１７０３  自然言語解析部
【図１】
2009181550.tif 000003
【図２】
2009181550.tif 000004
【図３】
2009181550.tif 000005
【図４】
2009181550.tif 000006
【図５】
2009181550.tif 000007
【図６】
2009181550.tif 000008
【図７】
2009181550.tif 000009
【図８】
2009181550.tif 000010
【図９】
2009181550.tif 000011
【図１０】
2009181550.tif 000012
【図１１】
2009181550.tif 000013
【図１２】
2009181550.tif 000014
【図１３】
2009181550.tif 000015
【図１４】
2009181550.tif 000016
【図１５】
2009181550.tif 000017
【図１６】
2009181550.tif 000018
【図１７】
2009181550.tif 000019
【図１８】
2009181550.tif 000020
【図１９】
2009181550.tif 000021