JP2006209655A - システム開発支援方法及びシステム開発支援プログラム - Google Patents

システム開発支援方法及びシステム開発支援プログラム Download PDF

Info

Publication number
JP2006209655A
JP2006209655A JP2005023828A JP2005023828A JP2006209655A JP 2006209655 A JP2006209655 A JP 2006209655A JP 2005023828 A JP2005023828 A JP 2005023828A JP 2005023828 A JP2005023828 A JP 2005023828A JP 2006209655 A JP2006209655 A JP 2006209655A
Authority
JP
Japan
Prior art keywords
template
code
management server
system development
user
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
JP2005023828A
Other languages
English (en)
Inventor
Banerjee Udayan
バナルジー ウダヤン
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.)
NIIT Technologies KK
Original Assignee
NIIT Technologies KK
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 NIIT Technologies KK filed Critical NIIT Technologies KK
Priority to JP2005023828A priority Critical patent/JP2006209655A/ja
Publication of JP2006209655A publication Critical patent/JP2006209655A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】 利用者が効率的にアプリケーションプログラムを生成し、それに応じた課金を行なうことができるシステム開発支援方法及びプログラムを提供する。
【解決手段】 クライアント端末10のキーワードスキーマ11とコンポーザ12により、3層からなる仕様XMLコードSPEXを生成する。シミュレータ13は、シミュレータ用テンプレートデータ記憶部131に格納されたテンプレートを用いてASPコードを生成し、シミュレーションを実行する。ジェネレータ14は、アプリケーションプログラムの環境情報の入力を受け、管理サーバ20からテンプレートを取得する。ジェネレータ14は、このテンプレートを用いてソースコードを生成する。更に、仕様XMLコードSPEXのタグ等を用いてファンクションポイントを算出し、管理サーバ20に送信する。管理サーバ20は、このファンクションポイントを用いて利用者に対して課金を行なう。
【選択図】 図1

Description

本発明は、利用者の設計モデルに基づいてソースコードを生成するシステム開発支援方法及びシステム開発支援プログラムに関する。
通常、プログラミングを行なう場合、機械語でプログラムを書く必要がある。しかし、このためには機械語の専門知識が必要である。思考支援ソフトウェアを利用して考えをまとめた上で、アセンブリ言語を用いてプログラムを書く場合もある。この場合には、アセンブラがバイナリコードを生成する。
また、複数の人の考えを集積し、それを思考・協調支援ソフトウェアを利用してまとめてモデリングを行なう場合もある。この場合も、プログラミング言語を用いてプログラムを書き、アルゴリズムライブラリを用いて、コンパイラによりバイナリコードを生成する。
思考・協調支援ソフトウェアにおいて、アーキテクチャやデザインパターンを用い、更にモデリングにはモデリングツールを利用する場合もある。
しかし、このような場合、利用者には、プログラミングを行なうための専門知識が要求される。
そこで、生成したモデルからプログラムを生成するジェネレータが考案されている(例えば、特許文献1参照)。このジェネレータが生成したプログラムから、コンパイラがバイナリコードを生成する。近年、統一モデリング言語(UML:Unified Modeling Language )を用いたオブジェクト指向技術に注目が集まっており、ソフトウェア開発などで用いられている。この統一モデリング言語は、設計モデルを記述し、その内容に基づいてプログラミングを行うために、ソフトウエアシステムを仕様化、可視化、文書化する言語である。統一モデリング言語においては、構造を表現するクラス図、オブジェクト図及びコンポーネント図、動作を表現するユース・ケース図、シーケンス図、コラボレーション図、ステートチャート図及びアクティビティ図が用いられる。この統一モデリング言語は、ビジネスモデリング、要求管理、分析/設計、プログラミング、テストなどの分野で利用されている。
さらに、オブジェクト指向プログラムを、コンピュータを利用して自動生成するソフトウェア開発の作業効率を大幅に向上させることを目的とした技術も開示されている(例えば、特許文献2参照)。この特許文献1に記載の自動生成装置は、設計ドキュメントからオブジェクト指向プログラムを、コンピュータを利用して自動生成する。この自動生成装置は、エディタなどの入力装置によって、対象システムの構造を表現する図を作成するクラス図等生成手段を備え、第1プログラム生成手段が、前記の構造を表現する図から静的部分のプログラムを生成する。そして、エディタなどの入力装置によって、前記対象システムの動的な振る舞いを表現する図を作成するステートチャート図等作成手段を備え、前記の動的な振る舞いを表現する図から、ステートマシンツリーを生成する。そして、第2プログラム生成手段が前記ステートマシンツリーから動的部分のプログラムを生成する。そして、第3プログラム生成手段が、第1プログラム生成手段で生成された静的部分のプログラムと第2プログラム生成手段で生成された動的部分のプログラムを結合して製品であるプログラムを自動生成する。
特開2001−318812号公報(第1頁) 特開2002−116911号公報(第1頁)
ソースコードは、プログラミング言語やOS(Operating System)等の利用環境によって異なる。しかしながら、上述の先行技術では、生成されるソースコードは限定されている。
また、ソースコードも作成してから時間が経過すると、利用環境の変化に応じた修正が必要となる場合もある。
また、コードを手入力する場合、手入力によって動作詳細をプログラミングすることは、人為的なミスが入りこみやすく、生産効率を阻害することもある。
本発明は、設計モデルを元にしたプログラミング作業を効率化するとともに、手作業による誤りを防止してソフトウェアの品質を向上させることを目的とする。更に、それに応じた課金を行なうことを目的とする。
上記問題点を解決するために、請求項1に記載の発明は、利用者が仕様を入力するためのオブジェクトと、それに対応したXMLコードとを関連付けて記録したスキーマと、XMLコードからクライアント端末内でクライアント側ロジックとサーバ側ロジックとを生成するための第1のテンプレートと、利用環境に対応させて、XMLコードからサーバで実行するためのソースコードを生成するための第2のテンプレートとを用いて、コンポーザとシミュレータとジェネレータとして機能するクライアント端末においてシステム開発を支援するシステム開発支援方法であって、前記コンポーザが、前記スキーマを用いて、入力されたオブジェクトからXMLコードを生成する段階と、前記シミュレータが、前記コンポーザが生成したXMLコードを、前記第1のテンプレートを用いて、クライアント端末内で実行させるクライアント側ロジックとサーバ側ロジックとを生成し、両者を協働させてシミュレーションを実行する段階と、前記ジェネレータが、利用者が設定した利用環境に応じた第2のテンプレートを取得し、この第2のテンプレートを用いて前記XMLコードからソースコードを生成する段階とを含むことを要旨とする。
請求項2に記載の発明は、請求項1に記載のシステム開発支援方法において、前記クライアント端末は、ネットワークを介して管理サーバに接続され、前記管理サーバが、利用環境に対応させて第2のテンプレートを保持し、前記ジェネレータは、ソースコードの生成時に、利用者が設定した利用環境に関するデータを送信し、前記管理サーバから、前記利用環境に応じた第2のテンプレートを取得する段階を更に実行することを要旨とする。
請求項3に記載の発明は、請求項2に記載のシステム開発支援方法において、前記ジェネレータは、ソースコードの生成後に、前記管理サーバから取得した第2のテンプレートを削除する段階を更に実行することを要旨とする。
請求項4に記載の発明は、請求項2又は3に記載のシステム開発支援方法において、前記ジェネレータは、前記コンポーザが生成したXMLコードに含まれる所定の識別子を計数し、前記管理サーバに送信する段階を更に実行することを要旨とする。
請求項5に記載の発明は、利用者が仕様を入力するためのオブジェクトと、それに対応したXMLコードとを関連付けて記録したスキーマと、XMLコードからクライアント端末内でクライアント側ロジックとサーバ側ロジックとを生成するための第1のテンプレートと、利用環境に対応させて、XMLコードからサーバで実行するためのソースコードを生成するための第2のテンプレートとを用いて、クライアント端末においてシステム開発
を支援するシステム開発支援プログラムであって、前記クライアント端末を、前記スキーマを用いて、入力されたオブジェクトからXMLコードを生成するコンポーザと、前記コンポーザが生成したXMLコードを、前記第1のテンプレートを用いて、クライアント端末内で実行させるクライアント側ロジックとサーバ側ロジックとを生成し、両者を協働させてシミュレーションを実行するシミュレータと、利用者が設定した利用環境に応じた第2のテンプレートを取得し、この第2のテンプレートを用いて前記XMLコードからソースコードを生成するジェネレータとして機能させることを要旨とする。
請求項6に記載の発明は、請求項5に記載のシステム開発支援プログラムにおいて、前記クライアント端末は、ネットワークを介して管理サーバに接続され、前記管理サーバが、利用環境に対応させて第2のテンプレートを保持し、前記ジェネレータは、ソースコードの生成時に、利用者が設定した利用環境に関するデータを送信し、前記管理サーバから、前記利用環境に応じた第2のテンプレートを取得することを要旨とする。
請求項7に記載の発明は、請求項6に記載のシステム開発支援プログラムにおいて、前記ジェネレータは、ソースコードの生成後に、前記管理サーバから取得した第2のテンプレートを削除することを要旨とする。
請求項8に記載の発明は、請求項6又は7に記載のシステム開発支援プログラムにおいて、前記ジェネレータは、前記コンポーザが生成したXMLコードに含まれる所定の識別子を計数し、前記管理サーバに送信することを要旨とする。
(作用)
請求項1又は5に記載の発明によれば、クライアント端末内でXMLコードが生成され、第1のテンプレートを用いて、クライアント側ロジックとサーバ側ロジックとが生成される。これにより、シミュレータが両者を協働させてシミュレーションを実行するため、利用者は機能を確認した上でソースコードを生成することができる。更に、第2のテンプレートを用いてXMLコードからソースコードを生成するため、中立なプラットフォームを用いて利用環境に応じたソースコードを生成することができる。
請求項2又は6に記載の発明によれば、ソースコードの生成時に、利用者が設定した利用環境に関するデータを送信し、管理サーバから前記利用環境に応じた第2のテンプレートを取得する。このため、利用者がソースコードを生成する場合にのみにテンプレートを提供することができる。
請求項3又は7に記載の発明によれば、ソースコードの生成後に、前記管理サーバから取得した第2のテンプレートを削除する。このため、第2のテンプレートの流用を抑制できる。
請求項4又は8に記載の発明によれば、コンポーザが生成したXMLコードに含まれる所定の識別子を計数し、前記管理サーバに送信する。これにより、管理サーバにおいて利用状況を把握することができる。従って、この利用状況に応じて課金を行なうことができる。
本発明によれば、利用者が効率的にアプリケーションプログラムを生成し、それに応じた課金を行なうことができるシステム開発支援方法及びシステム開発支援プログラムを提供することができる。
以下、本発明を具体化した実施形態を、図1〜図4に従って説明する。本実施形態では、システム開発支援プログラムを格納したコンピュータ端末において、各種アプリケーションプログラムを生成する。ここでは、まず、ビジネスロジック等、顧客の仕様に関するデータをクライアント端末10に入力することにより、XML(Extensible Markup Language)により表現されたコード(仕様XMLコードSPEX)を生成する。そして、この仕様XMLコードSPEXからソースコードを生成し、これに対して課金を行なう。
クライアント端末10には、図示しないCPU、RAM、ROMの他、キーボード、マウス等の入力手段、ディスプレイ等の出力手段、モデム等の通信手段等を備える。このクライアント端末10には、プログラムデータ記憶部を備え、ここにシステム開発支援プログラムを格納する。このシステム開発支援プログラムを起動させることにより、クライアント端末10は、後述する処理(XMLコード生成段階、シミュレーション実行段階、ソースコード生成段階、第2のテンプレートを取得する段階、第2のテンプレートを削除する段階、所定識別子数を送信する段階等を含む処理)を行なう。これにより、図1に示すように、クライアント端末10は、後述するようにキーワードスキーマ11、コンポーザ12、シミュレータ13、ジェネレータ14等として機能する。
以下、各機能ブロックやシステム開発支援プログラムにおいて用いられる各要素について説明する。
(1)キーワードスキーマ(Keyword Schema)
このキーワードスキーマ11は、コンポーザが生成するXMLの規則(論理構造や物理構造の定義)を決める。このキーワードスキーマ11は、システム開発支援プログラムの一部として組み込まれている。
(2)コンポーザ(Composer)
このコンポーザ12は、利用者がアプリケーションプログラムの中で用いる様々なパーツ(ページ、ビジネスロジック、クエリー及びテーブル等)を設計するためのGUI(Graphical User Interface)部品を備える。利用者による設計に基づいて、コンポーザ12は仕様XMLコードSPEXを生成する。
(3)仕様XMLコードSPEX(Specification in XML)
本システム開発支援プログラムにおいては、仕様XMLコードSPEXを用いて、生成するアプリケーションプログラムの全体の機能を定義する。すなわち、XMLフォーマットという利用環境に中立なプラットフォームにおいて蓄積される。具体的には、キーワードスキーマ11の中で定義されたルール上で仕様XMLコードSPEXが生成される。この仕様XMLコードSPEXは、プレゼンテーション層、ビジネスロジック層、データストレージ層の3つの部分に分割される。
(3−1)プレゼンテーション層
このプレゼンテーション層では、アプリケーションのユーザインターフェイス(UI)を提供する。プレゼンテーション層は、以下のオブジェクトから構成される。
・ユースケースオブジェクト:このオブジェクトはユーザのアクションに基づくナビゲーションをハンドルしており、このオブジェクトが次のページを表示するか、またはユーザセッションを終了するかを判断する。
・ウェブページ:このオブジェクトは多様な表示スタイルに基づいたユーザインターフェースを扱う。各ページには、他の層からの出力を表示し、利用者が入力を行なうフィールドが設けられる。
・アクションコントローラ:このオブジェクトは利用者のアクションに基づいて行われる多様なアクティビティを判断する。
・コントロールオブジェクト:セッションマネージャがユースケースオブジェクトを制御
する。
・サポーティングオブジェクト:エラー辞書を備える。
(3−2)ビジネスロジック層
ビジネスロジック層は、アプリケーションのロジックとビジネスルールを含んでおり、ビジネスロジックとアプリケーションのトランザクションの要求に対応する。これらのコンポーネントは利用者のアクションとデータベースの間に位置する。ビジネスロジック層は、以下のオブジェクトから構成される。
・ビジネスオブジェクト:データ保存前のロジックを扱い、ビジネスオブジェクトは、システムに実装されているビジネスユースケースの現実化を表現する実装システムを抽象化したものである。
・トランザクションオブジェクト:データ保存後のロジックを扱う。
・クエリーオブジェクト:アプリケーションクエリーの要求に対してビジネスオブジェクトとトランザクションオブジェクトの両方の役割を実行する。利用者がデータを取得し、更に複雑条件によるデータ操作をバックエンドで実行する。クエリーは複数のSQL文から構成される。
・制御オブジェクト:オブジェクトコレクション、トランザクションマネージャ、トランザクション制御オブジェクトから構成される。
・サポーティングオブジェクト:エラー辞書を備える。
(3−3)データストレージ層
この層では、SQL文の編成と実行を扱う。多くのビジネスアプリケーションは、企業のデータベースに格納されたデータにアクセスする必要があり、このデータベースはリレーショナルデータベースであることが一般的である。このデータ層のデータアクセスコンポーネントの役割は、このようなデータベースに格納されているデータをビジネスロジック層に公開することである。このため、データストレージ層は、テーブル及びテーブル関係定義を含み、データストレージ層は、データベースでのレコード追加、取得及びビジネスロジック層への転送、ビジネスロジック層により指定されたレコードの更新、レコード削除等の各タスクをデータベース上で行うデータアクセスロジックコンポーネントから構成される。
次のオブジェクトから構成される。
・テーブルオブジェクト:SQLステートメントの編成と実行
・コネクションマネージャ:データベースへのコネクションを管理
(4)シミュレータ(Simulator )
このシミュレータ13は、コンポーザ12により生成された仕様XMLコードSPEXを用いて、設計されたアプリケーションの機能をシミュレーションするために利用される。シミュレータ13は以下の要素から構成される。
(4−1)シミュレータ用テンプレート(Simulator Templates )
このシミュレータ用テンプレートデータ記憶部131には、第1のテンプレートとしてXSLT(XML Style sheet Language Transformations)ファイルのセットが記録される。ここで、XSLTは、XML文書の構造を別の形式に変形するための変換ルールを記述するための簡易言語である。このXSLTを用いて、仕様XMLコードSPEXを文法的に解析し、ASP(Active Server Pages )のコードが生成される。このコードは、通常のクライアント端末10内で実行することができる。
また、このシミュレータ用テンプレートデータ記憶部131を用いてSQL文を生成する。そして、このSQL文は、仕様XMLコードSPEXのデータ層において定義されるテーブルを生成する。SQL文の構文は、データベースのタイプ(SQL等)によって決
まる。
このようにして生成されたASPコードは、シミュレータエンジン132により用いられる。このシミュレータエンジン132は、スクリプトオブジェクト、ブラウザコントロール、ビューアとして機能する。
(4−2)スクリプトオブジェクト(Script Object )
このスクリプトオブジェクトは、ASPコードを翻訳するために使われる。スクリプトオブジェクトのためのランタイム環境がクライアント端末10内で生成され、この環境の中でASPコードが実行される。従って、このスクリプトオブジェクトを利用するため、クライアント端末10には、ASPを実行するためのインターネットサーバソフトウェアをインストールする必要がない。
(4−3)ブラウザコントロール(Browser Control )
上述した仕様XMLコードSPEXから生成されるHTMLコードは、ブラウザソフトウエアに含まれるブラウザコントロールコンポーネントを使うことによってユーザ端末に表示される。
(4−4)ビューア(Viewer)
ビューアは、ブラウザコントロールを用いてシミュレーションされたウェブページを表示する。更に、利用者がセッションデータを見たり、データベース検索を直接実行したりすること等、実行されたSQL文や定義されたテーブル等の内容を閲覧可能にするコンポーネントを備える。
(5)ジェネレータ(Generator )
このジェネレータ14は、シミュレータ13によって使われるものと同じ仕様XMLコードSPEXを「Microsoft.NET(登録商標)」と、「Java(登録商標)」等のプラットフォームに応じてソースコードを生成する。このようなソースコードを生成するために、ジェネレータ14は以下のコンポーネントを備える。
(5−1)XML展開ファイル(Deployment XML)
このXML展開ファイル141は、ユーザがコンポーザ12のGUIを使うことによって定義するXMLファイルである。このXML展開ファイル141には、利用者によって選択されたプラットフォーム、データベース、パッケージング情報やアプリケーションに関する情報から構成される。このXML展開ファイル141は、特定のプラットフォームにおいて、コードを生み出すためのジェネレータによって使われる。
(5−2)ジェネレータエンジン(Generator Engine)
このジェネレータエンジン142は、仕様XMLコードSPEX及びXML展開ファイル141に基づいてソースコードを生成する。このジェネレータエンジン142は、管理サーバ20への接続を実行する。そして、後述するコード生成用テンプレートデータ記憶部21から、ソースコードを生成するために必要なコード生成テンプレートを取得する。
(5−3)コード生成テンプレート(Generation Templates)
コード生成テンプレートはXSLTにより構成される。シミュレータ用テンプレートデータ記憶部131に格納されたテンプレートの概念における類似したものである。相違点は、このコード生成テンプレートはテンプレートが環境に依存しており、それらが技術的に特定の最適化情報を含むことである。
(5−4)ソースコード(Source Code )
ここで生成されるソースコードは、利用者が指定した環境(ここでは「Java(登録商標)」又は「Microsoft.Net(登録商標)」)に対応したコードである。このコードは、クライアント端末10で、適切なコンパイラにおいて編集され、展開される。
(5−5)ファンクションポイント(Function Point)
このファンクションポイントは、ジェネレータエンジン142によって課金のために計算される。この計算方法については後述する。
また、クライアント端末10は、図1に示すように、ネットワークとしてのインターネットを介して管理サーバ20に接続される。管理サーバ20は、利用者の利用状況に応じて課金管理を行なうコンピュータサーバシステムである。
この管理サーバ20は、クライアント端末10との間でのデータ送受信処理や、顧客が生成したソースコードに対する課金処理、プロジェクト管理を実行するための各種データの管理処理等を行なう。この管理サーバ20は、図示しないCPU、RAM、ROM等を有し、後述する処理を行なう。この管理サーバ20は、コード生成用テンプレートデータ記憶部21、利用者認証データ記憶部22、プロジェクトデータ記憶部23、料金表データ記憶部24、課金データ記憶部25を備える。
このコード生成用テンプレートデータ記憶部21には、生成した仕様XMLコードSPEXをソースコードに変換するためのテンプレートが格納されている。このテンプレートが第2のテンプレートとして機能する。具体的には、コード生成用テンプレートデータ記憶部21には、環境に応じてXMLタグをソースコードに変換するために、環境情報とXMLタグとが対応付けられている。なお、本実施形態では、コード生成用テンプレートは暗号化されており、クライアント端末10に格納されたシステム開発支援プログラムにより復号化される。
利用者認証データ記憶部22には、利用者を認証するためのデータが格納されている。このデータには、ユーザID、パスワード及び顧客コードが登録されている。この利用者認証データ記憶部22には、本システム開発支援プログラムを利用することができる利用者が登録されている。
プロジェクトデータ記憶部23には、利用者が生成したソースコードの開発履歴に関するデータが格納されている。このプロジェクトデータ記憶部23には、顧客コードやユーザID毎に開発履歴や、クライアント端末10に格納されたシステム開発支援プログラムの装置IDが記録される。
料金表データ記憶部24には、ソースコードを生成した利用者に課金を行なうための料金表が格納されている。本実施形態では、後述するように、生成したソースコードの複雑度に応じて課金される。料金表データ記憶部24には、このための換算表データが記録される。
課金データ記憶部25には、各利用者に対する課金金額に関するデータが格納される。ここでは、顧客コード毎に課金金額が記録される。このデータは、新たにソースコードを生成する度に更新記録され、定期的に顧客に請求される。
次に、本発明のシステムを用いてアプリケーションプログラムのソースコードを生成するまでのプロセスを、図2を用いて説明する。
まず、利用者が要求する仕様のモデリングを行なう。この場合、利用者は、クライアン
ト端末10のシステム開発支援プログラムを起動する。
そして、クライアント端末10は、利用者からの指示に応じて、プレゼンテーション層、ビジネスロジック層、データストレージ層を生成する(ステップS1−1)。このモデルは、キーワードスキーマ11とコンポーザ12により仕様XMLコードSPEXとして生成される。
次に、利用者はシミュレーションの要否を選択する。利用者の選択により、クライアント端末10には、「シミュレーション要」又は「シミュレーション不要」の指示が入力される(ステップS1−2)。シミュレーションの要求があった場合(ステップS1−2において「YES」の場合)、クライアント端末10のシミュレータ13は、コンポーザ12により生成された仕様XMLコードSPEXを用いてシミュレーションを実行する。
まず、シミュレータ13は、シミュレータ用テンプレートデータ記憶部131に格納されたテンプレートを用いて、仕様XMLコードSPEXを文法的に解析し、ASPコードを生成する(ステップS1−3)。この場合、シミュレータ13は、クライアント端末10内にクライアント側ロジックとサーバ側ロジックとを生成する。
次に、シミュレータ13は、生成されたASPコードを用いてシミュレーションを実行する(ステップS1−4)。この場合、シミュレータ13は、クライアント端末10内のスクリプトオブジェクトとブラウザコントロールとを用いながら、クライアント側ロジックとサーバ側ロジックとを協働させる。利用者は、ビューアにより、ブラウザコントロールを用いてシミュレーションされたウェブページを確認する。更に、利用者は、セッションデータを見たり、データベース検索を直接実行したりすること等、実行されたSQL文や定義されたテーブルの内容を確認する。このように、シミュレーションにより、生成するアプリケーションプログラムの機能を確認する。
そして、クライアント端末10は、利用者に対してシミュレーションの完了選択を促す(ステップS1−5)。利用者がシミュレーションにより機能に満足できない場合(ステップS1−5において「NO」の場合)には、プレゼンテーション層、ビジネスロジック層やデータストレージ層の構成を変更し、再生成する(ステップS1−1)。
一方、利用者が機能に満足できる場合(ステップS1−5において「YES」の場合)には、クライアント端末10にはソースコードの生成の指示が入力される。この場合、クライアント端末10のジェネレータ14は、利用者に対してアプリケーションプログラムの環境情報の入力を促す(ステップS1−6)。この環境情報は、ソースコードを生成するプログラミング言語やデータベースを操作するための言語等である。更に、ジェネレータエンジン142は、利用者に対して、ユーザID及びパスワードの入力を要求する。
そして、ジェネレータエンジン142は、ログインデータを管理サーバ20に送信する(ステップS1−7)。このログインデータには、入力されたユーザID、パスワード及び顧客コード、開発支援ソフトウェアに蓄えられる装置IDや環境情報を含む。
ログインデータを受信した管理サーバ20は、利用者認証を実行する(ステップS1−8)。具体的には、管理サーバ20は、ログインデータに含まれるユーザID及びパスワードが、利用者認証データ記憶部に登録されているかどうかを確認する。認証を完了した場合には、管理サーバ20はログインを許容する。
そして、管理サーバ20は、プロジェクトデータ記憶部23に蓄積されたプロジェクト情報のアップデートを実行する(ステップS1−9)。この場合、まず、管理サーバ20
は、仕様XMLコードSPEXに関する情報の正当性を確認する。そして、管理サーバ20のプロジェクト情報をアップデートする。
次に、管理サーバ20は、暗号化テンプレートをクライアント端末10に送信する(ステップS1−10)。ここでは、ログインデータに含まれる環境情報に基づいて、仕様XMLコードSPEXをソースコードに変換するためのテンプレートを、コード生成用テンプレートデータ記憶部21から抽出する。このテンプレートは暗号化されている。そして、管理サーバ20は、暗号化テンプレートをクライアント端末10に送信する。
クライアント端末10のジェネレータエンジン142は、受信した暗号化テンプレートの復号化処理を実行し、テンプレートを取得する(ステップS1−11)。そして、このテンプレートを用いて、仕様XMLコードSPEXをソースコードに展開する(ステップS1−12)。これにより、利用者が指定した環境でのソースコードが生成される。
そして、ソースコードの生成後に、クライアント端末10のジェネレータエンジン142は、受信した暗号化テンプレートや復号化したテンプレートを削除する(ステップS1−13)。
次に、ジェネレータエンジン142は、ファンクションポイント(FP)の計算処理を実行する(ステップS1−14)。本実施形態では、生成されたソースコードのファンクションポイント(FP)は、利用者によって定義されたページ、クエリー及びテーブルの数と複雑度に基づいて計算する。
このプロセスを、図3を用いて説明する。
生成した仕様XMLコードSPEXは、ウェブアプリケーションのコンポーネントを定義するタグを含む。具体的には、例えば、ページ、機能オブジェクトやクエリー等である。
そこで、ジェネレータエンジン142は、仕様XMLコードSPEXに含まれる所定のタグを用いて構成分析を実行する(ステップS2−1)。
そして、ジェネレータエンジン142は、構成分析したタグの数により、仕様XMLコードSPEXの複雑度を決定する(ステップS2−2)。この複雑度は、ページ、クエリーやテーブルオブジェクト毎に、「LOW」、「AVERAGE」または「HIGH」として決定される。その複雑度は、以下に説明するファンクションポイント分析(FPA:Function Point Analysis )により算出される。このファンクションポイント分析は、大きくは5つの要素が考慮される。
(A)外部入力: 外部から内部への入力による基本的なプロセスはすべて外部入力とする。例えば、データ入力を行なう画面(ページ)が対象になる。
(B)外部出力: 内部から外部への出力による基本的なプロセスはすべて外部出力とする。例えば、計算結果出力が対象になる。
(C)外部検索: 内部ロジックファイルによるデータ検索結果を出力する基本的なプロセスはすべて外部検索とする。例えば、クエリーオブジェクトが対象になる。
(D)内部ロジックファイル: 完全にアプリケーション境界の中にあり、アプリケーションの中で管理される論理的に関係づけられたデータ群と同一視できるクループである。例えば、データテーブルがある。
(E)外部ロジックファイル: これは参照目的のみのための論理的に関係づけられたデータの同一視できるグループである。この外部ロジックファイルは、アプリケーション境界の外にあり、他のアプリケーションによって管理される。
これらの構成要素が分類された後で、複雑度算出テーブルによって分類される。例えば
、外部入力、外部出力、外部検索は、アップデート又は参照されたファイル(FTR)数やデータエレメント(DETs)のタイプによって分類される。また、内部ロジックファイルや外部ロジックファイルは、レコードエレメントタイプ(RET)や、データエレメントタイプ(DETs)によって分類される。ここで、レコードエレメントタイプは、データ要素の認識できるサブグループである。データエレメントタイプはユニークに認識できる非帰納的フィールドである。複雑度算出テーブルでは、これらの分類に応じて「LOW」、「AVERAGE」または「HIGH」が決定される。
そして、ジェネレータエンジン142は、決定された複雑度に応じて、ファンクションポイントを計算する(ステップS2−3)。具体的には、外部入力、外部出力、外部検索、内部ロジックファイル、外部ロジックファイル毎の複雑度に応じたファンクションポイント決定テーブルを用いて、ファンクションポイントを算出する。そして、これらのファンクションポイントの合計値を算出することにより、全体のファンクションポイントを算出する。
このファンクションポイントの算出を、図4を用いて具体的に説明する。ここでは、外部入力のためのウェブページの仕様XMLコードSPEXとして生成したコード500を例にして説明する。このコード500は、「<Page>」、「<input>」や「<button>」のようなタグを用いて分析される。このページは、2つの<Input>タグと<Button>タグを備えている。そして、このページが1つのテーブルをアップデートするために使われる場合を想定する。この場合、2つのデータエレメント(DETs)及び1つのアップデート又は参照されるファイル(FTR)があることになる。その結果、複雑度算出テーブル510を用いると、複雑度は「LOW」に該当する。
この場合、ファンクションポイント決定テーブル520を参照すると、このコード500のファンクションポイント数は「2」と決定される。このようなロジックは、ページ、クエリーオブジェクト及び、テーブルオブジェクトのようなすべてのXMLコンポーネントに適用される。
そして、ジェネレータエンジン142は、計算したファンクションポイント(FP)を管理サーバ20に送信する。管理サーバ20は受信したファンクションポイントに応じて、料金表データ記憶部を用いて課金金額を算出する。そして、管理サーバ20は、ログインにより特定された顧客コードに関連付けて金額を課金データ記憶部25に記録する。これにより、利用者は生成したソースコードに応じて課金される。
本実施形態によれば、以下のような効果を得ることができる。
・ 本実施形態においては、システム開発支援プログラムが起動された場合、クライアント端末10は、キーワードスキーマ11、コンポーザ12、シミュレータ13、ジェネレータ14として機能する。そして、キーワードスキーマ11とコンポーザ12とは、利用者がGUIにより設定した仕様によるXMLコードを生成する。これにより、利用者は、XMLを意識することなくコードを生成することができる。このXMLコードは、属性情報や論理構造を独自に定義できるため、プラットフォームに対して中立であり、環境に依存せず多様なソースコードへの展開が可能である。
・ 本実施形態においては、シミュレータ13は、コンポーザ12により生成された仕様XMLコードSPEXを用いて、設計されたアプリケーションの機能のシミュレーションを実行する。このため、利用者は、即座に視覚的に動的に動作確認を行なうことができる。この場合、仕様は、仕様XMLコードSPEXにより表されているため、XSLTを用いてシミュレーションを行なうための言語(ここではASPコードやHTMLコード)に変換することができる。従って、サーバサイドアプリケーションを用いることなく、ク
ライアント端末10内において、クライアント側の動作とサーバ側の動作をシミュレーションすることができる。
・ 本実施形態においては、ジェネレータエンジン142は、管理サーバ20からコード生成用テンプレートを取得し、仕様XMLコードSPEX及びXML展開ファイル141に基づいてソースコードを生成する。この場合も、利用者の設定した仕様はXMLコードにより表現されているため、利用者の要求する環境に適したソースコードへの展開が容易である。
そして、クライアント端末10内でソースコード完成まで実行されるので、仕様XMLコードSPEXを管理サーバ20に送信する必要がない。このため、クライアント端末10と管理サーバ20との間での通信負荷を軽減することができる。更に、ネットワークにおいて、作成するプログラムの漏洩を抑制できる。
・ 本実施形態においては、管理サーバ20は、暗号化したテンプレートをクライアント端末10に提供し(ステップS1−10)、ソースコードの生成後にこのテンプレートを削除する(ステップS1−13)。このため、テンプレートの流用を防止することができる。
・ 本実施形態においては、ジェネレータエンジン142は、ファンクションポイント(FP)の計算処理を実行する(ステップS1−14)。そして、ジェネレータエンジン142は、計算したファンクションポイント(FP)を管理サーバ20に送信する。この場合、XMLコードのタグの数を用いて複雑度を算出する。XMLコードは、構造化文書であるため、そのタグ数により複雑度を容易に分類することができる。そして、ファンクションポイントを算出することができる。これにより、管理サーバ20は利用状況に応じて従量課金することができる。
・ 本実施形態においては、ジェネレータエンジン142がファンクションポイントを算出し、管理サーバ20に送信する。すなわち、クライアント端末10内でファンクションポイントが計算されるので、管理サーバ20は仕様XMLコードSPEXの内容を知ることなく、確実に課金を行なうことができる。
なお、上記各実施形態は以下のように変更してもよい。
○ 上記実施形態では、ソースコードをクライアント端末10内で生成したが、管理サーバ20や第三のサーバでソースコードの生成を実行してもよい。この場合、管理サーバ20や第三のサーバにジェネレータエンジン142の機能やコード生成用テンプレートデータ記憶部21を設ける。そして、クライアント端末10は、仕様XMLコードSPEXを、管理サーバ20や第三のサーバに送信する。管理サーバ20や第三のサーバは、ジェネレータエンジン142の機能やコード生成用テンプレートデータ記憶部21を用いて、ソースコードを生成し、クライアント端末10に返送する。これにより、テンプレートをクライアント端末10に送信する必要がなくなる。
○ 上記実施形態では、ジェネレータ14は、シミュレータ13によって使われるものと同じ仕様XMLコードSPEXを、「.NET(登録商標)」や「Java(登録商標)」等のプラットフォームにソースコードを生成する。最終的に変換されるソースコードはこれらのプラットフォームに限られるものではなく、XMLコードから、XSLTファイルを用いて変換できるものであればよい。
○ 上記実施形態では、プレゼンテーション層、ビジネスロジック層、データストレージ層の3層構造を採用したが、2層構造や更に多くの多層構造を用いてもよい。
本発明の機能ブロックの説明図。 本発明の実施形態の処理手順の説明図。 本発明の実施形態の処理手順の説明図。 本発明の実施形態の処理手順の説明図。
符号の説明
10…クライアント端末、11…スキーマとしてのキーワードスキーマ、12…コンポーザ、13…シミュレータ、131…第1のテンプレートを格納するジェネレータ用テンプレートデータ記憶部、14…ジェネレータ、20…管理サーバ、21…第2のテンプレートを格納するコード生成用テンプレートデータ記憶部。

Claims (8)

  1. 利用者が仕様を入力するためのオブジェクトと、それに対応したXMLコードとを関連付けて記録したスキーマと、
    XMLコードからクライアント端末内でクライアント側ロジックとサーバ側ロジックとを生成するための第1のテンプレートと、
    利用環境に対応させて、XMLコードからサーバで実行するためのソースコードを生成するための第2のテンプレートとを用いて、コンポーザとシミュレータとジェネレータとして機能するクライアント端末においてシステム開発を支援するシステム開発支援方法であって、
    前記コンポーザが、前記スキーマを用いて、入力されたオブジェクトからXMLコードを生成する段階と、
    前記シミュレータが、前記コンポーザが生成したXMLコードを、前記第1のテンプレートを用いて、クライアント端末内で実行させるクライアント側ロジックとサーバ側ロジックとを生成し、両者を協働させてシミュレーションを実行する段階と、
    前記ジェネレータが、利用者が設定した利用環境に応じた第2のテンプレートを取得し、この第2のテンプレートを用いて前記XMLコードからソースコードを生成する段階とを含むことを特徴とするシステム開発支援方法。
  2. 前記クライアント端末は、ネットワークを介して管理サーバに接続され、
    前記管理サーバが、利用環境に対応させて第2のテンプレートを保持し、
    前記ジェネレータは、ソースコードの生成時に、利用者が設定した利用環境に関するデータを送信し、前記管理サーバから、前記利用環境に応じた第2のテンプレートを取得する段階を更に実行することを特徴とする請求項1に記載のシステム開発支援方法。
  3. 前記ジェネレータは、ソースコードの生成後に、前記管理サーバから取得した第2のテンプレートを削除する段階を更に実行することを特徴とする請求項2に記載のシステム開発支援方法。
  4. 前記ジェネレータは、前記コンポーザが生成したXMLコードに含まれる所定の識別子を計数し、前記管理サーバに送信する段階を更に実行することを特徴とする請求項2又は3に記載のシステム開発支援方法。
  5. 利用者が仕様を入力するためのオブジェクトと、それに対応したXMLコードとを関連付けて記録したスキーマと、
    XMLコードからクライアント端末内でクライアント側ロジックとサーバ側ロジックとを生成するための第1のテンプレートと、
    利用環境に対応させて、XMLコードからサーバで実行するためのソースコードを生成するための第2のテンプレートとを用いて、クライアント端末においてシステム開発を支援するシステム開発支援プログラムであって、
    前記クライアント端末を、
    前記スキーマを用いて、入力されたオブジェクトからXMLコードを生成するコンポーザと、
    前記コンポーザが生成したXMLコードを、前記第1のテンプレートを用いて、クライアント端末内で実行させるクライアント側ロジックとサーバ側ロジックとを生成し、両者を協働させてシミュレーションを実行するシミュレータと、
    利用者が設定した利用環境に応じた第2のテンプレートを取得し、この第2のテンプレートを用いて前記XMLコードからソースコードを生成するジェネレータ
    として機能させることを特徴とするシステム開発支援プログラム。
  6. 前記クライアント端末は、ネットワークを介して管理サーバに接続され、
    前記管理サーバが、利用環境に対応させて第2のテンプレートを保持し、
    前記ジェネレータは、ソースコードの生成時に、利用者が設定した利用環境に関するデータを送信し、前記管理サーバから、前記利用環境に応じた第2のテンプレートを取得することを特徴とする請求項5に記載のシステム開発支援プログラム。
  7. 前記ジェネレータは、ソースコードの生成後に、前記管理サーバから取得した第2のテンプレートを削除することを特徴とする請求項6に記載のシステム開発支援プログラム。
  8. 前記ジェネレータは、前記コンポーザが生成したXMLコードに含まれる所定の識別子を計数し、前記管理サーバに送信することを特徴とする請求項6又は7に記載のシステム開発支援プログラム。
JP2005023828A 2005-01-31 2005-01-31 システム開発支援方法及びシステム開発支援プログラム Pending JP2006209655A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005023828A JP2006209655A (ja) 2005-01-31 2005-01-31 システム開発支援方法及びシステム開発支援プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005023828A JP2006209655A (ja) 2005-01-31 2005-01-31 システム開発支援方法及びシステム開発支援プログラム

Publications (1)

Publication Number Publication Date
JP2006209655A true JP2006209655A (ja) 2006-08-10

Family

ID=36966412

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005023828A Pending JP2006209655A (ja) 2005-01-31 2005-01-31 システム開発支援方法及びシステム開発支援プログラム

Country Status (1)

Country Link
JP (1) JP2006209655A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009086992A (ja) * 2007-09-28 2009-04-23 Ns Solutions Corp 情報処理装置、情報処理方法及びプログラム
JP2009211634A (ja) * 2008-03-06 2009-09-17 Nec Corp ソースコード課金システム、方法、プログラム及びソースコード有用性算出装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009086992A (ja) * 2007-09-28 2009-04-23 Ns Solutions Corp 情報処理装置、情報処理方法及びプログラム
JP2009211634A (ja) * 2008-03-06 2009-09-17 Nec Corp ソースコード課金システム、方法、プログラム及びソースコード有用性算出装置

Similar Documents

Publication Publication Date Title
Rivero et al. Mockup-driven development: providing agile support for model-driven web engineering
Frischmuth et al. Ontowiki–an authoring, publication and visualization interface for the data web
Brambilla et al. Model-driven design and development of semantic Web service applications
CN109189383A (zh) 代码文件的生成方法、装置、计算设备和存储介质
US20060015839A1 (en) Development of software systems
WO2009038981A2 (en) System and method to generate a software framework based on semantic modeling and business rules
US8413109B2 (en) Systems and methods for metamodel transformation
Hanus et al. An ER-based framework for declarative web programming
JP2011517823A (ja) 照会処理視覚化システム、照会処理を視覚化する方法及びコンピュータ・プログラム
US20090187552A1 (en) System and Methods for Generating Data Analysis Queries from Modeling Constructs
Qafmolla et al. Automation of web services development using model driven techniques
US20020073118A1 (en) Method, system, computer program product, and article of manufacture for construction of a computer application interface for consumption by a connector builder
CN102023859B (zh) 面向数字化研制环境的可靠性维修性保障性软件集成方法
JP5398213B2 (ja) 生成装置、プログラムおよび生成方法
US8126961B2 (en) Integration of client and server development environments
JP2006209655A (ja) システム開発支援方法及びシステム開発支援プログラム
Zhang et al. Mockup‐driven fast‐prototyping methodology for Web application development
Jilani et al. Model transformations in model driven architecture
JP3964259B2 (ja) プログラム生成装置、及びプログラム生成方法、並びにプログラム生成用プログラム
Bochicchio et al. WARP: Web application rapid prototyping
O’Brien et al. Challenges, approaches and architecture for distributed process integration in heterogeneous environments
JP2006018508A (ja) 文書編集方法、文書編集プログラム及び文書編集入力プログラム
Esbai et al. Transformation by modeling MOF 2.0 QVT: from UML to MVC2 web model
Li et al. A Web application framework for end-user-initiative development with a visual tool
Sunitha et al. Translation of behavioral models to source code

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080401

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080610

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081216