एक एक्टिविटी डायग्राम क्या है?
एक एक्टिविटी डायग्राम एक व्यवहारात्मक UML डायग्राम जो सॉफ्टवेयर एप्लिकेशन के लिए एक उच्च-शक्ति, औपचारिक फ्लोचार्ट के रूप में कार्य करता है। संयुक्त मॉडलिंग भाषा (UML) विनिर्माण का एक महत्वपूर्ण घटक होने के नाते, यह एक सिस्टम घटक, व्यापार प्रक्रिया या एल्गोरिदमिक निष्पादन लूप के चरण-दर-चरण संचालन कार्यप्रणाली को नक्शा बनाता है। एक प्रारंभिक शुरुआती बिंदु से अंतिम निष्कर्ष तक नियंत्रण के क्रमिक प्रवाह को ट्रैक करके, यह विशिष्ट UML डायग्राम प्रकार सॉफ्टवेयर इंजीनियरों, उत्पाद प्रबंधकों और व्यापार विश्लेषकों को जटिल सिस्टम तर्क को चार्ट करने, किनारे के मामलों को पहचानने और बैकएंड लॉजिक लिखने से पहले समानांतर निष्पादन पथों को दृश्य रूप से अलग करने में मदद करता है।
साथ में VPasCode, आपको फ्लो बॉक्स को हाथ से व्यवस्थित करने, त стрेल अंतर्सेक्शन की गणना करने या लेआउट स्पेसिंग को संतुलित करने की आवश्यकता नहीं है। इंजन एक आधुनिकीकृत, स्क्रिप्ट-जैसे फॉर्मेटिंग मानक का उपयोग करता है जो आपके कोडिंग के साथ ही स्वचालित रूप से साफ, बहुत पठनीय लेआउट वेक्टर उत्पन्न करता है।
कोर सिंटैक्स गाइड: तत्व और निर्माण
PlantUML में एक शानदार, मानकों के अनुरूप UML एक्टिविटी डायग्राम डिज़ाइन करने के लिए, आपको निष्पादन चेकपॉइंट्स, एक्टिविटी स्टेट्स, शर्ती शाखाएं, समानांतर विभाजन और ऊर्ध्वाधर स्विमलेन को समझना होगा।
1. निष्पादन चेकपॉइंट्स और मूल गतिविधियां
पुराने UML नोटेशन के विपरीत, आधुनिक एक्टिविटी स्क्रिप्ट्स अपने वर्कफ्लो की सीमाओं को चिह्नित करने के लिए साफ, स्पष्ट कमांड टैग का उपयोग करते हैं। एक एक्टिविटी नोड को सिर्फ एक ट्रेलिंग कोलन और सेमीकोलन के भीतर पाठ रखकर परिभाषित किया जाता है:
शुरू
:एप्लिकेशन कंटेक्स्ट को इनिशियलाइज़ करें;
:लोकल कॉन्फ़िगरेशन कैश को लोड करें;
बंद 
2. शर्ती तर्क शाखाएं (if / else / switch)
ऑपरेशनल पैरामीटर्स के आधार पर अपने नियंत्रण तर्क को शाखित करने के लिए, मानक प्रोग्रामिंग सिंटैक्स लूप का उपयोग करें। आप पैरेंथेसिस के भीतर लेबल जोड़ सकते हैं ताकि तीर लाइन के नीचे जाने के लिए आवश्यक विशिष्ट मूल्यांकन मानदंड को इंगित किया जा सके:
- बाइनरी फॉर्क्स (if / elseif / else): सरल ट्रू/फॉल्स मान्यता जांच के लिए आदर्श:
Plantuml Edit Plantuml in VPasCode
अगर (टोकन वैध है?) तो (हां) :API एक्सेस जारी करें; नहीं (नहीं) :लॉगिन पर रीडायरेक्ट करें; अंत
- मल्टी-पाथ स्विच (switch): अंतहीन if बयानों को नेस्ट किए बिना संख्यात्मक सीमाओं, भूमिका स्तरों या स्ट्रिंग मैचिंग पैटर्न के मूल्यांकन के लिए आदर्श:
Plantuml Edit Plantuml in VPasCode
switch (उपयोगकर्ता भूमिका प्रकार) case ( प्रशासक ) :पूर्ण कंसोल रेंडर करें; case ( सम्मानित ) :नियंत्रण पैनल रेंडर करें; case ( अतिथि ) :पठन-केवल फीड रेंडर करें; endswitch
3. समानांतर निष्पादन (फॉर्क / जॉइन)
जब आधुनिक क्लाउड परिवेशों या बहु-थ्रेडेड कोड लूप के मॉडलिंग करते हैं, तो आपको आमतौर पर समानांतर रूप से होने वाले कार्यों का प्रतिनिधित्व करने की आवश्यकता होती है। फॉर्क निर्माण का उपयोग करके अपने निष्पादन स्ट्रिंग को स्वतंत्र, समानांतर लेन में विभाजित करें, और एक जॉइन टोकन का उपयोग करके उन्हें एकल धागे में वापस मिलाएं:
फॉर्क
:ईमेल इन्वॉइस उत्पन्न करें;
फॉर्क फिर से
:वेयरहाउस इन्वेंटरी काटें;
एंड फॉर्क 
4. स्विमलेन्स के साथ जिम्मेदारी को व्यवस्थित करना
किसी विशिष्ट क्रिया के लिए किस अभिनेता, सेवा टीम या माइक्रोसर्विस इंफ्रास्ट्रक्चर सीमा की जिम्मेदारी है, इसे स्पष्ट रूप से परिभाषित करने के लिए ऊर्ध्वाधर विभाजनों का उपयोग करें, जिन्हें स्विमलेन्स के रूप में जाना जाता है। आप एक स्विमलेन की घोषणा नली चरित्रों के भीतर एक शीर्षक स्ट्रिंग को लपेटकर करते हैं (|लेन शीर्षक|):
|क्लाइंट एप्लिकेशन|
शुरू करें
:खरीद बटन दबाएं;
|#हल्का नीला भुगतान गेटवे|
:क्रेडिट कार्ड को अनुमति दें; 
स्पष्ट गतिविधि प्रवाह के लिए उत्तम व्यवहार
- सक्रिय क्रिया लेबल का उपयोग करें: क्रिया-केंद्रित क्रियावाचक शब्दों (उदाहरण के लिए,
:पेलोड का विश्लेषण करें;के बजाय:कार्यकर्ता एप्लिकेशन द्वारा पेलोड डेटा का विश्लेषण किया जाता है;). - उच्च जोखिम वाले नोड्स को रंगीन कोड करें: संवेदनशील पृष्ठभूमि नोड्स पर सीधे कस्टम हेक्स रंग जोड़ें (उदाहरण के लिए,
:#गहरा गुलाबी:डेटाबेस रिकॉर्ड्स को साफ करें;) बड़े एंटरप्राइज मानचित्रों में महत्वपूर्ण चरणों को दृश्य रूप से उभरने देने के लिए। - लाइनों को पार करने से बचें: यदि आपका बहु-शाखा आरेख अब भारी लगने लगे, तो डिटैच नोटेशन (
डिटैच) या टर्मिनल एंकर्स का उपयोग करके एक साफ, गोल कनेक्टर नोड को जोड़कर टेक्स्ट ब्लॉक्स को अलग करें।
वास्तविक दुनिया के PlantUML एक्टिविटी डायग्राम उदाहरण
उदाहरण 1: उपयोगकर्ता ऑनबोर्डिंग और पहचान प्रमाणीकरण (शाखाएँ और स्विच)
यह बॉयलरप्लेट एक मानक उपयोगकर्ता ऑनबोर्डिंग वर्कफ्लो का मॉडल बनाता है जिसमें गहन बाइनरी शर्ती तर्क और एक साफ UML डायग्राम लेआउट के भीतर पहचान प्रमाणीकरण जांच शामिल है।
@startuml
शुरुआत
:उपयोगकर्ता साइन-अप फॉर्म जमा करता है;
यदि (ईमेल पहले से मौजूद है?) तो (हाँ)
:खाता संघर्ष चेतावनी दिखाएं;
रोकें
विना (नहीं)
:लंबित उपयोगकर्ता रिकॉर्ड बनाएं;
एंडिफ
:सत्यापन OTP कोड भेजें;
दोहराएं
:उपयोगकर्ता OTP इनपुट का इंतजार करें;
पीछे:असफल प्रयास चेतावनी लॉग करें;
दोहराएं जब तक (OTP सही है?) नहीं (नहीं) नहीं (हाँ)
स्विच (खाता चयन स्तर)
case ( प्रीमियम भुगतान किया गया )
:डेटाबेस क्लस्टर प्रदान करें;
:स्ट्राइप सब्सक्रिप्शन लूप ट्रिगर करें;
case ( मुफ्त स्तर )
:मूल API दर सीमाएँ लागू करें;
एंडस्विच
:उपयोगकर्ता प्रोफाइल को सत्यापित चिह्नित करें;
रोकें
@enduml 
सिंटैक्स विश्लेषण: यह टेम्पलेट एक मानक दोहराएं / पीछे / दोहराएं जब तक सत्यापन लूप का प्रदर्शन करता है जो लगातार उपयोगकर्ता प्रविष्टियों को तब तक लपेटता रहता है जब तक सही सुरक्षा कुंजी पार नहीं हो जाती। बहु-पथ स्विच वाल्व लॉजिक को स्तर स्थिति मानों के आधार पर अच्छी तरह से अलग करता है।
उदाहरण 2: वितरित ऑर्डर फुलफिलमेंट इंजन (स्विमलेन और समानांतर फॉर्क)
यह जटिल एंटरप्राइज आर्किटेक्चर मानचित्र संरचनात्मक ऊर्ध्वाधर स्विमलेन का उपयोग करके ठीक तरीके से ट्रेस करता है कि एक स्वचालित चेकआउट फ्लो ब्राउज़र क्लाइंट, एपीआई गेटवे और एक भौतिक फुलफिलमेंट सेंटर के माध्यम से कार्यों को समानांतर रूप से कैसे प्रक्रिया करता है।
@startuml
|#सफेद|क्लाइंट एप्लिकेशन|
शुरुआत
:शॉपिंग कार्ट जमा करें;
:शिपिंग पता चुनें;
|#हल्का नीला|चेकआउट API इंजन|
:उत्पाद इन्वेंट्री की पुष्टि करें;
यदि (वस्तुएँ स्टॉक में हैं?) तो (नहीं)
:स्टॉक से बाहर त्रुटि लौटाएं;
रोकें
विना (हाँ)
:इन्वेंट्री आवंटन लॉक करें;
एंडिफ
फॉर्क
:स्ट्राइप के माध्यम से भुगतान प्रक्रिया करें;
:डिजिटल PDF रसीद उत्पन्न करें;
फॉर्क फिर से
|#बैंगनी|वेयरहाउस मैनेजमेंट सिस्टम|
:भौतिक पैकिंग स्लिप प्रिंट करें;
:वेयरहाउस रोबोट पिकर नियुक्त करें;
एंड फॉर्क
|#हल्का नीला|चेकआउट API इंजन|
:ऑर्डर पुष्टि हुक भेजें;
रोकें
@enduml 
सिंटैक्स विश्लेषण: रंग-कोडित स्विमलेन के उपयोग (जैसे |#बैंगनी वेयरहाउस मैनेजमेंट सिस्टम|) स्वचालित लेआउट इंजन को तेज, अलग-अलग कॉलम बनाने के लिए मजबूर करता है। समानांतर फॉर्ककथन स्पष्ट रूप से दिखाता है कि API इंजन पर भुगतान प्रक्रिया और भौतिक गोदाम में पैकिंग स्लिप उत्पादन समानांतर रूप से होते हैं, जो टर्मिनल से पहले स्पष्ट रूप से एक साथ मिल जाते हैंरुको ब्लॉक।