मैं PHP में मौजूदा कक्षाओं के आधार पर UML आरेख कैसे उत्पन्न करूं?
मैं PHP में मौजूदा कक्षाओं के आधार पर UML आरेख कैसे उत्पन्न करूं?
जवाबों:
नाशपाती से उपलब्ध PHP UML टूल भी है ।
PHP_UML:
के माध्यम से कमांड लाइन पर इसे स्थापित करें:
$ pear install pear/php_uml
(यह हुआ करता था $ pear install pear/php_uml-alpha
लेकिन पैकेज तब से स्थिर है।)
अपनी ज़मी उत्पन्न करें:
$ phpuml -o project.xmi
pear install PHP_UML-1.6.1
(देखें pear.php.net/package/PHP_UML/download/All या pear.php.net/package/PHP_UML )
मैं BOUML की दृढ़ता से अनुशंसा करता हूं :
phUML पूरी तरह से स्वचालित UML वर्ग का आरेख है जो PHP में लिखा गया है, BSD लाइसेंस के तहत लाइसेंस प्राप्त है। यह किसी भी PHP5 ऑब्जेक्ट ओरिएंटेड सोर्स कोड को पार्स करने में सक्षम है और यूएमएल विनिर्देश के आधार पर ओओ संरचना का एक उचित छवि प्रतिनिधित्व बनाता है।
./phuml -r /var/www/my_project -graphviz -createAssociations false -neato out.png
सबसे अच्छा (विंडोज) सॉफ्टवेयर मैंने पाया है कि PHP और UML Sparx Systems Enterprise Architect है । सुविधाओं के ढेर के अलावा , यह PHP के लिए निम्नलिखित का समर्थन करता है :
मुक्त नहीं ($ 199), लेकिन निश्चित रूप से पैसे के लायक।
Php2xmi भी है । आपको थोड़ा मैनुअल काम करना होगा, लेकिन यह सभी वर्गों को उत्पन्न करता है, इसलिए आपको बस इतना करना है कि उन्हें छाता में एक क्लाडाग्राम में खींचें ।
अन्यथा, प्रतिबिंब और ग्राफविज़ के उपयोग के साथ एक आरेख बनाना, काफी सरल है। मेरे पास यहां एक स्निपेट है , जिसे आप शुरुआती बिंदु के रूप में उपयोग कर सकते हैं।
यहाँ मैंने यह कैसे किया (कोड से पीडीएफ ड्राइंग के बिना सीधे कुछ भी मैनुअल ड्राइंग के बिना):
आउटपुट पीडीएफ आरेख के लिए fdp का उपयोग करने के लिए उपयुक्त कमांड लाइन का एक उदाहरण है (यह मानते हुए कि 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 आज़मा सकते हैं । मैंने अभी तक कोशिश नहीं की है।
(मैं "रिवर्स इंजीनियरिंग" वाक्यांश का उपयोग कर रहा हूं क्योंकि ऐसा लगता है कि यूएमएल लोग उन शब्दों का उपयोग कर रहे हैं जब वे स्रोत कोड से कक्षा और विधि की जानकारी निकाल रहे हैं । मैं उन शब्दों को व्यक्तिगत रूप से निष्पादन योग्य बाइनरी फ़ाइल से जानकारी निकालने या कच्चे पर कब्जा करने के रूप में व्याख्या करूंगा। तार डेटा।)
यदि आप क्लास आरेख को हाथ से खींचना पसंद करते हैं (सभी ड्राइंग करने के लिए कंप्यूटर का उपयोग करने के बजाय), तो आप ड्राइंग के लिए या तो BOUML या ArgoUML का उपयोग कर सकते हैं। BOUML के माध्यम से "रिवर्स इंजीनियर" डेटा का उपयोग उस मामले में मदद करेगा।
यदि आप अपने मौजूदा PHP क्लासेस से आसानी से UML जेनरेट करना चाह रहे हैं तो आप PHPStorm 3.0 IDE पर विचार कर सकते हैं। यह यूएमएल में मौजूदा कोड की नकल करने का अच्छा काम करता है।
PHP स्टॉर्म सुविधा सूची पर एक नज़र है ।
आप यूएमएल के लिए विज़ुअल पैराडाइम का उपयोग कर सकते हैं। यह सबसे अच्छा भुगतान नहीं हो सकता है (यह यूएस $ 699) उत्पाद है, बस एक विकल्प के रूप में अगर कोई भी कोशिश करना चाहेगा। यह PHP और इसके विपरीत से वर्ग आरेख बना सकता है, और न केवल PHP, भाषा का एक गुच्छा है जिसे आप चुन सकते हैं जैसे कि C #, C ++, Ruby, Java, VB.NET, पायथन, ऑब्जेक्टिव C, पर्ल, आदि। परीक्षण आप पर जाँच कर सकते हैं।
सिद्धांत रूप में आप यूएमएल का उपयोग करके अपनी कक्षाओं की कल्पना करने के लिए PhpStorm का उपयोग कर सकते हैं। पीढ़ी वास्तव में महान नहीं है, लेकिन आप प्रभावी रूप से सामान को फिर से रिफ्लेक्ट कर सकते हैं और कम से कम माता-पिता, कार्यान्वयन, स्थिरांक, विशेषताओं, विधियों और उनकी दृश्यता को अच्छे तरीके से देख सकते हैं।
परिस्थिति
मैं किसी सहकर्मी को पहले से मौजूद घटकों के बीच एक संचार की कल्पना करना चाहता हूं।
PHPStorm का उपयोग करते हुए प्रक्रिया
https://blog.jetbrains.com/phpstorm/2017/09/uml-diagrams-in-phpstorm-2017-2/
लाभ
नुकसान
परिणाम
वैसे भी, काम के कुछ दर्दनाक घंटे के बाद मैं केवल असंबंधित बक्से उत्पन्न करने में सक्षम था और संबंधों को जोड़ने के लिए अतिरिक्त कार्यक्रम का उपयोग करना पड़ा। सच में ख़राब। लेकिन मेरा मानना है कि एक बार जब वे इसे ठीक से काम कर लेते हैं तो यह एक बड़ी विशेषता होगी क्योंकि जैसे-जैसे कोड बदलता है, आरेख स्वचालित रूप से अपडेट हो जाएंगे!
अभी के लिए, UML चित्र के लिए PhpStorm का उपयोग न करें।
अच्छी तरह से ईमानदार होने के लिए, सबसे पहले और सबसे महत्वपूर्ण आपको कोड से यूएमएल मॉडल उत्पन्न नहीं करना चाहिए, लेकिन यूएमएल मॉडल से कोड;)।
यहां तक कि अगर आप एक दुर्लभ स्थिति में हैं, जब आपको यह रिवर्स इंजीनियरिंग करने की आवश्यकता होती है, तो आमतौर पर यह सुझाव दिया जाता है कि आप इसे हाथ से या कम से कम डायग्राम के माध्यम से करते हैं, क्योंकि ऑटो-जनरेटेड यूएमएल में वास्तव में खराब दृश्य (= जानकारी) है अधिकांश समय मूल्य।
यदि आपको केवल आरेख उत्पन्न करने की आवश्यकता है, तो यह संभवतः अपने आप से पूछना एक अच्छी बात है कि वास्तव में क्यों? लक्षित दर्शक कौन है और लक्ष्य क्या है? ऑटो-जनरेट किए गए आरेख के पास क्या कोड है, क्या कोड नहीं है?
बुनियादी तौर पर मैं उस प्रश्न का केवल एक ही उत्तर स्वीकार करता हूं। यह बस बहुत बड़ा और समझ से बाहर हो गया।
जो फिर से यूएमएल के साथ शुरू करने का एक कारण है, कोडिंग शुरू करने के विपरीत;) इसे विश्लेषण कहा जाता है और यह गिरावट पर है, क्योंकि व्यापार में हर दूसरा लड़का सोचता है कि यह थोड़ा महंगा है और वास्तव में आवश्यक नहीं है।