Javaクラスに制約事項を適用するプリコンパイラ - OCL4Java 0.6公開

杉山貴章  [2005/08/18]

Christian Johner氏らは17日(現地時間)、JavaプログラムのプリコンパイラであるOCL4Javaバージョン0.6を公開した。OCL4JavaはOCL(Object Constraint Language: オブジェクト制約言語)などによるオブジェクト制約をJavaプログラムに適用するためのプリコンパイラで、これを利用することでJavaのクラスに対して不変条件や事前条件/事後条件などを指定できるようになる。

OCLというのは、UMLモデルにおけるモデル要素に対して制約事項を表現するための形式言語である。もともとUMLではインスタンスレベルの情報を正確に記述することができない。たとえば「クラスAの属性aは常に正の値でなければならない」というような制限はクラス図で正確に表現することが不可能である。このような場合、OCLでそれらの制約事項の情報を記述し、モデル化を補うことができる。

Javaのクラス定義には前述のようなインスタンスへの制約事項を含めることはできない。OCL4Javaでは、アノテーションを利用してクラスに対して不変条件や事前条件、事後条件を指定できるようにする。不変条件とはクラスのインスタンスで常に成り立っているべき条件のことであり、事前条件/事後条件とはそれぞれある処理の前後で成り立っているべき条件である。OCL4Javaはこれらの制約条件をAntやEclipseによって自動挿入する機能も備えている。

これらの制約条件はOCL4Javaによるプリコンパイル時に検証され、もし満たされていない場合にはAssertionErrorや例外の発生、ログメッセージの出力などによって通知される。またユーザ定義のハンドラを呼び出すことで任意の処理を実行することもできる。

通常のJavaプログラムの場合、このようなクラスの制約事項は仕様としてドキュメントに記述するか、コード中に不完全な形で埋め込む以外に適用する方法がなかった。OCL4Javaを利用することで、プログラム本体の処理に手を加えることなく制約事項を適用することが可能になる。OCL4JavaはGPLのもとオープンソースで公開されている。

    関連記事

    関連サイト

    新着記事

    特設サイトの情報

    求人情報

    人気記事

    一覧

    イチオシ記事

    新着記事

    特別企画

    一覧

    転職ノウハウ

    あなたの仕事適性診断
    あなたの仕事適性診断

    4つの診断で、自分の適性を見つめなおそう!

    Heroes File ~挑戦者たち~
    Heroes File ~挑戦者たち~

    働くこと・挑戦し続けることへの思いを綴ったインタビュー

    はじめての転職診断
    はじめての転職診断

    あなたにピッタリのアドバイスを読むことができます。

    転職Q&A
    転職Q&A

    転職に必要な情報が収集できます

    スカウト転職する
    スカウト転職する

    企業からアプローチのメッセージが届きます。