(57)【要約】【課題】サーバ端末システムで使用できる統合開発環境の開発システムを提供する。【解決手段】ネットワークのサーバと端末においてソフトウェアを開発する開発システムであって、サーバと、端末とを備える。サーバは、既定のソースファイルを作成することができるライブラリ・ソースデータベースと、ソースファイル作成手段とを備える。また、既定のソースファイルから実行ファイルを作成するコンパイル手段と、ソースファイルと前記実行ファイルを送受信するネットワーク接続手段とを備える。端末は、ネットワーク接続手段と、端末の前記ネットワーク接続手段により前記サーバより送信されたソースファイルを修正して送信することができる統合開発環境手段とを備える。【選択図】図２
2008276690.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークのサーバと端末においてソースプログラムと該ソースプログラムの実行ファイルであるソフトウェアを開発する開発システムであって、
前記サーバは、
汎用的なソースプログラムのファイルである汎用ソースファイルを記憶しているライブラリ・ソースデータベースと、
前記汎用ソースファイルを修正したソースファイルから実行ファイルを作成するコンパイル手段と、
前記ソースファイルと前記実行ファイルとを前記サーバと前記端末間で送受信するネットワーク接続手段と、
ライブラリ・ソースデータベースから汎用ソースファイルを組み合わせるソースファイル作成手段とを備え、
前記端末は、
前記サーバとネットワークを介して接続するネットワーク接続手段と、
前記端末の前記ネットワーク接続手段により前記サーバより送信された前記汎用ソースファイルを修正して送信することができる統合開発環境手段とを備える
ことを特徴とする開発システム。
【請求項２】
前記統合開発環境手段は、
前記汎用ソースファイルを修正することができるソースファイル修正手段と、
前記サーバから受信した前記実行ファイルを基に前記ソースファイルをデバッグするデバッグ手段とを含む
ことを特徴とする請求項１に記載の開発システム。
【請求項３】
前記ソースファイルは、
プログラムの共通部分の処理をする共通ファイル手段と、
ウィンドウを作成するための処理をするウィンドウ生成手段と、
前記ウィンドウ内のコンポーネントの処理をするソースコードを含むリスナー・クラス手段とを含む
ことを特徴とする請求項１又は２に記載の開発システム。
【請求項４】
前記リスナー・クラス手段の前記ソースコードのみを、前記端末で修正することができることを特徴とする請求項３に記載の開発システム。
【請求項５】
前記サーバは、前記ソースファイルと前記実行ファイルの更新に関する情報を管理するバージョン管理手段を更に備えることを特徴とする請求項１乃至４のいずれか１項に記載の開発システム。
【請求項６】
前記サーバは、前記サーバにアクセスしている前記端末間で情報を送受信するユーザ間処理手段を更に備えることを特徴とする請求項１乃至５のいずれか１項に記載の開発システム。
【請求項７】
前記端末は、シンクライアント用ＯＳにより前記サーバにアクセスするシンクライアント用ＯＳ手段を更に備えることを特徴とする請求項１乃至６のいずれか１項に記載の開発システム。
【請求項８】
前記サーバは、前記実行ファイルを呼び出すことができるデスクトップ画面手段をさらに備え、
前記端末は、前記デスクトップ画面手段を受信して実行コマンドを送信することができることを特徴とする請求項１乃至７のいずれか１項に記載の開発システム。
【請求項９】
ネットワークのサーバと端末においてソースプログラムと該ソースプログラムの実行ファイルであるソフトウェアを開発する開発システムのサーバであって、
汎用的なソースプログラムのファイルである汎用ソースファイルを記憶しているライブラリ・ソースデータベースと、
前記汎用ソースファイルを修正したソースファイルから実行ファイルを作成するコンパイル手段と、
前記ソースファイルと前記実行ファイルとを前記サーバと前記端末間で送受信するネットワーク接続手段と、
ライブラリ・ソースデータベースから汎用ソースファイルを組み合わせるソースファイル作成手段とを備える
ことを特徴とする開発システムのサーバ。
【請求項１０】
ネットワークのサーバと端末においてソフトウェアを開発する開発方法であって、  
前記サーバは、汎用ソースファイルを作成し、
前記サーバは、前記汎用ソースファイルを前記端末に送信し、
前記端末は、受信した前記汎用ソースファイルを統合開発環境で修正して、修正されたソースファイルを作成し、
前記端末は、前記修正されたソースファイルを前記サーバに送信し、
前記サーバは、前記修正されたソースファイルから実行ファイルを作成し、
前記サーバは、前記端末から前記実行ファイルを呼び出すことができるデスクトップ画面を作成し、
前記サーバは、前記端末の呼び出しに応答して前記デスクトップ画面を前記端末に送信する
ことを特徴とする開発方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続されたコンピュータ上で動作するソフトウェアの開発システム、特に開発システム、開発システムのサーバ、開発方法に関する。
【背景技術】
【０００２】
近年、企業のＩＴ（インフォメーション・テクノロジー）導入の進展によって、さまざまな企業においてコンピュータと、このコンピュータ上で実行されるソフトウェアが使用されている。たとえば、企業の業務・会計等に、ソフトウェアが使用されている。
企業で使用されるソフトウェアとして、一般的な業務・会計の仕様に合わせた市販のものが用いられることがある。
一方、企業ごとに必要とする機能や仕様が異なるため、企業のニーズに合わせてカスタマイズ（ソフトウェアの設定や設計を調整してソフトウェア開発をすること）されたソフトウェアが用いられることもある。
このカスタマイズされたソフトウェアである専用ソフトウェアの需要は非常に高いため、ソフトウェアの開発を専門に行う開発会社が多数存在している。
【０００３】
実際には、専用ソフトウェア開発において、ソフトウェア開発を行う開発会社の工程は、
１．受注先の企業から依頼を受ける
２．企業にソフトウェアの仕様を提示する
３．企業から修正の指示を貰う
４．実際にソフトウェア開発を行い、企業に使用してもらう
３．企業から修正の指示を貰う
５．ソフトウェアを修正する
６．完成
という流れで行われることが多い。
【０００４】
このようなソフトウェア開発においては、たとえばマイクロソフト社製の開発ツールであるＶｉｓｕａｌ  Ｓｔｕｄｉｏ（登録商標）上で使用するＶｉｓｕａｌ  Ｂａｓｉｃ（登録商標）言語が、よく用いられている。
Ｖｉｓｕａｌ  Ｓｔｕｄｉｏ（登録商標）は高機能なソフトであり、高度で大規模なソフトウェアを開発する場合のバージョン管理を行う機能を呼び出したり、携帯電話等のいわゆる「組み込み」向けのソフトウェアを開発することが可能である。
しかし、このＶｉｓｕａｌ  Ｓｔｕｄｉｏは、高機能すぎるため、ソフトウェア開発技術者の高いスキルを要求し、多人数で開発する際の開発環境の構築に労力を費やす必要があるという問題点がある。
【０００５】
そこで、企業が求めるニーズに合わせたプログラムの「ひな形」を、あらかじめ多数用意しておいて、それを基にしてソフトウェアを開発する開発ツールが存在する。
たとえば、特許文献１を参照すると、アプリケーションに特化した開発システムも存在する（以下、これを従来技術１とする。）。
従来技術１の開発システムにおいては、イントラネット又はインターネット上に接続されたクライアントと、ひな形を蓄えているサーバが接続されている。専用ソフトウェアを開発する開発者は、クライアントを操作して、サーバ上のひな形を使用して専用ソフトウェアを手軽に開発することができる。また、ネットワーク上のサーバに接続された機能をクライアントが呼び出すだけで開発が可能なので、常に同じ環境でソフトウェア開発ができるという利点がある。
これによりソフトウェアの最終的な開発までの費用を削減でき、コストを下げることが可能になる。
【特許文献１】特開２００２−２２９７８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術１の開発システムにおいては、クライアント上から操作するためのユーザインターフェイスが、単純な「ウィザード形式」（対話的に質問に答えていくユーザインターフェイスが単純こと）であるという問題点があった。
実際に、ソフトウェア開発の工程においては、企業からの受注や修正の指示のために、直接企業を訪問したり大量の電子メール等を使用して、開発したソフトウェアや仕様書を提示するといった、人為的コストが非常に多くかかっていた。
また、従来技術１の開発ツールはウィザード形式の固定化されたユーザインターフェイスであるため、作成したソフトに対して、企業から指示を受けてさらに修正するといった過程が必要であり、同様に人為的コストを削減するのが難しいという問題があった。
【０００７】
本発明は、このような状況に鑑みてなされたものであり、上述の課題を解消することを課題とする。
【課題を解決するための手段】
【０００８】
本発明の開発システムは、ネットワークのサーバと端末においてソースプログラムと該ソースプログラムの実行ファイルであるソフトウェアを開発する開発システムであって、前記サーバは、汎用的なソースプログラムのファイルである汎用ソースファイルを記憶しているライブラリ・ソースデータベースと、前記汎用ソースファイルを修正したソースファイルから実行ファイルを作成するコンパイル手段と、前記ソースファイルと前記実行ファイルとを前記サーバと前記端末間で送受信するネットワーク接続手段と、ライブラリ・ソースデータベースから汎用ソースファイルを組み合わせるソースファイル作成手段とを備え、前記端末は、前記サーバとネットワークを介して接続するネットワーク接続手段と、前記端末の前記ネットワーク接続手段により前記サーバより送信された前記汎用ソースファイルを修正して送信することができる統合開発環境手段とを備えることを特徴とする。
本発明の開発システムは、前記統合開発環境手段は、前記汎用ソースファイルを修正することができるソースファイル修正手段と、前記サーバから受信した前記実行ファイルを基に前記ソースファイルをデバッグするデバッグ手段とを含むことを特徴とする。
本発明の開発システムは、前記ソースファイルは、プログラムの共通部分の処理をする共通ファイル手段と、ウィンドウを作成するための処理をするウィンドウ生成手段と、前記ウィンドウ内のコンポーネントの処理をするソースコードを含むリスナー・クラス手段とを含むことを特徴とする。
本発明の開発システムは、前記リスナー・クラス手段の前記ソースコードのみを、前記端末で修正することができることを特徴とする。
本発明の開発システムは、前記サーバは、前記ソースファイルと前記実行ファイルの更新に関する情報を管理するバージョン管理手段を更に備えることを特徴とする。
本発明の開発システムは、前記サーバは、前記サーバにアクセスしている前記端末間で情報を送受信するユーザ間処理手段を更に備えることを特徴とする。
本発明の開発システムは、前記端末は、シンクライアント用ＯＳにより前記サーバにアクセスするシンクライアント用ＯＳ手段を更に備えることを特徴とする。
本発明の開発システムは、前記サーバは、前記実行ファイルを呼び出すことができるデスクトップ画面手段をさらに備え、前記端末は、前記デスクトップ画面手段を受信して実行コマンドを送信することができることを特徴とする。
本発明の開発システムのサーバは、ネットワークのサーバと端末においてソースプログラムと該ソースプログラムの実行ファイルであるソフトウェアを開発する開発システムのサーバであって、汎用的なソースプログラムのファイルである汎用ソースファイルを記憶しているライブラリ・ソースデータベースと、前記汎用ソースファイルを修正したソースファイルから実行ファイルを作成するコンパイル手段と、前記ソースファイルと前記実行ファイルとを前記サーバと前記端末間で送受信するネットワーク接続手段と、ライブラリ・ソースデータベースから汎用ソースファイルを組み合わせるソースファイル作成手段とを備えることを特徴とする。
本発明の開発方法は、ネットワークのサーバと端末においてソフトウェアを開発する開発方法であって、前記サーバは、汎用ソースファイルを作成し、前記サーバは、前記汎用ソースファイルを前記端末に送信し、前記端末は、受信した前記汎用ソースファイルを統合開発環境で修正して、修正されたソースファイルを作成し、前記端末は、前記修正されたソースファイルを前記サーバに送信し、前記サーバは、前記修正されたソースファイルから実行ファイルを作成し、前記サーバは、前記端末から前記実行ファイルを呼び出すことができるデスクトップ画面を作成し、前記サーバは、前記端末の呼び出しに応答して前記デスクトップ画面を前記端末に送信することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ソフトウェア開発における人為的コストを削減できる、ネットワークに接続された開発システムを提供することができる。
【発明を実施するための最良の形態】
【００１０】
＜実施の形態＞
（概念図）
以下、図面を参照して、本発明の実施の形態に係るソフトウェア開発システムについて説明する。
図１は、本発明の実施の形態に係るソフトウェア開発システムを実行するためのサーバ・シンクライアントシステムの概念図である。
本発明の実施の形態に係るサーバ・シンクライアントシステムＸは、ウィンドウズ（登録商標）・サーバ２００３やＬｉｎｕｘ（登録商標）等のサーバ用ＯＳと本発明の実施の形態に係るソフトウェア開発システムのサーバ用プログラムが稼働しているサーバ１０と、ソフトウェア開発者と専用ソフトウェアの顧客とが使用する一般的なＰＣ／ＡＴ互換機等のＰＣ等である端末２０−１〜２０−ｎとが、インターネットやイントラネット等であるネットワーク部５を介して接続されている。
【００１１】
（サーバの構成）
図２は、本発明の実施の形態に係るサーバ１０の構成を示すブロック図である。
サーバ１０は、例えばＰＣ／ＡＴ互換機等の機能を備えた複数のサーバからなるサーバのクラスタ等であって、ＮＦＳ（ネットワーク・ファイルシステム）等を使用して各サーバの内蔵ＨＤＤが接続されており、１つのサーバにユーザが接続するように使用できる。また、ＭｙＳＱＬ（登録商標）やＰｏｓｔｇｒｅＳＱＬ等のデータベースエンジンが実行されている。
サーバ１０の主な構成要素としては、ＣＰＵ等の制御装置である制御部１０１と、開発システムにてユーザが作成したソースコードを実行可能な実行ファイルにコンパイルするコンパイル処理部１０２（コンパイル手段）と、各ユーザごとに、ユーザのホームディレクトリや設定ファイル等が記憶されているユーザ記憶部１０３と、コンパイル時の一時ファイル等を記憶しておく一時ファイル記憶部１０４と、開発システムのライブラリ（共通ファイル）の実行ファイル等が記憶されているライブラリ・バイナリデータベース１０５と、同様に開発システムのライブラリのソースファイルが記憶されているライブラリ・ソースデータベース１０６と、ネットワークに接続するための有線ＬＡＮや無線ＬＡＮ等であるネットワーク接続部１０７（ネットワーク接続手段）と、端末のシンクライアント用ＯＳのためのファイルやユーザのデスクトップ画面等の構成に使用するユーザインターフェイス部１０８と、ライブラリ・ソースデータベースから汎用ソースファイルを作成するソースファイル作成部１０９（ソースファイル作成手段）と、他のユーザとの間でコミュニケーション処理を行う電子メール、ＢＢＳ（電子掲示板システム）、チャットや音声チャット等であるユーザ間処理部１１０（ユーザ間処理手段）と、ソースファイルと実行ファイルの更新に関する情報を管理するバージョン管理部１１１（バージョン管理手段）とを含んで構成されている。
【００１２】
（端末の構成）
図３は、本発明の実施の形態に係るこれらの端末の一つで、通常のＰＣである端末２０−１の構成を示すブロック図である。
端末２０−１は、例えばＰＣ／ＡＴ互換機の機能を備えるＰＣであるが、ＰＣ／ＡＴ互換機として最低限必要な機能を汎用品から組み立てた専用設計ではないシンクライアントであってもよい。
端末２０−１は主な構成として、ＰＣの制御部である例えばＩｎｔｅｌ社製Ｃｏｒｅ２（登録商標）等のＣＰＵ（中央処理装置）である制御部２１と、ＤＲＡＭ等である主記憶部２２と、主記憶部２２と制御部２１とのメモリ記憶内容のリード／ライトを行うためのやり取りをするメモリコントローラやＩ／Ｏコントロール等を行う集積回路であるチップセット２３と、ハードディスクドライブ（ＨＤＤ）等である固定ディスク装置２５と、ネットワーク接続部２７とを含む。さらに、チップセット２３は、ユーザがＰＣの操作を行うための入力部であるキーボード４０とマウス等であるポインティングデバイス４５とに接続されている。ビデオカード２６は、ＰＣの表示用に用いられる部位である。このビデオカード２６には、ＣＲＴディスプレイや液晶ディスプレイ等である表示部５０が接続されている。ネットワーク接続部２７（ネットワーク接続手段）は、ＬＡＮカード等の有線ＬＡＮや無線ＬＡＮのインターフェイスであり、端末２０−１をインターネット等のネットワークに接続可能である。
【００１３】
（シンクライアント用ＯＳの起動）
ここでは、端末２０−１をソフトウェア開発者Ａが使用する端末とし、端末２０−２を専用ソフトウェアの顧客Ｂが使用する端末として説明する。
まず、本発明の実施の形態に係るソフトウェア開発システムは、例えば、端末のＰＣに、通常のＰＣをシンクライアントとして使用することができるシンクライアント用ＯＳ（シンクライアント用ＯＳ手段）が記憶された記憶メディアを、例えば光ディスク装置２４に挿入した上で起動する（このシンクライアント用ＯＳは、端末２０−１の固定ディスク装置２５に記憶されていても、図示しないＵＳＢ接続のフラッシュメモリー等から起動してもよい）。
このシンクライアント用ＯＳの場合、記憶メディアに記憶メディアの所有者を識別するコードが記憶されており、端末からパスワード認証等を行うことなく使用することができる。
サーバ１０と端末２０−１〜端末２０−ｎとの間の通信は、例えばＳＳＬ等の暗号化を施した上で行われる。
【００１４】
このシンクライアント用ＯＳが起動した画面ショットである図４を参照して説明する。
サーバ１０のユーザ記憶部１０３は、それぞれのユーザごとにデスクトップ画面を構成する一連のファイル群を記憶している。たとえば、サーバ１０は、例えばＸＭＬ形式のｄｅｓｋｔｏｐ．ｘｍｌファイル（デスクトップ画面手段）を、各ユーザごとに記憶している。端末が起動した後、サーバ１０は、このｄｅｓｋｔｏｐ．ｘｍｌファイルを起動した端末に向けて送信する。
端末２０−１又は端末２０−２が起動した場合、これらの端末の表示部５０は、Ａｄｏｂｅ社製のＦｌａｓｈ（登録商標）プレイヤー等を使用して、サーバ１０から送信された上記のデスクトップ画面を構成するデータであるｄｅｓｋｔｏｐ．ｘｍｌを基にそれぞれのユーザのデスクトップ画面を表示する。
ユーザが、このデスクトップ画面で、ポインティングデバイス４５等を使用して、アイコンをクリックやダブルクリック、ドラッグ等を行うと、端末の制御部２１が対応する操作を表示部５０の画面上に反映させる。この上で、ネットワーク接続部２７からネットワーク部５を介して該当する操作に関するコマンドをサーバ１０に送信する。
【００１５】
サーバ１０の制御部１０１は、ネットワーク接続部１０７から受け取ったコマンドに対応したデスクトップ画面を構成するｄｅｓｋｔｏｐ．ｘｍｌを作成し、その上で、ネットワーク接続部１０７からネットワーク部５を介して端末２０−１又は２０−２へ出力する。
このｄｅｓｋｔｏｐ．ｘｍｌは、当該端末のネットワーク接続部２７が受信し、制御部２１が主記憶部２２に記憶する。この記憶されたデータを基に制御部２１はデスクトップ画面を更新して、表示部５０の画面上に出力する。
ユーザが端末２０−１又は２２−２において体験することができる動作としては、汎用ＯＳであるＷｉｎｄｏｗｓ（登録商標）と同様に、デスクトップ画面上のアイコンをダブルクリックすると、そのアイコンに関連するプログラムが実行される。この際、サーバ１０のユーザ記憶部１０３に記憶されたアイコンに関連するプログラムが、端末２０−１又は２０−２に上述の過程によりダウンロードされ、端末２０−１又は２０−２の制御部２１が実行する。
【００１６】
（ソフトウェア開発ツールの起動）
次に、本発明の実施の形態に係るソフトウェア開発システムの構成を図面を参照して説明する。
図４において本発明の実施の形態に係る専用ソフトウェア開発ツール（統合開発環境手段）を起動する場合、ソフトウェア開発者Ａが、デスクトップ画面上の「Ｕｋｉｙｏｅ」アイコンであるアイコン２００について、ポインティングデバイス４５をダブルクリックする等の実行コマンドを入力する。
これにより、上述の過程により、サーバ１０のライブラリ・バイナリデータベース１０５及び／又はライブラリ・ソースデータベース１０６に含まれる図示しない開発ツールのベースディレクトリに含まれている、専用ソフトウェア開発ツールの端末用のプログラムが、端末２０−１にダウンロードされて実行される。
このベースディレクトリには、各種設定ファイルも含まれており、これも同時に端末２０−１にダウンロードされる。この設定ファイルとしては、例えば、ユーザが専用ソフトウェア開発ツールでソースコードを記述するための「コンポーネント」の一覧を表現するための「ｃｏｍｐｏｎｅｎｔｌｉｓｔ．ｘｍｌ」等がある。
このｃｏｍｐｏｎｅｎｔｌｉｓｔ．ｘｍｌとしては、例えば、以下のようなコードを用いることができる。
<component-list image-dir="images">
<basic>
<component name="notation"      available="true"  image="notation.jpg"     tool-tip="Notation" />
</basic>
<custom>
</custom>
</component-list>
【００１７】
次に、サーバ１０の制御部１０１は、ユーザのホームディレクトリを参照して、後述するカスタムコンポーネント用の設定ファイルをユーザが作成しているかどうかを参照する。
ユーザのホームディレクトリは、既定の設定では「／ｕｓｅｒｓ／（グループＩＤ）／（ユーザＩＤ）」をホームディレクトリである。たとえば、ソフトウェア開発者ＡのグループＩＤを「ｄｅｖ」、ユーザＩＤを「ｕｓｅｒ＿ａ」とすると、ソフトウェア開発者Ａのホームディレクトリは「／ｕｓｅｒｓ／ｄｅｖ／ｕｓｅｒ＿ａ」になる。
カスタムコンポーネント用の設定ファイルは、ユーザがホームディレクトリ直下にｃｏｍｐｏｎｅｎｔｓ／ｃｏｍｐｏｎｅｎｔｓ．ｘｍｌとして作成し、上述のｃｏｍｐｏｎｅｎｔｌｉｓｔ．ｘｍｌと同等の機能を実現する設定ファイルである。
このｃｏｍｐｏｎｅｎｔｓ．ｘｍｌファイルを、ソフトウェア開発者Ａが作成していない場合やユーザが削除した等で無かった場合は、サーバ１０は起動時に読み込まない。
ｃｏｍｐｏｎｅｎｔｓ．ｘｍｌファイルをユーザが作成している場合、サーバ１０の制御部１０１は、上述のｃｏｍｐｏｎｅｎｔｌｉｓｔ．ｘｍｌと同様に、端末２０−１に送信する。
【００１８】
また、シンクライアント用ＯＳのデスクトップ画面は、マルチウィンドウシステムを採用しているため、上述の過程により、専用ソフトウェア開発ツールがウィンドウの形でデスクトップ画面上に表示される。この専用ソフトウェア開発ツールは、ＧＵＩ（グラフィカル・ユーザ・インターフェイス）の統合開発環境により、柔軟性が高く、開発効率が高いソフトウェア開発を行うことができる。
ソフトウェア開発者Ａはこのウィンドウ上で、専用ソフトウェアとなるプログラムを開発するための開発システムの各種機能を使用できる。
【００１９】
このソフトウェア開発ツールを、ソフトウェア開発者Ａが使用する際の具体的な手順を説明する。
まず、ソフトウェア開発者Ａは、起動した専用ソフトウェア開発ツール上で、専用ソフトウェアの基礎となるソースコード等の集合体である「プロジェクト」を作成する。
この上で、ユーザは既存のソースコードを適宜修正して、カスタマイズされたプログラムを記述する。
記述が終わった後で、ソフトウェア開発者Ａはコンパイル処理を行い、実行ファイルを生成させる。
また、ソフトウェア開発者Ａは、ソースコードと実行ファイルを対応させてデバッグを行うこともできる。
さらに、サーバ内に作成された実行ファイルについて、顧客Ｂにチェックしてもらい、修正依頼を受けて、ソースコードを修正してまた実行ファイルを作成するまでの手順を迅速に行うことが可能である。
完全に完成した実行ファイルは、サーバ内でコピーを行うだけで、インストール等の作業を行う必要がなく、直ちに顧客Ｂが使用することができる。
【００２０】
（開発システムのプログラム言語）
この開発システムで開発するプログラム用のプログラム言語としては、Ａｄｏｂｅ社が規格を策定したＡｃｔｉｏｎ  Ｓｃｒｉｐｔ  ３．０の互換スクリプトであるｈａＸｅ（ｈｔｔｐ：／／ｈａｘｅ．ｏｒｇ）や、Ａｃｔｉｏｎ  Ｓｃｒｉｐｔ  ３．０のソースコードを作成できる。さらに、これらのソースコード用のコンポーネントライブラリとして、例えば、ＡｓＷｉｎｇ（ｈｔｔｐ：／／ｗｗｗ．ａｓｗｉｎｇ．ｏｒｇ／）を用いることができる。
また、上述するソースコードの記述されたソースファイルをサーバ１０上で後述するコンパイルを行うことでＦｌａｓｈの実行ファイル（．ｓｗｆファイル）を作成できる。また、このＦｌａｓｈの実行ファイルを、端末２０−１〜２０−ｎ上の開発ツールにてデバッグを行うことができる。
さらに、Ｆｌａｓｈの実行ファイルは、シンクライアント用ＯＳのデスクトップ画面で実行できるだけではなく、汎用の例えばＷｉｎｄｏｗｓ（登録商標）やＭａｃＯＳ（登録商標）、ｉ−ｍｏｄｅ（登録商標）等のウェブブラウザ等で単独で実行できるという特徴がある。これにより、専用ソフトウェアの使用者のプラットフォームに依存しないプログラムを開発することができる。
なお、本発明の実施の形態に係る開発システムで開発できるのは、Ｆｌａｓｈに限られるものではなく、例えばＣ＋＋やＪＡＶＡ（登録商標）等の他のプログラム言語のプログラムを開発することも可能である。
【００２１】
（開発システムのＡＰＩ）
また、この開発で使用することができるＡＰＩ（アプリケーション・プログラム・インターフェイス）となるプログラム言語上のオブジェクト群としては、「ｊｐ．ｉｚｅ．ｓｈａｒａｋｕ．ｃｏｍｍｏｎ」（シンクライアント用ＯＳのログイン処理等に関するＡＰＩ）、「ｊｐ．ｉｚｅ．ｓｈａｒａｋｕ．ｃｏｍｍｏｎ．ａｃｌ」（シンクライアント用ＯＳ用のセキュリティー等に関するＡＰＩ）、「ｊｐ．ｉｚｅ．ｓｈａｒａｋｕ．ｃｏｍｍｏｎ．ｄｂ」（ユーザが作成するデータベースにアクセスするためのＡＰＩ）、「ｊｐ．ｉｚｅ．ｓｈａｒａｋｕ．ｃｏｒｅ」（カスタム・コンポーネントを使用するためのＡＰＩ）、「ｊｐ．ｉｚｅ．ｓｈａｒａｋｕ．ｉｏ．ｆｉｌｅｃｈｏｏｓｅｒ」（ファイル操作に関するＡＰＩ）、「ｊｐ．ｉｚｅ．ｓｈａｒａｋｕ．ｕｔｉｌ」（シンクライアント用ＯＳ用のアプリケーションに関するＡＰＩ）を含むことができる。
【００２２】
（開発システムの動作例）
図５は、開発ツールに係る画面ショットである。例えば端末２０−１上で、ソフトウェア開発者Ａが実際に起動した際には、デスクトップ画面にこの開発ツールのメイン画面であるウィンドウが表示される。このメイン画面には、Ｖｉｓｕａｌ  Ｓｔｕｄｉｏ等の開発ツールを使い慣れたソフトウェア開発者Ａにとって、ツールとなるウィンドウが分かりやすく配置されている。
これらのツールとなるウィンドウとしては、ファイル操作等の開発ツールの機能を呼び出すメニューバー２０１、このメニューバーの機能をアイコン化して素早くアクセスできるようにしたツールバー２０２、デザイン＆コード作成ウィンドウ２０５上のウィンドウに貼り付けてプログラムの動作を行わせるためのコンポーネントであるコンポーネント一覧２０３、各ウィンドウごとのパネルとパネルに係るオブジェクトの構成要素を表示するパネル管理ウィンドウ２０４、開発するプログラムに当たる各ウィンドウのデザインを行いソースコードを作成するためのデザイン＆コード作成ウィンドウ２０５（ソースファイル修正手段）、プログラムのプロパティ（特質、特性）や画面デザインを設定するプロパティ・ウィンドウ２０６が表示されている。
ここで、ソフトウェア開発者Ａは、これらのウィンドウをポインティングデバイス４５でフォーカス（ウィンドウを操作可能なアクティブ状態にすること）し、各種値を画面上のボタン上で調整し、又は、キーボード４０でコードを入力することで、プログラムを開発することができる。
【００２３】
（ステップＳ１０１）
以下で、図１０のフローチャートを参照して、実際にプログラムを開発する際の典型的な各ウィンドウの動作について、さらに詳しく説明する。
まず、ソフトウェア開発者Ａは、ポインティングデバイス４５とキーボード４０を使用して、ファイルメニューから例えば「新規作成」を選ぶ。これにより、プログラムのフレームワークであるプロジェクトが、サーバ１０のユーザ記憶部１０３のユーザ（この場合はソフトウェア開発者Ａ）のホームディレクトリに作成される。
これらプロジェクトファイルとしては、例えば、拡張子が「．ｐｒｘ」であるＸＭＬ形式のファイルとして保存することができる。この．ｐｒｘファイルは、例えばＧＵＩコンポーネントライブラリである、ＡＷＭＬ（ＡｓＷｉｎｇ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ。ｈｔｔｐ：／／ｗｗｗ．ａｓｗｉｎｇ．ｏｒｇ／で提供される）と互換のＸＭＬ形式の記述方式を使用して、ソースコード等を記憶することができる。
さらに、プロパティ・ウィンドウ２０６を使用するか専用の図示しない画面デザインツールで作成したウィンドウのデザインや、アイコンの情報、動作が記述してあるクラスの内容等を記憶することができる。
【００２４】
プロジェクトの作成時に作成されるソースファイルとして、既定のソースファイル（汎用ソースファイル）としてライブラリ・ソースデータベース１０６に記憶されている（１）ＡＷＭＬ共通ファイル（共通ファイル手段）、（２）Ｐｒｏｊｅｃｔ．ｈｘ（ウィンドウ生成手段）、（３）ＰｒｏｊｅｃｔＬｉｓｔｅｎｅｒ．ｈｘ（リスナー・クラス手段）の３つのファイルと、これらのファイルに関連するファイルを、サーバ１０の制御部１０１がネットワーク接続部１０７により送信する。
これらのファイルは、ネットワーク部５を介して端末２０−１のネットワーク接続部２７が受信し、制御部２１が主記憶部２２に記憶する。この上で、表示部５０に表示されている開発ツールのウィンドウに、ユーザがポインティングデバイス４５やキーボード４０を操作することにより、制御部２１が表示する。
表示と対応するデザイン＆コード作成ウィンドウ２０５の画面ショットである図６を参照すると、各ファイルのソースコードを表示するタブ（表示の単位）の画面ショットであるタブ２０５１が（１）、タブ２０５２が（２）、タブ２０５３が（３）に、それぞれ対応している。これらのソースコードは、（３）のソースコードのみ、後述するステップＳ１０４のソースコードの作成ステップで端末２０−１上で編集することができる。
【００２５】
また、（２）のＰｒｏｊｅｃｔ．ｈｘの「Ｐｒｏｊｅｃｔ」の部分は、アプリケーションによって変更される「アプリケーション名」にあたる。
最初にプロジェクトが作成されたときのデフォルト（初期設定、既定値）のアプリケーション名前は、「Ｐｒｏｊｅｃｔ」である。
アプリケーション名は、コンパイル時に指定するタブ２０７１の「Ａｐｐｌｉｃａｔｉｏｎ  Ｎａｍｅ」で指定することができる（例えば、アプリケーション名を「Ｔｅｓｔ」とした場合、（２）はＴｅｓｔ．ｈｘとなる）。なお、（１）のＡＷＭＬの共通ファイルは（２）Ｐｒｏｊｅｃｔ．ｈｘ  の中に含ませることも可能である。
【００２６】
（１）のソースファイルは、ＸＭＬ形式にて、ＡＷＭＬ共通ファイルとしてクラスの型、ウィンドウや後述するパネルのプロパティ等が記述されている。このコードは、上述のように、ライブラリ・ソースデータベース１０６を基に制御部１０１が自動生成し、ユーザであるソフトウェア開発者Ａは編集することができない。しかし、プロパティ・ウィンドウ２０６の値をユーザが修正すると、制御部２１が自動的にソースファイルの変化として反映させる。
【００２７】
（２）のソースファイルは、本発明の実施の形態に係るプログラムの、主要部分のソースコードが記述されている。このコードは、（１）と同様にライブラリ・ソースデータベース１０６を基に制御部１０１が自動生成し、ユーザであるソフトウェア開発者Ａは編集することができない。
また、（２）には、画面デザインに対応するＡＷＭＬが埋め込まれており、画面デザインを変更するたびに自動的に、変更が反映されるようになっている。
さらに、アプリケーション起動処理の  ｍａｉｎ（）関数、初期化処理のｎｅｗ（）、ｉｎｉｔＣｏｍｐｏｎｅｎｔｓ（）関数、各コンポーネントの動作を記述しているリスナー・クラスの名前を返すｇｅｔＬｉｓｔｅｎｅｒＣｌａｓｓＮａｍｅ（）関数、アプリケーションのメインのウィンドウであるＪＦｒａｍｅコンポーネントを取得するためのｇｅｔＲｏｏｔＪＦｒａｍｅ（）関数が用意されている。
この（２）のコードは、実際にコンパイル処理が行われた後は、ウェブブラウザ上ではＦｌａｓｈの実行ファイルとして実行できる１つのウィンドウとして記述される。実行時のウィンドウの数は、デフォルトでは１つであるが、ユーザが自由に追加することができる。
これらのデフォルトのプロジェクトのソースコードは、後述するようにそのままコンパイル処理を行うと１つのウィンドウとして表示される実行ファイル（．ｓｗｆファイル）を作成することができる。
画面デザインの変更により追加されたコンポーネントは、同時に（３）のリスナー・クラスでも利用できるように登録される。
【００２８】
（３）はリスナー・クラスで、（２）に追加された各コンポーネントの動作を記述し、専用プログラムとしてのプログラム自体の動作を記述するためのクラスである。
たとえば、「ボタンをクリックしたときにどういった処理をするのか」といった場合のソースコードが、このファイルに記述される。
このソースコードは、後述するコンポーネントの配置ステップＳ１０２において、コンポーネントをデザイン＆コード作成ウィンドウ２０５上に配置することで、デフォルトのソースコードを制御部１０１が追加し、ユーザが一時ファイル記憶部１０４に記憶されているこのソースコードを変更することができる。
【００２９】
以上のように（１）（２）（３）にソースコードを分けることにより、サーバ１０内のライブラリ・ソースデータベース１０６が更新された場合、たとえば（１）（２）に係るソースファイルを入れ替えるだけで、すぐに最新の開発環境に係る実行ファイルを作成することが可能になる。また、たとえば、携帯電話用やＰＤＡ用といった「組み込み」アプリケーションを作成する場合や、クロスプラットフォームのソフトウェアを作成する場合等、対応する（１）（２）に係るソースファイルを入れ替えるだけで、対応することが可能である。たとえば、ＡＷＭＬとは違う、ウィンドウズ（登録商標）・ビスタの「ガジェット」ファイル等を作成することも可能である。また、（３）に係るユーザのファイルを、ユーザ自らがライブラリとして、使い回しで利用する効率を上げることができる。
【００３０】
（ステップＳ１０２）
次に、ステップＳ１０２の各コンポーネントの配置について説明する。
ソフトウェア開発者Ａがコンポーネント一覧２０３から、ポインティングデバイス４５等を使用して、コンポーネントをデザイン＆コード作成ウィンドウ２０５のタブ２０５０の上に配置すると、上述のようにデスクトップ画面が更新されると同時に、（３）の（アプリケーション名）Ｌｉｓｔｅｎｅｒ．ｈｘ上に、ソースファイル作成部１０９が対応するソースコードを作成する。
本発明の実施の形態に係る開発ツールでは、図１３に示すように、ボタンやテキストエリアといった、各種のコンポーネントが使用可能である。
このコンポーネントとしては、本発明の実施の形態に係る開発ツールで使用可能にするために、ＩｚｅＣｏｍｐｏｎｅｎｔというクラスのソースコードをライブラリ・ソースデータベース１０６に用意している。このＩｚｅＣｏｍｐｏｎｅｎｔは、上述のＡｓＷｉｎｇコンポーネントを使用して作成することができる。この場合、ＩｚｅＣｏｍｐｏｎｅｎｔのすべてのクラスではＡｓＷｉｎｇコンポーネントであるｏｒｇ．ａｓｗｉｎｇ．Ｃｏｍｐｏｎｅｎｔを継承したクラスを使用する。
また、この開発ツールで使用可能なコンポーネントはすべて  ＩｚｅＣｏｍｐｏｎｅｎｔを継承するように作成してある。加えて、ＩｚｅＣｏｍｐｏｎｅｎｔ  は、ＡＷＭＬへの出力、プロパティの編集を動的にするための関数（メソッド）群を用意している。
【００３１】
更に、このコンポーネントとしては、本発明の実施の形態に係る開発ツールが標準で用意する標準コンポーネント以外に、ユーザが独自にコンポーネントを作成することも可能である。このユーザが独自に作成するコンポーネントを、カスタム・コンポーネントと呼ぶ。
このカスタム・コンポーネントを作成するためには、ユーザのホームディレクトリ直下に「ｃｏｍｐｏｎｅｎｔｓ」ディレクトリを作成し、このディレクトリに「ｃｏｍｐｏｎｅｎｔｓ．ｘｍｌ」のファイルを作成する。このファイルは、ユーザが編集することで、カスタム・コンポーネントを使用することが可能になる。
このファイルは、シンクライアント用ＯＳに標準で付属する、ファイルを作成する「メモ帳」等のソフトウェアを使用して作成することもできる。
また、メニューバー２０１のファイルメニューから「ファイルの作成」をユーザが選択することで、端末２０−１上でユーザが主記憶部２２上で作成し、サーバ１０に転送することができる。なお、本発明の実施の形態に係る開発ツールが作成しないファイルは、すべて同様の方法で作成することができる。
この場合の、ユーザのホームディレクトリ直下のｃｏｍｐｏｎｅｎｔｓ／ｃｏｍｐｏｎｅｎｔｓ．ｘｍｌの内容（カスタム・コンポーネントの形式）としては、例えば、以下のようなコードを用いることができる。
<component-list image-dir="apps/ukiyoex2">
<component 
name="Clock"
available="true"
image="images/custom/custom1.jpg"
tool-tip="Clock"
package="aaa.bbbb"
swf="clock.swf"
class-name="IzeClock"
parser-name="ClockParser"
ui-name="ClockUI"
awml-tag="clock"
/>
</component-list>
【００３２】
このカスタム・コンポーネントの処理を記述するコードは、コンポーネントクラス、ＵＩクラス、パーサクラス、上述のＩｚｅＣｏｍｐｏｎｅｎｔを継承するＩｚｅＣｏｍｐｏｎｅｎｔ継承クラスの４つのソースコードから作成することができる。
ここで、コンポーネントクラスは、ｏｒｇ．ａｓｗｉｎｇ．Ｃｏｍｐｏｎｅｎｔを継承することができる、実際のコンポーネントを記述するクラスである。
ＵＩクラスは、コンポーネントクラスで使用し、外観を決定するためのクラスである。
パーサクラスは、ＡＷＭＬとしてのＸＭＬ情報を入出力するためのクラスである。プロパティやイベントとタグ、属性情報との関連付けを行なうことができる。
ＩｚｅＣｏｍｐｏｎｅｎｔ継承クラスは、本発明の実施の形態に係る開発ツールと連携して使用するためのクラスである。プロパティの設定・取得やイベント処理ソースコードの自動生成等に必要な情報を記述しておくことができる。
このカスタム・コンポーネントのさらなる詳細については、後述する。
【００３３】
（ステップＳ１０３）
次に、ステップＳ１０３において、上述のコンポーネントをデザイン＆コード作成ウィンドウ２０５に追加すると、このコンポーネント用のプロパティを設定することができる。
この状態の本発明の実施の形態に係る開発ツールのウィンドウのユーザの操作について、図７Ａと図７Ｂを参照して説明する。
まず、ソフトウェア開発者Ａが、プロパティ・ウィンドウ２０６のプロパティを設定するタブ２０６１の各値をキーボード４０やポインティングデバイス４５で変更する。
これにより、各コンポーネントが実行時に表示するプロパティを設定することができる。
【００３４】
さらに、各プロパティをさらに詳しく設定する必要がある場合、これに付随した外観の設定ウィンドウであるセッティングウィンドウ２０６３が表示される。この値に関しても、ソフトウェア開発者Ａが変更可能である。
【００３５】
（ステップＳ１０４）
次に、ステップＳ１０４において、ソフトウェア開発者Ａが、プロパティ・ウィンドウ２０６のタブ２０６２において、各コンポーネントの動作を設定する。
すなわち、ユーザが「ｋｅｙ」で示されるイベントに対して「ｖａｌｕｅ」を記述して「ｅｄｉｔ」ボタンをクリックすると、この情報が端末２０−１の制御部２１よりネットワーク接続部２７から送信される。
これを、サーバ１０のネットワーク接続部１０７が受信し、サーバ１０の制御部１０１が検出する。
ここで、制御部１０１はカスタムコンポーネントがユーザにより記述されている場合は読み込む。標準コンポーネントの場合は、制御部１０１は、上述の「ｃｏｍｐｏｎｅｎｔｌｉｓｔ．ｘｍｌ」に記述されているあらかじめ読み込まれた標準コンポーネントのコンポーネント情報からライブラリ・ソースデータベース１０６の「ｋｅｙ」に対応するイベントを取得する。次に、ソースファイル作成部１０９が、ライブラリ・ソースデータベース１０６に記憶されているデフォルトの汎用ソースコードを読み込んでソースコードを自動生成する。
このようにして、ソースファイル作成部１０９が、サーバ１０のユーザ記憶部１０３内に、対応するソースコードを生成する。
【００３６】
このコンポーネントの読み込み処理について、さらに詳しく説明する。
まず、上述の「ｅｄｉｔ」ボタンがソフトウェア開発者によって押されたとする。上述の過程を通じて、サーバ１０の制御部１０１がこれを感知した場合、制御部１０１が、ライブラリ・ソースデータベース１０６に記憶されている標準コンポーネントのデフォルトのソースコードを読み込んで、上述のソースファイルに追加する。
【００３７】
ここで、ｃｏｍｐｏｎｅｎｔｓ．ｘｍｌファイルをユーザが作成していた場合は、ユーザが独自に作成した（標準コンポーネントに含まれない）カスタム・コンポーネントを読み込む処理を行う。この処理について説明する。
すなわち、ユーザのホーム直下のｃｏｍｐｏｎｅｎｔｓ／ｃｏｍｐｏｎｅｎｔｓ．ｘｍｌがあった場合、制御部１０１は、パス（ファイルの位置）をチェックし、ソースコードが含まれているファイルがあるか／ないか、ファイルを参照又は使用する権限があるか／ないかを確認する。
このファイルがない、又は使用する権限がなかった場合は、警告を表示して、コンポーネントを読み込まずに無視する。
このファイルがあり、更に使用する権限があった場合は、コンポーネントを一覧に追加し、利用可能な状態にする。
さらに、本発明の実施の形態に係る開発ツールにおいては、設定を行うことにより通常コンポーネントがカスタム・コンポーネントを読み込むことができる。
この場合、開発ツールの起動時に、このカスタム・コンポーネントの設定ファイルの読み込みに失敗したときは、そもそもコンポーネント一覧２０３にはボタンが追加されず、ユーザが使用不可となる。
【００３８】
また、ユーザは、カスタムタイプ（プログラム上のデータの型）を使用することができる。
この場合、ユーザのホームディレクトリ直下に、
ｔｙｐｅｓ／ｔｙｐｅｓ．ｘｍｌ
ファイルをコンパイル処理までに作成しておく必要がある。このｔｙｐｅｓ／ｔｙｐｅｓ．ｘｍｌファイルは、ｃｏｍｐｏｎｅｎｔｓ／ｃｏｍｐｏｎｅｎｔｓ．ｘｍｌの読み込みの前に、制御部１０１が参照する。
このｔｙｐｅｓ／ｔｙｐｅｓ．ｘｍｌファイル があった場合は、制御部１０１はパス（ファイルの位置）をチェックし、ソースコードが含まれているファイルがあるか／ないか、ファイルを参照又は使用する権限があるか／ないかを確認する。
このファイルがない、又は使用する権限がなかった場合は、警告を表示して、カスタムタイプを読み込まずに無視する。
このファイルがあり、更に使用する権限があった場合は、カスタムタイプを使用可能な状態にする。
また、カスタムタイプ用のバイナリファイル（実行可能ファイルのような、文字ではなく数値で構成されるファイル）として用いられる．ｓｗｆファイルも、このディレクトリに配置する。
【００３９】
上述のステップにて、ソースファイル作成部１０９がソースコードを作成した後、このソースコードはネットワーク接続部１０７がネットワーク部５を介して端末２０−１に送信し、端末２０−１のネットワーク接続部２７が受信して、端末２０−１の主記憶部２２に記憶する。さらに、制御部２１が、表示部５０に表示されているデザイン＆コード作成ウィンドウ２０５に追加して表示する。
【００４０】
上述のコンポーネントの動作を設定するソースコードの設定の例を説明する。例えば、ソフトウェア開発者Ａが、デザイン＆コード作成ウィンドウ２０５にのタブ２０５０にボタン（Ｂｕｔｔｏｎ１）のコンポーネントを貼り付け、プロパティのタブ２０６２の”ｏｎ−ｃｌｉｃｋｅｄ”の値（ｖａｌｕｅ）を”ｏｎＢｕｔｔｏｎ１Ｃｌｉｃｋｅｄ”としておき、「ｅｄｉｔ」ボタンをクリックすると以下のようなソースコードがリスナー・クラスに生成される。
public function onButton1Clicked(source:Component, clickCount:Float):Void
{
//(ここに処理を記述する)
}
値が無い場合のデフォルトの値は、それぞれのコンポーネント名のイベント名に関連した関数名を使用する。
ソフトウェア開発者Ａは、このソースコード内に必要な処理をキーボード４０等を使って記述することで、顧客Ｂ等の企業の企業のニーズに合わせてカスタマイズした、専用ソフトウェアであるプログラムの開発を行うことができる。
【００４１】
（ステップＳ１０５）
次に、ソフトウェア開発者Ａは、各ソースコードを完成させた後、実行ファイル（例えば、．ｓｗｆファイル）を作成するために、ソースファイルのコンパイルを行う。このコンパイルの際に、ユーザが行う操作について、図８Ａと図８Ｂを参照してさらに詳しく説明する。
具体的には、ソフトウェア開発者Ａがポインティングデバイス４５やキーボード４０等で、メニューバー２０１のファイルメニューから「コンパイル」を選択するか、ツールバー２０２の右端にある「円に三角矢印」ボタンを選択してコンパイル処理を行うコマンドを選択すると、図８Ａで示すコンパイル・ウィンドウ２０７（デバッグ手段）が表示される。
このコンパイル・ウィンドウにおいては、ソフトウェア開発者Ａは、タブ２０７１、タブ２０７２、及びタブ２０７３の、各タブにより、アプリケーションをコンパイル処理する際の設定やメッセージの受信、デバッグ等を行うこともできる。
ソフトウェア開発者Ａがタブ２０７１を選択すると、上述のアプリケーション名を変更することができる。また、アプリケーションに用いるアイコンを選択でき、ユーザが選択を行うと、制御部２１が「ｐｒｅｖｉｅｗ」の箇所に当該アイコンを表示する。
ソフトウェア開発者Ａがタブ２０７２を選択すると、コンパイル処理後に作成される実行ファイルであるの．ｓｗｆファイルを実行する際の画面解像度を設定することができる。また、．ｓｗｆファイルの属性であるＦＰＳ（フレーム・パー・セカンド、一秒間の描画回数）を設定することができる。
【００４２】
また、タブ２０７１もユーザが選択できるとともに、後述のコンパイル処理時に制御部２１が、このタブのメッセージボックス内にメッセージを表示する。このメッセージとしては、コンパイル処理が成功したか失敗したかというメッセージ等を表示する。
さらに、タブ２０７１は、コンパイル処理が失敗した場合、エラーメッセージ等を表示し、エラーが起こった箇所のソースコードを指し示したり、ステップ実行等の際のメッセージを表示する等のデバッグを行うことができる。
このステップ実行やブレークポイントの設定、トレースやウォッチを行う際は、ツールバー２０２の「→」（矢印）マークを使用するか、ファイルメニューから「ステップ実行」等を個別に選択することができる。
【００４３】
このコンパイル・ウィンドウの「ｃｏｍｐｉｌｅ」ボタンをソフトウェア開発者Ａがポインティングデバイス４５やキーボード４０等で選択すると、端末２０−１とサーバ１０の間で情報が送信・受信されてコンパイル処理が実行される（また、「ｃｌｏｓｅ」ボタンを押すと、コンパイル処理がキャンセルされる）。
このステップである、ステップＳ１０５の処理について、図１１Ａのフローチャートと図１１Ｂのタイミングチャートを参照して更に詳しく説明する。
【００４４】
（ステップＳ１０５１）
まず、ステップＳ１０５１において、端末２０−１の制御部２１が、ネットワーク接続部２７からネットワーク部５に上述のコンパイル処理を行うコマンドと、ソフトウェア開発者Ａが完成させたソースコードを含む、ソースファイルである、上述の（１）（２）（３）のファイルを送信する。ここで、（２）のファイルに（１）が含まれる場合は、（２）と（３）のみを送信する。
これは、図１１Ｂの、「ソースファイルを送信」に対応する。
【００４５】
（ステップＳ１０５２）
サーバ１０のネットワーク接続部１０７は、上述のコマンドとソースファイルを受信して、一時ファイル記憶部１０４に記憶する。さらに、制御部１０１に、ソースファイルが受信できたことを通知する。
この時点では、ユーザ記憶部１０３にあるソフトウェア開発者Ａのホームディレクトリにある元となるファイルは更新しない。
また、この時点で、受信は失敗したと制御部１０１が判断した場合、一時ファイル記憶部１０４に記憶されたファイルの断片を消去し、ネットワーク接続部１０７からクライアント２０−１に向けて受信が失敗した旨のエラーメッセージを送信する。
【００４６】
（ステップＳ１０５３）
次に、サーバ１０のコンパイル処理部１０２が、一時ファイル記憶部１０４に記憶されているソースファイルを基にして、実際のコンパイル処理を実行する。
ここで、このソースファイルにて、ソフトウェア開発に共通に使えるファイルであるライブラリやＡＰＩを使用していた場合、ソースコードがライブラリ・ソースデータベース１０６に保存されている場合は、これを制御部１０１がインクルード（組み込み）を行う。
また、ソースコードが提供されないバイナリファイルのインクルードを行う場合は、制御部１０１がライブラリ・バイナリデータベース１０５からバイナリファイルを取得してインクルード又はリンクする。
これにより、ソースコードのコンパイル処理が成功した場合、制御部１０１は、通常は単一の実行ファイルである．ｓｗｆファイルが一時ファイル記憶部１０４に作成する。
コンパイル処理に失敗していた場合、制御部１０１は、一時ファイル記憶部１０４に、コンパイル処理時のエラーメッセージを記憶する。
【００４７】
（ステップＳ１０５４）
次にステップＳ１０５４において、制御部１０１は、ステップＳ１０５３のコンパイル処理が成功したかについて判定する。
コンパイル処理が失敗した場合、制御部１０１は、ステップＳ１０５５に処理を進める。
コンパイル処理が成功した場合、制御部１０１は、ステップＳ１０５６に処理を進める。
【００４８】
（ステップＳ１０５５）
ステップＳ１０５５において、ユーザインターフェイス部１０８が、コンパイル処理時のエラーメッセージを、ネットワーク接続部１０７から出力する。このステップは、図１１Ｂの「成否の応答」に対応する。
このエラーメッセージは、ネットワーク部５を介して、端末２０−１のネットワーク接続部２７が受信し、制御部２１がタブ２０７３に出力する。
本発明の開発システムは統合開発環境を実現している。このため、このエラーメッセージをユーザがポインティングデバイス４５でクリックすることにより、エラーのあったソースコードの箇所に移動するといったことが可能である。
【００４９】
（ステップＳ１０５６）
ステップＳ１０５６において、制御部１０１は、一時ファイル記憶部１０４に記憶されている実行ファイルである．ｓｗｆファイルを、ユーザ記憶部１０３のホームディレクトリにコピーする。
【００５０】
（ステップＳ１０５７）
次に、ステップＳ１０５７において、ユーザインターフェイス部１０８は、コンパイル処理が成功した旨のメッセージを、ネットワーク部５を介して、端末２０−１のネットワーク接続部２７が受信し、制御部２１がタブ２０７３に出力する。このステップも、図１１Ｂの「成否の応答」に対応する。
この成功した旨のメッセージに関しても、ネットワーク部５を介して、端末２０−１のネットワーク接続部２７が受信し、制御部２１がタブ２０７３に出力する。
【００５１】
（ステップＳ１０５８）
次に、ステップＳ１０５８において、制御部１０１は、ｄｅｓｋｔｏｐ．ｘｍｌを更新する。具体的には、ｄｅｓｋｔｏｐ．ｘｍｌ上に、コンパイル後の．ｓｗｆファイルを呼び出すためのアイコンが表示されるようなデータを追加する。
また、この更新されたｄｅｓｋｔｏｐ．ｘｍｌは、上述のようにサーバ１０から送信されて、クライアント２０−１の表示部５０に表示される。
これにより、ユーザであるソフトウェア開発者Ａが開発ツールのウィンドウを閉じた後でも、このアイコンをクリックすることで、即、この．ｓｗｆファイルの実行を行うことができる。このため、作成されたソフトウェアのテスト等を行うことが用意であるという効果が得られる。
また、この．ｓｗｆを後述する共有フォルダに出力するように設定している場合、顧客Ｂも即時に実行してチェックする（試す）ことが可能である。
【００５２】
このｄｅｓｋｔｏｐ．ｘｍｌの更新ができた時点で、コンパイル処理は終了する。ユーザであるソフトウェア開発者Ａは、メニューバー２０１のツールメニューや、ツールバー２０２の「→」（矢印）マーク等を使用することで、デバッグを行うことができる。
ユーザがデバッグを行うと、サーバ１０から実行ファイルが端末２０−１に転送され、プレビューとしてアイコンが表示されて、制御部２１により実行される。
ユーザは、この実行ファイルとソースファイルを基にして、ソースコードのある位置までプログラムを実行させるトレースを行ったり、ブレークポイントの設定を行ったり、１行ごとのステップ実行を行ったり、図示しないウォッチウィンドウにより変数の値を参照したりといったことが可能になる。また、変数がある値を示したときや例外発生時にプログラムを停止させることも可能である。
これらの処理としては、端末２０−１に読み込まれている専用ソフトウェア開発ツールの端末用のプログラムと、サーバ１０とが連携して行うリモートデバッグを行うことができる。
ソフトウェア開発者Ａは、さらにソースコードを修正させ、デバッグとコンパイル処理を繰り返すことで、専用ソフトウェアを完成させることができる。
【００５３】
なお、ソフトウェア開発者Ａは、ステップＳ１０１〜ステップＳ１０５までの工程を、適宜入れ替えて実行することが可能である。
これは、本発明の実施の形態が、従来技術１のような、単純なウィザード形式の固定化されたユーザインターフェイスではない、高度な統合開発環境をウェブ上で実現することが可能であるためである。
【００５４】
（開発の手順の例）
次に、実際にコードを作成して実行するまでの過程について、本発明の実施の形態に係る開発ツールのウィンドウである図５と図７Ｃ、実際に専用ソフトウェアをユーザが実行した際の画面ショットである図９とを参照して説明する。
まず、ユーザであるソフトウェア開発者Ａは、上述のような手順で、プロジェクトを作成し、アプリケーション名を「ＳａｍｐｌｅＰａｎｅｌ」とした。
【００５５】
ここで、本発明の実施の形態に係る開発ツールは、ＡｓＷｉｎｇを使用している関係上、通常は単一のファイルで単一のウィンドウとなる実行ファイル（．ｓｗｆファイル）を作成する。
しかし、アプリケーションを作成するときに、登録した情報を確認する場合に、２つの画面、すなわち情報を入力するための「登録画面」と、入力した情報に誤りがないかを確認するための「確認画面」を作ることがある。この場合は、ウィンドウ自体は１つのみ必要であるというユーザの要求が存在する。
そういった要求に対応するために、パネル管理ウィンドウ２０４を用意して、同一のウィンドウの中でパネル（表示要素）を切り替えられる仕組みを用意した。
たとえば、ユーザがメニューバー２０１の「パネルの作成」を行うことで、ユーザは標準のウィンドウに加えて、２つ目以降のパネルを作成することができる。
【００５６】
ここでは、２つのウィンドウをユーザが作成した場合の、パネル管理ウィンドウ２０４の例を説明する。
まず、プロジェクトを作成した時点では、パネル管理ウィンドウ２０４には、「Ｐａｎｅｌ１」と称されるウィンドウ１のみが表示されている。
ここで、上述のように、「パネルの作成」を行うと、タブ２０６４に「Ｐａｎｅｌ２」が表示される。なお、「Ｐａｎｅｌ１」や「Ｐａｎｅｌ２」は、パネル名であり、ユーザが自由に変更することができる。
次に、ソフトウェア開発者Ａは、
「Ｐａｎｅｌ１」を「登録画面」、
「Ｐａｎｅｌ２」を「確認画面」とするため、画面デザインのＡＷＭＬについて、簡略化された説明例として以下のような構造を持つようにプロパティを設定する。
<frame>
<panel name="Panel1" visible="true" />
<panel name="Panel2" visible="false" />
</frame>
さらに、タブ２０６５において、各パネルのオブジェクト（又はクラス）内の関数を表示することができる。具体的には、例えば、「Ｐａｎｅｌ１」の横にある三角印をユーザがポインティングデバイス４５でダブルクリックすると、制御部２１が関数の表が表示する。ユーザが、その関数の表に示される関数をダブルクリックすると、デザイン＆コード作成ウィンドウ２０５の対応する関数のところに、制御部２１がカーソル（入力する位置を示す手段）を移動して表示する。
【００５７】
また、本発明の実施の形態に係る開発ツールにおいては、ＡＰＩである「ｊｐ．ｉｚｅ．ｓｈａｒａｋｕ．ｃｏｒｅ」において、ＡｂｓｔｒａｃｔＡｐｐＬｉｓｔｅｎｅｒクラスにパネルの表示を切り替えるための関数（メソッド）ｓｈｏｗＰａｎｅ（）を用意している。
よって、ｓｈｏｗＰａｎｅ（”Ｐａｎｅｌ１”）のように「Ｐａｎｅｌ１」等のパネル名を渡すことで、表示を切り替えることができる。
ここで、ボタンクリック時に表示を切り替える場合、以下のようなコードをソフトウェア開発者Ａが入力することができる。
public function gotoPanel2(source:Component, clickCount:Float):Void
{
getComponent("Label4").setText(getComponent("TextField1").getText()); // 名前の入力内容を確認用に設定
var seibetsu:String = "";
if ( getComponent("RadioButton1").isSelected() ) {
// 「男」が選択されていた場合は、「男」と表示
seibetsu = getComponent("RadioButton1").getText();
} else if ( getComponent("RadioButton2").isSelected() ) {
// 「女」が選択されていた場合は、「女」と表示
seibetsu = getComponent("RadioButton2").getText();
} else {
// 何も選択されていなければ「男」を初期値として使用
seibetsu = getComponent("RadioButton1").getText();
}
getComponent("Label6").setText( seibetsu ); // 性別の選択内容を確認用に設定
showPane("Panel2"); // Panel2 に表示を切り替え
}
このコードは、「確認」ボタンのプロパティとして、
<button x="100" y="120" width="140" height="20" enabled="true" visible="true" opaque="true" hand-cursor="false" trigger-enabled="true" alpha="100" id="Button1"
on-clicked="SamplePanel.gotoPanel2"
horizontal-align="center" vertical-align="center" horizontal-position="right" vertical-position="center" icon-text-gap="2" text="確認">
<background alpha="100" rgb="C0C0C0"></background>
<foreground alpha="100" rgb="000000"></foreground>
<font embeded="false" underline="false" italic="false" bold="false" size="11" name="Tahoma"></font>
<margins bottom="0" right="0" left="0" top="0"></margins>
</button>
のように、
ｏｎ−ｃｌｉｃｋｅｄ＝”ＳａｍｐｌｅＰａｎｅｌ．ｇｏｔｏＰａｎｅｌ２”
を定義している。
これは、ユーザがクリックした際に、ｇｏｔｏＰａｎｅｌ２（）が呼び出されることを示している。
この定義は、これはプロパティの設定時に、プロパティ・ウィンドウ２０６の中の「Ｅｖｅｎｔｓ」タブ（タブ２０６２）の  ”ｏｎ−ｃｌｉｃｋｅｄ”に値”ｇｏｔｏＰａｎｅｌ２”を入力することで設定できる。
【００５８】
また、プロジェクトで作成された各ウィンドウは、プロパティを変更することで表示状態の変更を行うことができる。これにより、ウィンドウを半透明にしたり、デフォルトの大きさを変更したりといったことが可能になる。
【００５９】
（バイナリファイルの実行）
実際に、本発明の実施の形態に係る開発システムで開発された上述のアプリケーションの例であるアプリケーション名「ＳａｍｐｌｅＰａｎｅｌ」について、図９を参照して説明する。
まず、ユーザであるソフトウェア開発者Ａは、コンパイル処理を行い、画面上にある「ＳａｍｐｌｅＰａｎｅｌ」アイコンが表示されていものとする。ここで、ユーザは、ポインティングデバイス４５等でこのアイコンをダブルクリックしたり、キーボード４０のエンターキーを押下したりする等により、実行コマンドを入力する。
この実行コマンドは、制御部２１がネットワーク接続部２７から出力する。
【００６０】
サーバ１０のネットワーク接続部１０７は、ネットワーク部５を介して実行コマンドを入力する。ユーザインターフェイス部１０８がこれを検知すると、制御部１０１は、ユーザ記憶部に記憶されている、「ＳａｍｐｌｅＰａｎｅｌ」に対応する実行ファイルである．ｓｗｆファイルを、ネットワーク接続部１０７から出力する。
【００６１】
次に、端末２０−１のネットワーク接続部２７が、上述の．ｓｗｆファイルを受信し、主記憶部２２に記憶する。この上で、制御部２１が．ｓｗｆファイルを実行し、表示部５０に表示する。
この場合の画面ショットの例である、画面ショット３００１を参照すると、制御部２１が、デスクトップ画面上に「Ｐａｎｅｌ１」に相当するウィンドウを表示する。
ユーザが名前欄に「テスト太郎」、性別を「男」とチェックして「確認」ボタンをポインティングデバイス４５等でクリックすると、画面ショット３００２のように、制御部２１が、デスクトップ画面上に「Ｐａｎｅｌ２」に相当するウィンドウを表示する。
このように、本発明の実施の形態に係る開発システムは、複数のウィンドウにおける画面遷移を実現することができるという特徴がある。
【００６２】
（共同開発する場合の例）
また、通常、専用ソフトを開発する場合は、複数のソフトウェア開発者が共同して開発することがある。
この場合、あるユーザ（たとえば、ソフトウェア開発者Ａ）が中心になって、ソフトウェアを開発する場合、本発明の実施の形態に係る開発システムにおいては、カスタム・コンポーネント用ファイルの配置を工夫することで対処することが可能である。
まず、ソフトウェア開発者Ａのホームディレクトリ直下であるｃｏｍｐｏｎｅｎｔｓ／以下にすべてのファイルを配置する。さらに、ソフトウェア開発者Ａのホームディレクトリ直下に、同様にｔｙｐｅｓ／以下にすべてのファイルを配置する。
この上で、例えば共同開発者であるソフトウェア開発者Ｃが、端末２０−３上でシンクライアント用ＯＳを使用して、サーバ１０にアクセスし、開発システムを起動する。
ソフトウェア開発者Ｃは、開発システムから、ソフトウェア開発者Ｂのディレクトリにあるプロジェクトを読み込む。
これにより、ソフトウェア開発者Ａとソフトウェア開発者Ｃは、同一のプロジェクトについて、共同してソフトウェア開発を行うことができる。なお、当然ながら、同じプロジェクトの開発者のグループでないと、このプロジェクトが記憶されたディレクトリにアクセスできないように設定することが可能である。
【００６３】
また、上述のように共同してソフトウェア開発を行う場合、ユーザがソースコードを変更した際の変更箇所について、コンパイル処理ごとにバージョン管理部１１１が、たとえばＣＶＳ形式でユーザ記憶部１０３に記憶する。すなわち、ソースファイルと実行ファイルの更新に関する情報を記憶し、管理する。これにより、ソースコードの管理を意識することがなく、共同で専用ソフトウェアを開発することが可能になる。
また、たとえば、一定時間ごとにユーザが変更したソースコードを、たとえば端末２０−１又は２０−２がサーバ１０に送信し、サーバ１０の制御部１０１が一時ファイル記憶部に記憶するといったことも可能である。
これにより、端末２０−１又は２０−２が開発システムの使用時に停電等でシャットダウンした場合や故障した場合等でも、ソースコードがサーバ上に記憶されているため、もう一度サーバ１０にアクセスすることで、開発を続けることができる。
【００６４】
さらに、上述のソースコードがコンパイルされた際に、（ｄｅｓｋｔｏｐ．ｘｍｌが更新されている）ソフトウェア開発者Ａのデスクトップに、ソフトウェア開発者Ｃもアクセスできる。このために、ソフトウェア開発者Ａと同様に作成された．ｓｗｆファイルをすぐにチェックすることが可能である。
さらに、本発明の実施の形態に係る開発システムにおいては、サーバ１０のユーザ間処理部１１０を備えている。
ユーザ間処理部１１０は、ユーザ間でメッセージをやり取りしてコミュニケーションする、いわゆる「メッセンジャー」ソフトウェアのような動作をすることができ、他のユーザがサーバ１０にアクセスした際に、そのユーザがアクセスしたことを、通知する機能がある。
さらに、他のユーザの端末と、電子メール、ＢＢＳ（電子掲示板システム）、チャットや音声チャット等により、ユーザ間の連絡を取ることが可能である。さらに、ＲＳＳ等の技術により、ＢＢＳ等の情報が更新したことを端末に通知することが可能である。
これにより、遠隔地にいるソフトウェア開発者同士で、より効率的に専用ソフトウェアの開発を行うことができる。
【００６５】
（専用ソフトウェアの開発の効率化）
次に、ある程度上述の開発の工程が進展し、顧客Ｂにソフトウェアの修正依頼を行う場合についてタイミングチャートである図１２を参照して説明する。
まず、ソフトウェア開発者Ａは、上述の工程により専用ソフトウェアを開発し、コンパイル処理が可能である段階まで開発を進展させていることとする。
この上で、ソフトウェア開発者Ａは、メニューバー２０１から「プロジェクトの設定」を選択し、プロジェクトの実行ファイルの出力フォルダを変更する。具体的には、顧客Ｂがアクセス可能であるディレクトリである「共有フォルダ」を指定する。この上で、ソフトウェア開発者Ａは、上述のようなコンパイル処理を行う。
【００６６】
ここで、顧客Ｂが、端末２０−２によりシンクライアント用ＯＳを起動させる。
ソフトウェア開発者Ａは、上述のユーザ間処理部１１０により、顧客Ｂがサーバ１０にアクセスしたことを確認することができる。
この確認を行った後、ソフトウェア開発者Ａは、ユーザ間処理部１１０により、顧客Ｂに「コンパイル処理が終了した」旨のメッセージを送信することができる。
顧客Ｂのユーザは、このメッセージを端末２０−２で受け取ると、「共有フォルダ」を開くことができる。すると、上述の過程により顧客Ｂのホームディレクトリのｄｅｓｋｔｏｐ．ｘｍｌが更新され、共有フォルダの記憶内容が表示される。この表示において、サーバ１０のコンパイル処理部１０２が作成した．ｓｗｆファイルは、ソフトウェア開発者Ａのデスクトップ画面と同様に、アイコンとして表示される。
顧客Ｂはこの共有フォルダ内の．ｓｗｆファイルを実行することで、専用ソフトウェアのチェックを行うことができる。
【００６７】
ここで、顧客Ｂが修正の指示を出す場合、ユーザ間処理部１１０を使用して、ソフトウェア開発者Ａに対して修正依頼を行うことができる。
修正依頼を受けたソフトウェア開発者Ａは、さらにソースコードを修正して、上述のようにコンパイル処理を行う。
この上で、また顧客Ｂは、共有フォルダ内の．ｓｗｆファイルを実行し、専用ソフトウェアのチェックを行うことができる。
ここで、さらに修正依頼がある場合は、またユーザ間処理部１１０を使用して行うことができる。
修正が満足できるものである場合は、ユーザ間処理部１１０を使用してその旨を伝える。
これにより、ソフトウェア開発者Ａは専用ソフトウェアの開発を終了する。さらに、サーバ１０内の図示しない決済手段により、顧客Ｂとの間で開発費の決済を行うことができる。
このように、「リアルタイム」に近い状態でソフトウェアの修正指示と実行のチェックを行うことができるため、ソフトウェアの開発を非常に効率的に行うことができるという効果が得られる。
これにより、企業からの受注や修正の指示のために直接企業を訪問したり、提案書を提示するといった人為的コストを大幅に削減することが可能になる。
【００６８】
また、顧客Ｂは、共有フォルダから自らのデスクトップ画面に、専用ソフトの．ｓｗｆファイルをコピーするだけで、いつでも実行することが可能になる。
すなわち、顧客Ｂは、難しいインストール等の作業がまったく必要ないという効果が得られる。これにより、ソフトウェア開発者Ａが顧客ＢのＰＣ上にソフトウェアをインストールするための出張費等のコストを削減することが可能になる。
さらに、サーバ１０は、バックアップ等が適宜行われるサーバのため、ユーザが専用ソフトウェアを自らのＰＣにインストールする場合に比べて、ＨＤＤの故障といった障害への耐性が高いという効果が得られる。
さらに、サーバ上にすべてのファイルが保存され、サーバ上でコンパイルが行われるため、サーバ上のファイルを更新することで常に同じ開発環境でコンパイル処理を行うことが可能であるため、ソフトウェア開発者間の環境の違いによって生じるバグ（ソフトウェア上の間違い）や不具合を極力減じることが可能になる。
これにより、さらに人為的コストを削減することが可能になる。
【００６９】
また、本発明の実施の形態に係る開発システムは、従来技術１のウィザード形式の固定された固定化されたユーザインターフェイスよりも、開発するプログラムの柔軟性が高い。これにより、より企業のニーズに合わせた専用ソフトウェアの作成をすることが可能になる。
【００７０】
さらに、シンクライアント用ＯＳを用いたデスクトップ画面で開発を行うことにより、ソースコードの流失を防ぐことができるという効果が生じる。これにより、秘匿性の高いソフトウェアの開発において、情報漏洩を極力減じることが可能になるという効果が得られる。
また、実行ファイルに関しても、サーバ１０上にのみ記憶されており、シンクライアント用ＯＳにおいては、この実行ファイルを外部に持ち出す手段がないため、逆アセンブル等による情報漏洩についても、極力減じることが可能になる。
【００７１】
なお、上述の本発明の実施の形態に係る開発システムにおいては、専用のシンクライアント用ＯＳを使用した場合について説明したが、当然のごとく他の汎用のＯＳを使用した端末を用いて開発を行うことが可能である。
この汎用ＯＳとしては、たとえば、Ｗｉｎｄｏｗｓ（登録商標）ＸＰ、ＭａｃＯＳ（登録商標）Ｘ、又はＵＮＩＸ（登録商標）やＬｉｎｕｘ（登録商標）等のＯＳを用いてサーバ１０に接続してもよい。
この汎用のＯＳを端末に使用した場合、端末のＯＳが起動した後に、ユーザであるソフトウェア開発者Ａ又は顧客Ｂは、インターネット・エクスプローラ（登録商標）やＦｉｒｅＦｏｘ（登録商標）等のウェブブラウザを使用してサーバ１０にアクセスする。
次に、ユーザ認証を行ったのちに、サーバ１０に記憶されているデスクトップ画面が例えば一枚のＦｌａｓｈとして表示される。これにより、上述のシンクライアント用ＯＳを使用した場合と同様に開発システムを使用することが可能になる。
この構成は、専用ＯＳを使用しないので手軽であるのが利点である。すなわち、シンクライアント用ＯＳの記憶メディアを持っていない顧客が、手軽に開発中又は開発が終了した専用ソフトウェアをチェックすることが可能になる。
【００７２】
また、上述の共同で専用ソフトウェアを開発する場合は、別のユーザがアクセスして別のユーザ上のホームディレクトリで開発するように説明したが、共通のディレクトリを用意して、そこにソースファイルを記憶することも当然可能である。
さらに開発者同士で共同で専用ソフトウェアを開発する場合、開発者のグループＩＤごとに共通のディレクトリを使用して開発を行うことも当然可能である。
【００７３】
また、上述の実施の形態においては、コンパイル時にソースファイルがサーバに送信され、開発時にソースコードの修正は端末内のみで管理するように説明したが、ユーザが修正したソースコードを反映したソースファイルを、端末側から一定時間ごとに送信することで、自動的にソースファイルをサーバ側に蓄積することも可能である。
さらに、ソースファイルとソースコードについて、サーバに蓄積されたソースファイルに対してソースコードを追加し、その変更部分を端末に送信し、修正が行われた際には、その修正部分のソースコードをサーバのソースファイルに追加するような構成をとることも可能である。
これによって、不意の停電等で端末がシャットダウンした場合でも、従来の開発システムと異なり、ソースファイルが失われることがないため、開発効率を向上させることができる。
【００７４】
さらに、本発明の実施の形態に係る開発システムにおいて開発することができる専用ソフトウェアは、シンクライアントのためのアプリケーションだけではなく、既存の汎用ＯＳや将来は家電等のＦｌａｓｈ（及びＦｌａｓｈに互換スクリプト若しくは同等な機能を備える実行ファイル）の実行環境がある端末すべてを対象とすることができる。すなわち、大規模な汎用アプリケーションから、組み込み向けのソフトウェアまで、スケーラブルに専用ソフトウェアの開発をすることが可能である。
【００７５】
なお、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更して実行することができることは言うまでもない。
【産業上の利用可能性】
【００７６】
本発明は、サーバ端末システムで使用できる統合開発環境の開発システムを提供することができる。これにより、ソフトウェア開発の期間を短縮し、人為的コストを削減することが可能となる。
【図面の簡単な説明】
【００７７】
【図１】本発明の実施の形態に係るシンクライアント・サーバシステムの概念図である。
【図２】本発明の実施の形態に係るサーバ１０の構成を示すブロック図である。
【図３】本発明の実施の形態に係る端末２０−１の構成を示すブロック図である。
【図４】本発明の実施の形態に係るシンクライアント用ＯＳが起動した画面ショットである。
【図５】本発明の実施の形態に係る開発ツールの画面ショットである。
【図６】本発明の実施の形態に係るデザイン＆コード作成ウィンドウ２０５の各タブの画面ショットである。
【図７Ａ】本発明の実施の形態に係る開発システムのプロパティの設定に関する画面ショットである。
【図７Ｂ】本発明の実施の形態に係る開発システムのプロパティ・ウィンドウ２０６の各タブと、設定ウィンドウを示す画面ショットである。
【図７Ｃ】本発明の実施の形態に係る開発システムのパネル管理ウィンドウ２０４の各タブの画面ショットである。
【図８Ａ】本発明の実施の形態に係る開発システムのコンパイル・ウィンドウ２０７に関する画面ショットである。
【図８Ｂ】本発明の実施の形態に係る開発システムのコンパイル・ウィンドウ２０７の各タブの画面ショットである。
【図９】本発明の実施の形態に係る開発システムで開発されたアプリケーションの画面ショットである。
【図１０】本発明の実施の形態に係る開発システムの開発の工程を示すフローチャートである。
【図１１Ａ】本発明の実施の形態に係る開発システムの開発のコンパイル処理を示すフローチャートである。
【図１１Ｂ】本発明の実施の形態に係る開発システムのコンパイル処理に関するタイミングチャートである。
【図１２】本発明の実施の形態に係る開発システムのソフトウェア開発者Ａと顧客Ｂとのメッセージのやり取りに係るタイミングチャートである。
【図１３】本発明の実施の形態に係る開発システムのコンポーネント一覧を示す図である。
【符号の説明】
【００７８】
５  ネットワーク部
１０  サーバ
２０−１〜２０−ｎ  端末
２１  制御部
２２  主記憶部
２３  チップセット
２４  光ディスク装置
２５  固定ディスク装置
２６  ビデオカード
２７、１０７  ネットワーク接続部
４０  キーボード
４５  ポインティングデバイス
５０  表示部
１０１  制御部
１０２  コンパイル処理部
１０３  ユーザ記憶部
１０４  一時ファイル記憶部
１０５  ライブラリ・バイナリデータベース
１０６  ライブラリ・ソースデータベース
１０８  ユーザインターフェイス部
１０９  ソースファイル作成部
１１０  ユーザ間処理部
１１１  バージョン管理部
２００  アイコン
２０１  メニューバー
２０２  ツールバー
２０３  コンポーネント一覧
２０４  パネル管理ウィンドウ
２０５  デザイン＆コード作成ウィンドウ
２０６  プロパティ・ウィンドウ
２０７  コンパイル・ウィンドウ
２０５０、２０５１、２０５２、２０５３、２０６１、２０６２、２０６４、２０６５、２０７１、２０７２、２０７３  タブ
２０６３  セッティングウィンドウ
３００１、３００２  画面ショット
【図１】
2008276690.tif 000003
【図２】
2008276690.tif 000004
【図３】
2008276690.tif 000005
【図４】
2008276690.tif 000006
【図５】
2008276690.tif 000007
【図６】
2008276690.tif 000008
【図７Ａ】
2008276690.tif 000009
【図７Ｂ】
2008276690.tif 000010
【図７Ｃ】
2008276690.tif 000011
【図８Ａ】
2008276690.tif 000012
【図８Ｂ】
2008276690.tif 000013
【図９】
2008276690.tif 000014
【図１０】
2008276690.tif 000015
【図１１Ａ】
2008276690.tif 000016
【図１１Ｂ】
2008276690.tif 000017
【図１２】
2008276690.tif 000018
【図１３】
2008276690.tif 000019