(57)【特許請求の範囲】
【請求項１】
ユーザからの操作を受け付ける入力部と、
開発対象となるソフトウェアを構成する各機能についての仕様に関する仕様情報であって、対応する機能が実行される際、他の機能との関係で制約を受ける場合には、その条件となる実行制約条件が含まれる仕様書情報を記憶する仕様記憶部と、
前記仕様記憶部に記憶されている仕様情報の階層関係を示す仕様階層情報を管理する仕様管理部と、
ユーザによる所定操作に応じて、前記仕様記憶部に記憶されている仕様情報を読み出し、読み出した仕様情報から抽出した前記実行制約条件と、前記仕様階層情報と、に基づいて、前記各機能間の関係を表した仕様系統図画面データを生成し、所定の表示装置に出力する制御部と、を備え、
前記制御部は、前記仕様系統図画面データの出力後、ユーザにより、特定の機能についての仕様情報の作成要求操作が行われると、ユーザによる当該機能に関する記述が可能な領域を含む画面であって、当該機能と親が共通する機能に対応する仕様情報から抽出した前記実行制約条件を組み入れた仕様情報作成画面データを生成し、前記表示装置に出力する、ソフトウェア開発支援装置。
【請求項２】
ユーザからの操作を受け付ける入力部と、
開発対象となるソフトウェアを構成する各機能についての仕様に関する仕様情報であって、対応する機能が実行される際、他の機能との関係で制約を受ける場合には、その条件となる実行制約条件が含まれる仕様書情報を記憶する仕様記憶部と、
前記仕様記憶部に記憶されている仕様情報の階層関係を示す仕様階層情報を管理する仕様管理部と、
ユーザによる所定操作に応じて、前記仕様記憶部に記憶されている仕様情報を読み出し、読み出した仕様情報から抽出した前記実行制約条件と、前記仕様階層情報と、に基づいて、前記各機能間の関係を表した仕様系統図画面データを生成し、所定の表示装置に出力する制御部と、
前記各機能に対応した実装コードを記憶する実装コード記憶部と、
前記実装コード記憶部に記憶されている実装コードの階層関係を示す実装階層情報を管理する実装管理部と、
前記仕様記憶部に記憶されている前記仕様情報と、前記実装コード記憶部に記憶されている前記実装コードとの対応付けを示す仕様−実装対応情報を管理する仕様−実装対応管理部と、を備え、
前記制御部は、ユーザによる所定操作に応じて、前記実装階層情報に基づいて、前記実装コード記憶部に記憶されている各実装コードの階層関係を表した実装系統図データを生成し、これと前記仕様系統図画面データとを合成した仕様−実装系統図画面データを生成して、前記表示装置に出力する、ソフトウェア開発支援装置。
【請求項３】
前記制御部は、前記仕様−実装系統図画面データの出力後、ユーザにより、新規実装の追加要求操作が行われると、ユーザから、親となる実装コードを選択する操作を受け付け、前記仕様−実装系統図画面データに当該受け付けた結果を反映した後、再度、前記表示装置に出力する、請求項２に記載のソフトウェア開発支援装置。
【請求項４】
前記制御部は、前記仕様−実装系統図画面データの出力後、ユーザにより、特定の実装コードについての作成要求操作が行われると、ユーザによる実装コードの記述が可能な領域を含む実装コード作成画面データを生成し、前記表示装置に出力する、請求項２又は３に記載のソフトウェア開発支援装置。
【請求項５】
前記制御部は、前記実装コード作成画面データを生成する際、前記ユーザによる実装コードの記述が可能な領域に、対応する機能の仕様情報の内容を所定態様で記述する、請求項４に記載のソフトウェア開発支援装置。
【請求項６】
コンピュータを、
ユーザからの操作を受け付ける入力部、
開発対象となるソフトウェアを構成する各機能についての仕様に関する仕様情報であって、対応する機能が実行される際、他の機能との関係で制約を受ける場合には、その条件となる実行制約条件が含まれる仕様書情報を記憶する仕様記憶部、
前記仕様記憶部に記憶されている仕様情報の階層関係を示す仕様階層情報を管理する仕様管理部、
ユーザによる所定操作に応じて、前記仕様記憶部に記憶されている仕様情報を読み出し、読み出した仕様情報から抽出した前記実行制約条件と、前記仕様階層情報と、に基づいて、前記各機能間の関係を表した仕様系統図画面データを生成し、所定の表示装置に出力する制御部、として機能させ、
前記制御部は、前記仕様系統図画面データの出力後、ユーザにより、特定の機能についての仕様情報の作成要求操作が行われると、ユーザによる当該機能に関する記述が可能な領域を含む画面であって、当該機能と親が共通する機能に対応する仕様情報から抽出した前記実行制約条件を組み入れた仕様情報作成画面データを生成し、前記表示装置に出力する、プログラム。
【請求項７】
コンピュータを、
ユーザからの操作を受け付ける入力部、
開発対象となるソフトウェアを構成する各機能についての仕様に関する仕様情報であって、対応する機能が実行される際、他の機能との関係で制約を受ける場合には、その条件となる実行制約条件が含まれる仕様書情報を記憶する仕様記憶部、
前記仕様記憶部に記憶されている仕様情報の階層関係を示す仕様階層情報を管理する仕様管理部、
ユーザによる所定操作に応じて、前記仕様記憶部に記憶されている仕様情報を読み出し、読み出した仕様情報から抽出した前記実行制約条件と、前記仕様階層情報と、に基づいて、前記各機能間の関係を表した仕様系統図画面データを生成し、所定の表示装置に出力する制御部、
前記各機能に対応した実装コードを記憶する実装コード記憶部、
前記実装コード記憶部に記憶されている実装コードの階層関係を示す実装階層情報を管理する実装管理部、
前記仕様記憶部に記憶されている前記仕様情報と、前記実装コード記憶部に記憶されている前記実装コードとの対応付けを示す仕様−実装対応情報を管理する仕様−実装対応管理部、として機能させ、
前記制御部は、ユーザによる所定操作に応じて、前記実装階層情報に基づいて、前記実装コード記憶部に記憶されている各実装コードの階層関係を表した実装系統図データを生成し、これと前記仕様系統図画面データとを合成した仕様−実装系統図画面データを生成して、前記表示装置に出力する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの開発を支援する技術に関する。
【背景技術】
【０００２】
例えば、ＬＳＩ（large scale integration）等の設計において、仕様書作成、ソースコード作成、試験仕様書作成の各ツールを統合し、相互にデータ交換できるようにした設計支援技術は、従来より知られている（例えば、特許文献１等）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−６２５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、機能追加型の手法でソフトウェア開発を行う場合、開発者（ユーザ）は、他の機能（仕様）との関係を意識しながら作業を行う必要がある。しかしながら、作成対象の機能と、他の機能との関係を判りやすくユーザに提示する等して、ソフトウェア開発を支援する技術について、未だ有効な提案がなされていないのが実情である。
【０００５】
本発明は、上記実情に鑑みてになされたものであり、ソフトウェア開発において、各機能間の関係をユーザに対して容易に理解できる態様で提示するソフトウェア開発支援装置等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明に係るソフトウェア開発支援装置は、
ユーザからの操作を受け付ける入力部と、
開発対象となるソフトウェアを構成する各機能についての仕様に関する仕様情報であって、対応する機能が実行される際、他の機能との関係で制約を受ける場合には、その条件となる実行制約条件が含まれる仕様書情報を記憶する仕様記憶部と、
前記仕様記憶部に記憶されている仕様情報の階層関係を示す仕様階層情報を管理する仕様管理部と、
ユーザによる所定操作に応じて、前記仕様記憶部に記憶されている仕様情報を読み出し、読み出した仕様情報から抽出した前記実行制約条件と、前記仕様階層情報と、に基づいて、前記各機能間の関係を表した仕様系統図画面データを生成し、所定の表示装置に出力する制御部と、を備え、
前記制御部は、前記仕様系統図画面データの出力後、ユーザにより、特定の機能についての仕様情報の作成要求操作が行われると、ユーザによる当該機能に関する記述が可能な領域を含む画面であって、当該機能と親が共通する機能に対応する仕様情報から抽出した前記実行制約条件を組み入れた仕様情報作成画面データを生成し、前記表示装置に出力する。
【発明の効果】
【０００７】
本発明によれば、各機能間の関係を表した仕様系統図を表示するため、ソフトウェアの開発において、作業の効率化や品質の向上が図れる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態１に係るソフトウェア開発支援装置の構成を示すブロック図である。
【図２】事前条件について説明するための図であり、（ａ）及び（ｂ）は機能間の依存関係を示し、（ｃ）は機能間の排他関係を示す。
【図３】仕様階層関係について説明するための図であり、（ａ）は、“Ａ ｈａｓ−ａ Ｂ”の関係を示し、（ｂ）は、“Ｂ ｉｓ−ａ Ａ”の関係を示す。
【図４】仕様系統図画面の一例を示す図（その１）である。
【図５】階層関係指定画面の一例を示す図である。
【図６】仕様系統図画面の一例を示す図（その２）である。
【図７】仕様書作成画面の一例を示す図（その１）である。
【図８】仕様書作成画面の一例を示す図（その２）である。
【図９】仕様系統図画面の一例を示す図（その３）である。
【図１０】線種リスト一例を示す図である。
【図１１】仕様系統図画面の一例を示す図（その４）である。
【図１２】仕様書作成支援処理の手順を示すフローチャートである。
【図１３】本発明の実施形態２に係るソフトウェア開発支援装置の構成を示すブロック図である。
【図１４】仕様−実装系統図画面の一例を示す図（その１）である。
【図１５】仕様−実装系統図画面の一例を示す図（その２）である。
【図１６】実装コード作成画面の一例を示す図（その１）である。
【図１７】実装コード作成画面の一例を示す図（その２）である。
【図１８】実装コード作成画面の一例を示す図（その３）である。
【図１９】実装コード作成支援処理の手順を示すフローチャートである。
【図２０】実施形態２の変形例に係るソフトウェア開発支援装置の構成を示すブロック図である。
【図２１】他の実施形態における仕様書作成画面の一例を示す図である。
【図２２】他の実施形態における詳細仕様系統図画面の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【００１０】
実施形態１．
図１は、本発明の実施形態１に係るソフトウェア開発支援装置１の構成を示すブロック図である。このソフトウェア開発支援装置１は、特に、機能追加型の手法でソフトウェア開発する場合において、ユーザによる仕様書（機能仕様書）の作成をアシストする装置である。
【００１１】
ソフトウェア開発支援装置１のハードウェア構成は、一般的なパーソナルコンピュータと同等である。即ち、ソフトウェア開発支援装置１は、何れも図示しないが、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等から構成される制御装置、読み書き可能な不揮発性の半導体メモリやハードディスクドライブ等から構成される外部記憶装置、キーボード、マウス、キーパッド、タッチパッドやタッチパネル等から構成される入力装置、ＣＲＴや液晶モニタ等から構成される表示装置等を備える。ソフトウェア開発支援装置１が実行する各処理（詳細は後述する）は、ＣＰＵ等がＲＯＭ又は外部記憶装置に記憶されている所定のプログラムを実行することで実現する。
【００１２】
ソフトウェア開発支援装置１は、機能的には、図１に示すように、入力部１０と、表示部１１と、仕様記憶部１２と、仕様管理部１３と、制御部１４と、を備える。
【００１３】
入力部１０は、ユーザからの入力操作を受け付け、受け付けた入力操作に係る信号を制御部１４に送出する。
【００１４】
表示部１１は、制御部１４の制御の下、後述する仕様系統図画面等のユーザ操作用の画面の表示を行う。
【００１５】
仕様記憶部１２は、開発対象となるソフトウェアを構成する各機能毎に、その仕様内容（本体部）と、事前条件と、事後条件と、を対応付けた情報（仕様情報）を記憶する。仕様情報には、各仕様情報を一意に識別するためのＩＤ（仕様ＩＤ）が、制御部１４によって割り振られている。
【００１６】
事前条件とは、当該機能（仕様）を実行する前提となる条件をいう。本実施形態では、事前条件には、依存関係と、排他関係と、が含まれる。依存関係にあるとは、例えば、他の機能（仕様）で管理されているデータを参照するケース、他の機能の実行後に当該機能を実行するケース、他の機能と併せて（並行して）実行するケース等が該当する。また、本実施形態では、機能間の依存関係を図２の（ａ）、（ｂ）のように表記する。図２（ａ）は、機能Ａが機能Ｂに依存していることを示す（例えば、機能Ｂの実行後に機能Ａを実行する等）。図２（ｂ）は、機能Ｂが機能Ａに依存していることを示す（例えば、機能Ａの実行後に機能Ｂを実行する等）。
【００１７】
また、排他関係にあるとは、一方の機能の実行中は、他方を実行することができない関係にある場合をいう。なお、両機能の実行要求が競合した場合には、所定の優先条件に基づいて、何れか一方を優先的に実行する。また、本実施形態では、機能間の排他関係を図２（ｃ）のように表記する。図２（ｃ）は、機能Ａと機能Ｂが排他の関係にあり、両者を同時に実行できないことを示している。
【００１８】
事後条件とは、当該機能の実行後に成立させる条件（例えば、当該機能の実行後、設定温度に１℃加算する等）をいう。
【００１９】
仕様管理部１３は、仕様記憶部１２に保存されている各仕様情報の階層関係を示す情報（仕様階層情報）を保持する。
【００２０】
本実施形態で採用する仕様階層関係には、図３に示すように、２つのパターンがあり、各パターンに応じて予め決められたマークで表記される。図３（ａ）は、“Ａ ｈａｓ−ａ Ｂ”の関係を示す。即ち、Ｂ（子）は、Ａ（親）に属する、又は、Ｂ（子）は、Ａ（親）の一部であることを示す。具体例を挙げると、Ａ：ピアノ、Ｂ：鍵盤の関係がこれに該当する。
【００２１】
図３（ｂ）は、“Ｂ ｉｓ−ａ Ａ”の関係を示す。即ち、Ｂ（子）は、Ａ（親）を継承することを示す。換言すると、ＡはＢを汎化したもの、ＢはＡを特化したものといえる。具体例を挙げると、Ａ：楽器、Ｂ：ピアノの関係がこれに該当する。
【００２２】
仕様管理部１３は、制御部１４からの要求に従って、仕様記憶部１２にアクセスし、仕様情報の読み出しや書き込み等を行う。また、仕様管理部１３は、新たな仕様情報が書き込まれた際など、必要に応じて仕様階層情報の更新を行う。
【００２３】
制御部１４は、ユーザにより、入力部１０を介して、仕様系統図画面の表示を要求する操作が行われると、仕様管理部１３に仕様情報の読み出しを要求する。そして、制御部１４は、仕様管理部１３によって読み出された各仕様情報に含まれる事前条件と、上記の仕様階層情報と、に基づいて、各機能（各仕様）間の関係を表した仕様系統図画面データを作成する。制御部１４は、作成した仕様系統図画面データに基づいて、表示部１１に図４に示すような仕様系統図画面４０１を表示させる。図４において、各“仕様”に付加されている数字が、当該仕様情報の仕様ＩＤを示すものとする。
【００２４】
この仕様系統図画面４０１から、最上位の仕様が仕様０であり、その子として、仕様１、仕様２及び仕様３が存在することが判る。また、仕様０と仕様１、仕様０と仕様２及び仕様０と仕様３は、何れも、“Ａ ｈａｓ−ａ Ｂ”の関係（図３（ａ）参照）を有していることが判る。
【００２５】
仕様１は、仕様１．１、１．２及び  １．３の３つの子を有し、それぞれと、“Ｂ ｉｓ−ａ Ａ”の関係（図３（ｂ）参照）にある。また、仕様１．１と仕様１．２とは、排他関係（図２（ｃ））にある。
【００２６】
仕様２は、仕様２．１及び２．２の２つの子を有し、それぞれと、“Ａ ｈａｓ−ａ Ｂ”の関係（図３（ａ）参照）にある。また、仕様２．１が仕様２．２に依存する関係（図２（ａ）、（ｂ）参照）にある。
【００２７】
仕様３は、仕様３．１及び３．２の２つの子を有し、それぞれと、“Ａ ｈａｓ−ａ Ｂ”の関係（図３（ａ）参照）にある。また、仕様３．１と仕様３．２とは、排他関係（図２（ｃ））にある。さらに、仕様３．２が仕様２．２に依存する関係（図２（ａ）、（ｂ）参照）にある。
【００２８】
制御部１４は、仕様系統図画面４０１をＧＵＩ（Graphical User Interface）の態様で表示する。これにより、ユーザは、所望の“仕様ｎ”を示すアイコン４０２をマウス等を用いてクリック操作等することで、当該“仕様ｎ”に対応する仕様を処理対象として選択することができる。
【００２９】
新規追加ボタン４０３は、新たな機能（仕様）を追加する際に使用される。ユーザにより、新規追加ボタン４０３が押下操作されると、制御部１４は、ユーザに対して、親の仕様の選択を促すメッセージを表示する。かかるメッセージの表示後、ユーザにより、親となる“仕様ｎ”を示すアイコン４０２がクリック操作等されて選択されると、制御部１４は、当該選択された“仕様ｎ”が、追加される仕様の親になると判定する。
【００３０】
制御部１４は、親となる仕様が選択されると、ユーザに対して、図５に示すような、階層関係の指定をさせるための画面（階層関係指定画面５０１）を表示部１１にポップアップ表示させる。
【００３１】
ユーザは、入力部１０を介して、ラジオボタン５０２又は５０３の何れかを選択する操作を行うことで、親仕様との階層関係を指定することができる。例えば、“親 ｈａｓ−ａ 子”の階層関係を指定したい場合、ユーザは、ラジオボタン５０２を選択する操作を行えばよい。一方、“子 ｉｓ−ａ 親”の階層関係を指定したい場合、ユーザは、ラジオボタン５０３を選択する操作を行えばよい。
【００３２】
ユーザによりＯＫボタン５０４が押下操作されると、制御部１４は、ユーザの指定結果を取得し、先に選択された親仕様と、今回の追加仕様との階層関係を決定し、その決定結果を仕様系統図画面４０１に反映する。反映後の仕様系統図画面４０１の一例を図６に示す。
【００３３】
図６の仕様系統図画面４０１は、ユーザにより、親の仕様として、“仕様３”が選択され、階層関係として、“親 ｈａｓ−ａ 子”が選択された結果として、“仕様３．３”が追加された例を示している。また、新規追加された“仕様３．３”に対応するアイコン４０２は、グレー表示等、他のアイコン４０２と区別できる態様で強調表示される。
【００３４】
図６の仕様系統図画面４０１において、ユーザにより仕様書作成画面の表示を要求する所定操作が行われると（例えば、新規追加した“仕様３．３”に対応するアイコン４０２がマウス等によりダブルクリックされると）、制御部１４は、“仕様３．３”と親が共通する子（“仕様３．１”、“仕様３．２”）をピックアップし、それぞれに対応する仕様情報から、事前条件及び事後条件を抽出する。そして、制御部１４は、その抽出結果を組み入れた仕様書作成画面７０１（図７参照）を表示部１１に表示させる。
【００３５】
図７に示すように、仕様書作成画面７０１は、事前条件設定エリア７０２と、本体部エリア７０３と、事後条件設定エリア７０４と、から構成される。事前条件エリア７０２には、親が共通する他の子の仕様情報から抽出した事前条件の内容が表示され、各事前条件に対応するチェックボックスが設けられている。この例では、“仕様３．１”に対応する仕様情報の事前条件である“仕様３．２と排他実行”が表示され、これに対応するチェックボックス７０２０が設けられている。また、“仕様３．２”に対応する仕様情報の事前条件である“仕様３．１と排他実行”及び“仕様２．２の完了後に実行”が表示され、それぞれに対応するチェックボックス７０２１及び７０２２が設けられている。
【００３６】
さらに、他の子から抽出した事前条件以外の条件も設定できるように、“その他”に対応するチェックボックス７０２３が設けられ、その内容をユーザが、直接、テキスト入力するための入力エリア７０２４が設けられている。
【００３７】
本体部エリア７０３には、ユーザが仕様の内容を直接記載（テキスト入力）することができる入力エリア７０３０と、ユーザの操作内容を確定させ、仕様書作成画面７０１を閉じるためのＯＫボタン７０３１が設けられている。
【００３８】
事後条件設定エリア７０４には、親が共通する他の子の仕様情報から抽出した事後条件の内容が表示され、各事後条件に対応するチェックボックスが設けられている。この例では、例えば、“仕様３．１”に対応する仕様情報の事後条件である“設定温度＝元の設定温度＋１℃”が表示され、これに対応するチェックボックス７０４０が設けられている。さらに、他の子から抽出した事後条件以外の条件も設定できるように、“その他”に対応するチェックボックス７０４１が設けられ、その内容をユーザが直接にテキスト入力するための入力エリア７０４２が設けられている。
【００３９】
ユーザにより、ＯＫボタン７０３１が押下操作されると、制御部１４は、事前条件設定エリア７０２、本体部エリア７０３及び事後条件設定エリア７０４における各設定や入力結果を取得して保持すると共に、事前条件設定エリア７０２や事後条件設定エリア７０４の設定結果から得られる仕様（機能）間の関連を仕様系統図画面４０１に反映する。例えば、仕様書作成画面７０１において、ユーザにより、図８に示すように事前条件が設定された場合、反映後の仕様系統図画面４０１は図９に示すようになる。
【００４０】
また、ユーザは、仕様系統図画面４０１を介して、機能間の関連（関係）を設定することも可能である。この場合の設定方法の一例について説明する。例えば、仕様系統図画面４０１上にて、ユーザにより所定操作（例えば、マウスの右クリックなど）が行われると、制御部１４は、図１０に示すように、線種リスト１００１を表示し、ユーザに所望の線種（１：“−−−−＞”、又は、２：“＜−−−−＞”）を指定させる。ここで、ユーザは、依存関係を設定したい場合は、１の線種を選択し、排他関係を設定したい場合は、２の線種を選択する。１及び２の線種において、向かって左側が起点（新規追加した仕様等、作成や更新対象となっている仕様）になり、右側が終点（関係を設定したい他の仕様）になる。
【００４１】
線種の指定が完了すると、ユーザは、関係を設定したい２つの“仕様ｎ”を選択する。例えば、ユーザは、マウス等を使用したいわゆるドラッグ操作により、異なる“仕様ｎ”を示す２つのアイコン４０２を選択する。また、ユーザは起点としたい“仕様ｎ”に対応するアイコン４０２を最初に選択し、終点としたい“仕様ｎ”に対応するアイコン４０２を次（最後）に選択する。具体的には、例えば、依存関係の設定において、“仕様３．３は、仕様１．３の完了後に実行する”という条件を設定したい場合、ユーザは、１の線種を選択し、起点として仕様３．３を、終点として、仕様１．３を選択すればよい。この場合の選択結果が反映された仕様系統図画面４０１は図１１に示すようになる。
【００４２】
また、“仕様３．３は、仕様２．１と排他関係にある”という条件を設定したい場合、ユーザは、２の線種を選択し、起点として仕様３．３を、終点として、仕様２．１を選択すればよい。
【００４３】
ユーザにより、仕様系統図画面４０１のＯＫボタン４０４が押下操作されると、制御部１４は、仕様系統図画面４０１で設定された内容（依存関係や排他関係）や仕様書作成画面７０１で設定、入力された内容を、関係する仕様に対応する仕様情報に反映する。この際、新規追加であれば、制御部１４は、仕様情報を新たに作成し、仕様記憶部１２に追加保存する。また、制御部１４は、仕様管理部１３を介して、仕様階層情報の更新を行う。
【００４４】
なお、当然のことながら、新規追加した仕様において、排他関係を設定した場合等では、既に作成済みの他の仕様情報もその内容に変更が生じることになる。
【００４５】
図１２は、以上の構成のソフトウェア開発支援装置１による、仕様書の作成を支援する処理（仕様書作成支援処理）の手順を示すフローチャートである。ユーザにより仕様系統図画面４０１の表示を要求する操作が行われると（ステップＳ１０１；ＹＥＳ）、制御部１４は、仕様記憶部１２に保存されている各仕様情報に対応する各機能（各仕様）間の関係を表した仕様系統図画面データを作成する。そして、制御部１４は、作成した仕様系統図画面データに基づいて、表示部１１に仕様系統図画面４０１（図４参照）を表示させる（ステップＳ１０２）。
【００４６】
ユーザにより、仕様系統図画面４０１に対して、なんらかの操作が行われた場合（ステップＳ１０３；ＹＥＳ）であって、それが、新規追加ボタン４０３の押下操作である場合（ステップＳ１０４；ＹＥＳ）、制御部１４は、ユーザからの親の仕様の選択を受け付ける（ステップＳ１０５）。次に制御部１４は、選択された親仕様との階層関係の指定をユーザから受け付ける（ステップＳ１０６）。そして、制御部１４は、新規追加された仕様を反映した仕様系統図画面４０１を表示部１１に再表示させる（ステップＳ１０２）。
【００４７】
ユーザによる画面操作が、仕様書作成画面７０１の表示要求操作である場合（ステップＳ１０７；ＹＥＳ）、制御部１４は、作成対象の仕様と親が共通する子をピックアップし、それぞれに対応する仕様情報から、事前条件及び事後条件を抽出する。そして、制御部１４は、その抽出結果を組み入れた仕様書作成画面７０１（図７参照）を表示部１１に表示させる（ステップＳ１０８）。
【００４８】
仕様書作成画面７０１の表示中に、ユーザにより作成が完了した旨の所定操作（ここでは、ＯＫボタン７０３１の押下操作）が行われると（ステップＳ１０９；ＹＥＳ）、制御部１４は、ユーザによる入力結果等を取得して保持すると共に、事前条件設定エリア７０２や事後条件設定エリア７０４の設定結果を反映した仕様系統図画面４０１を表示部１１に再表示させる（ステップＳ１０２）。
【００４９】
ユーザによる画面操作が、機能間の関連の設定操作である場合（ステップＳ１１１；ＹＥＳ）、制御部１４は、ユーザからの機能間の関連の指定を受け付ける（ステップＳ１１２）。具体的には、上述したように、図１０に示すような線種リスト１００１を表示し、ユーザに所望の線種を指定させる。
【００５０】
ユーザにより機能間の関連が指定されると、制御部１４は、機能間の関連の設定対象となる複数の仕様の選択をユーザから受け付ける（ステップＳ１１３）。例えば、ユーザは、マウス等を使用したいわゆるドラッグ操作によりこれらの仕様を選択することができる。制御部１４は、上記のようにしてユーザが操作した結果を反映した仕様系統図画面４０１を表示部１１に再表示させる（ステップＳ１０２）。
【００５１】
ユーザによる画面操作が、仕様系統図画面４０１のＯＫボタン４０４の押下操作である場合（ステップＳ１１１；ＮＯ）、制御部１４は、終了処理を実行する（ステップＳ１１４）。具体的には、仕様系統図画面４０１で設定された内容や仕様書作成画面７０１で設定、入力された内容を対応する仕様情報に反映する
【００５２】
以上のように、本実施形態のソフトウェア開発支援装置１によれば、ソフトウェア開発における仕様書の作成において、ユーザに対して、既存（作成済み）の仕様（機能）の系統や、相互の関係が容易に理解できる環境を提供する。したがって、仕様書の作成効率の向上が図れる。これにより、開発期間の短縮が図れ、さらに、品質の向上も期待できる。
【００５３】
また、ユーザに、仕様系統図画面４０１を介して直感的な操作環境を提供するため、利便性がよく、作業効率の一層の向上が図れる。
【００５４】
また、新たな仕様を追加する際、親が同じ等、関連性が強い他の仕様が有する事前・事後条件等の実行制約条件を自動的に抽出し、当該追加仕様における実行制約条件の候補として、ユーザに提示することがきる。そして、ユーザは、提示された候補の中から、所望のものを選択操作するだけで、当該追加仕様における実行制約条件を設定することが可能になる。このため、仕様書の作成における作業性が著しく向上する。
【００５５】
なお、既存の仕様書を削除する場合、ユーザは、仕様系統図画面４０１で削除したい“仕様ｎ”を示すアイコン４０２を選択した後、キーボード等の削除キーを押下操作すればよい。この場合、先ず、仕様系統図画面４０１から当該“仕様ｎ”を示すアイコン４０２が消去され、当該“仕様ｎ”を起点又は終点とする機能間の関連を示す線も消去される。そして、ユーザにより、ＯＫボタン４０４が押下操作されると、当該“仕様ｎ”に対応する仕様情報が仕様記憶部１２から削除され、これに伴い仕様階層情報も更新される。さらに、関連する他の仕様情報の事前条件や事後条件の設定内容も更新される。
【００５６】
実施形態２．
図１３は、本発明の実施形態２に係るソフトウェア開発支援装置１Ａの構成を示すブロック図である。このソフトウェア開発支援装置１Ａは、実施形態１のソフトウェア開発支援装置１と同等の機能、即ち、ユーザによる仕様書の作成を支援する機能に加え、所定のプログラム言語に則ったプログラムコード（実装コード）の作成をアシストする機能も備える。
【００５７】
図１３に示すように、ソフトウェア開発支援装置１Ａは、ソフトウェア開発支援装置１の構成に加え、実装コード記憶部１５と、テンプレート記憶部１６と、実装管理部１７と、仕様−実装対応管理部１８と、をさらに備える。また、ソフトウェア開発支援装置１Ａでは、ソフトウェア開発支援装置１の制御部１４が、制御部１４Ａに変更されている。
【００５８】
実装コード記憶部１５は、各機能（即ち、各仕様）毎に、当該機能を実現するための実装コードを記憶する。また、各機能を構成する１又は複数の関数（モジュール）単位でのプログラムコード（関数コード）も併せて記憶する。実装コードには、各実装コードを一意に識別するためのＩＤ（実装ＩＤ）が、制御部１４Ａによって割り振られている。
【００５９】
テンプレート記憶部１６は、複数の実装コードに共通する骨組み（ひな形）のコード（以下、スケルトンコードという。）を複数パターン記憶する。
【００６０】
実装管理部１７は、各実装コードの階層関係を示す情報（実装階層情報）を保持する。実装管理部１７は、制御部１４Ａからの要求に従って、実装コード記憶部１５又はテンプレート記憶部１６にアクセスし、実装コード又はスケルトンコードの読み出しや書き込み等を行う。また、実装管理部１７は、新たな実装コードが実装コード記憶部１５に書き込まれた際など、必要に応じて実装階層情報の更新を行う。
【００６１】
仕様−実装対応管理部１８は、仕様記憶部１２に保存されている仕様情報と、実装コード記憶部１５に保存されている実装コードとの対応付けを管理する。仕様−実装対応管理部１８は、仕様情報に割り振られた仕様ＩＤと、実装コードに割り振られた実装ＩＤと、を対応付けた仕様−実装対応情報を保持する。仕様−実装対応管理部１８は、仕様情報や実装コードが新たに追加された際など、必要に応じて、仕様−実装対応情報の更新を行う。
【００６２】
制御部１４Ａは、実施形態１の制御部１４と同等の処理を実行できるほか、ユーザによる実装コード作成をアシストするための様々な処理を実行する。例えば、ユーザにより、入力部１０を介して、仕様−実装系統図画面の表示を要求する操作が行われると、制御部１４Ａは、仕様−実装系統図画面データを作成し、作成した仕様−実装系統図画面データに基づいて、表示部１１に図１４に示すような仕様−実装系統図画面１４０１を表示させる。
【００６３】
仕様−実装系統図画面１４０１において、仕様の系統を示す部分（仕様系統図）は、実施形態１で説明した仕様系統図画面４０１で示した仕様系統図と同様である。また、実装（実装コード）の系統を示す部分（実装系統図）において、“実装ｎ”を示すアイコン１４０３の“ｎ”は、対応する実装コードの実装ＩＤを示している。なお、仕様ＩＤと実装ＩＤは、それぞれ別個に付与されるものであり、上位の階層では、一致することもあるが、下位の階層では、対応する仕様と実装とで付与されるＩＤが必ずしも共通するとは限らない。また、階層関係も仕様と実装とでは異なることが多い。この点を判りやすくするため、仕様−実装系統図画面１４０１においては、実線の矢線（仕様−実装対応線）で下位の階層の仕様と実装との対応関係を明示している。
【００６４】
制御部１４Ａは、実装管理部１７が保持する実装階層情報と、仕様−実装対応管理部１８が保持する仕様−実装対応情報と、に基づいて、実装系統図と、上記の仕様−実装対応線を表示するためのデータを作成する。
【００６５】
仕様−実装系統図画面１４０１により、ユーザは、仕様と実装コードとの対応関係を容易に理解することができる。また、制御部１４Ａは、先に仕様系統図画面４０１を介して、新たに追加された仕様（この例では、仕様３．３）に対応するアイコン１４０２については、グレー表示等、他のアイコン１４０２と区別できる態様で強調表示する。これにより、ユーザは、新規追加され、対応する実装コードが未作成である仕様を確認することができる。なお、新規追加のみならず、更新された仕様に対応するアイコン１４０２についても、その旨が判るように、他のアイコン１４０２と区別した表示を行う。
【００６６】
新規追加ボタン１４０４は、新たな実装（実装コード）を追加する際に使用される。ユーザにより、新規追加ボタン１４０４が押下操作されると、制御部１４Ａは、ユーザに対して、親（１つ上の階層）の実装の選択を促すメッセージを表示する。かかるメッセージの表示後、ユーザにより、親となる“実装ｎ”を示すアイコン１４０３がクリック操作等されて選択されると、制御部１４Ａは、当該選択された“実装ｎ”が、追加される実装の親になると判定する。
【００６７】
制御部１４は、親となる仕様が選択されると、ユーザに対して、対応する仕様の選択を促すメッセージを表示する。かかるメッセージの表示後、ユーザにより、対応する“仕様ｎ”を示すアイコン１４０２がクリック操作等されて選択されると、制御部１４Ａは、当該選択された“仕様ｎ”が、今回追加する実装に対応する仕様であると判定する。
【００６８】
ユーザにより、上記のようにして、新規追加する実装の親と、対応する仕様と、が選択されると、制御部１４Ａは、これらの結果を反映した仕様−実装系統図画面１４０１を再表示する。例えば、ユーザにより、新規追加する実装の親として、“実装３”が選択され、対応する仕様として、“仕様３．３”が選択された場合、仕様−実装系統図画面１４０１は、図１５に示すように再表示される。
【００６９】
図１５の仕様−実装系統図画面１４０１において、ユーザにより実装コード作成画面の表示を要求する所定操作が行われると（例えば、新規追加した“実装３．３”に対応するアイコン１４０３がマウス等によりダブルクリックされると）、制御部１４Ａは、これに対応する“仕様３．３”の仕様情報を仕様記憶部１２から読み出す。そして、制御部１４Ａは、読み出した仕様情報の内容を組み入れた実装コード作成画面１６０１（図１６参照）を表示部１１に表示させる。
【００７０】
図１６に示すように、実装コード作成画面１６０１は、コード入力エリア１６０２と、ＯＫボタン１６０３と、から構成される。コード入力エリア１６０２は、ユーザが、キーボードやマウス等を用いて、所定のプログラム言語に則ったプログラムコードを入力する（コーディングする）ことのできるエリアである。制御部１４Ａは、実装コード作成画面１６０１を表示する際、コード入力エリア１６０２に、対応する仕様（例えば、“仕様３．３”）の仕様情報の内容に基づいた各種情報を予めコメント形式で記述しておく。このように、対応する仕様の内容が予め記述されていると、プログラミング作業の効率化や正確性の向上が図れる。
【００７１】
例えば、図１６に示すように、当該実装コードの名称（実装名称）として、“実装ｎの実装コード”（ｎは、実装ＩＤ）というような仮の名称が記述される。また、対応する仕様の事前条件の内容が記述される。そして、本体部の内容が記述され、事後条件の内容が記述される。
【００７２】
また、上記例のほか、制御部１４Ａは、新規追加した実装（例えば、“実装３．３”）と親が共通する子（“実装１．３”、“実装２．２”、“実装３．１”及び“実装３．２”）に対応するスケルトンコードが存在する場合には、当該スケルトンコードをテンプレート記憶部１６から読み出し、かかるコード内容も併せて記述するようにしてもよい（図１７参照）。あるいは、共通の子となる実装コードや親の実装コードにおいて、関数名の一部が共通したり、引数（型、名称）が共通している場合等には、これらを予め記述しておくようにしてもよい（図１８参照）。このように、実装コード作成画面１６０１の表示の際に、実際のコード内容も予め記述しておくようにすることで、ユーザのプログラミング作業の一層の効率化が図れる。
【００７３】
図１９は、ソフトウェア開発支援装置１Ａによる、実装コードの作成を支援する処理（実装コード作成支援処理）の手順を示すフローチャートである。
【００７４】
ユーザにより仕様−実装系統図画面の表示を要求する操作が行われると（ステップＳ２０１；ＹＥＳ）、制御部１４Ａは、仕様記憶部１２に保存されている各仕様情報に対応する各機能間の関係を表した仕様系統図データを作成する。また、制御部１４Ａは、実装コード記憶部１５に保存されている各実装コード間の関係を表した実装系統図データを作成する。そして、制御部１４Ａは、作成した仕様系統図データ及び実装系統図データに基づいて、表示部１１に仕様−実装系統図画面１４０１（図１４参照）を表示させる（ステップＳ２０２）。
【００７５】
ユーザにより、仕様−実装系統図画面１４０１に対して、なんらかの操作が行われた場合（ステップＳ２０３；ＹＥＳ）であって、それが、新規追加ボタン１４０４の押下操作である場合（ステップＳ２０４；ＹＥＳ）、制御部１４Ａは、ユーザから親の実装の選択を受け付ける（ステップＳ２０５）。次に制御部１４Ａは、追加する実装に対応する仕様の選択をユーザから受け付ける（ステップＳ２０６）。そして、制御部１４Ａは、新規追加された実装を反映した仕様−実装系統図画面１４０１を表示部１１に再表示させる（ステップＳ２０２）。
【００７６】
ユーザによる画面操作が、実装コード作成画面の表示要求操作である場合（ステップＳ２０７；ＹＥＳ）、ユーザが選択した“実装ｎ”に対応する“仕様ｎ”の仕様情報の内容を組み入れた実装コード作成画面１６０１（図１６〜１８参照）を表示部１１に表示させる。なお、既に作成済みの“実装ｎ”が選択された場合には、制御部１４Ａは、実装コード記憶部１５から、当該“実装ｎ”に対応する実装コードを読み出し、その内容をコード入力エリア１６０２に記述した実装コード作成画面１６０１を表示する。
【００７７】
実装コード作成画面１６０１の表示中に、ユーザにより作成が完了した旨の所定操作（ここでは、ＯＫボタン１６０３の押下操作）が行われると（ステップＳ２０９；ＹＥＳ）、制御部１４Ａは、ユーザによる入力結果（プログラミング結果）を取得して（ステップＳ２１０）、実装コード作成画面１６０１を閉じる。そして、制御部１４Ａは、再度、ステップＳ２０３の処理を行う。
【００７８】
ユーザによる画面操作が、仕様−実装系統図画面１４０１のＯＫボタン１４０５の押下操作である場合（ステップＳ２０７；ＮＯ）、制御部１４Ａは、終了処理を実行する（ステップＳ２１１）。具体的には、新たに“実装ｎ”が追加された場合では、当該“実装ｎ”に対応する実装コードを仕様管理部１３を介して、実装コード記憶部１５に追加保存し、実装階層情報を更新する。あるいは、実装コード作成画面１６０１にて、既存の実装コードの内容が変更された場合には、制御部１４Ａは、当該変更内容が反映された実装コードを実装コード記憶部１５に上書き保存する。
【００７９】
以上のように、本実施形態のソフトウェア開発支援装置１Ａによれば、仕様−実装系統図画面１４０１を表示することで、ソフトウェア開発における実装コードの作成において、ユーザに対して、仕様（機能）の系統、既存の実装コードの系統、仕様と実装の対応関係が容易に理解できる環境を提供する。したがって、実装コードの作成効率の向上が図れる。
【００８０】
また、ユーザは、仕様−実装系統図画面１４０１を介して直感的な操作により、新たに追加する実装の階層や、仕様との対応関係を設定することができる。したがって、利便性がよい。
【００８１】
また、新たに追加した実装についての実装コード作成画面１６０１では、コード入力エリア１６０２において、対応する仕様情報の内容を予め記述したり、関連する他の実装コード間で共通するコード内容等を予め記述しておくこともできるため、ユーザは効率よくプログラミング作業を行うことができる。
【００８２】
なお、既存の実装を削除する場合、ユーザは、仕様−実装系統図画面１４０１で削除したい“実装ｎ”を示すアイコン１４０３を選択した後、キーボード等の削除キーを押下操作すればよい。この場合、先ず、仕様−実装系統図画面１４０１から当該“実装ｎ”を示すアイコン１４０３が消去される。また、対応する仕様−実装対応線も消去される。そして、ユーザにより、ＯＫボタン１４０５が押下操作されると、当該“実装ｎ”に対応する実装コードが実装コード記憶部１５から削除され、これに伴い実装階層情報も更新される。
【００８３】
（変形例）
図２０に示すソフトウェア開発支援装置１Ｂは、実施形態２のソフトウェア開発支援装置１Ａの変形例である。このソフトウェア開発支援装置１Ｂは、仕様書の作成、実装コードの作成をアシストする機能のみならず、試験ケースの作成もアシストする機能を備える。
【００８４】
試験ケース記憶部１９は、各実装コード毎の試験ケースを記憶する。試験ケースには、各試験ケースを一意に識別するためのＩＤ（試験ケースＩＤ）が、制御部１４Ｂによって割り振られている。試験ケース管理部２０は、各試験ケースの階層関係を示す情報（試験階層情報）を保持する。試験ケース管理部２０は、制御部１４Ｂからの要求に従って、試験ケース記憶部１９にアクセスし、試験ケースの読み出しや書き込み等を行う。また、試験ケース管理部２０は、新たな試験ケースが試験ケース記憶部１９に書き込まれた際など、必要に応じて試験階層情報の更新を行う。
【００８５】
実装−試験ケース対応管理部２１は、実装コード記憶部１５に保存されている実装コードと、試験ケース記憶部１９に保存されている試験ケースとの対応付けを管理する。実装−試験ケース対応管理部２１は、実装コードに割り振られた実装ＩＤと、試験ケースに割り振られた試験ケースＩＤと、を対応付けた実装−試験ケース対応情報を保持する。実装−試験ケース対応管理部２１は、実装コードや試験ケースが新たに追加された際など、必要に応じて、実装−試験ケース対応情報の更新を行う。
【００８６】
制御部１４Ｂは、制御部１４Ａと同等の処理を実行できるほか、ユーザによる試験ケース作成を支援するための様々な処理を実行する。例えば、制御部１４Ｂは、ユーザからの要求に応じて、図示しない実装−試験ケース系統図画面を表示部１１に表示させる。この実装−試験ケース系統図画面には、実装系統図と、試験ケースの系統を示す図（試験ケース系統図）と、が表示され、また、下位の階層の実装と試験ケースとの対応関係を明示する。
【００８７】
また、制御部１４Ｂは、試験ケースの内容をユーザに記述（設定）させるための試験ケース作成画面（図示せず）を表示する。ユーザは、実装−試験ケース系統図画面や試験ケース作成画面を介して、新規の試験ケースを作成したり、既存の試験ケースの更新や削除を行うことができる。
【００８８】
また、このソフトウェア開発支援装置１Ｂによれば、仕様や実装のある箇所の変更等による影響が及ぶ範囲を取得し、その取得結果に基づいて、対応する試験項目を抽出して、実施すべき試験の範囲をユーザに提示することができる。したがって、仕様や実装の変更等に伴う試験作業を効率よく行うことが可能になる。
【００８９】
なお、本発明は、上記各実施形態に限定されず、本発明の要旨を逸脱しない範囲での種々の変更は勿論可能である。
【００９０】
例えば、仕様書の作成において、仕様書作成画面７０１（図７参照）の代わりに、あるいは、これと併用して、図２１に示すような仕様書作成画面２１０１を表示するようにしてもよい。仕様書作成画面２１０１は、仕様ＩＤと機能名が表示されるタイトル表示エリアと、事前条件エリアと、事後条件エリアと、本体部エリアと、ボタン配置エリアと、から構成される。
【００９１】
事前条件エリア及び事後条件エリアは、ユーザが内容を直接にテキスト入力することができるエリアである。本体部エリアは、ユーザにより、フローチャートや、ＵＭＬ（Unified Modeling Language）によるアクティビティ図等を作図させるためのエリアである。図２１に示す例では、本体部エリアは、当該仕様を示すフローチャートを作図するためのエリアである。また、本例では、本体部エリアは、例えば、ＳＶＧ（Scalable Vector Graphics）フォーマットをサポートする図形描画ソフトウェアプログラムの実行により実現される。
【００９２】
ユーザは、事前条件エリア及び事後条件エリアの入力において、所定のキーワード（本例では、機能名、データ名）にタグ付けを行う。例えば、機能名には、＜＜機能１＞＞のように“＜＜  ＞＞”タグを付ける。また、データ名には、＜＄データ＄＞のように“＜＄  ＄＞”タグを付ける。本体部エリアの各図（分岐、プロセス）中においても同様に、ユーザは、機能名、データ名にタグ付けを行う。本体部エリアでは、さらに、ユーザは、事前条件、事後条件には、それぞれ所定のヘッダを付けることとする。例えば、事前条件には、“ＰＲ：”がヘッダとして付けられ、事後条件には、“ＰＳ：”がヘッダとして付けられることになる。また、排他関係を示す場合には、さらに、“ＥＸ：”がヘッダとして付けられる。例えば、事前条件に排他関係を記述する場合は、「ＰＲ：ＥＸ：排他条件１」となる。
【００９３】
なお、キーワードのタグ付けやその解除は、例えば、予め決められた所定の操作によって行われてもよい。例えば、ユーザにより、所望のキーワードがドラッグされると、反転表示させるようにし、この状態で、さらに、“Ｃｔｒｌ＋Ｆ”操作されることで、機能名（“＜＜  ＞＞”）タグを付与し、あるいは、“Ｃｔｒｌ＋Ｄ”操作されることで、データ名（＜＄データ＄＞）タグを自動的に付与するようにしてもよい。また、ユーザ操作により、タグ付けされたキーワード内にカーソルが置かれ、“Ｃｔｒｌ＋Ｒ”されることで、当該キーワードから、タグが外されるようにしてもよい。また、制御部１４等は、所定形式のメニュー画面を表示し、ユーザにより所望の項目（例えば、「キーワードのタグ付け」等）が選択されると、その選択された項目に対応する処理を実行するようにしてもよい。
【００９４】
以上のようにして、ユーザにより、事前条件、事後条件、本体部の各エリアにおける入力、作図が行われた後、ボタン配置エリアのチェックボタン２１０２が押下操作されると、制御部１４等は、事前条件エリア及び事後条件エリアの入力結果と、本体部エリアにおける各図中の入力内容と、に整合が取れているか否かを判定する。
【００９５】
例えば、制御部１４等は、事前条件エリアの入力内容（入力テキスト）に含まれるキーワードと、本体部エリアの各図中の入力内容に含まれる、“ＰＲ：”を付したキーワードとを比較し、双方過不足ないか否かをチェックする。また、制御部１４等は、事後条件エリアの入力内容に含まれるキーワードと、本体部エリアの各図中の入力内容に含まれる、“ＰＳ：”を付したキーワードとを比較し、双方過不足ないか否かをチェックする。
【００９６】
何れのチェックにおいても、過不足なければ、整合が取れているとして、制御部１４等は、“整合ＯＫです”等のメッセージを表示部１１に表示させる。一方、何れかのチェックにおいて、過不足がある場合には、整合が取れていないとして、制御部１４等は、その旨を示すエラーメッセージを表示部１１に表示させる。その際、例えば、“＜＄データＡ＄＞に関する事前条件に抜けがあります！！”等、具体的にエラーの内容が判るように表示してもよい。
【００９７】
以上のチェックの後、ユーザにより、ボタン配置エリアのＯＫボタン２１０３が押下操作されると、制御部１４等は、事前条件、事後条件及び本体部の各エリアの入力内容等を取得して保持すると共に、取得した内容を仕様系統図画面４０１に反映する。なお、ボタン配置エリアのキャンセルボタン２１０４が押下操作されると、ユーザの入力内容は、全て破棄される（無効となる）。
【００９８】
以上のように、当該仕様書の記述内容をチェックすることができるので、作業性の向上を図ることができ、仕様記述の漏れや矛盾の発生を防止できるので、品質の向上も図ることができる。
【００９９】
また、仕様系統図の表示方法も様々である。例えば、図２２に示す詳細仕様系統図画面２２０１のように、関連する複数の仕様（機能）について、その内容が判る態様で表示するようにしてもよい。この詳細仕様系統図画面２２０１へは、例えば、仕様系統図画面４０１において、ユーザにより、所望の仕様（機能）を示すアイコン４０２が選択され、所定の操作が行われることで遷移する。
【０１００】
図２２の詳細仕様系統図画面２２０１は、仕様系統図画面４０１において、ユーザにより、ＩＤが１．３の仕様（機能３）が選択され、所定の操作が行われたことで表示されたものとする。かかる操作が行われると、制御部１４等は、機能３における機能名と、データ名と、をそれぞれキーワードにして、関連する機能（仕様）を抽出する。そして、抽出した各機能毎に、機能名と、データ名と、をそれぞれキーワードにして、さらに、関連する機能を抽出する。また、後述するように、詳細仕様系統図画面２２０１上から仕様書作成画面２１０１に遷移することができる。その場合、遷移した仕様書作成画面２１０１にて、ユーザにより編集操作が行われ、ＯＫボタン２１０３が押下されると、当該編集内容が確定されると共に、詳細仕様系統図画面２２０１へ再度遷移する。この際、制御部１４等は、上記同様に、関連する機能の抽出を行う。
【０１０１】
以下、機能名をキーワードにして抽出する場合について説明する。制御部１４等は、事前条件、事後条件の記述から、各条件の１項目毎に、その中で登場した機能名をチェックする。複数の機能名が登場する場合には、その組み合わせの数だけ、関連する候補のペアを抽出する。図２２の例においては、機能３の事前条件には、“<<機能３>を>実行中は<<機能１>>、<<機能２>>を実行しない。”と記述されている。したがって、制御部１４等は、関連付け候補のペアとして、機能３と機能１、 機能３と機能２、機能１と機能２をそれぞれ抽出する。そして、制御部１４等は、各ペア毎に、図２２に示すように、結線表示する。
【０１０２】
ここで、制御部１４等は、本体部のタグ付けされたキーワードや排他関係を示すヘッダの情報等により、依存関係であるか排他関係であるかを判断し、結線する線種を決定して描画する。これにより、例えば、排他関係を示す結線２２０２〜２２０４が描画される。なお、上記の関連付け候補のペアの抽出方法では、意図しないペア（機能１と機能２）が抽出されてしまい、結果として、機能１と機能２との間に不要な結線２２０４が描画されるが、ユーザによる結線の変更操作により、適宜、削除可能であるものとする。また、依存関係の場合、矢線の矢印の向きは不定（後で、ユーザが決定する）とし、図２２に示すように、双方に矢印無しの結線２２０５で描画されるものとする。
【０１０３】
データ名をキーワードにして抽出する場合、制御部１４等は、同一のデータ名を、事前条件、事後条件の少なくとも一方に持つ機能同士を関連付け候補のペアとする。
【０１０４】
なお、結線の箇所については、制御部１４等は、結線を決定する要因となったキーワードが属する領域（事前条件、事後条件）から線が出るように描画する。事前条件、事後条件双方存在する場合は、事前条件を優先する。
【０１０５】
また、制御部１４等は、この詳細仕様系統図画面２２０１上で、ユーザによる所定操作（例えば、編集対象の機能の記述上で右クリックしてポップアップメニューを出し、そこから仕様編集を選択する等）が行われると、対応する仕様書作成画面２１０１を表示する。これにより、ユーザは、仕様書作成画面２１０１上で機能の内容の編集、記述内容の整合性のチェックを行うことができる。仕様書作成画面２１０１にて、ＯＫボタン２１０３が押下され、編集内容が確定されると、詳細仕様系統図画面２２０１に戻るが、その際、制御部１４等により、前述の関連する機能の抽出と関連する機能間の結線表示が再度行われる。仕様の更新等により新たに関係が発生することもあり、そのような場合には、ユーザは、新たに関連することになった機能の見直しのために再び仕様書作成画面２１０１を開いて内容を編集、チェック、確定する作業を行う。こうして順次、全体の仕様を確定していく。
【０１０６】
このように、詳細仕様系統図画面２２０１が表示されることで、ユーザは、各機能間の関係が容易に把握でき、また、その関係を辿って、見直しが必要となった機能について仕様書作成画面２１０１を開き、当該機能（仕様）の内容を編集し、記述内容の整合性のチェックを行うことができるため、作業性の向上を図ることができ、仕様記述の漏れや矛盾の発生を防止できるので、品質の向上も図ることができる。
【０１０７】
また、上記実施形態のソフトウェア開発支援装置１、１Ａ、１Ｂが実行したプログラムを、既存のパーソナルコンピュータ（ＰＣ）等に適用することで、当該ＰＣを本発明に係るソフトウェア開発支援装置として機能させることも可能である。
【０１０８】
このようなプログラムの配布方法は任意であり、例えば、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto Optical Disk）、メモリカードなどのコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネットなどの通信ネットワークを介して配布してもよい。  
【０１０９】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【符号の説明】
【０１１０】
１、１Ａ、１Ｂ  ソフトウェア開発支援装置
１０  入力部
１１  表示部
１２  仕様記憶部
１３  仕様管理部
１４、１４Ａ、１４Ｂ  制御部
１５  実装コード記憶部
１６  テンプレート記憶部
１７  実装管理部
１８  仕様−実装対応管理部
１９  試験ケース記憶部
２０  試験ケース管理部
２１  実装−試験ケース対応管理部
【図１】
0005984358.tif 000002
【図２】
0005984358.tif 000003
【図３】
0005984358.tif 000004
【図４】
0005984358.tif 000005
【図５】
0005984358.tif 000006
【図６】
0005984358.tif 000007
【図７】
0005984358.tif 000008
【図８】
0005984358.tif 000009
【図９】
0005984358.tif 000010
【図１０】
0005984358.tif 000011
【図１１】
0005984358.tif 000012
【図１２】
0005984358.tif 000013
【図１３】
0005984358.tif 000014
【図１４】
0005984358.tif 000015
【図１５】
0005984358.tif 000016
【図１６】
0005984358.tif 000017
【図１７】
0005984358.tif 000018
【図１８】
0005984358.tif 000019
【図１９】
0005984358.tif 000020
【図２０】
0005984358.tif 000021
【図２１】
0005984358.tif 000022
【図２２】
0005984358.tif 000023