|
Last-modified: 2003-12-15 (月) 11:11:52 (7410d)
Java開発ツールの紹介生産技術部
定村 和彦
今更説明するまでもないが、Java言語は以下のような特徴を持つ。
また、その言語体系は大きく以下の3つに分けられる。
1995年当初、JavaはAppletという形で一般に普及・認知され、「遅く・重い言語」というレッテルを貼られ衰退しかけたが、様々なハードウェア機器がVirtualMachineを搭載できるほどに協力になったことと、上記のようなJava体系の拡がりが相まって、現在では幅広く一般に利用されるようになった。Javaの普及と進化があまりにも急速であったために、Java技術をもったソフトウェア開発者が不足するという事態になっているほどである。 そこで、Javaによるソフトウェア開発を簡単にする、あるいはコード生成やデバッグの効率を高めるために有用なツール類を紹介する。この文章は、初めてJavaを用いる開発者を対象とするものであるが、中級以上のJava開発者も、Java開発ツールの見直しと効率化のために、復習されることを希望する。 実行環境編前述したようにJavaは様々な分野で、様々な形態で用いられているが、現在、弊社の技術者に必要なのはWeb業務におけるJ2EE寄りの技術である。これらに重点を置いて、まず、その実行環境を紹介していく。 Tomcat ( http://jakarta.apache.org/tomcat/ ) 現在のJava Servlet実装標準のサーブレットコンテナである。Java Servletを開発する際には、フリーウェアであるTomcatから学ぶとよい。最新はVersion3.3系とVersion4.0系の2系統に分かれているが、パフォーマンスやServlet、JSPの実装バージョンを考慮すると、Version4.0系を勧める。サーブレットコンテナであるとはいえ、Tomcatには簡易Webサーバーとしての機能もあり、それだけでサーブレットの動作を確認できる。Version4.0系であれば、そのWebサーバーとしての機能とパフォーマンスはApache Web Serverとほぼ同じようだ。 ちなみに「The Jakarta Project」とはApacheGroupのJava関連ソフトウェア開発チームであり、Tomcatの他にも、Ant、Log4J、JMeter等の有用なツール類を公開している。 Apache ( http://www.apache.org/ )Javaとは直接関係ないが、Tomcat3.3系以前のサーブレットコンテナをパフォーマンスが要求される業務で用いるなら、Apacheと連携させるのが一般的である。連携モジュールとして、Apache JServモジュール(mod_JServ)とjakartaモジュール(mod_jk)があるが、後者の方が新しくパフォーマンスもよい。Tomcatが生成する連携用設定ファイル(mod_jk.conf-auto)をApacheの設定ファイル(httpd.conf)にincludeしてやると連携できる。 include /var/tomcat/conf/mod_jk.conf-auto BEA WebLogic 6.1 ( http://www.beasys.co.jp/products/weblogic/server/index.html )IBM WebSphereと人気を二分するエンタープライズ向けWebアプリケーションサーバーである。搭載されているEJBコンテナはドラフト段階のEJB2.0仕様をすでにサポートし、その上で独自の機能を追加する等、非常に意欲的である。使い勝手もよく、信頼性も高いようだ。 統合開発環境編Java開発を簡便にし、生産性向上を図るためには統合開発環境(IDE:Integrated Development Environment)が必須である。最近では、「Webサービスに対応していること」「UMLツールが付属していること」が他社製品との差別化の材料になっているようだ。 Borland JBuilder ( http://www.borland.co.jp/jbuilder/ ) 最も使いやすいJava開発環境ではないだろうか。ユーザシェアも最も高い。「Microsoft VisualStudioのJava版」のような感覚で操作できる。機能によって3種類に分かれる。
Forte for Java ( http://www.sun.co.jp/forte/ )Sun MicrosystemsのIDE。GUIはツールバーをメインとするマルチウィンドウ方式。機能によって3種類に分かれる。
Java Development Kit + AntAntとはApacheGroupのビルドツールである。これと、J2SDKと組み合わせて使えば、CUIでも開発は容易になる。C言語でいう「Makefileを作成し、一括コンパイルする」という形式になる。Antは慣れてしまうと、とても使いやすくなるらしい。 テスト支援ツール編JUnit Javaコードのテスト支援ツール。基本的にはメソッドの入力(引数)と出力(戻り値)から、メソッドの機能チェックを行う。 uTestJUnitをJBuilder4 or JBuilder5に組み込むためのプラグイン。JBuilderでテストコードスケルトンの自動生成、 GUIによるテストケース実行、クラス単位、メソッド単位のテスト実行が可能になる。 Microsoft WebStress ToolWebサーバのURLに対して、様々なリクエストを要求し、サーバの応答パフォーマンスを測定・評価する。リクエスト応答時間、一定時間内に処理できたリクエスト数の測定等が主な機能である。GET、POSTの際のHTTPパラメータの設定、複数クライアントのエミュレートが可能。基本認証やSSLにも対応している。 UWSCマウスの自動制御 コードチェック、バグ発見ツール編JBuilderなどでもJavadocコメントの省略やnullになる可能性のあるプロパティの発見などはしてくれるが、やはり専用のツールの方が精度は高い。 JlintJavaコードの論理的欠陥、矛盾をチェックする。フリーウェアで http://www.ispras.ru/~knizhnik/ において配布している。コマンドライン実行で、Javaのクラスファイル、またはソースファイルを指定すると、以下のような結果を返す。 nullプロパティのチェックや、メソッドの引数がメソッド内で使われていないことを報告してくれているのがわかる。単純なツールではあるが、バグチェックツールとしては重宝するだろう。日本語化されていないのが、残念ではある。 Kiyackerソースコードの書き方、スタイル自体をチェックするなら、Kiyackerというツールがある。詳細なコード規約を生成し、Javaのソースファイルを指定して、規約に準拠しているかどうかを総チェックする。規約は以下のようにカスタマイズが可能である。 各規約のカスタマイズが終わったら、その規約データを元にJavaソースコードの規約チェックを行う。すると、例えば以下のような結果を得ることができる。 生産量測定編業務によっては、ライン数、コメント率、クラス数の集計を要求されるプロジェクトもあるだろう。 JMAJavaメトリクス解析ツール。かなり詳細な集計をExcel形式で出力する。動作にはMicrosoft Excelが必須。 画面イメージを見てもわかるように、同種のソフトウェアと比較しても、出力される情報は十分に詳細である。上記下段の[診断]タブには、ソースコードの診断結果も表示される。 終わりに Java言語の浸透に伴って、Java開発関連ツールも多く出回るようになり、実践的で使いやすいツールが増えてきた。今回はフリーウェアを中心に紹介したので、開発者の方にはぜひ利用してみて欲しい。 |