JP2008234271A - アスペクト設定方法および装置並びにコンピュータプログラム - Google Patents

アスペクト設定方法および装置並びにコンピュータプログラム Download PDF

Info

Publication number
JP2008234271A
JP2008234271A JP2007072356A JP2007072356A JP2008234271A JP 2008234271 A JP2008234271 A JP 2008234271A JP 2007072356 A JP2007072356 A JP 2007072356A JP 2007072356 A JP2007072356 A JP 2007072356A JP 2008234271 A JP2008234271 A JP 2008234271A
Authority
JP
Japan
Prior art keywords
sequence diagram
setting
advice
classes
analyzing
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.)
Granted
Application number
JP2007072356A
Other languages
English (en)
Other versions
JP4974228B2 (ja
Inventor
Yoshiyuki Kawamura
嘉之 河村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2007072356A priority Critical patent/JP4974228B2/ja
Publication of JP2008234271A publication Critical patent/JP2008234271A/ja
Application granted granted Critical
Publication of JP4974228B2 publication Critical patent/JP4974228B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 どのメソッドに設定するかを正しく指定することが難しいアスペクトを直感的に設定できるインターフェースを持つアスペクト設定方法及び装置を提供すること。
【解決手段】 メソッド及びアスペクトの呼び出し関係のシーケンス図から構成されるユーザインターフェースを表示し、その表示画面上でアスペクトをプログラム実行の流れにあわせてドラグアンドドロップ操作でアスペクトを設定する。
【選択図】 図12

Description

本発明は、アスペクト指向によるプログラムを構成するクラスに織り込むアスペクトを設定するアスペクト設定方法および装置並びにコンピュータプログラムに関する。
現在、アプリケーション開発において新しい概念である、アスペクト指向プログラミングが注目されている。
アスペクト指向とは、プログラムの構成要素となる各モジュール間で共通に使われる機能を切り出し、それを後から自動的にプログラムに織り込んでいくものである。アスペクトの例として、ログやトランザクション管理などが挙げられる。また、アスペクト指向は、オブジェクト指向と相反する概念ではないため、この2つを組み合わせて利用することが可能である。
ここで、ログを例に用いてアスペクト指向プログラミングについて説明する。
ログを出力する際、従来においては、ログコンポーネントを呼び出すコードをプログラム中から呼び出すことによって、ログを出力してきた。このような場合、開発者が自分が担当しているモジュールにログコンポーネントを呼び出すコードを記述することが一般的であるが、個々の開発者のスキルによってログ出力の度合いが異なるため、システム全体で均質な情報量のログを出力することは難しかった。
アスペクト指向プログラミングを用いることにより、ログを出力する機能をアスペクトとして切り出し、これをシステム全体のプログラムに対して自動的に織り込むことができるため、システム全体を通して均質な情報量のログを出力するようにすることが可能となる。
このようにアスペクト指向プログラミングを用いることにより、モジュール間で横断的に使用する機能を切り出して、設定によってあとから埋め込むことが可能となる。
アスペクトは、そのアスペクトが行う処理を記述したアドバイスと、そのアドバイスをどこに埋め込むかを指定するポイントカットから構成されている。
アドバイスには、埋め込む先の処理の前に実行されるbeforeアドバイス、後に実行されるafterアドバイス、その処理の前後を包み込むように実行されるaroundアドバイスの3種類がある。
また、メソッドに対するアドバイスとフィールドアクセスに対するアドバイスがある。ポイントカットでは、あるクラスのどのメソッドを呼び出したか、どのフィールドにアクセスしたか、あるクラスをインスタンス化したかなどをポイントとして切り出して指定することができる。
ポイントカットは、クラス名やメソッド名などを直接指定する以外にも、ワイルドカード(*)を用いることによって一度に複数のポイントを指定することもできる。
アスペクト指向プログラミングを実現するために、アスペクトをどのように定義するかを規定し、アドバイスをプログラムに織り込むことが必要となる。このような機能を実現する環境をアスペクト指向環境と呼ぶ。
現在、オブジェクト指向言語であるJava(登録商標)と組み合わせて使えるアスペクト指向環境がいくつか利用可能である。ここでは、そのひとつであるAspectJのアスペクト表記方法を用いるものとする。
AspectJでは、アスペクトの定義を以下のような形式で表記する。

package sample;

public aspect Debug {
pointcut callHello(): execution(* sample.Hello.sayHello(..));

Object around() : callHello() {
Object t = thisJoinPoint.getTarget();
System.out.println("target is " + t.getClass().getName());
Object result = proceed();
System.out.println("returning " + result);
return result;
}
}
アスペクトの定義は、pointcut句によるポイントカットの指定とアドバイスの実装から構成される。pointcut句では、メソッドに対しては、execution宣言により実行のポイントを指定したり、within宣言によってあるパッケージに含まれるクラスのすべてのメソッドというような指定をしたりすることができる。それぞれの宣言の引数には、メソッドのシグネチャを指定する。
メソッドのシグネチャは、「<戻り値> <クラス名>.<メソッド名>(引数)」で構成される。ここには、*(ワイルドカード)を用いることもでき、say*のように指定することにより、sayHello、sayGoodbyのようにsayで始まる文字列にマッチさせることもできる。
メソッドの引数は、受け付ける引数の型を記述する以外にも「..」を指定することにより任意の引数を指定することもできる。
また、pointcut句では、フィールドに対しては、get宣言により読み込みアクセス、set宣言により書き込みアクセスのポイントを指定できる。それぞれの宣言の引数には、フィールド名を指定する。
フィールド名は、「<クラス名>.<フィールド名>」で構成される。ここにもメソッドと同様にワイルドカードを指定することができる。
複数のアスペクトが存在する場合は、以下のようなdeclare precedence文を用いてその実行順を定義することができる。以下の例では、同じメソッドに2つのアスペクトが付与されたときは、Profie、Debugの順番で実行されることとなる。

package sample;

public aspect Precedence {
declare precedence : Profile, Debug ;
}
AspectJの開発環境として、AJDTというツールがある。これを用いることにより、あるアスペクトがどのJavaクラスに適用されるかといった情報を表示することができる。また、アスペクトがどのようにクラスに適用されたかをシステム全体を通して見ることができるビューアも用意されている。
なお、本発明に関連する公知技術文献としては下記の特許文献がある。
特開2005-258944号
アスペクト指向プログラミングでは、プログラム中に散在する共通の処理を抜き出して、アスペクトとしてまとめる。そのため、アスペクトは、プログラム本体と切り離されて定義されることが普通である。そのため、プログラム本体とアスペクトの関連を把握するのはあまり簡単ではない。
また、アスペクトをプログラムのどの箇所に設定するかは、特別な設定式を用いる。この設定式には、ワイルドカードなどを用いてプログラム中の複数のポイントにアスペクトを設定することが可能であり、これを用いることによって効率良くアスペクトの設定を行うことができる。しかし、これを用いた場合、そのアスペクトが、自分の想定している箇所に正しく設定されているかを確認することはなかなか難しい。
つまり、アスペクトは、その影響範囲を認識することは、あまり簡単ではないといえる。
本発明の目的は、アスペクト指向プログラミングを用いたアプリケーション開発において、プログラム内の自分が想定した場所にアスペクトをより簡単に設定できるアスペクト設定方法および装置並びにプログラムを提供することである。
上記目的を達成するために、本発明に係るアスペクト設定方法は、プログラムを構成する複数のクラスに織り込むアスペクトを設定する方法であって、
クラス情報解析手段により前記複数のクラスのそれぞれに含まれるメソッドの呼び出し関係を解析する第1のステップと、アスペクト解析手段により前記メソッドに織り込まれたアスペクトの呼び出し関係を解析する第2のステップと、シーケンス図作成手段によりクラス相互間におけるメソッドとアスペクトの呼び出し関係を示すシーケンス図を作成し、当該シーケンス図をアスペクト設定用のユーザインターフェースとして画面表示する第3のステップと、画面表示されたシーケンス図上において所望のメソッド相互間またはアスペクト相互間に織り込む新規アスペクトのアドバイスをユーザによるドラッグ&ドロップ操作によって受付け、受け付けたアドバイスのデータから新規アスペクトをアスペクト生成手段により生成し、生成した新規アスペクトを前記クラス情報解析手段、アスペクト解析手段が解析した既存のクラスに織り込む第4のステップを備えることを特徴とする。
また、前記第3のステップにおいて、前記シーケンス図上に、ドラッグ&ドロップ操作対象となるアドバイスを列挙したツールボックスを表示することを特徴とする。
また、前記第3のステップにおいて、前記シーケンス図上に、ドロップ操作可能な位置をガイドラインで表示することを特徴とする。
また、アドバイスをドロップした位置の情報を元に、設定可能なポイントカット表記の候補をダイアログ上に表示することを特徴とする。
本発明に係るアスペクト設定装置は、プログラムを構成する複数のクラスに織り込むアスペクトを設定する装置であって、
前記複数のクラスのそれぞれに含まれるメソッドの呼び出し関係を解析するクラス情報解析手段と、前記メソッドに織り込まれたアスペクトの呼び出し関係を解析するアスペクト解析手段と、クラス相互間におけるメソッドとアスペクトの呼び出し関係を示すシーケンス図を作成し、当該シーケンス図をアスペクト設定用のユーザインターフェースとして画面表示するシーケンス図作成手段と、画面表示されたシーケンス図上において所望のメソッド相互間またはアスペクト相互間に織り込む新規アスペクトのアドバイスをユーザによるドラッグ&ドロップ操作によって受付け、受け付けたアドバイスのデータから新規アスペクトを生成し、生成した新規アスペクトを前記クラス情報解析手段、アスペクト解析手段が解析した既存のクラスに織り込むアスペクト生成手段とを備えることを特徴とする。
また、前記シーケンス図作成手段が、前記シーケンス図上に、ドラッグ&ドロップ操作対象となるアドバイスを列挙したツールボックスを表示することを特徴とする。
また、前記シーケンス図作成手段が、前記シーケンス図上に、ドロップ操作可能な位置をガイドラインで表示することを特徴とする。
また、前記シーケンス図作成手段が、アドバイスをドロップした位置の情報を元に、設定可能なポイントカット表記の候補をダイアログ上に表示することを特徴とする。
本発明に係るアスペクト設定用のコンピュータプログラムは、プログラムを構成する複数のクラスに織り込むアスペクトを設定するコンピュータプログラムであって、
前記複数のクラスのそれぞれに含まれるメソッドの呼び出し関係を解析する第1のステップと、前記メソッドに織り込まれたアスペクトの呼び出し関係を解析する第2のステップと、クラス相互間におけるメソッドとアスペクトの呼び出し関係を示すシーケンス図を作成し、当該シーケンス図をアスペクト設定用のユーザインターフェースとして画面表示する第3のステップと、画面表示されたシーケンス図上において所望のメソッド相互間またはアスペクト相互間に織り込む新規アスペクトのアドバイスをユーザによるドラッグ&ドロップ操作によって受付け、受け付けたアドバイスのデータから新規アスペクトをアスペクト生成手段により生成し、生成した新規アスペクトを既存のクラスに織り込む第4のステップとをコンピュータに実行させることを特徴とする。
本発明のアスペクト設定装置によれば、次のような効果がある。
(1)グラフィカルなユーザインターフェースを用いてアスペクトを設定することにより、どのアスペクトをどのメソッドに設定するかを視覚的に確認しながら作業することができる。
(2)メソッドの呼び出しの流れとアスペクトの実行の流れが同時に表示されたシーケンス図上でアスペクトを設定することによって、どのような順序でアスペクトおよびメソッドが呼び出されるかを正しく把握しながら設定することができる。
以下、本発明を適用したアスペクト設定装置の一実施の形態について図面を用いて詳細に説明する。
図1は、本発明のアスペクト設定装置を実現するコンピュータ装置のハードウェア構成例を示したブロック図である。
図1に示すコンピュータ(101)は、中央演算装置(CPU)(102)とメインメモリ(103)を備え、マザーボード(104)により接続されている。また、マザーボード(104)に接続された磁気ディスク装置(105)とグラフィックカード(106)を備え、グラフィックカード(106)は外部のディスプレイ装置(107)と接続されている。入力装置として、マウス(108)とキーボード(109)を備え、これらはマザーボード(104)に接続されている。
図2は、図1のハードウェア構成において、アスペクトの設定機能を機能的に示したシステム構成図であり、本発明のアスペクト設定装置(201)は、クラス情報解析部(202)、クラス蓄積部(203)、アスペクト解析部(204)、アスペクト生成部(205)、アスペクト蓄積部(206)、ユーザインターフェース管理部(207)で構成される。
ユーザインターフェース管理部(207)は、ディスプレイ装置(208)と入力装置(209)と接続されている。
クラス情報解析部(202)は、クラス蓄積部(203)およびユーザインターフェース管理部(207)と接続されている。
アスペクト解析部(204)は、アスペクト蓄積部(206)とユーザインターフェース管理部(207)と接続されている。
アスペクト生成部(205)は、アスペクト蓄積部(206)とユーザインターフェース管理部(207)と接続されている。
クラス蓄積部(203)、アスペクト蓄積部(206)は、磁気ディスク装置(105)上で実現される。入力装置(209)は、図1のマウス(108)およびキーボード(109)に相当する。
本実施形態においては、クラス情報解析部(202)によりプログラムを構成する複数のクラスのそれぞれに含まれるメソッドの呼び出し関係を解析し、またアスペクト解析部(204)により前記メソッドに織り込まれたアスペクトの呼び出し関係を解析し、ユーザインターフェース管理部(207)によりクラス相互間におけるメソッドとアスペクトの呼び出し関係を示すシーケンス図を作成し、当該シーケンス図をアスペクト設定用のユーザインターフェースとして画面表示する。そして、画面表示されたシーケンス図上において所望のメソッド相互間またはアスペクト相互間に織り込む新規アスペクトのアドバイスをユーザによるドラッグ&ドロップ操作によって受付け、受け付けたアドバイスのデータから新規アスペクトをアスペクト生成部(205)により生成し、生成した新規アスペクトをクラス情報解析部(202)、アスペクト解析部(204)が解析した既存のクラスに織り込む。
図3は、クラスのメソッド情報のデータフォーマットを示す図である。
1つのメソッド情報は、ID(301)、クラス名(302)、メソッド名(303)、引数(304)、戻り値(305)で構成されている。
クラスにあるメソッドの1つに対して1つのエントリが対応する。同じ名前のメソッドでも引数の型が異なれば別のエントリとなる。
図4は、メソッドの呼び出し関係情報のデータフォーマットを示す図である。
1つのフィールド情報は、呼び出し元ID(401)、シーケンス番号(402)、呼び出し先ID(403)で構成されている。
呼び出し元ID、呼び出し先IDは、図3におけるクラスのメソッド情報のデータフォーマットのIDフィールドの値が入る。
シーケンス番号は、メソッドが呼び出された順番につけられる番号で、小さな番号ほど先に呼び出されたことを示す。
図5は、アスペクト情報のデータフォーマットを示す図である。
1つのアスペクト情報はID(501)、名前(502)で構成されている。名前(502)はそのアスペクトを特定できる任意の文字列となる。
図6は、アドバイス情報のデータフォーマットを示す図である。
1つのアドバイス情報は、ID(601)、アスペクト(602)、名前(603)、ターゲット(604)、タイプ(605)、実装(606)で構成されている。
アスペクトは、このアドバイスが関連するアスペクトのIDが入る。名前はそのアドバイスを認識できる任意の文字列となる。ターゲットはメソッドもしくはフィールドであるが今回はメソッドのみを扱うものとする。タイプはaround、before、afterのいずれかである。実装は、そのアドバイスのプログラムコードとなる。
図7は、ポイントカット情報のデータフォーマットを示す図である。
1つのポイントカット情報はID(701)、アスペクト(702)、名前(703)、ポイントカット表記(704)で構成されている。
アスペクトには、このポイントカットが関連するアスペクトのIDが入る。名前はそのポイントカットを特定できる任意の文字列となる。
ポイントカット表記はどのメソッドに対応するアスペクトを織り込むかを指定するもので、アスペクト実行環境であるAspectJの文法に従う。
図8は、メソッドの呼び出し関係と、メソッドに関連付けられたアスペクトを表現するデータ構造を示す図である。
あるメソッドを始点としてそのメソッドが呼び出すメソッドを木構造で表していく(801)。メソッドの呼び出し木の各ノードで保持されるデータ(802)は、どのメソッドに対応するかを表すメソッド情報(803)、そのメソッドに関連付けられたアスペクト(804)、そのメソッドが呼び出すメソッド(805)で構成される。アスペクト(80)および呼び出すメソッド(805)は、順番に保持されるリストとなる。
図9は、クラス情報解析部(202)で扱うクラスのデータ構造を示す図である。
クラス名領域(901)は、クラスの解析中に現在解析中のクラスの名前を保持する。現在のメソッド領域(902)には現在解析中のメソッド情報が保持される。メソッド配列(903)およびメソッド呼び出し配列(904)には、クラスを読み込んで解析した結果を保持する。
図10は、アスペクト解析部(204)が扱うアスペクトのデータ構造を示す図である。
アスペクト情報領域(1001)には現在解析中のアスペクト情報が保持される。
アスペクト配列(1002)、アドバイス配列(1003)、ポイントカット配列(1004)には、アスペクトを読み込んで解析した結果を保持する。
図11は、本発明に係るアスペクト設定装置(201)の表示画面の一例を示す図である。
本装置の画面は、UMLのシーケンス図を中心とする。
UMLのシーケンス図は、クラスに対応するクラス名を表示した箱(1101),(1102)、(1103)とそこから伸びる線(ライフライン)(1104)、(1105)、(1106)と、そのクラスからのメソッド呼び出しを表す矢印(1107)〜(1110)で構成される。
本装置では標準的なシーケンス図にアスペクトの表示を加えたものである。アスペクト(1111)は、メソッドの矢印と呼び出し先のクラスのライフラインの間に表示される。
複数のアスペクトがメソッドに適用される場合は、重ねて表示される。
アスペクトは、図の左から右に向かう順で実行されるものとする。また、アスペクトが織り込むアドバイスがbeforeアドバイスの場合は、メソッドの上部(1112)に、afterアドバイスの場合はメソッドの下部(1113)に、aroundアドバイスの場合は、メソッドの横(1114)に描画される。この際、アスペクトは見易さを考慮して簡略化された状態で表示される。
また、画面右上部には、利用可能なアドバイスを列挙したアドバイスツールボックス(1115)が表示される。ここに列挙されるアドバイスは、アスペクト蓄積部(206)に蓄積されたアスペクトを解析して抽出した図6のアドバイス情報を一覧形式で表示したものである。ここから、利用するアドバイスを選択し、シーケンス図上にドラッグ(1116)する。
図12は、本実施形態のアスペクト設定装置において、アドバイスをドラッグしたときの表示例である。
シーケンス図上に表示されているアスペクトのライフライン上にアドバイスをドラッグすると、そのアスペクトは展開されて表示される。そして、そのアスペクトの両側にガイドライン(1201)、(1202)が表示され、ここにアドバイスをドロップすることによって新規のアスペクトを設定することができる。
図13は、アドバイスをガイドライン上にドロップした際に表示されるダイアログ(1300)である。このダイアログでは、新たに設定するアスペクトの名前(1301)、ポイントカットの名前(1302)と、ポイントカットのクラス(1303)、メソッド(1304)、引数(1305)を指定する。ポイントカットには、*(ワイルドカード)が指定可能で、これを用いると、複数のクラスやメソッドに対してアスペクトを設定することが可能となる。このダイアログ(1300)上には、指定できるポイントカット表記が列挙される。この中から指定したい表記を選択する。指定できるポイントカット表記の候補は、ここではクラス名などの文字列を大文字ごとに区切り、*と組み合わせるものとする。例えば、LoginServiceという文字列であれば、LoginとServiceに区切り、それぞれと*を組み合わせ、もともとの表記であるLoginServiceに加えLogin*と*Serviceが候補となる。
以下、以上のように構成されたアスペクト設定装置の動作を説明する。
最初に本実施形態のアスペクト設定装置を利用してアスペクトを設定する手順を説明する。
図14は、アスペクトを設定する際のユーザの動作を示すフローチャートである。
最初に、アドバイスツールボックス(1115)からアドバイスを選択する(ステップ1401)。そのアドバイスをシーケンス図のアスペクトもしくはクラスのライフライン上にドラッグする(ステップ1402)。すると、そのアスペクト/クラスのライフラインの両側にガイドライン(1201)、(1202)が表示されるので、その上にアドバイスをドロップする(ステップ1403)。すると、図13に示したダイアログ(1300)が表示されるので、そこでアスペクトの設定(クラス、メソッド、引数の設定)を行い(ステップ1404)、OKボタン(1306)を押す(1405)。
なお、ガイドライン(1201)、(1202)は、ユーザインターフェース管理部(207)が表示する。
図15は、図14のフローチャートの実行後、アスペクト生成部(205)がアスペクトを生成する処理のフローチャートである。
アスペクト生成部(205)はダイアログ(1300)に入力された情報をユーザインターフェース管理部(207)から受取り、図7に示すポイントカットデータを生成する(ステップ1501)。
次に、ドロップされたアドバイスを元に、図6に示すアドバイスデータと図5に示すアスペクト情報を生成する(ステップ1502)。
次に、図8に示すメソッド呼び出し木の中からアドバイスをドロップしたメソッドに対応するノードを取り出し、そのアスペクトリストの中に今回のアドバイスをドロップした位置にステップ1502で作成したアスペクトを追加する(ステップ1503)。
例えば、今まで、Profile→Debugの順番のときに、この2つのアスペクトの間にCheckをドロップした場合は、Profile→Check→Debugという順番になるようにもともとの2つのアスペクトの間に新しいアスペクトを追加する。
作成したアスペクト情報を元にアスペクトのプログラムコードを出力し、アスペクト蓄積部(206)に蓄積する(ステップ1504)。またメソッド呼び出し木のアスペクトリストを元にアスペクトの順番を記述するdeclare precedence文が記述されたアスペクトのプログラムを出力し、アスペクト蓄積部(206)に蓄積する(ステップ1505)。
本発明の実施に用いるコンピュータ装置のハードウェア構成図である。 本発明の実施の形態の一例を示すシステム構成図である。 クラスのメソッド情報のデータフォーマットを表す図である。 メソッド呼び出し情報のデータフォーマットを表す図である。 アスペクト情報のデータフォーマットを表す図である。 アドバイス情報のデータフォーマットを表す図である。 ポイントカット情報のデータフォーマットを表す図である。 メソッド呼び出し関連木のデータ構造を表す図である。 クラス解析部が扱うデータの構成を表す図である。 アスペクト解析部が扱うデータの構成を表す図である。 アスペクト設定装置のアスペクト設定画面例を表す図である。 アドバイスドロップ後のアスペクト設定画面を表す図である。 アスペクト設定ダイアログを表す図である。 アスペクト設定時のユーザの動作を示すフローチャートである。 アスペクト生成時の処理のフローチャートである。
符号の説明
201 アスペクト設定装置
202 クラス情報解析部
203 クラス蓄積部
204 アスペクト解析部
205 アスペクト生成部
206 アスペクト蓄積部
207 ユーザインターフェース管理部
208 ディスプレイ装置
209 入力装置
1115 ツールボックス
1201 ガイドライン
1202 ガイドライン

Claims (9)

  1. プログラムを構成する複数のクラスに織り込むアスペクトを設定する方法であって、
    クラス情報解析手段により前記複数のクラスのそれぞれに含まれるメソッドの呼び出し関係を解析する第1のステップと、アスペクト解析手段により前記メソッドに織り込まれたアスペクトの呼び出し関係を解析する第2のステップと、シーケンス図作成手段によりクラス相互間におけるメソッドとアスペクトの呼び出し関係を示すシーケンス図を作成し、当該シーケンス図をアスペクト設定用のユーザインターフェースとして画面表示する第3のステップと、画面表示されたシーケンス図上において所望のメソッド相互間またはアスペクト相互間に織り込む新規アスペクトのアドバイスをユーザによるドラッグ&ドロップ操作によって受付け、受付けたアドバイスのデータから新規アスペクトをアスペクト生成手段により生成し、生成した新規アスペクトを前記クラス情報解析手段、アスペクト解析手段が解析した既存のクラスに織り込む第4のステップを備えることを特徴とするアスペクト設定方法。
  2. 前記第3のステップにおいて、前記シーケンス図上に、ドラッグ&ドロップ操作対象となるアドバイスを列挙したツールボックスを表示することを特徴とする請求項1に記載のアスペクト設定方法。
  3. 前記第3のステップにおいて、前記シーケンス図上に、ドロップ操作可能な位置をガイドラインで表示することを特徴とする請求項1または2に記載のアスペクト設定方法。
  4. アドバイスをドロップした位置の情報を元に、設定可能なポイントカット表記の候補をダイアログ上に表示することを特徴とする請求項3に記載のアスペクト設定方法。
  5. プログラムを構成する複数のクラスに織り込むアスペクトを設定する装置であって、
    前記複数のクラスのそれぞれに含まれるメソッドの呼び出し関係を解析するクラス情報解析手段と、前記メソッドに織り込まれたアスペクトの呼び出し関係を解析するアスペクト解析手段と、クラス相互間におけるメソッドとアスペクトの呼び出し関係を示すシーケンス図を作成し、当該シーケンス図をアスペクト設定用のユーザインターフェースとして画面表示するシーケンス図作成手段と、画面表示されたシーケンス図上において所望のメソッド相互間またはアスペクト相互間に織り込む新規アスペクトのアドバイスをユーザによるドラッグ&ドロップ操作によって受付け、受け付けたアドバイスのデータから新規アスペクトを生成し、生成した新規アスペクトを前記クラス情報解析手段、アスペクト解析手段が解析した既存のクラスに織り込むアスペクト生成手段とを備えることを特徴とするアスペクト設定装置。
  6. 前記シーケンス図作成手段が、前記シーケンス図上に、ドラッグ&ドロップ操作対象となるアドバイスを列挙したツールボックスを表示することを特徴とする請求項5に記載のアスペクト設定装置。
  7. 前記シーケンス図作成手段が、前記シーケンス図上に、ドロップ操作可能な位置をガイドラインで表示することを特徴とする請求項5または6に記載のアスペクト設定装置。
  8. 前記シーケンス図作成手段が、アドバイスをドロップした位置の情報を元に、設定可能なポイントカット表記の候補をダイアログ上に表示することを特徴とする請求項7に記載のアスペクト設定装置。
  9. プログラムを構成する複数のクラスに織り込むアスペクトを設定するコンピュータプログラムであって、
    前記複数のクラスのそれぞれに含まれるメソッドの呼び出し関係を解析する第1のステップと、前記メソッドに織り込まれたアスペクトの呼び出し関係を解析する第2のステップと、クラス相互間におけるメソッドとアスペクトの呼び出し関係を示すシーケンス図を作成し、当該シーケンス図をアスペクト設定用のユーザインターフェースとして画面表示する第3のステップと、画面表示されたシーケンス図上において所望のメソッド相互間またはアスペクト相互間に織り込む新規アスペクトのアドバイスをユーザによるドラッグ&ドロップ操作によって受付け、受け付けたアドバイスのデータから新規アスペクトをアスペクト生成手段により生成し、生成した新規アスペクトを既存のクラスに織り込む第4のステップとをコンピュータに実行させることを特徴とするアスペクト設定用のコンピュータプログラム。
JP2007072356A 2007-03-20 2007-03-20 アスペクト設定方法および装置並びにコンピュータプログラム Expired - Fee Related JP4974228B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007072356A JP4974228B2 (ja) 2007-03-20 2007-03-20 アスペクト設定方法および装置並びにコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007072356A JP4974228B2 (ja) 2007-03-20 2007-03-20 アスペクト設定方法および装置並びにコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2008234271A true JP2008234271A (ja) 2008-10-02
JP4974228B2 JP4974228B2 (ja) 2012-07-11

Family

ID=39906970

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007072356A Expired - Fee Related JP4974228B2 (ja) 2007-03-20 2007-03-20 アスペクト設定方法および装置並びにコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP4974228B2 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10301766A (ja) * 1997-04-23 1998-11-13 Oki Electric Ind Co Ltd プログラム開発装置および並列リアルタイム処理装置
JP2004094496A (ja) * 2002-08-30 2004-03-25 Ntt Comware Corp シーケンス図作成装置、およびその方法、シーケンス図作成プログラム、その記録媒体
WO2005106650A1 (ja) * 2004-04-28 2005-11-10 Fujitsu Limited ソースコード作成支援プログラムおよびソースコード作成支援方法
JP2006099746A (ja) * 2004-09-02 2006-04-13 Ricoh Co Ltd 動作定義情報作成方法、動作定義情報作成装置、動作定義情報作成プログラム、記録媒体及びデータ構造

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10301766A (ja) * 1997-04-23 1998-11-13 Oki Electric Ind Co Ltd プログラム開発装置および並列リアルタイム処理装置
JP2004094496A (ja) * 2002-08-30 2004-03-25 Ntt Comware Corp シーケンス図作成装置、およびその方法、シーケンス図作成プログラム、その記録媒体
WO2005106650A1 (ja) * 2004-04-28 2005-11-10 Fujitsu Limited ソースコード作成支援プログラムおよびソースコード作成支援方法
JP2006099746A (ja) * 2004-09-02 2006-04-13 Ricoh Co Ltd 動作定義情報作成方法、動作定義情報作成装置、動作定義情報作成プログラム、記録媒体及びデータ構造

Also Published As

Publication number Publication date
JP4974228B2 (ja) 2012-07-11

Similar Documents

Publication Publication Date Title
US8001519B2 (en) Model driven development including aspect integration tool
CN108351764B (zh) 数据处理方法和系统
JP4950454B2 (ja) テスト自動化のスタック階層化
US7266809B2 (en) Software debugger and software development support system for microcomputer operable to execute conditional execution instruction
Grechanik et al. Creating GUI testing tools using accessibility technologies
US20120110560A1 (en) Data type provider for a web semantic store
CN108027721A (zh) 用于使用控件来配置通用程序的技术
US20110258604A1 (en) Collapsible Stack Trace
KR20140071292A (ko) 애플리케이션의 구조와 메소드 호출 시퀀스를 시각적으로 표현하는 비주얼 스프링 개발 환경 시스템
US20090132994A1 (en) Automation tool and method for generating test code
US8683439B2 (en) System and process for debugging object-oriented programming code leveraging preprocessors
US20120110548A1 (en) Data type provider for an operating system instrumentation store
JP2013152730A (ja) プラズマ処理システムコンポーネント解析ソフトウェアおよびそのプラズマ処理システムコンポーネント解析ソフトウェアを製作するための方法およびシステム
US9612829B2 (en) System and method for pattern based services extraction
Franzke Charlie 2.0-a multi-threaded Petri net analyzer
US20120233594A1 (en) Sharable development environment bookmarks for functional/data flow
CN111596905A (zh) 生成java对象的方法、装置、存储介质及终端
US7036045B2 (en) Method and system for isolating exception related errors in Java JVM
JP2007213487A (ja) アスペクト生成方法及び装置
CA2293068C (en) System and method for managing messages and annotations presented in a user interface
JP4974228B2 (ja) アスペクト設定方法および装置並びにコンピュータプログラム
Tkachuk et al. Environment generation for validating event-driven software using model checking
US20080276187A1 (en) Iconic Programming System with Disabling and Enabling of Dependent Objects
CN108241488A (zh) 一种生成app界面的系统及方法
JP4925514B2 (ja) 内外イベントドリブン方式によるプログラム実行制御方法、プログラム、実行制御装置および記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090716

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120206

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: 20120405

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120405

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150420

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees