本マニュアルは、ナレッジベース検索ツールの利用手順について説明したマニュアルです。
商用製品のJavaアプリケーションサーバからOSS製品のJavaアプリケーションサーバへの移行やOSS製品(Tomcat,JBoss)のバージョンアップ、Webアプリケーションフレームワーク移行の検討を行う人向けに、 移植に必要な概算修正規模等を算出するツールです。 主に以下の機能を有します。
Table 1. 本ツールの主な機能
機能 | 説明 |
---|---|
検索機能 | TUBAMEコミュニティで提供しているナレッジ(修正箇所を検索するためのキーワードや修正工数、修正難易度、移植方法などを含むXML)を利用して修正が必要な箇所を検索する機能です。 |
検索結果編集機能 | 検索結果を視覚的に表示し編集する機能です。 検索結果に対して、個別に移植要否の調整ができます。 アプリケーション個別な要件を踏まえ、移植規模の抽出精度の向上を可能にします。 |
移植方法の参照機能 | 該当する移植項目(検索結果)に対する移植方法について表示する機能です。 実際に移植する際は、この内容を参考にして移植します。 |
ツールの各機能毎に利用の流れを解説します。
ナレッジ(修正箇所を検索するためのキーワードや修正工数、修正難易度、移植方法などを含むXML)を利用して、修正が必要な箇所を検索します。
![]() | Warning |
---|---|
ナレッジベース検索ツールでは、TUBAMEコミュニティのマイグレーションナレッジをデフォルトで自動インポート(ダウンロード)します。 本手順では、自動インポートの利用前提で手順を記載するため、ナレッジを自動インポートしたくない場合は、ナレッジ自動インポート設定を参考に、自動インポート設定を無効化してください。 |
以下の手順を実施します。
Eclipse を起動
プロジェクト作成ウィザードの起動
→ →
の作成
→
New Java Project ウィザードで、移植元の環境に応じて適宜設定を行いプロジェクトを作成します。
移植元ソースファイル群の配置
移植元となるソースファイル群を作成したプロジェクトに配置します。
![]() | Note |
---|---|
*.java だけでなく、*.jar, *.xml, *.jsp, *.properties, *.xsd などアプリケーションの動作に必要なファイル群全てを配置してください。 |
![]() | Note |
---|---|
ビルドが成功する状態にする必要はありません。 |
以下の手順を実施します。
検索リソースの選択
検索したいリソース上で右クリックし、以下のメニューを選択します。
→
検索条件の設定
以下の入力項目を設定します。
インポート ボタンを実行し、 プルダウンメニューより ナレッジ を選択します。
![]() | Note |
---|---|
|
以下の出力項目を設定します。
結果出力先
参照
ボタンを実行し、出力先(
jbm
ファイル)を指定してださい。
検索の実行
をクリックすると検索が開始されます。
検索結果を視覚的に表示し編集することができます。 検索結果に対して、個別に移植要否の確認が必要な場合があります。 その箇所を目視または、ヒアリングすることで移植要否を確定していきます。 最終的に移植要否が全て確定できれば完了となります。
検索結果として保存した jbm ファイルをダブルクリックして開き、検索結果編集画面より以下の手順を実施します。
目視確認項目のチェック
移植規模を算出するためには、目視確認を行う必要があります。手順は、 目視状況のチェック を参照。
ヒアリング確認項目のチェック
移植規模を算出するためには、ヒアリング確認項目を行う必要があります。手順は、 ヒアリング状況のチェック を参照。
TODO:SE手動算出項目のチェック
移植規模を算出するために、検索結果編集画面で表示される各項目で、SEが手動でライン数を入力する項目があります。修正内容を確認して、ライン数を手動で設定します。 手順は、 ステップ数の設定 を参照。
不明項目(移植方法が不明となっている項目)のチェック
移植規模を算出するために、検索結果編集画面で表示される各項目で、検索結果編集画面の難易度が「不明」となっている場合は、移植方法を別途検討する必要があります。 移植検討の結果、移植検討の対象外とする場合は、 移植不要項目の削除 機能で、項目自体を削除します。
作業状況情報の表示
作業ビューより作業状況を確認します。以下の作業状況を表示します。手順は、 作業状況ビューによる作業状況の確認 を参照。
目視/ヒアリング確認項目
不明/TODO:SE手動算出項目
![]() | Warning |
---|---|
作業項目がすべて完了すると、「確認項目作業が完了しました」と表示されるので、各作業項目の残数が0になるまで、確認項目作業を行います。 |
移植不要項目の削除
![]() | Warning |
---|---|
移植不要項目の削除 を実施しない場合、レポート生成機能でレポート出力した際に、移植不要項目も移植工数として計上されるため、移植不要項目は必ず削除する必要があります。 |
報告書の出力
TUBAMEでは以下の機能のいずれかを利用して、レポート生成を行います。
レポート自動生成
レポート生成機能を利用して、移植性検討レポートを生成します。詳細は、移植性検討レポート生成ガイドを参照。
CSV出力(レポート手動生成)
CSV出力したものを手動で集計して頂き、レポート生成を行う。 詳細は CSV出力機能 を参照。
検索結果の確認方法を以下に記載します。
jbm
ファイルのオープン
検索結果として保存した
jbm
ファイルをダブルクリックして開きます。
![]() | Note |
---|---|
検索機能実行後は自動的に検索結果ファイルが開かれるため、本作業は不要です。 |
検索結果編集画面の確認
検索結果編集画面では、移植が必要な可能性のある項目が一覧で表示されます。各表示項目の概要を以下に記載します。 任意の行をダブルクリックすると、拡張子に関連付けされているエディタを開き、該当ファイルを表示することができます。
Table 1. 検索結果編集画面の表示項目
項目 | 説明 | |||
---|---|---|---|---|
項番 | 検索した条件の項番です。 | |||
大項目 | - | |||
中項目 | - | |||
難易度 |
移植の為の難易度を難易度アイコン別に表示します。
|
|||
ヒット数 | 検索条件にヒットした数です。 | |||
ファイル名 | 対象ファイルのプロジェクトルートからのパスです。 | |||
行 | 対象ファイルの行番号です。 | |||
ライン数 |
移植に必要な概算修正ライン数です。
|
|||
ライン数根拠 | 移植に必要な概算ライン数の根拠です。 | |||
合計ライン | ヒット数×ライン数です。 | |||
ガイド章 |
移植性検討ガイドラインの章番号です。
項目をクリックすると、移植性検討ガイドラインにリンクすることができます。
|
|||
目視確認内容 | 目視確認する内容の説明です。 (初期表示時は列幅0で表示されている) | |||
ヒアリング確認内容 | ヒアリング確認する内容の説明です。 (初期表示時は列幅0で表示されている) | |||
目視状況 |
目視確認の現在の状況です。
|
|||
ヒアリング状況 |
ヒアリング確認の現在の状況です。
|
チェックリスト情報ビューの確認
チェックリスト情報ビュー では、検索結果編集画面で選択している項目に対する詳細情報を確認することができます。以下のような情報を確認することができます。
Table 2. チェックリスト情報ビューの表示項目
項目 | 説明 |
---|---|
大項目 | - |
中項目 | - |
目視確認内容 | 検索だけでは移植項目が特定できない場合の目視による調査方法または、判定基準です。 |
ヒアリング確認内容 | 開発元に確認しなければ移植の必要性が判断できない項目の場合の開発元への確認内容です。 |
検索手順 | 移植項目を検索した手順の解説です。 |
移植要因 | 移植が必要となる理由です。 |
難易度詳細 | 移植作業の詳細な難易度です。 |
非算出理由 | 修正に要するライン数を算出しない場合の理由です。 |
調査方法 | 修正ライン数を算出するための調査方法です。 |
作業状況ビューの確認
作業状況ビュー では、現時点の編集作業状況を確認することができます。
Table 3. 作業状況ビューの表示項目
項目 | 説明 | |||
---|---|---|---|---|
現在の作業状況 |
現在の作業状況が表示されます。
|
|||
現在の目視確認 / ヒアリング確認状況 | 検索結果編集画面に表示されている 目視確認状況 および ヒアリング確認状況 の残件数 / 全件数を表示します。 | |||
不明 / TODO:SE手動算出項目修正状況 | 検索結果編集画面に表示されている 不明項目修正状況 および SE手動算出項目修正状況 の残件数 / 全件数を表示します。 |
移植規模を算出するためには、検索結果に対して移植要否を全て確定する必要があります。 以下にその手順を記載します。
目視状況 が 未確認 の項目は、目視で移植要否を確認する必要があります。 チェックリスト情報ビューの目視確認内容を参考に、該当のファイルを確認し移植の必要性をチェックしてください。移植要否が明確になったら、その結果を該当行の 列のステータスを変更します。 該当箇所で右クリックし、ステータスを以下の状態に変更する事が出来ます。
![]() | Note |
---|---|
以下の種類があります。
|
![]() | Note |
---|---|
ShiftキーやCtrlキーにより複数選択することができます。 ( ただし、選択範囲に目視確認項目ではない行が含まれていた場合、上記のメニューは表示されません) |
ヒアリング状況 が 未確認 の項目は、開発者にヒアリングして移植要否を確認する必要があります。 検索結果編集画面のヒアリング状況が「未」のものについて、ヒアリングを行います。チェックリスト情報ビューのヒアリング確認内容を参考に、プロジェクトにヒアリングを行い、 移植項目か確認を行い、確認済 (移植不要) 又は 確認済(移植要)に設定します。 該当の箇所について開発者へ移植の必要性を確認してください。移植要否が明確になったら、その結果を該当行の ヒアリング状況 列のステータスを変更します。 該当箇所で右クリックし、ステータスを以下の状態に変更する事が出来ます。
![]() | Note |
---|---|
以下の種類があります。
|
![]() | Note |
---|---|
ShiftキーやCtrlキーにより複数選択することができます。 ( ただし、選択範囲に目視確認項目ではない行が含まれていた場合、上記のメニューは表示されません) |
作業状況ビューにより、作業状況を確認できます。
移植に関係しない項目など、画面上から項目を削除することができます。 個別に行を選択して削除する方法と、一括削除する方法の2つがあります。
Table 1. 削除方法
項目 | 説明 |
---|---|
選択行削除 | Eclipse ツールバーの | ボタンをクリックして選択行を削除します。
一括行削除 | Eclipse ツールバーの | ボタンをクリックして一括削除します。
![]() | Note |
---|---|
行削除は、移植不要項目の削除ボタンの右のボタンを実行します。 ShiftキーやCtrlキーにより複数選択することができます。 |
検索結果編集画面のライン数がTODO:SE 手動算出の項目は、 ガイド章をクリックし、HTMLガイドビューの修正内容を参考に、ライン数を手動で設定します。
ステップ数 が になっている項目は、 にカーソルを合わせることで、ステップ数が個別に入力可能となりますので、 をクリックして移植方法などを確認して、ステップ数を入力します。
検索結果を編集する際に利用するその他機能について示します。
検索該当箇所の参照
検索結果編集画面で表示されている項目の検索該当箇所は「ソースコードビュー」より該当箇所を確認します。手順は 検索該当箇所の参照機能 を参照
チェックリストの情報表示
検索結果編集画面で表示されている項目の検索条件、難易度詳細、目視およびヒアリング項目の確認内容などの情報を表示します。
![]() | Note |
---|---|
難易度詳細は、難易度が低のみ、以下のようにさらに詳細に分類しています。
|
移植方法の参照
手順については 移植方法参照機能 を参照
折り畳み表示機能
検索結果編集画面で表示されている項目を折り畳み表示、展開表示します。手順は 折り畳み表示機能 を参照。
CSV結果保存
検索結果編集画面で表示されているデータをCSV出力します。手順は CSV出力機能 を参照。
プリファレンス設定
ナレッジベース検索ツールで設定可能なプリファレンス設定について示します。 プリファレンス設定 を参照。
検索結果(移植項目)に対して、移植方法を表示することができます。
jbm
ファイルのオープン
検索結果として保存した
jbm
ファイルをダブルクリックして開きます。
移植方法表示
検索結果編集画面より、検索結果に対応する
をクリックし、HTMLガイドビューより移植方法を確認できます。編集結果をCSVとして保存することで、集計や最終レポート作成に活用することができます。
保存
Eclipse メニューの
を選択し、CSVファイルを出力します。CSVファイルの分析
CSVファイルの分析ツールは本ツールでは提供していません。 利用者側で分析ツールを作成するなど適宜対応してください。
![]() | Note |
---|---|
TUBAMEでは、CSV出力のほかに、自動的に、レポート生成する機能も提供しています。詳細は 移植性検討レポート生成ガイド をご確認ください。 |
ナレッジベース検索ツールのプリファレンス設定で制御可能な以下の設定について示します。
ナレッジ自動インポート設定
ナレッジキャッシュ設定
Python設定
マイグレーションガイド設定
ナレッジベース検索ツールでは、ナレッジ(修正箇所を検索するためのキーワードや修正工数、修正難易度、移植方法などを含むXML)を利用して検索を実施します。ナレッジ自動インポートは、TUBAMEコミュニティのマイグレーションナレッジを自動にインポートします。 ナレッジ自動インポートは、プリファレンス設定より制御できます。デフォルトは、自動インポートが有効になっているので、 自動インポートを無効にする場合は以下のように自動インポートを無効化します。
→
→
ナレッジインポート設定をfalseにする
ナレッジキャッシュ設定では、ナレッジ自動インポートでダウンロードされたキャッシュの利用有無を設定します。 ナレッジ自動インポートにより、一度ダウンロードされたナレッジは、このナレッジキャッシュ設定により、再利用されます。
![]() | Warning |
---|---|
ナレッジ自動インポート機能でダウンロードされたナレッジは、プラグイン内部の以下のフォルダにダウンロードされ、一度ダウンロードされると、以下フォルダにあるナレッジを再利用します。
|
一度ダウンロードした後に、TUBAMEコミュニティにあるマイグレーションナレッジを再取得したい場合は、以下のようにキャッシュ設定を無効化します。
→
→ →
ナレッジキャッシュ設定をfalseにする
TUBAME1.0.4のアップデートからPythonのインストールは必要ありませんが、このPython設定により あからじめインストールされたPythonを利用して、ナレッジベース検索を実行することができます。
→
→ →
「use local python」」をtrueにし、pythonのパスを指定指定する
ナレッジベース検索ツールでは、移植方法の参照機能を提供しています。 このマイグレーションガイド設定では、マイグレーションガイドの参照先を変更できます。
→
→ →
参照ボタンより、マイグレーションガイドのパスを指定する
検索機能ではナレッジ(修正箇所を検索するためのキーワードや修正工数、修正難易度、移植方法などを含むXML)を利用して、検索を実施します。 ナレッジの取得は、TUBAMEの実行環境が、インターネットに接続できる状態であれば、 ナレッジ選択 のインポートより、自動でTUBAMEコミュニティよりインポートできます。
TUBAMEの実行環境が、インターネットに接続できない場合は、ナレッジを手動で取得する必要があるため、 以下の手順にしたがい、TUBAMEコミュニティよりナレッジを取得してください。
TUBAMEコミュニティのmigration-knowledgeリポジトリより、最新版のアーカイブを取得する。
https://github.com/TUBAME/migration-knowledge/archive/master.zip
利用するナレッジのコピー
ダウンロードしたmigration-knowledge-master.zipを展開すると、TUBAMEコミュニティで管理しているナレッジ(XML)がすべて同梱されているため、利用対象のナレッジをEclipseのプロジェクトにコピーする。
本例では、migration-knowledge-master.zipを展開したStruts1ToSpringMVCフォルダをEclipseプロジェクトにコピーする
Figure 1. migration-knowledge-masterイメージ
migration-knowledge-master - apserver(APサーバ移行) -en -ja - JBossEAP4.3toJBossEAP6 |- *.xml(JBossEAP4.3toJBossEAP6のナレッジXML) |- index.html (JBossEAP4.3toJBossEAP6のマイグレーションガイドHTML) - WLS9toJBossEAP6 |- *.xml (ナレッジXML) |- index.html (マイグレーションガイドHTML) - Tomcat5.5to6.0 |- *.xml (ナレッジXML) |- index.html (マイグレーションガイドHTML) - Tomcat...(以降省略) - framework(フレームワーク移行) -en -ja - Struts1ToSpringMVC |- *.xml (ナレッジXML) |- index.html (マイグレーションガイドHTML)
![]() | Note | ||
---|---|---|---|
|
Q. Pythonのインストールは必要でしょうか
A. TUBAME1.0.4より、Pythonのインストール不要となっています。
![]() | Note |
---|---|
|
RHEL(および同等Linux)ではyumを利用してインストールする手順を以下に記載します。
インストール済みパッケージの確認
rpmコマンドを実行し、Pythonおよびlxmlがインストール済みか確認する。インストールされていない場合はインストールを行う。
インストールの実施
yumコマンドを実行し、Pythonおよびlxmlをインストールする。
$ su - # yum install python python-lxml
Windowsではインストーラを利用してインストールする手順を以下に記載します。
インストーラのダウンロード
以下のリンク先より自身の環境に合わせたインストーラをダウンロードする。
![]() | Note |
---|---|
Python2.7.6:http://python.org/download/releases/2.7.6 lxml3.2.4:https://pypi.python.org/pypi/lxml/3.2.4 |
Pythonインストーラの実行
ダウンロードしたpython-2.7.6.*.msiを実行し、ウィザードに従ってインストールを行う。
lxmlインストーラの実行
ダウンロードしたlxml-3.2.4.*-py2.7.exeを実行し、ウィザードに従ってインストールを行う。
個別にインストールしたPythonを利用する場合、Python設定より、Pythonのパス設定を行ってください。