|
*Java開発ツールの紹介 RIGHT:生産技術部 RIGHT: 定村 和彦 #contents #br 今更説明するまでもないが、Java言語は以下のような特徴を持つ。 -シンプルなオブジェクト指向言語。 -バイトコードレベルでプラットフォームに非依存。 -堅牢なセキュリティ機能。 -バグを生み難い(安全性の高いプログラムが作り易い)言語仕様。 -便利で豊富なAPI。 また、その言語体系は大きく以下の3つに分けられる。 -Java 2 Standard Edition – Javaプラットフォームの基本となるAPI群。 -Java 2 Micro Edition – よりpoorな実行環境のためのAPI群。ケータイ電話や家電製品、コンシューマ機器等への組み込み用途に使われることが多い。 -Java 2 Enterprise Edition – エンタープライズ環境のためのAPI群。Java Servlet、EJB、JSPといった技術がこれに含まれる。 1995年当初、JavaはAppletという形で一般に普及・認知され、「遅く・重い言語」というレッテルを貼られ衰退しかけたが、様々なハードウェア機器がVirtualMachineを搭載できるほどに協力になったことと、上記のようなJava体系の拡がりが相まって、現在では幅広く一般に利用されるようになった。Javaの普及と進化があまりにも急速であったために、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とほぼ同じようだ。~ 標準ではEJBコンテナは付属しない。 ちなみに「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種類に分かれる。~ -Personal版 – BorlandのWebサイトで無償で提供されている。サーブレット開発機能はない。 -Professional版 – サーブレットの作成、テストができる。実行環境としてTomcatが付属する。 -Enterprise版 – Professional版の機能に加えて、EJBコンポーネントの作成、テストができる。Borland ApplicationServerが付属。 最新バージョン(Version6)では、ユニットテスト機能やUML図作成機能、リファクタリング機能等が追加された。 ***Forte for Java ( http://www.sun.co.jp/forte/ ) Sun MicrosystemsのIDE。GUIはツールバーをメインとするマルチウィンドウ方式。機能によって3種類に分かれる。 -Community Edition - 無償。 -Enterprise Edition - J2EE開発をサポートしている。iPlanet Application Serverが付属する。 ***Java Development Kit + Ant AntとはApacheGroupのビルドツールである。これと、J2SDKと組み合わせて使えば、CUIでも開発は容易になる。C言語でいう「Makefileを作成し、一括コンパイルする」という形式になる。Antは慣れてしまうと、とても使いやすくなるらしい。 **テスト支援ツール編 ***JUnit Javaコードのテスト支援ツール。基本的にはメソッドの入力(引数)と出力(戻り値)から、メソッドの機能チェックを行う。~ 各メソッド用にテストコードを書く必要がある。テストコードをまとめて実行し、エラーがなくなるまでメソッドの改良を行うのが普通である。 ***uTest JUnitをJBuilder4 or JBuilder5に組み込むためのプラグイン。JBuilderでテストコードスケルトンの自動生成、 GUIによるテストケース実行、クラス単位、メソッド単位のテスト実行が可能になる。 ***Microsoft WebStress Tool WebサーバのURLに対して、様々なリクエストを要求し、サーバの応答パフォーマンスを測定・評価する。リクエスト応答時間、一定時間内に処理できたリクエスト数の測定等が主な機能である。GET、POSTの際のHTTPパラメータの設定、複数クライアントのエミュレートが可能。基本認証やSSLにも対応している。 ***UWSC マウスの自動制御 **コードチェック、バグ発見ツール編 JBuilderなどでもJavadocコメントの省略やnullになる可能性のあるプロパティの発見などはしてくれるが、やはり専用のツールの方が精度は高い。 ***Jlint Javaコードの論理的欠陥、矛盾をチェックする。フリーウェアで http://www.ispras.ru/~knizhnik/ において配布している。コマンドライン実行で、Javaのクラスファイル、またはソースファイルを指定すると、以下のような結果を返す。 CENTER:&ref(javatool01.png); nullプロパティのチェックや、メソッドの引数がメソッド内で使われていないことを報告してくれているのがわかる。単純なツールではあるが、バグチェックツールとしては重宝するだろう。日本語化されていないのが、残念ではある。 ***Kiyacker ソースコードの書き方、スタイル自体をチェックするなら、Kiyackerというツールがある。詳細なコード規約を生成し、Javaのソースファイルを指定して、規約に準拠しているかどうかを総チェックする。規約は以下のようにカスタマイズが可能である。 CENTER:&ref(javatool02.png); 各規約のカスタマイズが終わったら、その規約データを元にJavaソースコードの規約チェックを行う。すると、例えば以下のような結果を得ることができる。 CENTER:&ref(javatool03.png); **生産量測定編 業務によっては、ライン数、コメント率、クラス数の集計を要求されるプロジェクトもあるだろう。 ***JMA Javaメトリクス解析ツール。かなり詳細な集計をExcel形式で出力する。動作にはMicrosoft Excelが必須。 CENTER:&ref(javatool03.png); CENTER:&ref(javatool03.png); CENTER:&ref(javatool03.png); 画面イメージを見てもわかるように、同種のソフトウェアと比較しても、出力される情報は十分に詳細である。上記下段の[診断]タブには、ソースコードの診断結果も表示される。 ** 終わりに Java言語の浸透に伴って、Java開発関連ツールも多く出回るようになり、実践的で使いやすいツールが増えてきた。今回はフリーウェアを中心に紹介したので、開発者の方にはぜひ利用してみて欲しい。~ 最後に、この論文が弊社Java開発業務の生産性の向上につながれば幸いである。