(57)【要約】【課題】モジュール及びモジュール間の結合情報により記述されたソフトウェアの動作仕様に基づいてソースコードを自動的に生成するソフトウェア開発支援装置を提供することにある。【解決手段】本発明に係るソフトウェア開発支援装置１は、一連のデータ処理を表すモジュールとモジュール間のデータの受け渡しを表す結合情報とを記憶するソフトウェア仕様記憶部１１と、モジュールを複製してソフトウェア仕様記憶部１１に記憶させるモジュール複製部２１と、複製されたモジュールに固有の情報であってモジュールが複製される時点で変更される必要がある情報を検出するモジュール情報検出部２２と、検出された当該情報を変更する手段を提供するモジュール情報変更部２３と、ソフトウェア仕様記憶部１１に記憶されたモジュール及びモジュール間の結合情報に基づいてソースコードを生成するソースコード生成部２７とを備える。【選択図】図１
2010165222.tif 000002
【特許請求の範囲】
【請求項１】
入力データと、出力データと、前記入力データを処理して前記出力データを生成するデータ処理部とを有するモジュール及び前記モジュール間のデータの受け渡しを表す結合情報を記憶するソフトウェア仕様記憶部（１１）と、
前記ソフトウェア仕様記憶部に記憶される任意の前記モジュールを複製して、複製された前記モジュール（以下、複製モジュールという。）を前記ソフトウェア仕様記憶部に記憶させるモジュール複製部（２１）と、
前記複製モジュールによって保持される情報であって、前記複製モジュールの複製元である前記モジュール（以下、複製元モジュールという。）によって保持される情報と異なる内容を有する必要がある情報を検出するモジュール情報検出部（２２）と、
前記複製モジュールによって保持される情報であって、前記モジュール情報検出部によって検出された情報を変更する手段を提供するモジュール情報変更部（２３）と、
前記ソフトウェア仕様記憶部に記憶される前記モジュール及び前記結合情報に基づいてソースコードを生成するソースコード生成部（２７）と
を備えるソフトウェア開発支援装置（１）。
【請求項２】
前記複製モジュールによって保持される情報であって、前記モジュール情報検出部によって検出された情報を表示する手段を提供するモジュール情報表示部（２４）をさらに備える請求項１に記載のソフトウェア開発支援装置。
【請求項３】
前記モジュール情報表示部は、前記複製モジュールによって保持される情報であって、前記モジュール情報検出部によって検出された情報を、前記モジュール情報検出部によって検出されなかった情報とは異なる態様で表示する手段を提供する請求項２に記載のソフトウェア開発支援装置。
【請求項４】
前記複製モジュールによって保持される情報であって、前記モジュール情報検出部によって検出されると共に前記モジュール情報変更部によって変更された情報と、前記モジュール情報変更部によって変更される前の情報との対応関係を表示する手段を提供するモジュール情報対応表示部（２５）をさらに備える請求項１から３のいずれかに記載のソフトウェア開発支援装置。
【請求項５】
前記モジュール情報変更部は、前記複製モジュールによって保持される情報であって、前記モジュール情報検出部によって検出されると共に前記モジュール情報変更部によって変更された情報の正当性を評価する請求項１から４のいずれかに記載のソフトウェア開発支援装置。
【請求項６】
前記複製モジュールによって保持され、前記モジュール情報検出部によって検出された情報であって、前記複製元モジュールによって保持される情報と同じ内容を有することができる情報を設定することができるモジュール情報設定部（２６）をさらに備える請求項１から５のいずれかに記載のソフトウェア開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソフトウェア開発支援装置に関する。
【背景技術】
【０００２】
現在、ソフトウェアの開発においては、ソフトウェアの動作仕様が記述されたデータフロー図に基づいてソースコードを自動的に生成するソフトウェア開発支援装置が用いられる場合がある。データフロー図には、一連のデータ処理を表すモジュールと、モジュール間のデータの受け渡しを表す結合情報とが記述される。
【０００３】
例えば、特許文献１（特開２００８−１７１３０５号公報）に開示されているプログラム開発支援装置では、前述のモジュールに相当する機能ブロックと、機能ブロック間のデータの受け渡しを示す結合情報とが記述されるデータフロー図を記憶する手段が備えられている。当該プログラム開発支援装置は、データフロー図に基づいて、各機能ブロックに対応するコードを生成すると共に、結合情報に従って各機能ブロックを順次追跡することで、実行可能なソースコードを自動的に生成する。その結果、当該プログラム開発支援装置は、ソフトウェア開発者の作業量を軽減して、効率的なソフトウェア開発を実現することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、データ処理に同一のアルゴリズムを使用する複数のモジュールがデータフロー図に含まれる場合、当該データフロー図から自動的に生成されるソースコードには、同一の処理を実行するコードが複数含まれることになる。この場合、同一のアルゴリズムを使用する複数のモジュールを１つの共通多重化モジュールで代用することで、ソースコードに含まれる同一の処理を実行するコードの重複が取り除かれる。その結果、ソースコードのサイズの肥大化が防止されると共に、ソースコードをコンパイルして生成されるプログラムのサイズの肥大化が防止される。この共通多重化モジュールを利用するための手法として、データフロー図を記述する際に、既存のモジュールを複製して得られるモジュールを利用する手法が考えられる。その際、複製されたモジュールによって保持されるモジュール名、外部入力データ名及び外部出力データ名などのモジュールに固有の情報は、複製元のモジュールによって保持されるモジュールに固有の情報への上書きを防止するために、モジュールが複製される時点で変更される必要がある。その理由は、複製されたモジュールは、複製元のモジュールとは異なる目的で使用されるため、これらのモジュールは互いに一意に識別されなければならないからである。
【０００５】
そこで、本発明の目的は、モジュールが複製される際に変更される必要があるモジュールに固有の情報の抽出漏れ、変更漏れ及び変更ミスを防止する機能を備えるソフトウェア開発支援装置を提供することにある。
【課題を解決するための手段】
【０００６】
第１発明に係るソフトウェア開発支援装置は、ソフトウェア仕様記憶部と、モジュール複製部と、モジュール情報検出部と、モジュール情報変更部と、ソースコード生成部とを備える。ソフトウェア仕様記憶部は、モジュール及び結合情報を記憶する。モジュールは、入力データと、出力データと、入力データを処理して出力データを生成するデータ処理部とを有する。結合情報は、モジュール間のデータの受け渡しを表す。モジュール複製部は、ソフトウェア仕様記憶部に記憶される任意のモジュールを複製して、複製されたモジュール（以下、複製モジュールという。）をソフトウェア仕様記憶部に記憶させる。モジュール情報検出部は、複製モジュールによって保持される情報であって、複製モジュールの複製元であるモジュール（以下、複製元モジュールという。）によって保持される情報と異なる内容を有する必要がある情報を検出する。なお、当該モジュール情報検出部によって検出される情報とは、モジュール名、外部入力データ名及び外部出力データ名などの複製モジュールに固有の情報であって、モジュールが複製される時点で変更される必要がある情報（以下、複製モジュール被変更情報という。）である。モジュール情報変更部は、複製モジュールによって保持される情報であって、モジュール情報検出部によって検出された情報を変更する手段を提供する。すなわち、当該モジュール情報変更部は、モジュール情報検出部によって検出された複製モジュール被変更情報を変更する手段を提供する。ソースコード生成部は、ソフトウェア仕様記憶部に記憶されるモジュール及び結合情報に基づいてソースコードを生成する。なお、当該ソースコード生成部によって生成されるソースコードとは、実行可能なソフトウェアに変換することができるソースコードである。
【０００７】
本発明によれば、複製元モジュールによって保持される複製元モジュールに固有の情報への上書きを防止するために、複製モジュール被変更情報が自動的に検出され、ソフトウェア開発者に通知される。これにより、ソフトウェア開発者は、モジュールを複製する際に、複製モジュール被変更情報の抽出漏れ、変更漏れ及び変更誤りを防止することができ、ソフトウェア開発の作業効率を向上させることができる。
【０００８】
第２発明に係るソフトウェア開発支援装置は、第１発明に係るソフトウェア開発支援装置であって、モジュール情報表示部をさらに備える。モジュール情報表示部は、複製モジュールによって保持される情報であって、モジュール情報検出部によって検出された情報を表示する手段を提供する。すなわち、当該モジュール情報表示部は、モジュール情報検出部によって検出された複製モジュール被変更情報を表示する手段を提供する。
【０００９】
本発明によれば、モジュール情報検出部によって検出された複製モジュール被変更情報がソフトウェア開発用端末の画面上などに一括して表示される。これにより、ソフトウェア開発者は、複製モジュール被変更情報を容易に特定することができ、複製モジュール被変更情報の変更漏れ及び変更誤りをより確実に防止することができる。
【００１０】
第３発明に係るソフトウェア開発支援装置は、第２発明に係るソフトウェア開発支援装置であって、モジュール情報表示部は、複製モジュールによって保持される情報であって、モジュール情報検出部によって検出された情報を、モジュール情報検出部によって検出されなかった情報とは異なる態様で表示する手段を提供する。すなわち、当該モジュール情報表示部は、モジュール情報検出部によって検出された複製モジュール被変更情報を、複製モジュール被変更情報以外の情報とは異なる態様で表示する手段を提供する。
【００１１】
本発明によれば、モジュール情報検出部によって検出された複製モジュール被変更情報がソフトウェア開発用端末の画面上などに一括して表示される際に、複製モジュール被変更情報を表す文字列が複製モジュール被変更情報以外の情報を表す文字列とは異なる態様で表示される。これにより、ソフトウェア開発者は、複製モジュール被変更情報を容易に視認することができ、複製モジュール被変更情報の変更漏れ及び変更誤りをより確実に防止することができる。
【００１２】
第４発明に係るソフトウェア開発支援装置は、第１発明から第３発明のいずれかに係るソフトウェア開発支援装置であって、モジュール情報対応表示部をさらに備える。モジュール情報対応表示部は、複製モジュールによって保持される情報であって、モジュール情報検出部によって検出されると共にモジュール情報変更部によって変更された情報と、モジュール情報変更部によって変更される前の情報との対応関係を表示する手段を提供する。すなわち、当該モジュール情報対応表示部は、モジュール情報変更部によって変更された複製モジュール被変更情報と、変更される前の複製モジュール被変更情報との対応関係を表示する手段を提供する。
【００１３】
本発明によれば、ソフトウェア開発者によって変更された複製モジュール被変更情報と、変更される前の複製モジュール被変更情報との対応関係が、ソフトウェア開発用端末の画面上などに一括して表示される。これにより、ソフトウェア開発者は、変更された複製モジュール被変更情報を容易に確認することができ、複製モジュール被変更情報の変更漏れ及び変更誤りをより確実に防止することができる。
【００１４】
第５発明に係るソフトウェア開発支援装置は、第１発明から第４発明のいずれかに係るソフトウェア開発支援装置であって、モジュール情報変更部は、複製モジュールによって保持される情報であって、モジュール情報検出部によって検出されると共にモジュール情報変更部によって変更された情報の正当性を評価する。すなわち、当該モジュール情報変更部は、モジュール情報変更部によって変更された複製モジュール被変更情報の正当性を評価する。
【００１５】
本発明によれば、ソフトウェア開発者によって変更された複製モジュール被変更情報の正当性が自動的に評価される。例えば、複製モジュール被変更情報が変更されていない場合又は複製モジュール被変更情報が記述されていない場合に、複製モジュール被変更情報が正当でない旨がソフトウェア開発者に通知される。これにより、ソフトウェア開発者は、複製モジュール被変更情報の変更漏れ及び変更誤りをより確実に防止することができる。
【００１６】
第６発明に係るソフトウェア開発支援装置は、第１発明から第５発明のいずれかに係るソフトウェア開発支援装置であって、モジュール情報設定部をさらに備える。モジュール情報設定部は、複製モジュールによって保持され、モジュール情報検出部によって検出された情報であって、複製元モジュールによって保持される情報と同じ内容を有することができる情報を設定することができる。すなわち、当該モジュール情報設定部は、複製元モジュールが有する複製元モジュールに固有の情報と同じ内容を有することができる複製モジュール被変更情報を設定することができる。
【００１７】
本発明によれば、モジュール情報検出部によって検出された複製モジュール被変更情報であって、複製元モジュールが有する複製元モジュールに固有の情報と同じ内容を有することができる情報を、ソフトウェア開発者が設定することができる。これにより、ソフトウェア開発者は、ソフトウェアの仕様に応じて、モジュールを複製する際に複製元モジュールに固有の情報と同じ内容を有する複製モジュールを作成することができ、ソフトウェア開発をより柔軟に行うことができる。
【発明の効果】
【００１８】
第１発明に係るソフトウェア開発支援装置では、ソフトウェア開発者は、モジュールを複製する際に、複製モジュール被変更情報の抽出漏れ、変更漏れ及び変更誤りを防止することができ、ソフトウェア開発の作業効率を向上させることができる。
【００１９】
第２発明に係るソフトウェア開発支援装置では、ソフトウェア開発者は、複製モジュール被変更情報を容易に特定することができ、複製モジュール被変更情報の変更漏れ及び変更誤りをより確実に防止することができる。
【００２０】
第３発明に係るソフトウェア開発支援装置では、ソフトウェア開発者は、複製モジュール被変更情報を容易に視認することができ、複製モジュール被変更情報の変更漏れ及び変更誤りをより確実に防止することができる。
【００２１】
第４発明に係るソフトウェア開発支援装置では、ソフトウェア開発者は、変更された複製モジュール被変更情報を容易に確認することができ、複製モジュール被変更情報の変更漏れ及び変更誤りをより確実に防止することができる。
【００２２】
第５発明に係るソフトウェア開発支援装置では、ソフトウェア開発者は、複製モジュール被変更情報の変更漏れ及び変更誤りをより確実に防止することができる。
【００２３】
第６発明に係るソフトウェア開発支援装置では、ソフトウェア開発者は、ソフトウェアの仕様に応じて、モジュールを複製する際に複製元モジュールに固有の情報と同じ内容を有する複製モジュールを作成することができ、ソフトウェア開発をより柔軟に行うことができる。
【図面の簡単な説明】
【００２４】
【図１】本実施形態に係るソフトウェア開発支援装置のブロック図である。
【図２】本実施形態に係るモジュールの概念図である。
【図３】本実施形態に係るデータフロー図の概念図である。
【図４】本実施形態に係るソフトウェア開発支援装置が備える表示画面に表示されるデータフロー図編集画面である。
【図５】本実施形態に係るソフトウェア開発支援装置が備える表示画面に表示されるモジュール情報編集画面である。
【図６】本実施形態に係るソフトウェア開発支援装置が備える表示画面に表示されるモジュール情報編集エラー画面である。
【図７】本実施形態に係るソフトウェア開発支援装置が備える表示画面に表示されるモジュール情報再編集画面である。
【図８】本実施形態に係るソフトウェア開発支援装置が備える表示画面に表示されるモジュールプロセス画面である。
【図９】本実施形態に係るソフトウェア開発支援装置が備える表示画面に表示されるモジュールプロセス階層画面である。
【図１０】本実施形態に係るソフトウェア開発支援装置が備える表示画面に表示されるモジュール入出力一覧画面である。
【図１１】本実施形態に係るソフトウェア開発支援装置の動作の流れを表すフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明の一実施形態に係るソフトウェア開発支援装置に関して詳述する。本実施形態に係るソフトウェア開発支援装置の構成に関して説明する前に、本実施形態に係るソフトウェア開発支援装置で使用されるモジュール及びデータフロー図に関して説明する。
【００２６】
一般的なソフトウェア開発モデルであるウォーターフォールモデルでは、ソフトウェアの開発作業は、要求定義、設計、プログラミング、テストの順で行われる。「要求定義」の段階では、ソフトウェアが備えるべき機能の調査及び分析作業が行われる。「設計」の段階では、要求定義の結果に基づいてソフトウェアの動作仕様が詳細かつ具体的に記述される。「プログラミング」の段階では、ソフトウェアの動作仕様に基づいてソースコードが作成される。「テスト」の段階では、作成されたソースコードの動作確認及び修正が行われる。本実施形態に係るソフトウェア開発支援装置を用いたソフトウェア開発では、前述の「設計」の段階で記述されるソフトウェアの動作仕様が、モジュール及びモジュール間の結合情報から構成されるデータフロー図の形式で表される。モジュールは、入力データと、出力データと、入力データを処理して出力データを生成するデータ処理部とを有するソフトウェアの構成要素を表す。結合情報は、モジュール間のデータの受け渡しによるモジュール間の結合関係を表す。
【００２７】
本実施形態に係るソフトウェア開発支援装置で使用されるモジュールの概念図を図２に示す。図２において、「モジュールプロセス１」は、モジュールのデータ処理部としての機能を有するモジュールプロセスの名前（以下、モジュールプロセス名という。）を表す。モジュールプロセスの例としては、Ｃ言語及びＪＡＶＡ（登録商標）に代表される高級プログラミング言語における関数が挙げられる。また、「データフロー入力１」及び「データフロー入力２」は、モジュールの入力データが格納される変数の名前（以下、入力データ変数名という。）を表し、「データフロー出力１」及び「データフロー出力２」は、モジュールの出力データが格納される変数の名前（以下、出力データ変数名という。）を表す。「Ｉ／Ｆフロー入力１」及び「Ｉ／Ｆフロー入力２」は、それぞれデータフロー入力１及びデータフロー入力２によって示される変数の型を表し、「Ｉ／Ｆフロー出力１」及び「Ｉ／Ｆフロー出力２」は、それぞれデータフロー出力１及びデータフロー出力２によって示される変数の型を表す。ここで、変数の型とは、変数の使用目的及び用途などを簡潔に表す文字列及び記号を指す。「ローカル変数１」はモジュールプロセス１内部でのみ使用されるデータが格納される変数の名前（以下、ローカル変数名という。）を表す。
【００２８】
次に、本実施形態に係るソフトウェア開発支援装置で使用されるデータフロー図の概念図を図３に示す。図３において、モジュール１のデータフロー出力１によって示される変数は、モジュール２のデータフロー入力１' によって示される変数として使用される。また、モジュール１のデータフロー出力２によって示される変数は、モジュール３のデータフロー入力１" によって示される変数として使用される。このようなモジュール間の結合関係の例としては、高級プログラミング言語で記述されたソースコードに含まれる、関数の呼び出し側が一の関数の戻り値を他の関数の引数として使用する処理を表すコードブロックが挙げられる。
【００２９】
＜構成＞
本実施形態に係るソフトウェア開発支援装置１の構成を表すブロック図を図１に示す。ソフトウェア開発支援装置１としては、一般的なパーソナルコンピュータが用いられる。ソフトウェア開発支援装置１は、出力装置２と、入力装置３と、コンピュータ本体４とを主な構成要件として備える。また、コンピュータ本体４は、ＣＰＵ（中央演算処理装置）５と、ＲＡＭ（Random Access Memory）６と、ＨＤＤ（Hard Disk Drive）７とを備える。
【００３０】
以下、ソフトウェア開発支援装置１が備えるこれらの構成要素について説明する。
【００３１】
（１）出力装置
出力装置２は、各種画面を表示する。具体的には、出力装置２は、データフロー図編集画面（図４）、モジュール情報編集画面（図５）及びモジュール入出力一覧画面（図１０）などを表示する。出力装置２としては、コンピュータ本体４に接続される液晶ディスプレイが用いられる。
【００３２】
（２）入力装置
入力装置３は、出力装置２に表示された情報に基づいてソフトウェア開発者が各種操作を行う際に用いられる。具体的には、ソフトウェア開発者は、入力装置３を用いて後述するデータフロー図の編集、モジュールの複製及びモジュール情報の変更などを行う。入力装置３としては、コンピュータ本体４に接続されるキーボード及びマウスが用いられる。
【００３３】
（３）コンピュータ本体
コンピュータ本体４は、ソフトウェア開発支援装置１が備える各種機能を実現する。具体的には、コンピュータ本体４に内蔵されているＨＤＤ７は、後述するソフトウェア仕様記憶部１１として機能する。また、コンピュータ本体４に内蔵されているＣＰＵ５は、後述するモジュール複製部２１、モジュール情報検出部２２、モジュール情報変更部２３、モジュール情報表示部２４、モジュール情報対応表示部２５、モジュール情報設定部２６及びソースコード生成部２７としての機能を有する。ＣＰＵ５が有するこれらの機能は、プログラムの形式でＨＤＤ７に記憶されている。ＣＰＵ５は、これらのプログラムをＲＡＭ６に読み出した後に、プログラムを実行して情報の演算処理を行うことで、前述の各種機能を実現する。以下、コンピュータ本体４が実現するこれらの機能について説明する。
【００３４】
（３−１）ソフトウェア仕様記憶部
ソフトウェア仕様記憶部１１は、データフロー図を記憶する。
【００３５】
ソフトウェア開発者は、出力装置２の画面上に表示されるデータフロー図編集画面上で任意のデータフロー図を作成及び編集することができる。データフロー図編集画面の例を図４に示す。ソフトウェア開発者は、データフロー図編集画面上でデータフロー図を作成及び編集した後に「保存」操作を行うことで、ソフトウェア仕様記憶部１１にデータフロー図を記憶させることができる。
【００３６】
（３−２）モジュール複製部
モジュール複製部２１は、ソフトウェア仕様記憶部１１に記憶されているデータフロー図に含まれる任意のモジュールを複製して、複製モジュールをソフトウェア仕様記憶部１１に記憶させる。
【００３７】
モジュール複製部２１が有する機能を使用するためには、ソフトウェア開発者は出力装置２の画面上に表示されるデータフロー図編集画面上でモジュールの複製操作を行う。具体的には、ソフトウェア開発者は、最初にデータフロー図編集画面上に表示されている複製対象のモジュール（図４において点線で囲まれている領域）を選択して「コピー」操作（図４において「コピー」メニューを選択）を行う。これにより、複製モジュールが一時的にＲＡＭ６上に記憶される。次に、ソフトウェア開発者は、データフロー図編集画面上で「貼り付け」操作（図４において「貼り付け」メニューを選択）を行う。このとき、データフロー図編集画面上に複製モジュールが表示される前に、後述するモジュール情報検出部２２が複製モジュール被変更情報を検出し、後述するモジュール情報変更部２３、モジュール情報表示部２４及びモジュール情報対応表示部２５が図５に示されるモジュール情報編集画面を出力装置２の画面上に表示する。次に、ソフトウェア開発者は、後述するようにモジュール情報編集画面に変更した複製モジュール被変更情報を入力して「確認」ボタンを押す。その結果、ＲＡＭ６上に記憶されている複製モジュールがソフトウェア仕様記憶部１１に記憶され、データフロー図編集画面上に複製モジュールが表示される。
【００３８】
（３−３）モジュール情報検出部
モジュール情報検出部２２は、複製モジュール被変更情報を検出する。複製モジュール被変更情報は、複製モジュールのモジュールプロセス名、全ての入力データ変数名及び全ての出力データ変数名を指す。複製モジュール被変更情報にはローカル変数名は含まれない。
【００３９】
（３−４）モジュール情報変更部
モジュール情報変更部２３は、モジュール情報編集画面を出力装置２の画面上に表示する。モジュール情報編集画面は、モジュール情報検出部２２によって検出された複製モジュール被変更情報を、ソフトウェア開発者が変更するためのユーザインターフェイスを有する。また、モジュール情報変更部２３は、ソフトウェア開発者によって変更された複製モジュール被変更情報の正当性を評価する機能を有する。
【００４０】
ソフトウェア開発者が、図２で示されるモジュールを複製する際に表示されるモジュール情報編集画面を図５に示す。図５において、「変更前のモジュールプロセス名」の欄には複製元モジュールのモジュールプロセス名である「モジュールプロセス１」が記述され、「変更前のデータ変数」の欄には複製元モジュールの全ての入力データ変数名及び全ての出力データ変数名である「データフロー入力１」、「データフロー入力２」、「データフロー出力１」、「データフロー出力２」が記述されている。ソフトウェア開発者は、「変更後のモジュールプロセス名」の空欄に複製モジュールのモジュールプロセス名を入力し、「変更後のデータ変数」の空欄に複製モジュールの全ての入力データ変数名及び全ての出力データ変数名を入力する。次いで、ソフトウェア開発者は「確認」ボタンを押す。このとき、ソフトウェア開発者によってモジュール情報編集画面に入力された項目の正当性が評価される。具体的には、モジュール情報編集画面に空欄が残っている場合や、「変更後のモジュールプロセス名」及び「変更後のデータ変数」の欄に記載されている名前が、「変更前のモジュールプロセス名」及び「変更前のデータ変数」の欄に記載されている名前と同一である場合は、入力された項目が正当でないと判断される。モジュール情報編集画面に入力された項目が正当でないと判断された場合、図６で示されるモジュール情報編集エラー画面が表示され、ソフトウェア開発者に複製モジュール被変更情報が適切に変更されていない旨が通知される。ソフトウェア開発者がモジュール情報編集エラー画面の「確認」ボタンを押した後、図７で示されるモジュール情報再編集画面が表示される。モジュール情報再編集画面では、複製モジュール被変更情報が適切に変更されていなかった箇所が強調して表示される。ソフトウェア開発者は、当該箇所に複製モジュール被変更情報を再入力する。ソフトウェア開発者がモジュール情報再編集画面の「確認」ボタンを押した後、モジュール情報再編集画面に入力された項目の正当性が再び評価される。
【００４１】
（３−５）モジュール情報表示部
モジュール情報表示部２４は、モジュール情報検出部２２によって検出された複製モジュール被変更情報を表示する機能を有するモジュール情報編集画面又はモジュール情報再編集画面を出力装置２の画面上に表示する。
【００４２】
（３−６）モジュール情報対応表示部
モジュール情報対応表示部２５は、モジュール情報検出部２２によって検出された複製モジュール被変更情報であって、モジュール情報変更部２３を用いてソフトウェア開発者によって変更された複製モジュール被変更情報と、変更される前の複製モジュール被変更情報との対応関係を、表形式で表示するモジュール情報編集画面又はモジュール情報再編集画面を出力装置２の画面上に表示する。
【００４３】
（３−７）モジュール情報設定部
モジュール情報設定部２６は、モジュール入出力一覧画面を出力装置２の画面上に表示する。モジュール入出力一覧画面は、モジュール情報検出部２２によって検出された複製モジュール被変更情報であって、複製元モジュールと同じ内容を有することができる入力データ変数名及び出力データ変数名を、ソフトウェア開発者が設定することができるユーザインターフェイスを有する。
【００４４】
図２で表されるモジュールを複製する際に、モジュール情報編集画面上で「データフロー出力１」の変数名の変更を要求されない仕様に設定する場合について説明する。最初に、ソフトウェア開発者は、データフロー図編集画面上に表示されている複製対象のモジュールのモジュールプロセスを選択して、図８で示されるモジュールプロセス画面を出力装置２の画面上に表示させる。次に、モジュールプロセス画面上に表示される「入出力設定」ボタンを押して、図９で示されるモジュールプロセス階層画面を出力装置２の画面上に表示させる。次に、モジュールプロセス階層画面上で複製対象のモジュールのモジュールプロセスを選択して「入出力設定」ボタンを押して、図１０で示されるモジュール入出力一覧画面を出力装置２の画面上に表示させる。図１０において、「データ変数」の列にはモジュールが有する全ての入力変数データ名、全ての出力変数データ名及び全てのローカル変数名が記入される。また、「コピー禁止／許可」の列には、モジュールの複製時に入力変数データ名及び出力変数データ名の変更が要求される場合には「コピー禁止」と表示され、変更が要求されない場合には「コピー許可」と表示される。なお、ローカル変数名はモジュールの複製時に変更される必要がないため、常に「−」と表示される。ソフトウェア開発者は、モジュール入出力一覧画面から、「データフロー出力１」の行を選択する。当該行が選択された状態で、ソフトウェア開発者が「コピー禁止／許可切替」ボタンを押すことで、「データフロー出力１」の「コピー禁止／許可」の欄が「コピー禁止」から「コピー許可」に変更される。この状態で、ソフトウェア開発者が「確認」ボタンを押すことで、当該変更が確定される。その結果、ソフトウェア開発者は、当該モジュールを複製する際にモジュール情報編集画面で「データフロー出力１」の変数名を変更せずに複製モジュールを生成することができる。
【００４５】
（３−８）ソースコード生成部
ソースコード生成部２７は、ソフトウェア仕様記憶部１１に記憶されているデータフロー図に基づいてソースコードを生成する。ソフトウェア開発者は、生成されたソースコードを実行可能なソフトウェアに変換することができる。
【００４６】
＜動作の流れ＞
次に、本実施形態に係るソフトウェア開発支援装置１の動作の流れについて説明する。図１１は、ソフトウェア開発者がモジュールを複製する操作を行う際のソフトウェア開発支援装置１の動作の流れを表すフローチャートである。なお、ソフトウェア開発支援装置１に備えられるソフトウェア仕様記憶部１１には、モジュールを１つ以上含むデータフロー図が予め記憶されているものとする。
【００４７】
ステップＳ１：モジュール複製部２１は、ソフトウェア仕様記憶部１１に記憶されているデータフロー図に含まれる複製元モジュールを複製して、複製モジュールをＲＡＭ６に一時的に記憶する。次に、ステップＳ２に進む。
【００４８】
ステップＳ２：モジュール情報検出部２２は、図１０に示されるモジュール入出力一覧画面上で「コピー許可」に設定された入力データ変数名及び出力データ変数名を取得する。次に、ステップＳ３に進む。
【００４９】
ステップＳ３：モジュール情報検出部２２は、複製モジュール被変更情報を検出する。次に、ステップＳ４に進む。
【００５０】
ステップＳ４：モジュール情報変更部２３、モジュール情報表示部２４及びモジュール情報対応表示部２５は、図５に示されるモジュール情報編集画面を出力装置２の画面上に表示する。モジュール情報編集画面の「確認」ボタンが押された後に、ステップＳ５に進む。
【００５１】
ステップＳ５：モジュール情報変更部２３は、モジュール情報編集画面又は図７に示されるモジュール情報再編集画面の「変更後のモジュールプロセス名」及び「変更後のデータ変数名」の欄に、正当なモジュールプロセス名、入力変数データ名及び出力変数データ名が入力されているか否かを判断する。その際、ステップＳ２において「コピー許可」に設定された入力データ変数名及び出力データ変数名が考慮される。正当なモジュールプロセス名、入力変数データ名及び出力変数データ名が入力されていない場合はステップＳ６に進み、入力されている場合はステップＳ８に進む。
【００５２】
ステップＳ６：モジュール情報変更部２３は、図６に示されるモジュール情報編集エラー画面を出力装置２の画面上に表示する。モジュール情報編集エラー画面の「確認」ボタンが押された後に、ステップＳ７に進む。
【００５３】
ステップＳ７：モジュール情報変更部２３、モジュール情報表示部２４及びモジュール情報対応表示部２５は、モジュール情報再編集画面を出力装置２の画面上に表示する。モジュール情報再編集画面の「確認」ボタンが押された後に、ステップＳ５に進む。
【００５４】
ステップＳ８：モジュール複製部２１は、ＲＡＭ６に一時的に記憶されている複製モジュールをソフトウェア仕様記憶部１１に記憶する。
【００５５】
＜効果＞
（１）本実施形態に係るソフトウェア開発支援装置１では、ソフトウェア開発者は、モジュール情報検出部２２によって、複製モジュール被変更情報の抽出漏れを防止することができ、ソフトウェア開発の作業効率を向上させることができる。
【００５６】
（２）本実施形態に係るソフトウェア開発支援装置１では、ソフトウェア開発者は、モジュール情報変更部２３によって、複製モジュール被変更情報の変更漏れ及び変更誤りを防止することができ、ソフトウェア開発の作業効率を向上させることができる。
【００５７】
（３）本実施形態に係るソフトウェア開発支援装置１では、ソフトウェア開発者は、モジュール情報表示部２４によって、複製モジュール被変更情報を容易に視認することができ、複製モジュール被変更情報の変更漏れ及び変更誤りをより確実に防止することができる。
【００５８】
（４）本実施形態に係るソフトウェア開発支援装置１では、ソフトウェア開発者は、モジュール情報対応表示部２５によって、変更された複製モジュール被変更情報と、変更される前の複製モジュール被変更情報とを比較対照することができ、複製モジュール被変更情報の変更漏れ及び変更誤りをより確実に防止することができる。
【００５９】
（５）本実施形態に係るソフトウェア開発支援装置１では、ソフトウェア開発者は、モジュール情報設定部２６によって、モジュール情報検出部２２によって検出された複製モジュール被変更情報であって、複製元モジュールと同じ内容を有することができる入力データ変数名及び出力データ変数名を設定することができ、ソフトウェア開発をより柔軟に行うことができる。
【００６０】
＜変形例＞
（１）本実施形態に係るソフトウェア開発支援装置１では、出力装置２として液晶ディスプレイが用いられているが、データフロー図編集画面（図４）などが表示可能な装置であれば、ＣＲＴ（Cathode Ray Tube）ディスプレイが用いられていてもよい。
【００６１】
（２）本実施形態に係るソフトウェア開発支援装置１では、入力装置３としてキーボード及びマウスが用いられているが、ソフトウェア開発者が情報を入力可能な装置であれば、キーボードの代わりにタッチパネルが用いられていてもよく、マウスの代わりにタブレットなどの他のポインティングデバイスが用いられていてもよい。
【００６２】
（３）本実施形態に係るソフトウェア開発支援装置１では、ソフトウェア仕様記憶部１１としてＨＤＤ７が用いられているが、読み取り及び書き込みが可能な記録媒体であれば、ＭＯディスク、メモリカード及びＵＳＢメモリなどが用いられていてもよい。この場合、ソフトウェア開発支援装置１がさらに備えるＭＯドライブ、カードリーダ及びＵＳＢポートなどを介して、作成及び編集されたデータフロー図がこれらの記録媒体に記憶される。
【００６３】
（４）本実施形態に係るソフトウェア開発支援装置１では、モジュール複製部２１などの各種機能を実現するプログラムの記録媒体としてＨＤＤ７が用いられているが、読み取り可能な記録媒体であればＣＤ、ＤＶＤ、メモリカード及びＵＳＢメモリなどが用いられていてもよい。この場合、ソフトウェア開発支援装置１がさらに備えるＣＤドライブ、ＤＶＤドライブ、カードリーダ及びＵＳＢポートなどを介して、ＣＰＵ５がこれらの記録媒体に記憶されているプログラムをＲＡＭ６に読み出す。
【産業上の利用可能性】
【００６４】
本発明に係るソフトウェア開発支援装置では、ソフトウェア開発者は、モジュールを複製する際に、複製モジュール被変更情報の抽出漏れ、変更漏れ及び変更誤りを防止することができる。従って、ソフトウェア開発者は、本発明に係るソフトウェア開発支援装置を使用することにより、ソフトウェア開発の作業効率を向上させることができる。
【符号の説明】
【００６５】
１  ソフトウェア開発支援装置
２  出力装置
３  入力装置
４  コンピュータ本体
５  ＣＰＵ
６  ＲＡＭ
７  ＨＤＤ
１１  ソフトウェア仕様記憶部
２１  モジュール複製部
２２  モジュール情報検出部
２３  モジュール情報変更部
２４  モジュール情報表示部
２５  モジュール情報対応表示部
２６  モジュール情報設定部
２７  ソースコード生成部
【先行技術文献】
【特許文献】
【００６６】
【特許文献１】特開２００８−１７１３０５号公報
【図１】
2010165222.tif 000003
【図２】
2010165222.tif 000004
【図３】
2010165222.tif 000005
【図４】
2010165222.tif 000006
【図５】
2010165222.tif 000007
【図６】
2010165222.tif 000008
【図７】
2010165222.tif 000009
【図８】
2010165222.tif 000010
【図９】
2010165222.tif 000011
【図１０】
2010165222.tif 000012
【図１１】
2010165222.tif 000013