2015 Fiscal Year Research-status Report
Javaプログラミングスタイル学習のためのEclipseプラグインツール
Project/Area Number |
15K01035
|
Research Institution | Teikyo University |
Principal Investigator |
荒井 正之 帝京大学, 理工学部, 教授 (70212602)
|
Project Period (FY) |
2015-04-01 – 2018-03-31
|
Keywords | プログラミングスタイル / 学習ツール / Java |
Outline of Annual Research Achievements |
本研究の目的は,Java言語のプログラミング初学者のために,プログラミングスタイルが自学自習可能なツールを開発することである.学習者は,このツールを用いることにより,1.切な字下げ,2.ソースコードに対する適切なコメントの挿入位置,3.Javaの命名規則に従った適切なクラス名,メソッド名,変数名,4.変数名に英語を用いて命名することの重要性,5.適切な変数のスコープなどを学ぶことができる. 大学の理工系学部情報系学科の学生にとって,プログラミングは必須である.初期のプログラミング授業では,プログラムの全体構造,アルゴリズム,データ構造等の講義や演習に多くの時間がとられ,プログラミングスタイルを学習するための時間をとることが難しい.プログラミングスタイルは,ソフトウェアの開発を効率的に行うため,そしてプログラム再利用のために非常に重要である.なぜならば,プログラミングスタイルに従って,ソースプログラムを書くことで,コードが読みやすくなるとともに,バグが減るからである.プログラミング初学者のプログラミングスタイルに対する意識は一般に低い.また,前述のとおり,プログラミングスタイルに関する時間をあまりとることができない.そのため,プログラミングスタイルを身につけられない学生が多い.本研究では,これらの問題点を解決するために,Java言語のプログラミングスタイルが自学自習可能なツールの開発を目的とする. なお本ツールは,多くのプログラマーが開発環境として利用している,Eclipseのプラグインとして実装する予定である. 今年度は,ソースプログラムの字句解析・構文解析手法,キャメル方式推奨機能の実装方法,英単語推奨機能の実装方法,コメント記入推奨機能の実装方法について検討した.その結果,これらの機能が実装できることを確認できた.
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
研究目的で述べた5つの機能を実現するために必要な情報の抽出方法を検討した.ツールに入力されたソースプログラムに対して,字句解析,構文解析を行った後,以下の情報を抽出することができるようになった.(1)プログラムの中で使われているクラス,メソッド,変数等が使われている箇所,(2)繰返し処理,条件分岐処理等の箇所,(3)字下げが不適切な箇所,(4)1行にブレイス({ })が複数ある箇所など. 続いて,キャメル方式推奨機能の実装方法を検討した.ソースプログラムから抽出した変数名,クラス名,メソッド名等に対して,まず1文字目を調べる.次に変数名等の先頭から文字を順に探索し,大文字の前で分割することができるようになった.例えばClassNameという複合語の場合,この処理によりClassとNameという2つの単語に分割される.続いて,それらの単語が英単語辞書および英単語略語辞書にあるかを調べる.単語が辞書に存在しない場合,キャメル方式が守られていない可能性があるため,「メソッド名は英語にしよう!」などと注意を促す. 次に英単語推奨機能の実装方法について検討した.英単語辞書および英単語略語辞書の検索には,Representational State Transfer(REST)という手法を用いた.英単語辞書検索用のRESTサービスでは,URLの中に検索したい単語を挿入することで,その単語の検索結果のXMLデータが返ってくる仕組みである. 最後にコメント記入推奨機能の実装方法を検討した.(1)クラス,メソッド,変数の宣言箇所,(2)繰返し処理,条件分岐処理等の該当箇所に「変数に関する説明を書こう!」などと注意を促す.
|
Strategy for Future Research Activity |
まずは,ソースコード整形機能の実装方法を検討する.字下げがない場合は,ツールが自動的に適切な字下げをする.1行にブレイス({ })が複数ある場合は,ブレイスが1行に1つになるようにするとともに,適切に字下げをして表示する. 続いて,不適切なスコープの指摘,その他の機能の実装方法を検討する.抽出した変数に対して,スコープが適切かを判断して,不適切な場合は「適切なスコープを設定しよう!」と注意を促す.なお,今回はスコープの範囲が狭いほどよいという方針で設計することにする.また,プログラムのデバックに最も手間がかからない変数名の長さは8~16文字程度といわれている.変数名が短い場合は,「変数名は10文字程度にしよう!」と注意を促す. 最後にEclipseプラグインとしてツールをEclipseのプラグインとして実装する.ユーザが入力したプログラムと,ツールが生成したプログラムを左右に並べ,見比べることができるようにする.学習者は模範的なソースコードを参考にして,ユーザのソースプログラムを修正する.ただし,ツールが生成したプログラムをコピーして,ユーザのプログラムにペーストできないようにしたい.また,コンパイル前に本ツールが自動的に起動して,ユーザは必ずプログラミングスタイルのチェックができるような仕様とすることも考えている.
|
Causes of Carryover |
仕様の検討に終始し,メンバー間で議論するために必要と考えたグループソフトウェアの購入とインストール,メンバー間で情報共有のために必要と考えたネットワーク接続機器とデータバックアップ装置の購入とインストールをすることができなかったため.また,当初国内学会の出張を複数回予定していたが1回しか行けなかったため.
|
Expenditure Plan for Carryover Budget |
平成28年度はシステム開発に着手するため,メンバー間で議論するために必要と考えたグループソフトウェアのインストール,メンバー間で情報共有のために必要と考えたネットワーク接続機器とデータバックアップ装置のインストールをしなければならない.それらを行うために,助成金を使用したいと考えている.
|
Research Products
(9 results)