JP5212145B2 - リファクタリング支援装置、リファクタリング支援方法およびプログラム - Google Patents

リファクタリング支援装置、リファクタリング支援方法およびプログラム Download PDF

Info

Publication number
JP5212145B2
JP5212145B2 JP2009020629A JP2009020629A JP5212145B2 JP 5212145 B2 JP5212145 B2 JP 5212145B2 JP 2009020629 A JP2009020629 A JP 2009020629A JP 2009020629 A JP2009020629 A JP 2009020629A JP 5212145 B2 JP5212145 B2 JP 5212145B2
Authority
JP
Japan
Prior art keywords
module
priority
information
refactoring
change module
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.)
Active
Application number
JP2009020629A
Other languages
English (en)
Other versions
JP2010176564A (ja
Inventor
義晴 前野
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2009020629A priority Critical patent/JP5212145B2/ja
Publication of JP2010176564A publication Critical patent/JP2010176564A/ja
Application granted granted Critical
Publication of JP5212145B2 publication Critical patent/JP5212145B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、リファクタリング支援装置、リファクタリング支援方法およびプログラムに関する。
アプリケーションプログラム開発において、作業の進捗とともにアプリケーションプログラムが冗長化することがしばしばある。これによりアプリケーションプログラムの処理負荷が増大するといったデメリットがあるため、アプリケーションプログラムの論理を変更せずに、当該アプリケーションプログラムの冗長的な構成を解消する作業を行う。これをリファクタリングという。
この種の技術として、特許文献1(特開2008−117067号公報)には、アプリケーションプログラムの変更作業を支援する技術が記載されている。この技術は、アプリケーションプログラムを利用状況等に応じて個別に変更する作業を行うとき、個別にアプリケーションプログラムを意味づける情報(アノテーション)を検出する。そして、検出したアノテーションに基づいて当該アプリケーションプログラムの入力インターフェイスおよび出力インターフェイスを変更する。さらに、変更した入力インターフェイスおよび出力インターフェイスを呼び出す設計モデルを生成する。これによって、個別の状況に応じて当該アプリケーションプログラムを変更する作業が簡易なものになる。
また、特許文献2(特開2007−213487号公報)にも、アプリケーションプログラムの変更作業を支援する技術が記載されている。この技術は、変更されるアプリケーションプログラムのクラス構造を解析し、各クラスで使用されているクラス名、メソッド名、シグネチャを取得し、生成するアスペクトのクラス名、メソッド名、シグネチャの候補を生成する。そして、共通処理として切り出すアスペクトが行うアドバイスの候補のデータ構造を解析する。さらに、開発対象のアプリケーションプログラム内で使用されているクラスについてクラス名、メソッド名、シグネチャを明示したクラス図と、解析されたアドバイスの候補と、をユーザに画面表示する。さらに、表示されたアドバイスの候補とクラス名、メソッド名、シグネチャの候補とをユーザに選択させ、アスペクトを生成する。これによって、変更されるアプリケーションプログラム中の想定箇所に織り込むアスペクトを容易に生成することができる。
特開2008−117067号公報 特開2007−213487号公報
しかしながら上記技術は、以下の点で改善の余地を有していた。すなわち、アプリケーションプログラムを運用しながら、当該プログラムを使用している複数のユーザから個別にアスペクトの追加要求を受け付けて当該アプリケーションプログラムを変更するシステムに対して、上記技術を適用しても、追加要求が多様かつ予測困難であるため、最適なリファクタリングを行うタイミングを図ることが難しかった。
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、ユーザから個別に受け付けた変更要求に応じてアプリケーションプログラムを変更するシステムにおいて、当該アプリケーションプログラムに対してリファクタリングを行う最適なタイミングを示すリファクタリング支援装置、リファクタリング支援方法およびプログラムを提供することにある。
本発明によれば、アプリケーションプログラムを構成している複数のモジュールのうち、前記アプリケーションプログラムを使用するユーザの操作入力で生成されるアスペクト追加要求に応じて変更される一つまたは複数のモジュールを示す変更モジュール情報を、前記アスペクト追加要求から抽出する変更モジュール抽出手段と、前記変更モジュール情報を蓄積する変更モジュール記憶手段と、蓄積された前記変更モジュール情報に基づいて、前記アプリケーションプログラムに対して行われるリファクタリングの優先度をモジュールごとに算出する優先度算出手段と、前記優先度の大きいモジュールを示す優先モジュール情報を出力する優先モジュール出力手段と、を備えることを特徴とするリファクタリング支援装置が提供される。
また、本発明によれば、アプリケーションプログラムを構成している複数のモジュールのうち、前記アプリケーションプログラムを使用するユーザの操作入力で生成されるアスペクト追加要求に応じて変更される一つまたは複数のモジュールを示す変更モジュール情報を、前記アスペクト追加要求から抽出する変更モジュール抽出ステップと、前記変更モジュール情報を記憶手段に蓄積する変更モジュール蓄積ステップと、蓄積された前記変更モジュール情報に基づいて、前記アプリケーションプログラムに対して行われるリファクタリングの優先度をモジュールごとに算出する優先度算出ステップと、前記優先度の大きいモジュールを示す優先モジュール情報を出力する優先モジュール出力ステップと、を備えることを特徴とするリファクタリング支援方法が提供される。
さらに、本発明によれば、コンピュータが読み出し可能な記憶媒体に格納されるプログラムであって、アプリケーションプログラムを構成している複数のモジュールのうち、前記アプリケーションプログラムを使用するユーザの操作入力で生成されるアスペクト追加要求に応じて変更される一つまたは複数のモジュールを示す変更モジュール情報を、前記アスペクト追加要求から抽出する変更モジュール抽出処理と、前記変更モジュール情報を記憶手段に蓄積する変更モジュール蓄積処理と、蓄積された前記変更モジュール情報に基づいて、前記アプリケーションプログラムに対して行われるリファクタリングの優先度をモジュールごとに算出する優先度算出処理と、前記優先度の大きいモジュールを示す優先モジュール情報を出力する優先モジュール出力処理と、を前記コンピュータに実行させることを特徴とするプログラムが提供される。
上記発明によれば、アスペクト追加要求に応じて変更されたモジュールを示す変更モジュール情報に基づいてリファクタリングを優先的に要するモジュールを示す情報を出力することができる。
本発明によれば、アプリケーションプログラムを構成するモジュールのうちリファクタリングを優先的に要するモジュールを示すリファクタリング支援装置、リファクタリング支援方法およびプログラムが提供される。
本発明の実施の形態に係るリファクタリング支援装置を用いたプログラム変更システムのブロック図である。 アスペクト追加要求に含まれるパラメータ情報の一例を表した図である。 アプリケーションプログラムのモジュールの構成情報を表した図である。 モジュールごとに変更モジュール情報に示された回数を表した図である。 本発明の実施の形態に係るリファクタリング支援方法を示すフローチャートである。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
図1は、本実施形態のリファクタリング支援装置を用いたプログラム変更システムのブロック図である。プログラム変更システム1は、リファクタリング支援装置10の他に、ユーザの操作入力を受けつけてアスペクト追加要求を生成するユーザ個別要求受付装置20を備える。また、プログラム変更システム1は、ユーザ個別要求受付装置20が生成したアスペクト追加要求に基づいてアスペクトをアプリケーションプログラムに織り込む処理を実行するプログラム実行装置30を備える。さらに、プログラム変更システム1は、プログラム実行装置30にアプリケーションプログラムのリファクタリングを含む様々な処理を実行させるプログラム制御装置40を備える。
ここで、アスペクト追加要求とは、オブジェクト指向においてモジュール間に跨る処理をアスペクトと定義し、追加対象のアプリケーションプログラム内の要求した箇所にアスペクトを織り込む(追加する)要求のことである。近年、アスペクトを分離して記述することでアプリケーションプログラムに柔軟性をもたせるアスペクト指向というプログラミング概念が注目されている。アスペクトをソフトウェアの中心的な本体から分離することで、アプリケーションプログラムの保守性や再利用性を高めることができる。
ユーザ個別要求受付装置20は、リファクタリング支援装置10に対してアスペクト追加要求を送出する。図1において、ユーザ個別要求受付装置20は単数であり、リファクタリング支援装置10に直接接続している。これに限らず、ユーザ個別要求受付装置20は複数存在し、リファクタリング支援装置10に対してインターネットやLAN等のネットワークを介して接続する構成としてもよい。
図1において、プログラム実行装置30は、リファクタリング支援装置10を介してアスペクト追加要求を受け付ける。これに限らず、プログラム実行装置30は、ユーザ個別要求受付装置20からアスペクト追加要求を受け付ける構成としてもよい。ただし、後者の場合、ユーザ個別要求受付装置20は、リファクタリング支援装置10とプログラム実行装置30とに対して、同内容のアスペクト要求を送出する手段を備えることが望ましい。例えば、リファクタリング支援装置10およびプログラム実行装置30には、アスペクト追加要求を受け付けると応答信号をユーザ個別要求受付装置20に返す手段を備えてもよい。そして、ユーザ個別要求受付装置20には、応答信号を受け付けるまで、同じアスペクト追加要求の送出を繰り返す手段を備えてもよい。なお、プログラム実行装置30によりアスペクトを織り込まれたアプリケーションプログラムは、プログラム実行装置30内の記憶部(図示せず)に格納してもよく、外部の記憶装置(図示せず)に格納してもよい。
プログラム制御装置40は、アプリケーションプログラム開発の作業者等の操作入力を受け付けて、受け付けた操作入力に応じてリファクタリング等の処理をプログラム実行装置30に実行させてもよい。また、プログラム制御装置40は、自装置内で自動的に生成された要求信号、または他装置から受け付けた要求信号に応じてリファクタリング等の処理をプログラム実行装置30に実行させてもよい。
リファクタリング支援装置10は、アプリケーションプログラムを構成している複数のモジュールのうち、アプリケーションプログラムを使用するユーザの操作入力で生成されるアスペクト追加要求に応じて変更される一つまたは複数のモジュールを示す変更モジュール情報を、アスペクト追加要求から抽出する変更モジュール抽出部110を備える。また、リファクタリング支援装置10は、変更モジュール情報を蓄積する変更モジュール記憶部120を備える。さらに、リファクタリング支援装置10は、蓄積された変更モジュール情報に基づいて、アプリケーションプログラムに対して行われるリファクタリングの優先度をモジュールごとに算出する優先度算出部130を備える。さらに、リファクタリング支援装置10は、優先度の大きいモジュールを示す優先モジュール情報を出力する優先モジュール出力部140を備える。
また、リファクタリング支援装置10は、自装置内で処理されるデータまたはプログラム等を適宜記憶することができる記憶部100を備えている。なお、変更モジュール記憶部120は、記憶部100の記憶領域の一部または全部であってもよい。
リファクタリング支援装置10に内包される構成の全部または一部は、ハードウェアで実現されてもよいし、あるいは、プロセッサに処理を実行させるプログラム(またはプログラムコード)で実現されてもよい。プロセッサは、不揮発性メモリなどの記録媒体からそのプログラムを読み出し実行する。本実施形態において、記憶媒体は記憶部100であってもよい。
リファクタリング支援装置10に内包される構成がプログラムによって実施される場合、当該プログラムは、プロセッサ(コンピュータ)が読み出し可能な記憶媒体に格納される。そして、当該プログラムは、アプリケーションプログラムを構成している複数のモジュールのうち、アプリケーションプログラムを使用するユーザの操作入力で生成されるアスペクト追加要求に応じて変更される一つまたは複数のモジュールを示す変更モジュール情報を、アスペクト追加要求から抽出する変更モジュール抽出処理をコンピュータに実行させる。また、当該プログラムは、変更モジュール情報を記憶部100に蓄積する変更モジュール蓄積処理をコンピュータに実行させる。さらに、当該プログラムは、蓄積された変更モジュール情報に基づいて、アプリケーションプログラムに対して行われるリファクタリングの優先度をモジュールごとに算出する優先度算出処理をコンピュータに実行させる。さらに、当該プログラムは、優先度の大きいモジュールを示す優先モジュール情報を出力する優先モジュール出力処理と、をコンピュータに実行させる。
優先モジュール出力部140は、画像により優先モジュール情報を出力をしてもよく、音声により優先モジュール情報を出力してもよい。このとき、出力される優先モジュール情報は、アプリケーションプログラムを構成するモジュールのうち最も優先度の大きいモジュールのみを示してもよい。また、出力される優先モジュール情報は、アプリケーションプログラムを構成するモジュールのうち複数のモジュールの優先度順位を示してもよい。
また、優先モジュール出力部140は、優先モジュール情報をプログラム制御装置40に対するリファクタリングの要求信号として送出してもよい。このとき、プログラム制御装置40は、優先モジュール出力部140から受け付けた優先モジュール情報が示す最も優先度の大きいモジュールに関してリファクタリングを行わせてもよい。
変更モジュール抽出部110は、受け付けたアスペクト追加要求から変更モジュール情報を抽出して、変更モジュール記憶部120に記憶させてもよい。また、変更モジュール抽出部110はプログラム実行装置30にアスペクト追加要求を送出してもよい。このとき、変更モジュール抽出部110は、アスペクト追加要求の内容が変更されない範囲で、プログラム実行装置30が解釈可能なコードにアスペクト追加要求を変換してもよい。
図2は、アスペクト追加要求に含まれるパラメータ情報の一例を整理した図である。アスペクト追加要求は、ユーザ名、要求種別、要求名、ポイントカット定義、アドバイス処理位置またはアドバイス定義がそれぞれ関連付けられている。
ユーザ名は、アスペクト追加要求を生成したユーザ個別要求受付装置20にデフォルトで登録されているユーザ名であってもよく、ユーザの操作入力によって任意に定めされたユーザ名であってもよい。
要求種別は、アスペクト追加要求の種別を示すパラメータ情報である。図2において、要求種別はデータ分離または論理分離(カスタマイズ)の二種類に分類されている。ここで、データ分離とは、アスペクトの織り込み先のプログラム論理は変更せず、扱うデータをユーザごとに異なるデータとすることを意味している。また、論理分離とは、アスペクトの織り込み先のプログラム論理をユーザ個別の処理に変更し、扱うデータはユーザ間で共通のデータとすることを意味している。なお、要求種別はここで説明した二種類に限らず、入力データ分離、出力データ分離、内部保持データ分離またはデータ処理論理分離等のより詳細な要求種別としてもよい。
アドバイス定義は、そのアスペクトが行う処理の内容を示している。また、アドバイス処理位置は、アドバイス定義で示される処理を、織り込み先の処理を実行する前に実行するbeforeと、その処理を実行した後に実行するafterと、その処理の前後を包み込むように実行されるaroundのいずれかを示すことができる。
ポイントカット定義は、アドバイス定義が示す処理をどこに織り込むかを指定している。図2において、ポイントカット定義はクラス群により織り込み先を指定しているが、これに限らず、ポイントカット定義は、アプリケーションプログラムの一部をファイル名や行番号で指定してもよく、アプリケーションプログラムを構成するモジュールの一部を指定してもよい。
ここで、図1に示す変更モジュール抽出部110が、アスペクト追加要求から変更モジュール情報を抽出する処理を詳細に説明する。
まず、変更モジュール抽出部110は、受け付けたアスペクト追加要求に内包されるポイントカット定義が指定しているアスペクトの織り込み先に関する情報を抽出する。例えば、図2に示すユーザ名がBobであるアスペクト追加要求を受け付けた場合、そのポイントカット定義からクラス群がHelloであるモジュールがアスペクトの織り込み先として指定されていることを示す情報を抽出してもよい。
そして、変更モジュール抽出部110は、アスペクトが織り込まれるアプリケーションプログラムを構成するモジュールの構成情報を取得してもよい。ここでは、図3に示すようなモジュールの構成情報が、予め記憶部100に記憶されているものとして説明する。変更モジュール抽出部110は、記憶部100から取得したモジュールの構成情報と抽出した情報とを照らし合わせて、モジュール1が変更されるモジュールであると判定し、モジュール1を示す変更モジュール情報を生成してもよい。なお、図3に示すモジュールの構成情報は、各クラス群に1つのモジュールずつしか対応していないが、当然各クラス群に複数のモジュールが対応してもよい。
変更モジュール抽出部110は、モジュールの構成情報をプログラム実行装置30またはプログラム制御装置40から取得して、記憶部100に記憶させてもよい。または、変更モジュール抽出部110は、ユーザ個別要求受付装置20により生成されたモジュールの構成情報を取得して、記憶部100に記憶させてもよい。
また、ポイントカット定義がアプリケーションプログラムの一部をファイル名や行番号で指定している場合、モジュールの構成情報は各モジュールのファイル名や行番号の一覧であってもよい。
また、ポイントカット定義がアプリケーションプログラムを構成するモジュールの一部を指定している場合、変更モジュール抽出部110はモジュールの構成情報を記憶部100から取得しなくてもよい。
続いて、図1に示す優先度算出部130について詳細に説明する。優先度算出部130は、モジュールごとの優先度を、当該モジュールを示す変更モジュール情報の個数に基づいて算出してもよい。
また、優先度算出部130は、モジュールごとの優先度を、当該モジュールを示す変更モジュール情報の個数に重み係数を乗算して算出してもよい。
なお、重み係数は、ユーザや開発作業者等の操作入力によって任意に設定されてもよく、デフォルトで設定されてもよい。また、設定された重み係数は、記憶部100に記憶されてもよい。
第1の例として、優先度算出部130は、蓄積された変更モジュール情報のうち、所定のモジュールを示す変更モジュール情報の個数を、そのまま当該モジュールの優先度としてもよい。
すなわち、モジュール1を示す変更モジュール情報の個数が3の場合、モジュール1の優先度も3となる。また、モジュール2を示す変更モジュール情報の個数が1の場合、モジュール2の優先度も1となる。
第2の例として、優先度算出部130は、蓄積された変更モジュール情報のうち、所定のモジュールを示す変更モジュール情報の個数に、モジュールごとに一律に設定された重み係数を乗算して求めた値を当該モジュールの優先度としてもよい。
すなわち、モジュール1を示す変更モジュール情報の個数が3で、モジュール1の重み係数W=0.7のとき、モジュール1の優先度は2.1となる。また、モジュール2を示す変更モジュール情報の個数が1で、モジュール2の重み係数W=0.2のとき、モジュール2の優先度は0.2となる。
第3の例として、変更モジュール記憶部120は、複数通りに分類可能なパラメータ情報と変更モジュール情報とを互いに対応づけて蓄積してもよい。このとき、優先度算出部130は、変更モジュール情報の個数を、対応づけられたパラメータ情報に従って複数の群に分類し、分類された群のいずれかに対して優先度を算出してもよい。このとき、重み係数はパラメータ情報ごとに一律に設定されてもよい。
すなわち、変更モジュール記憶部120に変更モジュール情報と要求種別とを対応づけて蓄積している場合、優先度算出部130は、所定のモジュールを示す変更モジュール情報の個数を要求種別に従って分類して、図4に示すように整理することができる。ここで、データ分離の重み係数W=0.8、論理分離(カスタマイズ)の重み係数W=0.2とすると、モジュール1の優先度は、0.8×2+0.2×10=3.6となる。また、モジュール2の優先度は、0.8×1+0.2×1=1となる。
上述した第3の例において、変更モジュール抽出部110は、受け付けたアスペクト追加要求から変更モジュール情報とパラメータ情報とを抽出する。そして、変更モジュール記憶部120は、変更モジュール抽出部110により抽出された変更モジュール情報とパラメータ情報とを互いに対応づけて蓄積する。
また、リファクタリング支援装置10は、その設定に応じて上述の第1の例から第3の例のいずれかの処理で所定のモジュールの優先度を求めてもよい。
図5は、本実施形態のリファクタリング支援方法を示すフローチャートである。リファクタリング支援方法は、アプリケーションプログラムを構成している複数のモジュールのうち、アプリケーションプログラムを使用するユーザの操作入力で生成されるアスペクト追加要求に応じて変更される一つまたは複数のモジュールを示す変更モジュール情報を、アスペクト追加要求から抽出する変更モジュール抽出ステップ(ステップS101)を備える。また、リファクタリング支援方法は、変更モジュール情報を記憶部に蓄積する変更モジュール蓄積ステップ(ステップS102)を備える。さらに、リファクタリング支援方法は、蓄積された変更モジュール情報に基づいて、アプリケーションプログラムに対して行われるリファクタリングの優先度をモジュールごとに算出する優先度算出ステップ(ステップS103)を備える。さらに、リファクタリング支援方法は、優先度の大きいモジュールを示す優先モジュール情報を出力する優先モジュール出力ステップ(ステップS104)を備える。
ここまで説明してきた本実施形態の効果について説明する。本実施形態は、アスペクト追加要求に応じて変更されたモジュールを示す変更モジュール情報を、変更されるごとに蓄積し、蓄積された変更モジュール情報に基づいてリファクタリングを優先的に要するモジュールを求めるので、このモジュールを示す情報を出力することができる。これにより、リファクタリングを行う作業者または装置は、効率よくリファクタリングを行うことができる。
また、本実施形態は、所定のモジュールを示す変更モジュール情報の個数を用いて当該モジュールの優先度を求めることができる。アプリケーションプログラムは、当該アプリケーションプログラムの変更回数(アスペクト追加回数)に比例して冗長的な構成が増大する。所定のモジュールを示す変更モジュール情報の個数を用いて当該モジュールの優先度を求めることにより、的確に優先度を求めることができる。
さらに、本実施形態は、所定のモジュールを示す変更モジュール情報の個数に重み係数を乗算した値を用いてモジュールの優先度を求めることができる。これにより、モジュールごとに、またはパラメータ情報の分類ごとに重視する項目を定めて優先度を算出するので、より的確に優先度を求めることができる。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
例えば、図2には記載されていないが、アスペクト追加要求には、当該アスペクト追加要求が生成された時刻や当該アスペクト要求に基づいてアスペクトを織り込む処理を実行する予定時刻等を示す時刻情報が含まれてもよい。このとき、変更モジュール抽出部110は、アスペクト追加要求からパラメータ情報として時刻情報を抽出してもよい。これにより、生成されてからの経過時間が大きい(または小さい)アスペクト追加要求に変更されるモジュールほど優先度を大きくする等の処理が可能となる。
また、上述の実施の形態において、優先度算出部130は、蓄積された変更モジュール情報を一括的に処理して、所定のモジュールを示す変更モジュール情報の個数を求めるように説明した。しかし、優先度算出部130は、変更モジュール記憶部120に変更モジュール情報が蓄積されるたびに、所定のモジュールを示す変更モジュール情報の個数を求めてもよい。このとき、優先度算出部130は所定のモジュールを示す変更モジュール情報の個数を求めるごとに、その結果を記憶部100に記憶してもよい。また、優先度算出部130は、その結果を記憶部100に記憶するごとに更新してもよいし、蓄積してもよい。この場合、記憶部100に記憶されている所定のモジュールを示す変更モジュール情報の個数の初期値は0としてもよい。
さらに、本実施の形態ではリファクタリング支援装置の各部がプログラムにより各種機能として論理的に実現されることを例示した。しかし、このような各部の各々を固有のハードウェアとして形成することもでき、ソフトウェアとハードウェアとの組み合わせとして実現することもできる。
なお、当然ながら、上述した実施の形態および複数の変形例は、その内容が相反しない範囲で組み合わせることができる。また、上述した実施の形態および変形例では、各構成要素の機能などを具体的に説明したが、その機能などは本願発明を満足する範囲で各種に変更することができる。
(付記1)
アプリケーションプログラムを構成している複数のモジュールのうち、前記アプリケーションプログラムを使用するユーザの操作入力で生成されるアスペクト追加要求に応じて変更される一つまたは複数のモジュールを示す変更モジュール情報を、前記アスペクト追加要求から抽出する変更モジュール抽出手段と、
前記変更モジュール情報を蓄積する変更モジュール記憶手段と、
蓄積された前記変更モジュール情報に基づいて、前記アプリケーションプログラムに対して行われるリファクタリングの優先度をモジュールごとに算出する優先度算出手段と、
前記優先度の大きいモジュールを示す優先モジュール情報を出力する優先モジュール出力手段と、
を備えることを特徴とするリファクタリング支援装置。
(付記2)
付記1に記載のリファクタリング支援装置において、
前記優先度算出手段は、前記モジュールごとの前記優先度を、当該モジュールを示す前記変更モジュール情報の個数に基づいて算出することを特徴とするリファクタリング支援装置。
(付記3)
付記2に記載のリファクタリング支援装置において、
前記優先度算出手段は、前記モジュールごとの前記優先度を、当該モジュールを示す前記変更モジュール情報の個数に重み係数を乗算して算出することを特徴とするリファクタリング支援装置。
(付記4)
付記3に記載のリファクタリング支援装置において、
前記変更モジュール記憶手段は、複数通りに分類可能なパラメータ情報と前記変更モジュール情報とを互いに対応づけて蓄積し、
前記優先度算出手段は、前記変更モジュール情報の個数を、対応づけられた前記パラメータ情報に従って複数の群に分類し、分類された群のいずれかに対して前記優先度を算出することを特徴とするリファクタリング支援装置。
(付記5)
付記4に記載のリファクタリング支援装置において、
前記変更モジュール抽出手段は、受け付けた前記アスペクト追加要求から前記変更モジュール情報と前記パラメータ情報とを抽出して、
前記変更モジュール記憶手段は、前記変更モジュール抽出手段により抽出された前記変更モジュール情報と前記パラメータ情報とを互いに対応づけて蓄積することを特徴とするリファクタリング支援装置。
(付記6)
付記4または5に記載のリファクタリング支援装置において、
前記変更モジュール抽出手段は、前記アスペクト追加要求から前記パラメータ情報として時刻情報を抽出することを特徴とするリファクタリング装置。
(付記7)
アプリケーションプログラムを構成している複数のモジュールのうち、前記アプリケーションプログラムを使用するユーザの操作入力で生成されるアスペクト追加要求に応じて変更される一つまたは複数のモジュールを示す変更モジュール情報を、前記アスペクト追加要求から抽出する変更モジュール抽出ステップと、
前記変更モジュール情報を記憶手段に蓄積する変更モジュール蓄積ステップと、
蓄積された前記変更モジュール情報に基づいて、前記アプリケーションプログラムに対して行われるリファクタリングの優先度をモジュールごとに算出する優先度算出ステップと、
前記優先度の大きいモジュールを示す優先モジュール情報を出力する優先モジュール出力ステップと、
を備えることを特徴とするリファクタリング支援方法。
(付記8)
付記7に記載のリファクタリング支援方法において、
前記優先度算出ステップは、前記モジュールごとの前記優先度を、当該モジュールを示す前記変更モジュール情報の個数に基づいて算出することを特徴とするリファクタリング支援方法。
(付記9)
付記8に記載のリファクタリング支援方法において、
前記優先度算出ステップは、前記モジュールごとの前記優先度を、当該モジュールを示す前記変更モジュール情報の個数に重み係数を乗算して算出することを特徴とするリファクタリング支援方法。
(付記10)
付記9に記載のリファクタリング支援方法において、
前記変更モジュール蓄積ステップは、複数通りに分類可能なパラメータ情報と前記変更モジュール情報とを互いに対応づけて蓄積し、
前記優先度算出ステップは、前記変更モジュール情報の個数を、対応づけられた前記パラメータ情報に従って複数の群に分類し、分類された群のいずれかに対して前記優先度を算出することを特徴とするリファクタリング支援方法。
(付記11)
付記10に記載のリファクタリング支援方法において、
前記変更モジュール抽出ステップは、受け付けた前記アスペクト追加要求から前記変更モジュール情報と前記パラメータ情報とを抽出して、
前記変更モジュール蓄積ステップは、前記変更モジュール抽出ステップにより抽出された前記変更モジュール情報と前記パラメータ情報とを互いに対応づけて蓄積することを特徴とするリファクタリング支援方法。
(付記12)
付記10または11に記載のリファクタリング支援方法において、
前記変更モジュール抽出ステップは、前記アスペクト追加要求から前記パラメータ情報として時刻情報を抽出することを特徴とするリファクタリング方法。
(付記13)
コンピュータが読み出し可能な記憶媒体に格納されるプログラムであって、
アプリケーションプログラムを構成している複数のモジュールのうち、前記アプリケーションプログラムを使用するユーザの操作入力で生成されるアスペクト追加要求に応じて変更される一つまたは複数のモジュールを示す変更モジュール情報を、前記アスペクト追加要求から抽出する変更モジュール抽出処理と、
前記変更モジュール情報を記憶手段に蓄積する変更モジュール蓄積処理と、
蓄積された前記変更モジュール情報に基づいて、前記アプリケーションプログラムに対して行われるリファクタリングの優先度をモジュールごとに算出する優先度算出処理と、
前記優先度の大きいモジュールを示す優先モジュール情報を出力する優先モジュール出力処理と、
を前記コンピュータに実行させることを特徴とするプログラム。
1 プログラム変更システム
10 リファクタリング支援装置
20 ユーザ個別要求受付装置
30 プログラム実行装置
40 プログラム制御装置
100 記憶部
110 変更モジュール抽出部
120 変更モジュール記憶部
130 優先度算出部
140 優先モジュール出力部

Claims (13)

  1. アプリケーションプログラムを構成している複数のモジュールのうち、前記アプリケーションプログラムを使用するユーザの操作入力で生成されるアスペクト追加要求に応じて変更される一つまたは複数のモジュールを示す変更モジュール情報を、前記アスペクト追加要求から抽出する変更モジュール抽出手段と、
    前記変更モジュール情報を蓄積する変更モジュール記憶手段と、
    蓄積された前記変更モジュール情報に基づいて、前記アプリケーションプログラムに対して行われるリファクタリングの優先度をモジュールごとに算出する優先度算出手段と、
    前記優先度の大きいモジュールを示す優先モジュール情報を出力する優先モジュール出力手段と、
    を備えることを特徴とするリファクタリング支援装置。
  2. 請求項1に記載のリファクタリング支援装置において、
    前記優先度算出手段は、前記モジュールごとの前記優先度を、当該モジュールを示す前記変更モジュール情報の個数に基づいて算出することを特徴とするリファクタリング支援装置。
  3. 請求項2に記載のリファクタリング支援装置において、
    前記優先度算出手段は、前記モジュールごとの前記優先度を、当該モジュールを示す前記変更モジュール情報の個数に重み係数を乗算して算出することを特徴とするリファクタリング支援装置。
  4. 請求項3に記載のリファクタリング支援装置において、
    前記変更モジュール記憶手段は、複数通りに分類可能なパラメータ情報と前記変更モジュール情報とを互いに対応づけて蓄積し、
    前記優先度算出手段は、前記変更モジュール情報の個数を、対応づけられた前記パラメータ情報に従って複数の群に分類し、分類された群のいずれかに対して前記優先度を算出することを特徴とするリファクタリング支援装置。
  5. 請求項4に記載のリファクタリング支援装置において、
    前記変更モジュール抽出手段は、受け付けた前記アスペクト追加要求から前記変更モジュール情報と前記パラメータ情報とを抽出して、
    前記変更モジュール記憶手段は、前記変更モジュール抽出手段により抽出された前記変更モジュール情報と前記パラメータ情報とを互いに対応づけて蓄積することを特徴とするリファクタリング支援装置。
  6. 請求項4または5に記載のリファクタリング支援装置において、
    前記変更モジュール抽出手段は、前記アスペクト追加要求から前記パラメータ情報として時刻情報を抽出することを特徴とするリファクタリング支援装置。
  7. コンピュータによって実行されるリファクタリング支援方法であって、
    アプリケーションプログラムを構成している複数のモジュールのうち、前記アプリケーションプログラムを使用するユーザの操作入力で生成されるアスペクト追加要求に応じて変更される一つまたは複数のモジュールを示す変更モジュール情報を、前記アスペクト追加要求から抽出する変更モジュール抽出ステップと、
    前記変更モジュール情報を記憶手段に蓄積する変更モジュール蓄積ステップと、
    蓄積された前記変更モジュール情報に基づいて、前記アプリケーションプログラムに対して行われるリファクタリングの優先度をモジュールごとに算出する優先度算出ステップと、
    前記優先度の大きいモジュールを示す優先モジュール情報を出力する優先モジュール出力ステップと、
    を備えることを特徴とするリファクタリング支援方法。
  8. 請求項7に記載のリファクタリング支援方法において、
    前記優先度算出ステップは、前記モジュールごとの前記優先度を、当該モジュールを示す前記変更モジュール情報の個数に基づいて算出することを特徴とするリファクタリング支援方法。
  9. 請求項8に記載のリファクタリング支援方法において、
    前記優先度算出ステップは、前記モジュールごとの前記優先度を、当該モジュールを示す前記変更モジュール情報の個数に重み係数を乗算して算出することを特徴とするリファクタリング支援方法。
  10. 請求項9に記載のリファクタリング支援方法において、
    前記変更モジュール蓄積ステップは、複数通りに分類可能なパラメータ情報と前記変更モジュール情報とを互いに対応づけて蓄積し、
    前記優先度算出ステップは、前記変更モジュール情報の個数を、対応づけられた前記パラメータ情報に従って複数の群に分類し、分類された群のいずれかに対して前記優先度を算出することを特徴とするリファクタリング支援方法。
  11. 請求項10に記載のリファクタリング支援方法において、
    前記変更モジュール抽出ステップは、受け付けた前記アスペクト追加要求から前記変更モジュール情報と前記パラメータ情報とを抽出して、
    前記変更モジュール蓄積ステップは、前記変更モジュール抽出ステップにより抽出された前記変更モジュール情報と前記パラメータ情報とを互いに対応づけて蓄積することを特徴とするリファクタリング支援方法。
  12. 請求項10または11に記載のリファクタリング支援方法において、
    前記変更モジュール抽出ステップは、前記アスペクト追加要求から前記パラメータ情報として時刻情報を抽出することを特徴とするリファクタリング支援方法。
  13. コンピュータが読み出し可能な記憶媒体に格納されるプログラムであって、
    アプリケーションプログラムを構成している複数のモジュールのうち、前記アプリケーションプログラムを使用するユーザの操作入力で生成されるアスペクト追加要求に応じて変更される一つまたは複数のモジュールを示す変更モジュール情報を、前記アスペクト追加要求から抽出する変更モジュール抽出処理と、
    前記変更モジュール情報を記憶手段に蓄積する変更モジュール蓄積処理と、
    蓄積された前記変更モジュール情報に基づいて、前記アプリケーションプログラムに対して行われるリファクタリングの優先度をモジュールごとに算出する優先度算出処理と、
    前記優先度の大きいモジュールを示す優先モジュール情報を出力する優先モジュール出力処理と、
    を前記コンピュータに実行させることを特徴とするプログラム。
JP2009020629A 2009-01-30 2009-01-30 リファクタリング支援装置、リファクタリング支援方法およびプログラム Active JP5212145B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009020629A JP5212145B2 (ja) 2009-01-30 2009-01-30 リファクタリング支援装置、リファクタリング支援方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009020629A JP5212145B2 (ja) 2009-01-30 2009-01-30 リファクタリング支援装置、リファクタリング支援方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2010176564A JP2010176564A (ja) 2010-08-12
JP5212145B2 true JP5212145B2 (ja) 2013-06-19

Family

ID=42707444

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009020629A Active JP5212145B2 (ja) 2009-01-30 2009-01-30 リファクタリング支援装置、リファクタリング支援方法およびプログラム

Country Status (1)

Country Link
JP (1) JP5212145B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4134218B2 (ja) * 2006-11-16 2008-08-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 回帰テストにおいて実施すべきテストケースの優先度を決定するための情報処理装置、方法、及びプログラム
JPWO2008096632A1 (ja) * 2007-02-05 2010-05-20 日本電気株式会社 オブジェクト図表示装置、オブジェクト図表示方法、プログラム、及びコンピュータ読み取り可能な記録媒体
WO2009011056A1 (ja) * 2007-07-19 2009-01-22 Fujitsu Limited アプリケーション改善支援プログラム、アプリケーション改善支援方法およびアプリケーション改善支援装置

Also Published As

Publication number Publication date
JP2010176564A (ja) 2010-08-12

Similar Documents

Publication Publication Date Title
JP6571277B2 (ja) 端末アプリケーションをロードする方法及び装置
CN105183539B (zh) 动态任务安排方法
JP4196614B2 (ja) 命令スケジューリング方法、命令スケジューリング装置、及びプログラム
CN109901920A (zh) 任务调度方法及装置、电子终端
JP6258159B2 (ja) プログラム情報生成システム、方法、及びプログラム
JP6464162B2 (ja) ファームウェア仮想化のための方法および装置
US9639454B2 (en) Computer-readable recording medium storing therein test data generating program, test data generating method, test data generating apparatus and information processing system
JP5170408B2 (ja) 自動分散化システム及び自動分散化方法
JP2013050893A (ja) 画像処理装置、その制御方法、及びプログラム
WO2012144140A1 (ja) UI(User Interface)作成支援装置、UI作成支援方法及びプログラム
JP2006301989A (ja) 計算機言語によるプログラムをブロック図から自動生成する方法と装置とプログラム
JP5212145B2 (ja) リファクタリング支援装置、リファクタリング支援方法およびプログラム
EP2821918A1 (en) Device for creating system construction procedure, method for creating system construction procedure, and program
JP2008102831A (ja) 情報提供装置、プログラム及び情報提供方法
JP5041990B2 (ja) ソフトウェア部品抽出支援装置
JPH08263299A (ja) プログラム変換方法
JP5024252B2 (ja) トレース情報取得装置、トレース情報取得プログラム、および、トレース情報取得方法
JP4898365B2 (ja) 組み込み用プログラム開発装置、及びプログラム自動生成方法
JP6665576B2 (ja) 支援装置、支援方法及びプログラム
JP5755861B2 (ja) テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
JP5716469B2 (ja) ラッパープログラム及び集積回路装置
CN110780983A (zh) 任务异常处理方法、装置、计算机设备以及存储介质
KR20100099569A (ko) 실행 파일 생성 방법 및 그 방법을 이용하는 시스템 장치
WO2011052148A1 (ja) システムモデル管理支援システム、システムモデル管理支援方法およびプログラム
CN111966479B (zh) 业务处理、风险识别业务处理方法、装置及电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130109

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130211

R150 Certificate of patent or registration of utility model

Ref document number: 5212145

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160308

Year of fee payment: 3