PHPの既存のクラスに基づいてUML図を生成するにはどうすればよいですか?
pear から利用可能なPHP UMLツールもあります。
PHP_UML:
以下を介してコマンドラインにインストールします。
$ pear install pear/php_uml
(以前は$ pear install pear/php_uml-alpha
でしたが、その後パッケージは安定しました。)
Xmiを生成します。
$ phpuml -o project.xmi
phUMLは、BSDライセンスでライセンスされた、PHPで記述された完全自動のUMLクラスダイアグラムジェネレータです。 PHP5オブジェクト指向のソースコードを解析し、UML仕様に基づいてoo構造の適切な画像表現を作成できます。
./phuml -r /var/www/my_project -graphviz -createAssociations false -neato out.png
PHPおよびUMLを実行するのに最適な(Windows)ソフトウェアは Sparx SystemsEnterprise Architect です。 機能 のpletoraに加えて、PHPの following をサポートします
無料(199ドル)ではありませんが、間違いなくお金の価値があります。
Autodia はまだ試しましたか?前回試したときは完璧ではありませんでしたが、十分でした。
私がそれをした方法は次のとおりです(コードから手動で何も描画せずにPDF描画に直接):
Fdpを使用してPDFダイアグラムを出力するのに適したコマンドラインの例を次に示します(argouml-graphviz XLST処理によって生成されたドットファイルがxmi-model.dotとして保存されていると仮定)。
fdp -Tpdf -Gmaxiter=1000 -Gmindist=0.5 -Gpackmode=node \
-Eweight=0.05 -Elen=1.0 -Eminlen=1.0 -Gsplines=true \
-Goverlap=false xmi-model.dot -oxmi-model.pdf
別の方法として、「リバースエンジニアリング」の部分を行うために、BOUMLの代わりに PHP_UML または php2xmi を試すことができます。私はまだ試していません。
(「リバースエンジニアリング」というフレーズを使用しているのは、UMLの人々がソースコードからクラスおよびメソッド情報を抽出することを意味するときにそれらの単語を使用しているようだからです)実行可能なバイナリファイルまたはキャプチャされた生のワイヤデータから情報を抽出するような単語。
コンピューターを使用してすべての描画を行うのではなく、手動でクラス図を描画する場合は、描画にBOUMLまたはArgoUMLを使用できます。その場合、BOUMLを介して「リバースエンジニアリング」データを使用すると役立ちます。
既存のPHPクラスからUMLを簡単に生成したい場合は、PHPStorm 3.0 IDEを検討してください。既存のコードをUMLに複製するのに適しています。
PHP Storm機能リスト をご覧ください。
UMLにはVisual Paradigmを使用できます。これは最高の有料(699米ドル)の製品ではないかもしれません。誰かが試してみたい場合の選択肢としてだけです。 PHPからクラス図を作成できます。その逆も同様です。PHPだけでなく、C#、C++、Ruby、Java、VB.NET、Python、Objective C、Perlなどの言語を選択できます。など。確認できる試用版もあります。
理論的には、PhpStormを使用して、UMLを使用してクラスを視覚化できます。生成は本当に素晴らしいものではありませんが、少なくとも親、実装、定数、属性、メソッド、およびそれらの可視性をニースの方法でプレビューできます。
状況
同僚との既存のコンポーネント間の通信を視覚化したい。
PHPStormを使用したプロセス
https://blog.jetbrains.com/phpstorm/2017/09/uml-diagrams-in-phpstorm-2017-2/
利点
欠点
結果
とにかく、いくつかの苦痛な時間を費やした後、私は関係のないボックスしか生成できず、関係をリンクするために追加のプログラムを使用する必要がありました。すごく悪い。しかし、コードが変更されるとダイアグラムが自動的に更新されるため、適切に機能させると素晴らしい機能になると思います。
今のところ、UMLダイアグラムにPhpStormを使用しないでください。
正直言って、何よりもまず、コードからUMLモデルを生成するのではなく、UMLモデルからコードを生成する必要があります;)。
まれな状況であっても、このリバースエンジニアリングを行う必要がある場合、自動生成されたUMLの視覚(=情報)が非常に悪いため、手作業で行うか、少なくともダイアグラムを整理することをお勧めします。ほとんどの場合価値があります。
ダイアグラムを生成するだけの場合は、おそらく正確な理由を自問するのがよいでしょう。対象読者は誰で、目標は何ですか?自動生成されたダイアグラムは何を提供する必要があり、どのコードは提供しませんか?
基本的に、その質問に対する答えは1つだけ受け入れます。それはただ大きくなりすぎて、理解できません。
コーディングを開始するのではなく、最初にUMLを開始する理由でもあります;)これは分析と呼ばれ、減少傾向にあります。