(57)【要約】【課題】動的設計情報と静的設計情報とをまとめた１つの設計情報からソースコードの雛型、外部ファイル、テスト項目を自動生成するプログラム開発支援システムを提供する。【解決手段】クラス依存関係解析部１５により、静的設計情報のクラス間の依存関係を解析するとともに画面遷移情報特定キーを判定し、この画面遷移情報特定キーに対応する画面遷移に関連する静的設計情報を絞り込む。画面遷移情報特定キー解析部１８により、静的設計情報の中の画面遷移情報特定キーと同じキーを動的設計情報の中から判定する。クラス依存関係解析部１５によって絞り込まれた静的設計情報と、画面遷移情報特定キー解析部１８によって判定された画面遷移情報特定キーに対応する画面遷移に関連する動的設計情報とを１つの設計情報としてまとめ、この１つの設計情報からソースコードの雛型、外部ファイル、テスト項目を生成する。【選択図】図２
2007094453.tif 000002
【特許請求の範囲】
【請求項１】
プログラムの画面の遷移に関する画面遷移情報およびこの画面遷移情報を特定するキーを含む動的設計情報と、前記プログラムを構成するクラス間の関係を示す情報および前記キーを含む静的設計情報とをそれぞれ保持するプログラム設計情報保持部と、
前記プログラム設計情報保持部に保持された静的設計情報のクラス間の依存関係を解析するとともに前記キーを判定し、この判定したキーに対応する画面遷移に関連する静的設計情報を絞り込むクラス依存関係解析部と、
前記プログラム設計情報保持部に保持された動的設計情報に含まれるキーを判定する画面遷移情報特定キー解析部と、
前記クラス依存関係解析部によって絞り込まれた静的設計情報と、前記画面遷移情報特定キー解析部によって判定された前記キーに対応する画面遷移に関連する動的設計情報とを１つの設計情報として出力する設計情報出力部と、
前記設計情報出力部によって出力された設計情報に基づいて、ソースコードの雛型、外部ファイル、テスト項目のうち少なくとも一つを生成する生成部と
を具備することを特徴とするプログラム開発支援システム。
【請求項２】
前記設計情報出力部によって出力された設計情報を表示する表示部と、
前記表示部に表示された設計情報に対してアプリケーション開発者からの入力に基づく編集を行う入力支援部と
をさらに具備することを特徴とする請求項１記載のプログラム開発支援システム。
【請求項３】
前記動的設計情報が、画面の遷移を発生させるための条件を含み、
前記画面遷移情報特定キー解析部によって絞り込まれた動的設計情報が、前記条件を少なくとも含んでいることを特徴とする請求項１記載のプログラム開発支援システム。
【請求項４】
プログラム設計情報保持部により、プログラムの画面の遷移に関する画面遷移情報およびこの画面遷移情報を特定するキーを含む動的設計情報と、前記プログラムを構成するクラス間の関係を示す情報および前記キーを含む静的設計情報とを保持するステップと、
クラス依存関係解析部により、前記プログラム設計情報保持部に保持された静的設計情報のクラス間の依存関係を解析するとともに前記キーを判定し、この判定されたキーに対応する画面遷移に関連する静的設計情報を絞り込むステップと、
画面遷移情報特定キー解析部により、前記プログラム設計情報保持部に保持された動的設計情報に含まれる前記キーを判定するステップと、
設計情報出力部によって、前記クラス依存関係解析部によって絞り込まれた静的設計情報と、前記画面遷移情報特定キー解析部によって判定された前記キーに対応する画面遷移に関連する動的設計情報とを１つの設計情報として出力するステップと、
生成部によって、前記設計情報出力部によって出力された設計情報に基づいて、ソースコードの雛型、外部ファイル、テスト項目のうち少なくとも一つを生成するステップと
を具備することを特徴とするプログラム開発支援方法。
【請求項５】
表示部により、前記設計情報出力部によって出力された設計情報を表示するステップと、
入力支援部にて、前記表示部に表示された設計情報に対してアプリケーション開発者からの入力に基づく編集を行うステップと
をさらに具備することを特徴とする請求項５に記載のプログラム開発支援方法。
【請求項６】
前記動的設計情報が、画面の遷移を発生させるための条件を含み、
前記画面遷移情報特定キー解析部によって絞り込まれた動的設計情報が、前記条件を少なくとも含んでいることを特徴とする請求項５記載のプログラム開発支援方法。
【請求項７】
コンピュータを、
プログラムの画面の遷移に関する画面遷移情報およびこの画面遷移情報を特定するキーを含む動的設計情報と、前記プログラムを構成するクラス間の関係を示す情報および前記キーを含む静的設計情報とを保持するプログラム設計情報保持部と、
前記プログラム設計情報保持部に保持された静的設計情報のクラス間の依存関係を解析するとともに前記キーを判定し、前記判定したキーに対応する画面遷移に関連する静的設計情報を絞り込むクラス依存関係解析部と、
前記プログラム設計情報保持部に保持された動的設計情報に含まれるキーを判定する画面遷移情報特定キー解析部と、
前記クラス依存関係解析部によって絞り込まれた静的設計情報と、前記画面遷移情報特定キー解析部によって判定された前記キーに対応する画面遷移に関連する動的設計情報とを１つの設計情報として出力する設計情報出力部と、
前記設計情報出力部によって出力された設計情報に基づいて、ソースコードの雛型、外部ファイル、テスト項目のうち少なくとも一つを生成する生成部
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの静的設計情報および動的設計情報からソースコードの雛型、外部ファイル、テスト項目を生成するプログラム開発支援システム、プログラム開発支援方法およびプログラムに関する。
【背景技術】
【０００２】
ソフトウェアの上流設計段階において、ＵＭＬ(Unified Modeling Language)などのモデルからソースコードを自動生成する技術がある（たとえば特許文献１）。かかる公知技術によると、静的設計情報を含むクラス図などから静的部分のプログラム・ソースコードを生成する一方、動的設計情報を含むステートチャート図などから動的部分のプログラム・ソースコードを生成し、これらのプログラム・ソースコードを結合して最終的な成果物としてのプログラム・ソースコードを自動生成できるとしている。
【０００３】
静的設計情報とは、オブジェクトとその間の静的な関係（構造）を記述した設計情報である。代表的なものとしてはクラス図、オブジェクト図などがある。クラス図は、システムを構成するクラス間の関係を記述したもの、オブジェクト図は、システムのある時点でのオブジェクトの関係を記述したものである。動的設計情報とは、オブジェクトの動的な関係を記述した設計情報であり、たとえば、シーケンス図、ステートチャート図などがある。シーケンス図は、オブジェクト間のメッセージの送受信関係を時系列で記述したもの、ステートチャート図は、オブジェクトの状態遷移を記述したものである。
【０００４】
しかし、この公知技術では、ソースコードの自動生成に特化されており、後述する外部ファイルやテスト項目の生成に関しては何ら検討がなされていない。
【０００５】
ここで、外部ファイルとは、最終的な成果物であるプログラムの動作を補うために必要な設定情報であり、たとえば画面の遷移に関する情報などである。画面の遷移に関する情報としては、画面遷移で利用するクラス名（ロジック名）、画面名（画面プログラム名）との組み合わせなどがある。これは、ソフトウェアの上流設計の段階では、静的設計情報および動的設定情報を実際のプラットフォームでの呼び出し関係までを意識した構造で記述しようとすると莫大な作業量になってしまうことに起因する。よって、目的のプラットフォーム上で動作するプログラムを開発するためには、静的設計情報および動的設定情報から生成されたソースコードの他に上記のような外部ファイルが必要となる。
【０００６】
テスト項目とは、最終的な成果物であるプログラムをテストするために必要な方法・手順などの情報である。
【特許文献１】特開２００２−１１６９１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ソフトウェアの上流設計で得られる各種ドキュメントから、ソースコード、外部ファイルおよびテスト項目を生成する仕組みには図１９に示すようなものがある。
【０００８】
ここで、静的設計情報４０１および動的設計情報４０２はそれぞれプラットフォームに依存する形式の設計情報（ＰＳＭ）である。ソースコード４０３は静的設計情報から自動生成されるソースコードの雛型である。以降、単に「ソースコード」と記述されたものについても同義である。外部ファイル４０４は、アプリケーション開発者による静的設計情報の入力の下で外部ファイル自動生成装置４０５によって自動生成される。テスト項目４０６は、アプリケーション開発者による動的設計情報の入力と、アプリケーション開発者による選択形式でのテスト項目生成ルール４０７の入力の下で、テスト項目自動生成装置４０８によって自動生成される。テスト項目生成ルール４０７とは、テスト項目を生成するためのルール形式のデータである。図２０に、上記の仕組みによる、ソースコード４０３、外部ファイル４０４およびテスト項目４０６の生成に関するシーケンスを示す。
【０００９】
図２１は、上記の仕組みを、近年プログラムの開発手法として注目されているＭＤＡ（Model Driven Architecture）に対応させた場合の構成を示す図である。
【００１０】
ＭＤＡは、プラットフォーム（特定のプログラミング環境）に依存せず、ＵＭＬなどの標準モデリング技法を使ってアプリケーションの機能をモデル化し、さらにそのモデル情報を基にコードを自動生成する開発手法である。ＭＤＡでは、まず実装技術から独立する形でビジネスプロセスを分析し、プラットフォームに依存しないモデルであるＰＩＭ（Platform Independent Model）を作成し、続いてＰＩＭをベースに個別プラットフォームに特化したモデルであるＰＳＭ(Platform Specific Model）を生成する。さらにＰＩＭもしくはＰＳＭの情報から、ツールを使って実際のソースコード３０１に変換して実装作業を進めていく。
【００１１】
図２１の仕組みでは、プラットフォームに依存しない静的設計情報（ＰＩＭ）４１１を静的設計情報用モデルコンパイラ４１２によって個別プラットフォームに特化した静的設計情報（ＰＳＭ）４０１に変換し、この静的設計情報（ＰＳＭ）４０１をベースにソースコード４０３を生成する。一方、プラットフォームに依存しない動的設計情報（ＰＩＭ）４１３を、動的設計情報用モデルコンパイラ４１４によって個別プラットフォームに特化した動的設計情報（ＰＳＭ）４０２に変換し、この動的設計情報（ＰＳＭ）４０２と先の静的設計情報（ＰＳＭ）４０１から外部ファイル４０４を生成する。また、動的設計情報（ＰＳＭ）４０２と図示しないテスト項目生成ルールからテスト項目４０６を生成する。
【００１２】
しかしながら、上記の仕組みでは次のような問題がある。
【００１３】
１．外部ファイル４０４の作成には静的設計情報と動的設計情報が必要である。しかし、ＵＭＬなどの標準モデリング技法には静的設計情報と動的設計情報を同時に記述できるダイアグラム（図）がないため、外部ファイル４０４の作成の際には少なくとも２つのダイアグラムから必要な情報を取り出さなければならない。
【００１４】
２．図２２に示すように、プラットフォームに依存しない動的設計情報（ＰＩＭ）４１３には、画面遷移中に用いられるクラス名や画面遷移条件などの情報を記述できない。ところが、個別プラットフォームに特化した動的設計情報（ＰＳＭ）４０２の場合には、画面遷移中に用いられるクラス名や、”「検索」ボタンを押す”といったような画面遷移条件などの情報が必要となる。したがって、プラットフォームに依存しない動的設計情報（ＰＩＭ）４１３から個別プラットフォームに特化した動的設計情報（ＰＳＭ）４０２を自動生成することは現実的に困難である。また、テスト項目４０６の作成についても、プラットフォームに依存しない動的設計情報（ＰＩＭ）４１３だけでは不十分であり、画面遷移中に用いられるクラス名や画面遷移条件などの情報が必要である。
【００１５】
３．上記２．の問題に関し、アプリケーション開発者が手入力でクラス名や画面遷移条件などの情報を追加して解決を図ることは可能である。しかし、最終的に静的設計情報と動的設計情報の２つのダイアグラムを管理することとなり、管理が煩雑になる。
【００１６】
本発明は、かかる事情を鑑み、静的設計情報と動的設計情報とを１つにまとめた設計情報を得て、この設計情報に基づいてソースコードの雛型、外部ファイル、テスト項目を自動生成することのできるプログラム開発支援システム、プログラム開発支援方法およびプログラムを提供しようとするものである。
【課題を解決するための手段】
【００１７】
上記の課題を解決するために、本発明のプログラム開発支援システムは、プログラムの画面の遷移に関する画面遷移情報およびこの画面遷移情報を特定するキーを含む動的設計情報と、前記プログラムを構成するクラス間の関係を示す情報および前記キーを含む静的設計情報とを保持するプログラム設計情報保持部と、前記プログラム設計情報保持部に保持された静的設計情報のクラス間の依存関係を解析するとともに前記キーを判定し、前記判定したキーに対応する画面遷移に関連する静的設計情報を絞り込むクラス依存関係解析部と、前記プログラム設計情報保持部に保持された動的設計情報に含まれるキーを判定する画面遷移情報特定キー解析部と、前記クラス依存関係解析部によって絞り込まれた静的設計情報と、前記画面遷移情報特定キー解析部によって判定された前記キーに対応する画面遷移に関連する動的設計情報とを１つの設計情報として出力する設計情報出力部と、前記設計情報出力部によって出力された設計情報に基づいて、ソースコードの雛型、外部ファイル、テスト項目のうち少なくとも一つを生成する生成部とを具備することを特徴とする。
【００１８】
本発明によれば、共通の画面遷移に関連する動的設計情報と静的設計情報とをまとめた１つの設計情報が得られるので、この１つの設計情報からソースコードの雛型、外部ファイル、テスト項目を自動生成することができる。
【００１９】
また、テスト項目の生成において”「検索」ボタンを押す”といったような画面遷移の条件などの情報も必要とする場合には、この画面遷移の条件を動的設計情報にあらかじめ組み込んでおき、画面遷移情報特定キー解析部が必要な動的設計情報を絞り込む際に、画面遷移条件を絞り込み結果に含めるようにすればよい。さらに、動的設計情報と静的設計情報が１つの設計情報として管理できることで管理に負担が軽減されるという効果も得られる。
【００２０】
さらに、本発明は、設計情報出力部によって出力された設計情報を表示する表示部と、表示部に表示された設計情報に対してアプリケーション開発者からの入力に基づく編集を行う入力支援部とを付加した構成を有するものであってもよい。
【発明の効果】
【００２１】
本発明によれば、静的設計情報とこれに関連する動的設計情報とを１つにまとめた設計情報を得ることができ、この設計情報に基づいてソースコードの雛型、外部ファイル、テスト項目を自動生成することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態を図面に基づき説明する。
【００２３】
図１は本発明の一実施形態にかかるアプリケーション開発支援システム１００とその周辺部の構成を示す図である。
【００２４】
同図において、本実施形態のアプリケーション開発支援システム１００は点線によって囲まれた部分である。本実施形態のアプリケーション開発支援システム１００はソースコード・外部ファイル・テスト項目生成装置１を有する。このソースコード・外部ファイル・テスト項目生成装置１は、プラットフォームに依存しない静的設計情報（ＰＩＭ）２０１から静的設計情報用モデルコンパイラ２０２によって変換された、個別プラットフォームに特化した静的設計情報（ＰＳＭ）２０３と、プラットフォームに依存しない動的設計情報（ＰＩＭ）２０４と、テストの観点および判断基準に関するノウハウをルール形式で表現したデータであるテスト項目生成ルール２０５を入力とし、ソースコード３０１、外部ファイル３０２、テスト項目３０３を自動生成する装置である。
【００２５】
ソースコード・外部ファイル・テスト項目生成装置１は、典型的なコンピュータの構成、つまり、中央処理演算部、主メモリ、入力部、出力部などによって構成される。主メモリはソースコード・外部ファイル・テスト項目生成装置１の処理手順（プログラム）などを格納する。中央処理演算部は主メモリに格納された処理手順を実行する。
【００２６】
図２は本実施形態のアプリケーション開発支援システム１００におけるソースコード・外部ファイル・テスト項目生成装置１の構成を示すブロック図である。
【００２７】
同図において、ソースコード・外部ファイル・テスト項目生成装置１の表示・入力部１１は、アプリケーション開発者からの各種の入力、静的設計情報と動的設計情報とを一つにまとめた設計情報の表示などを行うマンマシンインタフェースである。また、この表示・入力部１１は、画面に表示させる設計情報を記憶する記憶部を含む。
【００２８】
静的設計情報生成制御部１２は、表示・入力部１１に表示する静的設計情報の生成に関する制御を行う。
【００２９】
動的設計情報生成制御部１３は、表示・入力部１１に表示する動的設計情報の生成に関する制御を行う。
【００３０】
プログラム設計情報保持部１４は、動的設計情報生成制御部１３からの命令によって静的設計情報（ＰＳＭ）２０３および動的設計情報（ＰＩＭ）２０４を読み込み保持する。
【００３１】
クラス依存関係解析部１５は、プログラム設計情報保持部１４に保持された静的設計情報を読み込み、この静的設計情報のクラス間の依存関係を解析するとともに、この静的設計情報に組み込まれた画面遷移情報特定キーを判定し、この判定した画面遷移情報特定キーに対応する画面遷移に関連する静的設計情報を絞り込む。
【００３２】
画面遷移情報特定キー解析部１８は、クラス依存関係解析部１５によって判定された静的設計情報の中の画面遷移情報特定キーと同じキーを、プログラム設計情報保持部１４に保持された動的設計情報の中から判定する。
【００３３】
設計情報出力部１６は、クラス依存関係解析部１５によって絞り込まれた静的設計情報と、画面遷移情報特定キー解析部１８によって判定された画面遷移情報特定キーに対応する画面遷移に関連する動的設計情報を表示・入力部１１に出力することによって、共通の画面遷移に関連する静的設計情報と動的設計情報とを１つの設計情報としてまとめる。
【００３４】
入力支援部１７は、クラス依存関係解析部１５によって絞り込まれた静的設計情報に対してアプリケーション開発者からの入力に基づく編集を行う。
【００３５】
ソースコード生成制御部１９は、表示・入力部１１に表示された設計情報に対してソースコード３０１の生成に関する制御を行う。
【００３６】
テスト項目生成制御部２０は、表示・入力部１１に表示された設計情報に対してテスト項目３０３の生成に関する制御を行う。
【００３７】
外部ファイル生成制御部２１は、表示・入力部１１に表示された設計情報に対して外部ファイル３０２の生成に関する制御を行う。
【００３８】
プログラム設計情報取得部２２は、ソースコード生成制御部１９、テスト項目生成制御部２０もしくは外部ファイル生成制御部２１による制御の下で、表示・入力部１１の記憶部から設計情報を取得する。
【００３９】
プログラム設計情報解析部２３は、プログラム設計情報取得部２２に保持されている設計情報を、ソースコード３０１、テスト項目３０３および外部ファイル３０２を生成できるように解析する。
【００４０】
テンプレート保持部２４は、ソースコード３０１および外部ファイル３０２を生成するためのテンプレートを保持している部分である。
【００４１】
テスト項目生成ルール２０５は、テスト項目を生成するためのルール形式のデータである。
【００４２】
出力部２５は、プログラム設計情報解析部２３による設計情報の解析結果を受け取り、テンプレート保持部２４に保持されているテンプレートおよびテスト項目生成ルール２０５などを用いて、ソースコード３０１、外部ファイル３０２、テスト項目３０３を生成し出力する。
【００４３】
図３は静的設計情報であるクラス図の例である。
【００４４】
クラス図はシステムを構成するクラス間の関係を記述したものである。ここで、クラスの役割を示すステレオタイプが<<process>>のクラスであるsampleProcessActionクラス３１にはタグ情報３２が付加されており、このタグ情報３２の中には画面遷移情報を特定するキー３３（以下「画面遷移情報特定キー」と記述）が設定されている。
【００４５】
図４は図３の静的設計情報をＸＭＬで記述したものである。４１はクラス名（クラスＩＤ）の記述部である。４２はクラス間の依存関係の記述部であり、clientは依存元のクラスＩＤ、supplierは依存先のクラスＩＤである。４３はクラスのタグ情報の記述部であり、上記の画面遷移情報特定キー３３として”registUser”と”showList”が設定されている。
【００４６】
図５は動的設計情報であるステートチャート図の例である。
【００４７】
同図に示すように、ステートチャート図は、画面の状態遷移を記述したものである。一つ一つの画面の遷移には、画面遷移条件５１および画面遷移情報特定キー５２が記述されている。画面遷移情報特定キー５２は図３及び図４に示したクラス図に記述された画面遷移情報特定キー３３に対応するものである。本例のステートチャート図は、index.jspの画面５３で「登録」ボタンを押すことによって、registUserForm.jspの画面５４に遷移することと、index.jspの画面５３で「検索」ボタンを押すことによって、showList.jspの画面５５に遷移することが表現されている。ここで、”「登録」ボタンを押す”、”「検索」ボタンを押す”が画面遷移条件５１となる。画面遷移情報特定キー５２はそれぞれの画面遷移条件５１に対応して付加される。なお、動的設計情報への画面遷移情報特定キー５２の組み込みは、表示された候補からアプリケーション開発者が選択する形式で行うようにしてもよい。
【００４８】
図６は図５の動的設計情報をＸＭＬで記述したものである。６１はリクエストがshowListの遷移情報であり、この中に画面遷移情報特定キーとして”showList”が記述されているとともに、画面遷移条件として”「検索」ボタンを押す”が記述されている。また、６２はリクエストがregistUserの遷移情報であり、この中に画面遷移情報特定キーとして”registUser”が記述されているとともに、画面遷移条件として”「検索」ボタンを押す”が記述されている。
【００４９】
次に、本実施形態のアプリケーション開発支援システム１００の動作を説明する。
【００５０】
図７は本実施形態のアプリケーション開発支援システム１００のソースコード・外部ファイル・テスト項目生成装置１による静的設計情報の読み込みに関するシーケンス図である。
【００５１】
まず、アプリケーション開発者３００画面で静的設計情報の表示命令を入力する（Ｓ１）。この静的設計情報の表示命令は、表示・入力部１１を通じて静的設計情報生成制御部１２に与えられ（Ｓ２）、静的設計情報生成制御部１２はプログラム設計情報保持部１４に静的設計情報の読み込み命令を出す（Ｓ３）。プログラム設計情報保持部１４は静的設計情報の読み込み命令を受けて静的設計情報（ＰＳＭ）２０３を読み込み、保持する（Ｓ４，Ｓ５）。
【００５２】
次に、静的設計情報生成制御部１２はクラス依存関係解析部１５に、読み込んだ静的設計情報のクラス依存関係の解析命令を出す（Ｓ６）。クラス依存関係解析部１５は、この解析命令を受けると、プログラム設計情報保持部１４に対して静的設計情報の取得命令を出し（Ｓ７）、静的設計情報を取得し（Ｓ８）、この静的設計情報に記述されたクラス依存関係を解析するとともに静的設計情報に組み込まれた画面遷移情報特定キーを判定して、この判定した画面遷移情報特定キーに対応する画面遷移に関連する静的設計情報の絞り込みを行う（Ｓ９）。
【００５３】
この後、静的設計情報生成制御部１２は設計情報出力部１６に対して設計情報の出力命令を出す（Ｓ１０）。設計情報出力部１６はこの命令を受けると、クラス依存関係解析部１５に対して静的設計情報の絞り込み結果の取得命令を出して（Ｓ１１）、静的設計情報の絞り込み結果を取得する（Ｓ１２）。
【００５４】
次に、設計情報出力部１６は入力支援部１７を呼び出し、取得した静的設計情報の絞り込み結果を入力支援部１７に渡す（Ｓ１３）。入力支援部１７は、アプリケーション開発者３００からの入力の下、静的設計情報の絞り込み結果に対して人的な判断に基づく修正、追加、画面遷移の絞り込みなどの編集を行う（Ｓ１４）。編集後の静的設計情報は設計情報出力部１６へ渡され（Ｓ１５）、設計情報出力部１６から表示・入力部１１に表示用のデータとして出力されて（Ｓ１６）、アプリケーション開発者３００に表示される（Ｓ１７）。
【００５５】
図８は静的設計情報の絞り込みに関する例である。
【００５６】
静的設計情報の絞り込み結果は表８１にマッピングされる。この表８１の中のレコードは、画面遷移ごと、つまりステレオタイプが<<process>>であるクラス３１のタグ情報３２中の画面遷移情報特定キー３３ごとに作成される。したがって、図８の例では”registUser”と”showList”の画面遷移情報特定キー３３にそれぞれ対応するレコードが作成される。
【００５７】
表８１のレコードは静的設計情報と動的設計情報の絞り込み結果が入る複数の項目で構成される。静的設計情報の絞り込み結果が入る項目には、ステレオタイプが<<process>>であるクラスのクラス名がセットされるアクション、ステレオタイプが<<dataSet>>であるクラスのクラス名がセットされるアクションフォーム、ステレオタイプが<<servicePackage>>であるクラスのクラス名がセットされるＷｅｂ層サービス、そのＷｅｂ層サービスの操作がセットされる操作、ステレオタイプが<<DAO>>であるクラスのクラス名がセットされるエンティティ、ステレオタイプが<<valueObject>>であるクラスのクラス名がセットされる処理結果データセットなどがある。動的設計情報の絞り込み結果が入る項目には、リクエスト発生画面、画面遷移条件が入るリクエスト、画面遷移情報特定キーが入るリクエストパス、遷移先画面などの項目がある。
【００５８】
なお、クラス依存関係解析部１５によって絞り込まれた静的設計情報の中から表示・入力部１１に表示させる静的設計情報をアプリケーション開発者自身が絞り込むために次のようなインタフェースが用意されている。
【００５９】
図９はこのインタフェースの例を示す図である。表８１の各項目には、この項目に対応するクラスの情報がプルダウンメニュー形式で表示可能とされている。このプルダウンメニュー９１の中から所望のクラスの情報をたとえばマウスクリック操作などによって選択することによって、その選択されたクラスの情報が項目の情報として確定され、この項目の情報の確定に応じて、その選択されたクラスの情報を含む、１つの画面遷移に対応する他の項目の情報が自動的にセットされる。これにより、表示・入力部１１に表示させる静的設計情報をアプリケーション開発者による判断の下で容易に選択して絞り込むことができる。
【００６０】
次に、動的設計情報の読み込みについて説明する。
【００６１】
図１０は動的設計情報の読み込みに関するシーケンス図である。
【００６２】
まず、アプリケーション開発者３００が表示・入力部１１上で動的設計情報の表示命令を入力する（Ｓ１）。この動的設計情報の表示命令は、表示・入力部１１を通じて動的設計情報生成制御部１３に与えられ（Ｓ２）、動的設計情報生成制御部１３はプログラム設計情報保持部１４に動的設計情報の読み込み命令を出す（Ｓ３）。プログラム設計情報保持部１４は動的設計情報の読み込み命令を受けて動的設計情報（ＰＩＭ）２０４を読み込み、保持する（Ｓ４，Ｓ５）。
【００６３】
次に、動的設計情報生成制御部１３は画面遷移情報特定キー解析部１８に画面遷移情報特定キーの解析命令を出す（Ｓ６）。画面遷移情報特定キー解析部１８は、この解析命令を受けると、プログラム設計情報保持部１４から動的設計情報を取得し（Ｓ７，Ｓ８）、続いてクラス依存関係解析部１５の解析結果（静的設計情報の絞り込み結果）を取得し（Ｓ９，Ｓ１０）、静的設計情報の画面遷移情報特定キーと同一の画面遷移情報特定キーを動的設計情報の中から判定する（Ｓ１１）。
【００６４】
この後、動的設計情報生成制御部１３は設計情報出力部１６に対して設計情報の出力命令を出す（Ｓ１２）。設計情報出力部１６はこの命令を受けると、画面遷移情報特定キー解析部１８から画面遷移情報特定キーを取得した後（Ｓ１３，Ｓ１４）、プログラム設計情報保持部１４から動的設計情報を取得し（Ｓ１５，Ｓ１６）、この取得した動的設計情報から当該画面遷移情報特定キーに対応する画面遷移に関連する動的設計情報を絞り込み（Ｓ１７）、その結果を表示・入力部１１に出力して（Ｓ１８）、アプリケーション開発者３００に表示する（Ｓ１９）。
【００６５】
図１１は動的設計情報の絞り込みに関する例である。
【００６６】
同図に示すように、動的設計情報の絞り込み結果は、既に静的設計情報の絞り込み結果がセットされた表８１の、画面遷移ごとの各レコードのリクエスト、リクエスト発生画面、リクエストパス、遷移先画面の各項目に記録される。この際、既に静的設計情報のクラス依存関係の解析によって個々の画面遷移情報特定キー３３に対応する画面遷移ごとのレコードが表８１に作成されているので、設計情報出力部１６は、動的設計情報において当該画面遷移情報特定キー３３と同じ画面遷移情報特定キー５２に対応して記述されている画面遷移条件５１を検出し、画面遷移情報特定キー５２を対応するレコードのリクエストパス項目に、画面遷移条件５１を対応するレコードのリクエスト項目にそれぞれセットする。
【００６７】
次に、表示・入力部１１に表示された静的設計情報に基づいてソースコード３０１を生成する場合の動作を説明する。
【００６８】
図１２は、このソースコード３０１の生成に関するシーケンス図である。
【００６９】
まず、アプリケーション開発者３００が表示・入力部１１上でソースコード３０１の生成命令を入力する（Ｓ１）。このソースコード３０１の生成命令はソースコード生成制御部１９に与えられ（Ｓ２）、ソースコード生成制御部１９はプログラム設計情報取得部２２に静的設計情報の取得命令を出す（Ｓ３）。プログラム設計情報取得部２２は、静的設計情報の取得命令を受けると、表示・入力部１１の記憶部から静的設計情報を取得し保持する（Ｓ４）。
【００７０】
この後、ソースコード生成制御部１９は、プログラム設計情報解析部２３に静的設計情報の解析命令を出す（Ｓ５）。プログラム設計情報解析部２３は、解析命令を受けると、プログラム設計情報取得部２２から静的設計情報を取得し（Ｓ６，Ｓ７）、その静的設計情報の解析を行ってソースコード３０１の生成に必要な情報を解析結果として取得する（Ｓ８）。
【００７１】
次に、ソースコード生成制御部１９は出力部２５にソースコード３０１の出力を指示する（Ｓ９）。この出力指示を受けた出力部２５は、プログラム設計情報解析部２３から解析結果を取得し（Ｓ１０，Ｓ１１）、テンプレート保持部２４から解析結果に対応するソースコード３０１のテンプレートを取得する（Ｓ１２，Ｓ１３）。そして出力部２５は、取得した静的設計情報の解析結果とソースコード３０１のテンプレートを基に当該静的設計情報のソースコード３０１を生成し（Ｓ１４）、出力する（Ｓ１５）。
【００７２】
これにより、図１３に示すようなソースコード３０１の雛型が生成される。なお、同図は図１１に示した静的設計情報に対して生成されたソースコード３０１の雛型の例である。
【００７３】
次に、表示・入力部１１に表示された静的設計情報および動的設計情報に基づいて外部ファイル３０２を生成する場合の動作を説明する。
【００７４】
図１４は、この外部ファイル３０２の生成に関するシーケンス図である。
【００７５】
まず、アプリケーション開発者３００が表示・入力部１１上で外部ファイル３０２の生成命令を入力する（Ｓ１）。この外部ファイル３０２の生成命令は外部ファイル生成制御部２１に与えられ（Ｓ２）、外部ファイル生成制御部２１はプログラム設計情報取得部２２に静的・動的設計情報の取得命令を出す（Ｓ３）。プログラム設計情報取得部２２は、静的・動的設計情報の取得命令を受けると、表示・入力部１１の記憶部から静的設計情報および動的設計情報を取得し保持する（Ｓ４）。
【００７６】
次に、外部ファイル生成制御部２１は、プログラム設計情報解析部２３に静的・動的設計情報解析命令を出す（Ｓ５）。プログラム設計情報解析部２３は、解析命令を受けると、プログラム設計情報取得部２２から静的設計情報および動的設計情報を取得し（Ｓ６，Ｓ７）、これら静的設計情報および動的設計情報の解析を行って外部ファイル３０２の生成に必要な情報を解析結果として取得する（Ｓ８）。
【００７７】
この後、外部ファイル生成制御部２１は出力部２５に外部ファイル３０２の出力を指示する（Ｓ９）。この出力指示を受けた出力部２５は、プログラム設計情報解析部２３から静的設計情報および動的設計情報の解析結果を取得し（Ｓ１０，Ｓ１１）、テンプレート保持部２４から解析結果に対応する外部ファイル３０２のテンプレートを取得する（Ｓ１２，Ｓ１３）。そして出力部２５は、取得した静的設計情報および動的設計情報の解析結果と外部ファイル３０２のテンプレートを基に外部ファイル３０２を生成し（Ｓ１４）、出力する（Ｓ１５）。
【００７８】
これにより、図１５に示すような外部ファイル３０２が生成される。なお、同図は図１１に示した静的設計情報および動的設計情報に対して生成された外部ファイル３０２の例である。
【００７９】
次に、表示・入力部１１に表示された動的設計情報に基づいてテスト項目３０３を生成する場合の動作を説明する。
【００８０】
図１６は、このテスト項目３０３の生成に関するシーケンス図である。
【００８１】
まず、アプリケーション開発者３００が表示・入力部１１上でテスト項目３０３の生成命令を入力する（Ｓ１）。このテスト項目３０３の生成命令はテスト項目生成制御部２０に与えられ（Ｓ２）、テスト項目生成制御部２０はプログラム設計情報取得部２２に動的設計情報の取得命令を出す（Ｓ３）。プログラム設計情報取得部２２は、動的設計情報の取得命令を受けると、表示・入力部１１から動的設計情報を取得し保持する（Ｓ４）。
【００８２】
次に、テスト項目生成制御部２０は、プログラム設計情報解析部２３に動的設計情報解析命令を出す（Ｓ５）。プログラム設計情報解析部２３は、解析命令を受けると、プログラム設計情報取得部２２から動的設計情報を取得し（Ｓ６，Ｓ７）、この動的設計情報の解析を行ってテスト項目３０３の生成に必要な情報を解析結果として取得する（Ｓ８）。
【００８３】
この後、テスト項目生成制御部２０は出力部２５にテスト項目３０３の出力を指示する（Ｓ９）。この出力指示を受けた出力部２５は、プログラム設計情報解析部２３から動的設計情報の解析結果を取得し（Ｓ１０，Ｓ１１）、テスト項目生成ルール２０５を取得する（Ｓ１２，Ｓ１３）。そして出力部２５は、取得した動的設計情報の解析結果とテスト項目生成ルール２０５を基にテスト項目３０３を生成し（Ｓ１４）、出力する（Ｓ１５）。
【００８４】
これにより、図１７に示すようなテスト項目３０３が生成される。なお、同図は図１１に示した動的設計情報（表８１）に対して生成されたテスト項目３０３の例である。
【００８５】
以上説明したように、本実施形態によれば、共通の画面遷移に関連する静的設計情報と動的設計情報とを１つにまとめた設計情報を得ることができ、この設計情報に基づいてソースコード３０１の雛型、外部ファイル３０２、テスト項目３０３を自動生成することができる。また、画面遷移条件を動的設計情報にあらかじめ組み込んでおくことで、画面遷移条件を含むテスト項目３０３を生成することが可能になる。さらに、動的設計情報と静的設計情報が１つの設計情報として管理できることで管理に負担が軽減されるという効果も得られる。
【００８６】
（他の実施形態）
図１８はクラス依存関係解析部１５によって絞り込まれた静的設計情報の中から表示・入力部１１に表示させる静的設計情報をアプリケーション開発者自身が絞り込むためのインタフェースの他の実施形態を示す図である。
【００８７】
同図に示すように、本例では、静的設計情報の各項目ごとに、クラス依存関係解析部１５によって静的設計情報から取り出されたクラスの情報の一覧を一覧表示ボックス１８１に表示させ、その中からアプリケーション開発者３００がマウスクリック操作などによって選択されたクラスの情報を入力ボックス１８２に表示させ、これを当該項目のクラスの情報として確定するようにしたものである。この項目の情報が確定に応じて、その選択されたクラスの情報を含む、１つの画面遷移に対応する他の項目の情報が自動的に他の項目の入力ボックス１８２にもセットされる。なお、入力ボックス１８２には、アプリケーション開発者３００が直接クラスの情報を入力することも可能である。これにより、それぞれの項目を比較しながら１つの画面遷移に対応する静的設計情報をまとめて入力することができ、入力効率をあげることができる。各項目の入力ボックスは全てを埋まっている必要はなく、設計段階で未定のクラスがあれば空欄のままでもよい。
【００８８】
なお、本発明は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【図面の簡単な説明】
【００８９】
【図１】本発明の一実施形態にかかるアプリケーション開発支援システム１００とその周辺部の構成を示す図である。
【図２】図１のアプリケーション開発支援システム１００におけるソースコード・外部ファイル・テスト項目生成装置１の構成を示すブロック図である。
【図３】静的設計情報であるクラス図の例である。
【図４】図３の静的設計情報をＸＭＬで記述した図である。
【図５】動的設計情報であるステートチャート図の例である。
【図６】図５の動的設計情報をＸＭＬで記述した図である。
【図７】本実施形態のアプリケーション開発支援システムのソースコード・外部ファイル・テスト項目生成装置による静的設計情報の読み込みに関するシーケンス図である。
【図８】静的設計情報の絞り込みに関する例を示す図である。
【図９】クラス依存関係解析部によって絞り込まれた静的設計情報の中から表示・入力部に表示させる静的設計情報をアプリケーション開発者自身が絞り込むためのインタフェースを示す図である。
【図１０】動的設計情報の読み込みに関するシーケンス図である。
【図１１】動的設計情報の絞り込みに関する例を示す図である。
【図１２】ソースコードの生成に関するシーケンス図である。
【図１３】生成されたソースコードの雛型の例を示す図である。
【図１４】外部ファイルの生成に関するシーケンス図である。
【図１５】生成された外部ファイルの例を示す図である。
【図１６】テスト項目の生成に関するシーケンス図である。
【図１７】生成されたテスト項目の例を示す図である。
【図１８】クラス依存関係解析部によって絞り込まれた静的設計情報の中から表示・入力部に表示させる静的設計情報をアプリケーション開発者自身が絞り込むためのインタフェースの他の実施形態を示す図である。
【図１９】ソフトウェアの上流設計で得られる各種ドキュメントから、ソースコード、外部ファイルおよびテスト項目を生成する仕組みを示す図である。
【図２０】図１９の仕組みによる、ソースコード、外部ファイルおよびテスト項目の生成に関するシーケンス図である。
【図２１】図１９の仕組みをＭＤＡに対応させた場合の構成を示す図である。
【図２２】図２２の課題を説明するための図である。
【符号の説明】
【００９０】
１…ソースコード・外部ファイル・テスト項目生成装置、１００…表示・入力部、１２…静的設計情報生成制御部、１３…動的設計情報生成制御部、１４…プログラム設計情報保持部、１５…クラス依存関係解析部、１６…設計情報出力部、１７…入力支援部、１８…画面遷移情報特定キー解析部、１９…ソースコード生成制御部、２０…テスト項目生成制御部、２１…外部ファイル生成制御部、２２…プログラム設計情報取得部、２３…プログラム設計情報解析部、２４…テンプレート保持部、２５…出力部、３３，５２…画面遷移情報特定キー、５１…画面遷移条件、１００…アプリケーション開発支援システム、２０３…静的設計情報（ＰＳＭ）、２０４…動的設計情報（ＰＩＭ）、２０５…テスト項目生成ルール、３０１…ソースコード、３０２…外部ファイル、３０３…テスト項目。
【図１】
2007094453.tif 000003
【図２】
2007094453.tif 000004
【図３】
2007094453.tif 000005
【図４】
2007094453.tif 000006
【図５】
2007094453.tif 000007
【図６】
2007094453.tif 000008
【図７】
2007094453.tif 000009
【図８】
2007094453.tif 000010
【図９】
2007094453.tif 000011
【図１０】
2007094453.tif 000012
【図１１】
2007094453.tif 000013
【図１２】
2007094453.tif 000014
【図１３】
2007094453.tif 000015
【図１４】
2007094453.tif 000016
【図１５】
2007094453.tif 000017
【図１６】
2007094453.tif 000018
【図１７】
2007094453.tif 000019
【図１８】
2007094453.tif 000020
【図１９】
2007094453.tif 000021
【図２０】
2007094453.tif 000022
【図２１】
2007094453.tif 000023
【図２２】
2007094453.tif 000024