最終更新日:2019年4月3日

RExSTMビルド用ドキュメント

はじめに

このドキュメントはファイルの修正,および,ビルドを行うためものである.
また,RExSTMの使用方法についてはRExSTM/doc/pdf/ユーザマニュアル.pdfで説明する.
このドキュメントは事前にRExSTM/doc/pdf/ユーザマニュアル.pdfを読んでいることを前提としている.

ビルド方法

環境

OS: windows10 64bit
Python: version3.4.0
においてビルドに成功することを確認している.(2018年12月)
これ以外の環境でのビルドは推奨しない.

ビルドのための設定手順(※初回ビルド時のみこの作業を行う必要がある.)

  1. Pythonをインストールする
    1. Pythonの公式ダウンロードページ(最終閲覧日:2018年12月27日)からインストールしたいバージョンのPythonを選択する(画像ではPython3.4.0を選択している).
    2. 該当するOSのものを選択する(画像ではwindowsの64bit版を選択している).

    3. 画面の指示に従いPythonをインストールする.
  2. 環境変数PATHを設定する
    1. コントロールパネルを開き,「システムとセキュリティ」→「システム」→「システムの詳細設定」と選択する.
    2. 「システムのプロパティ」というウィンドウが表示されるので,「環境変数(N)...」を選択する.
    3. 「システム環境変数(s)」内で変数が「Path」になっているものを選択し,「編集(I)...」を選択する.
    4. 「新規(N)」を選択し,Pythonのディレクトリへのパスを入力する(画像ではCドライブ直下にPythonが置かれている).
    5. 同様に「(Pythonのディレクトリへのパス)/Scripts」を入力する.
    6. コマンドプロンプト上で"python"と入力し,下図のようにpythonが起動すれば,パスが正しく設定できている.
  3. py2exeをpipによりインストールする.
    1. コマンドプロンプト上で"pip install py2exe"と入力する.py2exeのインストールに成功すると下図のような表示がされる.

ビルド手順(※2回目以降のビルドの際にはこの作業のみを行えばよい.)

  1. senni.py, analyze.pyからsenni.exe, analyze.exeを生成する.
    1. ローカル上でRExSTM/programs/senni.pyをRExSTM/setup/py2exe.batにドラッグ&ドロップする.
    2. コマンドプロンプトが開き,senni.exeの生成に成功すると下図のような表示がされる.
      キーボード上の任意のキーを押す.
    3. RExSTM/programsディレクトリにsenni.exeが生成されていることを確認する.
    4. 同様にRExSTM/programs/analyze_programs/analyze.pyをRExSTM/setup/py2exe.batにドラッグ&ドロップする.
    5. コマンドプロンプトが開き,analyze.exeの生成に成功すると先ほどと同様の表示がされる.
      いずれかのキーを押す.
    6. RExSTM/programs/analyze_programsディレクトリにanalyze.batが生成されていることを確認する.
    以上でビルドは完了する.

ディレクトリツリー

RExSTMの動作に影響を与えるファイルを以下にまとめる.

RExSTM
├── debug
│ ├── tmp
│ │ └── timer_senni.bat
│ ├── debug_analyze_detail.sh
│ └── debug_jotaivarval.bat
├── lists
│ ├── compile.txt
│ ├── deletefunctions.txt
│ ├── no_included_files.txt
│ └── std.txt
├── log
├── programs
│ ├── analyze_programs
│ │ ├── analyze.exe
│ │ ├── analyze.py
│ │ ├── c_reform.py
│ │ ├── globaldelete.py
│ │ ├── indent.py
│ │ ├── jokenshori.py
│ │ ├── jotaivar.py
│ │ ├── marking.py
│ │ ├── mujoken.py
│ │ ├── pragma.py
│ │ ├── preif.py
│ │ ├── presw.py
│ │ ├── python34.dll
│ │ ├── ReportException.py
│ │ ├── rule_jotaivar.py
│ │ ├── setup.py
│ │ └── table.py
│ ├── add_else.py
│ ├── add_mujoken_statement.py
│ ├── deletefunction.py
│ ├── deltemp.exe
│ ├── exception_handling.py
│ ├── getjotaivalue.py
│ ├── insert_mujoken.py
│ ├── makestm.py
│ ├── python34.dll
│ ├── senni.exe
│ ├── senni.py
│ ├── setup.py
│ ├── split_funcs.py
│ └── trans2celladds.py
├── RExSTMverX.Y.Z.xlsm
├── setup
│ └── py2exe.bat
├── TargetPrograms
├── temp
├── TSV_info
└── TSV_Result

ルートディレクトリ内の説明

programs内のファイルに対して修正を行うことで,RExSTMの動作を変更することができる.

debug内のファイルの説明

lists内のファイルの説明

programs内のファイル,ディレクトリの説明

各Pythonスクリプトはsenni.pyによって呼び出される.

analyze_programs内のファイルの説明

各Pythonスクリプトはanalyze.pyによって呼び出される.

setup内のファイルの説明

 

参考資料

RExSTMは以下の研究に基づいて開発されている.
  1. 「組込みソフトウェアを対象とした状態遷移表支援ツール」,山本椋太他(最終閲覧日:2019年2月6日)
  2. ET2013 JASAブースセミナー発表資料「状態遷移表リバースモデリングへの適用紹介」,竹田彰彦(最終閲覧日:2019年2月6日)