JP2006163855A - Webアプリケーション開発支援装置及び開発支援方法 - Google Patents

Webアプリケーション開発支援装置及び開発支援方法 Download PDF

Info

Publication number
JP2006163855A
JP2006163855A JP2004354874A JP2004354874A JP2006163855A JP 2006163855 A JP2006163855 A JP 2006163855A JP 2004354874 A JP2004354874 A JP 2004354874A JP 2004354874 A JP2004354874 A JP 2004354874A JP 2006163855 A JP2006163855 A JP 2006163855A
Authority
JP
Japan
Prior art keywords
screen
definition
information
business logic
definition information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004354874A
Other languages
English (en)
Inventor
Hiroshi Nagasawa
博志 長澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2004354874A priority Critical patent/JP2006163855A/ja
Publication of JP2006163855A publication Critical patent/JP2006163855A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】 フレームワークを利用したWebアプリケーションの開発において、開発者等にフレームワークを意識させることなく、画面デザイン,ビジネスロジックの分散開発を可能とするWebアプリケーション開発支援装置を提供する。
【解決手段】 ValueObject定義部101は、Webアプリケーションの一部を構成するプレゼンテーション層とビジネスロジック層との間の入出力項目を保持するクラスであるValueObjectクラスの定義情報を画面仕様情報記憶部103に記憶する。画面仕様定義部102は、Webアプリケーションの表示画面及びビジネスロジックの遷移を階層的に管理し、各表示画面及びビジネスロジックの仕様の定義情報を画面仕様情報記憶部103に記憶する。プレゼンテーション層ソースコード自動生成部104は、画面仕様情報記憶部103に記憶された定義情報に基づき、プレゼンテーション層ソースコード110を生成する。
【選択図】 図1

Description

本発明は、Webアプリケーション開発支援装置及び開発支援方法に関し、特に、Struts等のフレームワークを利用したWebアプリケーションの開発を支援する装置及び方法に関する。
近年、大規模システムを構成するWebアプリケーション開発等において、画面デザインとビジネスロジックとの分散開発による効率化を目的として、Webアプリケーションを、業務処理部分(モデル)と、ブラウザに表示するためのレイアウト部分(ビュー)と、業務部分とレイアウト部分を制御する制御部分(コントローラー)とに分けるMVC(モデル−ビュー−コントローラー)モデルが採用されることがある。
このようなMVCモデルでは、各ページ毎に画面遷移とビジネスロジックとを記述しているため、ビジネスロジックの内容及び画面遷移状況を確認するためには、各ページ毎にソースコードを参照して、ビジネスロジック部分,ページ遷移部分を区別する必要があった。特に、大規模システム開発の場合には、各ページに記述された画面遷移の全体像を把握することが困難なものとなっていた。
このような分散開発において、近時、開発の更なる効率化を図るとともに、ビジネスロジック,画面遷移等の把握を容易なものとするために、MVCモデルに適したフレームワークが利用されている。このようなフレームワークとしては、例えば、J2EE(Java2 Enterprise Edition,「JAVA」は、米国サンマイクロシステムズ社の登録商標)を前提としたStrutsが多く利用されている。ここで、Strutsを利用したWebアプリケーションでは、設定ファイル,コントローラ(ActionServlet),フォームBeanクラスを含むプレゼンテーション層を有している。設定ファイルには、予め、全ての画面遷移,ビジネスロジックの関連付け及び入力パラメータ等が記述されており、1つのコントローラがクライアントからの全てのリクエストを受付け、設定ファイルに記述された情報に基づき、該当するイベントの実行や適切なページへの振り分け等を行っている。また、各ページの入出力情報については、フォームBeanにより、コントローラとのやり取りを行っている。
以上のように、Struts等のフレームワークを利用した場合には、画面遷移の階層的な構造等の全体像を確認することが可能となるとともに、分散開発された表示画面及びビジネスロジックを容易かつ適切に連携させることが可能となっている。
一方、Webアプリケーション開発の効率化を図るための開発支援装置としては、従来より、Webアプリケーションを構成するServlet,Jsp,Beanの各ソースコードを生成する手段を備えたものが公知となっている(例えば、特許文献1参照。)。
特開2001−344105号公報
前記特許文献1に記載のWebアプリケーション開発支援装置では、Servlet,Jsp,Beanのそれぞれについて、開発担当者等により予め作成された詳細な設計情報に基づき対応定義表を生成するとともに、各設計情報,対応定義表及び各テンプレートを用いてServlet,Jsp,Beanの各ソースコードを生成することを可能としている。
しかし、Webアプリケーションの分散開発において、フレームワークを利用する場合には、各開発者がフレームワークの知識を有することが要求されるとともに、前述の設定ファイル,コントローラ,フォームBean等を実装する工程が必要となるため、必ずしも効率良く開発作業を行うことができるものではなかった。
また、前記特許文献1に記載の開発支援装置では、フレームワークの利用を想定したものでは無かったため、生成されたWebアプリケーションについて、各画面遷移の階層的な構造等、全体像を把握することが困難なものとなっていた。
また、前記特許文献1に記載の開発支援装置では、ソースコードの生成のために、Servlet,Jsp,Beanのそれぞれについて、開発支援装置の仕様に応じた詳細な設計情報を予め作成しておく必要があるため、画面デザインやビジネスロジック等について具体的な仕様を決定することが必要になり、また、設計情報の作成に手間が掛かる可能性がある等、必ずしも効率良く開発作業を行うことができるものでは無かった。
本発明は前記課題を解決するためのものであり、フレームワークを利用したWebアプリケーションの開発支援装置として、簡易な定義情報に基づき表示画面とビジネスロジックとの連携部分のみを生成することにより、詳細な設計情報の作成を不要とするとともに、各開発者にフレームワークを意識させることなく、画面デザイン,ビジネスロジックの実装に専念させることを可能とするWebアプリケーション開発支援装置を提供することを目的とする。
前記課題を解決するため本発明は、表示画面の画面遷及び表示画面とビジネスロジックとの関連付けを記述した設定ファイルを有し、当該設定ファイルに基づきクライアントからの要求に応じたイベントの実行及びページ遷移を行うプレゼンテーション層と、ビジネスロジック層とを有するWebアプリケーションの開発支援装置であって、プレゼンテーション層とビジネスロジック層との間の入出力項目を保持するクラスについて定義したValueObuject定義情報と、前記表示画面の画面遷移及び各表示画面とビジネスロジックとの関連付けを定義した画面仕様定義情報とを記憶する画面仕様情報記憶部と、各表示画面における入出力項目の入力を受付け、前記ValueObuject定義情報として、前記画面仕様情報記憶部に記憶するValueObuject定義部と、各表示画面についての画面遷移定義情報及びイベント実行定義情報と、前記イベント実行定義情報に対応するビジネスロジック定義情報との入力を受付け、前記画面仕様定義情報として、画面仕様情報記憶部に記憶する画面仕様定義部と、前記画面仕様情報記憶部に記憶された各定義情報に基づき、前記プレゼンテーション層と、前記ビジネスロジック層を構成するビジネスロジックの雛形とを生成する手段とを備えることを特徴とする。
また、前記画面仕様定義部は、前記画面仕様情報記憶部に記憶された画面仕様定義情報を取得し、前記表示画面及びビジネスロジックの画面遷移を階層的に表示する手段を備えることを特徴とする。
また、表示画面の遷移情報及び表示画面とビジネスロジックとの関連付けを定義した画面仕様定義情報と、プレゼンテーション層とビジネスロジック層との間の入出力項目を定義したValueObuject定義情報とを記憶する画面仕様情報記憶部と、当該画面仕様情報記憶部に前記ValueObuject定義情報を記憶するValueObuject定義部部と、前記画面仕様情報記憶部に画面仕様定義情報を記憶する画面仕様定義部と、前記画面仕様情報記憶部に記憶された各定義情報に基づきWebアプリケーションのプレゼンテーション層の一部を生成するソースコード生成部とを備えるWebアプリケーション開発支援装置によるWebアプリケーション開発支援方法であって、ValueObuject定義部が、各表示画面における入出力項目の入力を受付け、前記ValueObuject定義情報として、前記画面仕様情報記憶部に記憶するステップと、画面仕様定義部が、各表示画面についての画面遷移定義情報及びイベント定義情報と、前記イベント定義情報に対応するビジネスロジック定義情報との入力を受付け、前記画面仕様定義情報として、画面仕様情報記憶部に記憶するステップと、前記ソースコード生成部が、前記画面仕様情報記憶部に記憶された各定義情報に基づき、表示画面の遷移情報及び表示画面とビジネスロジックとの関連付けを記述した設定ファイルと、当該設定ファイルの記述に基づきイベントの実行又はページ遷移を行うコントローラとを含むプレゼンテーション層と、前記ビジネスロジック層を構成するビジネスロジックの雛形とを生成するステップとを備える。
以上の構成により本発明では、例えば、Struts等のフレームワークを利用したWebアプリケーション開発において、画面デザイン及びビジネスロジックを除いた部分のソースコードの生成等が可能となるため、各開発者にフレームワークを意識させることなく、画面デザイン又はビジネスロジックの実装に専念させることが可能となる。従って、フレームワークについての正確な知識を有しない開発者によっても適切な分散開発を行うことが可能となる。
また、画面仕様定義情報に基づき各表示画面及び関連付けられたビジネスロジックの画面遷移を階層表示することとしたので、設定ファイルに記述された内容を確認することなく、画面遷移等を把握させることが可能となる。
以下、本発明の一実施の形態に係るWebアプリケーション開発支援装置について、図面に基づき説明する。本実施の形態では、フレームワークとしてStrutsを利用したWebアプリケーションの開発に用いるWebアプリケーション開発支援装置の例について説明する。
図1は、本実施の形態に係るWebアプリケーション開発支援装置の概略構成を示すブロック図である。
Webアプリケーション開発支援装置100は、開発対象となるWebアプリケーションの一部を構成するプレゼンテーション層を示すソースコード110を生成するものであり、ValueObject定義部101と、画面仕様定義部102と、画面仕様情報記憶部103と、プレゼンテーション層ソースコード自動生成部104とを備える。
ValueObject定義部101は、Webアプリケーションの一部を構成するプレゼンテーション層とビジネスロジック層との間の入出力項目を保持するクラスであるValueObjectクラスの定義情報を画面仕様情報記憶部103に記憶する。
画面仕様定義部102は、Webアプリケーションの表示画面及びビジネスロジックの遷移を階層的に管理し、各表示画面及びビジネスロジックの仕様の定義情報を画面仕様情報記憶部103に記憶する。
プレゼンテーション層ソースコード自動生成部104は、画面仕様情報記憶部103に記憶された定義情報に基づき、プレゼンテーション層ソースコード110を生成する。
図2は、本実施の形態に係るWebアプリケーション開発支援装置100の生成するプレゼンテーション層を含むWebアプリケーションの概略構成の一例を示す図である。
Webアプリケーション200は、プレゼンテーション層210,ビジネスロジック増220,データベース層230とから構成されている。
プレゼンテーション層210は、クライアントの要求を受け取りその処理結果を表示する処理や、ビジネスロジックを呼び出す処理などを行うものである。本例では、WebアプリケーションフレームワークにStrutsを使った場合を示しており、この場合には、画面遷移情報などが記述されたXML形式のStruts設定ファイル211,クライアントの要求を受け取り、ビジネスロジックを呼び出し、ビジネスロジックの結果を設定する処理を行うコントローラとしてのアクションクラス212,クライアントの入力データを保持するアクションフォームBeanクラス213,画面のデザインを実装するJSPファイル214などで構成される。
ビジネスロジック層220は、業務処理を行うビジネスロジッククラス221で構成され、データベース層230は、データベースにアクセスし、データを取得したり、登録したりするデータベースアクセスクラス231で構成される。
本実施の形態に係るWebアプリケーション開発支援装置100は、Webアプリケーション200のうち、プレゼンテーション層210を構成するStruts設定ファイル211,アクションクラス212,アクションフォームBeanクラス213と、ビジネスロジック層220を構成するビジネスロジッククラス221の雛形をプレゼンテーション層ソースコード110として生成する。
図3は、本実施の形態に係るWebアプリケーション開発支援装置100の行うプレゼンテーション層ソースコード生成処理の概要を示すフローチャートである。
Webアプリケーション開発装置100では、ValueObject定義部101が定義画面を表示し、ユーザにより任意に定義されたValueObject情報を画面仕様情報記憶部103に記憶するとともに(ステップ301)、画面仕様定義部102が定義画面を表示し、ユーザにより任意に定義された画面情報及びビジネスロジック情報を画面仕様情報記憶部103に記憶する(ステップ302)。
プレゼンテーション層ソースコード自動生成部104は、画面仕様情報記憶部103に記憶された画面仕様情報を取得し、プレゼンテーション層ソースコード105を生成する(ステップ303)。
次に、本実施の形態に係るWebアプリケーション開発支援装置100の行う開発支援処理方法について、開発者用端末等に表示する定義画面の例に基づき説明する。
図4は、ValueObject定義部101が表示するValueObject定義画面の一例を示す図である。
図4に示すValueObject定義画面400では、ValueObjectに関する設定項目として、ValueObjectのID401,ValueObjectが入力項目か出力項目かを示すタイプ402,ValueObjectの説明403と、ValueObjectクラスの各項目についての項目名(プロパティ)404,項目の型405,項目の説明406との各入力フィールドを有する。ここで、項目名404,型405,説明406については、複数定義することができるものとする。
図5は、画面仕様定義部102が表示する画面仕様定義画面の一例を示す図である。
図5に示す画面仕様定義画面500は、後述するように画面仕様情報記憶部103に記憶された情報に基づき表示画面及びビジネスロジックの遷移を階層的に表示する画面遷移表示部510と、画面遷移表示部510に表示した要素511の設定を定義する設定定義部520とを有する。
画面遷移表示部510に表示する要素511としては、JSPなどの表示画面と、画面のリンクやボタンのクリックなどのイベントによって呼び出されるビジネスロジックが該当する。
本例では、画面遷移表示部510において、表示画面を示す要素511が選択された場合の設定定義部520の例を示している。
設定定義部520では、表示画面に関する設定項目として、画面名521,URI522,表示画面の出力項目を保持するValueObjectを示す出力VO523の各入力フィールドと、表示画面上で発生するイベント設定部530として、イベントの追加,編集,削除ボタン531〜533と、イベント名534,イベントのタイプ535,イベントの入力項目を保持するValueObjectを示す入力VO536,ビジネスロジックを一意に識別するロジックID537,イベント後の遷移先を示す遷移先URI538の各入力フィールドを有する。
図6は、画面仕様定義部102が表示する画面仕様定義画面の他の例を示す図である。
図6に示す画面仕様定義画面600では、画面遷移表示部610において、ビジネスロジックを示す要素611が選択された場合の、設定定義部620を示している。
設定定義部620では、ビジネスロジックに関する設定項目として、ビジネスロジック名621,ビジネスロジックID622,ビジネスロジックのクラス名623,ビジネスロジックのメソッド名624,ビジネスロジックの引数を示す入力VO625,ビジネスロジックの戻り値を示す出力VO626の各入力フィールドを有する。なお、入力VO625及び出力VO626については、「request」又は「session」などのスコープを定義することができる。
以下、前述の各定義画面を用いて行う画面仕様情報生成処理の具体例について説明する。
本例では、Webアプリケーションとして、顧客番号を入力させるフォームがある入力画面と、入力画面に入力された顧客番号に対応する顧客情報を出力する出力画面の2画面で構成する。なお、このWebアプリケーションは、フレームワークとしてStrutsを利用しているものとする。
まず、ValueObject定義画面により、入出力画面の各入出力項目を保持するクラスを定義させる。
図7は、入力画面の入力項目を保持するクラスを定義させるためのValueObject定義画面を示す図である。
ValueObject定義画面700では、開発者によりID701に「CustomerNo」が、タイプ702に「入力」が、説明703に「顧客番号を保持するValueObject」が定義され、さらにValueObjectの項目704に「no,String,顧客番号」が定義されている。
図8は、出力画面の出力項目を保持するクラスを定義させるためのValueObject定義画面を示す図である。
ValueObject定義画面800では、開発者によりID801に「Customer」が、タイプ802に「出力」が、説明803に「顧客情報を保持するValueObject」が定義され、さらにValueObjectの項目804〜807に「no,String,顧客番号」「name,String,名前」「address,String,住所」「tel,String,電話番号」のそれぞれが定義されている。
ValueObject定義部101は、以上の各ValueObject定義画面700,800に定義された内容を画面仕様情報記憶部103に記憶する。
次に、画面仕様定義画面により、入出力画面及びビジネスロジックに関する画面仕様を定義させる。
図9は、入力画面の画面仕様を定義させるための画面仕様定義画面を示す図である。
画面仕様定義画面900では、開発者により画面名901に「入力画面」が、URI902に「/input.jsp」が定義されるとともに、イベント設定部904に「output,Form,customerNo,search,/output.jsp」が定義されている。なお、本例に示す入力画面の画面仕様では、出力VO903は空欄となる。
図10は、入力画面のイベントによって呼び出されるビジネスロジックである顧客情報検索の画面仕様を定義させるための画面仕様定義画面を示す図である。
画面仕様定義画面900では、開発者によりビジネスロジック名1001に「顧客情報検索」が、ID1002に「search」が、クラス1003に「sample.CustomerLogic」が、メソッド1004に「search」が、入力VO1005に「CutmerNo,request」が、出力VO1006に「customer,request」が定義されている。
図11は、出力画面の画面仕様を定義させるための画面仕様定義画面を示す図である。
画面仕様定義画面1100では、開発者により画面名1101に「出力画面」が、URI1102に「/output.jsp」が、出力VO1103に「customer」が定義されている。なお、本例では、出力画面においてはValueObjectの項目は定義されていない。
画面仕様定義部101は、以上の各画面仕様定義画面900,1000,1100に定義された内容を画面仕様情報記憶部103に記憶するとともに、記憶した内容に基づき画面仕様定義画面900,1000,1100の画面遷移表示部の表示内容を変更する。
図12は、画面仕様情報記憶部103に記憶される画面仕様情報の一例として、図7,8に示すValueObject定義画面に定義された内容に基づきValueObject定義部101が記憶した情報と、図9〜11に示す画面仕様定義画面に定義された内容に基づき画面仕様定義部102が記憶した情報とを示す図である。
画面仕様情報1200は、例えば、XML(Extensible Markup Language)ファイルとして生成されており、図11に示すように、ValueObject情報1210と、ビジネスロジック情報1220と、画面情報1230とで構成されている。
ValueObject情報1210には、図7に示すValueObject定義画面700に定義されたValueObjectについての定義情報1211と、図8に示すValueObject定義画面800に定義されたValueObjectについての定義情報1212とが含まれる。
ビジネスロジック情報1220には、図10に示す画面仕様定義画面1000に定義されたビジネスロジックについての定義情報1221が含まれる。なお、定義情報1221におけるinput−vo属性又はoutput−vo属性の値は、ValueObject情報1210の各定義情報1211,1212におけるid属性の値に対応している。
画面情報1230には、図9に示す画面仕様定義画面900に定義された入力画面についての定義情報1131と、図11に示す画面仕様定義画面1100に定義された出力画面についての定義情報1232とが含まれる。なお、定義情報1231における<event>タグのlogic属性の値は、ビジネスロジック情報1220の定義情報1221における<business−logic>タグのid属性の値に対応している。また、<event>タグのforward属性の値は、定義情報1232における<boundary>タグのpath属性の値に対応している。
図13は、画面仕様定義部102が画面仕様情報記憶部103に記憶した画面仕様情報に基づき、画面遷移を表示する処理手順を示したフローチャートである。
本処理では、予め開発者によりトップ画面が指定される。例えば、図12に示す画面仕様情報1200では、入力画面がトップ画面として指定される。
画面仕様定義部102は、画面仕様情報に含まれる画面情報について以下の処理を繰り返す(ステップ1301)。
画面仕様定義部102は、画面情報を読み込み、画面情報の定義情報に基づき、ノードを設定するとともに(ステップ1302)、当該画面情報に含まれるイベントについて以下の処理を繰り返す(ステップ1303)。
画面仕様定義部102は、画面情報に含まれるイベントのロジックに設定されているビジネスロジックIDに基づきビジネスロジック情報を読み込み(ステップ1304)、そのビジネスロジックを現在のドの子ノードとして追加する(ステップ1305)。
次に、画面情報における当該イベントの遷移先URIに設定されている画面情報を読み込み(ステップ1306)、その画面をビジネスロジックの子ノードに追加する(ステップ1307)。
以上の処理を画面仕様情報に含まれる画面情報,ビジネスロジック情報について繰り返し、その結果を画面仕様定義画面の画面遷移表示部に階層表示する(ステップ1308)。
例えば、図12に示す画面仕様情報1200の場合、画面情報1230を読み込み、まず、トップ画面としての入力画面の定義情報1231に基づき「入力画面」を最上位のノードとして設定する。次に、入力画面の定義情報1231に含まれるイベントのビジネスロジックID「search」に基づき、ビジネスロジック情報1220の定義情報1221を読み込み、「顧客情報検索」を子ノードに追加するとともに、定義情報1231の遷移先URIのpathに基づき出力画面の定義情報1232を読み込み、ビジネスロジック「顧客情報検索」の子ノードとして「出力画面」を設定する。
以上の処理結果に基づき、各ノードを画面遷移表示部に階層表示する。なお、ルートの階層は表示された画面を選択してルートに指定することもできる。
従って、開発者は、設定ファイルの記述を確認すること無く、画面推移表示部の表示によりWebアプリケーションの画面推移を容易に把握することができ、修正作業等も容易となる。
以下、プレゼンテーション層ソースコード自動生成部104が、画面仕様情報記憶部103に記憶された画面仕様情報に基づき、プレゼンテーション層ソースコード110を生成する処理について説明する。
図14は、ValueObject情報に基づき、ValueObjectクラスとアクションフォームBeanクラスのソースコードを生成する処理手順を示すフローチャートである。
プレゼンテーション層ソースコード自動生成部104は、ValueObject情報に含まれる各定義情報について、以下の処理を繰り返す(ステップ1401)。
まず、ValueObject情報の各定義情報を読み込み(ステップ1402)、ValueObjectクラスを生成して(ステップ1403)、<property>タグ毎に属性とその属性のsetter/getterを生成する(ステップ1404)。ValueObjectクラスの生成では、<vaule−object>タグのid属性の値の最初の1文字目を大文字にし、その後にValueを付けたクラス名とする。属性の型名は、<property>タグのtype属性の値で、属性の変数名は、<property>タグのname属性の値である。
次に、<vaule−object>タグのtype属性の値が「input」であるか否かを判定する(ステップ1405)。
判定の結果、type属性の値が「input」である場合には、アクションフォームBeanクラスを生成し(ステップ1406)、valueObjectクラスの場合と同様に、<property>タグごとに属性とその属性のsetter/getterを生成するとともに(ステップ1407)、アクションフォームBeanクラスの定義をStruts設定ファイルに追加する(ステップ1408)。アクションフォームBeanクラスの生成では、まず、親クラスとして、StrutsのクラスであるActionFormを継承する。アクションフォームBeanクラスの属性の型名は、<property>タグのtype属性の値とし、属性の変数名は、<property>タグのname属性の値とする。Struts設定ファイルには、<ValueObject>タグのid属性の値をname属性の値とし、クラス名をtype属性の値とした<form-Bean>タグを追加する。
一方、ステップ1405において、type属性の値が「input」でない場合には、アクションフォームBeanクラスの生成を行わずに、次の定義情報について処理を行う。
以上の処理を繰り返すことにより、ValueObjectクラス及びアクションフォームBeanクラスを生成する。
図15は、ビジネスロジック情報に基づき、プレゼンテーション層に対応するビジネスロジック層を構成するビジネスロジッククラスの雛形ソースコードを生成する処理手順を示すフローチャートである。
プレゼンテーション層ソースコード自動生成部104は、ビジネスロジック情報に含まれる各定義情報について、以下の処理を繰り返す(ステップ1501)。
まず、ビジネスロジック情報の各定義情報を読み込み(ステップ1502)、<business−logic>タグのclass属性の値をクラス名とするビジネスロジッククラスを生成する(ステップ1503)。
次に、<business−logic>タグのmethod属性の値のメソッドを生成する(ステップ1504)。メソッドの生成では、定義情報にinput−vo属性が定義されている場合には、その値に対応するValueObjectをメソッドの引数とする。input−vo属性が定義されていない場合は、引数は空である。また、定義情報にoutput−vo属性が定義されている場合には、その値に対応するValueObjectをメソッドの戻り値とする。output−vo属性が定義されていない場合は、void型である。
なお、ビジネスロジック情報の定義情報が複数ある場合には、以上の処理を繰り返し、ビジネスロジッククラスの雛形ソースコードの生成を繰り返す。
図16は、画面情報に基づき、アクションクラスのソースコードを生成する処理手順を示すフローチャートである。
プレゼンテーション層ソースコード自動生成部104は、画面情報の各定義情報に含まれるイベント情報について以下の処理を繰り返す(ステップ1601)。
まず、各イベント情報を読み込み、<event>タグのname属性の値の最初の1文字目を大文字にし、その後にActionをつけたクラス名のアクションクラスを生成する(ステップ1602)。
次に、親クラスとして、StrutsのクラスであるActionクラスを継承し、executeメソッドをオーバライドする(ステップ1603)。Actionクラスとは、要求に対して、対応するBeanなどで実装されたビジネスロジックの処理をハンドリングするものであり、ActionServletによって、Actionクラスのexecuteメソッドが呼び出され、この中で、認証,バリデーションなどの処理を実行して、適切なビジネスロジックを呼び出すこととなる。
アクションクラスの生成において、定義情報に<event>タグのlogic属性に対応する<business−logic>タグのinput−vo属性が定義されている場合には、executeメソッドで、input−vo属性に対応するValueObject情報によって生成したアクションフォームbeanクラスを取得し、そのデータをinput−vo属性に対応するValueObject情報によって生成したValueObjectにコピーする処理を生成する。
<event>タグのlogic属性に対応する<business−logic>タグのinput−vo属性が定義されている場合には、executeメソッドで、input−vo属性に対応するValueObject情報によって生成したアクションフォームbeanクラスを取得し、そのデータをinput−vo属性に対応するValueObject情報によって生成したValueObjectにコピーする処理を生成する。また、input−vo属性に対応するValueObject情報によって生成したValueObjectを引数として、<event>タグのlogic属性に対応する<business−logic>タグのmethod属性に示すメソッドを呼び出す処理を生成する。
input−vo属性が定義されていない場合には、引数無しで、<event>タグのlogic属性に対応する<business−logic>タグのmethod属性に示すメソッドを呼び出す処理を生成する。
<event>タグのlogic属性に対応する<business−logic>タグのoutput−vo属性が定義されている場合には、処理結果を返す処理を生成する。
以上の処理により生成したアクションクラスの定義をStruts設定ファイルに追加する(ステップ1604)。具体的には、定義情報の<event>タグのname属性の値の頭に「/」を付けた文字列をpath属性の値とし、アクションクラスのクラス名をtype属性の値とし、logic属性に対応するビジネスロジック情報の定義情報におけるinput−vo属性の値をname属性の値とし、ビジネスロジック情報の定義情報におけるinput属性の値をscope属性の値とした<action>タグを追加する。また、「success」をname属性の値とし、<event>タグのforward属性の値をpath属性の値とした<forward>タグを追加する。
以上の処理により、プレゼンテーション層ソースコード自動生成部104が生成したソースコードの具体例を図17〜22に示す。
図17は、ValueObject情報1210に含まれる定義情報1211に基づき生成した入力ValueObjectクラスを示すソースコードの一例を示す図である。
入力ValueObjectクラス1700では、定義情報1211の<ValueObject>タグ及び<Property>タグの各属性値に基づき、クラス名,属性及びその属性のsetter/getterが生成されている。
具体的には、クラス名として「CustomerNoValue」が設定され、顧客番号に関する属性「no」と、その属性のsetter/getterが生成されている。
図18は、ValueObject情報1210に含まれる定義情報1211に基づき生成したアクションフォームBeanクラスのソースコードの一例を示す図である。
アクションフォームBeanクラス1800では、入力ValueObjectクラス1700と略同様に、定義情報1211の<ValueObject>タグ及び<Property>タグの各属性値に基づき、クラス名,属性及びその属性のsetter/getterが生成されている。
図19は、ValueObject情報1210に含まれる定義情報1212に基づき生成した出力ValueObjectクラスを示すソースコードの一例を示す図である。
出力ValueObjectクラス1900では、入力ValueObjectクラス1700と略同様に、定義情報1212の<ValueObject>タグ及び<Property>タグの各属性値に基づき、クラス名,属性及びその属性のsetter/getterが生成されている。
具体的には、クラス名として「CustomerValue」が設定され、顧客番号,名前,住所及び電話番号に関する各属性「no」,「name」,「address」及び「tel」と、各属性のsetter/getterが生成されている。
図20は、ビジネスロジック情報1220に含まれる定義情報1221に基づき生成したビジネスロジックの雛形ソースコードを示す図である。
ビジネスロジックの雛形ソースコード2000では、定義情報1221の<business−logic>タグの各属性値に基づき、クラス名及び各メソッドが生成されているとともに、ビジネスロジック記述部を有している。
具体的には、クラス名として「sample.CustomerLogic」が設定されるとともに、「search」メソッドが生成されている。
図21は、画面情報1230の定義情報1231に基づき生成したアクションクラスのソースコードを示す図である。
アクションクラスのソースコード2100では、定義情報1231の<event>タグの各属性値及びlogic属性値に基づき参照したビジネスロジック情報1220の定義情報1221に基づき、クラス名及び書くメソッドが生成されている。
図22は、ValueObject情報及び画面情報に基づき定義情報を追加したStruts設定ファイルのソースコードを示す図である。
Struts設定ファイルのソースコード2200は、ValueObuject情報1210及び画面情報1230の各定義情報1211,1311に基づき、アクションフォームBeanクラス及びアクションクラスの設定情報,画面遷移情報を記述している。
以上のように、本実施の形態に係るWebアプリケーション開発支援装置では、プレゼンテーション層を構成するStruts設定ファイル,アクションクラス,アクションフォームBeanクラスと、各クラス等に対応したビジネスロジッククラスの雛形を生成することが可能となるため、開発者は、画面デザイン及びビジネスロジックの実装に専念することが可能となる。
また、画面仕様定義画面において、画面仕様情報に基づき、定義された画面遷移を階層的に表示することととしたので、画面遷移の把握及び編集が容易となる。
なお、前記実施の形態では、フレームワークとしてStrutsを利用した場合を前提として説明したが、これに限られるものでは無く、他のフレームワークに対応したクラス等を生成することとしてもよい。
また、本発明のWebアプリケーション開発支援装置を構成する各定義部及びソースコード生成部は、それぞれ別端末で構成してもよい。
本発明の一実施の形態に係るWebアプリケーション開発支援装置の概略構成を示すブロック図である。 Strutsを利用したWebアプリケーションの概略構成を示す図である。 本発明の一実施の形態に係るWebアプリケーション開発支援装置による処理の概要を示すフローチャートである。 ValueObuject定義画面の画面構成の一例を示す図である。 画面仕様定義画面(画面仕様定義)の画面構成の一例を示す図である。 画面仕様定義画面(ビジネスロジック定義)の画面構成の一例を示す図である。 ValueObuject定義の一例を示す図である。 ValueObuject定義の一例を示す図である。 画面仕様定義の一例を示す図である。 ビジネスロジック定義の一例を示す図である。 画面仕様定義の一例を示す図である。 画面仕様情報を示すソースコードの一例を示す図である。 画面仕様定義部の行う画面遷移表示処理手順を示すフローチャートである。 プレゼンテーション層ソースコード自動生成部の行うソースコード生成処理手順を示すフローチャートである。 プレゼンテーション層ソースコード自動生成部の行うソースコード生成処理手順を示すフローチャートである。 プレゼンテーション層ソースコード自動生成部の行うソースコード生成処理手順を示すフローチャートである。 生成したValueObujectのソースコードの一例を示す図である。 生成したアクションフォームBeanのソースコードの一例を示す図である。 生成したValueObujectのソースコードの一例を示す図である。 生成したビジネスロジックの雛形のソースコードの一例を示す図である。 生成したアクションクラスのソースコードの一例を示す図である。 生成したStruts設定ファイルのソースコードの一例を示す図である。
符号の説明
100 Webアプリケーション開発支援装置、101 ValueObuject定義部、102 画面仕様定義部、103 画面仕様情報記憶部、104 プレゼンテーション層ソースコード自動生成部、110 プレゼンテーション層ソースコード。

Claims (3)

  1. 表示画面の画面遷及び表示画面とビジネスロジックとの関連付けを記述した設定ファイルを有し、当該設定ファイルに基づきクライアントからの要求に応じたイベントの実行及びページ遷移を行うプレゼンテーション層と、ビジネスロジック層とを有するWebアプリケーションの開発支援装置であって、
    プレゼンテーション層とビジネスロジック層との間の入出力項目を保持するクラスについて定義したValueObuject定義情報と、前記表示画面の画面遷移及び各表示画面とビジネスロジックとの関連付けを定義した画面仕様定義情報とを記憶する画面仕様情報記憶部と、
    各表示画面における入出力項目の入力を受付け、前記ValueObuject定義情報として、前記画面仕様情報記憶部に記憶するValueObuject定義部と、
    各表示画面についての画面遷移定義情報及びイベント実行定義情報と、前記イベント実行定義情報に対応するビジネスロジック定義情報との入力を受付け、前記画面仕様定義情報として、画面仕様情報記憶部に記憶する画面仕様定義部と、
    前記画面仕様情報記憶部に記憶された各定義情報に基づき、前記プレゼンテーション層と、前記ビジネスロジック層を構成するビジネスロジックの雛形とを生成する手段と
    を備えることを特徴とするWebアプリケーション開発支援装置。
  2. 前記画面仕様定義部は、
    前記画面仕様情報記憶部に記憶された画面仕様定義情報を取得し、
    前記表示画面及びビジネスロジックの画面遷移を階層的に表示する手段を備えることを特徴とする請求項1に記載のWebアプリケーション開発支援装置。
  3. 表示画面の遷移情報及び表示画面とビジネスロジックとの関連付けを定義した画面仕様定義情報と、プレゼンテーション層とビジネスロジック層との間の入出力項目を定義したValueObuject定義情報とを記憶する画面仕様情報記憶部と、当該画面仕様情報記憶部に前記ValueObuject定義情報を記憶するValueObuject定義部部と、前記画面仕様情報記憶部に画面仕様定義情報を記憶する画面仕様定義部と、前記画面仕様情報記憶部に記憶された各定義情報に基づきWebアプリケーションのプレゼンテーション層の一部を生成するソースコード生成部とを備えるWebアプリケーション開発支援装置によるWebアプリケーション開発支援方法であって、
    ValueObuject定義部が、各表示画面における入出力項目の入力を受付け、前記ValueObuject定義情報として、前記画面仕様情報記憶部に記憶するステップと、
    画面仕様定義部が、各表示画面についての画面遷移定義情報及びイベント定義情報と、前記イベント定義情報に対応するビジネスロジック定義情報との入力を受付け、前記画面仕様定義情報として、画面仕様情報記憶部に記憶するステップと、
    前記ソースコード生成部が、前記画面仕様情報記憶部に記憶された各定義情報に基づき、表示画面の遷移情報及び表示画面とビジネスロジックとの関連付けを記述した設定ファイルと、当該設定ファイルの記述に基づきイベントの実行又はページ遷移を行うコントローラとを含むプレゼンテーション層と、前記ビジネスロジック層を構成するビジネスロジックの雛形とを生成するステップと
    を備えることを特徴とするWebアプリケーション開発支援方法。



JP2004354874A 2004-12-08 2004-12-08 Webアプリケーション開発支援装置及び開発支援方法 Pending JP2006163855A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004354874A JP2006163855A (ja) 2004-12-08 2004-12-08 Webアプリケーション開発支援装置及び開発支援方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004354874A JP2006163855A (ja) 2004-12-08 2004-12-08 Webアプリケーション開発支援装置及び開発支援方法

Publications (1)

Publication Number Publication Date
JP2006163855A true JP2006163855A (ja) 2006-06-22

Family

ID=36665802

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004354874A Pending JP2006163855A (ja) 2004-12-08 2004-12-08 Webアプリケーション開発支援装置及び開発支援方法

Country Status (1)

Country Link
JP (1) JP2006163855A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008040751A (ja) * 2006-08-04 2008-02-21 Hitachi Ltd アプリケーションプログラムの動作属性の設定支援を行う情報処理装置、情報処理装置方法、プログラム
JP2009087093A (ja) * 2007-09-28 2009-04-23 Bank Of Tokyo-Mitsubishi Ufj Ltd アプリケーション開発支援装置及びプログラム
JP2009251975A (ja) * 2008-04-08 2009-10-29 Hitachi Ltd Webアプリケーション自動生成装置
JP2010073062A (ja) * 2008-09-19 2010-04-02 Ricoh Co Ltd 画像処理装置、画像処理方法及びプログラム
JP2010123127A (ja) * 2008-11-20 2010-06-03 Nhn Corp ウェブページを作成するために使用されるコンポーネントベースのジャバウェブアプリケーション開発フレームワーク
JP2015534145A (ja) * 2012-08-14 2015-11-26 マイクロソフト テクノロジー ライセンシング,エルエルシー 宣言テンプレートを使用してコントロールをスタンプアウトするためのユーザインターフェイスコントロールフレームワーク
JP2017504104A (ja) * 2013-12-05 2017-02-02 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン グラフ状データ構造の効率的で低遅延の同期のための装置、システムおよび方法
JP2020024724A (ja) * 2015-03-17 2020-02-13 キヤノンマーケティングジャパン株式会社 情報処理装置、情報処理装置の制御方法、およびプログラム
JP2020170530A (ja) * 2016-03-09 2020-10-15 キヤノンマーケティングジャパン株式会社 情報処理装置と、その処理方法及びプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182914A (ja) * 2000-12-18 2002-06-28 Canon Inc 画面遷移表示装置、画面遷移表示方法および記憶媒体

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182914A (ja) * 2000-12-18 2002-06-28 Canon Inc 画面遷移表示装置、画面遷移表示方法および記憶媒体

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008040751A (ja) * 2006-08-04 2008-02-21 Hitachi Ltd アプリケーションプログラムの動作属性の設定支援を行う情報処理装置、情報処理装置方法、プログラム
JP2009087093A (ja) * 2007-09-28 2009-04-23 Bank Of Tokyo-Mitsubishi Ufj Ltd アプリケーション開発支援装置及びプログラム
JP2009251975A (ja) * 2008-04-08 2009-10-29 Hitachi Ltd Webアプリケーション自動生成装置
JP2010073062A (ja) * 2008-09-19 2010-04-02 Ricoh Co Ltd 画像処理装置、画像処理方法及びプログラム
JP2010123127A (ja) * 2008-11-20 2010-06-03 Nhn Corp ウェブページを作成するために使用されるコンポーネントベースのジャバウェブアプリケーション開発フレームワーク
US8839194B2 (en) 2008-11-20 2014-09-16 Nhn Corporation Component-based web application development framework used for creating web page
JP2015534145A (ja) * 2012-08-14 2015-11-26 マイクロソフト テクノロジー ライセンシング,エルエルシー 宣言テンプレートを使用してコントロールをスタンプアウトするためのユーザインターフェイスコントロールフレームワーク
JP2017504104A (ja) * 2013-12-05 2017-02-02 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン グラフ状データ構造の効率的で低遅延の同期のための装置、システムおよび方法
JP2020024724A (ja) * 2015-03-17 2020-02-13 キヤノンマーケティングジャパン株式会社 情報処理装置、情報処理装置の制御方法、およびプログラム
JP2020170530A (ja) * 2016-03-09 2020-10-15 キヤノンマーケティングジャパン株式会社 情報処理装置と、その処理方法及びプログラム
JP7004930B2 (ja) 2016-03-09 2022-01-21 キヤノンマーケティングジャパン株式会社 情報処理装置と、その処理方法及びプログラム

Similar Documents

Publication Publication Date Title
Walls Spring in action
Freeman Pro Asp. net core MVC
US11321669B2 (en) Creating a customized email that includes an action link generated based on form data
CN108984172B (zh) 一种界面文件的生成方法及装置
EP1938222A2 (en) Browser based designer and player
JP2009020705A (ja) Guiアプリケーション開発支援装置及び開発支援方法
JPH11143874A (ja) 構造化文書の体裁定義支援装置
JP2006163855A (ja) Webアプリケーション開発支援装置及び開発支援方法
US10409575B2 (en) System and method for developing software applications of wearable devices
JP6231260B2 (ja) 画面制御システム、画面制御プログラム、画面作成支援プログラム及び画面制御方法
KR101456508B1 (ko) 웹 어플리케이션 저작에서 데이터 바인딩 방법 및 이를 이용한 저작도구
JP2004102886A (ja) アプリケーション開発支援方法および装置並びにプログラム、ワークフロー処理方法および装置並びにプログラム
JP2008040751A (ja) アプリケーションプログラムの動作属性の設定支援を行う情報処理装置、情報処理装置方法、プログラム
Skeie Ember. js in Action
JP2006276989A (ja) ウェブ・ページ・コンテンツ生成システム
JP2006331356A (ja) 業務処理プログラム、それを記録した記録媒体及び業務処理システム
JP2013178650A (ja) ソフトウェア開発用構造化データファイル作成装置
Harmon Dojo: Using the Dojo JavaScript Library to Build Ajax Applications
JP7060788B2 (ja) 情報処理装置、情報処理装置の制御方法、およびコンピュータプログラム
Fredriksson Eklund An Abstraction for the Development of Accessible Web Forms
JP2007304778A (ja) プログラムのテスト方法、プログラム、テスト装置、及びアプリケーション開発システム
Saeed Remote Health Service System based on Struts2 and Hibernate
Cameron et al. Pro ASP. NET 3.5 Server Controls and AJAX Components
Jm Gining et al. Adaptation of. NET MVC framework in developing an agriculture sources inventory system
JP2005122504A (ja) Webアプリケーション開発支援装置及び開発支援方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070703

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100402

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101222