PHPUML(クラス図)のフォワードエンジニアリング/リバースエンジニアリングを行う。(C++, Java, JavaScript, Perlなども可)

umbrelloというUMLモデリングツールを使います。
http://uml.sourceforge.net/index.php
上記URLからダウンロード・インストールするのもよいですが、umbrelloはXデスクトップ環境であるKDEの関連パッケージ、kdevelopをインストールすると入ります(単独で入れるにしてもおそらくKDE関連(特にQt)のライブラリ群はある程度必要だと思います)。

リバースエンジニアリングを行うにはさらにPHP2XMIというPHP製のコマンドラインツールを使います。
http://tech.motion-twin.com/php_php2xmi.html

PHP2XMIは下記コマンドでインストールします。
URLやバージョンは更新されているかもなのでご注意ください。


pear install http://tech.motion-twin.com/zip/PHP2XMI-0.1.2.tar.gz

使い方は


php2xmi --output=result.xmi aaaa.php bbbbb.php cccc.php

といった感じです。他にも、ディレクトリを指定してリカーシブに行うことなども出来ますので詳しくは前述のページを見てください。
このコマンドを実行するとresult.xmiが出来上がるので、それをumbrelloに食わせることでUMLクラス図をリバースエンジニアリングできます。
リバースエンジニアリング完了時はメインのペイン(右ペイン)には何も表示されていないと思いますので、左ペインからそれぞれクラスをドラッグ&ドロップしてやると継承関係なども表現されたクラス図が表示されると思います。

フォワードエンジニアリングについてはおそらく説明の必要はないと思います。umbrelloにてクラス図を書き、「コードを生成」を選択します。言語もかなり多岐に渡ってサポートしており、表題の通り、C++, Java, JavaScript, Perlなどもフォワードエンジニアリング可能です。

気になる点としては、フォワードエンジニアリングした後実装を加えていくわけですが、実装工程中にクラス図に変更を加えた場合、それを実装途中のソースにマージできないであろう点です。
すわなち、初期設計時にしかその実力をフルには出せないであろう点です。

ま、実装後にリバースエンジニアリングすればいいんですけどね。


実践 X Window System―実践で拓くUNIXウィンドウシステムの世界 (単行本)