(57)【要約】【課題】Web上に新規サービスを早期に追加したり、サービスを拡張したりするために、Webアプリケーション・システムを短期間に開発することが求められている。開発作業を軽減させ、スピードアップを図り、かつ、複雑なシステムや機能拡張などに対応するためにも、各コンポーネントの対応を明確にし、それぞれの役割を分離して設計する必要がある。【解決手段】Webアプリケーション・システムの開発において、それぞれの画面に対応させて、サーブレット、JSP、およびBeanの各コンポーネントを１対１の関係で定義し、各コンポーネントの対応を明確にする。画面デザインから各コンポーネントの定義を対応表として生成する対応表生成部を持ち、その対応表と設計ドキュメントの情報を利用して、サーブレット、JSP、およびBeanのコードを自動生成するコード自動生成部とによって、開発作業を単純にし、軽減することができる。【選択図】図１
2006236375.tif 000002
【特許請求の範囲】
【請求項１】
インターネットやイントラネット上で、サーバサイドJavaの技術であるサーブレット、JSP、およびJavaBeansコンポーネント（Bean）による構成を持つWebアプリケーションシステムを開発するWebアプリケーション開発方法であって、
前記Webアプリケーションシステムの設計仕様にある画面仕様に基づいて、画面毎に対応するサーブレット、JSP、およびBeanの各コンポーネントのソースファイル名称を対応させて定義することによって、サーブレット、JSP、およびBeanの開発を行うことを特徴とするWebアプリケーション開発方法。
【請求項２】
インターネットやイントラネット上で、サーバサイドJavaの技術であるサーブレット、JSP、およびJavaBeansコンポーネント（Bean）による構成を持つWebアプリケーションシステムを開発するWebアプリケーション開発方法であって、
前記Webアプリケーションシステムの設計仕様にある画面仕様に基づいて、画面毎に対応するサーブレット、JSP、およびBeanの各コンポーネントのソースファイル名称を１対１に対応させて定義することによって、サーブレット、JSP、およびBeanの開発を行うことを特徴とするWebアプリケーション開発方法。
【請求項３】
請求項１または２に記載のWebアプリケーション開発方法において、
前記画面と前記サーブレット、JSP、およびBeanの各コンポーネントのソースファイル名称との対応関係と、前記設計仕様の情報を利用して、各コンポーネントのソースコードを自動生成することを特徴とするWebアプリケーション開発方法。
【請求項４】
請求項１または２に記載のWebアプリケーション開発方法において、
前記Beanのコンポーネントは、HTMLページを表示するために必要な情報をすべて持ち、HTMLページの情報とデータベースから取得する情報とをマッピングする役割を持つことを特徴とするWebアプリケーション開発方法。
【請求項５】
請求項３に記載のWebアプリケーション開発方法において、
前記サーブレット、JSP、およびBeanの各コンポーネントのソースコードの自動生成の際、生成するコンポーネント毎に、テンプレート一覧を表示しその中から選択されたテンプレートを雛形とし、該雛形に前記設計仕様に応じたコードを埋め込むことによりソースコードを自動生成することを特徴とするWebアプリケーション開発方法。
【請求項６】
インターネットやイントラネット上で、サーバサイドJavaの技術であるサーブレット、JSP、およびJavaBeansコンポーネント（Bean）による構成を持つWebアプリケーションシステムを開発するWebアプリケーション開発方法であって、
設計仕様にある画面仕様を読み込み、各画面毎に、画面名称に対応させたサーブレット、JSP、および／またはBeanの各コンポーネントの名称を生成するステップと、
生成した名称の各コンポーネントについて、そのコンポーネントのソースファイルの雛形となるテンプレートをテンプレート一覧から選択させるステップと、
そのコンポーネントの設計仕様に基づくコードを前記テンプレートに埋め込むことにより、そのコンポーネントのソースコードを自動生成するステップと
を備えたことを特徴とするWebアプリケーション開発方法。
【請求項７】
請求項６に記載のWebアプリケーション開発方法において、
前記テンプレート一覧は、スーパークラスのテンプレートを含むものであり、前記ソースコードを自動生成するステップは、該スーパークラスを継承してソースコードを作成するものであることを特徴とするWebアプリケーション開発方法。
【請求項８】
請求項６に記載のWebアプリケーション開発方法において、
前記各コンポーネントの名称を生成するステップは、前記各画面毎に、画面名称に１対１対応で、サーブレット、JSP、および／またはBeanの各コンポーネントの名称を生成するものであることを特徴とするWebアプリケーション開発方法。
【請求項９】
請求項１から８の何れか１つに記載のWebアプリケーション開発方法において、
開発すべきWebアプリケーションシステムのうち、サーブレットはWebブラウザからのリクエストを受ける役割、Beanはサーブレットの要求に従い処理を行いその処理結果を保持する役割、JSPはBeanの処理結果を参照してWebブラウザ上に表示するHTMLを出力する役割、というように役割を分離したことを特徴とするWebアプリケーション開発方法。
【請求項１０】
請求項１から９の何れか１つに記載のWebアプリケーション開発方法に係るプログラム。
【請求項１１】
請求項１から９の何れか１つに記載のWebアプリケーション開発方法に係るプログラムを記憶した記憶媒体。
【請求項１２】
インターネットやイントラネット上で、サーバサイドJavaの技術であるサーブレット、JSP、およびJavaBeansコンポーネント（Bean）による構成を持つWebアプリケーションシステムを開発するWebアプリケーション開発システムであって、
前記Webアプリケーションシステムの設計仕様にある画面仕様に基づいて、画面毎に対応するサーブレット、JSP、およびBeanの各コンポーネントのソースファイル名称を対応させて定義することによって、サーブレット、JSP、およびBeanの開発を行う手段を備えたことを特徴とするWebアプリケーション開発システム。
【請求項１３】
インターネットやイントラネット上で、サーバサイドJavaの技術であるサーブレット、JSP、およびJavaBeansコンポーネント（Bean）による構成を持つWebアプリケーションシステムを開発するWebアプリケーション開発システムであって、
前記Webアプリケーションシステムの設計仕様にある画面仕様に基づいて、画面毎に対応するサーブレット、JSP、およびBeanの各コンポーネントのソースファイル名称を１対１に対応させて定義することによって、サーブレット、JSP、およびBeanの開発を行う手段を備えたことを特徴とするWebアプリケーション開発システム。
【請求項１４】
請求項１２または１３に記載のWebアプリケーション開発システムにおいて、
前記画面と前記サーブレット、JSP、およびBeanの各コンポーネントのソースファイル名称との対応関係と、前記設計仕様の情報を利用して、各コンポーネントのソースコードを自動生成する手段を、さらに備えたことを特徴とするWebアプリケーション開発システム。
【請求項１５】
請求項１２または１３に記載のWebアプリケーション開発システムにおいて、
前記Beanのコンポーネントは、HTMLページを表示するために必要な情報をすべて持ち、HTMLページの情報とデータベースから取得する情報とをマッピングする役割を持つことを特徴とするWebアプリケーション開発システム。
【請求項１６】
請求項１４に記載のWebアプリケーション開発システムにおいて、
前記サーブレット、JSP、およびBeanの各コンポーネントのソースコードの自動生成の際、生成するコンポーネント毎に、テンプレート一覧を表示しその中から選択されたテンプレートを雛形とし、該雛形に前記設計仕様に応じたコードを埋め込むことによりソースコードを自動生成する手段を、さらに備えたことを特徴とするWebアプリケーション開発システム。
【請求項１７】
インターネットやイントラネット上で、サーバサイドJavaの技術であるサーブレット、JSP、およびJavaBeansコンポーネント（Bean）による構成を持つWebアプリケーションシステムを開発するWebアプリケーション開発システムであって、
設計仕様にある画面仕様を読み込み、各画面毎に、画面名称に対応させたサーブレット、JSP、および／またはBeanの各コンポーネントの名称を生成する手段と、
生成した名称の各コンポーネントについて、そのコンポーネントのソースファイルの雛形となるテンプレートをテンプレート一覧から選択させる手段と、
そのコンポーネントの設計仕様に基づくコードを前記テンプレートに埋め込むことにより、そのコンポーネントのソースコードを自動生成する手段と
を備えたことを特徴とするWebアプリケーション開発システム。
【請求項１８】
請求項１７に記載のWebアプリケーション開発システムにおいて、
前記テンプレート一覧は、スーパークラスのテンプレートを含むものであり、前記ソースコードを自動生成する手段は、該スーパークラスを継承してソースコードを作成するものであることを特徴とするWebアプリケーション開発システム。
【請求項１９】
請求項１７に記載のWebアプリケーション開発システムにおいて、
前記各コンポーネントの名称を生成する手段は、前記各画面毎に、画面名称に１対１対応で、サーブレット、JSP、および／またはBeanの各コンポーネントの名称を生成するものであることを特徴とするWebアプリケーション開発システム。
【請求項２０】
請求項１２から１９の何れか１つに記載のWebアプリケーション開発システムにおいて、
開発すべきWebアプリケーションシステムのうち、サーブレットはWebブラウザからのリクエストを受ける役割、Beanはサーブレットの要求に従い処理を行いその処理結果を保持する役割、JSPはBeanの処理結果を参照してWebブラウザ上に表示するHTMLを出力する役割、というように役割を分離したことを特徴とするWebアプリケーション開発システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Webアプリケーション開発方法および開発支援システムに関し、特にサーバサイドJava（登録商標）の技術を利用したWebアプリケーションシステムにおけるサーブレット、JSP、およびBeanの設計および開発支援の技術に関する。
【背景技術】
【０００２】
近年、インターネット、イントラネット上のWebアプリケーションシステムで、サーバサイドJavaの技術を利用したシステムが普及してきている。従来のWebシステムでは、CGI（Common Gateway Interface）プログラムによるものが一般的であった。しかし、CGIに代わり、サーブレットを利用したシステム開発が主流になりつつある。サーブレットとは、CGIとよく似た機能を提供する技術で、クライアント（Webブラウザ）から送信されるリクエストをサーバ上で処理し結果を返送するサーバサイドのプログラムである。
【０００３】
最も基本的なサーブレットを利用したシステムにおいては、次のような使い方となる。Webブラウザから送信したリクエストに応じてサーブレットが起動され、そのサーブレットでデータベースへのアクセスを行ったり、そのアクセス結果を受けてデータ加工などの処理を行う。また、リクエストの内容に応じて分岐して処理したり、他のサーブレットを呼び出すなどして、リクエストの結果としてWebブラウザに返送する。サーブレットに代わって、JSPを利用する場合もある。JSP（JavaServer Pages）とはHTMLファイル中にJavaのコードを記述して、動的にページを生成することができる技術であり、サーブレットとJSPとを組み合わせて利用することもできる。
【０００４】
従来のサーブレット、JSP、およびBeanを利用したシステムの構成において、Beanはデータベースにアクセスするとともに、業務処理も行い、また、その情報を保持する役割を持っており、Beanの設計や開発にはサーブレット、JSPの開発以上にJavaの知識と経験が必要であった。また、従来の開発では、サーバサイドにおける各コンポーネント単位に共通化を行っていたために、サーブレット、JSP、またはそれらから利用するBean単位に分担して作業をしていた。そのためにはウォータフォール式の開発に見られるように、開発対象があらかじめ明確に定まっている必要があった。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
近年のシステム開発において、開発サイクルはますます短くなってきている。特に業務系システムや業務サービスをWeb上で公開する場合、その開発サイクルを短縮することは顧客ニーズとして強い要求事項である。Webアプリケーションシステムにおいて、Webページのデザインや情報を定期的に変更するだけでなく、そのシステム上で新規サービスを早期に公開したり、サービスを迅速に拡張したりと、短期間に開発を行うことが求められている。それらの顧客ニーズに対応し、Webアプリケーションシステムの開発サイクルに対応するためにも、その開発作業を軽減させ、かつ、スピードアップを図る必要がある。
【０００６】
また、従来の開発方法では、サーブレットやJSPでリクエストに応じた処理を行い、その処理結果に応じて画面を生成するプログラムを記述していた。そのため、システムが大規模になり、システムやプログラミングが複雑になるに従って、個々の開発者には広範囲なJavaの知識が要求され、開発を行うJavaプログラマを集める必要もあった。さらに、開発するサーブレットやJSPで行う処理の把握やコーディング、デバッグ、メンテナンス作業においても負担がかかっていた。
【０００７】
作業分担をサーブレット毎、サーブレットから利用するBean毎という単位で行う場合、それらを結合して動作を確認するためには、開発者からクラスが提供されるのを待つ必要があった。一方、分担開発する場合、サーブレット、JSP、およびBeanを担当者毎に独自に開発するため、共通化を図ることができない。そのため、開発作業は各担当者のスキルに依存し、メンテナンス作業も難しくなっていた。
【０００８】
本発明は、上述した課題を解決することを目的とするものである。すなわち、サーバサイドJavaの技術を利用したWebアプリケーションシステムにおけるサーブレット、JSP、およびBeanの設計開発において、設計開発作業の負担を軽減させ、かつ設計開発のスピードアップを図ることを目的とするものである。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、請求項１に係る発明は、インターネットやイントラネット上で、サーバサイドJavaの技術であるサーブレット、JSP、およびJavaBeansコンポーネント（Bean）による構成を持つWebアプリケーションシステムを開発するWebアプリケーション開発方法であって、前記Webアプリケーションシステムの設計仕様にある画面仕様に基づいて、画面毎に対応するサーブレット、JSP、およびBeanの各コンポーネントのソースファイル名称を対応させて定義することによって、サーブレット、JSP、およびBeanの開発を行うことを特徴とする。
【００１０】
請求項２に係る発明は、インターネットやイントラネット上で、サーバサイドJavaの技術であるサーブレット、JSP、およびJavaBeansコンポーネント（Bean）による構成を持つWebアプリケーションシステムを開発するWebアプリケーション開発方法であって、前記Webアプリケーションシステムの設計仕様にある画面仕様に基づいて、画面毎に対応するサーブレット、JSP、およびBeanの各コンポーネントのソースファイル名称を１対１に対応させて定義することによって、サーブレット、JSP、およびBeanの開発を行うことを特徴とする。
【００１１】
請求項３に係る発明は、請求項１または２において、前記画面と前記サーブレット、JSP、およびBeanの各コンポーネントのソースファイル名称との対応関係と、前記設計仕様の情報を利用して、各コンポーネントのソースコードを自動生成することを特徴とする。
【００１２】
請求項４に係る発明は、請求項１または２において、前記Beanのコンポーネントは、HTMLページを表示するために必要な情報をすべて持ち、HTMLページの情報とデータベースから取得する情報とをマッピングする役割を持つことを特徴とする。
【００１３】
請求項５に係る発明は、請求項３において、前記サーブレット、JSP、およびBeanの各コンポーネントのソースコードの自動生成の際、生成するコンポーネント毎に、テンプレート一覧を表示しその中から選択されたテンプレートを雛形とし、該雛形に前記設計仕様に応じたコードを埋め込むことによりソースコードを自動生成することを特徴とする。
【００１４】
請求項６に係る発明は、インターネットやイントラネット上で、サーバサイドJavaの技術であるサーブレット、JSP、およびJavaBeansコンポーネント（Bean）による構成を持つWebアプリケーションシステムを開発するWebアプリケーション開発方法であって、設計仕様にある画面仕様を読み込み、各画面毎に、画面名称に対応させたサーブレット、JSP、および／またはBeanの各コンポーネントの名称を生成するステップと、生成した名称の各コンポーネントについて、そのコンポーネントのソースファイルの雛形となるテンプレートをテンプレート一覧から選択させるステップと、そのコンポーネントの設計仕様に基づくコードを前記テンプレートに埋め込むことにより、そのコンポーネントのソースコードを自動生成するステップとを備えたことを特徴とする。
【００１５】
請求項７に係る発明は、請求項６において、前記テンプレート一覧は、スーパークラスのテンプレートを含むものであり、前記ソースコードを自動生成するステップは、該スーパークラスを継承してソースコードを作成するものであることを特徴とする。
【００１６】
請求項８に係る発明は、請求項６において、前記各コンポーネントの名称を生成するステップは、前記各画面毎に、画面名称に１対１対応で、サーブレット、JSP、および／またはBeanの各コンポーネントの名称を生成するものであることを特徴とする。
【００１７】
請求項９に係る発明は、請求項１から８において、開発すべきWebアプリケーションシステムのうち、サーブレットはWebブラウザからのリクエストを受ける役割、Beanはサーブレットの要求に従い処理を行いその処理結果を保持する役割、JSPはBeanの処理結果を参照してWebブラウザ上に表示するHTMLを出力する役割、というように役割を分離したことを特徴とする。
【００１８】
請求項１０に係る発明は、請求項１から９の何れか１つに記載のWebアプリケーション開発方法に係るプログラムである。請求項１１に係る発明は、請求項１から９の何れか１つに記載のWebアプリケーション開発方法に係るプログラムを記憶した記憶媒体である。
【００１９】
請求項１２に係る発明は、インターネットやイントラネット上で、サーバサイドJavaの技術であるサーブレット、JSP、およびJavaBeansコンポーネント（Bean）による構成を持つWebアプリケーションシステムを開発するWebアプリケーション開発システムであって、前記Webアプリケーションシステムの設計仕様にある画面仕様に基づいて、画面毎に対応するサーブレット、JSP、およびBeanの各コンポーネントのソースファイル名称を対応させて定義することによって、サーブレット、JSP、およびBeanの開発を行う手段を備えたことを特徴とする。
【００２０】
請求項１３に係る発明は、インターネットやイントラネット上で、サーバサイドJavaの技術であるサーブレット、JSP、およびJavaBeansコンポーネント（Bean）による構成を持つWebアプリケーションシステムを開発するWebアプリケーション開発システムであって、前記Webアプリケーションシステムの設計仕様にある画面仕様に基づいて、画面毎に対応するサーブレット、JSP、およびBeanの各コンポーネントのソースファイル名称を１対１に対応させて定義することによって、サーブレット、JSP、およびBeanの開発を行う手段を備えたことを特徴とする。
【００２１】
請求項１４に係る発明は、請求項１２または１３において、前記画面と前記サーブレット、JSP、およびBeanの各コンポーネントのソースファイル名称との対応関係と、前記設計仕様の情報を利用して、各コンポーネントのソースコードを自動生成する手段を、さらに備えたことを特徴とする。
【００２２】
請求項１５に係る発明は、請求項１２または１３において、前記Beanのコンポーネントは、HTMLページを表示するために必要な情報をすべて持ち、HTMLページの情報とデータベースから取得する情報とをマッピングする役割を持つことを特徴とする。
【００２３】
請求項１６に係る発明は、請求項１４において、前記サーブレット、JSP、およびBeanの各コンポーネントのソースコードの自動生成の際、生成するコンポーネント毎に、テンプレート一覧を表示しその中から選択されたテンプレートを雛形とし、該雛形に前記設計仕様に応じたコードを埋め込むことによりソースコードを自動生成する手段を、さらに備えたことを特徴とする。
【００２４】
請求項１７に係る発明は、インターネットやイントラネット上で、サーバサイドJavaの技術であるサーブレット、JSP、およびJavaBeansコンポーネント（Bean）による構成を持つWebアプリケーションシステムを開発するWebアプリケーション開発システムであって、設計仕様にある画面仕様を読み込み、各画面毎に、画面名称に対応させたサーブレット、JSP、および／またはBeanの各コンポーネントの名称を生成する手段と、生成した名称の各コンポーネントについて、そのコンポーネントのソースファイルの雛形となるテンプレートをテンプレート一覧から選択させる手段と、そのコンポーネントの設計仕様に基づくコードを前記テンプレートに埋め込むことにより、そのコンポーネントのソースコードを自動生成する手段とを備えたことを特徴とする。
【００２５】
請求項１８に係る発明は、請求項１７において、前記テンプレート一覧は、スーパークラスのテンプレートを含むものであり、前記ソースコードを自動生成する手段は、該スーパークラスを継承してソースコードを作成するものであることを特徴とする。
【００２６】
請求項１９に係る発明は、請求項１７において、前記各コンポーネントの名称を生成する手段は、前記各画面毎に、画面名称に１対１対応で、サーブレット、JSP、および／またはBeanの各コンポーネントの名称を生成するものであることを特徴とする。
【００２７】
請求項２０に係る発明は、請求項１２から１９において、開発すべきWebアプリケーションシステムのうち、サーブレットはWebブラウザからのリクエストを受ける役割、Beanはサーブレットの要求に従い処理を行いその処理結果を保持する役割、JSPはBeanの処理結果を参照してWebブラウザ上に表示するHTMLを出力する役割、というように役割を分離したことを特徴とする。
【００２８】
すなわち本発明は、例えば、設計ドキュメントにある画面仕様の各画面に対応させて、サーブレット、JSP、およびBeanの各コンポーネントのソースファイル名称を１対１に対応させて表形式で定義する対応表生成部と、その対応表と設計ドキュメントの情報を利用して、サーブレット、JSP、およびBeanの各コンポーネントの名称や変数、メソッドの定義、および各コンポーネント間の呼び出し関係を自動的に抽出し、ソースコードとして出力するコード自動生成部とを備えることを特徴とする。コード自動生成部によりソースコードを生成する際に使用する、各コンポーネントのテンプレートとなるコードを格納したテンプレートデータや、サーブレットのスーパークラスとなるソースコード、および生成された各コンポーネントのソースコードは、所定の外部記憶装置に記憶する。
【００２９】
このように、Webアプリケーションシステムの開発において、各画面に対してサーブレット、JSP、およびBeanの各コンポーネントのソースファイル名称を１対１に対応させて定義することで、各コンポーネントの対応を明確にすることができる。また、サーブレット、JSP、およびBeanの処理の標準化を行うことにより、画面単位に開発作業を分担することもできる。
【００３０】
また、画面毎の各コンポーネントの対応を明確にし、それぞれの役割を分離して設計することで、複雑なシステムやシステムへの機能拡張などメンテナンスにも簡単に対応できる。サーバサイドJavaの技術を利用すれば、サーブレットはWebブラウザからのリクエストを受ける役割、Beanはサーブレットの要求に従い処理し、その処理結果を保持する役割、JSPはBeanの処理結果を参照してWebブラウザ上表示するHTMLを出力する役割、というように役割を明確に分離することができる。特にBeanに関しては、業務分析、設計の結果得られる業務に関するクラスやデータベースにアクセスするクラスなどを利用して、HTMLページを表示するために必要な情報をすべて保持するように設計することを特徴とする。
【発明の効果】
【００３１】
本発明によれば、以下の効果が得られる。
（１）設計ドキュメントを記述し、各コンポーネントの名称の対応表を作成するだけで、システム開発を容易に行うことができ、かつ、開発作業を軽減できるため、開発期間を短縮することができる。
（２）各画面に対するサーブレット、JSP、およびBeanの各コンポーネントの対応が明確で、それぞれの役割が分離できているため、画面単位に分担開発が行える。
（３）各コンポーネントのソースコードを自動生成することによって、Javaの特別な知識を必要とはせず、プログラミングを簡単にすることができ、開発作業を軽減することができる。自動生成するソースコードに関して、コード自動生成部によって、標準化した統一された形でコードを生成できるためメンテナンスは容易になり、性能面でも劣化することなく保証されたプログラムを提供することができる。
（４）システムのバージョンアップにおける機能追加や拡張、修正でも、サーブレット、JSP、およびBeanの各コンポーネントを新たに定義して追加する作業であったり、修正対象、修正範囲にあるコンポーネントの特定が容易であるため、拡張性のあるシステムを構築できる。また、この本発明の開発支援システムが提供するものは、サーブレット、JSP、およびBeanで構成するWebアプリケーションシステムのフレームワークであるともいえる。
（５）Webアプリケーションシステムの開発に際して、画面仕様が決定することで、各コンポーネントを定義できるため、プロトタイプ作成や、早い時期に実際に動作するプログラムでアーキテクチャを検証することができる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明を実施する場合の一形態について図面を参照して具体的に説明する。
【００３３】
本発明の第１の実施の形態について説明する。ここでは、図３で後述するサーブレット、JSP、Beanを利用したWebアプリケーションシステムを設計開発する例で説明する。特に、本発明は、設計ドキュメントにある画面仕様の各画面に対応させて、サーブレット、JSP、およびBeanの各コンポーネントのソースファイル名称を１対１に対応させて対応表として定義することを特徴としている。この対応表と設計ドキュメントの情報を利用して、サーブレット、JSP、およびBeanの各コンポーネントの名称や変数、メソッドの定義、および各コンポーネント間の呼び出し関係を自動的に抽出し、ソースコードを自動生成する。
【００３４】
図１は、本実施の形態において設計開発するWebアプリケーションシステムの画面とサーブレット、JSP、およびBeanとの対応表の一例を示す図である。対応表101は、画面名称102とJSP名称103とサーブレットファイル名称104とBeanファイル名称105とから成り、それぞれ画面に対して１対１となるようにファイル名称を定義する。JSP名称103の拡張子は".jsp"、サーブレットファイル名称104とBeanファイル名称の拡張子は".java"とする。例えば、画面名称"新規発注画面"に対しては、JSP名称103は"Order.jsp"とし、サーブレットファイル名称104は、JSP名称103に"Servlet"を付加した"OrderServlet.java"とする。同様に、Beanファイル名称105は、"Bean"を付加した"OrderBean.java"とする。"エラー表示画面"106の場合、サーブレットおよびBeanと１対１で対応するものではなく、いくつかのサーブレットから呼び出される画面であり、JSP名称103"Error.jsp"のみを定義してある。
【００３５】
図１中、107は様々な情報を格納する外部記憶装置を示す。外部記憶装置107には対応表101に定義したサーブレット、JSP、およびBeanの各コンポーネントのソースコード110、113、116を生成するために必要な情報を格納している。108および109はJSPソースコード110を生成するために必要な情報を示し、画面イメージ、フォーム項目表、入力処理表、および画面遷移図を記述した設計ドキュメント108とテンプレートデータ109から成る。111および112はサーブレットソースコード113を生成するために必要な情報を示し、パッケージ表、画面遷移図、エラー対応表、フォーム項目表、およびBean公開メソッド表を記述した設計ドキュメント111とテンプレートデータ112とサーブレット・スーパークラスソースコードデータから成る。114と115はBeanソースコード116を生成するために必要な情報を示し、パッケージ表、クラス図、シーケンス図、フォーム項目表、およびBean公開メソッド表を記述した設計ドキュメント114とテンプレートデータ115から成る。
【００３６】
図２は、Webアプリケーションシステムを設計開発するシステムのシステム構成の一例を示した図である。図２中、201はコマンド入力やマウスを使った操作を行う端末、202は本発明を実現する機能やデータを格納する中央処理装置、203は様々な情報を格納する外部記憶装置を示す。外部記憶装置203に格納されている設計ドキュメント204は、Webアプリケーションシステムの開発において、顧客からの要求や業務仕様から得られる画面仕様などの設計ドキュメント、および、画面デザインや各画面イメージを表すHTMLファイルなどが格納されている。図１中、108から116で示した設計ドキュメント、テンプレートデータ、および生成されたソースコードは、この外部記憶装置203に格納される。また、サーブレット・スーパークラスソースコードデータ212が格納される。
【００３７】
中央処理装置202に格納されている機能は、設計ドキュメント204に格納されている画面仕様から画面情報を読み込み、画面とサーブレット、JSP、およびBeanとの対応表206を生成する対応表生成部205と、対応表206と画面仕様やシステム設計書などの設計ドキュメント204の情報とテンプレートデータ208とを利用して、サーブレット、JSP、およびBeanの各ソースコードを自動生成するコード自動生成部207とから構成される。テンプレートデータ208には、ソースコードを生成する際の各コンポーネントのテンプレートとして利用するほか、サーブレットのスーパークラスとなるソースコードを格納する。コード自動生成部207によって生成される各ソースコードは、サーブレットソースコードデータ209、JSPソースコードデータ210、およびBeanソースコードデータ211に、それぞれ格納される。
【００３８】
図３は、本実施形態のシステムのコード自動生成部207によって生成したサーブレット、JSP、およびBeanを利用したWebアプリケーションシステムの全体構成の一例を示した図である。このWebアプリケーションシステムは、クライアント301からWebブラウザ302によって利用される。Webブラウザ302上には、HTMLページ303が表示される。Webブラウザ302からのリクエストはHTTP経由でサーバ304側に送信される。サーバ304にはHTTPサーバ305とアプリケーションサーバ306があり、アプリケーションサーバ306にはサーブレットやJSPの実行環境が含まれている。
【００３９】
コード自動生成部207によって生成したサーブレット、JSP、およびBeanは、それぞれ実行可能な状態で、サーバ304側のアプリケーションサーバ306上に配置する。サーバ304側にリクエストが送信されると、リクエストに応じて該当するサーブレット307が起動される。サーブレット307は、対応するBean 308に処理を要求する。さらに、Bean 308はDBアクセスオブジェクト310を利用してデータベース311にアクセスし、業務に関する処理やデータ加工などを行い、その処理結果を保持する。DBアクセスオブジェクト310は、業務を分析、設計した結果、作成されるクラスや、再利用可能な既存のクラスである。次に、サーブレット307からJSP309にBean 308を渡し、JSP309を呼び出す。JSP309は、Bean 308で保持する処理結果を参照して、HTMLページを生成し、クライアント301側に返送する。返送されたHTMLページは、Webブラウザ302上に表示される。ここで、サーブレット307、JSP309、およびBean 308は、Webブラウザ302に表示するHTMLページページ303に対して１対１で定義してある。
【００４０】
サーブレット307は、Webブラウザ302からのリクエストの受け付け、Bean 308への処理要求、およびJSP309の呼び出しという、それぞれの間をつなぎ、制御する役割を持つ。JSP309はHTMLページを出力するための表示に関することを受け持ち、Bean 308は業務に関する処理を受け持つ。Bean 308やJSP309を利用せず、サーブレット307のみでWebブラウザ302からのリクエストを処理することは可能であるが、Bean 308やJSP309を利用することでそれぞれの役割を明確に分離することで、機能分担を簡潔に把握することができる。
【００４１】
図４を参照して、対応表生成部205によって対応表101を生成する処理の流れを説明する。まず、設計ドキュメント204に格納されている画面仕様からすべての画面情報を読み込む（ステップ401）。画面情報から画面名称と画面コード名称を取得する（ステップ402）。画面コード名称は、例えば、各画面イメージとして作成されているHTMLファイルのファイル名称から取得してもいいし、画面情報として定義してあってもよい。また、端末201から各画面毎に入力してもよい。ここでは、取得した画面名称を"新規発注画面"、画面コード名称を"Order"として説明する。次に、取得した画面コード名称に拡張子".jsp"を付けてJSP名称とする（ステップ403）。画面コード名称に"Servlet"を付加し、拡張子".java"を付けてサーブレットファイル名称とする（ステップ404）。画面コード名称に"Bean"を付加し、拡張子".java"を付けてBeanファイル名称とする（ステップ405）。ここで、各ファイル名称は"Order.jsp"、"OrderServlet.java"、"OrderBean.java"と定義される。画面名称と、定義されたJSP名称、サーブレットファイル名称、およびBeanファイル名称の各ファイル名称を対応表101の該当個所に設定する（ステップ406）。ステップ401で取得した画面情報のすべてに対して処理したかをチェックし（ステップ407）、すべて処理するまで、ステップ402からステップ406までの処理を繰り返す。すべての画面情報に対して処理を行ったら、最後に、対応表101を出力して終了する（ステップ408）。ここで生成された対応表101は、設計ドキュメント204に格納されてもよい。
【００４２】
次に、図５を参照して、サーブレット、JSP、およびBeanの各ソースコードをコード自動生成部207によって自動生成する処理の流れを説明する。まず、対応表生成部205によって生成した対応表101を読み込む（ステップ501）。対応表101から画面名称102を取得する（ステップ502）。ここで取得した画面名称を"新規発注画面"として説明する。取得した画面名称に対応するJSP名称103、サーブレットファイル名称104、およびBeanファイル名称105の各名称がすべて設定されているかチェックする（ステップ503）。例えば、図１中の"エラー表示画面"106の場合、JSP名称103"Error.jsp"のみであるため、ステップ503から502に戻る。各名称がすべて設定してある場合、以降の処理を行う。ステップ502で取得した画面である"新規発注画面"に対するサーブレットのソースコード"OrderServlet.java"を生成する（ステップ504）。同様に、JSPのソースコード"Order.jsp"を生成し（ステップ505）、Beanのソースコード"OrderBean.java"を生成する（ステップ506）。ステップ501で読み込んだ対応法101のすべての画面に対して処理したかをチェックし（ステップ507）、すべて処理するまで、ステップ502からステップ506までの処理を繰り返す。すべての画面に対して処理を行ったら終了する。
【００４３】
図６と図７を用いて、指定した画面名称に対するサーブレットのソースコードを自動生成する処理の流れを説明する。サーブレットのソースコードを生成するに際しては、サーブレットのテンプレート701、パッケージ表702、対応表703、エラー対応表704、フォーム項目表706、およびBean公開メソッド表707を使用する。図７中、708は生成されるサーブレットのソースコードを示す。まず、対応表101から指定された画面名称102に対応する各名称を取得する（ステップ601）。ここで指定された画面名称102を"新規発注画面"として説明する。サーブレットファイル名称の"OrderServlet.java"をソースコード708のファイル名称としてファイルを作成する（ステップ602）。次に、テンプレートデータ208からサーブレットのテンプレート701を読み込む（ステップ603）。テンプレート701には、サーブレットの基本的な枠組みが記述されている。
【００４４】
次に、設計ドキュメント204からパッケージ表702を読み込み、package文709とimport文710を出力する（ステップ604）。package文709にはサーブレットのパッケージ名称を出力し、import文710にはBeanのパッケージ名称を出力する。パッケージ表702には各コンポーネントのパッケージ名称を記述してある。サーブレットファイル名称104"OrderServlet.java"から"OrderServlet"をクラス名称として取得し、クラス定義部分711を出力する（ステップ605）。"OrderServlet"が継承するスーパークラスのサーブレットとして、例えば、"BaseServlet"712を出力する。"BaseServlet"712は、本実施形態の開発支援システムで利用するクラスとして提供する。例えば、"names()"713と"business()"717は"BaseServlet"712で定義してあるメソッドであり、サブクラスで実装する。"names()"713はサーブレットで利用するJSP、Beanクラス、およびエラーJSPの名称を設定するメソッドで、"business()"717はサーブレットで処理する内容を定義するメソッドである。ステップ601で取得したJSP名称103"Order.jsp"を使用するJSP714として出力し（ステップ606）、Beanファイル名称105"OrderBean.java"から使用するBeanクラス名称"OrderBean"715を取得し出力する（ステップ607）。そして、設計ドキュメント204からエラー対応表704を読み込み、"OrderServlet.java"に対するエラーJSP名称716を取得し出力する（ステップ608）。エラー対応表704は、各サーブレットファイル名称104とエラーJSP名称とを対応させた表で、ここでサーブレットを実行してエラーが発生した際にエラーを表示させるためのJSPを指定する。
【００４５】
次に、"business()"717の処理内容を出力する。ステップ607で取得した使用するBeanクラス名称を使って変数の設定を行う（ステップ609）。"bean"はスーパークラス"BaseServlet"で定義されている変数で、サブクラスで使用するBeanクラスにキャストして利用する。そして、設計ドキュメント204から画面遷移図705を読み込み、画面名称から画面遷移元の画面を検索し（ステップ610）、設計ドキュメント204から遷移元の画面に対するフォーム項目表706を読み込む（ステップ611）。Webブラウザ302からサーバ304にリクエストを送信する際に、HTMLページ303のフォームに記述されている情報が入力データとして付加される。その入力データをフォーム項目表706で指定する。使用するBeanクラスのBean公開メソッド表707を設計ドキュメント204から読み込み（ステップ612）、フォームから渡される値を取得し、使用するBeanに値を設定するコード718を出力する（ステップ613）。Bean公開メソッド表707は使用するBeanクラスで公開している全メソッドの一覧で、フォーム項目表706に記述されている入力データに対するアクセスメソッドが定義されている。次に、フォーム項目表706に記述されている項目すべてに対して値を設定するコード718を出力したかをチェックする（ステップ614）。すべての項目に対して処理するまでステップ613の処理を行う。すべての項目を処理したら、"business()"717の定義を終了する。最後に、作成したソースコード708のファイルをサーブレットソースコードデータ209に格納し（ステップ615）、サーブレットのソースコードを自動生成する処理を終了する。
【００４６】
図７中、"BaseServlet"712はスーパークラスとして提供すると説明したが、図８により、スーパークラス"BaseServlet"712のソースコードを説明する。図８中、801はソースコードを示し、"BaseServlet"802がスーパークラスのクラス名称を示す。
【００４７】
まず、803はサーブレットで扱う変数の宣言で、JSP名称、Beanクラス名称、エラーJSP名称、および利用するBeanオブジェクトを宣言する。以下、804から811までメソッドの定義である。"init()"807と"doPost()"809は"HttpServlet"で定義されているメソッドで、このクラスで実装する。"business()"804はサブクラスでオーバライドし、実際の処理を記述し、"attribute()"805はJSPからBeanをアクセスするための設定を行い、"forward()"806はサーブレットからJSPを呼び出すメソッドである。"doPost()"809で、804から806のメソッドの処理順序を決め、サブクラスでは処理順序を意識しないで済むようにしている。そのため、サブクラスを作成する開発者はサーブレットに関する特別な知識を必要としなくても済む。また、"init()"807からは、"names()"808を呼び出している。"names()"808は抽象メソッドとして定義してあり、サブクラスで実装する。図７中、714から716にあるようにサーブレットで使用するJSP、およびBeanクラスを設定する。"names()"808で、各名称を設定するだけで動作可能なサーブレットを作成することが可能になる。"error()"810は、サーブレットの実行時にエラーが発生した場合の処理を定義したメソッドである。以降は、803で宣言した変数に対するアクセスメソッドの定義である。
【００４８】
図９と図１０を用いて、指定した画面名称に対するJSPのソースコードを自動生成する処理の流れを説明する。JSPのソースコードを生成するに際しては、JSPのテンプレート1001、画面イメージ1002、対応表1003、画面遷移図1004、フォーム項目表1005、および入力処理表1006を使用する。図１０中、1007は生成されるJSPのソースコードを示す。
【００４９】
まず、対応表101から指定された画面名称102に対応する各名称を取得する（ステップ901）。ここで指定された画面名称102を"新規発注画面"として説明する。JSP名称の"Order.jsp"をソースコード1007のファイル名称としてファイルを作成する（ステップ902）。次に、テンプレートデータ208からJSPのテンプレート1001を読み込む（ステップ903）。テンプレート1001には、JSPの基本的な枠組みが記述されている。
【００５０】
次に、ステップ901で取得したBeanファイル名称105"OrderBean.java"からBeanクラス名称1008"OrderBean"を取得し出力する（ステップ904）。<jsp:useBean>1009は、JSP309内でBean 308を使用するためのJSP構文である。設計ドキュメント204から画面遷移図1004を読み込み、画面遷移先の画面を検索し（ステップ905）、遷移先の画面のサーブレットファイル名称104"OrderConfirmServlet.java"から、遷移先サーブレット1010に"OrderConfirmServlet"を設定する（ステップ906）。そして、設計ドキュメント204から入力処理表1005とフォーム項目表1006を読み込み（ステップ907）、画面イメージ1002のHTMLファイルを読み込む（ステップ908）。入力処理表1005はボタン押下やリスト選択などの際に処理する内容を入力チェック条件などと共に記述する。ステップ906で設定した遷移先サーブレット1010、および入力処理表1005とフォーム項目表1006の内容を、ステップ908で読み込んだHTMLファイルの内容に反映させて出力する（ステップ909）。最後に、作成したソースコード1007のファイルをJSPソースコードデータ210に格納し（ステップ910）、JSPのソースコードを自動生成する処理を終了する。
【００５１】
図１１と図１２を用いて、指定した画面名称に対するBeanのソースコードを自動生成する処理の流れを説明する。Beanのソースコードを生成するに際しては、Beanのテンプレート1201、パッケージ表1202、対応表1203、クラス図1204、シーケンス図1205、Bean公開メソッド表1206、およびフォーム項目表1207を使用する。図１２中、1208は生成されるBeanのソースコードを示す。
【００５２】
まず、対応表101から指定された画面名称102に対応する各名称を取得する（ステップ1101）。ここで指定された画面名称102を"新規発注画面"として説明する。Beanファイル名称の"OrderBean.java"をソースコード1208のファイル名称としてファイルを作成する（ステップ1102）。次に、テンプレートデータ208からBeanのテンプレート1201を読み込む（ステップ1103）。テンプレート1201には、Beanの基本的な枠組みが記述されている。
【００５３】
次に、設計ドキュメント204からパッケージ表1202を読み込み、package文1209を出力する（ステップ1104）。package文1209にはBeanのパッケージ名称を出力する。Beanファイル名称105"OrderBean.java"から"OrderBean"をクラス名称として取得し、クラス定義部分1210を出力する（ステップ1105）。設計ドキュメント204からクラス図1204を読み込み、"OrderBean"が継承するスーパークラスのBeanを検索し、そのクラス名称1211を出力する（ステップ1106）。そして、サーブレットから実行されるメソッドである"doBusiness()"1212の処理内容を定義する。設計ドキュメント204からシーケンス図1205を読み込み、シーケンス図1205に従って、"doBusiness()"1212を定義し出力する（ステップ1107）。クラス図1204とシーケンス図1205は、UML（Unified Modeling Language）表記で記述されたドキュメントである。
【００５４】
次に、設計ドキュメント204からフォーム項目表1207とBean公開メソッド表1206を読み込み（ステップ1108）、フォーム項目表1207に記述されている項目すべてに対する変数宣言1213を出力し（ステップ1109）、Bean公開メソッド表1206のすべてのメソッドを定義し出力する（ステップ1110）。最後に、作成したソースコード1208のファイルをBeanソースコードデータ211に格納し（ステップ1112）、Beanのソースコードを自動生成する処理を終了する。
【００５５】
図１３を用いて、Beanは画面に表示するために必要な情報をすべて持っているコンポーネントであることを説明する。図１３は、画面情報とBeanとの関係を表している。図１３中、1301は画面イメージであり、"新規発注確認画面"を例にして説明する。1302はBeanのクラスを示す。クラス1302の上の区画1303に表示している名称はクラス名で、"新規発注確認画面"に対応する"OrderConfirmBean"がBeanのクラス名であることを示す。下の区画1304はクラスの属性を表す。"OrderConfirmBean"は"新規発注確認画面"を表示するために必要となる情報をすべて保持し、それらの情報はJSPから参照され、HTMLページとして表示される。画面に表示するために必要な情報、およびフォームで入力される情報は、図１２中のフォーム項目表1207とBean公開メソッド1206とで定義されている。
【００５６】
次に、本発明の第２の実施の形態を説明する。ここでは、図１４で後述するサーブレット、JSP、およびBeanを利用したWebアプリケーションシステムを設計開発する例で説明する。特に、本発明は、設計情報にある画面仕様の各画面に対応させて、サーブレット、JSP、およびBeanの各コンポーネントの名称を対応させて定義することを特徴としている。この対応の定義と、設計情報の内容を利用して、メソッドの定義、および各コンポーネント間の呼び出し関係を自動的に抽出し、ソースコードを自動生成する。
【００５７】
図１４は、本実施の形態において設計開発したサーブレット、JSP、およびBeanを利用したWebアプリケーションシステムの全体構成の一例を示した図である。このWebアプリケーションシステムは、クライアント1401からWebブラウザ1402によって利用される。Webブラウザ1402上には、HTMLページ1403が表示される。Webブラウザ1402からのリクエストはHTTP経由でサーバ側1404に送信される。サーバ1404には、HTTPサーバ1405とアプリケーションサーバ1406が設けられており、アプリケーションサーバ1406には、サーブレットやJSPの実行環境が含まれている。
【００５８】
サーブレット1407、JSP 1408、およびBean 1409は、サーバ1404側のアプリケーションサーバ1406上に配置され、クライアント1401側のWebブラウザ1402からリクエストが送信されると、リクエストに応じて該当するサーブレット1407が起動される。サーブレット1407は、対応するBean 1409に処理を要求する。さらに、Bean 1409は、業務クラスおよびDBアクセスクラス1410を利用して、データベース1411にアクセスし、業務処理に必要なデータ操作を行い、業務に関する処理やデータ加工などを行う。Bean1409は、その処理結果を保持しておく。業務クラス、DBアクセスクラス1410は、業務を分析、設計した結果、作成されるクラスや、再利用可能な既存のクラスである。次にサーブレット1407は、JSP 1408にBean 1409を渡し、JSP 1408を呼び出し、HTMLページの出力を依頼する。JSP 1408は、Bean 1409で保持している処理結果を参照して、HTMLページを生成し、クライアント1401側に返信する。返信されたHTMLページ1403は、Webブラウザ1402上に表示される。
【００５９】
前述したようにサーブレット1407は、Webブラウザ1402からのリクエストの受け付け、Bean 1409への処理要求、およびJSP 1408の呼び出しという、それぞれの間をつなぎ、制御する役割を持つ。JSP 1408はHTMLページを出力するための表示に関することを受け持ち、Bean 1409は業務クラス、DBアクセスクラス1410を利用して業務を組み立て、実行する処理と、その処理結果の保持ということを受け持つ。それぞれの役割を明確に分離することで、機能分担を簡潔に把握することができる。
【００６０】
図１５は、本実施形態のWebアプリケーションシステムにおける受信コンポーネントと応答コンポーネントの関係をいくつか示している。入力画面1510は、サーバ1404にリクエストを送信する画面を示す。このリクエストがサーバ側で処理され、その結果が出力画面1504として、クライアント1401に返信される。図１４中、サーブレット1407が受信コンポーネント1502に相当し、JSP 1408が応答コンポーネント1503に相当する。図１４は、サーブレット、JSP、およびBeanを利用したWebアプリケーションシステムの構成であるが、JSP 1408やBean 1409を利用せず、サーブレット1407だけ、またはJSP 1408だけでWebブラウザ1402からのリクエストを受け、処理を返すことも可能である。受信窓口部品１(1505）や応答窓口部品１（1506）を用意することで、受信したリクエストに応じて、対応する受信部品に振り分けたり、処理結果に応じて、対応する応答部品に振り分けることもできる。従って、受信コンポーネントと応答コンポーネントが１対１とは限らない。開発対象のWebアプリケーションシステムの構成に従って、適切な関係を選択して、コンポーネントを定義すればよい。ここでは、受信部品７（1507）と応答部品７（1508）のように、受信コンポーネントと応答コンポーネントが１対１である場合について説明する。
【００６１】
図１６と図１７は、受信コンポーネント1502と応答コンポーネント1503の対応を１対１に定義した例を示す。イベント1601は、入力画面1501からサーバにリクエストが送信される際の、ボタン押下などのイベントを示す。条件1602は、サーバ側で処理した結果、受信コンポーネント1502が応答コンポーネント1503を呼び出す際の条件を示す。条件1602が設定されている場合は、例外として、受信コンポーネント1502と応答コンポーネント1503との対応は１対ｎとなる。
【００６２】
図１６では、入力画面1501からのリクエストを受ける受信コンポーネント1502は、出力画面1504に依存している。入力画面1501からのリクエストは、次の出力画面1504を出力するものとして、受信コンポーネント1502と応答コンポーネント1503は、出力画面1504に対応して作成される。入力画面1501の画面Ｃ 1603では、イベント1601によって、リクエストを送信する受信コンポーネント1502が異なる。
【００６３】
一方、図１７では、受信コンポーネント1502は入力画面1501に依存している。入力画面1501からのリクエストは、対応する受信コンポーネント1502が受ける。その受信コンポーネント1502が、イベント1601や条件1602によって、応答コンポーネント1503を振り分ける。受信コンポーネント1502と応答コンポーネント1503は、それぞれ、入力画面1501、および出力画面1504に対応して作成される。入力画面1501の画面Ｃ1701のように、イベント1601が複数ある場合でも、対応する受信コンポーネント1502が受けて処理する。以下では、図１６で示したコンポーネント対応の定義をした場合について説明する。
【００６４】
図１８は、本実施の形態において設計開発するWebアプリケーションシステムの画面名称と、サーブレット、JSP、およびBeanとの対応関係の定義を表形式に表した一例を示す図である。対応定義表1801は、画面名称1802と画面ID1803、および、サーブレット名称1804とBean名称1805とJSP名称1806とから成り、それぞれ画面に対応して名称を定義する。画面名称1802は、サーブレット名称1804とBean名称1805とJSP名称1806の組み合わせからなるコンポーネントによって出力される画面の名称を示す。サーブレット名称1804で与えられるサーブレットが受信コンポーネント1502であり、JSP名称1806で与えられるJSPが応答コンポーネント1503となる。Bean名称1805で与えられるBeanは、サーブレットから要求された処理を実行するコンポーネントであり、JSPがHTMLページを生成する際に情報を参照するコンポーネントである。
【００６５】
サーブレット名称1804とBean名称1805は、拡張子を付けず、クラスファイルの名称とし、JSP名称1806の拡張子は、".jsp"とする。例えば、画面名称1802が"トップ"1807に対して、サーブレット名称1804は、画面ID1803"default"の先頭一文字を大文字にし"Servlet"を付加した"DefaultServlet"とし、同様に、Bean名称1805は、先頭を大文字にした画面ID1803に"Bean"を付加した"DefaultBean"とする。JSP名称1806は、画面ID1803に拡張子".jsp"を付けた"default.jsp"とする。
【００６６】
サーブレット名称1804とBean名称1805との関係、あるいはJSP名称1806とBean名称1805との関係が、"発注確認"1809のように、ｎ対ｍになる場合がある。この場合、Bean名称1805は、画面ID1803などからは定義できないため、編集して追加することになる。また、"エラー表示"1810の場合、JSP名称1806の"error.jsp"1811だけを定義している。これは、いくつかのサーブレットから呼び出されるものである。以下では、サーブレット名称1804、Bean名称1805、およびJSP名称506の関係が１対１の場合について説明する。
【００６７】
図１９に示す対応定義表1901は、それぞれの画面名称1802に対応して、１対１の関係で、サーブレット名称504、Bean名称505、およびJSP名称506を定義した例を示す。
【００６８】
図２０は、Webアプリケーションシステムを設計開発するシステムのシステム構成の一例を示した図である。図２０中、2001はコマンド入力やマウスを使った操作を行う端末で、2002は後述する各種の機能を実現する中央処理装置で、2003は様々な情報を格納する外部記憶装置を示す。外部記憶装置2003に格納されている設計情報2004は、Webアプリケーションシステムの開発において、顧客からの要求や業務仕様から得られる画面仕様や設計書などの設計ドキュメント、および画面デザインや各画面イメージを表すHTMLファイルなどを格納したものである。対応定義データ2005には、図１９で示したコンポーネントの対応定義表1901が格納されている。テンプレートデータ2006には、各コンポーネントのソースコードを生成する際のテンプレートや、サーブレットやBeanのスーパークラスとなるソースコード、クラスファイルが格納されている。ソースコードデータ2007には、サーブレット、JSP、およびBeanのソースコードが格納される。
【００６９】
中央処理装置2002には、次の3つの機能を実現するソフトウェアが格納され動作している。対応定義生成/編集部2008は、設計情報2004に格納されている画面仕様から画面情報を読み込み、画面とサーブレット、JSP、およびBeanのコンポーネントとの対応定義表1901を生成し、対応定義データ2005に格納する。さらに、対応定義生成/編集部2008を利用して、端末2010から、生成された対応定義表1901の編集を行うことができる。コード生成部2009は、対応定義データ2005に格納されている対応定義表1901と、画面仕様やシステム設計書などの設計情報2004を利用して、サーブレット、JSP、およびBeanの各ソースコードを自動生成する。ソースコードを生成する際に、テンプレートデータ2006に格納されている各コンポーネントのテンプレートやスーパークラスを利用する。コード生成部2009によって生成される各ソースコードは、ソースコードデータ2007に格納される。コード編集部2010は、対応定義データ2005に格納されている対応定義表1901を利用して、開発対象の画面に対する各コンポーネントのソースコードをソースコードデータ2007から取得し、端末2001からエディタを利用して編集する。
【００７０】
図２１は、本実施形態のWebアプリケーションシステムを設計開発するシステムでの開発作業手順の一例を示した図である。まず、サーブレットの作成を行い、順に、Bean、JSPと作成を進める。サーブレットの作成においては、サーブレットのテンプレート2101を元にして、設計情報2102を利用して、サーブレットのソースコード2108を作成する。サーブレットを作成するために必要な設計情報2102には、例えば、対応定義表1901、パッケージ仕様2104、画面遷移図2105、送信データ仕様2106、セッション管理仕様2107、およびエラー処理仕様2108がある。
【００７１】
パッケージ仕様2104には、各コンポーネントのパッケージ定義とその名称が記述してある。画面遷移図2105は画面間の遷移を示した図である。Webブラウザからサーバにリクエストを送信する際に、HTMLページのフォームに記述された内容が送信データに付加される。その送信データの内容を送信データ仕様2106に記述する。セッション管理仕様2107には、画面間で引き継ぐ情報を記述する。エラー処理仕様2108には、サーバ側で処理した結果、エラーが発生した場合に行う処理の内容を記述する。
【００７２】
次に、Beanの作成を行う。Beanの作成においては、Beanのテンプレート2109を元にして、設計情報2110を利用して、Beanのソースコード2111を作成する。Beanを作成するために必要な設計情報2110には、例えば、対応定義表1901、パッケージ仕様2104、画面遷移図2105、送信データ仕様2106、チェック項目2112、クラス仕様2113、メソッド仕様2114、およびシーケンス図2115がある。
【００７３】
チェック項目2112には、リクエストが送信された際の送信データの値チェックや妥当性チェックなどの項目を記述する。クラス仕様2113は、Beanや図１４中の業務クラス、DBアクセスクラス1410のクラス図やクラスの概要、属性、メソッドを記述したものである。メソッド仕様2114には、クラス仕様2113のクラスが持つメソッドの詳細を記述する。シーケンス図2115は、メソッドの処理の流れを図で示したものである。クラス仕様2113のクラス図とシーケンス図2115はUML（Unified Modeling Language）表記で記述されたドキュメントである。
【００７４】
最後に、JSPの作成を行う。JSPの作成においては、JSPのテンプレート2116を元にして、設計情報2117を利用して、JSPのソースコード2118を作成する。JSPを作成するために必要な設計情報2117には、例えば、対応定義表1901、画面イメージ2119、画面遷移図2105、入力処理仕様2120、送信データ仕様2106、クラス仕様2113、およびメソッド仕様2114がある。
【００７５】
画面イメージ2119は、画面仕様の各画面のイメージを定義したもので、HTMLファイルで作成する。入力処理仕様2120には、HTMLページのフォームでの、ボタン押下やリスト選択などでの入力チェックであるクライアント側でのチェック項目や処理を記述する。
【００７６】
本実施形態のシステムにおいては、コード生成部2009によって、それぞれのサーブレット、Bean、およびJSPのソースコード2103、2111、2118が自動生成され、外部記憶装置2003のソースコードデータ2007として格納される。また、コード編集部2010によって、ソースコードの編集を行う。
【００７７】
図２２を参照して、対応定義部/編集部2008によって、対応定義表1901を生成する処理の流れを説明する。まず、設計情報2004に格納されている画面仕様から全ての画面情報を読み込む（ステップ2201）。最初の画面情報から画面名称と画面IDを取得する（ステップ2202）。画面IDは、例えば、各画面イメージとして作成されているHTMLファイルのファイル名称から取得してもいいし、画面情報の中で定義してあってもよい。また、端末2001から画面毎に入力してもよい。ここでは、取得した画面名称を"発注確認"、画面IDを"confirm"として説明する。
【００７８】
次に、取得した画面IDの先頭一文字を大文字にして、"Servlet"を付加し、サーブレット名称とする（ステップ2203）。同様にして、画面IDの先頭一文字を大文字にして、"Bean"を付加し、Bean名称とする（ステップ2204）。画面IDに拡張子".jsp"を付けてJSPのファイル名称とする（ステップ2205）。ここで、各コンポーネントの名称は、それぞれ、"ConfirmServlet"、"ConfirmBean"、"confirm.jsp"と定義される。画面名称と画面ID、定義されたサーブレット名称、Bean名称、およびJSP名称の各名称の一組を対応定義表1901に追加する（ステップ2206）。
【００７９】
次に、ステップ2201で取得した画面情報の全てに対して処理したかをチェックし（ステップ2207）、全て処理するまで、ステップ2202からステップ2206までの処理を繰り返す。全ての画面情報に対して処理を行ったら、最後に、対応定義表1901を対応定義データ2005に格納して終了する（ステップ2208）。ここで生成された対応定義表1901は、設計情報2004に格納してもよい。
【００８０】
次に、図２３を参照して、サーブレット、JSP、およびBeanの各コンポーネントのソースコードをコード生成部2009によって自動生成する処理の流れを説明する。まず、対応定義生成/編集部2008によって生成した対応定義表1901を読み込む（ステップ2301）。対応定義表1901から画面名称1802を取得する（ステップ2302）。ここで取得した画面名称を"発注確認"として説明する。画面名称に対応する各コンポーネントの名称を取得する（ステップ2303）。取得した画面名称に対応するサーブレット名称1804、Bean名称1805、およびJSP名称1806の各名称が全て設定されているかチェックする（ステップ2304）。例えば、図１９中の"エラー表示"1811の場合、JSP名称1806"error.jsp"のみであるため、ステップ2304からステップ2302に戻る。各名称が全て設定してある場合、以降の処理を行う。
【００８１】
まずステップ2302で取得した画面名称である"発注確認"に対するサーブレットのソースコード"ConfirmServlet.java"を生成する（ステップ2305）。同様に、Beanのソースコード"ConfirmBean.java"を生成し（ステップ2306）、JSPのソースコード"confirm.jsp"を生成する（ステップ2307）。ステップ2301で読み込んだ対応定義表1901の全ての画面名称に対して処理したかをチェックし（ステップ2308）、全て処理するまで、ステップ2302からステップ2307までの処理を繰り返す。全ての画面名称に対して処理を行ったら終了する。
【００８２】
なお、ここではステップ２３０４で画面名称に対応するサーブレット名称1804、Bean名称1805、およびJSP名称1806の各名称が全て設定されていることをチェックした後、ソースコードの生成を行っているが、ステップ２３０４のチェックは必須ではない。サーブレット名称1804、Bean名称1805、およびJSP名称1806の何れかの名称が設定されていれば、それについてソースコードの生成を行うようにしてもよい。
【００８３】
図２４と図２５を用いて、指定した画面名称に対するサーブレットのソースコードをコード生成部2009で自動生成する処理の流れを説明する。対応定義表1901で定義されている各コンポーネントの名称は予め与えられているとする。ここで指定された画面名称1802を"発注確認"、各コンポーネントの名称を"ConfirmServlet"、"ConfirmBean"、"confirm.jsp"として説明する。サーブレットのソースコードを生成するに際しては、サーブレットのテンプレート2101と、設計情報2004に格納されている設計ドキュメントから対応定義表1901、パッケージ仕様2104、画面遷移図2105、送信データ仕様2106、セッション管理仕様2107、およびエラー処理仕様2108などを使用する。図２５中、2501は生成されるサーブレットのソースコードを示す。
【００８４】
まず、与えられたサーブレット名称1804をファイル名称として、拡張子".java"でファイル"ConfirmServlet.java"を作成する（ステップ2401）。次に、テンプレートデータ2006からサーブレットのテンプレート一覧を読み込む（ステップ2402）。テンプレートデータ2006には、サーブレットの基本的な枠組みの他、いろいろな用途に応じたサーブレットのテンプレートや、スーパークラスが格納されている。読み込んだテンプレート一覧から、作成するサーブレットに該当するテンプレート2101を選択する（ステップ2403）。選択したテンプレート2101を雛型として、ソースコード2501を生成する。ここで、使用するテンプレート2101は、個々に選択する方法の他、既に設定されている場合もある。
【００８５】
次に、パッケージ仕様2104を読み込み、package文2502とimport文2503を出力する（ステップ2404）。package文2502には、サーブレットのパッケージ名称を出力し、import文2503には、Beanのパッケージ名称を出力する。そして、サーブレット名称1804"ConfirmServlet"をクラス名称として、クラス定義2504に出力する（ステップ2405）。"service()"2505はサーブレットAPIが提供するメソッドで、クライアントから要求があった場合、このメソッドが実行される。以降の処理では、"service()"2505の処理内容を出力する。
【００８６】
まず、与えられたBean名称1805"ConfirmBean"をサーブレットから生成し、使用するBeanクラス名称2506として出力する（ステップ2406）。画面遷移図2105から遷移元の画面を検索し（ステップ2407）、遷移元の画面の送信データ仕様2106を読み込み、パラメータを取得する際の項目名2507とし、その取得とBeanへの設定を出力する（ステップ2408）。次に、セッション管理仕様2107を読み込み（ステップ2409）、セッションから取得する値の項目名2508を出力する（ステップ2410）。同様に、セッションに格納する値と、項目名2510を出力する（ステップ2411）。"doTask()"2509は、サーブレットからBeanに処理を要求するためのメソッドである。そして、エラー処理仕様2108を読み込み、エラー時の処理内容2511を出力する。"service()"2505の最後に、与えられたJSP名称1806"confirm.jsp"をサーブレットから呼び出すJSP名称2512として出力する（ステップ2413）。最後に、生成したソースコード2501のファイルをソースコードデータ2007に格納し、サーブレットのソースコードを自動生成する処理を終了する（ステップ2414）。
【００８７】
図２４と図２５では、サーブレットのソースコードの生成例として、テンプレートデータ2101を雛型として、設計情報2004の内容から、必要な項目を自動的に抽出し、適切な箇所に出力することで生成した。次に図２６を用いて、ソースコードを生成する際のテンプレートに、本実施形態の開発支援システムで利用するクラスとしてスーパークラスを用意しておき、それを継承して作成することもできることを説明する。図２６中、2601は生成されるサーブレットのソースコードを示す。多くの共通な処理はスーパークラスで定義されているため、未実装または、差分だけを開発すればよい。また、図２５のソースコード2501と比べ、図２６のソースコード2601は簡単に生成することができる。
【００８８】
スーパークラスを継承して作成する場合、図２４中、ステップ2403で、利用するテンプレート2101にスーパークラスを選択し、それをステップ2405でクラス定義を出力する際に、継承するスーパークラス名称2602に出力する。サーブレットのスーパークラスでは、ほとんどの処理が実装済みで、例えば、"init()"2603、"beforeTask()"2604、"afterTask()"2605は宣言のみしてあるものである。これらのメソッド2603、2604、2605は、サブクラスで定義する。"init()"2603は、初期化時の設定を行うメソッドで、"setBeanName()"2606や"setJspPage()"2607を利用して、サーブレットから使用、または、呼び出すBean名称やJSP名称を指定する。そして、"beforeTask()"2604は、サーブレットからBeanに処理を要求する前に行う処理内容を実装し、"afterTask()"2605には、Beanの処理が終了した後に行う処理内容を実装する。例えば、セッション管理などをここで行う。このように、開発者は、"init()"2603、"beforeTask()"2604、"afterTask()"2605のみを実装すればサーブレットを開発できる。
【００８９】
図２６中、テンプレートに、本実施形態の開発支援システムで利用するクラスとしてスーパークラスを用意しておき、それを継承して生成すると説明したが、図２７を用いて、スーパークラスのソースコード例を説明する。図２７中、2701はスーパークラスのソースコードを示し、クラス名称2702は"BaseServlet"である。
【００９０】
まず、2703は"BaseServlet"で扱う変数の宣言で、JSP名称とBean名称、および、使用するBeanオブジェクトを宣言する。以下、2704から2712までメソッドの定義である。"init()"2704は、初期化時の設定を行うメソッドで、サブクラスで実装し、サーブレットから使用、または、呼び出すBean名称やJSP名称を設定する。"service()"2705は、サーブレットAPIが提供するメソッドで、クライアントから要求があった場合、このメソッドが実行される。"service()"2705では、2707から2712までのメソッドを決められた順序で実行する。そのため、このスーパークラス"BaseServlet"2702を継承したサブクラスでは、処理順序を意識しない済む。そのため、サブクラスを開発する開発者はサーブレットに関する特別な知識を必要としない。サブクラスで、"init()"2704を定義すれば、動作可能なサーブレットを作成することができる。
【００９１】
"create()"2706は、指定されたBean名称のオブジェクトを生成し、"doTask()"2708はBeanに処理要求を行う。"doTask()"2708の前後での処理を"beforeTask()"2707と"afterTask()"2709に記述し、必要であれば、サブクラスで実装する。"callJsp()"2710は、指定されたJSP名称のJSPを呼び出す。"service()"2705の実行中に例外が発生した場合は、"error()"2711が実行され、エラー処理を行う。2712は、"BaseServlet"で扱う変数2703に対するアクセスメソッドの定義である。
【００９２】
サーブレットのソースコードをコード生成部2009で自動生成する際、図２４中、ステップ2403で、作成するサーブレットに該当するテンプレートを選択するが、図２８を用いて、テンプレート選択方法の一例について説明する。図２８中、2801は、本実施形態の開発支援システムの操作画面である。画面の左側の領域2802には、設計開発の対象とするシステム名称"発注システム"2803が表示されている。その下に階層構造で、画面名称の"発注確認"2804が表示され、さらにサーブレット、Bean、およびJSPが表示される。この階層構造は、対応定義生成/編集部2008によって定義された対応定義表1901の内容を表現している。
【００９３】
ここで、サーブレットの"ConfirmServlet"2802を生成する際に使用するテンプレートを選択する場合で説明する。2806はサーブレットのテンプレートを選択させるテンプレート選択画面であり、テンプレートデータ2006から読み込まれたテンプレート一覧がリスト表示されている。リスト表示には、テンプレートを示す名称2807とコード名称2808が表示されている。テンプレート選択画面2806上で、テンプレートを選択し、実行ボタン2809を実行すると、選択されているテンプレートが使用される。また、内容説明ボタン2810を実行すると、選択されているテンプレートに関する詳細な説明を示した画面2811が表示される。
【００９４】
図３０と図３３で後述するBeamとJSPのソースコードを生成する際にも、サーブレットと同様に、テンプレートを選択し、それを雛型として利用する。図２９を用いて、BeanとJSP、それぞれのテンプレート選択方法の一例について説明する。図２８中、テンプレート選択画面2806と同じように、Beanのテンプレート選択画面2901、JSPのテンプレート選択画面2904がある。それぞれの画面のリスト表示には、テンプレートを示す名称2902、2905とコード名称2903、2906が表示されている。Beanのテンプレート選択画面2901ではクラスの構成がクラス階層で示されている。また、JSPのテンプレート選択画面2904では、テンプレートを複数選択することもでき、テンプレートを組み合わせて利用することができる。
【００９５】
図３０と図３１を用いて、指定した画面名称に対するBeanのソースコードをコード生成部2009で自動生成する処理の流れを説明する。対応定義表1901で定義されている各コンポーネントの名称は予め与えられているとする。以下では、指定された画面名称1802を"発注確認"、Beanのコンポーネントの名称を"ConfirmBean"として説明する。Beanのソースコードを生成するに際しては、JSPのテンプレート2109と対応定義表1901と、設計情報2004に格納されている設計ドキュメントからパッケージ仕様2104、画面遷移図2105、送信データ仕様2106、チェック項目2112、クラス仕様2113、メソッド仕様2114、およびシーケンス図2115などを使用する。図３１中、3101は生成されるBeanのソースコードを示す。
【００９６】
まず、与えられたBean名称1805をファイル名称として、拡張子".java"でファイル"ConfirmBean.java"を作成する（ステップ3001）。次に、テンプレートデータ2006からBeanのテンプレート一覧を読み込む（ステップ3002）。テンプレートデータ2006には、サーブレットのテンプレートと同様に、Beanの基本的な枠組みの他、いろいろな用途に応じたBeanのテンプレートや、スーパークラスが格納されている。読み込んだテンプレート一覧から、作成するBeanに該当するテンプレート2109を選択する（ステップ3003）。選択したテンプレート2109を雛型として、ソースコード3101を生成する。
【００９７】
次に、パッケージ仕様2104を読み込み、package文3102を出力する（ステップ3004）。package文3102には、Beanのパッケージ名称を出力する。そして、Bean名称1805"ConfirmBean"をクラス名称として、クラス定義3103に出力する（ステップ3005）。さらに、クラス仕様2113から対象のBeanクラス"ConfirmBean"のスーパークラスを検索し、その名称を出力する（ステップ3006）。
【００９８】
"doTask()"3104はサーブレットから実行されるメソッドで、ここにBeanで処理内容3105を実装する。シーケンス図2115を読み込み、そのシーケンス図2115に従って、処理内容を出力する（ステップ3007）。そして、"check()"3106の処理内容を出力する。"check()"3106は、"doTask()"3104から呼び出されるメソッドで、サーブレットから渡されるパラメータのチェックを行う。まず、画面遷移図2105から遷移元の画面を検索し（ステップ3008）、遷移元の画面の送信データ仕様2106を読み込み、パラメータを取得する際の項目名3107を出力する（ステップ3009）。チェック項目2112を読み込み、ステップ3009で出力したパラメータについてのチェック処理3108を出力する（ステップ3010）。
【００９９】
次に、クラス仕様2113から、対象のBeanクラス"ConfirmBean"の属性を取得し、その属性の宣言3109を出力し（ステップ3011）、その属性に対する取得メソッドと設定メソッド3110を出力する（ステップ3012）。さらに、メソッド仕様2114を読み込み、"doTask()"3104と"check()"3106と属性の設定メソッドと取得メソッド3110以外のメソッドを出力する（ステップ3013）。最後に、生成したソースコード3101のファイルをソースコードデータ2007に格納し、Beanのソースコードを自動生成する処理を終了する（ステップ3014）。
【０１００】
図３２を用いて、Beanは画面に表示するために必要な情報を全て保持しているコンポーネントであることを説明する。図３２は、画面情報とBeanとの関係を表している。図３２中、3201は画面イメージであり、ここでは"発注確認"画面を例にして説明する。3202はBeanのクラスを示す。クラス3202の上の区画3203に表示している名称はクラス名で、"発注確認"に対応する"ConfirmBean"がBeanのクラス名であることを示す。下の区画3204はクラスの属性を表す。"ConfirmBean"には、"発注確認"画面を表示するために必要となる情報が属性として全て保持され、それらの属性はJSPから参照され、HTMLページとして表示される。画面に表示するために必要な情報、および、HTMLページ上のフォームで入力される送信される情報は、設計情報2004に格納されている設計ドキュメントの送信データ仕様2106に記述されている。
【０１０１】
図３３と図３４を用いて、指定した画面名称に対するJSPのソースコードをコード生成部2009で自動生成する処理の流れを説明する。対応定義表1901で定義されている各コンポーネントの名称は予め与えられているとする。ここでは、指定された画面名称1802を"発注確認"、BeanとJSPのコンポーネントの名称を"ConfirmBean"、"confirm.jsp"として説明する。JSPのソースコードを生成するに際しては、JSPのテンプレートと対応定義表1901と、設計情報2004に格納されている設計ドキュメントから画面イメージ2119、画面遷移図2105、入力処理仕様2120、送信データ仕様2106、クラス仕様2113、およびメソッド仕様2114などを使用する。図３４中、3401は生成されるJSPのソースコードを示す。
【０１０２】
まず、与えられたJSP名称1806をファイル名称として、ファイル"confirm.jsp"を作成する（ステップ3301）。設計ドキュメントから"発注確認"画面の画面イメージ2119のHTMLファイルを読み込み（ステップ3302）、読み込んだHTMLファイルの内容を出力する（ステップ3303）。次に、テンプレートデータ2006からJSPのテンプレート一覧を読み込む（ステップ3304）。テンプレートデータ2006には、JSPの基本的な枠組みの他、いろいろな用途に応じたJSPのテンプレートが格納されている。読み込んだテンプレート一覧から、作成するJSPに該当するテンプレート2116を選択する（ステップ3305）。選択したテンプレート2116を雛型として、ステップ3303で出力したHTMLの内容を加工してソースコード3401を生成する。
【０１０３】
次に、与えられたBean名称1805"ConfirmBean"をJSPで利用するクラス3402として出力する（ステップ3306）。<jsp:useBean>タグ3402は、JSP内でBeanを使用するための構文である。入力処理仕様2120を読み込み、クライアント側でのチェック項目に対するスクリプト定義3403を出力する。そして、画面遷移図2105から遷移元の画面を検索し（ステップ3308）、遷移元の画面に対するサーブレット名称1804を対応定義表1901から検索し、フォームタグのアクション指定3404に出力する（ステップ3309）。次に、送信データ仕様2106を読み込み、フォーム内のテキスト入力やボタンなどの部品の名前3405を出力する（ステップ3310）。そして、クラス仕様2113を読み込み、フォーム内の部品の値やテキストにBeanの属性名をJSPの構文を使用して、該当箇所に出力する（ステップ3311）。ステップ3311と同様に、メソッド仕様2114を読み込み、Beanのメソッドを使用して、該当箇所に出力する（ステップ3312）。<jsp:getProperty>タグ3406や<%= %>タグ3407は、<jsp:useBean>タグ3402と同様、JSPの構文である。最後に、生成したソースコード3401のファイルをソースコードデータ2007に格納し、JSPのソースコードを自動生成する処理を終了する（ステップ3313）。
【０１０４】
図３５を参照して、サーブレット、JSP、およびBeanの各コンポーネントのソースコードをコード編集部2010によって編集する方法の一例について説明する。図３５中、2801は、本実施形態の開発支援システムの操作画面である。画面の左側の領域2802には、階層構造で、対応定義表1901の内容が表示されている。ここで、"発注確認"2804を選択し、例えば、ダブルクリックすると、"発注確認"2804に対する各コンポーネントのソースコードが画面の右側の領域3501にエディタが開き表示される。サーブレットのソースコード"ConfirmServlet.java"はエディタ画面3504に開かれ、同様に、Beanのソースコード"ConfirmBean.java"はエディタ画面3503に、JSPのソースコード"confirm.jsp"はエディタ画面3504に開かれる。それぞれのソースコードを開く際には、対応定義表1901を利用して、編集対象となる各コンポーネントのソースコードをソースコードデータ2007から読み込む。また、"ConfirmServlet"2805を単独で選択して、"ConfirmServlet.java"を開くこともできる。これによって、開発者は、開発対象の画面に関係するソースコードを、画面名称を選択して瞬時に開き、参照、または、編集することができる。
【図面の簡単な説明】
【０１０５】
【図１】開発するWebアプリケーションの画面とサーブレット、JSP、およびBeanとの対応表の一例を示す図
【図２】本実施の形態のシステム構成の一例を示す図
【図３】サーブレット、JSP、およびBeanを利用したWebアプリケーションシステムの全体構成の一例を示す図
【図４】対応表の生成処理の流れを示すフローチャートの一例を示す図
【図５】ソースコードの自動生成処理の流れを示すフローチャートの一例を示す図
【図６】サーブレットのソースコードを自動生成する処理の流れを示すフローチャートの一例を示す図
【図７】サーブレットのソースコード生成を説明するための図
【図８】サーブレットのスーパークラスのソースコードの一例を示す図
【図９】JSPのソースコードを自動生成する処理の流れを示すフローチャートの一例を示す図
【図１０】JSPのソースコード生成を説明するための図
【図１１】Beanのソースコードを自動生成する処理の流れを示すフローチャートの一例を示す図
【図１２】Beanのソースコード生成を説明するための図
【図１３】画面情報とBeanの関係を示す図
【図１４】サーブレット、JSP、およびBeanを利用したWebアプリケーションシステムの全体構成の第２の実施形態を示した図
【図１５】第２の実施形態のWebアプリケーションシステムにおける受信コンポーネントと応答コンポーネントの関係を示す図
【図１６】受信コンポーネントと応答コンポーネントの対応を１対１に定義した例（その１）を示す図
【図１７】受信コンポーネントと応答コンポーネントの対応を１対１に定義した例（その２）を示す図
【図１８】コンポーネントの対応定義表の例（その１）を示す図
【図１９】コンポーネントの対応定義表の例（その２）を示す図
【図２０】Webアプリケーションシステムを設計開発するシステムのシステム構成の一例を示した図
【図２１】Webアプリケーションシステムを設計開発するシステムでの開発作業手順の一例を示した図
【図２２】対応定義表を生成する処理の流れを示すフローチャート図
【図２３】ソースコードの自動生成処理の流れを示すフローチャート図
【図２４】サーブレットのソースコードを自動生成する処理の流れを示すフローチャート図
【図２５】サーブレットのソースコード生成例（その１）を示す図
【図２６】サーブレットのソースコード生成例（その２）を示す図
【図２７】サーブレットのスーパークラスのコード生成例を示す図
【図２８】テンプレートの選択イメージ（その１）を示す図
【図２９】テンプレートの選択イメージ（その２）を示す図
【図３０】Beamのソースコードを自動生成する処理の流れを示すフローチャート図
【図３１】Beamのソースコード生成例を示す図
【図３２】画面情報とBeamの属性の関係を示す図
【図３３】JSPのソースコードを自動生成する処理の流れを示すフローチャート図
【図３４】JSPのソースコード生成例を示す図
【図３５】ソースコードの編集イメージを示す図
【符号の説明】
【０１０６】
101…対応表、102…画面名称、103…JSP名称、104…サーブレットファイル名称、105…Beanファイル名称、107…外部記憶装置、108,111,114…設計ドキュメント、109,112,115…テンプレート、110,113,116…ソースコード。
【図１】
2006236375.tif 000003
【図２】
2006236375.tif 000004
【図３】
2006236375.tif 000005
【図４】
2006236375.tif 000006
【図５】
2006236375.tif 000007
【図６】
2006236375.tif 000008
【図７】
2006236375.tif 000009
【図８】
2006236375.tif 000010
【図９】
2006236375.tif 000011
【図１０】
2006236375.tif 000012
【図１１】
2006236375.tif 000013
【図１２】
2006236375.tif 000014
【図１３】
2006236375.tif 000015
【図１４】
2006236375.tif 000016
【図１５】
2006236375.tif 000017
【図１６】
2006236375.tif 000018
【図１７】
2006236375.tif 000019
【図１８】
2006236375.tif 000020
【図１９】
2006236375.tif 000021
【図２０】
2006236375.tif 000022
【図２１】
2006236375.tif 000023
【図２２】
2006236375.tif 000024
【図２３】
2006236375.tif 000025
【図２４】
2006236375.tif 000026
【図２５】
2006236375.tif 000027
【図２６】
2006236375.tif 000028
【図２７】
2006236375.tif 000029
【図２８】
2006236375.tif 000030
【図２９】
2006236375.tif 000031
【図３０】
2006236375.tif 000032
【図３１】
2006236375.tif 000033
【図３２】
2006236375.tif 000034
【図３３】
2006236375.tif 000035
【図３４】
2006236375.tif 000036
【図３５】
2006236375.tif 000037
【手続補正書】
【提出日】平成18年5月23日(2006.5.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラムを実行する処理手段を備えたWebサーバ側で動作するサーバサイドのWebアプリケーションであって、複数のプログラム開発環境でそれぞれ開発されるプログラムコンポーネントを組み合わせて構築されるWebアプリケーションを開発するWebアプリケーション開発方法において、
コンピュータが備える対応表生成手段が、前記Webアプリケーションの画面仕様を表現する画面仕様データを読み込み、各画面毎に、その画面下で動作する前記複数のプログラム開発環境で開発されるプログラムコンポーネントのそれぞれのプログラムソースファイルの名称を、当該画面名称に対応させて生成し、生成した各プログラムコンポーネントのプログラムソースファイルの名称と当該画面名称とを対応させて記憶するためのテーブルデータである対応表を生成するステップと、
コンピュータが備えるコード自動生成手段が、前記複数のプログラム開発環境のうちの第１のプログラム開発環境で開発されるプログラムコンポーネントのプログラムソースファイルを生成するステップであって、
（１）前記生成したプログラムソースファイルの名称のファイルを作成し、
（２）第１のプログラム開発環境のソースプログラムの雛形となる定型的なコードを含むテンプレートを記憶したテンプレート記憶手段からテンプレートを読み出し、前記生成したプログラムソースファイルに書き込み、
（３）当該第１のプログラム開発環境で開発されるプログラムコンポーネントから、第１のプログラム開発環境以外のプログラム開発環境で開発されるプログラムコンポーネントを利用する場合、前記対応表から当該利用するプログラムコンポーネントの名称を読み出し、その名称のプログラムコンポーネントを利用することを示すコードを、前記生成したプログラムソースファイルに書き込む
処理を含むステップと、
前記コード自動生成手段が、前記第１のプログラム開発環境のソースプログラムと同様にして、第２、第３、…のプログラム開発環境のそれぞれのプログラムコンポーネントのソースファイルを生成するステップと
を備えることを特徴とするWebアプリケーション開発方法。
【請求項２】
請求項１に記載のWebアプリケーション開発方法において、さらに、
前記コード自動生成手段が、前記複数のプログラム開発環境で開発されるプログラムコンポーネントのそれぞれのパッケージ名称を記述してあるパッケージ表を読み込み、利用するパッケージについては、利用することを示すコードを前記生成したプログラムソースファイルに設定するステップを備えることを特徴とするWebアプリケーション開発方法。
【請求項３】
請求項１または２に記載のWebアプリケーション開発方法において、さらに、
前記コード自動生成手段が、前記対応表から読み出した各プログラムコンポーネントの名称から生成した変数名、クラス名、およびメソッドの定義名を、前記生成したプログラムソースファイルに設定するステップを備えることを特徴とするWebアプリケーション開発方法。
【請求項４】
請求項３に記載のWebアプリケーション開発方法において、さらに、
前記コード自動生成手段が、
（１）設計ドキュメントから画面遷移に関する情報を読み込み、遷移元の画面を取得し、
（２）設計ドキュメントから前記遷移元の画面のフォームに記述されている項目に関する情報を取得し、
（３）公開されているメソッドから、前記遷移元の画面のフォームに記述されている項目に対するアクセスメソッドを取得し、
（４）該アクセスメソッドを利用する文を、前記生成したプログラムソースファイルに設定するステップ
を備えることを特徴とするWebアプリケーション開発方法。
【請求項５】
請求項３に記載のWebアプリケーション開発方法において、さらに、
前記コード自動生成手段が、
（１）設計ドキュメントから画面遷移に関する情報を読み込み、遷移先の画面を取得し、該遷移先の画面のプログラムコンポーネントの名称を生成し、前記生成したプログラムソースファイルに遷移先として設定し、
（２）設計ドキュメントから、ユーザ操作に応じて処理する内容や入力チェック条件を記述した入力処理に関する情報、および画面のフォームに記述されている項目に関する情報を取得し、
（３）画面イメージのHTMLファイルを読み込み、
（４）該HTMLファイルの内容に、前記遷移先のプログラムコンポーネントおよび入力処理に関する情報とフォームに記述されている項目に関する情報の内容を反映させて、前記生成したプログラムソースファイルに設定するステップ
を備えることを特徴とするWebアプリケーション開発方法。
【請求項６】
請求項３に記載のWebアプリケーション開発方法において、さらに、
前記コード自動生成手段が、
（１）設計ドキュメントからクラス図を読み込み、前記対応表から読み出した当該プログラムコンポーネントのファイル名称から生成したクラス定義のクラスのスーパークラスを検索し、該スーパークラスのクラス名称を前記生成したプログラムソースファイルに設定し、
（２）設計ドキュメントからシーケンス図を読み込み、該シーケンス図に基づく処理内容を前記生成したプログラムソースファイルに設定するステップ
を備えることを特徴とするWebアプリケーション開発方法。
【請求項７】
プログラムを実行する処理手段を備えたWebサーバ側で動作するサーバサイドのWebアプリケーションであって、複数のプログラム開発環境でそれぞれ開発されるプログラムコンポーネントを組み合わせて構築されるWebアプリケーションを開発するWebアプリケーション開発方法に係るプログラムであって、
前記コンピュータを、
前記Webアプリケーションの画面仕様を表現する画面仕様データを読み込み、各画面毎に、その画面下で動作する前記複数のプログラム開発環境で開発されるプログラムコンポーネントのそれぞれのプログラムソースファイルの名称を、当該画面名称に対応させて生成し、生成した各プログラムコンポーネントのプログラムソースファイルの名称と当該画面名称とを対応させて記憶するためのテーブルデータである対応表を生成する対応表生成手段と、
前記複数のプログラム開発環境のうちの第１のプログラム開発環境で開発されるプログラムコンポーネントのプログラムソースファイルを生成するコード自動生成手段であって、
（１）前記生成したプログラムソースファイルの名称のファイルを作成し、
（２）第１のプログラム開発環境のソースプログラムの雛形となる定型的なコードを含むテンプレートを記憶したテンプレート記憶手段からテンプレートを読み出し、前記生成したプログラムソースファイルに書き込み、
（３）当該第１のプログラム開発環境で開発されるプログラムコンポーネントから、第１のプログラム開発環境以外のプログラム開発環境で開発されるプログラムコンポーネントを利用する場合、前記対応表から当該利用するプログラムコンポーネントの名称を読み出し、その名称のプログラムコンポーネントを利用することを宣言する文を、前記生成したプログラムソースファイルに書き込む
処理を行うコード自動生成手段と、
前記第１のプログラム開発環境のソースプログラムと同様にして、第２、第３、…のプログラム開発環境のそれぞれのプログラムコンポーネントのソースファイルを生成するコード自動生成手段として
機能させることを特徴とするWebアプリケーション開発方法に係るプログラム。
【請求項８】
プログラムを実行する処理手段を備えたWebサーバ側で動作するサーバサイドのWebアプリケーションであって、複数のプログラム開発環境でそれぞれ開発されるプログラムコンポーネントを組み合わせて構築されるWebアプリケーションを開発するWebアプリケーション開発システムにおいて、
前記Webアプリケーションの画面仕様を表現する画面仕様データを読み込み、各画面毎に、その画面下で動作する前記複数のプログラム開発環境で開発されるプログラムコンポーネントのそれぞれのプログラムソースファイルの名称を、当該画面名称に対応させて生成し、生成した各プログラムコンポーネントのプログラムソースファイルの名称と当該画面名称とを対応させて記憶するためのテーブルデータである対応表を生成する対応表生成手段と、
前記複数のプログラム開発環境のうちの第１のプログラム開発環境で開発されるプログラムコンポーネントのプログラムソースファイルを生成するコード自動生成手段であって、
（１）前記生成したプログラムソースファイルの名称のファイルを作成し、
（２）第１のプログラム開発環境のソースプログラムの雛形となる定型的なコードを含むテンプレートを記憶したテンプレート記憶手段からテンプレートを読み出し、前記生成したプログラムソースファイルに書き込み、
（３）当該第１のプログラム開発環境で開発されるプログラムコンポーネントから、第１のプログラム開発環境以外のプログラム開発環境で開発されるプログラムコンポーネントを利用する場合、前記対応表から当該利用するプログラムコンポーネントの名称を読み出し、その名称のプログラムコンポーネントを利用することを宣言する文を、前記生成したプログラムソースファイルに書き込む
処理を行うコード自動生成手段と、
前記第１のプログラム開発環境のソースプログラムと同様にして、第２、第３、…のプログラム開発環境のそれぞれのプログラムコンポーネントのソースファイルを生成するコード自動生成手段と
を備えることを特徴とするWebアプリケーション開発システム。
【請求項９】
請求項８に記載のWebアプリケーション開発システムにおいて、さらに、
前記コード自動生成手段が、前記複数のプログラム開発環境で開発されるプログラムコンポーネントのそれぞれのパッケージ名称を記述してあるパッケージ表を読み込み、利用するパッケージについては、利用することを示す宣言を前記生成したプログラムソースファイルに設定することを特徴とするWebアプリケーション開発システム。
【請求項１０】
請求項８または９に記載のWebアプリケーション開発システムにおいて、さらに、
前記コード自動生成手段が、前記対応表から読み出した各プログラムコンポーネントの名称から生成した変数名、クラス名、およびメソッドの定義名を、前記生成したプログラムソースファイルに設定することを特徴とするWebアプリケーション開発システム。
【請求項１１】
請求項１０に記載のWebアプリケーション開発システムにおいて、さらに、
前記コード自動生成手段が、
（１）設計ドキュメントから画面遷移に関する情報を読み込み、遷移元の画面を取得し、
（２）設計ドキュメントから前記遷移元の画面のフォームに記述されている項目に関する情報を取得し、
（３）公開されているメソッドから、前記遷移元の画面のフォームに記述されている項目に対するアクセスメソッドを取得し、
（４）該アクセスメソッドを利用する文を、前記生成したプログラムソースファイルに設定する
ことを特徴とするWebアプリケーション開発システム。
【請求項１２】
請求項１０に記載のWebアプリケーション開発システムにおいて、さらに、
前記コード自動生成手段が、
（１）設計ドキュメントから画面遷移に関する情報を読み込み、遷移先の画面を取得し、該遷移先の画面のプログラムコンポーネントの名称を生成し、前記生成したプログラムソースファイルに遷移先として設定し、
（２）設計ドキュメントから、ユーザ操作に応じて処理する内容や入力チェック条件を記述した入力処理に関する情報、および画面のフォームに記述されている項目に関する情報を取得し、
（３）画面イメージのHTMLファイルを読み込み、
（４）該HTMLファイルの内容に、前記遷移先のプログラムコンポーネントおよび入力処理に関する情報とフォームに記述されている項目に関する情報の内容を反映させて、前記生成したプログラムソースファイルに設定する
ことを特徴とするWebアプリケーション開発システム。
【請求項１３】
請求項１０に記載のWebアプリケーション開発システムにおいて、さらに、
前記コード自動生成手段が、
（１）設計ドキュメントからクラス図を読み込み、前記対応表から読み出した当該プログラムコンポーネントのファイル名称から生成したクラス定義のクラスのスーパークラスを検索し、該スーパークラスのクラス名称を前記生成したプログラムソースファイルに設定し、
（２）設計ドキュメントからシーケンス図を読み込み、該シーケンス図に基づく処理内容を前記生成したプログラムソースファイルに設定する
ことを特徴とするWebアプリケーション開発システム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
上記目的を達成するため、請求項１、７、８に係る発明は、プログラムを実行する処理手段を備えたWebサーバ側で動作するサーバサイドのWebアプリケーションであって、複数のプログラム開発環境でそれぞれ開発されるプログラムコンポーネントを組み合わせて構築されるWebアプリケーションを開発する際に、前記Webアプリケーションの画面仕様を表現する画面仕様データを読み込み、各画面毎に、その画面下で動作する前記複数のプログラム開発環境で開発されるプログラムコンポーネントのそれぞれのプログラムソースファイルの名称を、当該画面名称に対応させて生成し、生成した各プログラムコンポーネントのプログラムソースファイルの名称と当該画面名称とを対応させて記憶するためのテーブルデータである対応表を生成し、前記複数のプログラム開発環境のうちの第１のプログラム開発環境で開発されるプログラムコンポーネントのプログラムソースファイルを生成する場合に、（１）前記生成したプログラムソースファイルの名称のファイルを作成し、（２）第１のプログラム開発環境のソースプログラムの雛形となる定型的なコードを含むテンプレートを記憶したテンプレート記憶手段からテンプレートを読み出し、前記生成したプログラムソースファイルに書き込み、（３）当該第１のプログラム開発環境で開発されるプログラムコンポーネントから、第１のプログラム開発環境以外のプログラム開発環境で開発されるプログラムコンポーネントを利用する場合、前記対応表から当該利用するプログラムコンポーネントの名称を読み出し、その名称のプログラムコンポーネントを利用することを示すコードを、前記生成したプログラムソースファイルに書き込むようにし、さらに、前記第１のプログラム開発環境のソースプログラムと同様にして、第２、第３、…のプログラム開発環境のそれぞれのプログラムコンポーネントのソースファイルを生成することを特徴とする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
請求項２、９に係る発明は、さらに、前記複数のプログラム開発環境で開発されるプログラムコンポーネントのそれぞれのパッケージ名称を記述してあるパッケージ表を読み込み、利用するパッケージについては、利用することを示すコードを前記生成したプログラムソースファイルに設定することを特徴とする。これは、後述する実施形態で、package文を自動生成する部分に相当する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
請求項３、１０に係る発明は、さらに、前記対応表から読み出した各プログラムコンポーネントの名称から生成した変数名、クラス名、およびメソッドの定義名を、前記生成したプログラムソースファイルに設定することを特徴とする。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
請求項４、１１に係る発明は、さらに、（１）設計ドキュメントから画面遷移に関する情報を読み込み、遷移元の画面を取得し、（２）設計ドキュメントから前記遷移元の画面のフォームに記述されている項目に関する情報を取得し、（３）公開されているメソッドから、前記遷移元の画面のフォームに記述されている項目に対するアクセスメソッドを取得し、（４）該アクセスメソッドを利用する文を、前記生成したプログラムソースファイルに設定することを特徴とする。これは、主として、後述する実施の形態でプログラムコンポーネントの１つであるサーブレットのソースコードを自動生成する処理部分に対応する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
請求項５、１２に係る発明は、さらに、（１）設計ドキュメントから画面遷移に関する情報を読み込み、遷移先の画面を取得し、該遷移先の画面のプログラムコンポーネントの名称を生成し、前記生成したプログラムソースファイルに遷移先として設定し、（２）設計ドキュメントから、ユーザ操作に応じて処理する内容や入力チェック条件を記述した入力処理に関する情報、および画面のフォームに記述されている項目に関する情報を取得し、（３）画面イメージのHTMLファイルを読み込み、（４）該HTMLファイルの内容に、前記遷移先のプログラムコンポーネントおよび入力処理に関する情報とフォームに記述されている項目に関する情報の内容を反映させて、前記生成したプログラムソースファイルに設定することを特徴とする。これは、主として、後述する実施の形態でプログラムコンポーネントの１つであるＪＳＰのソースコードを自動生成する処理部分に対応する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
請求項６、１３に係る発明は、さらに、（１）設計ドキュメントからクラス図を読み込み、前記対応表から読み出した当該プログラムコンポーネントのファイル名称から生成したクラス定義のクラスのスーパークラスを検索し、該スーパークラスのクラス名称を前記生成したプログラムソースファイルに設定し、（２）設計ドキュメントからシーケンス図を読み込み、該シーケンス図に基づく処理内容を前記生成したプログラムソースファイルに設定することを特徴とする。これは、主として、後述する実施の形態でプログラムコンポーネントの１つであるBeanのソースコードを自動生成する処理部分に対応する。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】削除
【補正の内容】
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】削除
【補正の内容】
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】削除
【補正の内容】
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】削除
【補正の内容】
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】削除
【補正の内容】
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】削除
【補正の内容】
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】削除
【補正の内容】
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】削除
【補正の内容】
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】削除
【補正の内容】
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】削除
【補正の内容】
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】削除
【補正の内容】
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】削除
【補正の内容】
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】削除
【補正の内容】
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
すなわち本発明は、例えば、設計ドキュメントにある画面仕様の各画面に対応させて、サーブレット、JSP、およびBeanの各コンポーネントのソースファイル名称を１対１に対応させて表形式で定義する対応表生成部と（画面と複数のコンポーネントとの対応関係で言えば１対Ｎで対応している）、その対応表と設計ドキュメントの情報を利用して、サーブレット、JSP、およびBeanの各コンポーネントの名称や変数、メソッドの定義、および各コンポーネント間の呼び出し関係を自動的に抽出し、ソースコードとして出力するコード自動生成部とを備えることを特徴とする。コード自動生成部によりソースコードを生成する際に使用する、各コンポーネントのテンプレートとなるコードを格納したテンプレートデータや、サーブレットのスーパークラスとなるソースコード、および生成された各コンポーネントのソースコードは、所定の外部記憶装置に記憶する。