(57)【要約】【課題】機能仕様が自然言語で記述された機能仕様書をソフトウェアのデータフロー図に基づいて自動生成する機能仕様書自動生成装置を得ること。【解決手段】ソフトウェアのデータフロー図を基にソフトウェアの機能仕様書を生成する機能仕様書自動生成装置７０を構成するにあたり、複数の構成要素によってデータの流れが示されていると共に機能仕様が自然言語で記述されているデータフロー図についてのデータを得る入力部１と、入力部が得たデータフロー図についてのデータを解析して機能仕様の情報を抽出するモデル解析部１１と、機能仕様の情報を基に自然言語で記述された機能仕様書のデータを生成する機能仕様書生成部１３とを設ける。【選択図】        図１
2009134342.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアのデータフロー図を基に前記ソフトウェアの機能仕様書を生成する機能仕様書自動生成装置であって、
複数の構成要素によってデータの流れが示されていると共に機能仕様が自然言語で記述されているデータフロー図についてのデータを得る入力部と、
該入力部が得た前記データフロー図についてのデータを解析して前記機能仕様の情報を抽出するモデル解析部と、
前記機能仕様の情報を基に自然言語で記述された機能仕様書のデータを生成する機能仕様書生成部と、
を有することを特徴とする機能仕様書自動生成装置。
【請求項２】
前記入力部は、前記データフロー図についてのデータを新規に作成するモデル作成部として機能することを特徴とする請求項１に記載の機能仕様書自動生成装置。
【請求項３】
前記入力部は、前記機能仕様書のデータが既に生成されたデータフロー図についての修正・変更データを得るモデル変更部として機能し、
前記モデル解析部により抽出された機能仕様の情報が格納される第１記憶部と、
前記機能仕様書のデータが既に生成されたデータフロー図についての修正・変更データを前記入力部が得たときに、前記第１記憶部に格納されている修正・変更前のデータフロー図での機能仕様の情報と前記修正・変更データでの機能仕様の情報との差分を抽出して修正・変更箇所を特定する第１差分抽出部と、
前記第１差分抽出部が特定した修正・変更箇所を修正ないし変更したことにより再確認を要することとなるデータフロー図中の箇所を推測する第１変更依存箇所推測部と、
該第１変更依存箇所推測部の推測結果をユーザが認知できる形態で出力する出力部と、
を更に有することを特徴とする請求項１または２に記載の機能仕様書自動生成装置。
【請求項４】
前記第１変更依存箇所推測部は、再確認を促すメッセージと一緒に前記推測結果を前記出力部に出力させることを特徴とする請求項３に記載の機能仕様書自動生成装置。
【請求項５】
前記機能仕様書生成部が生成した機能仕様書のデータを修正・変更する機能仕様書変更部と、
該機能仕様書変更部により前記機能仕様書のデータが修正・変更されたときに、修正・変更後の機能仕様書のデータを解析して機能仕様の情報を抽出する機能仕様書解析部と、
該機能仕様書解析部が抽出した前記機能仕様の情報を基にデータフロー図のデータを生成するモデル更新部と、
を更に有することを特徴とする請求項１〜４のいずれか１つに記載の機能仕様書自動生成装置。
【請求項６】
前記機能仕様書生成部が生成した機能仕様書のデータが格納される第２記憶部と、
前記機能仕様書のデータについての修正・変更データを前記入力部１が得たときに、前記第２記憶部に格納されている修正・変更前の機能仕様書のデータでの機能仕様の情報と修正・変更後の機能仕様書のデータでの機能仕様の情報との差分を抽出して修正・変更箇所を特定する第２差分抽出部と、
前記第２差分抽出部が特定した修正・変更箇所を修正ないし変更したことにより再確認を要することとなる機能仕様書のデータ中の箇所を推測する第２変更依存箇所推測部と、
該第２変更依存箇所推測部の推測結果をユーザが認知できる形態で出力する出力部と、
を更に有することを特徴とする請求項５に記載の機能仕様書自動生成装置。
【請求項７】
前記第２変更依存箇所推測部は、再確認を促すメッセージと一緒に前記推測結果を前記出力部に出力させることを特徴とする請求項６に記載の機能仕様書自動生成装置。
【請求項８】
前記データフロー図に自然言語で記述されている機能仕様は、所定の製品系列に属する機器で用いられるソフトウェア間で機能仕様が変わり得る箇所の情報を含むことを特徴とする請求項１〜７のいずれか１つに記載の機能仕様書自動生成装置。
【請求項９】
前記モデル解析部は、前記入力部が得た前記データフロー図のデータから前記機能仕様の情報と前記ソフトウェア間で機能仕様が変わり得る箇所の情報とを抽出可能であることを特徴とする請求項８に記載の機能仕様書自動生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソフトウェアの開発過程で用いられる機能仕様書を自動生成する機能仕様書自動生成装置に関する。
【背景技術】
【０００２】
ソフトウェア開発においては、全体でのデータの流れ(データフロー)を当該ソフトウェアの要求分析／方式設計段階で明確にして、データの一貫性を保持することが重要である。上記のデータフローを記述する手段の１つとしてデータフロー図があり、ソフトウェアの要求分析／方式設計段階で当該データフロー図を作成しておくと、ソフトウェア全体でやり取りされるデータの種類やデータの流れが明確化されて詳細設計／実装段階での作業効率や作業自体の品質を向上させ易くなる。また、ソフトウェアに要求される機能（以下「要求機能」という）についての機能仕様書をデータフロー図に基づいて要求分析段階で作成しておくと、ソフトウェア全体でのデータの流れが明確化されるので、データの整合をとりつつ要求機能の分析を行うことが容易になる。
【０００３】
近年ではソフトウェアの多機能化、高性能化、複雑化が進んでおり、要求分析／方式設計段階でのデータフロー図および機能仕様書の重要性が高まっている。特に、組み込みソフトウェアのように類似の仕様で多数のソフトウェアを少数生産する際に好適なソフトウェア開発手法として知られるソフトウェアプロダクトラインでは、製品系列全体でデータの一貫性を保持することが求められることから、データフロー図および機能仕様書の重要性が高い。
【０００４】
ただし、ソフトウェアプロダクトラインでは、機能仕様書に製品系列全体の要求機能を記載する必要があり、当該機能仕様書の作成に用いられるデータフロー図としても各ソフトウェアでの共通部、可変部を定義したものを作成する必要があるので、これら機能仕様書およびデータフロー図の作成に多大の時間と労力を要する。
【０００５】
例えば特許文献１に記載されたオブジェクト指向分析・設計支援装置のように仕様記述を自動生成する装置を利用することで機能仕様書の作成に掛かる時間および労力の削減を図ることも考えられるが、当該特許文献１に記載された装置は、演算記号、ソート記号、等式等の記号によって記述された代数的仕様を自動生成するものであるので、自動生成された仕様の記述内容を理解するためには専門的知識が必要となる。また、ソフトウェアプロダクトラインで用いられる機能仕様書を代数的機能仕様書にすると、製品系列全体でデータの一貫性の確認や把握がし難くなる。
【０００６】
ソフトウェアでのデータの一貫性の確認や把握を容易にするうえからは、機能仕様書を自然言語で記述することが望ましく、このような機能仕様書を作成するにあたっては、作成担当者がデータフロー図を見て該データフロー図で定義されている要求機能の仕様（以下「機能仕様」という）を１つずつ抽出し、これらを編集して機能仕様書にするという手法がとられている。
【０００７】
【特許文献１】特開平６−１６８１０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、データフロー図で定義されている機能仕様をヒトが１つずつ抽出して機能仕様書にまとめあげるという手法では、機能仕様を抽出する際にヒューマンエラーが起こり易く、機能仕様を正しく抽出するためには多くの工数が必要となる。大規模なソフトウェア開発では、データフロー図も大規模になることから当該データフロー図からの機能仕様の抽出に多大の工数を要することとなって、その開発コストが増大すると共に開発に掛かる時間が長くなる。
【０００９】
また、上記の手法では、データを削除するといった修正ないし変更をデータフロー図に施したときに、削除したデータを入力データまたは出力データとして使用しているプロセスのように当該修正ないし変更の影響を受ける箇所をヒトが特定して追加変更の必要性の有無を確認する必要があるため、上記修正ないし変更の影響を受ける箇所の特定や追加変更の必要性の有無の確認にも多大の手間が掛かることが多い。このことは、機能仕様書にて機能仕様を変更した場合や、製品系列に新規機種が追加されて変動点、すなわち製品系列に属する機種間で仕様が変わり得る箇所に変更が生じた場合にもあてはまる。
【００１０】
この発明は上記の事情に鑑みてなされたものであり、機能仕様が自然言語で記述された機能仕様書をソフトウェアのデータフロー図に基づいて自動生成する機能仕様書自動生成装置を得ることを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するこの発明の機能仕様書自動生成装置は、ソフトウェアのデータフロー図を基にソフトウェアの機能仕様書を生成する機能仕様書自動生成装置であって、複数の構成要素によってデータの流れが示されていると共に機能仕様が自然言語で記述されているデータフロー図についてのデータを得る入力部と、入力部が得たデータフロー図についてのデータを解析して機能仕様の情報を抽出するモデル解析部と、機能仕様の情報を基に自然言語で記述された機能仕様書のデータを生成する機能仕様書生成部とを有することを特徴とするものである。
【発明の効果】
【００１２】
この発明によれば、機能仕様が自然言語で記述された機能仕様書をソフトウェアのデータフロー図に基づいて自動生成することが可能になるので、機能仕様書の生成に掛かる工数と人手を抑えることができ、結果としてソフトウェアの開発コストおよび開発時間を低減させることができる。
【発明を実施するための最良の形態】
【００１３】
以下、この発明の機能仕様書自動生成装置の実施の形態について、図面を参照して詳細に説明する。なお、この発明は以下に説明する実施の形態に限定されるものではない。
【００１４】
図１は、機能仕様書自動生成装置の一例を概略的に示すブロック図である。同図に示す機能仕様所自動生成装置７０は、入力部１、データ処理部３０、第１記憶部３５ａ、第２記憶部３５ｂ、出力部５０、および制御部６０を備え、入力部１が得たデータフロー図を基にソフトウェアの機能仕様書を生成する。
【００１５】
上記の入力部１は、複数の構成要素によってデータの流れが示されていると共に機能仕様が自然言語で記述されているデータフロー図について新規データまたは修正・変更データを得る際に用いられる。データフロー図についてのデータは、例えば入力部１で作成することにより、あるいは他の機器で作成されたものを入力部１で読み取ることにより得られる。入力部１は、例えばキーボード、座標入力装置、画像読取装置、リムーバブルメディアに格納されたデータを読み取るデータ読取装置、他の機器と有線接続または無線接続されてデータを受信する受信装置等を適宜組み合わせて構成される。
【００１６】
図示の機能仕様書自動生成装置７０においては、上記データフロー図についてのデータを新規に作成するモデル作成部としての機能と、後述する機能仕様書のデータが既に生成されたデータフロー図についての修正・変更データを得るモデル変更部としての機能と、データ処理部３０が生成した機能仕様書のデータを修正・変更する機能仕様書変更部としての機能とが入力部１に付与されている。
【００１７】
データ処理部３０は、入力部１が得たデータフロー図のデータを基に、または第１記憶部３５ａもしくは第２記憶部３５ｂに格納されているデータを基に所定の処理を行って、自然言語で記述された機能仕様書に対応するデータ（機能仕様書のデータ）等を生成する。そのために、当該データ処理部３０はモデル解析部１１、機能仕様書生成部１３、機能仕様書解析部１５、モデル更新部１７、機能仕様登録部２０、第１差分抽出部２１、第１変更依存箇所推測部２３、第２差分抽出部２５、および第２変更依存箇所推測部２７を有している。
【００１８】
上記のモデル解析部１１、機能仕様書生成部１３、および機能仕様登録部２０は、データフロー図を基に機能仕様書を自動生成する際に動作する。これらの各部のうちのモデル解析部１１は、機能仕様が自然言語で記述されたデータフロー図についてのデータを入力部１が得たときに、当該データを解析して上記機能仕様についての情報を抽出する。モデル解析部１１により抽出された機能仕様の情報は機能仕様登録部２０に送られ、ここから第１記憶部３５ａに格納される。また、機能仕様書生成部１３は、第１記憶部３５ａから上記機能仕様の情報を読み出して、自然言語で記述された機能仕様書に対応する機能仕様書のデータを生成し、該機能仕様書のデータを第２記憶部３５ｂに格納する一方で、該機能仕様書のデータに対応した機能仕様書を出力部５０に出力させる。なお、第１記憶部３５ａと第２記憶部３５ｂとは、互いに別個の記憶素子ないし記憶装置により構成することもできるし、１つの記憶素子ないし記憶装置での互いの別個の領域により構成することもできる。
【００１９】
データ処理部３０における機能仕様書解析部１５、モデル更新部１７、および機能仕様登録部２０は、機能仕様書自動生成装置７０により生成した機能仕様書のデータを入力部１により修正・変更し、当該修正・変更に併せてデータフロー図を更新する際に動作する。このとき、機能仕様書解析部１５は、入力部１により修正・変更された後の機能仕様書のデータを解析して機能仕様の情報を抽出する。機能仕様書解析部１５により抽出された機能仕様の情報は機能仕様登録部２０に送られ、ここから第１記憶部３５ａに格納される。また、モデル更新部１７は、第１記憶部３５ａから上記機能仕様の情報を読み出し、当該情報を基にデータフロー図のデータを生成し、該データに対応したデータフロー図を出力部５０に出力させる。
【００２０】
データ処理部３０における第１差分抽出部２１および第１変更依存箇所推測部２３は、機能仕様書のデータが既に生成されたデータフロー図についての修正・変更データを入力部１が得たときに動作し、修正・変更後のデータフロー図中で再確認を要する箇所を推測して当該箇所についての情報をユーザが認知できる形態で出力部５０に出力させる。このとき、第１差分抽出部２１は、第１記憶部３５ａに格納されている修正・変更前のデータフロー図での機能仕様の情報と上記修正・変更データでの機能仕様の情報との差分を抽出して、修正・変更箇所を特定する。また、第１変更依存箇所推測部２３は、第１差分抽出部２１が特定した修正・変更箇所を修正ないし変更したことにより再確認を要することとなるデータフロー図中の箇所を推測する。第１変更依存箇所推測部２３の推測結果は出力部５０に送られ、ここから出力される。確認を促すメッセージと一緒に上記の推測結果を出力部５０に出力させると、再確認を要する箇所をユーザが認知し易くなる。
【００２１】
データ処理部３０における第２差分抽出部２５および第２変更依存箇所推測部２７は、機能仕様書のデータについての修正・変更データを入力部１が得たときに動作し、修正・変更後の機能仕様書のデータ中で再確認を要する箇所を推測して当該箇所についての情報をユーザが認知できる形態で出力部５０に出力させる。このとき、第２差分抽出部２５は、第２記憶部３５ｂに格納されている修正・変更前の機能仕様書のデータでの機能仕様の情報と修正・変更後の機能仕様書のデータでの機能仕様の情報との差分を抽出して、修正・変更箇所を特定する。また、第２変更依存箇所推測部２７は、第２差分抽出部２５が特定した修正・変更箇所を修正ないし変更したことにより再確認を要することとなる機能仕様書のデータ中の箇所を推測する。第２変更依存箇所推測部２７の推測結果は出力部５０に送られ、ここから出力される。確認を促すメッセージと一緒に上記の推測結果を出力部５０に出力させると、再確認を要する箇所をユーザが認知し易くなる。
【００２２】
出力部５０は、上述した機能仕様書生成部１３が生成した機能仕様書のデータに基づく機能仕様書の出力、モデル更新部１７が生成したデータフロー図のデータに基づくデータフロー図の出力、第１変更依存箇所推測部２３の推測結果の出力、および第２変更依存箇所推測部２７の推測結果の出力等を行う。図示の例では、印刷部４０と表示部４５とにより出力部５０が構成されている。機能仕様書やデータフロー図は、印刷部４０および表示部４５のどちらかも出力可能である。同様に、第１変更依存箇所推測部２３および第２変更依存箇所推測部２７それぞれの推測結果も、印刷部４０および表示部４５の各々から出力可能である。
【００２３】
制御部６０は、図示を省略した主記憶装置に格納されている制御プログラム、および入力部１から入力される指令等に応じて入力部１、データ処理部３０、および出力部５０の動作を制御する。
【００２４】
上述した構成を有する機能仕様書自動生成装置７０によれば、機能仕様が自然言語で記述された機能仕様書をデータフロー図に基づいて自動生成することができるので、機能仕様書の生成に掛かる工数と人手とを抑えることができる。勿論、機能仕様書の内容によっては、例えばタイムチャートのように自動生成できない項目が含まれることもあるが、そのような場合でも多くの項目についてはその記述を自動生成することができるので、結果としてソフトウェアの開発コストおよび開発時間を低減させることができる。
【００２５】
また、生成した機能仕様書がその後に修正・変更された場合には、当該修正・変更された機能仕様書に対応するデータ（機能仕様書のデータ）に基づいてデータフロー図を更新することができるので、機能仕様書とデータフロー図との整合を容易に図ることができる。さらに、機能仕様書のデータを既に生成したデータフロー図や機能仕様書のデータがその後に修正・変更されたときには、当該修正ないし変更したことにより再確認を要することとなるデータフロー図中の箇所や機能仕様書のデータ中の箇所を第１変更依存箇所推測部２３または第２変更依存箇所推測部２７により推測し、出力部５０から出力させることができるので、ユーザに追加の修正・変更の有無について確認を促して、修正・変更のし忘れを防止することができる。その結果として、開発中のソフトウェア全体でのデータの一貫性を保持することが容易になる。
【００２６】
このような技術的効果を奏する機能仕様書自動生成装置７０での具体的なデータ処理方法は種々選定可能である。以下、図２〜図１４を参照して、機能仕様書自動生成装置７０でのデータ処理方法を具体的に説明する。
【００２７】
図２は、機能仕様書自動生成装置により機能仕様書を自動生成する際に用いられるデータフロー図の一例を示す概略図である。一般に、データフロー図は「データストア」、「外部エンティティ」、「プロセス」、および「データフロー」の４つの要素を組み合わせて作成される。「データストア」はデータを格納する役割を担い、「外部エンティティ」はデータの取得を行うハードウェアや外部センサを表す。また、「プロセス」はデータストアや外部エンティティとデータをやり取りして行われるソフトウェアとしての処理を表す。そして、「データフロー」はプロセスとデータストア、プロセスと外部エンティティとのデータのやり取りを表し、矢印で表現される。
【００２８】
図示のデータフロー図１１０には、１つのデータストア１０１と、１つの外部エンティティ１０２と、１つのプロセス１０３と、データストア１０１からプロセス１０３に向かうデータフロー１０５と、外部エンティティ１０２からプロセス１０３に向かうデータフロー１０６とが記載されている。また、データストア１０１、外部エンティティ１０２、プロセス１０３、およびデータフロー１０５の各々には、その機能仕様が自然言語で記述されている。ただし、図においては機能仕様の項目のみが示されている。機能仕様の項目には、必要に応じて、プロパティを示す「データタイプ」、「仕様の概要」、「仕様内容」、「製品系列における変動点／可変仕様」等や、機能仕様書中でのデータフロー図の階層構造を表現する「タグ」等を加えることができる。
【００２９】
図３はデータタイプの一例を示す図表であり、図４は変動点の一例を示す図表であり、図５は機能仕様の項目に「データタイプ」、「仕様の概要」、「仕様内容」、「変動点」、または「可変仕様」が付加されているデータフロー図の一例を示す概略図である。
【００３０】
図３には「状態データ」、「データ」、「制御要求」、および「イベント」の計４つのデータタイプとその説明が示されている。また、図４には「Optional」、「Alternative」、および「Parameterized」の計３つの変動点とその説明が示されている。なお、「変動点」とは、所定の製品系列に属する各機器で用いられるソフトウェア間で機能仕様が変わり得る箇所を意味する。これら「データタイプ」および「変動点」の各項目を機能仕様中に設けておくことにより、例えば第１差分抽出部２１または第２差分抽出部２５で差分を抽出する際の誤りや、第１変更依存箇所推測部２３または第２差分抽出部２７（図１参照）で再確認を要する箇所を推測する際の誤り等を抑制し易くなり、結果として、ソフトウェア全体でのデータの一貫性を保持し易くなる。
【００３１】
図５に示すデータフロー図１２０はインバータ回路の実効周波数を制御するソフトウェアでのデータフロー図であり、該データフロー図には１つのデータストア１１１と、２つの外部エンティティ１１２，１１４と、１つのプロセス１１３と、データストア１１１からプロセス１１３に向かうデータフロー１１５と、外部エンティティ１１２からプロセス１１３に向かうデータフロー１１６と、プロセス１１３から外部エンティティ１１４に向かうデータフロー１１７とが記載されている。
【００３２】
上記のデータストア１１１にはモータ定数データが格納されており、外部エンティティ１１２はメインマイコン通信モジュールである。また、プロセス１１３は圧縮機周波数の制御であり、外部エンティティ１１４はインバータ回路である。データフロー１１５ではデータストア１１１からプロセス１１３にモータ定数のデータが送られ、データフロー１１６では外部エンティティ１１２からプロセス１１３に目標周波数のデータが送られ、データフロー１１７ではプロセス１１３から外部エンティティ１１４に実効周波数のデータが送られる。
【００３３】
また、データストア１１１の機能仕様ＦＳ11、外部エンティティ１１２の機能仕様ＦＳ12、プロセス１１３の機能仕様ＦＳ13、外部エンティティ１１４の機能仕様ＦＳ14、データフロー１１５の機能仕様ＦＳ15、データフロー１１６の機能仕様ＦＳ16、およびデータフロー１１７の機能仕様ＦＳ17の各々が自然言語で記載されている。各機能仕様ＦＳ11〜ＦＳ17には変動点の項目が設けられており、機能仕様ＦＳ15〜ＦＳ17の各々にはデータタイプの項目が設けられている。また、機能仕様ＦＳ11〜ＦＳ14の各々には「可変仕様」の項目が設けられており、機能仕様ＦＳ13には「仕様内容」の項目が設けられている。
【００３４】
機能仕様書自動生成装置７０（図１参照）は、上述したデータフロー図１１０，１２０のように機能仕様が自然言語で記述されたデータフロー図を基に機能仕様書を自動生成する。以下、図５に示したデータフロー図を基に機能仕様書を生成する場合を例にとり、図１で用いた参照符号を適宜引用して機能仕様書自動生成装置７０でのデータ処理について具体的に説明する。
【００３５】
図６は、データフロー図を基に機能仕様書を生成する際の機能仕様書自動生成装置でのデータ処理の一例を示すフローチャートである。同図に示す例では、機能仕様書自動生成装置７０（図１参照）がステップＳ１〜Ｓ９およびステップＳ１１〜Ｓ１８のうちの所定のステップを行って、データフロー図を基に機能仕様書を生成する。
【００３６】
最初に行われるステップＳ１では、データフロー図についての新規データを入力部１が得るのか、入力部１がモデル変更部として機能して修正・変更データを得るのかを制御部６０（図１参照）が判断する。新規データを得ると判断されたときにはステップＳ２に進み、修正・変更データを得ると判断されたときにはステップＳ１１に進む。なお、図６においてはステップＳ１での判断内容を、便宜上、「データフロー図の新規作成？」と表記している。
【００３７】
上記のステップＳ２では、入力部１がモデル作成部として機能して、ユーザから入力される指令に応じてデータフロー図のデータを新規に作成する。データフロー図のデータの新規作成が終了すると、モデル解析部１１（図１参照）がデータフロー図のデータを読み込むステップＳ３が行われ、次いで、読み込んだデータフロー図のデータをモデル解析部１１が解析して機能仕様の情報を抽出するステップＳ４が行われる。
【００３８】
図７は、図５に示したデータフロー図からモデル解析部が抽出した機能仕様の情報を示す概念図である。同図に示す機能仕様の情報Ｉｆ1は、図５に示したプロセス１１３に着目して抽出されたものである。上記のプロセス１１３に着目することにより、当該プロセス１１３への入力である各データフロー１１５，１１６および出力であるデータフロー１１７それぞれの機能仕様の情報を抽出することが可能になると共に、各データフローをたどることでデータストア１１１および各外部エンティティ１１２，１１４それぞれの機能仕様の情報を抽出することが可能になる。
【００３９】
図６に示す上述のステップＳ４でモデル解析部１１が抽出した機能仕様の情報は、ステップＳ５で機能仕様登録部２０に送られてここから第１記憶部３５ａ（図１参照）に格納される。当該第１記憶部３５ａに格納された機能仕様の情報は、ステップＳ６で機能仕様書生成部１３（図１参照）に読み出され、機能仕様の情報を読み出した機能仕様書生成部１３は、ステップＳ７で機能仕様書のデータを生成する。
【００４０】
機能仕様書生成部１３が生成した機能仕様書のデータは、ステップＳ８で機能仕様登録部２０に送られてここから第２記憶部３５ｂ（図１参照）に格納される。また、ステップＳ９で出力部５０に送られ、ここから機能仕様書として出力される。当該ステップＳ９での機能仕様書の出力は、印刷部４０から書面として出力するものであってもよいし、表示部４５により画像情報として出力するものであってもよい。
【００４１】
図８は、図５に示したデータフロー図を基に図１に示した機能仕様書自動生成装置が自動生成した機能仕様書の一例を示す概略図である。同図に示す機能仕様書Ｓｐ1は、機能仕様が自然言語で記載されたものであり、章番号や項目番号が自動的に付与されていると共に、「入出力」の項目の内容は自動的に一覧表にまとめられている。
【００４２】
一方、図６に示したステップＳ１で入力部１がデータフロー図の新規データではなく修正・変更データを得ると判断されたときにはステップＳ１１に進んで、入力部１（図１参照）がユーザから入力される指令に応じてデータフロー図のデータを修正・変更する。データフロー図のデータの修正・変更が終了すると、モデル解析部１１（図１参照）がデータフロー図のデータを読み込むステップＳ１２が行われ、次いで、読み込んだデータフロー図のデータをモデル解析部１１が解析して機能仕様の情報を抽出するステップＳ１３が行われる。
【００４３】
ステップＳ１３での機能仕様の情報の抽出が完了すると、第１記憶部３５ａに格納されている修正・変更前のデータフロー図での機能仕様の情報と上記修正・変更データでの機能仕様の情報との差分を第１差分抽出部２１が抽出して修正・変更箇所を特定するステップＳ１４が行われる。該ステップＳ１４で特定された修正・変更箇所についての情報は、第１変更依存箇所推測部２３に送られる。
【００４４】
当該情報を受けた第１変更依存箇所推測部２３は、上記の修正・変更箇所を修正ないし変更したことにより再確認を要することとなるデータフロー図中の箇所をステップＳ１５で推測し、該ステップＳ１５に続くステップＳ１６で推測結果を出力部５０（図１参照）に出力させる。例えば、修正・変更箇所がデータフローである場合、そのデータフローを入出力とする箇所(プロセス、データストア、または外部エンティティ)では入出力データが変わって機能仕様の変更が必要になることがあるので、当該箇所を再確認を要する箇所として推測するように第１変更依存箇所推測部２３が構成される。図９は、第１変更依存箇所推測部による推測結果の出力の一例を示す概略図である。同図に示す例では、第１変更依存箇所推測部２３による推測結果Ｒｉが再確認を促すメッセージＭｅと一緒に表示部４５に画像情報として出力されている。
【００４５】
図６に示す上記のステップＳ１５に続いて上記再確認を要する箇所があるか否かを第１変更依存箇所推測部２３が判断するステップＳ１７が行われ、該ステップＳ１７で再確認を要する箇所はないと判断されたときは前述したステップＳ５に進み、該ステップＳ５からステップＳ９までを行って機能仕様書を自動生成する。また、ステップＳ１７で再確認を要する箇所があると判断されたときにステップＳ１８に進み、ユーザが入力部１から修正・変更指示を入力したか否かを制御部６０が判断する。このステップＳ１８で修正・変更指示があったと判断されたときには制御部６０による制御の下に前述したステップＳ１１に進んで該ステップＳ１１以降が繰り返され、修正・変更指示がないと判断されたときには制御部６０による制御の下に前述したステップＳ５に進み、該ステップＳ５からステップＳ９までを行って機能仕様書を自動生成する。
【００４６】
このようにして機能仕様書を自動生成する機能仕様書自動生成装置７０（図１参照）は、上述のようにして自動生成した機能仕様書のデータがその後に修正・変更されたときに、当該修正・変更された機能仕様書のデータに基づいてデータフロー図を更新する機能も有する。以下、図１で用いた参照符号を適宜引用して、修正・変更された機能仕様書のデータに基づいてデータフロー図を更新する際の機能仕様書自動生成装置７０でのデータ処理の一例を具体的に説明する。
【００４７】
図１０は、修正・変更された機能仕様書のデータに基づいてデータフロー図を更新する際の機能仕様書自動生成装置でのデータ処理の一例を示すフローチャートである。同図に示す例では、機能仕様書自動生成装置７０（図１参照）がステップＳ２１〜Ｓ２７およびステップＳ３１〜Ｓ３５のうちの所定のステップを行って、修正・変更された機能仕様書のデータに基づいてデータフロー図を更新する。
【００４８】
最初に行われるステップＳ２１では、入力部１（図１参照）が機能仕様書のデータを修正・変更する機能仕様書変更部として機能し、第２記憶部３５ｂ（図１参照）に格納されている作成済みの機能仕様書のデータをユーザから入力される指令に応じて読み出して修正・変更する。このときの機能仕様書のデータの修正・変更は、例えば、作成済みの機能仕様書のデータに対応する機能仕様書を表示部４５（図１参照）に表示させ、画面上で所望箇所を修正・変更することにより行うことが可能である。図１１は、修正・変更された機能仕様書のデータに対応する機能仕様書の一例を示す概念図である。同図に示す機能仕様書Ｓｐ2は、図８に示した機能仕様書Ｓｐ1を表示部４５（図１参照）に表示させ、入力に係るデータの一部を削除する修正・変更、すなわちモータ定数データからの入力を削除する修正・変更を画面上で行ったときのものである。モータ定数データからの入力の欄に削除を表す記号Ｄ1が表示されている。
【００４９】
機能仕様書のデータの修正・変更が終了すると、機能仕様書解析部１５（図１参照）が修正・変更後の機能仕様書のデータを読み込むステップＳ２２が行われ、次いで、読み込んだ機能仕様書のデータを機能仕様書解析部１５が解析して機能仕様の情報を抽出するステップＳ２３が行われる。機能仕様書解析部１５がステップＳ２３で抽出した機能仕様の情報は、引き続いて行われるステップＳ２４で機能仕様登録部２０に送られてここから第１記憶部３５ａ（図１参照）に格納される。図１２は、機能仕様書解析部１５が抽出した機能仕様の情報の一例を示す概念図である。同図に示す例は、図１１に示した機能仕様書Ｓｐ2に対応する機能仕様書のデータから抽出された機能仕様の情報Ｉｆ2であり、モータ定数データからの入力に削除を表す記号Ｄ2が付加されている。
【００５０】
この後、データフロー図を更新する指令が入力部１から入力されたか否かを制御部６０（図１参照）が判断するステップＳ２５が行われる。このステップＳ２５で上記の指令が入力されたと判断されたときには、上記修正・変更された機能仕様書のデータから抽出した機能仕様の情報に基づいてモデル更新部１７（図１参照）がデータフロー図のデータを更新するステップＳ２６と、更新されたデータフロー図のデータに基づいてモデル更新部１７が更新後のデータフロー図を出力部５０に出力させるステップＳ２７とがこの順番で行われる。図１３は、更新されたデータフロー図の一例を示す概略図である。同図に示すデータフロー図１３０は、図１２に概念的に示した機能仕様の情報Ｉｆ2に基づいて更新されたものである。図５との対比から明らかなように、このデータフロー図１３０では、図５に示したデータフロー図１２０からデータストア１１１とデータフロー１１５とが削除されている。図１３に示した各構成要素には、図５で用いた参照符号と同じ参照符号を付してある。
【００５１】
一方、図１０に示したステップＳ２５でデータフロー図を更新する指令が入力部１から入力されなかったと判断されたときにはステップＳ３１に進んで、第１記憶部３５ａに格納されている修正・変更前の機能仕様書のデータでの機能仕様の情報と上記修正・変更後の機能仕様書のデータでの機能仕様の情報との差分を第２差分抽出部２５（図１参照）が抽出する。図１４は、第２差分抽出部２５によって抽出される差分の一例を示す概念図である。同図に示す抽出結果Ｒｄは、図７に示した機能仕様の情報Ｉｆ1と図１２に示した機能仕様の情報Ｉｆ2との差分を第２差分抽出部２５が抽出したときのものであり、情報Ｉｆ1にあったモータ定数データからの入力が情報Ｄｆ2では削除されていることを示している。
【００５２】
上記のステップＳ３１で特定された修正・変更箇所についての情報は、第２変更依存箇所推測部２７（図１参照）に送られ、当該情報を受けた第２変更依存箇所推測部２７は、上記の修正・変更箇所を修正ないし変更したことにより再確認を要することとなる機能仕様書のデータ中の箇所をステップＳ３２で推測し、該ステップＳ３２に続くステップＳ３３で上記推測の結果を出力部５０に出力させる。例えば、データフローの機能仕様が修正・変更された場合、そのデータフローを入出力とする箇所(プロセス、データストア、または外部エンティティ)では入出力データが変わって機能仕様に変更が必要となることがあるので、当該箇所の機能仕様の情報を再確認を要する箇所として推測するように第２変更依存箇所推測部２７が構成される。
【００５３】
このステップＳ３３に続くステップＳ３４では、上記再確認を要する箇所があるか否かを第２変更依存箇所推測部２７が判断する。当該ステップＳ３４で再確認を要する箇所はないと判断されたときは前述したステップＳ２６に進み、該ステップＳ２６とステップＳ２７とをこの順番で行ってデータフロー図を更新する。また、上記のステップＳ３４で再確認を要する箇所があると判断されたときにステップＳ３５に進み、ユーザが入力部１から修正・変更指示を入力したか否かを制御部６０が判断する。このステップＳ３５で修正・変更指示があったと判断されたときには制御部６０による制御の下に前述したステップＳ３１に進んで該ステップＳ３１以降を繰り返し、修正・変更指示がないと判断されたときには制御部６０による制御の下に前述したステップＳ２６に進み、該ステップＳ２６とステップＳ２７とをこの順番で繰り返してデータフロー図を更新する。
【００５４】
このようにして機能仕様書の自動生成およびデータフロー図の更新を行うことができる機能仕様書自動生成装置７０（図１参照）によれば、既に説明したように、機能仕様書の生成に掛かる工数と人手とを抑えてソフトウェアの開発コストおよび開発時間を低減させることができる。また、機能仕様書がその後に修正・変更された場合には、当該修正・変更された機能仕様書に対応する機能仕様書データに基づいてデータフロー図を更新することができるので、機能仕様書とデータフロー図との整合を図り易い。さらに、機能仕様書のデータを既に生成したデータフロー図や機能仕様書のデータがその後に修正・変更されたときには、ユーザに追加の修正・変更の有無について確認を促して修正・変更のし忘れを防止することができるので、開発中のソフトウェア全体でのデータの一貫性を保持し易い。
【００５５】
以上、この発明の機能仕様書自動生成装置について実施の形態を挙げて説明したが、前述のように、この発明は上記の形態に限定されるものではない。例えば、既に生成した機能仕様書のデータが修正・変更されたときに当該修正・変更された機能仕様書のデータを基にデータフロー図を更新する機能は、省略することも可能である。同様に、機能仕様書のデータを既に生成したデータフロー図のデータが修正・変更されたときや、生成した機能仕様書のデータがその後に修正・変更されたときに再確認を要する箇所を推測して該推測結果を出力する機能も、省略することが可能である。ただし、これらの機能の少なくとも１つを付加することにより、機能仕様書自動生成装置の利便性を高めることができる。
【００５６】
機能仕様書自動生成装置の構成は、該機能仕様書自動生成装置に機能仕様書の自動生成に係る機能以外にどのような機能を付加するかに応じて適宜変更可能である。同様に、機能仕様書自動生成装置でのデータ処理の手順も、当該機能仕様書自動生成装置に機能仕様書の自動生成に係る機能以外にどのような機能を付加するかに応じて適宜変更可能である。勿論、機能仕様書の自動生成に係るデータ処理の手順についても、適宜変更可能である。この発明の機能仕様書自動生成装置については、上述した以外にも種々の変形、修飾、組合せ等が可能である。
【産業上の利用可能性】
【００５７】
この発明の機能仕様書自動生成装置は、ソフトウェアプロダクトライン等によるソフトウェアの開発時に機能仕様書の生成に掛かる工数と人手を抑えて、ソフトウェアの開発コストおよび開発時間を低減させるのに適している。
【図面の簡単な説明】
【００５８】
【図１】この発明の機能仕様書自動生成装置の一例を概略的に示すブロック図である。
【図２】図１に示した機能仕様書自動生成装置によって機能仕様書を自動生成する際に用いられるデータフロー図の一例を示す概略図である。
【図３】図２に示したデータフロー図に記述される機能仕様の項目に必要に応じて加えられるデータタイプの一例を示す図表である。
【図４】図２に示したデータフロー図に記述される機能仕様の項目に必要に応じて加えられる変動点の一例を示す図表である。
【図５】機能仕様の項目に「データタイプ」、「仕様の概要」、「仕様内容」、「変動点」、または「可変仕様」が付加されているデータフロー図の一例を示す概略図である。
【図６】図１に示した機能仕様書自動生成装置によってデータフロー図を基に機能仕様書を生成する際のデータ処理の一例を示すフローチャートである。
【図７】図１に示した機能仕様書自動生成装置でのモデル解析部が図５に示したデータフロー図から抽出した機能仕様の情報を示す概念図である。
【図８】図１に示した機能仕様書自動生成装置が図５に示したデータフロー図を基に自動生成した機能仕様書の一例を示す概略図である。
【図９】図１に示した機能仕様書自動生成装置の第１変更依存箇所推測部による推測結果の出力の一例を示す概略図である。
【図１０】図１に示した機能仕様書自動生成装置が修正・変更された機能仕様書のデータに基づいてデータフロー図を更新する際のデータ処理の一例を示すフローチャートである。
【図１１】図１に示した機能仕様書自動生成装置によって修正・変更された機能仕様書のデータに対応する機能仕様書の一例を示す概念図である。
【図１２】図１に示した機能仕様書自動生成装置での機能仕様書解析部が抽出した機能仕様の情報の一例を示す概念図である。
【図１３】図１に示した機能仕様書自動生成装置によって更新されたデータフロー図の一例を示す概略図である。
【図１４】図１に示した機能仕様書自動生成装置の第２差分抽出部によって抽出される差分の一例を示す概念図である。
【符号の説明】
【００５９】
１  入力部
１１  モデル解析部
１３  機能仕様書生成部
１５  機能仕様書解析部
１７  モデル更新部
２１  第１差分抽出部
２３  第１変更依存箇所推測部
２５  第２差分抽出部
２７  第２変更依存箇所推測部
３０  データ処理部
３５ａ  第１記憶部
３５ｂ  第２記憶部
４０  印刷部
４５  表示部
５０  出力部
６０  制御部
７０  機能仕様書自動生成装置
１１０，１２０，１３０  データフロー図
Ｄｆ1，Ｄｆ2  機能仕様の情報
Ｓｐ1  機能仕様書
Ｒｉ  第１変更依存箇所推測部による推測結果
Ｍｅ  再確認を促すメッセージ
Ｒｄ  第２差分抽出部による差分の抽出結果
【図１】
2009134342.tif 000003
【図２】
2009134342.tif 000004
【図３】
2009134342.tif 000005
【図４】
2009134342.tif 000006
【図５】
2009134342.tif 000007
【図６】
2009134342.tif 000008
【図７】
2009134342.tif 000009
【図８】
2009134342.tif 000010
【図９】
2009134342.tif 000011
【図１０】
2009134342.tif 000012
【図１１】
2009134342.tif 000013
【図１２】
2009134342.tif 000014
【図１３】
2009134342.tif 000015
【図１４】
2009134342.tif 000016