(57)【要約】【課題】  利用者が効率的にアプリケーションプログラムを生成し、それに応じた課金を行なうことができるシステム開発支援方法及びプログラムを提供する。【解決手段】  クライアント端末１０のキーワードスキーマ１１とコンポーザ１２により、３層からなる仕様ＸＭＬコードＳＰＥＸを生成する。シミュレータ１３は、シミュレータ用テンプレートデータ記憶部１３１に格納されたテンプレートを用いてＡＳＰコードを生成し、シミュレーションを実行する。ジェネレータ１４は、アプリケーションプログラムの環境情報の入力を受け、管理サーバ２０からテンプレートを取得する。ジェネレータ１４は、このテンプレートを用いてソースコードを生成する。更に、仕様ＸＭＬコードＳＰＥＸのタグ等を用いてファンクションポイントを算出し、管理サーバ２０に送信する。管理サーバ２０は、このファンクションポイントを用いて利用者に対して課金を行なう。【選択図】      図１
2006209655.tif 000002
【特許請求の範囲】
【請求項１】
利用者が仕様を入力するためのオブジェクトと、それに対応したＸＭＬコードとを関連付けて記録したスキーマと、
ＸＭＬコードからクライアント端末内でクライアント側ロジックとサーバ側ロジックとを生成するための第１のテンプレートと、
利用環境に対応させて、ＸＭＬコードからサーバで実行するためのソースコードを生成するための第２のテンプレートとを用いて、コンポーザとシミュレータとジェネレータとして機能するクライアント端末においてシステム開発を支援するシステム開発支援方法であって、
前記コンポーザが、前記スキーマを用いて、入力されたオブジェクトからＸＭＬコードを生成する段階と、
前記シミュレータが、前記コンポーザが生成したＸＭＬコードを、前記第１のテンプレートを用いて、クライアント端末内で実行させるクライアント側ロジックとサーバ側ロジックとを生成し、両者を協働させてシミュレーションを実行する段階と、
前記ジェネレータが、利用者が設定した利用環境に応じた第２のテンプレートを取得し、この第２のテンプレートを用いて前記ＸＭＬコードからソースコードを生成する段階とを含むことを特徴とするシステム開発支援方法。
【請求項２】
前記クライアント端末は、ネットワークを介して管理サーバに接続され、
前記管理サーバが、利用環境に対応させて第２のテンプレートを保持し、
前記ジェネレータは、ソースコードの生成時に、利用者が設定した利用環境に関するデータを送信し、前記管理サーバから、前記利用環境に応じた第２のテンプレートを取得する段階を更に実行することを特徴とする請求項１に記載のシステム開発支援方法。
【請求項３】
前記ジェネレータは、ソースコードの生成後に、前記管理サーバから取得した第２のテンプレートを削除する段階を更に実行することを特徴とする請求項２に記載のシステム開発支援方法。
【請求項４】
前記ジェネレータは、前記コンポーザが生成したＸＭＬコードに含まれる所定の識別子を計数し、前記管理サーバに送信する段階を更に実行することを特徴とする請求項２又は３に記載のシステム開発支援方法。
【請求項５】
利用者が仕様を入力するためのオブジェクトと、それに対応したＸＭＬコードとを関連付けて記録したスキーマと、
ＸＭＬコードからクライアント端末内でクライアント側ロジックとサーバ側ロジックとを生成するための第１のテンプレートと、
利用環境に対応させて、ＸＭＬコードからサーバで実行するためのソースコードを生成するための第２のテンプレートとを用いて、クライアント端末においてシステム開発を支援するシステム開発支援プログラムであって、
前記クライアント端末を、
前記スキーマを用いて、入力されたオブジェクトからＸＭＬコードを生成するコンポーザと、
前記コンポーザが生成したＸＭＬコードを、前記第１のテンプレートを用いて、クライアント端末内で実行させるクライアント側ロジックとサーバ側ロジックとを生成し、両者を協働させてシミュレーションを実行するシミュレータと、
利用者が設定した利用環境に応じた第２のテンプレートを取得し、この第２のテンプレートを用いて前記ＸＭＬコードからソースコードを生成するジェネレータ
として機能させることを特徴とするシステム開発支援プログラム。
【請求項６】
前記クライアント端末は、ネットワークを介して管理サーバに接続され、
前記管理サーバが、利用環境に対応させて第２のテンプレートを保持し、
前記ジェネレータは、ソースコードの生成時に、利用者が設定した利用環境に関するデータを送信し、前記管理サーバから、前記利用環境に応じた第２のテンプレートを取得することを特徴とする請求項５に記載のシステム開発支援プログラム。
【請求項７】
前記ジェネレータは、ソースコードの生成後に、前記管理サーバから取得した第２のテンプレートを削除することを特徴とする請求項６に記載のシステム開発支援プログラム。
【請求項８】
前記ジェネレータは、前記コンポーザが生成したＸＭＬコードに含まれる所定の識別子を計数し、前記管理サーバに送信することを特徴とする請求項６又は７に記載のシステム開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、利用者の設計モデルに基づいてソースコードを生成するシステム開発支援方法及びシステム開発支援プログラムに関する。
【背景技術】
【０００２】
通常、プログラミングを行なう場合、機械語でプログラムを書く必要がある。しかし、このためには機械語の専門知識が必要である。思考支援ソフトウェアを利用して考えをまとめた上で、アセンブリ言語を用いてプログラムを書く場合もある。この場合には、アセンブラがバイナリコードを生成する。
【０００３】
また、複数の人の考えを集積し、それを思考・協調支援ソフトウェアを利用してまとめてモデリングを行なう場合もある。この場合も、プログラミング言語を用いてプログラムを書き、アルゴリズムライブラリを用いて、コンパイラによりバイナリコードを生成する。
【０００４】
思考・協調支援ソフトウェアにおいて、アーキテクチャやデザインパターンを用い、更にモデリングにはモデリングツールを利用する場合もある。
しかし、このような場合、利用者には、プログラミングを行なうための専門知識が要求される。
【０００５】
そこで、生成したモデルからプログラムを生成するジェネレータが考案されている（例えば、特許文献１参照）。このジェネレータが生成したプログラムから、コンパイラがバイナリコードを生成する。近年、統一モデリング言語（ＵＭＬ：Unified Modeling Language ）を用いたオブジェクト指向技術に注目が集まっており、ソフトウェア開発などで用いられている。この統一モデリング言語は、設計モデルを記述し、その内容に基づいてプログラミングを行うために、ソフトウエアシステムを仕様化、可視化、文書化する言語である。統一モデリング言語においては、構造を表現するクラス図、オブジェクト図及びコンポーネント図、動作を表現するユース・ケース図、シーケンス図、コラボレーション図、ステートチャート図及びアクティビティ図が用いられる。この統一モデリング言語は、ビジネスモデリング、要求管理、分析／設計、プログラミング、テストなどの分野で利用されている。
【０００６】
さらに、オブジェクト指向プログラムを、コンピュータを利用して自動生成するソフトウェア開発の作業効率を大幅に向上させることを目的とした技術も開示されている（例えば、特許文献２参照）。この特許文献１に記載の自動生成装置は、設計ドキュメントからオブジェクト指向プログラムを、コンピュータを利用して自動生成する。この自動生成装置は、エディタなどの入力装置によって、対象システムの構造を表現する図を作成するクラス図等生成手段を備え、第１プログラム生成手段が、前記の構造を表現する図から静的部分のプログラムを生成する。そして、エディタなどの入力装置によって、前記対象システムの動的な振る舞いを表現する図を作成するステートチャート図等作成手段を備え、前記の動的な振る舞いを表現する図から、ステートマシンツリーを生成する。そして、第２プログラム生成手段が前記ステートマシンツリーから動的部分のプログラムを生成する。そして、第３プログラム生成手段が、第１プログラム生成手段で生成された静的部分のプログラムと第２プログラム生成手段で生成された動的部分のプログラムを結合して製品であるプログラムを自動生成する。
【特許文献１】特開２００１−３１８８１２号公報（第１頁）
【特許文献２】特開２００２−１１６９１１号公報（第１頁）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ソースコードは、プログラミング言語やＯＳ（Operating System）等の利用環境によって異なる。しかしながら、上述の先行技術では、生成されるソースコードは限定されている。
【０００８】
また、ソースコードも作成してから時間が経過すると、利用環境の変化に応じた修正が必要となる場合もある。
また、コードを手入力する場合、手入力によって動作詳細をプログラミングすることは、人為的なミスが入りこみやすく、生産効率を阻害することもある。
【０００９】
本発明は、設計モデルを元にしたプログラミング作業を効率化するとともに、手作業による誤りを防止してソフトウェアの品質を向上させることを目的とする。更に、それに応じた課金を行なうことを目的とする。
【課題を解決するための手段】
【００１０】
上記問題点を解決するために、請求項１に記載の発明は、利用者が仕様を入力するためのオブジェクトと、それに対応したＸＭＬコードとを関連付けて記録したスキーマと、ＸＭＬコードからクライアント端末内でクライアント側ロジックとサーバ側ロジックとを生成するための第１のテンプレートと、利用環境に対応させて、ＸＭＬコードからサーバで実行するためのソースコードを生成するための第２のテンプレートとを用いて、コンポーザとシミュレータとジェネレータとして機能するクライアント端末においてシステム開発を支援するシステム開発支援方法であって、前記コンポーザが、前記スキーマを用いて、入力されたオブジェクトからＸＭＬコードを生成する段階と、前記シミュレータが、前記コンポーザが生成したＸＭＬコードを、前記第１のテンプレートを用いて、クライアント端末内で実行させるクライアント側ロジックとサーバ側ロジックとを生成し、両者を協働させてシミュレーションを実行する段階と、前記ジェネレータが、利用者が設定した利用環境に応じた第２のテンプレートを取得し、この第２のテンプレートを用いて前記ＸＭＬコードからソースコードを生成する段階とを含むことを要旨とする。
【００１１】
請求項２に記載の発明は、請求項１に記載のシステム開発支援方法において、前記クライアント端末は、ネットワークを介して管理サーバに接続され、前記管理サーバが、利用環境に対応させて第２のテンプレートを保持し、前記ジェネレータは、ソースコードの生成時に、利用者が設定した利用環境に関するデータを送信し、前記管理サーバから、前記利用環境に応じた第２のテンプレートを取得する段階を更に実行することを要旨とする。
【００１２】
請求項３に記載の発明は、請求項２に記載のシステム開発支援方法において、前記ジェネレータは、ソースコードの生成後に、前記管理サーバから取得した第２のテンプレートを削除する段階を更に実行することを要旨とする。
【００１３】
請求項４に記載の発明は、請求項２又は３に記載のシステム開発支援方法において、前記ジェネレータは、前記コンポーザが生成したＸＭＬコードに含まれる所定の識別子を計数し、前記管理サーバに送信する段階を更に実行することを要旨とする。
【００１４】
請求項５に記載の発明は、利用者が仕様を入力するためのオブジェクトと、それに対応したＸＭＬコードとを関連付けて記録したスキーマと、ＸＭＬコードからクライアント端末内でクライアント側ロジックとサーバ側ロジックとを生成するための第１のテンプレートと、利用環境に対応させて、ＸＭＬコードからサーバで実行するためのソースコードを生成するための第２のテンプレートとを用いて、クライアント端末においてシステム開発
を支援するシステム開発支援プログラムであって、前記クライアント端末を、前記スキーマを用いて、入力されたオブジェクトからＸＭＬコードを生成するコンポーザと、前記コンポーザが生成したＸＭＬコードを、前記第１のテンプレートを用いて、クライアント端末内で実行させるクライアント側ロジックとサーバ側ロジックとを生成し、両者を協働させてシミュレーションを実行するシミュレータと、利用者が設定した利用環境に応じた第２のテンプレートを取得し、この第２のテンプレートを用いて前記ＸＭＬコードからソースコードを生成するジェネレータとして機能させることを要旨とする。
【００１５】
請求項６に記載の発明は、請求項５に記載のシステム開発支援プログラムにおいて、前記クライアント端末は、ネットワークを介して管理サーバに接続され、前記管理サーバが、利用環境に対応させて第２のテンプレートを保持し、前記ジェネレータは、ソースコードの生成時に、利用者が設定した利用環境に関するデータを送信し、前記管理サーバから、前記利用環境に応じた第２のテンプレートを取得することを要旨とする。
【００１６】
請求項７に記載の発明は、請求項６に記載のシステム開発支援プログラムにおいて、前記ジェネレータは、ソースコードの生成後に、前記管理サーバから取得した第２のテンプレートを削除することを要旨とする。
【００１７】
請求項８に記載の発明は、請求項６又は７に記載のシステム開発支援プログラムにおいて、前記ジェネレータは、前記コンポーザが生成したＸＭＬコードに含まれる所定の識別子を計数し、前記管理サーバに送信することを要旨とする。
【００１８】
（作用）
請求項１又は５に記載の発明によれば、クライアント端末内でＸＭＬコードが生成され、第１のテンプレートを用いて、クライアント側ロジックとサーバ側ロジックとが生成される。これにより、シミュレータが両者を協働させてシミュレーションを実行するため、利用者は機能を確認した上でソースコードを生成することができる。更に、第２のテンプレートを用いてＸＭＬコードからソースコードを生成するため、中立なプラットフォームを用いて利用環境に応じたソースコードを生成することができる。
【００１９】
請求項２又は６に記載の発明によれば、ソースコードの生成時に、利用者が設定した利用環境に関するデータを送信し、管理サーバから前記利用環境に応じた第２のテンプレートを取得する。このため、利用者がソースコードを生成する場合にのみにテンプレートを提供することができる。
【００２０】
請求項３又は７に記載の発明によれば、ソースコードの生成後に、前記管理サーバから取得した第２のテンプレートを削除する。このため、第２のテンプレートの流用を抑制できる。
【００２１】
請求項４又は８に記載の発明によれば、コンポーザが生成したＸＭＬコードに含まれる所定の識別子を計数し、前記管理サーバに送信する。これにより、管理サーバにおいて利用状況を把握することができる。従って、この利用状況に応じて課金を行なうことができる。
【発明の効果】
【００２２】
本発明によれば、利用者が効率的にアプリケーションプログラムを生成し、それに応じた課金を行なうことができるシステム開発支援方法及びシステム開発支援プログラムを提供することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明を具体化した実施形態を、図１〜図４に従って説明する。本実施形態では、システム開発支援プログラムを格納したコンピュータ端末において、各種アプリケーションプログラムを生成する。ここでは、まず、ビジネスロジック等、顧客の仕様に関するデータをクライアント端末１０に入力することにより、ＸＭＬ（Extensible Markup Language）により表現されたコード（仕様ＸＭＬコードＳＰＥＸ）を生成する。そして、この仕様ＸＭＬコードＳＰＥＸからソースコードを生成し、これに対して課金を行なう。
【００２４】
クライアント端末１０には、図示しないＣＰＵ、ＲＡＭ、ＲＯＭの他、キーボード、マウス等の入力手段、ディスプレイ等の出力手段、モデム等の通信手段等を備える。このクライアント端末１０には、プログラムデータ記憶部を備え、ここにシステム開発支援プログラムを格納する。このシステム開発支援プログラムを起動させることにより、クライアント端末１０は、後述する処理（ＸＭＬコード生成段階、シミュレーション実行段階、ソースコード生成段階、第２のテンプレートを取得する段階、第２のテンプレートを削除する段階、所定識別子数を送信する段階等を含む処理）を行なう。これにより、図１に示すように、クライアント端末１０は、後述するようにキーワードスキーマ１１、コンポーザ１２、シミュレータ１３、ジェネレータ１４等として機能する。
【００２５】
以下、各機能ブロックやシステム開発支援プログラムにおいて用いられる各要素について説明する。
（１）キーワードスキーマ（Keyword Schema）
このキーワードスキーマ１１は、コンポーザが生成するＸＭＬの規則（論理構造や物理構造の定義）を決める。このキーワードスキーマ１１は、システム開発支援プログラムの一部として組み込まれている。
【００２６】
（２）コンポーザ（Composer）
このコンポーザ１２は、利用者がアプリケーションプログラムの中で用いる様々なパーツ（ページ、ビジネスロジック、クエリー及びテーブル等）を設計するためのＧＵＩ（Graphical User Interface）部品を備える。利用者による設計に基づいて、コンポーザ１２は仕様ＸＭＬコードＳＰＥＸを生成する。
【００２７】
（３）仕様ＸＭＬコードＳＰＥＸ（Specification in  ＸＭＬ）
本システム開発支援プログラムにおいては、仕様ＸＭＬコードＳＰＥＸを用いて、生成するアプリケーションプログラムの全体の機能を定義する。すなわち、ＸＭＬフォーマットという利用環境に中立なプラットフォームにおいて蓄積される。具体的には、キーワードスキーマ１１の中で定義されたルール上で仕様ＸＭＬコードＳＰＥＸが生成される。この仕様ＸＭＬコードＳＰＥＸは、プレゼンテーション層、ビジネスロジック層、データストレージ層の３つの部分に分割される。
【００２８】
（３−１）プレゼンテーション層
このプレゼンテーション層では、アプリケーションのユーザインターフェイス（ＵＩ）を提供する。プレゼンテーション層は、以下のオブジェクトから構成される。
・ユースケースオブジェクト：このオブジェクトはユーザのアクションに基づくナビゲーションをハンドルしており、このオブジェクトが次のページを表示するか、またはユーザセッションを終了するかを判断する。
・ウェブページ：このオブジェクトは多様な表示スタイルに基づいたユーザインターフェースを扱う。各ページには、他の層からの出力を表示し、利用者が入力を行なうフィールドが設けられる。
・アクションコントローラ：このオブジェクトは利用者のアクションに基づいて行われる多様なアクティビティを判断する。
・コントロールオブジェクト：セッションマネージャがユースケースオブジェクトを制御
する。
・サポーティングオブジェクト：エラー辞書を備える。
【００２９】
（３−２）ビジネスロジック層
ビジネスロジック層は、アプリケーションのロジックとビジネスルールを含んでおり、ビジネスロジックとアプリケーションのトランザクションの要求に対応する。これらのコンポーネントは利用者のアクションとデータベースの間に位置する。ビジネスロジック層は、以下のオブジェクトから構成される。
・ビジネスオブジェクト：データ保存前のロジックを扱い、ビジネスオブジェクトは、システムに実装されているビジネスユースケースの現実化を表現する実装システムを抽象化したものである。
・トランザクションオブジェクト：データ保存後のロジックを扱う。
・クエリーオブジェクト：アプリケーションクエリーの要求に対してビジネスオブジェクトとトランザクションオブジェクトの両方の役割を実行する。利用者がデータを取得し、更に複雑条件によるデータ操作をバックエンドで実行する。クエリーは複数のＳＱＬ文から構成される。
・制御オブジェクト：オブジェクトコレクション、トランザクションマネージャ、トランザクション制御オブジェクトから構成される。
・サポーティングオブジェクト：エラー辞書を備える。
【００３０】
（３−３）データストレージ層
この層では、ＳＱＬ文の編成と実行を扱う。多くのビジネスアプリケーションは、企業のデータベースに格納されたデータにアクセスする必要があり、このデータベースはリレーショナルデータベースであることが一般的である。このデータ層のデータアクセスコンポーネントの役割は、このようなデータベースに格納されているデータをビジネスロジック層に公開することである。このため、データストレージ層は、テーブル及びテーブル関係定義を含み、データストレージ層は、データベースでのレコード追加、取得及びビジネスロジック層への転送、ビジネスロジック層により指定されたレコードの更新、レコード削除等の各タスクをデータベース上で行うデータアクセスロジックコンポーネントから構成される。
次のオブジェクトから構成される。
・テーブルオブジェクト：ＳＱＬステートメントの編成と実行
・コネクションマネージャ：データベースへのコネクションを管理
【００３１】
（４）シミュレータ（Simulator ）
このシミュレータ１３は、コンポーザ１２により生成された仕様ＸＭＬコードＳＰＥＸを用いて、設計されたアプリケーションの機能をシミュレーションするために利用される。シミュレータ１３は以下の要素から構成される。
【００３２】
（４−１）シミュレータ用テンプレート（Simulator Templates ）
このシミュレータ用テンプレートデータ記憶部１３１には、第１のテンプレートとしてＸＳＬＴ（XML Style sheet Language Transformations）ファイルのセットが記録される。ここで、ＸＳＬＴは、ＸＭＬ文書の構造を別の形式に変形するための変換ルールを記述するための簡易言語である。このＸＳＬＴを用いて、仕様ＸＭＬコードＳＰＥＸを文法的に解析し、ＡＳＰ（Active Server Pages ）のコードが生成される。このコードは、通常のクライアント端末１０内で実行することができる。
【００３３】
また、このシミュレータ用テンプレートデータ記憶部１３１を用いてＳＱＬ文を生成する。そして、このＳＱＬ文は、仕様ＸＭＬコードＳＰＥＸのデータ層において定義されるテーブルを生成する。ＳＱＬ文の構文は、データベースのタイプ（ＳＱＬ等）によって決
まる。
【００３４】
このようにして生成されたＡＳＰコードは、シミュレータエンジン１３２により用いられる。このシミュレータエンジン１３２は、スクリプトオブジェクト、ブラウザコントロール、ビューアとして機能する。
【００３５】
（４−２）スクリプトオブジェクト（Script Object ）
このスクリプトオブジェクトは、ＡＳＰコードを翻訳するために使われる。スクリプトオブジェクトのためのランタイム環境がクライアント端末１０内で生成され、この環境の中でＡＳＰコードが実行される。従って、このスクリプトオブジェクトを利用するため、クライアント端末１０には、ＡＳＰを実行するためのインターネットサーバソフトウェアをインストールする必要がない。
【００３６】
（４−３）ブラウザコントロール（Browser Control ）
上述した仕様ＸＭＬコードＳＰＥＸから生成されるＨＴＭＬコードは、ブラウザソフトウエアに含まれるブラウザコントロールコンポーネントを使うことによってユーザ端末に表示される。
【００３７】
（４−４）ビューア（Viewer）
ビューアは、ブラウザコントロールを用いてシミュレーションされたウェブページを表示する。更に、利用者がセッションデータを見たり、データベース検索を直接実行したりすること等、実行されたＳＱＬ文や定義されたテーブル等の内容を閲覧可能にするコンポーネントを備える。
【００３８】
（５）ジェネレータ（Generator ）
このジェネレータ１４は、シミュレータ１３によって使われるものと同じ仕様ＸＭＬコードＳＰＥＸを「Ｍｉｃｒｏｓｏｆｔ．ＮＥＴ（登録商標）」と、「Ｊａｖａ（登録商標）」等のプラットフォームに応じてソースコードを生成する。このようなソースコードを生成するために、ジェネレータ１４は以下のコンポーネントを備える。
【００３９】
（５−１）ＸＭＬ展開ファイル（Deployment  ＸＭＬ）
このＸＭＬ展開ファイル１４１は、ユーザがコンポーザ１２のＧＵＩを使うことによって定義するＸＭＬファイルである。このＸＭＬ展開ファイル１４１には、利用者によって選択されたプラットフォーム、データベース、パッケージング情報やアプリケーションに関する情報から構成される。このＸＭＬ展開ファイル１４１は、特定のプラットフォームにおいて、コードを生み出すためのジェネレータによって使われる。
【００４０】
（５−２）ジェネレータエンジン（Generator Engine）
このジェネレータエンジン１４２は、仕様ＸＭＬコードＳＰＥＸ及びＸＭＬ展開ファイル１４１に基づいてソースコードを生成する。このジェネレータエンジン１４２は、管理サーバ２０への接続を実行する。そして、後述するコード生成用テンプレートデータ記憶部２１から、ソースコードを生成するために必要なコード生成テンプレートを取得する。
【００４１】
（５−３）コード生成テンプレート（Generation Templates）
コード生成テンプレートはＸＳＬＴにより構成される。シミュレータ用テンプレートデータ記憶部１３１に格納されたテンプレートの概念における類似したものである。相違点は、このコード生成テンプレートはテンプレートが環境に依存しており、それらが技術的に特定の最適化情報を含むことである。
【００４２】
（５−４）ソースコード（Source Code ）
ここで生成されるソースコードは、利用者が指定した環境（ここでは「Ｊａｖａ（登録商標）」又は「Ｍｉｃｒｏｓｏｆｔ．Ｎｅｔ（登録商標）」）に対応したコードである。このコードは、クライアント端末１０で、適切なコンパイラにおいて編集され、展開される。
【００４３】
（５−５）ファンクションポイント（Function Point）
このファンクションポイントは、ジェネレータエンジン１４２によって課金のために計算される。この計算方法については後述する。
【００４４】
また、クライアント端末１０は、図１に示すように、ネットワークとしてのインターネットを介して管理サーバ２０に接続される。管理サーバ２０は、利用者の利用状況に応じて課金管理を行なうコンピュータサーバシステムである。
【００４５】
この管理サーバ２０は、クライアント端末１０との間でのデータ送受信処理や、顧客が生成したソースコードに対する課金処理、プロジェクト管理を実行するための各種データの管理処理等を行なう。この管理サーバ２０は、図示しないＣＰＵ、ＲＡＭ、ＲＯＭ等を有し、後述する処理を行なう。この管理サーバ２０は、コード生成用テンプレートデータ記憶部２１、利用者認証データ記憶部２２、プロジェクトデータ記憶部２３、料金表データ記憶部２４、課金データ記憶部２５を備える。
【００４６】
このコード生成用テンプレートデータ記憶部２１には、生成した仕様ＸＭＬコードＳＰＥＸをソースコードに変換するためのテンプレートが格納されている。このテンプレートが第２のテンプレートとして機能する。具体的には、コード生成用テンプレートデータ記憶部２１には、環境に応じてＸＭＬタグをソースコードに変換するために、環境情報とＸＭＬタグとが対応付けられている。なお、本実施形態では、コード生成用テンプレートは暗号化されており、クライアント端末１０に格納されたシステム開発支援プログラムにより復号化される。
【００４７】
利用者認証データ記憶部２２には、利用者を認証するためのデータが格納されている。このデータには、ユーザＩＤ、パスワード及び顧客コードが登録されている。この利用者認証データ記憶部２２には、本システム開発支援プログラムを利用することができる利用者が登録されている。
【００４８】
プロジェクトデータ記憶部２３には、利用者が生成したソースコードの開発履歴に関するデータが格納されている。このプロジェクトデータ記憶部２３には、顧客コードやユーザＩＤ毎に開発履歴や、クライアント端末１０に格納されたシステム開発支援プログラムの装置ＩＤが記録される。
【００４９】
料金表データ記憶部２４には、ソースコードを生成した利用者に課金を行なうための料金表が格納されている。本実施形態では、後述するように、生成したソースコードの複雑度に応じて課金される。料金表データ記憶部２４には、このための換算表データが記録される。
【００５０】
課金データ記憶部２５には、各利用者に対する課金金額に関するデータが格納される。ここでは、顧客コード毎に課金金額が記録される。このデータは、新たにソースコードを生成する度に更新記録され、定期的に顧客に請求される。
【００５１】
次に、本発明のシステムを用いてアプリケーションプログラムのソースコードを生成するまでのプロセスを、図２を用いて説明する。
まず、利用者が要求する仕様のモデリングを行なう。この場合、利用者は、クライアン
ト端末１０のシステム開発支援プログラムを起動する。
【００５２】
そして、クライアント端末１０は、利用者からの指示に応じて、プレゼンテーション層、ビジネスロジック層、データストレージ層を生成する（ステップＳ１−１）。このモデルは、キーワードスキーマ１１とコンポーザ１２により仕様ＸＭＬコードＳＰＥＸとして生成される。
【００５３】
次に、利用者はシミュレーションの要否を選択する。利用者の選択により、クライアント端末１０には、「シミュレーション要」又は「シミュレーション不要」の指示が入力される（ステップＳ１−２）。シミュレーションの要求があった場合（ステップＳ１−２において「ＹＥＳ」の場合）、クライアント端末１０のシミュレータ１３は、コンポーザ１２により生成された仕様ＸＭＬコードＳＰＥＸを用いてシミュレーションを実行する。
【００５４】
まず、シミュレータ１３は、シミュレータ用テンプレートデータ記憶部１３１に格納されたテンプレートを用いて、仕様ＸＭＬコードＳＰＥＸを文法的に解析し、ＡＳＰコードを生成する（ステップＳ１−３）。この場合、シミュレータ１３は、クライアント端末１０内にクライアント側ロジックとサーバ側ロジックとを生成する。
【００５５】
次に、シミュレータ１３は、生成されたＡＳＰコードを用いてシミュレーションを実行する（ステップＳ１−４）。この場合、シミュレータ１３は、クライアント端末１０内のスクリプトオブジェクトとブラウザコントロールとを用いながら、クライアント側ロジックとサーバ側ロジックとを協働させる。利用者は、ビューアにより、ブラウザコントロールを用いてシミュレーションされたウェブページを確認する。更に、利用者は、セッションデータを見たり、データベース検索を直接実行したりすること等、実行されたＳＱＬ文や定義されたテーブルの内容を確認する。このように、シミュレーションにより、生成するアプリケーションプログラムの機能を確認する。
【００５６】
そして、クライアント端末１０は、利用者に対してシミュレーションの完了選択を促す（ステップＳ１−５）。利用者がシミュレーションにより機能に満足できない場合（ステップＳ１−５において「ＮＯ」の場合）には、プレゼンテーション層、ビジネスロジック層やデータストレージ層の構成を変更し、再生成する（ステップＳ１−１）。
【００５７】
一方、利用者が機能に満足できる場合（ステップＳ１−５において「ＹＥＳ」の場合）には、クライアント端末１０にはソースコードの生成の指示が入力される。この場合、クライアント端末１０のジェネレータ１４は、利用者に対してアプリケーションプログラムの環境情報の入力を促す（ステップＳ１−６）。この環境情報は、ソースコードを生成するプログラミング言語やデータベースを操作するための言語等である。更に、ジェネレータエンジン１４２は、利用者に対して、ユーザＩＤ及びパスワードの入力を要求する。
【００５８】
そして、ジェネレータエンジン１４２は、ログインデータを管理サーバ２０に送信する（ステップＳ１−７）。このログインデータには、入力されたユーザＩＤ、パスワード及び顧客コード、開発支援ソフトウェアに蓄えられる装置ＩＤや環境情報を含む。
【００５９】
ログインデータを受信した管理サーバ２０は、利用者認証を実行する（ステップＳ１−８）。具体的には、管理サーバ２０は、ログインデータに含まれるユーザＩＤ及びパスワードが、利用者認証データ記憶部に登録されているかどうかを確認する。認証を完了した場合には、管理サーバ２０はログインを許容する。
【００６０】
そして、管理サーバ２０は、プロジェクトデータ記憶部２３に蓄積されたプロジェクト情報のアップデートを実行する（ステップＳ１−９）。この場合、まず、管理サーバ２０
は、仕様ＸＭＬコードＳＰＥＸに関する情報の正当性を確認する。そして、管理サーバ２０のプロジェクト情報をアップデートする。
【００６１】
次に、管理サーバ２０は、暗号化テンプレートをクライアント端末１０に送信する（ステップＳ１−１０）。ここでは、ログインデータに含まれる環境情報に基づいて、仕様ＸＭＬコードＳＰＥＸをソースコードに変換するためのテンプレートを、コード生成用テンプレートデータ記憶部２１から抽出する。このテンプレートは暗号化されている。そして、管理サーバ２０は、暗号化テンプレートをクライアント端末１０に送信する。
【００６２】
クライアント端末１０のジェネレータエンジン１４２は、受信した暗号化テンプレートの復号化処理を実行し、テンプレートを取得する（ステップＳ１−１１）。そして、このテンプレートを用いて、仕様ＸＭＬコードＳＰＥＸをソースコードに展開する（ステップＳ１−１２）。これにより、利用者が指定した環境でのソースコードが生成される。
【００６３】
そして、ソースコードの生成後に、クライアント端末１０のジェネレータエンジン１４２は、受信した暗号化テンプレートや復号化したテンプレートを削除する（ステップＳ１−１３）。
【００６４】
次に、ジェネレータエンジン１４２は、ファンクションポイント（ＦＰ）の計算処理を実行する（ステップＳ１−１４）。本実施形態では、生成されたソースコードのファンクションポイント（ＦＰ）は、利用者によって定義されたページ、クエリー及びテーブルの数と複雑度に基づいて計算する。
【００６５】
このプロセスを、図３を用いて説明する。
生成した仕様ＸＭＬコードＳＰＥＸは、ウェブアプリケーションのコンポーネントを定義するタグを含む。具体的には、例えば、ページ、機能オブジェクトやクエリー等である。
【００６６】
そこで、ジェネレータエンジン１４２は、仕様ＸＭＬコードＳＰＥＸに含まれる所定のタグを用いて構成分析を実行する（ステップＳ２−１）。
そして、ジェネレータエンジン１４２は、構成分析したタグの数により、仕様ＸＭＬコードＳＰＥＸの複雑度を決定する（ステップＳ２−２）。この複雑度は、ページ、クエリーやテーブルオブジェクト毎に、「ＬＯＷ」、「ＡＶＥＲＡＧＥ」または「ＨＩＧＨ」として決定される。その複雑度は、以下に説明するファンクションポイント分析（ＦＰＡ：Function Point Analysis ）により算出される。このファンクションポイント分析は、大きくは５つの要素が考慮される。
（Ａ）外部入力：  外部から内部への入力による基本的なプロセスはすべて外部入力とする。例えば、データ入力を行なう画面（ページ）が対象になる。
（Ｂ）外部出力：  内部から外部への出力による基本的なプロセスはすべて外部出力とする。例えば、計算結果出力が対象になる。
（Ｃ）外部検索：  内部ロジックファイルによるデータ検索結果を出力する基本的なプロセスはすべて外部検索とする。例えば、クエリーオブジェクトが対象になる。
（Ｄ）内部ロジックファイル：  完全にアプリケーション境界の中にあり、アプリケーションの中で管理される論理的に関係づけられたデータ群と同一視できるクループである。例えば、データテーブルがある。
（Ｅ）外部ロジックファイル：  これは参照目的のみのための論理的に関係づけられたデータの同一視できるグループである。この外部ロジックファイルは、アプリケーション境界の外にあり、他のアプリケーションによって管理される。
【００６７】
これらの構成要素が分類された後で、複雑度算出テーブルによって分類される。例えば
、外部入力、外部出力、外部検索は、アップデート又は参照されたファイル（ＦＴＲ）数やデータエレメント（ＤＥＴｓ）のタイプによって分類される。また、内部ロジックファイルや外部ロジックファイルは、レコードエレメントタイプ（ＲＥＴ）や、データエレメントタイプ（ＤＥＴｓ）によって分類される。ここで、レコードエレメントタイプは、データ要素の認識できるサブグループである。データエレメントタイプはユニークに認識できる非帰納的フィールドである。複雑度算出テーブルでは、これらの分類に応じて「ＬＯＷ」、「ＡＶＥＲＡＧＥ」または「ＨＩＧＨ」が決定される。
【００６８】
そして、ジェネレータエンジン１４２は、決定された複雑度に応じて、ファンクションポイントを計算する（ステップＳ２−３）。具体的には、外部入力、外部出力、外部検索、内部ロジックファイル、外部ロジックファイル毎の複雑度に応じたファンクションポイント決定テーブルを用いて、ファンクションポイントを算出する。そして、これらのファンクションポイントの合計値を算出することにより、全体のファンクションポイントを算出する。
【００６９】
このファンクションポイントの算出を、図４を用いて具体的に説明する。ここでは、外部入力のためのウェブページの仕様ＸＭＬコードＳＰＥＸとして生成したコード５００を例にして説明する。このコード５００は、「＜Ｐａｇｅ＞」、「＜ｉｎｐｕｔ＞」や「＜ｂｕｔｔｏｎ＞」のようなタグを用いて分析される。このページは、２つの＜Ｉｎｐｕｔ＞タグと＜Ｂｕｔｔｏｎ＞タグを備えている。そして、このページが１つのテーブルをアップデートするために使われる場合を想定する。この場合、２つのデータエレメント（ＤＥＴｓ）及び１つのアップデート又は参照されるファイル（ＦＴＲ）があることになる。その結果、複雑度算出テーブル５１０を用いると、複雑度は「ＬＯＷ」に該当する。
【００７０】
この場合、ファンクションポイント決定テーブル５２０を参照すると、このコード５００のファンクションポイント数は「２」と決定される。このようなロジックは、ページ、クエリーオブジェクト及び、テーブルオブジェクトのようなすべてのＸＭＬコンポーネントに適用される。
【００７１】
そして、ジェネレータエンジン１４２は、計算したファンクションポイント（ＦＰ）を管理サーバ２０に送信する。管理サーバ２０は受信したファンクションポイントに応じて、料金表データ記憶部を用いて課金金額を算出する。そして、管理サーバ２０は、ログインにより特定された顧客コードに関連付けて金額を課金データ記憶部２５に記録する。これにより、利用者は生成したソースコードに応じて課金される。
【００７２】
本実施形態によれば、以下のような効果を得ることができる。
・  本実施形態においては、システム開発支援プログラムが起動された場合、クライアント端末１０は、キーワードスキーマ１１、コンポーザ１２、シミュレータ１３、ジェネレータ１４として機能する。そして、キーワードスキーマ１１とコンポーザ１２とは、利用者がＧＵＩにより設定した仕様によるＸＭＬコードを生成する。これにより、利用者は、ＸＭＬを意識することなくコードを生成することができる。このＸＭＬコードは、属性情報や論理構造を独自に定義できるため、プラットフォームに対して中立であり、環境に依存せず多様なソースコードへの展開が可能である。
【００７３】
・  本実施形態においては、シミュレータ１３は、コンポーザ１２により生成された仕様ＸＭＬコードＳＰＥＸを用いて、設計されたアプリケーションの機能のシミュレーションを実行する。このため、利用者は、即座に視覚的に動的に動作確認を行なうことができる。この場合、仕様は、仕様ＸＭＬコードＳＰＥＸにより表されているため、ＸＳＬＴを用いてシミュレーションを行なうための言語（ここではＡＳＰコードやＨＴＭＬコード）に変換することができる。従って、サーバサイドアプリケーションを用いることなく、ク
ライアント端末１０内において、クライアント側の動作とサーバ側の動作をシミュレーションすることができる。
【００７４】
・  本実施形態においては、ジェネレータエンジン１４２は、管理サーバ２０からコード生成用テンプレートを取得し、仕様ＸＭＬコードＳＰＥＸ及びＸＭＬ展開ファイル１４１に基づいてソースコードを生成する。この場合も、利用者の設定した仕様はＸＭＬコードにより表現されているため、利用者の要求する環境に適したソースコードへの展開が容易である。
【００７５】
そして、クライアント端末１０内でソースコード完成まで実行されるので、仕様ＸＭＬコードＳＰＥＸを管理サーバ２０に送信する必要がない。このため、クライアント端末１０と管理サーバ２０との間での通信負荷を軽減することができる。更に、ネットワークにおいて、作成するプログラムの漏洩を抑制できる。
【００７６】
・  本実施形態においては、管理サーバ２０は、暗号化したテンプレートをクライアント端末１０に提供し（ステップＳ１−１０）、ソースコードの生成後にこのテンプレートを削除する（ステップＳ１−１３）。このため、テンプレートの流用を防止することができる。
【００７７】
・  本実施形態においては、ジェネレータエンジン１４２は、ファンクションポイント（ＦＰ）の計算処理を実行する（ステップＳ１−１４）。そして、ジェネレータエンジン１４２は、計算したファンクションポイント（ＦＰ）を管理サーバ２０に送信する。この場合、ＸＭＬコードのタグの数を用いて複雑度を算出する。ＸＭＬコードは、構造化文書であるため、そのタグ数により複雑度を容易に分類することができる。そして、ファンクションポイントを算出することができる。これにより、管理サーバ２０は利用状況に応じて従量課金することができる。
【００７８】
・  本実施形態においては、ジェネレータエンジン１４２がファンクションポイントを算出し、管理サーバ２０に送信する。すなわち、クライアント端末１０内でファンクションポイントが計算されるので、管理サーバ２０は仕様ＸＭＬコードＳＰＥＸの内容を知ることなく、確実に課金を行なうことができる。
【００７９】
なお、上記各実施形態は以下のように変更してもよい。
○  上記実施形態では、ソースコードをクライアント端末１０内で生成したが、管理サーバ２０や第三のサーバでソースコードの生成を実行してもよい。この場合、管理サーバ２０や第三のサーバにジェネレータエンジン１４２の機能やコード生成用テンプレートデータ記憶部２１を設ける。そして、クライアント端末１０は、仕様ＸＭＬコードＳＰＥＸを、管理サーバ２０や第三のサーバに送信する。管理サーバ２０や第三のサーバは、ジェネレータエンジン１４２の機能やコード生成用テンプレートデータ記憶部２１を用いて、ソースコードを生成し、クライアント端末１０に返送する。これにより、テンプレートをクライアント端末１０に送信する必要がなくなる。
【００８０】
○  上記実施形態では、ジェネレータ１４は、シミュレータ１３によって使われるものと同じ仕様ＸＭＬコードＳＰＥＸを、「．ＮＥＴ（登録商標）」や「Ｊａｖａ（登録商標）」等のプラットフォームにソースコードを生成する。最終的に変換されるソースコードはこれらのプラットフォームに限られるものではなく、ＸＭＬコードから、ＸＳＬＴファイルを用いて変換できるものであればよい。
【００８１】
○  上記実施形態では、プレゼンテーション層、ビジネスロジック層、データストレージ層の３層構造を採用したが、２層構造や更に多くの多層構造を用いてもよい。
【図面の簡単な説明】
【００８２】
【図１】本発明の機能ブロックの説明図。
【図２】本発明の実施形態の処理手順の説明図。
【図３】本発明の実施形態の処理手順の説明図。
【図４】本発明の実施形態の処理手順の説明図。
【符号の説明】
【００８３】
１０…クライアント端末、１１…スキーマとしてのキーワードスキーマ、１２…コンポーザ、１３…シミュレータ、１３１…第１のテンプレートを格納するジェネレータ用テンプレートデータ記憶部、１４…ジェネレータ、２０…管理サーバ、２１…第２のテンプレートを格納するコード生成用テンプレートデータ記憶部。
【図１】
2006209655.tif 000003
【図２】
2006209655.tif 000004
【図３】
2006209655.tif 000005
【図４】
2006209655.tif 000006