paint-brush
चैटजीपीटी: यूएमएल आरेख निर्माण के लिए आपका समय बचाने वाला साथीद्वारा@nastyakostina
5,366 रीडिंग
5,366 रीडिंग

चैटजीपीटी: यूएमएल आरेख निर्माण के लिए आपका समय बचाने वाला साथी

द्वारा Anastasiia Kostina9m2024/02/07
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

प्लांटयूएमएल कोड जनरेशन का उपयोग करके चैटजीपीटी के साथ आसानी से यूएमएल आरेख बनाएं और बढ़ाएं। समय बचाएं, प्रक्रियाओं को सुव्यवस्थित करें और अपने काम को अनुकूलित करें, जिससे आरेख निर्माण अधिक कुशल और मनोरंजक हो जाएगा।
featured image - चैटजीपीटी: यूएमएल आरेख निर्माण के लिए आपका समय बचाने वाला साथी
Anastasiia Kostina HackerNoon profile picture

चैटजीपीटी के साथ मेरी शुरुआती मुलाकात इसके रिलीज़ होने पर अत्यंत जिज्ञासा से प्रेरित थी। मैं विशेष रूप से कोड जनरेशन पर चर्चा करने वाले लेखों की ओर आकर्षित हुआ, भले ही मैं व्यक्तिगत रूप से कोड नहीं लिखता। और मुझे शुरू में विश्वास था कि यह सुविधा मेरे लिए प्रासंगिक नहीं होगी।


हालाँकि, एक क्षण ऐसा आया जब मैंने खुद को एक यूएमएल आरेख पर काम करते हुए पाया जिसे बनाने के लिए मैं बहुत उत्सुक नहीं था।


प्रक्रिया को सरल बनाने या तेज़ करने की अपनी खोज में, मैंने विभिन्न तरीकों की ओर रुख किया। मैं आमतौर पर प्लांटयूएमएल कोड का उपयोग करके यूएमएल आरेख तैयार करता हूं... यहां, मुझे एहसास हुआ: यह कोड का एक रूप है, और कोड उत्पन्न किया जा सकता है।


इस प्रकार, चैटजीपीटी मेरे आरेख निर्माण के लिए एक मूल्यवान उपकरण के रूप में विकसित हुआ, और अब मैं आपके साथ अपने अनुभव साझा करने के लिए उत्साहित हूं।

यूएमएल के बारे में कुछ शब्द

यूएमएल का मतलब यूनिफाइड मॉडलिंग लैंग्वेज है, और यह सॉफ्टवेयर सिस्टम की कलाकृतियों को निर्दिष्ट करने, कल्पना करने, निर्माण करने और दस्तावेजीकरण करने के लिए एक भाषा के रूप में कार्य करती है। यूएमएल ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषाओं की अवधारणाओं से लिया गया है; विकास का ज्ञान होना यूएमएल मॉडलिंग के लिए फायदेमंद है लेकिन अनिवार्य नहीं है।


यह मुख्य रूप से सॉफ़्टवेयर डिज़ाइन के पहलुओं का वर्णन करने के लिए डिज़ाइन किया गया है, लेकिन यह व्यवसाय या उपयोगकर्ता की आवश्यकताओं को मॉडल करने के लिए व्यवहार आरेखों का एक सेट भी प्रदान करता है।


अपनी भूमिका में, मैं आईटी व्यवसाय प्रक्रियाओं से जुड़ा हुआ हूं, विशेष रूप से विश्लेषण, अनुकूलन के लिए उन्हें मॉडलिंग करने और डेवलपर्स के कार्यान्वयन के लिए उन्हें एक स्पष्ट प्रारूप में अनुवाद करने पर ध्यान केंद्रित करता हूं।

जब मॉडलिंग की बात आती है, तो मैं विभिन्न तरीकों और उपकरणों का उपयोग करता हूं, जिनमें से एक यूएमएल है।


इसकी खूबसूरती यही है - यूएमएल का उपयोग करने के लिए आपको सॉफ्टवेयर इंजीनियर होने की जरूरत नहीं है। मैं इसका उपयोग सॉफ्टवेयर के साथ कार्यान्वित व्यावसायिक प्रक्रियाओं के माध्यम से नेविगेट करने के लिए करता हूं, लेकिन यह उससे कहीं आगे जाता है - यह उल्लेखनीय रूप से बहुमुखी है और इसे विकास के विभिन्न चरणों में विभिन्न भूमिकाओं द्वारा लागू किया जा सकता है। कुल मिलाकर, इसे आज़माएँ; हो सकता है कि आप स्वयं को इससे प्यार करते हुए पाएं।

ड्रा बनाम कोड

किसी भी आरेख की तरह, आप इसे आसानी से बना सकते हैं - यह सरल, सुविधाजनक, त्वरित है, और प्रक्रिया और परिणाम का स्पष्ट दृश्य प्रदान करता है। इस उद्देश्य के लिए कई ग्राफिक उपकरण उपलब्ध हैं, और मैं उनका उपयोग करता हूं। हालाँकि, अक्सर मैं "कोड" दृष्टिकोण चुनता हूँ, इसके लिए प्लांटयूएमएल को धन्यवाद।


प्लांटयूएमएल , एक ओपन-सोर्स मॉडलिंग भाषा और उपकरण, आपको सादे पाठ भाषा के आधार पर चित्र बनाने की अनुमति देता है। सरल शब्दों में, आप आरेख बनाने के लिए प्लांटयूएमएल में कोड लिख सकते हैं।


मुझे अपने 'क्रिएटिव मोड' में रेखाचित्र बनाने में आनंद आता है, लेकिन अक्सर मैं या तो उन्हें बाद में कोड में बदल देता हूं या सीधे कोड लिख देता हूं। इसके दो मुख्य कारण हैं:

  1. आप अपने आरेखों में अधिक कुशलता से ब्लॉक सम्मिलित कर सकते हैं, स्थानांतरित कर सकते हैं और हटा सकते हैं

    खींचे गए आरेखों में ब्लॉकों का क्रम बदलने से अक्सर पूरे आरेख में संशोधन हो जाता है, जिससे अन्य ब्लॉक और लिंक प्रभावित होते हैं। कोड के साथ काम करते समय, आपको दृश्य पहलू के बारे में चिंता करने की ज़रूरत नहीं है; आप एक पाठ के साथ काम कर रहे हैं, और प्लांटयूएमएल आपके लिए ग्राफिकल प्रतिनिधित्व का ख्याल रखता है।


  2. आप चित्रों से निपटने के बजाय साधारण टेक्स्ट फ़ाइलों के साथ काम कर सकते हैं और उन्हें संग्रहीत कर सकते हैं

    दस्तावेज़ीकरण में आरेखों की छवियों का सामना करते समय यह विशेष रूप से फायदेमंद होता है। गुणवत्ता से समझौता किया जा सकता है. ऐसे आरेखों के साथ काम करना जारी रखना असंभव है, और उन्हें केवल दोबारा बनाया जा सकता है, संपादित या विस्तारित नहीं किया जा सकता है।


एक और महत्वपूर्ण लाभ यह है कि चैटजीपीटी प्लांटयूएमएल को समझता है और कोड उत्पन्न कर सकता है , जिससे आप कोड जेनरेशन के लाभों का आनंद ले सकते हैं और उन्हें यूएमएल के साथ सहजता से एकीकृत कर सकते हैं। मैं नीचे अपने व्यक्तिगत अनुभव से कुछ उदाहरण साझा करूंगा।


आप प्लंटयूएमएल के लिए किसी भी कोड संपादक का उपयोग कर सकते हैं। मैं व्यक्तिगत रूप से इसमें विजुअल स्टूडियो कोड और प्लांटयूएमएल एक्सटेंशन को प्राथमिकता देता हूं। दूसरा तरीका https://plantuml.com या अन्य जैसे ऑनलाइन रिएक्टर्स का उपयोग करना है।

चैटजीपीटी, मेरे लिए प्लंटयूएमएल कोड लिखें

उदाहरण 1 - मैं इसे खाली स्लेट से शुरू नहीं करना चाहता

आइए टैक्सी एप्लिकेशन के लिए एक उपयोग केस आरेख बनाएं।


सबसे पहले, मैं एक संकेत का उपयोग करता हूँ:

https://plantuml.com/ru/use-case-diagram से सिंटैक्स का उपयोग करें, टैक्सी ऐप के लिए उपयोग केस आरेख बनाएं


ChatGPT एक कोड उत्पन्न करता है:

 @startuml left to right direction actor "Passenger" as passenger actor "Driver" as driver rectangle "Taxi App" { usecase "Request Ride" as request usecase "Cancel Ride" as cancel usecase "Track Ride" as track usecase "Payment" as payment passenger -- (request) passenger -- (cancel) passenger -- (track) passenger -- (payment) driver -- (track) driver -- (payment) (request) --> (cancel) (request) --> (track) (track) --> (payment) } @enduml

दृश्य दृश्य:


विचार तो ठीक है, लेकिन केवल चार मामले होना अपर्याप्त लगता है। मैं अतिरिक्त मामले जोड़ने और कुछ सिंटैक्स उदाहरणों के साथ इसे बढ़ाने का अनुरोध करता हूं, क्योंकि प्लांटयूएमएल में कोई भी समान उदाहरण नहीं है। तत्पर:

अधिक मामले जोड़ें, आप विभिन्न प्रकार के लिंक का उपयोग कर सकते हैं जैसे शामिल, विस्तार और सामान्यीकरण, वाक्यविन्यास:

(केस1) .> (केस2_इनक्लूड_केस1) : <<इनक्लूड>>

(अभिभावक) <|-- (बच्चा)

(केस1 केस 2 को बढ़ाता है) .> (केस2) : <<एक्सटेंड>>


फिर मैं कई बार पूछता हूं

और मामले जोड़ें


फिर से और त्रुटियों को ठीक करने के लिए कुछ विशिष्ट अनुरोध करें।


चैटजीपीटी से अंतिम परिणाम यहां दिया गया है:

 @startuml left to right direction actor "Passenger" as passenger actor "Driver" as driver rectangle "Taxi App" { usecase "Request Ride" as request usecase "Cancel Ride" as cancel usecase "Track Ride" as track usecase "Payment" as payment usecase "Rate Driver" as rate usecase "View Ride History" as history usecase "Select Ride Type" as selectType usecase "Provide Feedback" as feedback usecase "View Driver Information" as driverInfo usecase "Update Profile" as updateProfile usecase "Promo Code" as promoCode usecase "Emergency Assistance" as emergencyAssistance passenger -- (selectType) passenger -- (request) passenger -- (cancel) passenger -- (track) passenger -- (payment) passenger -- (rate) passenger -- (history) passenger -- (feedback) passenger -- (driverInfo) passenger -- (updateProfile) passenger -- (promoCode) passenger -- (emergencyAssistance) driver -- (track) driver -- (payment) driver -- (rate) (request) ---> (cancel) (request) ---> (track) (track) ---> (payment) (track) ---> (rate) (history) --> (payment) (rate) --> (payment) (rate) ---> (track) (cancel) --> (request) (selectType) --> (request) (feedback) --> (rate) (driverInfo) ---> (track) (updateProfile) --> (track) (promoCode) --> (payment) (emergencyAssistance) --> (track) } @enduml 

मुझे मामले पसंद हैं, लेकिन उनके बीच के संबंध नहीं. इसलिए, मैं उस कोड को थोड़ा संपादित करता हूं।


यहाँ अंतिम परिणाम है:

 @startuml actor "Passenger" as passenger actor "Driver" as driver rectangle "Taxi App" { usecase "Request Ride" as request usecase "Cancel Ride" as cancel usecase "Track Ride" as track usecase "Payment" as payment usecase "Rate Driver" as rate usecase "View Ride History" as history usecase "Select Ride Type" as selectType usecase "Provide Feedback" as feedback usecase "View Driver Information" as driverInfo usecase "Update Profile" as updateProfile usecase "Promo Code" as promoCode usecase "Emergency Assistance" as emergencyAssistance passenger -- (selectType) passenger - (request) passenger -- (track) passenger -- (payment) passenger -- (history) passenger -- (rate) passenger -- (updateProfile) passenger -- (emergencyAssistance) driver - (request) driver - (payment) driver - (rate) (request) --> (track) (track) --> (payment) (track) --> (rate) (selectType) --> (request) (cancel) .> (request) : <<extends>> (rate) <.. (feedback) : <<include>> (payment) <..(promoCode) : <<include>> (driverInfo) .> (track) : <<extends>> } @enduml 


निश्चित रूप से, आप अधिक परिदृश्यों को शामिल कर सकते हैं। उदाहरण के लिए, उपयोगकर्ता पंजीकरण और लॉगिन के बारे में कोई जानकारी नहीं है। इसके अलावा, आप अपने डिज़ाइन से संबंधित आरेख बनाने के लिए ChatGPT का मार्गदर्शन कर सकते हैं। मुख्य बात यह है कि आपके पास एक फाउंडेशन है जिसका आप उपयोग कर सकते हैं।

उदाहरण 2 - मुझे एक आरेख की जाँच करने और उसे बढ़ाने की आवश्यकता है

मेरे पास रिवर्स प्रॉक्सी के साथ चित्र भंडारण समाधान के लिए अनुक्रम आरेख का एक सरल संस्करण है:

 @startuml participant Client boundary "Reverse Proxy" as Proxy participant Back participant FileStorage participant Admin actor Editor Editor -> Admin: Add picture Admin -> FileStorage: Add picture Client -> Proxy: Get picture Proxy -> Proxy: Check cache alt cash is not empty Proxy -->> Client: Return picture else cash is empty Proxy -> FileStorage: Recieve picture FileStorage --> Proxy: Picture Proxy -> Proxy: Save to cache Proxy -->> Client: Return picture end @enduml 


आइए इसे सुधारें. मेरा संकेत:

मैं छवियों को संग्रहीत करने और उपयोग करने के लिए एक समाधान डिज़ाइन कर रहा हूं, इस आरेख की जांच करें और यदि आवश्यक हो तो इसे संपादित करें


चैटजीपीटी सुझाव:

 1. **Participant Name Clarification:** - Consider renaming "Back" to something more descriptive, like "Application Server" or a similar term that better represents the functionality. 2. **Actor Placement:** - Move the "Editor" actor to a more standard position, usually at the top. @startuml participant Client actor Editor boundary "Reverse Proxy" as Proxy participant ApplicationServer participant FileStorage participant Admin Editor -> Admin: Add picture Admin -> FileStorage: Add picture Client -> Proxy: Get picture Proxy -> Proxy: Check cache alt cache is not empty Proxy -->> Client: Return picture else cache is empty Proxy -> ApplicationServer: Receive picture ApplicationServer --> Proxy: Picture Proxy -> Proxy: Save to cache Proxy -->> Client: Return picture end @enduml


मुझे अभिनेता प्लेसमेंट की बात पसंद नहीं है, इसलिए मैंने इसे वापस रख दिया; बाकी सब ठीक है.


फिर मैंने एक संकेत कई बार दोहराया:

इस आरेख की जाँच करें और यदि आवश्यक हो तो इसे बढ़ाएँ


और संकेत लिखें:

दिखाएँ कि एप्लिकेशन सर्वर डेटाबेस से तस्वीर कैसे प्राप्त करता है


नियंत्रण का फोकस जोड़ें


कुछ कोने वाले केस जोड़ें


इसे अंतिम रूप देने के लिए, मैं नियंत्रण का फोकस समायोजित करता हूं और नामकरण में कुछ बदलाव करता हूं। यहाँ अंतिम परिणाम है:

 @startuml participant Client boundary "Reverse Proxy" as Proxy participant ApplicationServer database FileStorage participant Admin actor Editor Editor -> Admin: Add picture activate Admin deactivate Admin Admin -> FileStorage: Add picture activate FileStorage deactivate FileStorage Admin -> ApplicationServer: Store metadata activate ApplicationServer Client -> Proxy: Get picture activate Proxy Proxy -> Proxy: Check cache alt cache is not empty Proxy -->> Client: Return picture else cache is empty Proxy -> ApplicationServer: Receive picture request activate FileStorage ApplicationServer -> FileStorage: Retrieve picture from database alt picture not found in database FileStorage --> ApplicationServer: Picture not found deactivate FileStorage ApplicationServer -> Proxy: Notify picture not found Proxy -->> Client: Picture not found else FileStorage --> ApplicationServer: Picture data deactivate FileStorage ApplicationServer -> Proxy: Send picture to Proxy Proxy -> Proxy: Save to cache Proxy -->> Client: Return picture end end deactivate Proxy deactivate ApplicationServer deactivate Admin deactivate Editor @enduml 

कमियां

सबसे पहले, आपको सब कुछ जांचना होगा क्योंकि "ChatGPT गलतियाँ कर सकता है।" इसका मतलब आपके लिए प्रतिस्थापन नहीं है, बल्कि यह आपके काम को सुव्यवस्थित और अनुकूलित करने का एक उपकरण है।


सबसे आम त्रुटियाँ प्लांटयूएमएल सिंटैक्स से संबंधित हैं। कभी-कभी, यह बातचीत के बीच में होता है, और मुझे इसे ठीक करना होगा और चैटजीपीटी को सही रास्ते पर वापस लाना होगा।


दूसरा, मैं ChatGPT 3.5 का निःशुल्क संस्करण उपयोग करता हूं और इसमें उतार-चढ़ाव आते रहते हैं। कभी-कभी, यह बदतर काम करता है और उसी संकेत के लिए कुछ यादृच्छिक उत्तर देता है।


तीसरा, चैटजीपीटी कुछ आरेखों को दूसरों की तुलना में बेहतर समझता है। उदाहरण के लिए, यह उपयोग केस आरेखों की तुलना में अनुक्रम आरेखों के साथ बहुत बेहतर काम करता है।


हालाँकि, इन सीमाओं के बावजूद, चैटजीपीटी एक मूल्यवान उपकरण और एक उत्कृष्ट सहायक बना हुआ है जो आपकी दक्षता बढ़ाने और आपका समय बचाने में सक्षम है।

निष्कर्ष

मैं अपने काम में चैटजीपीटी का स्थायी रूप से उपयोग करता हूं। यदि आप एक प्रबंधक, विश्लेषक, डेवलपर, परीक्षक या किसी अन्य भूमिका में हैं, तो आप यूएमएल का उपयोग कर सकते हैं। यदि ऐसा है, तो प्लांटयूएमएल कोड लिखने और जनरेट करने पर विचार करें - इससे आपका समय बचेगा और आपकी दक्षता बढ़ेगी।


मुझे आशा है कि मेरा अनुभव उपयोगी होगा और आपको प्रेरित करेगा। धन्यवाद!