JP5626333B2 - プログラム作成支援装置、プログラム、および、情報システム - Google Patents
プログラム作成支援装置、プログラム、および、情報システム Download PDFInfo
- Publication number
- JP5626333B2 JP5626333B2 JP2012502979A JP2012502979A JP5626333B2 JP 5626333 B2 JP5626333 B2 JP 5626333B2 JP 2012502979 A JP2012502979 A JP 2012502979A JP 2012502979 A JP2012502979 A JP 2012502979A JP 5626333 B2 JP5626333 B2 JP 5626333B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- user
- management table
- individual
- basic
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 47
- 238000003780 insertion Methods 0.000 claims description 36
- 230000037431 insertion Effects 0.000 claims description 36
- 230000015572 biosynthetic process Effects 0.000 claims description 7
- 238000003786 synthesis reaction Methods 0.000 claims description 7
- 230000002194 synthesizing effect Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 description 15
- 238000012545 processing Methods 0.000 description 13
- 238000003672 processing method Methods 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/316—Aspect-oriented programming techniques
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Description
本発明は、プログラム作成支援装置、プログラム、および、情報システムに関し、特に、基本となるアプリケーションプログラムを元に異なるユーザのそれぞれのニーズに合ったプログラムの作成を支援するプログラム作成支援装置、プログラム、および、情報システムに関する。
既存のアプリケーションを変更する作業を支援するシステムの一例が、特許文献1(特開2008−117067号公報)に記載されている。アノテーションとはプログラムの個々の要素を意味付ける情報を指し、コメントとは異なりコンパイル時に消去されることはない。このような構成を有する特許文献1に記載のシステムはつぎのように動作する。すなわち、アノテーション検出部が個別の状況を識別し、入力インタフェース変換部が入力インタフェースを変更し、出力インタフェース変換部が出力インタフェースを変更し、新規モデル生成部が変更したインタフェースを呼び出す設計モデルを生成し、その結果を設計モデル記憶部に格納する。
さらに、既存のアプリケーションを変更する作業を支援するシステムの他の例が、特許文献2(特開2007−213487号公報)に記載されている。特許文献2に記載のシステムは、利用者インタフェース管理部、クラス情報解析部、アドバイス解析部、アスペクト生成部から構成されている。アスペクト指向プログラミングにおいて、アスペクトとは、ログ出力のようなアプリケーションの機能要件とは独立な処理を指す。プログラムの配備または実行時に、アスペクトをアプリケーションプログラムに織り込むことで、アプリケーションの機能要件とは独立な処理を実装する。アスペクトの具体的な処理の定義をアドバイスと呼ぶ。アスペクトを織り込むアプリケーションプログラムの中の位置をポイントカットと呼ぶ。アスペクトの記述には、アドバイスとポイントカットが含まれる。
このような構成を有する特許文献2に記載のシステムはつぎのように動作する。すなわち、クラス情報解析部が、アスペクトに定義するクラスやメソッドの候補を生成する。アドバイス解析部が、アドバイスに含めるデータ構造の候補を生成する。利用者インタフェース管理部がこれらの候補を表示し、利用者が候補を選択する。選択の結果をもとに、アスペクト生成部がアスペクトを生成する。
アスペクト指向プログラミングの技術で、プログラムの配備または実行時に、ユーザ識別子を参照して、ユーザごとに異なるプログラム列へ分岐する多重配備プログラムを用いて、ユーザ個別要件に対応したカスタマイズプログラムを作成することができる。多重配備を行うと、ユーザ識別子を参照してユーザごとに異なるプログラム列へ分岐する論理を表すフレームワークプログラムがアプリケーションプログラムに自動的に挿入される。アプリケーションプログラムの中で明示しなくても、ユーザごとに異なるプログラム列が実行される。
上述した、アスペクト指向プログラミングの技術に従って開発者がアスペクトを作成する方法には、ユーザごとのカスタムプログラム(ユーザごとに異なる実効的なプログラム)を把握しにくいという問題点があった。その理由として、ひとつのアスペクトに多数のユーザ個別要件がまとめて実装されたり、ひとつのユーザの個別要件が複数のアスペクトに分かれて実装されたりするため、開発者がアスペクトとユーザという2つの観点を把握しなければならず煩雑になることが挙げられる。
本発明の目的は、上述した課題であるプログラム開発時の編集作業の煩雑さを解決するプログラム作成支援装置、プログラム、および、情報システムを提供することにある。
本発明のプログラム作成支援装置は、前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを作成するプログラム作成支援装置である。
本発明のプログラム作成支援装置は、
開発対象のアプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
前記テーブル記憶装置を参照し、プログラム開発者に編集対象のプログラムを提示し、前記基本プログラムに、前記ユーザ毎に定義できる前記個別要件を挿入する編集操作を受け付け、受け付けた前記編集操作に従って前記プログラムを編集するプログラム編集手段と、
前記プログラム編集手段が受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する個別要件管理手段と、
前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する合成手段と、を備える。
本発明のプログラム作成支援装置は、
開発対象のアプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
前記テーブル記憶装置を参照し、プログラム開発者に編集対象のプログラムを提示し、前記基本プログラムに、前記ユーザ毎に定義できる前記個別要件を挿入する編集操作を受け付け、受け付けた前記編集操作に従って前記プログラムを編集するプログラム編集手段と、
前記プログラム編集手段が受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する個別要件管理手段と、
前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する合成手段と、を備える。
本発明の情報システムは、
開発対象のアプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
アプリケーションプログラムの前記基本プログラムの複数の前記プログラム列および前記個別要件を実現する前記プログラム列を記憶するプログラム記憶装置と、
前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
前記テーブル記憶装置を参照し、プログラム開発者に編集対象のプログラムを提示し、前記基本プログラムに、前記ユーザ毎に定義できる前記個別要件を挿入する編集操作を受け付け、前記プログラムを編集するプログラム編集手段と、
前記プログラム編集手段が受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する個別要件管理手段と、
前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する合成手段と、
前記合成手段で合成された前記アスペクトを織り込んで、前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを実行するプログラム実行手段と、を備える。
開発対象のアプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
アプリケーションプログラムの前記基本プログラムの複数の前記プログラム列および前記個別要件を実現する前記プログラム列を記憶するプログラム記憶装置と、
前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
前記テーブル記憶装置を参照し、プログラム開発者に編集対象のプログラムを提示し、前記基本プログラムに、前記ユーザ毎に定義できる前記個別要件を挿入する編集操作を受け付け、前記プログラムを編集するプログラム編集手段と、
前記プログラム編集手段が受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する個別要件管理手段と、
前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する合成手段と、
前記合成手段で合成された前記アスペクトを織り込んで、前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを実行するプログラム実行手段と、を備える。
本発明のプログラムは、
コンピュータに、開発対象のアプリケーションプログラムを作成するプログラム作成支援装置を実現させるためのプログラムであって、
前記プログラム作成支援装置が、
前記アプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
プログラム開発者に操作画面を表示して提示する表示部と、
前記プログラム開発者の操作を受け付ける操作部と、を備え、
前記コンピュータに、
前記テーブル記憶装置を参照し、前記プログラム開発者に編集対象のプログラムを編集するための編集画面を前記表示部に表示して提示する手順、
前記プログラム開発者による前記操作部を利用した、前記ユーザ毎に定義できる前記個別要件を前記基本プログラムに挿入する編集操作を受け付ける手順、
受け付けた前記編集操作に従って前記プログラムを編集する手順、
受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する手順、
前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する手順、
前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを実行する手順を実行させるためのものである。
コンピュータに、開発対象のアプリケーションプログラムを作成するプログラム作成支援装置を実現させるためのプログラムであって、
前記プログラム作成支援装置が、
前記アプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
プログラム開発者に操作画面を表示して提示する表示部と、
前記プログラム開発者の操作を受け付ける操作部と、を備え、
前記コンピュータに、
前記テーブル記憶装置を参照し、前記プログラム開発者に編集対象のプログラムを編集するための編集画面を前記表示部に表示して提示する手順、
前記プログラム開発者による前記操作部を利用した、前記ユーザ毎に定義できる前記個別要件を前記基本プログラムに挿入する編集操作を受け付ける手順、
受け付けた前記編集操作に従って前記プログラムを編集する手順、
受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する手順、
前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する手順、
前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを実行する手順を実行させるためのものである。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
また、本発明のデータ処理方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明のデータ処理方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
さらに、本発明のデータ処理方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
本発明によれば、プログラム開発時の編集作業の煩雑さを解決するプログラム作成支援装置、プログラム、および、情報システムが提供される。
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
本実施形態の情報システムは、開発済みのアプリケーションプログラムを利用して、たくさんのテナント企業にオンラインサービスを提供するものである。本実施形態において、ユーザとは、たとえば、テナント企業などであり、開発済みのアプリケーションプログラムを利用して、オンラインサービスを提供する情報システムのユーザを指すものとする。各ユーザは、予め本情報システムの利用について契約を結び、たとえば、ユーザアカウントを取得し、ユーザIDとパスワードを用いて本システムにログインして、サービスを利用することができる。
本実施形態の情報システムは、各ユーザ(テナント企業)に独自の個別要件、たとえば、異なるデータや処理の要件を満たすため、基本プログラムであるアプリケーションプログラムに処理を追加したカスタムプログラムを作成し、実行して、ユーザにサービスを提供するものである。
本実施形態の情報システムにおいて、プログラムの配備または実行時に、アスペクトをアプリケーションプログラムに織り込むことで、アプリケーションの機能要件とは独立な処理を実装する。アスペクトの具体的な処理の定義をアドバイスと呼ぶ。また、アスペクトを織り込むアプリケーションプログラムの中の位置をポイントカットと呼ぶ。アスペクトの記述には、アドバイスとポイントカットが含まれる。
図1は、本発明の実施の形態に係るプログラム作成支援装置100の構成を示す機能ブロック図である。本実施形態のプログラム作成支援装置100は、プログラム開発者がテナント個別要件に対応したテナントごとのカスタムプログラムを容易に開発し、保守できるよう、ユーザ毎の個別要件を基本プログラムとともに実現するアプリケーションプログラムの作成を支援するものである。なお、本実施形態では、プログラム開発者とユーザは別の利用者となっているが、これに限定されない。ユーザ自身がプログラム作成支援装置100を用いて、プログラムをカスタマイズすることもできる。
本発明の実施の形態に係るプログラム作成支援装置100は、開発対象のアプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル112、基本プログラムとは別に、ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル114、およびユーザ毎に個別要件を関連付けて管理するユーザ管理テーブル116を記憶するテーブル記憶部110と、個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶部122と、テーブル記憶部110を参照し、プログラム開発者に編集対象のプログラムを提示し、基本プログラムに、ユーザ毎に定義できる個別要件を挿入する編集操作を受け付け、受け付けた編集操作に従ってプログラムを編集するプログラム編集部130と、プログラム編集部130が受け付けた個別要件を対象のユーザ毎に、基本プログラムの対象のプログラム列に関連付けて、ユーザ管理テーブル116、基本プログラム管理テーブル112、および個別要件管理テーブル114に登録し管理する個別要件管理部128と、テーブル記憶部110およびひな型記憶部122を参照し、ユーザ管理テーブル116、基本プログラム管理テーブル112、および個別要件管理テーブル114に登録された定義に従って、ひな型を用いてアスペクトを合成するアスペクト合成部140と、を備える。
本実施形態において、プログラム作成支援装置100は、たとえば、図示しないCPU(Central Processing Unit)やメモリ、ハードディスク、および通信装置を備え、キーボードやマウス等の入力装置やディスプレイやプリンタ等の出力装置と接続されるサーバコンピュータやパーソナルコンピュータ、またはそれらに相当する装置により実現することができる。そして、CPUが、ハードディスクに記憶されるプログラムをメモリに読み出して実行することにより、上記各ユニットの各機能を実現することができる。
なお、以下の各図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
なお、以下の各図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
本実施形態のプログラム作成支援装置100によって作成されたユーザ(テナント企業)ごとにカスタマイズされたアプリケーションプログラムは、図2に示す情報システム1によって実行され、各ユーザのユーザ端末20にサービスが提供される。
情報システムの各構成要素は、任意のコンピュータのCPU、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶ユニット、ネットワーク接続用インタフェースを中心にハードウェアとソフトウェアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各図は、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
本実施形態において、情報システム1は、提供プログラム記憶装置10と、プログラム提供サーバ12と、プログラム作成支援装置100と、複数のテナント企業のユーザ端末20(ユーザ端末U1、ユーザ端末U2、...、ユーザ端末Un、(nは自然数))と、を備え、これらはネットワーク3を介して接続されている。
提供プログラム記憶装置10は、カスタムプログラムを実行できるように、基本プログラムおよび個別要件を条件するプログラム列、およびプログラム作成支援装置100のテーブル記憶部110に登録された基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116がコピーされて記憶されている。そして、プログラム提供サーバ12が、基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116に記憶されている情報に基づいて、基本プログラムにアスペクトを織り込んで実行し、各テナント企業のユーザ端末20にサービスを提供することができる。または、プログラム作成支援装置100によって開発されたユーザごとの要求に沿ってカスタマイズされたカスタムプログラムを提供プログラム記憶装置10に記憶し、ユーザの要求に応じてプログラム提供サーバ12が実行してもよい。
プログラム提供サーバ12に、プログラム作成支援装置100のテーブル記憶部110と同様な記憶部を備えてもよいし、テーブル記憶部110をプログラム作成支援装置100およびプログラム提供サーバ12から共有できる構成としてもよい。また、提供プログラム記憶装置10と開発プログラム記憶部120は、同じ記憶装置に含まれてもよい。
また、プログラム作成支援装置100は、必ずしもネットワーク3に接続される必要はなく、ネットワーク3から独立した構成でもよい。その場合、プログラム作成支援装置100で作成されたカスタマイズプログラムは、記録媒体を介して、提供プログラム記憶装置10に格納すればよい。また、本実施形態では、プログラム提供サーバ12は、テナント企業のユーザ端末20にオンラインでアプリケーションプログラムを利用したサービスを提供する構成としているが、これに限定されない。プログラム提供サーバ12は、基本プログラムを元に、各ユーザの要求に沿ってカスタマイズされたプログラムを作成し、各テナント企業のユーザ端末20にオフラインまたはオンラインで提供した後、各ユーザ端末20が、オフラインでも実行可能とするシステムであってもよい。
図2に示すように、本発明の実施の形態に係る情報システム1は、図1のプログラム作成支援装置100と、アプリケーションプログラムの基本プログラムの複数のプログラム列および個別要件を実現するプログラム列を記憶する開発プログラム記憶部120と、プログラム作成支援装置100のアスペクト合成部140で合成されたアスペクトを織り込んで、ユーザ毎の個別要件を基本プログラムとともに実現するアプリケーションプログラムを実行するプログラム実行部(プログラム提供サーバ12またはプログラム作成支援装置100)と、を備える。
図1に戻り、本実施形態のプログラム作成支援装置100は、テーブル記憶部110と、テーブル管理部118と、開発プログラム記憶部120と、ひな型記憶部122と、個別要件管理部128と、プログラム編集部130と、操作部132と、表示部134と、アスペクト合成部140と、アスペクト記憶部142と、を備える。
操作部132は、プログラム作成支援装置100を実現するコンピュータに接続されたキーボードやマウス等の入力装置を含み、プログラム開発者が利用した操作を受け付ける。表示部134は、各種情報を提示してプログラム開発者が参照できるように、プログラム作成支援装置100を実現するコンピュータに接続されたディスプレイ等に各種画面を表示する。
開発プログラム記憶部120は、開発対象のアプリケーションプログラムの基本プログラム、および各ユーザ固有の個別要件を実現するプログラム列を含むプログラムなどが記憶される。
テーブル記憶部110は、基本プログラム管理テーブル112と、個別要件管理テーブル114と、ユーザ管理テーブル116と、を記憶する。なお、本実施形態において、開発プログラム記憶部120は、プログラム作成支援装置100に含まれる構成としているが、必ずしもプログラム作成支援装置100に含まれる必要はなく、プログラム作成支援装置100の外部のプログラム記憶部から、プログラム記憶部に記憶されているプログラムを読み込める構成であればよい。
テーブル管理部118は、テーブル記憶部110に記憶される基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116を管理する。ここで、管理とは、これらの管理テーブルをテーブル記憶部110に永続的に保持するための機構を備え、テーブル記憶部110にアクセスと、各管理テーブルの作成、登録、更新、および参照ができることである。なお、各管理テーブルは、表示部134に各管理テーブルの閲覧画面を表示させて、プログラム開発者に提示することができる。
また、テーブル管理部118は、本実施形態のプログラム作成支援装置100における開発対象のアプリケーションプログラムに係る管理情報が、テーブル記憶部110に存在するか否かを判別し、存在しない場合は、開発対象のアプリケーションプログラムにしたがって、必要なテーブルを新規に作成し、テーブル記憶部110にアプリケーションプログラムに対応付けて記憶する。
基本プログラム管理テーブル112は、本実施形態のプログラム作成支援装置100における開発対象のアプリケーションプログラムの基本プログラムの管理情報を記憶している。本実施形態の基本プログラムは、図9の基本プログラムリスト300に示されるように、プログラム列Aからプログラム列Iの9つのプログラム列を含む。ここで、基本プログラムは、Java(登録商標)やC++といったプログラミング言語で記述されたプログラム列が複数並んだものである。
上述したように、テーブル管理部118は、開発対象のアプリケーションプログラムの基本プログラム管理テーブル112がテーブル記憶部110に存在するか否かを判別し、存在しない場合、開発対象のアプリケーションプログラムに基づいて、基本プログラム管理テーブル112を新規に作成し、テーブル記憶部110に記憶する。
本実施形態の基本プログラム管理テーブル112は、図3に示すように、開発プログラム記憶部120に記憶されている開発対象のアプリケーションプログラムの基本プログラムに含まれる複数のプログラム列の行番号と、対応するプログラム列を関連付けて記憶する。基本プログラム管理テーブル112には、基本プログラムのすべてのプログラム列に関する情報がそれぞれ保持される。なお、本実施形態では、基本プログラムの実体、すなわち、プログラムコードは、開発プログラム記憶部120に記憶されているものとする。
また、本実施形態の基本プログラムにおいて、連続する2つのプログラム列の間には、空白の行(空行)があるとみなし、テーブル管理部118は、プログラム列の間の空白の行の位置も指し示せるよう行番号を付けて基本プログラム管理テーブル112を作成する。本実施形態では、基本プログラム管理テーブル112は、各プログラム列を各行番号に対応付けて、1列に順に並べ、各プログラム列の間に空白の行を挿入し、各行に行番号を振り、行番号をプログラム列の位置識別子として用いて管理する。
たとえば、プログラム列Aとプログラム列Bの間の空白の行には、行番号♯2が振られ、プログラム列Aの行番号は♯1、プログラム列Bの行番号は♯3となる。
たとえば、プログラム列Aとプログラム列Bの間の空白の行には、行番号♯2が振られ、プログラム列Aの行番号は♯1、プログラム列Bの行番号は♯3となる。
図3のように、基本プログラムの中の位置を指定する位置識別子として行番号を用いる行単位の管理がもっともベーシックであるが、他の例では、複数行にわたるプログラム列をひとつのブロックと定義し、ブロック単位で、ブロック番号と対応するプログラム列の組で管理することもできる。この場合も、連続する2つのブロックの間には、空白のブロック(空ブロック)があるとみなし、テーブル管理部118は、ブロックの間の位置も指し示せるようブロック番号を付けて基本プログラム管理テーブル112を作成することもできる。
個別要件管理テーブル114は、図4に示すように、個別要件の識別情報(個別要件名)と、個別要件を表すプログラム列の組を関連付けて少なくとも一つ保存する。たとえば、個別要件10はプログラム列A10とプログラム列B10などを含むことが、管理情報として記憶されている。なお、本実施形態では、各プログラム列の実体、すなわち、プログラムコードは、開発プログラム記憶部120に記憶されているものとする。
なお、他の実施形態において、基本プログラムのプログラム列および個別要件のプログラム列は、基本プログラム管理テーブル112および個別要件管理テーブル114にそれぞれプログラム列の実体、すなわち、プログラムコード自体も格納してしまい、開発プログラム記憶部120は不要とする構成とすることもできる。
ユーザ管理テーブル116は、図5に示すように、ユーザ(テナント)ごとに、ユーザ固有の個別要件を関連付けて記憶する。たとえば、ユーザ管理テーブル116は、ユーザ(テナント)の識別情報(ユーザID(TID))と、個別要件を実行する基本プログラム中の行番号と、その行番号で実行する必要があるユーザ固有の個別要件の識別情報(個別要件名)の組を複数保存する。たとえば、ユーザIDがTID0001のユーザ固有の個別要件10と個別要件11は、それぞれ行番号♯6と行番号♯11に関連付けて記憶されている。
ひな型記憶部122は、後述するアスペクト合成部140がアスペクトを合成する際に使用するひな型を少なくとも一つ格納する。図14および図15に示すように、本実施形態のプログラム作成支援装置100のひな型記憶部122は、第1アスペクトひな型400と、第2アスペクトひな型420と、をそれぞれひな型として記憶する。なお、これらのひな型は、基本的には予め準備されたものを用いるが、後述するプログラム編集部130で、必要に応じて、新規作成、登録、削除および更新などができてもよい。
図14において、第1アスペクトひな型400は、基本プログラム管理テーブル112で管理されている基本プログラムの空行に対応する行番号の位置に、個別要件を挿入した場合に用いられる。ひな型は一種のテンプレートで、図中、「***」で示された挿入部に具体的な値や文字列のプログラムコードを挿入することで、後述するアスペクト合成部140によりアスペクトを合成することができるようになっている。
「Aspect ***」の挿入部402は、アスペクト固有の識別子であるアスペクト名(アスペクトID)を表し、他のアスペクト名と重複しなければ任意の文字列でよく、たとえば、通し番号などでよい。「Before ***」の挿入部404は、個別要件の挿入が指定された基本プログラム中の空行に対応する行番号の次の行番号に対応するプログラム列が記載される。ここでは、たとえば、空白の行の♯6に個別要件が挿入された場合、挿入部404には、その次の行の行番号♯7に対応する「プログラム列D」が記載されることとなる。
その後に続く、アドバイスには、ユーザID(ユーザ固有の識別子)の取得を表すプログラム列と、その取得したユーザIDごとに実行すべき異なる個別要件を表すプログラム列が記載される。
すなわち、ユーザIDごとに実行すべき異なる個別要件を実行するために、条件分岐の「if(TID==***)」の挿入部406は、ユーザID(TID)を表し、ユーザ管理テーブル116に記載されているユーザIDのなかで、「Before ***」の挿入部404のところで述べた空行に対応する行番号と同一の行番号が関連付けて記憶されているものを記載する。
そして、ユーザID(ユーザ固有の識別子)ごとに実行すべき異なる個別要件を表すプログラム列である「do ***」の挿入部408には、「if(TID==***)」の挿入部406のところで述べた行番号に対応する個別要件を表すプログラム列を記載する。
ひな型の中で記述されるプログラム列は、ユーザIDの取得のプログラム列とユーザIDごとにどの個別要件を実行すべきか振り分ける分岐のプログラム列である。
ひな型の中で記述されるプログラム列は、ユーザIDの取得のプログラム列とユーザIDごとにどの個別要件を実行すべきか振り分ける分岐のプログラム列である。
たとえば、図5のユーザ管理テーブル116では、個別要件が挿入された行番号♯6を含むテナントは、ユーザIDが「TID0001」と「TID0002」の2つある。TID0001のユーザIDを挿入部406に記載し、対応する個別要件名、ここでは「個別要件10」を、対応する「do ***」の挿入部408に記載する。さらに、TID0002のユーザIDを「else if(TID==***)」の挿入部410に記載し、対応する個別要件名、ここでは、「個別要件20」を、対応する「do ***」の挿入部412に記載することとなる。
図15において、第2アスペクトひな型420は、基本プログラム管理テーブル112で管理されている基本プログラムの空行ではないプログラム列に対応する行番号の位置に、個別要件を挿入した場合に用いられる。「Around ***」の挿入部424には、空行ではないプログラム列を指定する。他の挿入部の扱いは、図14のひな型と同じである。たとえば、空行ではないプログラム列Fに個別要件が挿入された場合、挿入部424には、その行に対応する「プログラム列F」が記載されることとなる。
図1に戻り、個別要件管理部128は、ユーザごとに定義できるユーザ固有の個別要件を実現するプログラム列を管理する。プログラム列自体は、後述するプログラム編集部130により編集でき、個別要件単独で行ってもよいし、ユーザのアプリケーションプログラム作成時に行ってもよい。個別要件は、開発プログラム記憶部120に個別要件の識別情報(個別要件名など)を付して記憶することができる。個別要件管理部128によって新たな個別要件を登録することができ、新たな個別要件が登録された時、個別要件管理部128は、基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116を更新するようテーブル管理部118に通知する。
プログラム編集部130は、基本プログラムをもとに開発者がプログラムを編集するエディタの機能を提供する。エディタの機能は一般的なものであり、プログラム作成支援装置100を実現するコンピュータのディスプレイなどの表示部134に後述する図10〜図13に示すプログラムエディタ画面を表示させて、プログラム開発者に編集対象のプログラムを提示し、プログラム開発者によるキーボードとマウスなどの入力装置を用いた操作を操作部132が受け付けて、プログラム列の作成、修正、または削除などを行うことができる。
プログラム編集部130は、編集の作業と並行して、基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116の作成および更新を行うようテーブル管理部118や個別要件管理部128に通知する。本実施形態において、プログラム編集部130は、たとえば、開発対象のユーザ(テナント)を指定し、その対象のユーザ専用の利用者画面として編集画面を表示させることができる。または、ユーザを指定する代わりに、プログラム作成支援装置100を利用するために、ユーザ毎に設定されたユーザ情報、たとえば、ユーザIDとパスワードにより、システムにログインすることで、認証されたユーザ専用の利用者画面を利用することを可能としてもよい。
アスペクト合成部140は、テーブル管理部118が管理する基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116をもとに、ひな型記憶部122に記憶されているひな型に従って、ユーザごとの個別要件を実装したアスペクトを合成する。本実施形態では、アスペクト合成部140によって合成されたアスペクトは、図2のプログラム提供サーバ12によって、基本プログラムに織り込まれ、実行され、ネットワーク3を介してユーザのユーザ端末20にサービスが提供されることとなる。あるいは、プログラム作成支援装置100によって合成されたアスペクトと、基本プログラムは、ユーザごとにカスタムプログラムとして図2の提供プログラム記憶装置10に格納され、ユーザの要求に応じて、プログラム提供サーバ12が、ユーザごとにカスタムプログラムを実行して、ユーザ端末20にサービスを提供することもできる。
アスペクト合成部140で合成されたアスペクトは、アスペクト記憶部142に記憶することができる。または、アスペクトは、開発プログラム記憶部120に記憶されてもよい。
本実施形態のプログラムは、コンピュータに、開発対象のアプリケーションプログラムを作成するプログラム作成支援装置を実現させるためのプログラムであって、プログラム作成支援装置100を実現させるためのコンピュータに、テーブル記憶装置を参照し、プログラム開発者に編集対象のプログラムを編集するための編集画面(図10のプログラムエディタ画面210)を表示部134(図1)に表示して提示する手順、プログラム開発者による操作部132(図1)を利用した、ユーザ毎に定義できる個別要件を基本プログラムに挿入する編集操作を受け付ける手順、受け付けた編集操作に従ってプログラムを編集する手順、受け付けた個別要件を対象のユーザ毎に、基本プログラムの対象のプログラム列に関連付けて、ユーザ管理テーブル116、基本プログラム管理テーブル112、および個別要件管理テーブル114に登録し管理する手順、テーブル記憶部110およびひな型記憶部122を参照し、ユーザ管理テーブル116、基本プログラム管理テーブル112、および個別要件管理テーブル114に登録された定義に従って、ひな型を用いてアスペクトを合成する手順、ユーザ毎の個別要件を基本プログラムとともに実現するアプリケーションプログラムを実行する手順、を実行させるように記述されている。
本実施形態のコンピュータプログラムは、コンピュータで読み取り可能な記憶媒体に記録されてもよい。記録媒体は特に限定されず、様々な形態のものが考えられる。また、プログラムは、記録媒体からコンピュータのメモリにロードされてもよいし、ネットワークを通じてコンピュータにダウンロードされ、メモリにロードされてもよい。
上述のような構成において、本実施の形態のデータ処理装置100によるデータ処理方法を以下に説明する。図6は、本実施形態のプログラム作成支援装置100の動作の一例を示すフローチャートである。
本実施形態のデータ処理方法は、プログラム作成支援装置100(図1)が、テーブル記憶部110を参照し、プログラム開発者に編集対象のプログラムを編集するための編集画面(図10のプログラムエディタ画面210)を表示部134(図1)に表示して提示し、プログラム開発者による操作部132(図1)を利用した、ユーザ毎に定義できる個別要件を基本プログラムに挿入する編集操作を受け付け、受け付けた編集操作に従ってプログラムを編集し、受け付けた個別要件を対象のユーザ毎に、基本プログラムの対象のプログラム列に関連付けて、ユーザ管理テーブル116(図1)、基本プログラム管理テーブル112(図1)、および個別要件管理テーブル114(図1)に登録し、テーブル記憶部110(図1)およびひな型記憶部122(図1)を参照し、ユーザ管理テーブル116、基本プログラム管理テーブル112、および個別要件管理テーブル114に登録された定義に従って、ひな型を用いてアスペクトを合成し、ユーザ毎の個別要件を基本プログラムとともに実現するアプリケーションプログラムを実行する。
以下、本実施形態のプログラム作成支援装置100の動作について、図1乃至図6を用いて説明する。
具体的には、図6に示すように、本実施形態のプログラム作成支援装置100(図1)において、まず、プログラム編集部130(図1)が、開発プログラム記憶部120(図1)から基本プログラムを読み込む(ステップS101)。プログラム編集部130が、読み込んだ基本プログラムに該当する基本プログラム管理テーブル112(図1)、個別要件管理テーブル114(図1)、およびユーザ管理テーブル116(図1)がテーブル記憶部110(図1)にそれぞれ登録されているかどうか、テーブル管理部118(図1)に問い合わせる。テーブル管理部118は、テーブル記憶部110を参照し、各テーブルが存在するか否かを判別する。
具体的には、図6に示すように、本実施形態のプログラム作成支援装置100(図1)において、まず、プログラム編集部130(図1)が、開発プログラム記憶部120(図1)から基本プログラムを読み込む(ステップS101)。プログラム編集部130が、読み込んだ基本プログラムに該当する基本プログラム管理テーブル112(図1)、個別要件管理テーブル114(図1)、およびユーザ管理テーブル116(図1)がテーブル記憶部110(図1)にそれぞれ登録されているかどうか、テーブル管理部118(図1)に問い合わせる。テーブル管理部118は、テーブル記憶部110を参照し、各テーブルが存在するか否かを判別する。
テーブルが登録されていない場合には(ステップS103のNO)、テーブル管理部118は、読み込んだ基本プログラムのための基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116をそれぞれ新規に作成し、テーブル記憶部110に格納する(ステップS121)。そして、ステップS105に進む。一方、テーブルが登録されている場合には(ステップS103のYES)、プログラム編集部130が、テーブル記憶部110を参照し、基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116をテーブル記憶部110から読み出す(ステップS105)。
次に、プログラム作成支援装置100の表示部134(図1)には、プログラム編集部130により、図10のプログラムエディタ画面210が表示される。なお、本実施形態において、ステップS101またはステップS107の前に、図8のユーザ指定画面200がプログラム作成支援装置100の表示部134に表示されてもよい。図8に示すように、ユーザ指定画面200は、ユーザID指定欄202と、OKボタン204と、を含む。プログラム開発者に操作部132を利用して、編集対象のプログラムのユーザ、すなわち、テナントのIDをユーザID指定欄202に入力または、プルダウンメニューなどで選択させる。OKボタン204の操作に呼応して、ユーザID指定欄202で指定されたユーザIDを受け付ける。
この図8のユーザ指定画面200で指定されたユーザのカスタムプログラムを編集するための画面の一例が、図10のプログラムエディタ画面210である。プログラムエディタ画面210は、図9の基本プログラムリスト300が編集対象として表示される。基本プログラムの各プログラム列には、行番号212が振られている。図10に示すように、連続するプログラム列の間には、それぞれ空白の行があるとみなし、空白行にも行番号212が振られている。
プログラムエディタ画面210のユーザID表示欄214には、上述した図8のユーザ指定画面200で指定された編集対象のユーザ(テナント)の識別情報、図10では、「TID0001」が表示されている。プログラムエディタ画面210には、カーソル216位置が反転表示されている。また、プログラム開発者は、操作部132を利用して、ポインタ218を移動させて編集位置を指定することもできる。このようにして、プログラム開発者は、キーボード等を用いてカーソル216で示された文字やマウスポインタ218で示された位置を編集することができる。このように、プログラム開発者は、ユーザ毎に個別要件を編集および管理できる。
図6に戻り、プログラム編集部130が、プログラム開発者がプログラムエディタ画面210で操作部132を利用して作成したユーザごとの個別要件を記述するプログラム列を受け付ける(ステップS107)。そして、プログラム編集部130によって受け付けられたプログラム列は、個別要件管理部128により、開発プログラム記憶部120に登録されるとともに、個別要件管理テーブル114およびユーザ管理テーブル116を更新するようにテーブル管理部118に通知される。
すなわち、プログラム編集部130は、基本プログラムの複数のプログラム列をプログラム開発者に提示する提示部(図10のプログラムエディタ画面210)と、対象のユーザの個別要件を挿入する挿入位置として、提示部に提示された基本プログラムの複数のプログラム列の位置をプログラム開発者に指定させて受け付け、個別要件管理部128は、ユーザ毎に、プログラム編集部130が受け付けた挿入位置と個別要件とを関連付けて、ユーザ管理テーブル116および個別要件管理テーブル114に登録し管理するよう118に通知する。
この構成により、プログラム開発者は、提示された基本プログラムの複数のプログラム列を参照しながらユーザ毎の個別要件を挿入してプログラムを編集できることとなる。
この構成により、プログラム開発者は、提示された基本プログラムの複数のプログラム列を参照しながらユーザ毎の個別要件を挿入してプログラムを編集できることとなる。
そして、テーブル管理部118が、個別要件管理部128からの通知を受けて、テーブル記憶部110の個別要件管理テーブル114およびユーザ管理テーブル116を更新する(ステップS109)。
そして、アスペクト合成部140が、ひな型記憶部122とテーブル記憶部110を参照し、ひな型と、基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116を読み出す(ステップS111)。そして、アスペクト合成部140が、これらの情報をもとに、ポイントカットごとに該当するアスペクトの記述を合成する(ステップS113)。合成されたアスペクトは、開発プログラム記憶部120に格納される。アスペクト合成処理の詳細については、後述する。
そして、プログラム実行部であるプログラム提供サーバ12(図2)が、基本プログラムと合成したアスペクトを読み込み、アスペクト指向プログラミングの手法に従ってアスペクトを基本プログラムに織り込みながらプログラムを実行する(ステップS115)。これにより、ユーザごとに異なる個別要件を満たすアプリケーションプログラムを利用したサービスを、各ユーザのユーザ端末20に提供できることとなる。
以下、プログラム作成支援装置100におけるユーザ毎の個別要件の編集処理について、プログラム開発者の編集操作に沿って、具体例を示しながら説明する。以下、図1、図5、図10〜図13を用いて説明する。
たとえば、図10に示すように、プログラムエディタ画面210において、基本プログラムのプログラム列Cとプログラム列Dの間の6行目の空白行の位置にプログラム開発者は操作部132(図1)を利用してポインタ218を移動し、選択する。すると、図11に示すように、個別要件編集欄220が展開され、TID0001のユーザの個別要件を記述するプログラム列を編集することができるようになる。なお、図11の例では、プログラムエディタ画面210に個別要件編集欄220が展開されるように構成されているが、これに限定されるものではなく、別のウインドウを開いて編集できるようにしてもよい。
たとえば、図10に示すように、プログラムエディタ画面210において、基本プログラムのプログラム列Cとプログラム列Dの間の6行目の空白行の位置にプログラム開発者は操作部132(図1)を利用してポインタ218を移動し、選択する。すると、図11に示すように、個別要件編集欄220が展開され、TID0001のユーザの個別要件を記述するプログラム列を編集することができるようになる。なお、図11の例では、プログラムエディタ画面210に個別要件編集欄220が展開されるように構成されているが、これに限定されるものではなく、別のウインドウを開いて編集できるようにしてもよい。
そして、プログラム開発者は、操作部132を利用して個別要件編集欄220に、TID0001のユーザの個別要件10に対応するプログラム列を記述していく。図11では、「個別要件10」と記載されているが、この個別要件10は、図4の個別要件管理テーブル114に示されるように、複数のプログラム列、たとえば、A10、B10、...といった内容とすることができる。
図11に戻り、さらに、6行目の個別要件10の編集を終了した後、プログラム開発者は、さらに、11行目に相当するプログラム列Fの位置に操作部132を利用してポインタ218を移動し、選択する。すると、図12に示すように、11行目の位置に個別要件編集欄220が展開され、そこに、TID0001のユーザの個別要件11に対応するプログラム列をさらに記述していくことができる。この個別要件11は、図4の個別要件管理テーブル114に示すように、複数のプログラム列、たとえば、A11、B11、...といった内容とすることができる。図12では、先に編集した個別要件10が行番号♯6に挿入され、編集済み個別要件欄222としてプログラムエディタ画面210上に提示されている。
次に、プログラム開発者は、TID0001のユーザのプログラムの編集を終了し、TID0002のユーザのプログラムの編集を行うとする。プログラム編集部130は、開発プログラム記憶部120から基本プログラムを読み込み、図13に示すように、TID0002のユーザ用のプログラムエディタ画面210が表示部134に表示される。TID0001のユーザのときと同様に、プログラムを編集することができる。
ここでは、たとえば、プログラムエディタ画面210において、基本プログラムのプログラム列Cとプログラム列Dの間の6行目の空白行の位置にプログラム開発者は操作部132を利用してポインタ218を移動し、選択する。すると、個別要件編集欄220が展開され、TID0002のユーザの個別要件を記述するプログラム列を編集することができるようになる。そして、プログラム開発者は、操作部132を利用して個別要件編集欄220に、TID0002のユーザの個別要件20に対応するプログラム列を記述していく。この個別要件20は、図4の個別要件管理テーブル114に示されるように、複数のプログラム列、たとえば、A20、B20、...といった内容とすることができる。
プログラム開発者によるTID0002のユーザのプログラムの編集も終了したとき、プログラム編集部130は、これらのプログラムの編集内容を受け付ける。個別要件管理部128は、受け付けた各個別要件を記述するプログラム列を開発プログラム記憶部120に記憶するとともに、テーブル管理部118および個別要件管理部128に、テーブル記憶部110の個別要件管理テーブル114およびユーザ管理テーブル116を更新するよう通知する。なお、プログラム編集部130がテーブル管理部118および個別要件管理部128に各テーブルの更新を指示するタイミングは、これに限定されない。たとえば、途中でプログラム開発者の指示を受け付け更新してもよいし、定期的に更新してもよいし、ユーザ毎の定義が終了したときでもよい。
テーブル記憶部110の個別要件管理テーブル114は、図4に示すように更新され、テーブル記憶部110のユーザ管理テーブル116は、図5に示すように更新される。
なお、本実施形態では、個別要件をプログラムエディタ画面210上で、新規に入力する例について説明したが、これに限定されず、たとえば、プログラムエディタ画面210で、既にテーブル記憶部110の個別要件管理テーブル114に登録されている個別要件を読み出し、プログラム開発者に提示し、基本プログラムの指定した行の位置に、選択した個別要件を挿入することもできる。また、既に登録されている個別要件を記述するプログラム列をプログラムエディタ画面210の個別要件編集欄220上で、変更することもできる。
そして、プログラムの編集が終了した後、アスペクト合成部140が、テーブル記憶部110から基本プログラム管理テーブル112、個別要件管理テーブル114、およびユーザ管理テーブル116を読み出すとともに、ひな型記憶部122からひな型を読み出す。本実施形態では、上述した図14および図15の2種類のひな型が予め準備されており、これらが読み出される。
以下、図7を用いて、アスペクト合成処理の詳細について、具体例を示しながら説明する。以下、図1、図3〜図5、図7、図14〜図17を用いて説明する。このフローチャートに示す処理は、図6のステップS113の詳細処理である。
アスペクト合成部140(図1)が、以下の処理を行う。図5のユーザ管理テーブル116を参照し、ユーザ管理テーブル116から、6行目と11行目に挿入すべき個別要件があることを検出する(ステップS201)。そこで、まず、6行目に織り込むアスペクトを合成する。以下、ステップS201で検出された各行について、ステップS205〜ステップS225を繰り返す(ステップS203)。なお、すべての行について処理が終了したら(ステップS227)、本処理を終了する。
そして、図3の基本プログラム管理テーブル112を参照し、個別要件が挿入されている行が空白行か否かを判別する(ステップS205)。ここで、6行目は空白行であるため(ステップS205のYES)、空行に対応した図14の第1アスペクトひな型400を選択して用いる(ステップS207)。
第1アスペクトひな型400において、「Aspect ***」の挿入部402は、アスペクト名(アスペクトID)、たとえば、「XXX」が記載される(ステップS211)。ここで、第1アスペクトひな型400を用いているので(ステップS213のYES)、個別要件の挿入が指定された基本プログラム中の空行に対応する行番号の次の行番号に対応するプログラム列、ここでは、空白の行の♯6の次の行の行番号♯7に対応する「プログラム列D」が取得され、「Before ***」の挿入部404に記載される(ステップS215)。
そして、ユーザ管理テーブル116を参照し、該当行、ここでは行番号♯6に個別要件が記載されているユーザID(TID)と個別要件の組を取得する(ステップS219)。この例では、TID0001と個別要件10、TID0002と個別要件20の2つの組が取得される。
そして、各ユーザIDごとに、以下のステップS223の処理を繰り返す(ステップS221)。ステップS219で取得したすべてのユーザIDについて処理が終了するまで繰り返し(ステップS225)、すべてのユーザIDについて終了したら、ステップS227に進む。
ステップS223では、条件分岐の「if(TID==***)」の挿入部406に、ステップS219で取得したユーザIDであるTIDの0001が記載される。そして、「do ***」の挿入部408には、ユーザIDがTID0001の6行目に対応する個別要件10を表すプログラム列(A10、B10、...といった内容)が記載される。
ステップS223では、条件分岐の「if(TID==***)」の挿入部406に、ステップS219で取得したユーザIDであるTIDの0001が記載される。そして、「do ***」の挿入部408には、ユーザIDがTID0001の6行目に対応する個別要件10を表すプログラム列(A10、B10、...といった内容)が記載される。
次に、次のユーザIDについて、ステップS223の処理を繰り返す。すなわち、条件分岐の「else if(TID==***)」の挿入部410に、ステップS219で取得したユーザIDであるTIDの0002が記載される。そして、「do ***」の挿入部412には、ユーザIDがTID0002の6行目に対応する個別要件20を表すプログラム列(A20、B20、...といった内容)が記載される。ここまでの処理で、第1アスペクトひな型400を用いたアスペクトの合成が終了する。この結果得られたアスペクト440を図16に示す。
次に、ステップS201で検出された行のうち、まだ処理が済んでいない行番号♯11について、処理を繰り返す。すなわち、ステップS205に戻り、ユーザ管理テーブル116の11行目に織り込むアスペクトを合成する。基本プログラム管理テーブル112を参照し、個別要件が挿入されている行が空白行か否かを判別し、11行目は空白行でないため(ステップS205のNO)、図15の第2アスペクトひな型420を選択して用いる(ステップS209)。
第2アスペクトひな型420において、「Aspect ***」の挿入部402は、アスペクト名(アスペクトID)、たとえば、「YYY」が記載される(ステップS211)。ここで、第2アスペクトひな型420を用いているので(ステップS213のNO)、個別要件の挿入が指定された基本プログラム中のプログラム列、ここでは、「プログラム列F」が取得され、「Around ***」の挿入部424に記載される(ステップS217)。
そして、ユーザ管理テーブル116を参照し、該当行、ここでは行番号♯11に個別要件が記載されているユーザID(TID)と個別要件の組を取得する(ステップS219)。この例では、TID0001と個別要件11の1組が取得される。そして、条件分岐の「if(TID==***)」の挿入部406に、ステップS219で取得したユーザIDであるTIDの0001が記載される。そして、「do ***」の挿入部408には、ユーザIDがTID0001の11行目に対応する個別要件11を表すプログラム列(A11、B11、...といった内容)が記載される(ステップS223)。
ここでは、ユーザIDはTID0001のみなので、ステップS227に進み、ここまでの処理で、第2アスペクトひな型420を用いたアスペクトの合成が終了する。この結果得られたアスペクト460を図17に示す。ここで、ステップS201で検出されたすべての行について処理が終了したので、本処理を終了する。
このようにして各ユーザのプログラムに織り込む各アスペクトが合成され、アスペクト記憶部142に記憶される。
このようにして各ユーザのプログラムに織り込む各アスペクトが合成され、アスペクト記憶部142に記憶される。
次に、これらのプログラムを利用したサービスを各ユーザに提供する場合について、説明する。図1および図2に示すように、プログラム作成支援装置100で開発されたプログラムは、開発プログラム記憶部120およびアスペクト記憶部142から提供プログラム記憶装置10にコピーされ、格納される。プログラム提供サーバ12が提供プログラム記憶装置10にアクセスし、基本プログラムとプログラム作成支援装置100によって合成された2つのアスペクトを読み込み、アスペクト指向プログラミングの手法に従ってアスペクトを基本プログラムに織り込みながらプログラムを実行する。
プログラム提供サーバ12が、TID0001のユーザ向けに実行する実効的なプログラム310の例を図18に示す。このように、プログラム提供サーバ12は、プログラム列Dの前で個別要件10(符号312)を実行し、プログラム列Fの代わりに個別要件11(符号314)を実行することとなる。また、プログラム提供サーバ12が、TID0002のユーザ向けに実行する実効的なプログラム330の例を図19に示す。このように、プログラム提供サーバ12は、プログラム列Dの前で個別要件20(符号332)を実行することとなる。
以上説明したように、本実施形態のプログラム作成支援装置100によれば、ユーザ毎に設けられた編集画面で基本プログラムに個別要件を挿入するだけで、自動的に対応するアスペクトを合成できるので、プログラム開発者がアスペクトを意識することなく、ユーザ(テナント)を単位として編集作業ができるようになる。そのため、プログラム開発者がユーザ個別要件に対応したユーザ(テナント)ごとのカスタムプログラムを容易に開発し保守できるようになり、ユーザ個別要件に対応する際の作業効率やプログラム開発者の負担を改善することができる。
これにより、プログラムの実装、実行の際のアスペクトを単位としたプログラムの管理において、プログラム開発者がプログラムの開発やバグ解析を行う際にはユーザ(テナント)を単位として編集作業が行えるようになり、開発者の視点での編集、解析に適したプログラムの作成を支援することができることとなる。
すなわち、ひとつのアスペクトに多数のテナント個別要件がまとめて実装されたり、ひとつのテナントの個別要件が複数のアスペクトに分かれて実装されたりすると、プログラム開発者がアスペクトとユーザ(テナント)という2つの観点を把握しなければならず煩雑になり、プログラム開発者が、ユーザ(テナント)ごとに実行される実効的なプログラムを把握しにくいとう問題点を解決できる。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
以上、本発明の構成について説明したが、本発明は、これに限られず様々な態様を含む。以下はその例示である。
(i) 本発明のプログラム作成支援装置は、開発対象のアプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
前記テーブル記憶装置を参照し、プログラム開発者に編集対象のプログラムを提示し、前記基本プログラムに、前記ユーザ毎に定義できる前記個別要件を挿入する編集操作を受け付け、受け付けた前記編集操作に従って前記プログラムを編集するプログラム編集手段と、
前記プログラム編集手段が受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する個別要件管理手段と、
前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する合成手段と、を備える前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを作成し、
前記基本プログラム管理テーブルは、前記基本プログラム中の複数の前記プログラム列の位置を示す位置識別子と、対応するプログラム列をそれぞれ関連付けて記憶し、
さらに、
前記位置識別子は、前記基本プログラムの各プログラム列に振られた行番号であるプログラム作成支援装置。
(ii) 上記(i)に記載のプログラム作成支援装置において、
前記位置識別子は、前記基本プログラムの複数のプログラム列を表すブロックの番号であるプログラム作成支援装置。
(iii) 上記(ii)に記載のプログラム作成支援装置において、
前記プログラム列は、連続する2つのプログラム列の間に空ブロック列が定義され、前記ブロックの番号は、前記空ブロック列を含めた番号であるプログラム作成支援装置。
(iv) 本発明のプログラム作成支援装置のデータ処理方法は、
開発対象のアプリケーションプログラムを作成するプログラム作成支援装置のデータ処理方法であって、
前記プログラム作成支援装置が、
前記アプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
プログラム開発者に操作画面を表示して提示する表示部と、
前記プログラム開発者の操作を受け付ける操作部と、を備え、
前記プログラム作成支援装置が、
前記テーブル記憶装置を参照し、前記プログラム開発者に編集対象のプログラムを編集するための編集画面を前記表示部に表示して提示し、
前記プログラム開発者による前記操作部を利用した、前記ユーザ毎に定義できる前記個別要件を前記基本プログラムに挿入する編集操作を受け付け、
受け付けた前記編集操作に従って前記プログラムを編集し、
受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し、
前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成し、
前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを実行するプログラム作成支援装置のデータ処理方法である。
(i) 本発明のプログラム作成支援装置は、開発対象のアプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
前記テーブル記憶装置を参照し、プログラム開発者に編集対象のプログラムを提示し、前記基本プログラムに、前記ユーザ毎に定義できる前記個別要件を挿入する編集操作を受け付け、受け付けた前記編集操作に従って前記プログラムを編集するプログラム編集手段と、
前記プログラム編集手段が受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する個別要件管理手段と、
前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する合成手段と、を備える前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを作成し、
前記基本プログラム管理テーブルは、前記基本プログラム中の複数の前記プログラム列の位置を示す位置識別子と、対応するプログラム列をそれぞれ関連付けて記憶し、
さらに、
前記位置識別子は、前記基本プログラムの各プログラム列に振られた行番号であるプログラム作成支援装置。
(ii) 上記(i)に記載のプログラム作成支援装置において、
前記位置識別子は、前記基本プログラムの複数のプログラム列を表すブロックの番号であるプログラム作成支援装置。
(iii) 上記(ii)に記載のプログラム作成支援装置において、
前記プログラム列は、連続する2つのプログラム列の間に空ブロック列が定義され、前記ブロックの番号は、前記空ブロック列を含めた番号であるプログラム作成支援装置。
(iv) 本発明のプログラム作成支援装置のデータ処理方法は、
開発対象のアプリケーションプログラムを作成するプログラム作成支援装置のデータ処理方法であって、
前記プログラム作成支援装置が、
前記アプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
プログラム開発者に操作画面を表示して提示する表示部と、
前記プログラム開発者の操作を受け付ける操作部と、を備え、
前記プログラム作成支援装置が、
前記テーブル記憶装置を参照し、前記プログラム開発者に編集対象のプログラムを編集するための編集画面を前記表示部に表示して提示し、
前記プログラム開発者による前記操作部を利用した、前記ユーザ毎に定義できる前記個別要件を前記基本プログラムに挿入する編集操作を受け付け、
受け付けた前記編集操作に従って前記プログラムを編集し、
受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し、
前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成し、
前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを実行するプログラム作成支援装置のデータ処理方法である。
この出願は、2010年3月5日に出願された日本出願特願2010−049333号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
Claims (10)
- 開発対象のアプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
前記テーブル記憶装置を参照し、プログラム開発者に編集対象のプログラムを提示し、前記基本プログラムに、前記ユーザ毎に定義できる前記個別要件を挿入する編集操作を受け付け、受け付けた前記編集操作に従って前記プログラムを編集するプログラム編集手段と、
前記プログラム編集手段が受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する個別要件管理手段と、
前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する合成手段と、を備える前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを作成するプログラム作成支援装置。 - 請求項1に記載のプログラム作成支援装置において、
前記プログラム編集手段は、
前記基本プログラムの複数の前記プログラム列を前記プログラム開発者に提示する提示部と、
対象の前記ユーザの前記個別要件を挿入する挿入位置として、前記提示部に提示された前記基本プログラムの複数の前記プログラム列の位置を前記プログラム開発者に指定させて受け付け、
前記個別要件管理手段は、前記ユーザ毎に、前記プログラム編集手段が受け付けた前記挿入位置と前記個別要件とを関連付けて、前記ユーザ管理テーブルおよび前記個別要件管理テーブルに登録し管理するプログラム作成支援装置。 - 請求項1または2に記載のプログラム作成支援装置において、
前記個別要件管理テーブルは、前記個別要件の識別情報と、前記個別要件を実現する少なくとも1つの前記プログラム列を関連付けて記憶するプログラム作成支援装置。 - 請求項1乃至3いずれかに記載のプログラム作成支援装置において、
前記ユーザ管理テーブルは、前記ユーザごとに、前記個別要件の識別情報と、前記個別要件を挿入する前記基本プログラム中の位置識別子の組を関連付けて記憶するプログラム作成支援装置。 - 請求項1乃至4いずれかに記載のプログラム作成支援装置において、
前記基本プログラム管理テーブルは、前記基本プログラム中の複数の前記プログラム列の位置を示す位置識別子と、対応するプログラム列をそれぞれ関連付けて記憶するプログラム作成支援装置。 - 請求項5に記載のプログラム作成支援装置において、
前記基本プログラム管理テーブルは、前記基本プログラムにおいて、連続する2つの前記プログラム列の間に空白があるとみなし、前記空白の位置を含む前記位置識別子と、対応する前記プログラム列をそれぞれ関連付けて記憶するプログラム作成支援装置。 - 請求項6に記載のプログラム作成支援装置において、
前記ひな型記憶装置は、前記個別要件を挿入する挿入位置に対応する前記位置識別子が指す空白の位置の次のプログラム列の前に挿入するアスペクトを合成するための第1のひな型を記憶し、
前記合成手段は、前記基本プログラム管理テーブルを参照し、前記個別要件を挿入する前記挿入位置が、前記基本プログラム中の空白の位置か否かを判別し、前記空白の位置が指定された場合には、前記第1のひな型を用いて前記挿入位置に対応する前記位置識別子が指す前記空白の位置の次の前記プログラム列の前に挿入するアスペクトを合成するプログラム作成支援装置。 - 請求項6または7に記載のプログラム作成支援装置において、
前記ひな型記憶装置は、前記個別要件を挿入する挿入位置に対応する前記位置識別子が指す位置のプログラム列を上書きして挿入するアスペクトを合成するための第2のひな型を記憶し、
前記合成手段は、前記基本プログラム管理テーブルを参照し、前記個別要件を挿入する前記挿入位置が、前記基本プログラム中の空白の位置か否かを判別し、前記空白の位置を指さない場合には、前記第2のひな型を用いて前記挿入位置に対応する前記位置識別子が指す位置の前記プログラム列を上書きして挿入するアスペクトを合成するプログラム作成支援装置。 - 開発対象のアプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
アプリケーションプログラムの前記基本プログラムの複数の前記プログラム列および前記個別要件を実現する前記プログラム列を記憶するプログラム記憶装置と、
前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
前記テーブル記憶装置を参照し、プログラム開発者に編集対象のプログラムを提示し、前記基本プログラムに、前記ユーザ毎に定義できる前記個別要件を挿入する編集操作を受け付け、前記プログラムを編集するプログラム編集手段と、
前記プログラム編集手段が受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する個別要件管理手段と、
前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する合成手段と、
前記合成手段で合成された前記アスペクトを織り込んで、前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを実行するプログラム実行手段と、を備える情報システム。 - コンピュータに、開発対象のアプリケーションプログラムを作成するプログラム作成支援装置を実現させるためのプログラムであって、
前記プログラム作成支援装置が、
前記アプリケーションプログラムのユーザに共通な基本プログラムを構成する複数のプログラム列を管理する基本プログラム管理テーブル、前記基本プログラムとは別に、前記ユーザ毎に定義できる個別要件を実現するプログラム列を管理する個別要件管理テーブル、および前記ユーザ毎に前記個別要件を関連付けて管理するユーザ管理テーブルを記憶するテーブル記憶装置と、
前記個別要件を実現するアスペクトを生成するためのひな型を記憶するひな型記憶装置と、
プログラム開発者に操作画面を表示して提示する表示部と、
前記プログラム開発者の操作を受け付ける操作部と、を備え、
前記コンピュータに、
前記テーブル記憶装置を参照し、前記プログラム開発者に編集対象のプログラムを編集するための編集画面を前記表示部に表示して提示する手順、
前記プログラム開発者による前記操作部を利用した、前記ユーザ毎に定義できる前記個別要件を前記基本プログラムに挿入する編集操作を受け付ける手順、
受け付けた前記編集操作に従って前記プログラムを編集する手順、
受け付けた前記個別要件を対象のユーザ毎に、前記基本プログラムの対象のプログラム列に関連付けて、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに登録し管理する手順、
前記テーブル記憶装置および前記ひな型記憶装置を参照し、前記ユーザ管理テーブル、前記基本プログラム管理テーブル、および前記個別要件管理テーブルに従って、前記ひな型を用いて前記アスペクトを合成する手順、
前記ユーザ毎の前記個別要件を前記基本プログラムとともに実現する前記アプリケーションプログラムを実行する手順を実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012502979A JP5626333B2 (ja) | 2010-03-05 | 2011-02-07 | プログラム作成支援装置、プログラム、および、情報システム |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010049333 | 2010-03-05 | ||
JP2010049333 | 2010-03-05 | ||
PCT/JP2011/000672 WO2011108193A1 (ja) | 2010-03-05 | 2011-02-07 | プログラム作成支援装置、プログラム、および、情報システム |
JP2012502979A JP5626333B2 (ja) | 2010-03-05 | 2011-02-07 | プログラム作成支援装置、プログラム、および、情報システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2011108193A1 JPWO2011108193A1 (ja) | 2013-06-20 |
JP5626333B2 true JP5626333B2 (ja) | 2014-11-19 |
Family
ID=44541864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012502979A Expired - Fee Related JP5626333B2 (ja) | 2010-03-05 | 2011-02-07 | プログラム作成支援装置、プログラム、および、情報システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US9116708B2 (ja) |
JP (1) | JP5626333B2 (ja) |
WO (1) | WO2011108193A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170072026A (ko) * | 2015-12-16 | 2017-06-26 | (주) 지플러그 | 게임 서버의 운용 에스펙트 호출 방법 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106133575B (zh) * | 2014-03-25 | 2019-05-14 | 富士胶片株式会社 | 摄像装置及对焦控制方法 |
JP6379679B2 (ja) * | 2014-05-29 | 2018-08-29 | 富士通株式会社 | 処理プログラム、情報処理装置及び情報処理方法 |
KR20160075085A (ko) * | 2014-12-19 | 2016-06-29 | 삼성전기주식회사 | 렌즈 조립체 및 이를 포함하는 카메라 모듈 |
JP6602109B2 (ja) * | 2015-08-28 | 2019-11-06 | キヤノン株式会社 | 制御装置、撮像装置、制御方法、プログラム、および、記憶媒体 |
JP7334617B2 (ja) | 2019-12-27 | 2023-08-29 | オムロン株式会社 | プログラム実行装置、プログラム実行方法およびプログラム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002157117A (ja) * | 2000-11-21 | 2002-05-31 | Mitsubishi Electric Corp | フレームワーク開発支援装置及びフレームワーク開発支援方法 |
JP2002202885A (ja) * | 2000-01-25 | 2002-07-19 | Fujitsu Ltd | データ構造解決ユニットを用いたプログラム自動生成方式 |
JP2004362442A (ja) * | 2003-06-06 | 2004-12-24 | Nippon Steel Corp | プログラム自動生成装置、プログラム自動生成方法、コンピュータプログラム及びコンピュータ読み取り可能な記録媒体 |
JP2009512014A (ja) * | 2005-10-06 | 2009-03-19 | マイクロソフト コーポレーション | オブジェクト合成に対する拡張可能メカニズム |
JP2009282777A (ja) * | 2008-05-22 | 2009-12-03 | Hitachi Information Systems Ltd | アプリケーションプログラムの提供システム及びアプリケーションプログラム |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6038395A (en) * | 1994-12-16 | 2000-03-14 | International Business Machines Corporation | System and method for implementing proxy objects in a visual application builder framework |
US6134552A (en) * | 1997-10-07 | 2000-10-17 | Sap Aktiengesellschaft | Knowledge provider with logical hyperlinks |
WO2000070531A2 (en) * | 1999-05-17 | 2000-11-23 | The Foxboro Company | Methods and apparatus for control configuration |
US6681383B1 (en) * | 2000-04-04 | 2004-01-20 | Sosy, Inc. | Automatic software production system |
US7174504B2 (en) * | 2001-11-09 | 2007-02-06 | Wuxi Evermore Software, Inc. | Integrated data processing system with links |
US20030172368A1 (en) * | 2001-12-26 | 2003-09-11 | Elizabeth Alumbaugh | System and method for autonomously generating heterogeneous data source interoperability bridges based on semantic modeling derived from self adapting ontology |
US8136094B2 (en) * | 2004-01-07 | 2012-03-13 | International Business Machines Corporation | Relationship management for data modeling in an integrated development environment |
US20070106982A1 (en) * | 2005-11-04 | 2007-05-10 | International Business Machines Corporation | Method, apparatus, and computer program product for model based traceability |
JP2007213487A (ja) | 2006-02-13 | 2007-08-23 | Hitachi Software Eng Co Ltd | アスペクト生成方法及び装置 |
CA2648471A1 (en) * | 2006-04-27 | 2007-11-08 | International Business Machines Corporation | A method and system for generating application data editors |
JP4629646B2 (ja) | 2006-11-01 | 2011-02-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アプリケーションプログラムを生成するための装置、方法、及びプログラム |
US8327351B2 (en) * | 2009-04-30 | 2012-12-04 | Sap Ag | Application modification framework |
US9164738B2 (en) * | 2009-07-01 | 2015-10-20 | International Business Machines Corporation | Database mapping of models for reporting tools in model driven development |
US8671124B2 (en) * | 2009-07-24 | 2014-03-11 | Ensequence, Inc. | Method for application authoring employing a pre-certified master application template |
-
2011
- 2011-02-07 WO PCT/JP2011/000672 patent/WO2011108193A1/ja active Application Filing
- 2011-02-07 JP JP2012502979A patent/JP5626333B2/ja not_active Expired - Fee Related
- 2011-02-07 US US13/582,794 patent/US9116708B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002202885A (ja) * | 2000-01-25 | 2002-07-19 | Fujitsu Ltd | データ構造解決ユニットを用いたプログラム自動生成方式 |
JP2002157117A (ja) * | 2000-11-21 | 2002-05-31 | Mitsubishi Electric Corp | フレームワーク開発支援装置及びフレームワーク開発支援方法 |
JP2004362442A (ja) * | 2003-06-06 | 2004-12-24 | Nippon Steel Corp | プログラム自動生成装置、プログラム自動生成方法、コンピュータプログラム及びコンピュータ読み取り可能な記録媒体 |
JP2009512014A (ja) * | 2005-10-06 | 2009-03-19 | マイクロソフト コーポレーション | オブジェクト合成に対する拡張可能メカニズム |
JP2009282777A (ja) * | 2008-05-22 | 2009-12-03 | Hitachi Information Systems Ltd | アプリケーションプログラムの提供システム及びアプリケーションプログラム |
Non-Patent Citations (2)
Title |
---|
CSNG200800821006; 金井勇人、岸 知二: 'モデル検査のためのアスペクト指向メカニズム切り替え手法の提案' 情報処理学会研究報告 Vol.2008,No.93, 20080919, pp.49〜56, 社団法人情報処理学会 * |
JPN6011015121; 金井勇人、岸 知二: 'モデル検査のためのアスペクト指向メカニズム切り替え手法の提案' 情報処理学会研究報告 Vol.2008,No.93, 20080919, pp.49〜56, 社団法人情報処理学会 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170072026A (ko) * | 2015-12-16 | 2017-06-26 | (주) 지플러그 | 게임 서버의 운용 에스펙트 호출 방법 |
KR101866826B1 (ko) | 2015-12-16 | 2018-07-23 | 유환수 | 게임 서버의 운용 에스펙트 호출 방법 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2011108193A1 (ja) | 2013-06-20 |
US20130007697A1 (en) | 2013-01-03 |
WO2011108193A1 (ja) | 2011-09-09 |
US9116708B2 (en) | 2015-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5626333B2 (ja) | プログラム作成支援装置、プログラム、および、情報システム | |
US8910113B2 (en) | Methods and systems for visual code refactoring | |
CN103778178B (zh) | 用于重新配置虚拟机的快照的方法和系统 | |
JP5350428B2 (ja) | 自動プログラム生成装置、方法及びコンピュータプログラム | |
US9524279B2 (en) | Help document animated visualization | |
US20070245321A1 (en) | Computer games localisation | |
US20060005132A1 (en) | Smart UI recording and playback framework | |
CN106775744B (zh) | 一种生成静态库的方法和装置 | |
US20080126925A1 (en) | Using a backend simulator to test and develop xforms templates before linking the xforms templates to backend data processing systems | |
JP2009020705A (ja) | Guiアプリケーション開発支援装置及び開発支援方法 | |
Halliday | Vue. js 2 Design Patterns and Best Practices: Build enterprise-ready, modular Vue. js applications with Vuex and Nuxt | |
Gassner | Flash Builder 4 and Flex 4 Bible | |
CN116974558B (zh) | 一种营销计费活动h5页面开发平台及开发方法 | |
Yuen | Mastering Windows Presentation Foundation: Build responsive UIs for desktop applications with WPF | |
Hindrikes et al. | Xamarin. Forms Projects: Build multiplatform mobile apps and a game from scratch using C# and Visual Studio 2019 | |
JP2005135369A (ja) | 処理装置、応用プログラム、リソース再生方法、応用プログラム生成方法及びリソースデータ群のデータ構造 | |
CN113296759A (zh) | 用户界面处理方法、用户界面处理系统、设备及存储介质 | |
JP4925514B2 (ja) | 内外イベントドリブン方式によるプログラム実行制御方法、プログラム、実行制御装置および記録媒体 | |
JP7280475B2 (ja) | 情報処理装置及びその制御方法、プログラム | |
Yuen | Mastering Windows Presentation Foundation | |
JP2006338399A (ja) | プログラム開発装置、プログラム開発ソフトウェア及び記憶媒体 | |
Sun | Practical application development with apprun | |
CN112596705B (zh) | 项目版本控制方法、装置、电子设备及存储介质 | |
Ashcraft | Learn WinUI 3.0: Leverage the power of WinUI, the future of native Windows application development | |
Freeman | Applied ASP. NET 4 in context |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140115 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140902 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140915 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5626333 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |