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

Webアプリケーション開発方法および開発支援装置

Info

Publication number
JP2003015870A
JP2003015870A JP2001197406A JP2001197406A JP2003015870A JP 2003015870 A JP2003015870 A JP 2003015870A JP 2001197406 A JP2001197406 A JP 2001197406A JP 2001197406 A JP2001197406 A JP 2001197406A JP 2003015870 A JP2003015870 A JP 2003015870A
Authority
JP
Japan
Prior art keywords
component
layer
class
screen
web application
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
JP2001197406A
Other languages
English (en)
Inventor
Tetsuo Tsukurida
哲雄 造田
Tsutomu Shomura
勉 正村
Hiroshi Suganuma
弘 菅沼
Teruhiro Hosomi
彰宏 細美
Itaru Ishida
至 石田
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 JP2001197406A priority Critical patent/JP2003015870A/ja
Publication of JP2003015870A publication Critical patent/JP2003015870A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】サーバサイドJava技術を利用したWebアプリケ
ーションの開発において、画面仕様に変更があった場合
でも、業務に依存する処理を記述したコンポーネントに
変更を加えなくてもよいようにし、開発作業の負担を軽
減させ、かつスピードアップを図る。 【解決手段】共有データ保持クラス109のプログラムフ
ァイルに、開発対象のWebアプリケーションの要求や設
計工程で導出された業務処理を記述することで、Webブ
ラウザ102に表示する役割を持つ表示層114のコンポーネ
ントでは、共有データ保持クラス109に定義されているW
ebアプリケーション固有の処理を実行する操作を使うこ
とで、Webブラウザ102に表示するHTMLページ103を作成
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、Webアプリケーシ
ョン開発において、Webブラウザに表示する役割を持つ
コンポーネントと、開発対象のWebアプリケーションに
固有の処理を行う役割を持つコンポーネントとを定義し
開発を行う開発方法および開発支援システムに関する。
【0002】
【従来の技術】近年、インターネットやイントラネット
上のWebアプリケーションでは、開発対象システムの構
成を、Webブラウザに表示する役割を持つコンポーネン
ト、開発対象のWebアプリケーションの固有の処理(業務
処理)を行う役割を持つコンポーネント、およびデータ
ベースにアクセスする役割を持つコンポーネントの3層
に分けて開発をしていた。このようなシステム構成で
は、WebブラウザにWebアプリケーションの処理結果を表
示するために、表示する役割を持つコンポーネントが、
業務処理を行うコンポーネントの操作を呼び出すことで
操作を進めている。ここでいう業務処理を行う役割を持
つコンポーネントは、Webアプリケーションの要求仕様
や設計工程で導出された処理機能を持つ操作が定義され
ているクラスや、既存クラスであり、それらは必要に応
じてデータベースにアクセスをしている。
【0003】
【発明が解決しようとする課題】近年のシステム開発に
おいて、開発サイクルはますます短くなってきている。
特に業務系システムや、業務サービスシステムをWeb上
で公開する場合、その開発サイクルを短縮することは、
顧客ニーズとして強い要求事項である。Webアプリケー
ションにおいて、HTMLページのデザインや情報を定期的
に変更したり、サービスを迅速に拡張したりと短期間に
開発を行うことが求められている。それらの開発のニー
ズに対応し、Webアプリケーションの開発サイクルに対
応するためにも、開発作業を軽減させ、かつ、スピード
アップを図る必要がある。
【0004】しかし、前述の従来のWebアプリケーショ
ン開発方法では、表示する役割を持つコンポーネントが
業務処理を行うコンポーネントの操作を呼び出すように
構成されているため、表示する役割を持つコンポーネン
トに追加、変更を施すとその影響は業務処理のコンポー
ネントにまで及んでいた。例えば、パソコンでは1つの
表示画面で操作入力できるが、携帯電話では複数の画面
が必要な場合がある。このとき、パソコンの表示層のコ
ンポーネントから業務処理を行うコンポーネントを呼び
出す入口と、携帯電話の表示層のコンポーネントから業
務処理を行うコンポーネントを呼び出す入口を、それぞ
れ作らなければいけなかった。したがって、HTMLページ
の画面仕様などを変更するたびに、業務処理を行うコン
ポーネントの変更をせざるを得ず、Webアプリケーショ
ンの開発サイクルに対応するために手間と時間がかかる
という問題があった。本発明は、サーバサイドJava技術
を利用したWebアプリケーションの開発において、開発
作業の負担を軽減させ、かつスピードアップを図ること
を目的とするものである。
【0005】
【課題を解決するための手段】上記目的を達成するた
め、請求項1に係る発明は、Webアプリケーション開発
方法であって、Webブラウザに1つの表示画面を表示す
るファイルを生成する役割を持つコンポーネントを表示
層のコンポーネントの1つとし、複数の表示画面に対応
する複数の表示層のコンポーネントを定義するステップ
と、業務処理を行うコンポーネントやデータベースにア
クセスする役割を持つコンポーネントを業務シナリオ層
として定義するステップと、複数の表示層のコンポーネ
ントから呼び出される操作と、表示層のコンポーネント
により表示された表示画面で入力された情報や業務シナ
リオ層で実行された業務処理により得られた値を保存す
る領域を持つコンポーネントを1つの業務プロセス層と
して定義するステップとを備えることを特徴とする。
【0006】請求項2に係る発明は、請求項1に記載の
Webアプリケーション開発方法において、前記表示層の
コンポーネントは、Webブラウザに表示する画面レイア
ウトを決定する役割を持つレイアウト層のコンポーネン
トと、Webブラウザからの情報の窓口となり、レイアウ
ト層のコンポーネントと業務シナリオ層のコンポーネン
トを制御する役割を持つコントロール層のコンポーネン
トと、コントロール層のコンポーネントから呼び出さ
れ、Webブラウザから入力された情報の解析や画面へ出
力するデータを保持する役割を持ち、業務プロセス層の
コンポーネントや業務シナリオ層のコンポーネントを呼
び出す出力データ保持層のコンポーネントとを備えるこ
とを特徴とする。
【0007】請求項3に係る発明は、Webアプリケーシ
ョン開発方法であって、Webブラウザに1つの表示画面
を表示するファイルを生成する役割を持つコンポーネン
トを表示層のコンポーネントの1つとし、複数の表示画
面に対応する複数の表示層のコンポーネントを定義する
ステップと、前記表示層のコンポーネントの中に、Web
ブラウザに表示する画面レイアウトを決定する役割を持
つレイアウト層のコンポーネントと、Webブラウザから
の情報の窓口となり、レイアウト層のコンポーネントと
業務シナリオ層のコンポーネントを制御する役割を持つ
コントロール層のコンポーネントと、コントロール層の
コンポーネントから呼び出され、Webブラウザから入力
された情報の解析や画面へ出力するデータを保持する役
割を持ち、業務プロセス層のコンポーネントや業務シナ
リオ層のコンポーネントを呼び出す出力データ保持層の
コンポーネントとを定義するステップと、画面に表示す
る情報を収集する役割を持つコンポーネントを業務シナ
リオ層として定義するステップと、表示層のコンポーネ
ントに呼び出される操作と、情報を保存する領域を持つ
コンポーネントを業務プロセス層として定義するステッ
プとを備え、開発したWebアプリケーションの実行時に
は、前記表示層のコンポーネントが表示するための情報
を得るために、前記業務プロセス層に定義されている操
作を呼び出すだけで処理結果を得ることができるように
するとともに、前記業務プロセス層に正しい情報が保存
されていることをチェックすることで正規の画面遷移を
辿っているかを確認できるようにすることを特徴とす
る。
【0008】請求項4に係る発明は、請求項1から3の
何れか1つに記載のWebアプリケーション開発方法にお
いて、ユースケースと画面遷移と前記業務プロセス層と
を対応させて定義するステップをさらに備えることを特
徴とする。
【0009】請求項5に係る発明は、請求項1から3の
何れか1つに記載のWebアプリケーション開発方法にお
いて、Webアプリケーションの画面仕様と前記業務プロ
セス層の定義を用いて、前記業務プロセス層のプログラ
ムを生成するステップをさらに備えることを特徴とす
る。
【0010】請求項6に係る発明は、請求項1から3の
何れか1つに記載のWebアプリケーション開発方法にお
いて、開発すべきWebアプリケーションで使用するクラ
スの名称、属性、および操作を定義したクラス仕様と、
開発すべきWebアプリケーションが提供するサービスを
表すユースケースの名称と、各ユースケースで使用する
画面の仕様とを取得し、ユースケースと画面とクラスと
を対応付けた業務プロセス定義表を生成するステップ
と、画面仕様から各画面に対応するHTMLファイル名称を
取得し、そのHTMLファイル名称に基づいて、各HTMLファ
イルに対応する表示層のコンポーネントの名称とそのコ
ンポーネントに名称とを設定してコンポーネント対応表
を生成するステップと、前記業務プロセス定義表および
コンポーネント対応表、並びに、クラス仕様と画面仕様
を用いて、業務プロセス層のコンポーネントとなるプロ
グラムを生成するステップとをさらに備えることを特徴
とする。
【0011】請求項7に係る発明は、Webアプリケーシ
ョンの開発を支援するための開発支援装置であって、We
bブラウザに1つの表示画面を表示するファイルを生成
する役割を持つコンポーネントを表示層のコンポーネン
トの1つとし、複数の表示画面に対応する複数の表示層
のコンポーネントを定義する手段と、業務処理を行うコ
ンポーネントやデータベースにアクセスする役割を持つ
コンポーネントを業務シナリオ層として定義する手段
と、複数の表示層のコンポーネントから呼び出される操
作と、表示層のコンポーネントで表示された表示画面で
入力された情報や業務シナリオ層で実行された業務処理
により得られた値を保存する領域を持つコンポーネント
を1つの業務プロセス層として定義する手段とを備える
ことを特徴とする。
【0012】請求項8に係る発明は、Webアプリケーシ
ョンの開発を支援するための開発支援装置であって、We
bアプリケーションの分析工程や設計工程で作成される
設計情報を保存する設計ドキュメント保存手段と、前記
設計ドキュメント保存手段に保存されている設計情報を
読み出してWebブラウザに表示する情報を取得する表示
情報取得手段と、前記設計ドキュメント保存手段から、
設計情報の中のユースケースと画面遷移と業務プロセス
層とを対応づけて定義する定義表生成手段と、前記定義
表生成手段で生成された定義表を保存する定義表保存手
段と、前記表示情報取得手段が保持している情報と、前
記定義表保存手段に保存されている業務プロセス定義表
を取得して、業務プロセス層のプログラムファイルを生
成するプログラムファイル生成手段と、前記プログラム
ファイル生成手段で生成されたプログラムを保存するプ
ログラム保存手段とを備えることを特徴とする。
【0013】請求項9に係る発明は、請求項7または8
に記載のWebアプリケーション開発支援装置において、
前記設計ドキュメント保存手段は、設計情報として、開
発すべきWebアプリケーションが提供するサービスを表
すユースケースの一覧、Webブラウザに表示するHTMLフ
ァイル、入力項目や出力項目を定義した画面仕様、クラ
スの名称や属性や操作を定義したクラス仕様、およびHT
MLページの順序を指定した画面遷移情報を保存し、前記
定義表生成手段は、ユースケースと画面とクラスとを対
応付けた業務プロセス定義表、および各HTMLファイルに
対応する表示層のコンポーネントの名称とそのコンポー
ネントに名称とを設定してコンポーネント対応表を生成
し、前記プログラムファイル生成手段は、前記表示層の
コンポーネントが前記業務プロセス層に定義されている
操作を呼び出すだけで処理結果を得ることができるよう
に、前記業務プロセス層のコンポーネントとなるプログ
ラムを生成するものであることを特徴とする。
【0014】
【発明の実施の形態】以下、図面を用いて、本発明の実
施の形態を説明する。
【0015】本実施の形態では、Webアプリケーション
開発において、表示層のコンポーネントに呼び出される
操作と情報を保存する領域を持つコンポーネントが業務
プロセス層として定義される。定義された業務プロセス
層は、1つ以上のHTMLページを使ってWebアプリケーシ
ョンのサービスが行われる場合、現在の画面で入力され
た情報や、業務シナリオ層の処理により得られた値を、
次の画面やその次の画面で使用するために保存する。ま
た、業務プロセス層には、表示層が業務シナリオ層やデ
ータベースにアクセスする役割を持つコンポーネントを
呼び出して処理を行う操作が定義されている。これによ
り、クライアントのWebブラウザに表示するHTMLページ
を作成する役割を持つ表示層のコンポーネントは、表示
するための情報(すでに前の画面などで入力された情報
や業務シナリオ層の処理により得られている値)を得る
ために、共有データ保持クラスに定義されているWebア
プリケーションの業務処理を行う操作を呼び出すだけで
処理結果を得ることができる。したがって、画面仕様に
変更があった場合でも、業務に依存する処理を記述した
コンポーネントに変更を加える必要がない。また、クラ
イアントの表示画面が違うとき、例えば、パソコンから
利用していたWebアプリケーションを携帯端末からも利
用できるようにするときのように、1つのHTMLページを
分割したり画面レイアウトが変更したりする場合も、表
示層の部分のみを作成するだけで良い。
【0016】本発明を実施する場合の一形態を図面を参
照して具体的に説明する。
【0017】まず、図1を使って、本実施形態が対象と
するサーバサイドJava技術を用いたWebアプリケーショ
ンの全体構成を説明する。本実施形態では、サーバサイ
ドJava技術を用いているので、各クラスはJava言語(Ja
vaはサン・マイクロシステムズ・インコーポレーテッド
の登録商標)を用いて作成される。
【0018】開発対象のWebアプリケーションは、クラ
イアント101がWebブラウザ102を使うことによって利用
される。Webブラウザ102上には、HTMLページ103が表示
される。Webブラウザ102からの要求は、HTTP経由でサー
バ104に送信される。サーバ104は、HTTPサーバ105とア
プリケーションサーバ106とを有する。アプリケーショ
ンサーバ106には、サーブレット、JSP(Java Server Pag
es)、Java Beans、EJB(Enterprise Java Beans)など、
サーバサイドJava技術のコンポーネントの実行環境が含
まれている。
【0019】Webアプリケーションを構成する各プログ
ラムは、実行可能な状態で、サーバ104にあるアプリケ
ーションサーバ106上に配置される。サーバ104に要求が
送信されると、要求に応じて該当するコントロールクラ
ス107(コントロール層)が起動される。本実施形態で
は、サーバサイドJava技術のサーブレットを使ってコン
トロールクラス107を作成している。コントロールクラ
ス107は、起動されると、Webブラウザ102から入力され
た情報の解析や画面へ出力するデータを保持する役割を
持っているJava BeansやEJBで作成された出力データ保
持クラス108に定義されている操作を使うことで、出力
データ保持クラス108に処理を依頼する。
【0020】出力データ保持クラス108は、入力画面の
情報やHTMLページ103に表示する処理の結果を保持した
り、共有データ保持クラス109(業務プロセス層)やWeb
アプリケーションの業務処理を行う業務処理クラス110
(業務シナリオ層)で定義されている操作を使うことで
処理の要求を出す。共有データ保持クラス109や業務処
理クラス110は、業務の分析や設計で導出された処理を
実装したクラスや、利用可能な既存クラスである。共有
データ保持クラス109や業務処理クラス110は、処理した
結果を返すか、自分の属性値として保存する。出力デー
タ保持クラス108は、返ってきた値や共有データ保持ク
ラス109や業務処理クラス110の属性値を取得すること
で、要求した処理の結果を得ることができる。
【0021】出力データ保持クラス108から処理の要求
があった共有データ保持クラス109は、Java BeansやEJB
で作成されているWebアプリケーションに依存した業務
処理を行う業務処理クラス110や、Webアプリケーション
が使用するデータベース111にアクセスするデータベー
スアクセスクラス112に定義されている操作を使うこと
で業務処理クラス110やデータベースアクセスクラス112
へ処理を要求する。共有データ保持クラス109は、返っ
てきた値や各クラスの属性値を取得することで、要求し
た処理の結果を得ることができる。ここで、業務処理ク
ラス110やデータベースアクセスクラス112が図1上で重
なったように描かれているのは、ひとつの共有データ保
持クラス109が複数個の業務処理クラス110やデータベー
スアクセスクラス112を使用することができることを表
している。
【0022】出力データ保持クラス108が共有データ保
持クラス109や業務処理クラス110に要求を出して必要な
情報を得たら、コントロールクラス107は、レイアウト
クラス113(レイアウト層)が出力データ保持クラス108
を呼び出せるように設定して、レイアウトクラス113を
呼び出す。レイアウトクラス113は出力データ保持クラ
ス108が保持する情報を参照して、HTMLページ103を生成
し、クライアント101に返送する。返送されたHTMLペー
ジ103は、Webブラウザ102上に表示される。
【0023】開発時の混乱を避けるために、ひとつのHT
MLページ103に対して、コントロールクラス107、レイア
ウトクラス113、および出力データ保持クラス108がそれ
ぞれひとつずつ定義され、コントロールクラス107、レ
イアウトクラス113、および出力データ保持クラス108の
三種類のコンポーネントをまとめて表示層114のコンポ
ーネントの1つとする。以降、今定義した表示層のコン
ポーネントを簡単のため表示層と表記し説明する。
【0024】一般に、インターネットやイントラネット
ではHTMLページ間では情報を受け渡すことができない。
しかし、あるHTMLページ103を生成するために複数のHTM
Lページ103を使う場合、各HTMLページ103を生成する表
示層114は、ひとつの共有データ保持クラス109を共通に
使うことで、複数画面で情報を共有することができる。
複数の表示層114が1つの共有データ保持クラス109を使
うことができることを、表示層114が重なって描かれ、
共有データ保持クラス109が重なって描かれていないこ
とで、表している。
【0025】図1により、コントロールクラス107は、W
ebブラウザ102からの要求を受け付けて、出力データ保
持クラス108への処理を要求し、処理が終了した後にレ
イアウトクラス113を呼び出して、レイアウトクラス113
が出力データ保持クラス108を使えるように設定する役
割を持っている。
【0026】レイアウトクラス113は、HTMLページ103の
レイアウトを決定し、HTMLページ103を生成する役割を
持っている。HTMLページ103に表示する情報は、コント
ロールクラス107により設定された出力データ保持クラ
ス108から取得する。出力データ保持クラス108は、レイ
アウトクラス113がHTMLページ103を生成するために必要
な情報を保持する役割を持っている。共有データ保持ク
ラス109は、1つ以上のHTMLページを使ってWebアプリケ
ーションのサービスが行われる場合、現在の画面で入力
された情報や、業務処理クラス110の処理により得られ
た値を、次の画面やその次の画面で使用するために保存
することや、出力データ保持クラス108が呼び出す業務
処理クラス110やデータベースアクセスクラス112を呼び
出し、処理を行う操作が定義されているクラスである。
【0027】Webアプリケーションが処理を行うための
情報を保持するためのクラスを設けた図1のようなシス
テム構成にすることで、コントロールクラス107、レイ
アウトクラス113、および出力データ保持クラス108のよ
うなHTMLページ103の作成に関する役割を持つ表示層114
と、画面レイアウトに依存しない業務処理を行う業務処
理クラス110やデータベースにアクセスする役割を持つ
データベースアクセスクラス112のようにWebアプリケー
ションに特有の処理を記述したクラスとの間の依存関係
を減らすことができ、各クラスの機能分担を明確にする
ことができる。また、パーソナルコンピュータから利用
していたWebアプリケーションを携帯端末からも利用で
きるようにするときのように、1つのHTMLページを分割
したり、画面レイアウトが変更される場合も、表示層11
4の部分のみを作成するだけで良い。
【0028】図2は、Webアプリケーションの開発を支
援するシステム構成の一例を示す図である。アプリケー
ション開発者201は、端末202を使い、コマンド入力やマ
ウスを使った操作を行う。端末202には、本発明を実現
する機能や情報を一時的に保持する中央処理装置203と
外部記憶装置204が付随している。
【0029】外部記憶装置204は、Webアプリケーション
の分析工程や設計工程で作成される設計情報を保存する
設計ドキュメント保存装置205、定義表保存装置208、お
よびプログラム保存装置210を備える。設計ドキュメン
ト保存装置205には、Webアプリケーションの分析や設計
工程の成果物であるWebアプリケーションが提供するサ
ービス(ユースケース)の一覧表や、ユースケースを実現
するために使用する画面を定義した表や、Webブラウザ
に表示するイメージを作成したHTMLファイルや、入力項
目や出力項目を定義している画面仕様、クラスの名称や
属性や操作を定義したクラス仕様、Webアプリケーショ
ンのHTMLページ103の順序を定義した画面遷移図などが
保存される。
【0030】中央処理装置203は、表示情報取得装置20
6、定義表生成装置207、およびプログラム生成装置209
を有する。表示情報取得装置206は、設計ドキュメント2
05に保存されている設計ドキュメントを読み出してWeb
ブラウザ102に表示する情報を取得する機能を持つ。
【0031】定義表生成装置207は、設計ドキュメント
保存装置205から、画面仕様やHTMLファイルを取得し
て、HTMLページ103を生成するために必要なコンポーネ
ント対応表を生成する機能を持っている。そして、定義
表生成装置207で生成されたコンポーネント対応表は、
定義表保存装置208に保存される。
【0032】プログラム生成装置209は、表示情報取得
装置206が保持している情報と、定義表保存装置208に保
存されている業務プロセス定義表を取得して、業務プロ
セス層のプログラムファイルを生成する。プログラム生
成装置209で生成されたプログラムファイルはプログラ
ム保存装置210に保存される。
【0033】図3は、本実施形態におけるWebアプリケ
ーションの分析工程や設計工程で作成されるクラス仕様
の一例である。クラス仕様は、Webアプリケーションの
分岐工程や設計工程で抽出された操作や属性などのクラ
スの特性を定義した表であり、設計ドキュメント保存装
置205に保存されている。図3は、作成されたクラス仕
様の中から、「クラス名称」301が「PurchaseProcessEJ
B」302のものを示す。クラス「PurchaseProcessEJB」30
2の「属性」303は、「可視性」304が「private」305で
あり、「型」306が「boolean」307であり、「属性名
称」308が「wasLogin」309であり、「初期値」310が「f
alse」311であることを示している。また、クラス「Pur
chaseProcessEJB」302は、「操作」312の1つに、「可
視性」313が「public」314であり、「戻り値」315が「V
ector」316であり、「操作名称」317が「familySelecti
on」318であり、「引数の型」319が「なし」320であ
り、「引数名称」321が「なし」322というものがあるこ
とを表している。「引数の型」や「引数名称」が「な
し」とは、操作に引数がないということである。
【0034】図4は、Webブラウザ102からの入力情報
と、HTMLページ103に表示する情報を記述した画面仕様
の一例を示す図である。画面仕様401は、各HTMLページ
において入力される情報と出力される情報を定義した表
であり、設計ドキュメント保存装置205に保存されてい
る。
【0035】画面名称402は、Webブラウザ102に表示さ
れるHTMLページ103のタイトルを示す。例えば、「ログ
イン画面」403は、HTMLファイル名称404が「login.htm
l」のファイルをWebブラウザ102にHTMLページ103として
表示したときに、タイトルとして表示される。入力項目
405は、Webブラウザ102がHTMLページ103を表示している
ときに、Webブラウザ102を使用する人が入力する項目を
示したものであり、「login.html」では、「ユーザアカ
ウント」と「パスワード」の二つが入力されることを表
している。入力記号名406に記述されている「user」お
よび「password」は、出力データ保持クラス108や共有
データ保持クラス109のプログラムファイルで扱われる
属性名であり、「user」および「password」は、そのプ
ログラムファイルでは「ユーザアカウント」と「パスワ
ード」を表す属性となり後述のプログラム生成装置によ
りクラスの属性としてプログラムファイルに定義され
る。出力項目407は、Webブラウザ102がHTMLページ103を
表示しているときに表示する情報を表すものであり、
「login.html」の例では、「なし」はWebブラウザ102に
表示する項目がないことを表し、「メニュー画面」の
「ユーザ名」はWebアプリケーションがデータベースに
アクセスをして取得したユーザ名を表示することを表し
ている。出力記号名408に記載されている「name」や「f
amily」は、共有データ保持クラス「ParchaseProcessEJ
B」で扱われる属性に割り当てられた名称であり、「nam
e」や「family」409はそれぞれ「ユーザ名」および「車
種」を表す属性である。
【0036】本実施形態は、共有データ保持クラス109
のプログラムファイルを生成するために、ユースケース
と画面遷移と共有データ保持クラス109とを対応つける
機能と、Webブラウザ102上に表示するHTMLページ103を
生成する役割を持っている表示層114の各コンポーネン
トの対応表であるコンポーネント対応表(図8)を生成
する機能と、共有データ保持クラス109のプログラムフ
ァイルを生成する機能を有する。以下では、まず、ユー
スケースと画面遷移と共有データ保持クラス109を対応
つける機能を説明し、次に表示層114の対応表を生成す
る処理について説明し、最後に共有データ保持クラス10
9のプログラムを生成する処理について説明する順であ
る。
【0037】まず、業務プロセス定義表(図6)を作成
する処理を説明する。図5は、業務プロセス定義表を生
成する処理の流れを示すフローチャートである。
【0038】ステップ501で、設計ドキュメント保存装
置205に保存されているクラス仕様と、画面・ユースケー
ス対応表からユースケース名称を取得する。本実施形態
では、Webアプリケーションの分析工程や設計工程で作
成された画面・ユースケース対応表に、ユースケース名
称に対応した共有データ保持クラスを設定することで、
業務プロセス定義表601を生成する。このため、ユース
ケースとユースケースを実現するための画面遷移と共有
データ保持クラスの対応が一目でわかるようになる。し
たがって、業務プロセス定義表601の共有データ保持ク
ラス名称608とそれに設定されている共有データ保持ク
ラス名称以外、すなわち太い線610より上に定義されて
いる部分は、Webアプリケーションの分析や設計工程で
導出され作成された画面・ユースケース対応表そのもの
である。本実施形態では、「説明を読む」、「車を購入
する」、「オプションを選択する」、「保険を選択す
る」というユースケース名称を取得することができる。
【0039】ステップ502では、ステップ501で取得した
ユースケース名称から1つを選択し、また、クラス仕様
のクラス名称301からクラス名称を取得して、端末202に
表示する。例として、「車を購入する」603を表示した
ものとする。また、本実施形態では、クラス仕様(図
3)のクラス名称301から、「ExplanationEJB」、「Pur
chaseProcessEJB」、「OptionEJB」、「InsuranceEJB」
や、図15のプログラム中にある業務処理を行うクラス
の「UserBean」1503などを表示する。
【0040】ステップ503で、アプリケーション開発者2
01は、端末202に表示されているクラス名称から、端末2
02に表示されているユースケース名称に対応した共有デ
ータ保持クラス名称をマウスやキーボードを使って選択
する。選択された共有データ保持クラス名称は、業務プ
ロセス定義表601の共有データ保持クラス名称608に設定
する。本実施形態では、ユースケース名称「車を購入す
る」603に共有データ保持クラス「PurchaseProcessEJ
B」609を選択したとする。
【0041】ステップ501で取得したユースケース名称
全てに対してステップ502からステップ503の処理を行
う。ステップ504でユースケース名称全ての処理が終了
したら、ステップ505に進んで、生成された業務プロセ
ス定義表601を定義表保存装置208に保存して終了する。
【0042】図6は、Webアプリケーションの分析や設
計工程で導出されたユースケース、ユースケースとユー
スケースを実現するために使われる画面の定義表である
画面・ユースケース対応表、および画面遷移を使って、
画面遷移と共有データ保持クラス109とを1対1に対応
つけて定義した場合の業務プロセス定義表601の例であ
る。本実施形態では、Webアプリケーションの分析工程
や設計工程で作成された画面・ユースケース対応表に、
ユースケース名称に対応した共有データ保持クラスを設
定することで、業務プロセス定義表を生成している。こ
のため、ユースケースとユースケースを実現するための
画面遷移と共有データ保持クラスの対応が一目でわかる
ようになる。したがって、共有データ保持クラス名称60
8と設定されている共有データ保持クラス名称以外は、W
ebアプリケーションの分析や設計工程で導出され作成さ
れた画面・ユースケース対応表である。
【0043】ユースケース602は、Webアプリケーション
の分析工程や設計工程で導出されたユースケース名称を
記述する。分析や設計工程で作成された業務プロセス定
義表601の例では、4つのユースケース名称、すなわち
「説明を読む」と、「車を購入する」603と、「オプシ
ョンを選択する」と、「保険を選択する」とが導出さ
れ、それぞれのユースケース名称を記述していることに
なる。ユースケースの単位は、Webアプリケーションを
使用するユーザが、ログインしてからログアウトするま
での間に使用する画面全部でもよいし、「車を購入す
る」というように、Webアプリケーションが提供するサ
ービスの中の1つでもよいし、ログイン画面のように1
つの画面でもよく、Webアプリケーションの分析や設計
工程で導出されたものである。
【0044】画面名称604には、ユースケース602と同様
に、Webアプリケーションの分析や設計工程で導出され
た画面名称を記述する。業務プロセス定義表601の例で
は、8つの画面「ログイン画面」、「メニュー画面」、
「車種選択画面」605、「オプション選択画面」、「保
険選択画面」、「確認画面」、「完了画面」、および
「説明画面」がWebアプリケーションの開発に必要なの
でそれぞれの画面名称を記述している。
【0045】画面遷移記述領域606には、Webアプリケー
ションの設計工程で作成した画面遷移図を使って、ユー
スケース名称602に記述されているユースケースを完了
するために使われる画面に1から順に番号を付けてい
く。業務プロセス定義表601のユースケース名称が「車
を購入する」603の例では、5つの画面「ログイン画
面」→「メニュー画面」→「車種選択画面」605→「確
認画面」→「完了画面」を順番にたどって完了すること
を表すので、ユースケース名称「車を購入する」603で
は、「車種選択画面」605が「3番目」607に使われるこ
とを表している。
【0046】共有データ保持クラス名称608には、ユー
スケースに対応した業務プロセス層を実装する共有デー
タ保持クラス109のクラス名称を記述する。業務プロセ
ス定義表601の例では、ユースケース名称「車を購入す
る」603に対応した共有データ保持クラス名称608は、
「PurchaseProcessEJB」609であることを示している。
本実施形態では、共有データ保持クラス109にEJB仕様の
中の「ステートフルSession Bean」を使用する。一般的
に「ステートフルSession Bean」のクラス名には、「Be
an」や「EJB」という文字列をつけて、EJB仕様に従った
クラスであることが分かるようにする。また、共有デー
タ保持クラス109に使用するクラスは、EJB仕様にあるも
のでなくてもよく、アプリケーションサーバが実行する
ことができるクラスであれば良い。
【0047】ここで示す実施形態では、ユースケースの
画面遷移にログイン画面を含めているが、このようにす
ると、ユーザ認証をしないで直接「メニュー画面」にア
クセスしたときには、共有データ保持クラス「Purchase
ProcessEJB」609がユーザ情報を取得できていないの
で、「不正アクセスが発生した」と判断することがで
き、クライアント101側のWebブラウザ102に「ログイン
画面」を表示するようにしたりそのアクセスを拒否した
り警告を表示したりすることができる。
【0048】次に、レイアウトクラス113とコントロー
ルクラス107と出力データ保持クラス108と表示層114と
の対応表であるコンポーネント対応表(図8)を作成す
る処理の流れについて、図7を使って説明する。
【0049】図7は、図8に示すコンポーネント対応表
を作成するための処理の流れを示すフローチャートであ
る。まず、ステップ701で、設計ドキュメント保存装置2
05から画面仕様401を定義表生成装置207に読み込み、HT
MLページ103のファイル名称を取得する。本実施形態で
は、「login.html」を取得したものとして、以降、図7
の処理を「login.html」を使って説明する。
【0050】ステップ702では、ステップ701で取得した
HTMLページ103のHTMLファイル名称801をコンポーネント
対応表(図8)のHTMLページ103のファイル名称に設定す
る。
【0051】ステップ703では、ステップ701で取得した
HTMLページ103のファイル名称から、レイアウトクラス1
13のファイル名称を生成し、コンポーネント対応表(図
8)に設定する。一般的にJavaでは、クラス名称の先頭
のアルファベットは大文字にするので、HTMLページのフ
ァイル名称の先頭のアルファベットは大文字にする。本
実施形態では、HTMLページのファイル名称が「login.ht
ml」であり、レイアウトクラスにJSPを使うので、レイ
アウトクラスのファイル名称には拡張子に「.jsp」をつ
け「Login.jsp」とし、コンポーネント対応表(図8)の
レイアウトクラスファイル名称802に「Login.jsp」を設
定する。
【0052】ステップ704では、ステップ701で取得した
HTMLページ103のファイル名称から、コントロールクラ
ス107のファイル名称を生成し、コンポーネント対応表
(図8)のコントロールクラスファイル名称に設定する。
一般的にJavaでは、クラス名称の先頭のアルファベット
は大文字にするので、HTMLページ103のファイル名称の
先頭のアルファベットは大文字にする。本実施形態で
は、HTMLページ103のファイル名称が「login.html」で
あり、コントロールクラス107にはサーブレットを使う
ので、コントロールクラス107のファイル名称は拡張子
を「.java」として、「Login.java」とし、コンポーネ
ント対応表(図8)のコントロールクラスファイル名称80
3に「Login.java」を設定する。
【0053】ステップ705では、ステップ701で取得した
HTMLページ103のファイル名称から、出力データ保持ク
ラス108のファイル名称を生成し、コンポーネント対応
表(図8)の出力データ保持クラス名称804に設定する。
一般的にJavaでは、クラス名称の先頭のアルファベット
は大文字にするので、HTMLページ103のファイル名称の
先頭のアルファベットは大文字にする。本実施形態で
は、HTMLページ103のファイル名称が「login.html」で
あり、出力データ保持クラス108にはJavaBeansを使うの
で、出力データ保持クラス108のファイル名称には拡張
子に「.java」をつける。また、JavaBeansで作成するこ
とを明示的に分かるようにするために、クラス名称の末
尾に文字列「Bean」を追加して、「LoginBean.java」と
し、コンポーネント対応表(図8)の出力データ保持クラ
ス名称804に「LoginBean.java」を設定する。
【0054】ステップ706では、表示層114に名称をつけ
る処理を行う。本実施形態では、HTMLページ103を作成
するために使われる3つのクラスに共通にある文字列
で、作成するHTMLページ「login.html」の先頭のアルフ
ァベット「l」を大文字にして、拡張子「.html」を省い
た「Login」を、表示層名称809に設定している。
【0055】ステップ701からステップ706の処理を、画
面仕様401に記述されているHTMLファイル名称404全てに
対して行う(ステップ707のNo)。ステップ707で全ての
HTMLファイル名称に対して処理を行ったら(ステップ70
7のYes)、ステップ708に進み、定義表保存装置208に生
成したコンポーネント対応表(図8)を保存し、終了す
る。
【0056】図7の処理が終了すると、図8のコンポー
ネント対応表が生成される。図8において、HTMLファイ
ル名称801は、画面仕様401から取得したHTMLページ103
のファイル名称であり、レイアウトクラスファイル名称
802は、レイアウトクラス113のプログラムを記述するフ
ァイル名称が設定される。またコントロールクラスファ
イル名称803には、コントロールクラス107の処理を記述
するファイル名称を設定し、出力データ保持クラスファ
イル名称804には、出力データ保持クラス108の処理を記
述する。本実施形態では、Webブラウザ102に表示するHT
MLページ「explanation.html」805を生成するために
は、レイアウトクラス「Explanation.jsp」806とコント
ロールクラス「Explanation.java」807と出力データ保
持クラス「ExplanationBean.java」808を対応つけるこ
とができ、Webブラウザ102に表示するためにはこれらの
クラスファイルが必要なことがわかるようになる。それ
ら3クラスをまとめて、HTMLファイル名称「explanatio
n.html」を生成する表示層名称809として「Explanatio
n」810が定義されていることがわかる。
【0057】本実施形態では、コントロール層にサーブ
レット、レイアウト層にJSP、業務シナリオ層に出力デ
ータ保持クラスの3種類のクラスを使用しているが、サ
ーブレットやJSPに全ての機能を持たせることも可能で
ある。そのため、表示層に含めるクラスは3つでなくて
も良いので、1つや2つの場合もあり得る。
【0058】次に、業務プロセス層の共有データ保持ク
ラス109を作成する流れの詳細について説明する。図9
は、図3と図4と図6を使って共有データ保持クラス10
9のプログラムファイルをプログラム生成装置209によっ
て生成する処理の流れを示したフローチャートである。
本実施形態では、ユースケース名称「車を購入する」60
3に対応している共有データ保持クラス「PurchaseProce
ssEJB」609を生成するプログラムファイル「PurchasePr
ocessEJB.java」を、プログラム生成装置209によって生
成する例を使って処理の流れを説明する。
【0059】まず、ステップ901で、業務プロセス定義
表601を定義表保存装置208からプログラム生成装置209
へ読み込む。
【0060】ステップ902では、ステップ901で読み込ん
だ業務プロセス定義表601のユースケース602からユース
ケース名称を取得し、プログラムを生成するユースケー
スを選択する。本実施形態では、プログラムファイル名
称「PurchaseProcessEJB.java」のプログラムの生成を
行うので、「車を購入する」603を選択する。このプロ
グラムを生成するユースケースの選択処理は、取得した
ユースケースを端末202に表示して、アプリケーション
開発者201にマウスやキーボードを使って選択させても
良い。
【0061】ステップ903では、選択されたユースケー
ス名称に対応したプログラムファイルを作成する。まず
ファイル名称を生成するために、業務プロセス定義表60
1の共有データ保持クラス名称608から共有データ保持ク
ラス名称を取得する。Javaでは言語仕様によりクラス名
称に拡張子「.java」をつけたものをプログラムファイ
ルとするので、取得した共有データ保持クラス名称608
に拡張子「.java」をつけたものを生成する。本実施形
態では、ユースケース名称「車を購入する」に対応した
共有データ保持クラス「PurchaseProcessEJB」を生成す
るので、プログラムファイルとして、プログラムファイ
ル名称「PurchaseProcessEJB.java」を生成する。
【0062】ステップ904では、共有データ保持クラス
の属性を取得するために、まず設計ドキュメント保存装
置205からクラス仕様(図3)と画面仕様(図4)とをプロ
グラム生成装置209へ読み込む。
【0063】ステップ904が終了したらステップ905に進
み、ステップ905で読み込んだ画面仕様から、Webアプリ
ケーション使用者が入力した値や、HTMLページ103に表
示する項目を取得して、共有データ保持クラス109の属
性となる項目を取得する。その処理の詳細について、図
10のフローチャートを使って説明する。
【0064】まず、ステップ1001で、業務プロセス定義
表601から、ステップ902で選択されたユースケースが使
用する画面名称を取得する。本実施形態では、ユースケ
ース名称「車を購入する」603の共有データ保持クラス
「PurchaseProcessEJB」609を生成するので、使用する
画面は、「ログイン画面」、「メニュー画面」、「車種
選択画面」605、「確認画面」、および「完了画面」の
5つになる。
【0065】ステップ1002では、ステップ1001で取得し
たユースケースを完了するために使用する画面の画面仕
様から、入力項目と出力項目を取得する。一例として
「ログイン画面」403を使って説明する。図4の画面仕
様はステップ903ですでに読み込まれているので、その
画面仕様を使って、ステップ1001で取得した画面中から
1つ画面名称を選び出す。本実施形態では、「ログイン
画面」403を画面名称402から取得する。
【0066】ステップ1003では、ステップ1002で取得し
た画面名称に対応している「入力記号名」406と「出力
記号名」408とを取得する。本実施形態の場合、画面名
称「ログイン画面」403では、「入力記号名」406には
「user」と「password」があり、「出力記号名」408は
「なし」が記述されているので、出力項目はないことに
なる。
【0067】ステップ1001で取得した画面名称全てに対
してステップ1002から1003の処理を行う(ステップ1004
のNo)。ステップ1001で取得した画面名称全てに対して
処理が終了したら、ステップ905に戻る(ステップ1004
のYes)。本実施形態では、画面仕様401から、「use
r」、「password」、「name」、および「family」を取
得することができる。
【0068】再び図9を参照して、ステップ905に戻っ
たらステップ906に進む。ステップ906では、ステップ90
2で生成した共有データ保持クラス109のプログラムファ
イルにパッケージ文を記述する。まず、ステップ906で
は、パッケージを記述するための行「//package」1101
を追加する。ただし、パッケージ文は必須ではないので
コメントを表す記号「//」1102をつける。
【0069】ステップ907では、共有データ保持クラス
を実装するために最低限必要なパッケージやクラスをim
portするための行をプログラムファイルに記述する処理
を行う。本実施形態では、共有データ保持クラス「Purc
haseProcessEJB」を「ステートフルSession Bean」とし
てJavaのクラスファイルを生成することにしているの
で、「ステートフルSession Bean」を作成するために最
低限必要なパッケージやクラスを使えるようにするため
にimport文「import javax.ejb.*;」、「javax.naming.
*;」、および「javax.rmi.RemoteException;」1103を追
加する。最低限必要でないパッケージやクラスをimport
するときには、アプリケーション開発者201がプログラ
ムを実装するときに適宜に追加する。共有データ保持ク
ラスを実装するために必須のパッケージやクラスをあら
かじめimportしているので、アプリケーション開発者20
1はWebアプリケーションの業務部分の実装に集中するこ
とができる。
【0070】ステップ908では、共有データ保持クラス
の定義をプログラムファイルに記述する。本実施形態で
は、共有データ保持クラス「PurchaseProcessEJB」1104
のクラス定義を行う行「public class PurchaseProcess
EJB implemtens SessionBean」を記述する。本実施形態
では、共有データ保持クラス109としてEJB仕様の中の
「ステートフルSession Bean」を使うため、EJB仕様に
従って「implemtens SessionBean」1105も記述してい
る。ただし、共有データ保持クラス109を作成するクラ
スは「ステートフルSession Bean」に限らないので、Ja
vaBeansなどJavaで作成されたクラスであればよい。
【0071】ステップ908が終了したら、共有データ保
持クラス109を作成する仕様に従ってプログラムを生成
する。この処理の詳細を、図12のフローチャートを使
って詳細に説明する。本実施形態では、共有データ保持
クラス「PurchaseProcessEJB」をEJB仕様に従って生成
するので、図12はEJB仕様に従ってプログラムを生成
する処理を示している。
【0072】まず、ステップ1201の処理で、共有データ
保持クラス109のプログラムファイルの属性を定義す
る。本実施形態では、共有データ保持クラス109のプロ
グラムファイル「PurchaseProcessEJB.java」に図10
の処理で得られた属性「user」と、「password」と、
「name」と、「family」とを定義する行1106を生成す
る。このとき、入力項目や出力項目は、Webブラウザ102
と相性が良いように、型を「String」とし、また、一般
的なクラスの属性の可視性は「private」なので、これ
らを踏まえて「private String user;」のように、可視
性を「private」、型を「String」とする。この型は、
プログラム開発者201が、必要に応じて、Javaで提供さ
れている操作などを使い、適宜的な型変換をすること
で、問題なくWebアプリケーションの処理を記述するこ
とができる。
【0073】また、ステップ902で読み込んでいるクラ
ス仕様(図3)の属性303の項目から「可視性」304の「pr
ivate」305と、「型」306の「boolean」307と、「属性
名」308の「wasLogin」309と、「初期値」310の「fals
e」311とをそれぞれ取得して、属性を定義する行「priv
ate boolean wasLogin = false;」を記述する。そし
て、Session Beanの仕様に従って、型が「SessionConte
xt」である属性「context」を追加する。
【0074】ステップ1202では、共有データ保持クラス
109のプログラムファイルの操作をWebアプリケーション
の分析工程や設計工程の成果物であるクラス仕様を使っ
て定義する。本実施形態では、ステップ902で取得して
いるクラス仕様(図3)の操作312の項目から、「可視
性」313の「public」と「戻り値」315の「void」と「操
作名称」317の「userAuthentication」と「引数の型」3
19の「なし」と「引数名称」321の「なし」と、「可視
性」313の「public」314と「戻り値」315の「Vector」3
16と「操作名称」317の「familySelection」318と「引
数の型」319の「なし」320と「引数名称」321の「な
し」322とを取得して、それぞれに対応した操作を定義
する行「public void userAuthentication (){ }」と
「public Vector familySelection(){ }」を記述する。
EJBの仕様により、定義が必須になっている操作「ejbAc
tivate()」、「ejbremove()」、「ejbPassivate()」、
「setSessionContext( SessionContext context )」、
および「ejbCreate()」も追加する(行1107)。
【0075】ステップ1202で共有データ保持クラス「Pu
rchaseProcessEJB」1104の操作の定義を記述した図11
に示しているプログラムを生成したが、ステートフルSe
ssion Beanを使用するためには、対となる2つのクラス
は必要になる。それら2つのクラスは、リモートインタ
フェースを実装したクラス「PurchaseProcess」とホー
ムインタフェースを実装したクラス「PurchaseProcessH
ome」である。ステップ1203からステップ1210の処理に
よりこれら2つのクラスを作成する。
【0076】ステップ1203からステップ1206でリモート
インタフェースを実装したクラスを生成する。まず、ス
テップ1203で、リモートインタフェースを実装したクラ
スのプログラムファイルを作成する。本実施形態では、
リモートインタフェースのクラス名称は、一般的にSess
ion Beanの実際の処理を記述している共有データ保持ク
ラス「PurchaseProcessEJB」から、文字列「EJB」を取
り除いたもの「PurchaseProcess」とするので、リモー
トインタフェースを実装したクラス「PurchaseProces
s」に拡張子「.java」を付け加えた「PurchaseProcess.
java」というプログラムファイルを生成する。
【0077】ステップ1204では、ステップ1203で作成し
たリモートインタフェースを実装したクラスのプログラ
ムファイル「PurchaseProcess.java」にコメントになっ
ているパッケージ文「// package」1301を追加し、リモ
ートインタフェースを実装したクラス「PurchaseProces
s」が使用するパッケージやクラスをimportするために
「import rmi.*;」と「import javax.ejb.*;」1302を追
加する。
【0078】ステップ1205では、リモートインタフェー
スを実装したクラス「PurchaseProcess」を定義するた
めに、「EJBObject」1303を実装したクラス「PurchaseP
rocess」を定義する行「public class PurchaseProcess
implements EJBObject」1304を追加する。
【0079】ステップ1206の処理は、EJB仕様ではクラ
イアントが、業務処理を記述しているクラスである共有
データ保持クラス「PurchaseProcessEJB」の操作を使う
ことができるのは、リモートインタフェースを実装した
クラス「PurchaseProcess」に記述されているものでな
ければならない。そのため、共有データ保持クラス「Pu
rchaseProcessEJB」の属性「user」に値を設定する操作
「setUser()」と値を取得するための操作「getUser()」
1305を追加する。同様にして、共有データ保持クラス
「PurchaseProcessEJB」の他の属性「password」、「na
me」、「family」、および「wasLogin」に対する設定操
作と取得操作を追加する。
【0080】さらにステップ1206では、クラス仕様で定
義されている操作に関しても、属性値の設定操作や取得
操作と同様に、共有データ保持クラスに定義されている
操作を定義する。本実施形態では、共有データ保持クラ
ス「PurchaseProcessEJB」に関しては、Webアプリケー
ションの分析工程や設計工程で導出された操作は「user
Authentication」および「familySelection」なので、
それらの操作を定義する行「public void userAuthenti
cation () throws RemoteExceotion;」と「public Vect
or familySelection()throws RemoteExceotion;」(行13
06)を記述する。
【0081】次に、ステップ1207からステップ1210でホ
ームインタフェースを実装したクラス「PurchaseProces
sHome」を作成する。
【0082】まず、ステップ1207で、ホームインタフェ
ースを実装したクラス名称を生成する。本実施形態で
は、ホームインタフェースを実装したクラス名称は、一
般的にSession Beanの処理を記述している共有データ保
持クラス「PurchaseProcessEJB」のファイル名称の文字
列「EJB」を「Home」にしたもの「PurchaseProcessHom
e」となるため、プログラムのファイル名称として「Pur
chaseProcessHome.java」というファイルを生成する。
【0083】ステップ1208では、ホームインタフェース
を実装するために必ずimportするパッケージやクラスを
記述する。本実施形態では、ステップ1207で生成したホ
ームインタフェースを実装したクラスのプログラムファ
イル「PurchaseProcessHome.java」にコメントになって
いるパッケージ文「// package」1401を追加し、ホーム
インタフェースを実装したクラス「PurchaseProcessHom
e」が使用するパッケージやクラスを使うために必須の
パッケージをimportする文「import rmi.*;」と「impor
t javax.ejb.*;」1402を追加する。
【0084】ステップ1209では、EJB仕様に基づいてホ
ームインタフェースを実装したクラスを定義する。本実
施形態では、ホームインタフェースを実装したクラス
「PurchaseProcessHome」を定義するために、「EJBHom
e」を実装したクラス「PurchaseProcessHome」を定義す
る行「public class PurchaseProcessHome implements
EJBHome」1403を追加する。EJB仕様により、ホームイン
タフェースを実装したクラスを生成するために「implem
ents EJBHome」1404も記述する。
【0085】ステップ1210では、EJB仕様に従って、必
ず記述しなければならない操作「create」を定義する。
本実施形態では、ステップ1209で作成したホームインタ
フェースのクラス「PurchaseProcessHome」にはEJB仕様
に従って、返り値の型がリモートインタフェースを実装
したクラス「PurchaseProcess」1405である操作「creat
e()」の行1406を追加する。
【0086】図12の処理が終了したら、図9のステッ
プ910へ戻り、ステップ902で選択されたユースケース名
称すべての共有データ保持クラス109を生成するまで、
ステップ902からステップ909を繰り返す。ステップ910
で、ステップ902で選択されたユースケース全ての共有
データ保持クラス109を生成したら、ステップ911へ進
む。
【0087】ステップ911では、生成した3つのプログ
ラムファイル、共有データ保持クラス109のプログラム
ファイル「PurchaseProcessEJB.java」、リモートイン
タフェースを実装したクラスのプログラムファイル「Pu
rchaseProcess.java」、ホームインタフェースのクラス
を実装したクラスのプログラムファイル「PurchaseProc
essHome.java」をプログラム保存装置210に保存して終
了する。
【0088】図9の処理が終わると図11に示す共有デ
ータ保持クラス109のプログラムファイル「PurchasePro
cessEJB.java」、図13に示すリモートインタフェース
を実装したクラスのプログラムファイル「PurchaseProc
ess.java」、図14に示すホームインタフェースのクラ
スを実装したクラスのプログラムファイル「PurchasePr
ocessHome.java」が作成される。アプリケーション開発
者201は、Webアプリケーションの要求仕様に従い、Web
アプリケーションの業務処理を行う処理を記述する。
【0089】図15に、Webアプリケーション開発者201
が図11のプログラムファイルに業務処理を記述した例
として、操作「userAuthentication()」1501および「fa
milySelection()」1506を持つ共有データ保持クラス109
のプログラムファイル「PurchaseProcessEJB.java」を
示す。実際のプログラムファイルには必要だが、本実施
形態では、すでに図11で示しているので、図9のフロ
ーチャートの処理によって生成されたEJB仕様により記
述しなければならない操作や属性などの一部を省略して
いる。
【0090】操作「userAuthentication()」1501は、We
bアプリケーションを使うユーザによって入力されたユ
ーザ名とパスワードを使ってユーザの認証を行う処理を
行う。操作「userAuthentication()」1501の処理が正常
に終了しなかった場合に返す例外として「RemoteExceot
ion」1502を指定する。
【0091】操作「userAuthentication()」1501には、
業務処理を行うクラス「UserBean」1503を使ってユーザ
名とパスワードとユーザ名に対応しているユーザ名とを
持っているテーブルにアクセスして、入力されたユーザ
名とパスワードを情報として持っている属性「user」と
「password」1504を使って認証をする処理を記述してい
る。ユーザ名「user」とパスワード「password」を使っ
て認証処理を行い、認証が成立したら同じテーブルから
ユーザ名を取得して、属性「name」に代入する処理を記
述している(行1505)。ここで記述したユーザ認証をして
氏名を取得するという処理は、Webアプリケーションと
して要求仕様や設計工程で導出されたものなので、業務
処理を行うクラス「UserBean」1503に定義されている操
作「selectUser()」に記述されている。同様に、操作
「familySelection()」1506は、データベースにアクセ
スして、車種を取得する開発対象のWebアプリケーショ
ンの業務処理を記述している(行1507)。
【0092】また、操作「familySelection()」1506の
戻り値の型は、「Vector」であり、これは、「java.uti
l」パッケージに含まれている。そのため「Vector」を
使うには、「java.util」パッケージをインポートしな
ければならないので「importjava.util.*;」1508を追加
している。
【0093】このように、共有データ保持クラス「Purc
haseProcessEJB」のプログラムファイル「PurchaseProc
essEJB.java」に、開発対象のWebアプリケーションの要
求や設計工程で導出された業務処理を記述することで、
Webブラウザ102に表示する役割を持つ表示層114のコン
ポーネントでは、共有データ保持クラス109に定義され
ているWebアプリケーション固有の処理を実行する操作
を使うことで、処理を進めることができる。
【0094】本実施形態の場合、ログイン画面からメニ
ュー画面に遷移する間にユーザ認証をする場合、表示層
名称「Menu」の出力データ保持クラス「MenuBean」の中
で、ユースケース名称「車を購入する」に対応した共有
データ保持クラス「PurchaseProcessBean」のユーザ認
証を行う操作「userAuthentication()」を呼び出す。例
えば、「purchaseProcessBean.userAuthentication()」
のように記述するだけでよい。
【0095】このように、表示層114のコンポーネント
のプログラムファイルには、Webアプリケーション固有
の業務処理を直接記述しなくて良いようになるので、表
示層114のコンポーネントは、Webブラウザ102に表示す
るHTMLページ103の生成の処理に集中することができ
る。このように、業務処理を行う役割を持つコンポーネ
ントとHTMLページを作成する役割を持つコンポーネント
の役割を明確にすることができる。
【0096】また、例えばログイン画面と車種選択画面
とを統合したり、車種選択画面を分割するなど、Webア
プリケーションの画面仕様に変更があったときでも、We
bアプリケーションのユースケースが変わらない場合
は、共有データ保持クラス109の仕様は変わらないの
で、仕様変更があったHTMLページ103に合わせてコント
ロールクラス107、レイアウトクラス113、出力データ保
持クラス108を変更したり新しく作成したりすればよ
い。入力項目を受け付けたり、出力項目をHTMLページ10
3に表示したりするために行う業務処理は、出力データ
保持クラス108の中で、共有データ保持クラス109に定義
されている操作を適宜に使うように記述するだけで、表
示層114のコンポーネントを作成することができる。
【0097】
【発明の効果】以上説明したように、本発明によれば以
下のような効果が得られる。
【0098】Webブラウザに表示するHTMLページを作成
する役割を持つコンポーネントが、表示するための情報
を得るために、共有データ保持クラスに定義されている
Webアプリケーションの業務処理を行う操作を呼び出す
だけで処理結果を得ることができるので、画面仕様に変
更があった場合でも、業務に依存する処理を記述したコ
ンポーネントに変更を加えなくても容易に変更できる。
【0099】コントロールクラスと、レイアウトクラス
と、出力データ保持クラスのようなHTMLページの作成に
関する役割を持つ表示層と、画面レイアウトに依存しな
い業務処理を行う業務処理クラスやデータベースにアク
セスする役割を持つデータベースアクセスクラスのよう
にWebアプリケーションに特有の処理を記述したクラス
間の依存関係を減らすことができ、各クラスの機能分担
を明確にすることができる。
【0100】パソコンから利用していたWebアプリケー
ションを携帯端末からも利用できるようにするときのよ
うに、1つのHTMLページを分割したり、画面レイアウト
が変更したりする場合も、表示層の部分のみを作成する
だけで良い。
【0101】処理の途中でWebブラウザにアクセスした
場合、共有データ保持クラスが正しい情報を持っていな
いので不正アクセスとみなすことができ、そのようなア
クセスを排除することができるように、正規の画面遷移
をたどっているかどうかを調べることができる。
【図面の簡単な説明】
【図1】Webアプリケーションの構成を示す図である。
【図2】本発明のWebアプリケーションの開発を支援す
るシステム構成の一例を示す図である。
【図3】クラス仕様の例を示す図である。
【図4】画面仕様の例を示す図である。
【図5】業務プロセス定義表を生成する処理の流れを示
すフローチャートである。
【図6】業務プロセス定義表である。
【図7】コンポーネント対応表を生成する処理の流れを
示すフローチャートである。
【図8】コンポーネント対応表の例である。
【図9】共有データ保持クラスのプログラムを生成する
処理の流れを示すフローチャートである。
【図10】画面仕様から入力項目と出力項目を取得する
処理の流れを示すフローチャートである。
【図11】共有データ保持クラスの例である。
【図12】Session Beanを共有データ保持クラスにした
場合のプログラム生成処理の流れを示すフローチャート
である。
【図13】共有データ保持クラスのモートオブジェクト
を実装したクラスの生成例である。
【図14】共有データ保持クラスのホームインタフェー
スを実装したクラスの生成例である。
【図15】共有データ保持クラスの業務を行う操作を実
装した例である。
【符号の説明】
101……クライアント 102……Webブラウザ 103……HTMLページ 104……サーバ 105……HTTPサーバ 106……アプリケーションサーバ 107……コントロールクラス 108……出力データ保持クラス 109……共有データ保持クラス 110……業務処理クラス 111……データベース 112……データベースアクセスクラス 113……レイアウトクラス 114……表示層 201……アプリケーション開発者 202……端末 203……中央処理装置 204……外部記憶装置 205……設計ドキュメント保存装置 206……表示情報取得装置 207……定義表生成装置 208……定義表保存装置 209……プログラム生成装置 210……プログラム保存装置
───────────────────────────────────────────────────── フロントページの続き (72)発明者 正村 勉 神奈川県横浜市中区尾上町6丁目81番地 日立ソフトウエアエンジニアリング株式会 社内 (72)発明者 菅沼 弘 神奈川県横浜市中区尾上町6丁目81番地 日立ソフトウエアエンジニアリング株式会 社内 (72)発明者 細美 彰宏 神奈川県横浜市中区尾上町6丁目81番地 日立ソフトウエアエンジニアリング株式会 社内 (72)発明者 石田 至 神奈川県横浜市中区尾上町6丁目81番地 日立ソフトウエアエンジニアリング株式会 社内 Fターム(参考) 5B076 DA00 DB01 DB04 DC00 DC02 DC03 DD05

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】Webアプリケーション開発方法であって、 Webブラウザに1つの表示画面を表示するファイルを生
    成する役割を持つコンポーネントを表示層のコンポーネ
    ントの1つとし、複数の表示画面に対応する複数の表示
    層のコンポーネントを定義するステップと、 業務処理を行うコンポーネントやデータベースにアクセ
    スする役割を持つコンポーネントを業務シナリオ層とし
    て定義するステップと、 複数の表示層のコンポーネントから呼び出される操作
    と、表示層のコンポーネントにより表示された表示画面
    で入力された情報や業務シナリオ層で実行された業務処
    理により得られた値を保存する領域を持つコンポーネン
    トを1つの業務プロセス層として定義するステップとを
    備えることを特徴とするWebアプリケーション開発方
    法。
  2. 【請求項2】請求項1に記載のWebアプリケーション開
    発方法において、 前記表示層のコンポーネントは、Webブラウザに表示す
    る画面レイアウトを決定する役割を持つレイアウト層の
    コンポーネントと、Webブラウザからの情報の窓口とな
    り、レイアウト層のコンポーネントと業務シナリオ層の
    コンポーネントを制御する役割を持つコントロール層の
    コンポーネントと、コントロール層のコンポーネントか
    ら呼び出され、Webブラウザから入力された情報の解析
    や画面へ出力するデータを保持する役割を持ち、業務プ
    ロセス層のコンポーネントや業務シナリオ層のコンポー
    ネントを呼び出す出力データ保持層のコンポーネントと
    を備えることを特徴とするWebアプリケーション開発方
    法。
  3. 【請求項3】Webアプリケーション開発方法であって、 Webブラウザに1つの表示画面を表示するファイルを生
    成する役割を持つコンポーネントを表示層のコンポーネ
    ントの1つとし、複数の表示画面に対応する複数の表示
    層のコンポーネントを定義するステップと、 前記表示層のコンポーネントの中に、Webブラウザに表
    示する画面レイアウトを決定する役割を持つレイアウト
    層のコンポーネントと、Webブラウザからの情報の窓口
    となり、レイアウト層のコンポーネントと業務シナリオ
    層のコンポーネントを制御する役割を持つコントロール
    層のコンポーネントと、コントロール層のコンポーネン
    トから呼び出され、Webブラウザから入力された情報の
    解析や画面へ出力するデータを保持する役割を持ち、業
    務プロセス層のコンポーネントや業務シナリオ層のコン
    ポーネントを呼び出す出力データ保持層のコンポーネン
    トとを定義するステップと、 出力データ保持層のコンポーネントや、業務プロセス層
    のコンポーネントから呼び出され業務処理を実行し、画
    面に表示する情報を収集する役割を持つコンポーネント
    を業務シナリオ層として定義するステップと、 表示層のコンポーネントに呼び出される操作と、情報を
    保存する領域を持つコンポーネントを業務プロセス層と
    して定義するステップとを備え、 開発したWebアプリケーションの実行時には、前記表示
    層のコンポーネントが表示するための情報を得るため
    に、前記業務プロセス層に定義されている操作を呼び出
    すだけで処理結果を得ることができるようにするととも
    に、前記業務プロセス層に正しい情報が保存されている
    ことをチェックすることで正規の画面遷移を辿っている
    かを確認できるようにすることを特徴とするWebアプリ
    ケーション開発方法。
  4. 【請求項4】請求項1から3の何れか1つに記載のWeb
    アプリケーション開発方法において、 ユースケースと画面遷移と前記業務プロセス層とを対応
    させて定義するステップをさらに備えることを特徴とす
    るWebアプリケーション開発方法。
  5. 【請求項5】請求項1から3の何れか1つに記載のWeb
    アプリケーション開発方法において、 Webアプリケーションの画面仕様と前記業務プロセス層
    の定義を用いて、前記業務プロセス層のプログラムを生
    成するステップをさらに備えることを特徴とするWebア
    プリケーション開発方法。
  6. 【請求項6】請求項1から3の何れか1つに記載のWeb
    アプリケーション開発方法において、 開発すべきWebアプリケーションで使用するクラスの名
    称、属性、および操作を定義したクラス仕様と、開発す
    べきWebアプリケーションが提供するサービスを表すユ
    ースケースの名称と、各ユースケースで使用する画面の
    仕様とを取得し、ユースケースと画面とクラスとを対応
    付けた業務プロセス定義表を生成するステップと、 画面仕様から各画面に対応するHTMLファイル名称を取得
    し、そのHTMLファイル名称に基づいて、各HTMLファイル
    に対応する表示層のコンポーネントの名称とそのコンポ
    ーネントに名称とを設定してコンポーネント対応表を生
    成するステップと、 前記業務プロセス定義表およびコンポーネント対応表、
    並びに、クラス仕様と画面仕様を用いて、業務プロセス
    層のコンポーネントとなるプログラムを生成するステッ
    プとをさらに備えることを特徴とするWebアプリケーシ
    ョン開発方法。
  7. 【請求項7】Webアプリケーションの開発を支援するた
    めの開発支援装置であって、 Webブラウザに1つの表示画面を表示するファイルを生
    成する役割を持つコンポーネントを表示層のコンポーネ
    ントの1つとし、複数の表示画面に対応する複数の表示
    層のコンポーネントを定義する手段と、 業務処理を行うコンポーネントやデータベースにアクセ
    スする役割を持つコンポーネントを業務シナリオ層とし
    て定義する手段と、 複数の表示層のコンポーネントから呼び出される操作
    と、表示層のコンポーネントで表示された表示画面で入
    力された情報や業務シナリオ層で実行された業務処理に
    より得られた値を保存する領域を持つコンポーネントを
    1つの業務プロセス層として定義する手段とを備えるこ
    とを特徴とするWebアプリケーション開発支援装置。
  8. 【請求項8】Webアプリケーションの開発を支援するた
    めの開発支援装置であって、 Webアプリケーションの分析工程や設計工程で作成され
    る設計情報を保存する設計ドキュメント保存手段と、 前記設計ドキュメント保存手段に保存されている設計情
    報を読み出してWebブラウザに表示する情報を取得する
    表示情報取得手段と、 前記設計ドキュメント保存手段から、設計情報の中のユ
    ースケースと画面遷移と業務プロセス層とを対応づけて
    定義する定義表生成手段と、 前記定義表生成手段で生成された定義表を保存する定義
    表保存手段と、 前記表示情報取得手段が保持している情報と、前記定義
    表保存手段に保存されている業務プロセス定義表を取得
    して、業務プロセス層のプログラムファイルを生成する
    プログラムファイル生成手段と、 前記プログラムファイル生成手段で生成されたプログラ
    ムを保存するプログラム保存手段とを備えることを特徴
    とするWebアプリケーション開発支援装置。
  9. 【請求項9】請求項7または8に記載のWebアプリケー
    ション開発支援装置において、 前記設計ドキュメント保存手段は、設計情報として、開
    発すべきWebアプリケーションが提供するサービスを表
    すユースケースの一覧、Webブラウザに表示するHTMLフ
    ァイル、入力項目や出力項目を定義した画面仕様、クラ
    スの名称や属性や操作を定義したクラス仕様、およびHT
    MLページの順序を指定した画面遷移情報を保存し、 前記定義表生成手段は、ユースケースと画面とクラスと
    を対応付けた業務プロセス定義表、および各HTMLファイ
    ルに対応する表示層のコンポーネントの名称とそのコン
    ポーネントに名称とを設定してコンポーネント対応表を
    生成し、 前記プログラムファイル生成手段は、前記表示層のコン
    ポーネントが前記業務プロセス層に定義されている操作
    を呼び出すだけで処理結果を得ることができるように、
    前記業務プロセス層のコンポーネントとなるプログラム
    を生成するものであることを特徴とするWebアプリケー
    ション開発支援装置。
JP2001197406A 2001-06-28 2001-06-28 Webアプリケーション開発方法および開発支援装置 Pending JP2003015870A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001197406A JP2003015870A (ja) 2001-06-28 2001-06-28 Webアプリケーション開発方法および開発支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001197406A JP2003015870A (ja) 2001-06-28 2001-06-28 Webアプリケーション開発方法および開発支援装置

Publications (1)

Publication Number Publication Date
JP2003015870A true JP2003015870A (ja) 2003-01-17

Family

ID=19035017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001197406A Pending JP2003015870A (ja) 2001-06-28 2001-06-28 Webアプリケーション開発方法および開発支援装置

Country Status (1)

Country Link
JP (1) JP2003015870A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005327251A (ja) * 2004-02-27 2005-11-24 Research In Motion Ltd 条件付きui制御及び画面ナビゲーションを有する対話型無線アプリケーションのためのシステム及び方法
JP2006268125A (ja) * 2005-03-22 2006-10-05 Fuji Electric Systems Co Ltd アプリケーションサーバ、そのプログラム
JP2006330896A (ja) * 2005-05-24 2006-12-07 Nittetsu Hitachi Systems Engineering Inc 携帯端末用アプリケーション作成支援システム
JP2006338477A (ja) * 2005-06-03 2006-12-14 Atrris Corp 情報処理装置とシステム開発方法
US7886276B2 (en) 2004-12-28 2011-02-08 International Business Machines Corporation Application program development assisting method, program, and information processing apparatus
JP2012164177A (ja) * 2011-02-08 2012-08-30 Root42 Inc プログラム自動生成システム
JP2017120637A (ja) * 2015-12-31 2017-07-06 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation モジュール処理方法およびシステム、並びに記録媒体

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005327251A (ja) * 2004-02-27 2005-11-24 Research In Motion Ltd 条件付きui制御及び画面ナビゲーションを有する対話型無線アプリケーションのためのシステム及び方法
JP2009070411A (ja) * 2004-02-27 2009-04-02 Research In Motion Ltd 条件付きui制御及び画面ナビゲーションを有する対話型無線アプリケーションのためのシステム及び方法
US7886276B2 (en) 2004-12-28 2011-02-08 International Business Machines Corporation Application program development assisting method, program, and information processing apparatus
JP2006268125A (ja) * 2005-03-22 2006-10-05 Fuji Electric Systems Co Ltd アプリケーションサーバ、そのプログラム
JP2006330896A (ja) * 2005-05-24 2006-12-07 Nittetsu Hitachi Systems Engineering Inc 携帯端末用アプリケーション作成支援システム
JP2006338477A (ja) * 2005-06-03 2006-12-14 Atrris Corp 情報処理装置とシステム開発方法
JP2012164177A (ja) * 2011-02-08 2012-08-30 Root42 Inc プログラム自動生成システム
JP2017120637A (ja) * 2015-12-31 2017-07-06 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation モジュール処理方法およびシステム、並びに記録媒体

Similar Documents

Publication Publication Date Title
US7647564B2 (en) System and method for dynamically generating a graphical user interface
US6823522B1 (en) Methods, systems and computer program products for chaining integration objects to provide web access for legacy data sources
US8627344B2 (en) Methods and apparatuses for user interface management
US20020101448A1 (en) Generating a declarative user interface
US20020105548A1 (en) Methods and apparatus for creating a user interface using property paths
JP2001344105A (ja) Webアプリケーション開発方法、開発支援システム、および該方法に係るプログラムを記憶した記憶媒体
US20030069906A1 (en) Method and system for multi-page web applications with central control
Anderson The model-view-viewmodel (mvvm) design pattern
US20170295217A1 (en) Method and system of application development for multiple device client platforms
JP2003015870A (ja) Webアプリケーション開発方法および開発支援装置
JP6231260B2 (ja) 画面制御システム、画面制御プログラム、画面作成支援プログラム及び画面制御方法
Nusairat Beginning JBoss Seam: From Novice to Professional
JP2000132425A (ja) ソフトウェアテスト方法
JP2006268125A (ja) アプリケーションサーバ、そのプログラム
CN114124735B (zh) 路由设计方法及电子设备
Chen et al. An architecture for web-based DSS
Wutka et al. Sams Teach Yourself JavaServer Pages 2.0 with Apache Tomcat in 24 Hours
Sauter et al. Extending the MVC design pattern towards a task-oriented development approach for pervasive computing applications
EP1403765A1 (en) Method and computer system for event handling
Hertel Aspects of AJAX
Steyer Learning JQuery: A Hands-on Guide to Building Rich Interactive Web Front Ends
Freeman et al. The MVC Pattern, Projects, and Conventions
Mitchell Sams Teach Yourself ASP. NET 4 in 24 Hours: Complete Starter Kit
CN115687831A (zh) web页面的定制方法、装置、电子设备和存储介质
Kvell Aranea Ajax

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040408

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061117

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070312