ナレッジベース検索ツールガイド

Index

1.はじめに
1.1.本ドキュメントの紹介
1.2.本ツールの紹介
2.利用方法
2.1.利用の流れ
2.1.1.検索機能
2.1.1.1.Eclipseプロジェクトの作成
2.1.1.2.検索の実行
2.1.2.検索結果編集機能
2.1.2.1.検索結果の確認
2.1.2.2.検索結果の編集
2.1.3.その他機能
2.1.3.1.検索該当箇所の参照機能
2.1.3.2.折り畳み表示機能
2.1.3.3.移植方法参照機能
2.1.3.4.CSV出力機能
2.1.3.5.プリファレンス設定
2.1.3.5.1.ナレッジ自動インポート設定
2.1.3.5.2.ナレッジキャッシュ設定
2.1.3.5.3.Python設定
2.1.3.5.4.マイグレーションガイド設定
3.FAQ
3.1.ナレッジの手動ダウンロードについて
3.2.Pythonのインストールについて
3.2.1.Pythonおよびlxmlのインストール
3.2.1.1.Linuxでのインストール手順
3.2.1.2.Windowsでのインストール手順
3.2.1.3.Pythonパス設定

1.はじめに


1.1.本ドキュメントの紹介


本マニュアルは、ナレッジベース検索ツールの利用手順について説明したマニュアルです。



1.2.本ツールの紹介


商用製品のJavaアプリケーションサーバからOSS製品のJavaアプリケーションサーバへの移行やOSS製品(Tomcat,JBoss)のバージョンアップ、Webアプリケーションフレームワーク移行の検討を行う人向けに、 移植に必要な概算修正規模等を算出するツールです。 主に以下の機能を有します。

Table 1. 本ツールの主な機能

機能説明
検索機能TUBAMEコミュニティで提供しているナレッジ(修正箇所を検索するためのキーワードや修正工数、修正難易度、移植方法などを含むXML)を利用して修正が必要な箇所を検索する機能です。
検索結果編集機能検索結果を視覚的に表示し編集する機能です。 検索結果に対して、個別に移植要否の調整ができます。 アプリケーション個別な要件を踏まえ、移植規模の抽出精度の向上を可能にします。
移植方法の参照機能該当する移植項目(検索結果)に対する移植方法について表示する機能です。 実際に移植する際は、この内容を参考にして移植します。




2.利用方法


2.1.利用の流れ


ツールの各機能毎に利用の流れを解説します。



2.1.1.検索機能


ナレッジ(修正箇所を検索するためのキーワードや修正工数、修正難易度、移植方法などを含むXML)を利用して、修正が必要な箇所を検索します。

[Warning]Warning

ナレッジベース検索ツールでは、TUBAMEコミュニティのマイグレーションナレッジをデフォルトで自動インポート(ダウンロード)します。 本手順では、自動インポートの利用前提で手順を記載するため、ナレッジを自動インポートしたくない場合は、ナレッジ自動インポート設定を参考に、自動インポート設定を無効化してください。



2.1.1.1.Eclipseプロジェクトの作成


以下の手順を実施します。

  1. Eclipse を起動

  2. プロジェクト作成ウィザードの起動

    FileNewProject...

  3. Java Projectの作成

    Java ProjectNext

    New Java Project ウィザードで、移植元の環境に応じて適宜設定を行いプロジェクトを作成します。

  4. 移植元ソースファイル群の配置

    移植元となるソースファイル群を作成したプロジェクトに配置します。

    [Note]Note

    *.java だけでなく、*.jar, *.xml, *.jsp, *.properties, *.xsd などアプリケーションの動作に必要なファイル群全てを配置してください。

    [Note]Note

    ビルドが成功する状態にする必要はありません。



2.1.1.2.検索の実行


以下の手順を実施します。

  1. 検索リソースの選択

    検索したいリソース上で右クリックし、以下のメニューを選択します。

    tubameナレッジベース検索

    Figure 1. ナレッジベース検索実行メニュー

    ナレッジベース検索実行メニュー

  2. 検索条件の設定

    以下の入力項目を設定します。

    • ナレッジXMLファイル選択

      インポート ボタンを実行し、 プルダウンメニューより ナレッジ を選択します。

      [Note]Note

      • プルダウンメニューより表示されたナレッジは、ナレッジ自動インポート機能でダウンロードされたナレッジ群を表示しています。 任意のナレッジXMLを利用する場合は、 参照 ボタンより指定します。

      • インターネット接続ができない場合は、インポートボタンは表示されません。この場合は手動でナレッジを取得する必要があるため、 ナレッジの手動ダウンロードについて を参考に手動でナレッジを取得してください。

      Figure 2. インポートメニュー

      >インポートメニュー

    以下の出力項目を設定します。

    • 結果出力先

      参照 ボタンを実行し、出力先( jbm ファイル)を指定してださい。

  3. 検索の実行

    Finish をクリックすると検索が開始されます。

    Figure 3. ナレッジベース検索実行メニュー

    ナレッジベース検索実行メニュー



2.1.2.検索結果編集機能


検索結果を視覚的に表示し編集することができます。 検索結果に対して、個別に移植要否の確認が必要な場合があります。 その箇所を目視または、ヒアリングすることで移植要否を確定していきます。 最終的に移植要否が全て確定できれば完了となります。

検索結果として保存した jbm ファイルをダブルクリックして開き、検索結果編集画面より以下の手順を実施します。

  1. 目視確認項目のチェック

    移植規模を算出するためには、目視確認を行う必要があります。手順は、 目視状況のチェック を参照。

  2. ヒアリング確認項目のチェック

    移植規模を算出するためには、ヒアリング確認項目を行う必要があります。手順は、 ヒアリング状況のチェック を参照。

  3. TODO:SE手動算出項目のチェック

    移植規模を算出するために、検索結果編集画面で表示される各項目で、SEが手動でライン数を入力する項目があります。修正内容を確認して、ライン数を手動で設定します。 手順は、 ステップ数の設定 を参照。

  4. 不明項目(移植方法が不明となっている項目)のチェック

    移植規模を算出するために、検索結果編集画面で表示される各項目で、検索結果編集画面の難易度が「不明」となっている場合は、移植方法を別途検討する必要があります。 移植検討の結果、移植検討の対象外とする場合は、 移植不要項目の削除 機能で、項目自体を削除します。

  5. 作業状況情報の表示

    作業ビューより作業状況を確認します。以下の作業状況を表示します。手順は、 作業状況ビューによる作業状況の確認 を参照。

    • 目視/ヒアリング確認項目

    • 不明/TODO:SE手動算出項目

    [Warning]Warning

    作業項目がすべて完了すると、「確認項目作業が完了しました」と表示されるので、各作業項目の残数が0になるまで、確認項目作業を行います。

  6. 移植不要項目の削除

    [Warning]Warning

    移植不要項目の削除 を実施しない場合、レポート生成機能でレポート出力した際に、移植不要項目も移植工数として計上されるため、移植不要項目は必ず削除する必要があります。

  7. 報告書の出力

    TUBAMEでは以下の機能のいずれかを利用して、レポート生成を行います。

    • レポート自動生成

      レポート生成機能を利用して、移植性検討レポートを生成します。詳細は、移植性検討レポート生成ガイドを参照。

    • CSV出力(レポート手動生成)

      CSV出力したものを手動で集計して頂き、レポート生成を行う。 詳細は CSV出力機能 を参照。



2.1.2.1.検索結果の確認


検索結果の確認方法を以下に記載します。

  1. jbm ファイルのオープン

    検索結果として保存した jbm ファイルをダブルクリックして開きます。

    [Note]Note

    検索機能実行後は自動的に検索結果ファイルが開かれるため、本作業は不要です。

  2. 検索結果編集画面の確認

    検索結果編集画面では、移植が必要な可能性のある項目が一覧で表示されます。各表示項目の概要を以下に記載します。 任意の行をダブルクリックすると、拡張子に関連付けされているエディタを開き、該当ファイルを表示することができます。

    Figure 1. 検索結果編集画面

    検索結果編集画面

    Table 1. 検索結果編集画面の表示項目

    項目説明
    項番検索した条件の項番です。
    大項目-
    中項目-
    難易度 移植の為の難易度を難易度アイコン別に表示します。
    [Note]Note

    以下の種類があります。

    • High

      実装内容の大規模な修正が必要で、実装や設定等の大幅な見直しが必要

    • Middle

      実装内容を考慮した小規模な修正が必要

    • Low

      実装内容を考慮せず軽微な修正で対応可能

    • Unknown

      難易度不明

    • NOT_TRN

      移植不可

    ヒット数検索条件にヒットした数です。
    ファイル名対象ファイルのプロジェクトルートからのパスです。
    対象ファイルの行番号です。
    ライン数 移植に必要な概算修正ライン数です。
    [Note]Note

    以下の種類があります。

    • 数値

      移植に必要な概算修正ライン数

    • TODO:SE 手動算出

      解説に基づき個別に算出すべき項目

    • 不明

      ライン数不明なため独自に算出すべき項目

    • 確認済 (移植不要)

      ヒアリング確認が完了している (問題なしと判断した項目)

    • 確認済 (移植要)

      ヒアリング確認が完了している(移植が必要と判断した項目)

    ライン数根拠移植に必要な概算ライン数の根拠です。
    合計ラインヒット数×ライン数です。
    ガイド章 移植性検討ガイドラインの章番号です。

    項目をクリックすると、移植性検討ガイドラインにリンクすることができます。

    [Note]Note

    ガイドの配置場所はTUBAMEのリファレンスページより、確認・変更できます。

    目視確認内容目視確認する内容の説明です。 (初期表示時は列幅0で表示されている)
    ヒアリング確認内容ヒアリング確認する内容の説明です。 (初期表示時は列幅0で表示されている)
    目視状況 目視確認の現在の状況です。
    [Note]Note

    以下の種類があります。

    • 空白

      目視確認する必要なし

    • 目視確認する項目がまだ存在している

    • 未確認

      目視確認が未実施である

    • 目視確認が完了している

    • 確認済 (移植不要)

      目視確認が完了している (問題なしと判断した項目)

    • 確認済(移植要)

      目視確認が完了している (移植が必要と判断した項目)

    ヒアリング状況 ヒアリング確認の現在の状況です。
    [Note]Note

    以下の種類があります。

    • 空白

      ヒアリング確認する必要なし

    • ヒアリング確認する項目がまだ存在している

    • 未確認

      目視確認が未実施である

    • ヒアリング確認が完了している

    • 確認済 (移植不要)

      ヒアリング確認が完了している (問題なしと判断した項目)

    • 確認済 (移植要)

      ヒアリング確認が完了している(移植が必要と判断した項目)


  3. チェックリスト情報ビューの確認

    チェックリスト情報ビュー では、検索結果編集画面で選択している項目に対する詳細情報を確認することができます。以下のような情報を確認することができます。

    Table 2. チェックリスト情報ビューの表示項目

    項目説明
    大項目-
    中項目-
    目視確認内容検索だけでは移植項目が特定できない場合の目視による調査方法または、判定基準です。
    ヒアリング確認内容開発元に確認しなければ移植の必要性が判断できない項目の場合の開発元への確認内容です。
    検索手順移植項目を検索した手順の解説です。
    移植要因移植が必要となる理由です。
    難易度詳細移植作業の詳細な難易度です。
    非算出理由修正に要するライン数を算出しない場合の理由です。
    調査方法修正ライン数を算出するための調査方法です。

  4. 作業状況ビューの確認

    作業状況ビュー では、現時点の編集作業状況を確認することができます。

    Table 3. 作業状況ビューの表示項目

    項目説明
    現在の作業状況 現在の作業状況が表示されます。
    [Note]Note

    以下の種類があります。

    • 確認項目作業が完了しました。

    • 目視/ヒアリング確認項目を確認して下さい。

    • 不明/TODO:SE手動算出項目を確認して下さい。

    • ファイルを上書きしてください。

    現在の目視確認 / ヒアリング確認状況 検索結果編集画面に表示されている 目視確認状況 および ヒアリング確認状況 の残件数 / 全件数を表示します。
    不明 / TODO:SE手動算出項目修正状況 検索結果編集画面に表示されている 不明項目修正状況 および SE手動算出項目修正状況 の残件数 / 全件数を表示します。



2.1.2.2.検索結果の編集


移植規模を算出するためには、検索結果に対して移植要否を全て確定する必要があります。 以下にその手順を記載します。

  1. 目視状況のチェック

    目視状況未確認 の項目は、目視で移植要否を確認する必要があります。 チェックリスト情報ビュー目視確認内容を参考に、該当のファイルを確認し移植の必要性をチェックしてください。移植要否が明確になったら、その結果を該当行の 列のステータスを変更します。 該当箇所で右クリックし、ステータスを以下の状態に変更する事が出来ます。

    [Note]Note

    以下の種類があります。

    • 未確認

      未確認

    • 確認済 (移植不要)

      問題なし

    • 確認済 (移植要)

      移植が必要

    Figure 1. 目視状況のステータス変更画面

    目視状況のステータス変更画面

    [Note]Note

    ShiftキーやCtrlキーにより複数選択することができます。 ( ただし、選択範囲に目視確認項目ではない行が含まれていた場合、上記のメニューは表示されません)

  2. ヒアリング状況のチェック

    ヒアリング状況未確認 の項目は、開発者にヒアリングして移植要否を確認する必要があります。 検索結果編集画面のヒアリング状況が「未」のものについて、ヒアリングを行います。チェックリスト情報ビューヒアリング確認内容を参考に、プロジェクトにヒアリングを行い、 移植項目か確認を行い、確認済 (移植不要) 又は 確認済(移植要)に設定します。 該当の箇所について開発者へ移植の必要性を確認してください。移植要否が明確になったら、その結果を該当行の ヒアリング状況 列のステータスを変更します。 該当箇所で右クリックし、ステータスを以下の状態に変更する事が出来ます。

    [Note]Note

    以下の種類があります。

    • 未確認

      未確認

    • 確認済 (移植不要)

      問題なし

    • 確認済 (移植要)

      移植が必要

    Figure 2. ヒアリング状況のステータス変更画面

    ヒアリング状況のステータス変更画面

    [Note]Note

    ShiftキーやCtrlキーにより複数選択することができます。 ( ただし、選択範囲に目視確認項目ではない行が含まれていた場合、上記のメニューは表示されません)

  3. 作業状況ビューによる作業状況の確認

    作業状況ビューにより、作業状況を確認できます。

    Figure 3. 作業状況ビュー画面

    作業状況ビュー画面

  4. 移植不要項目の削除

    移植に関係しない項目など、画面上から項目を削除することができます。 個別に行を選択して削除する方法と、一括削除する方法の2つがあります。

    Table 1. 削除方法

    項目説明
    選択行削除 Eclipse ツールバーの 行削除 ボタンをクリックして選択行を削除します。
    一括行削除 Eclipse ツールバーの チェック済みの移植不要項目の削除 ボタンをクリックして一括削除します。

    Figure 4. チェック済みの移植不要項目の削除の実行画面

    チェック済みの移植不要項目の削除の実行画面

    [Note]Note

    行削除は、移植不要項目の削除ボタンの右のボタンを実行します。

    ShiftキーやCtrlキーにより複数選択することができます。

  5. ステップ数の設定

    検索結果編集画面のライン数TODO:SE 手動算出の項目は、 ガイド章をクリックし、HTMLガイドビューの修正内容を参考に、ライン数を手動で設定します。

    ステップ数TODO:SE 手動算出 になっている項目は、 TODO:SE 手動算出 にカーソルを合わせることで、ステップ数が個別に入力可能となりますので、 ガイド章 をクリックして移植方法などを確認して、ステップ数を入力します。

    Figure 5. ステップ数の設定画面

    ステップ数の設定画面



2.1.3.その他機能


検索結果を編集する際に利用するその他機能について示します。



2.1.3.1.検索該当箇所の参照機能


検索該当箇所はソースコードビューより参照します

  1. 検索結果編集画面より行番号が表示されているアイテムを選択し、右クリックよりソースコードビューを開く を選択します

    Figure 1. ソースコードビュー画面

    ソースコードビュー画面



2.1.3.2.折り畳み表示機能


折り畳み機能により、検索結果編集画面で表示されているアイテムを折り畳み・展開表示します。



2.1.3.3.移植方法参照機能


検索結果(移植項目)に対して、移植方法を表示することができます。

  1. jbm ファイルのオープン

    検索結果として保存した jbm ファイルをダブルクリックして開きます。

  2. 移植方法表示

    検索結果編集画面より、検索結果に対応するガイド章番号をクリックし、HTMLガイドビューより移植方法を確認できます。

Figure 1. HTMLガイドビュー画面

HTMLガイドビュー



2.1.3.4.CSV出力機能


編集結果をCSVとして保存することで、集計や最終レポート作成に活用することができます。

  1. 保存

    Eclipse メニューの CSV保存 を選択し、CSVファイルを出力します。

  2. CSVファイルの分析

    CSVファイルの分析ツールは本ツールでは提供していません。 利用者側で分析ツールを作成するなど適宜対応してください。

[Note]Note

TUBAMEでは、CSV出力のほかに、自動的に、レポート生成する機能も提供しています。詳細は 移植性検討レポート生成ガイド をご確認ください。

Figure 1. CSV出力画面

CSV出力画面



2.1.3.5.プリファレンス設定


ナレッジベース検索ツールのプリファレンス設定で制御可能な以下の設定について示します。



2.1.3.5.1.ナレッジ自動インポート設定


ナレッジベース検索ツールでは、ナレッジ(修正箇所を検索するためのキーワードや修正工数、修正難易度、移植方法などを含むXML)を利用して検索を実施します。ナレッジ自動インポートは、TUBAMEコミュニティのマイグレーションナレッジを自動にインポートします。 ナレッジ自動インポートは、プリファレンス設定より制御できます。デフォルトは、自動インポートが有効になっているので、 自動インポートを無効にする場合は以下のように自動インポートを無効化します。

Figure 1. ナレッジインポート設定画面(自動インポート無効)

ナレッジインポート設定画面




2.1.3.5.2.ナレッジキャッシュ設定


ナレッジキャッシュ設定では、ナレッジ自動インポートでダウンロードされたキャッシュの利用有無を設定します。 ナレッジ自動インポートにより、一度ダウンロードされたナレッジは、このナレッジキャッシュ設定により、再利用されます。

[Warning]Warning

ナレッジ自動インポート機能でダウンロードされたナレッジは、プラグイン内部の以下のフォルダにダウンロードされ、一度ダウンロードされると、以下フォルダにあるナレッジを再利用します。

  • ナレッジの保存先: eclipse/plugins/tubame.portability_*/resources/knowledge配下

一度ダウンロードした後に、TUBAMEコミュニティにあるマイグレーションナレッジを再取得したい場合は、以下のようにキャッシュ設定を無効化します。

Figure 1. ナレッジキャッシュ設定画面(キャシュ無効化)

ナレッジキャッシュ設定画面




2.1.3.5.3.Python設定


TUBAME1.0.4のアップデートからPythonのインストールは必要ありませんが、このPython設定により あからじめインストールされたPythonを利用して、ナレッジベース検索を実行することができます。

Figure 1. Python設定画面(pythonパス指定)

Python設定画面(pythonパス指定)




2.1.3.5.4.マイグレーションガイド設定


ナレッジベース検索ツールでは、移植方法の参照機能を提供しています。 このマイグレーションガイド設定では、マイグレーションガイドの参照先を変更できます。

Figure 1. マイグレーションガイドのパス設定画面

マイグレーションガイドのパス設定画面




3.FAQ


3.1.ナレッジの手動ダウンロードについて


検索機能ではナレッジ(修正箇所を検索するためのキーワードや修正工数、修正難易度、移植方法などを含むXML)を利用して、検索を実施します。 ナレッジの取得は、TUBAMEの実行環境が、インターネットに接続できる状態であれば、 ナレッジ選択 のインポートより、自動でTUBAMEコミュニティよりインポートできます。

TUBAMEの実行環境が、インターネットに接続できない場合は、ナレッジを手動で取得する必要があるため、 以下の手順にしたがい、TUBAMEコミュニティよりナレッジを取得してください。

  1. TUBAMEコミュニティのmigration-knowledgeリポジトリより、最新版のアーカイブを取得する。

    https://github.com/TUBAME/migration-knowledge/archive/master.zip

  2. 利用するナレッジのコピー

    ダウンロードした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)
    							


    Figure 2. Struts1ToSpringMVCフォルダをコピーしたEclipseプロジェクト

    This image does not a meaning in the image


[Note]Note

  • Eclipseプロジェクトにインポートしたナレッジは、 ナレッジ選択 にて、ダウンロードしたナレッジ(XML)を指定して利用してください。

    Figure 3. ナレッジ選択画面

    ナレッジ選択画面

    Figure 4. ナレッジXMLの選択画面

    ナレッジXMLの選択画面

[Warning]Warning

Eclipseのプロジェクトに手動でナレッジをインポートする場合、 マイグレーションガイド設定 より、TUBAMEコミュニティより取得したマイグレーションガイドHTMLを指定してください。 本例の場合は、migration-knowledge-master.zip展開ディレクトリ/migration-knowledge-master/framework/ja/Struts1ToSpringMVC/index.htmlを指定する。



3.2.Pythonのインストールについて


Q. Pythonのインストールは必要でしょうか

A. TUBAME1.0.4より、Pythonのインストール不要となっています。

[Note]Note
  1. 従来通りPythonをインストールして利用することも可能です。

    ご利用の環境のプラットホーム上でナレッジベース検索がうまく動作しないなどトラブルが発生した場合は、 Pythonおよびlxmlのインストール より、Pythonをインストールしていただき、利用して頂くことで対応可能な場合があります。



3.2.1.Pythonおよびlxmlのインストール


Pythonおよびlxmlのインストール手順を以下に記載します。



3.2.1.1.Linuxでのインストール手順


RHEL(および同等Linux)ではyumを利用してインストールする手順を以下に記載します。

  1. インストール済みパッケージの確認

    rpmコマンドを実行し、Pythonおよびlxmlがインストール済みか確認する。インストールされていない場合はインストールを行う。

  2. インストールの実施

    yumコマンドを実行し、Pythonおよびlxmlをインストールする。

    $ su - 
    # yum install python python-lxml
    				



3.2.1.2.Windowsでのインストール手順


Windowsではインストーラを利用してインストールする手順を以下に記載します。

  1. インストーラのダウンロード

    以下のリンク先より自身の環境に合わせたインストーラをダウンロードする。

    [Note]Note

    Python2.7.6:http://python.org/download/releases/2.7.6

    lxml3.2.4:https://pypi.python.org/pypi/lxml/3.2.4

  2. Pythonインストーラの実行

    ダウンロードしたpython-2.7.6.*.msiを実行し、ウィザードに従ってインストールを行う。

  3. lxmlインストーラの実行

    ダウンロードしたlxml-3.2.4.*-py2.7.exeを実行し、ウィザードに従ってインストールを行う。



3.2.1.3.Pythonパス設定


個別にインストールしたPythonを利用する場合、Python設定より、Pythonのパス設定を行ってください。