![A 16:10 hero banner styled graphic featuring a clean, modern illustration. The background is subtle and uses glowing accents, circuit board traces, and digital symbols with blues, greens, and white colors. Vertical columns define main participants like "Card Reader", "ATM Interface", "Bank Server", and "Cash Dispenser" across the top. Arrows with numbered steps (1, 2, 3...) indicate the sequential flow of communication, beginning with a "Customer" actor on the left. Key sections highlight the main decision structures using "alt [PIN Invalid] / [PIN Valid]" and "alt [Insufficient Funds] / [Account Approved]", clearly detailing both successful and alternative paths of interaction. No product logos are included. At the very top center, the main title in clean fonts reads "BUILDING A ROBUST ATM SEQUENCE DIAGRAM" with a subtitle "STEP-BY-STEP PLANTUML GUIDE".](https://www.vpascode.com/wp-content/uploads/2026/08/atm-sequence-diagram-plantuml-guide.jpg)
प्रणालीगत वित्तीय लेनदेन को डिज़ाइन करने के लिए निरपेक्ष स्पष्टता की आवश्यकता होती है। चाहे आप बैंकिंग इंजन का निर्माण कर रहे हों, पुराने वर्कफ्लो का दस्तावेज़ीकरण कर रहे हों, या इंजीनियरिंग टीमों को प्रशिक्षित कर रहे हों, एकPlantUML क्रम आरेख प्रणाली के घटकों के बीच समय-क्रमबद्ध बातचीत को दृश्यमान करने के लिए सबसे प्रभावी तरीकों में से एक है।
इस ट्यूटोरियल में, मैं आपके साथ एक व्यापकATM नकद निकासी क्रम आरेख के बुनियादी बिंदु से बनाने के लिए मेरे सटीक विचार प्रक्रिया के माध्यम से चलूंगा। हम प्रतिभागी सेटअप, संदेश प्रवाह और त्रुटि संभाल के लिए नेस्टेड शर्ती श ram शामिल करेंगे—सभी का उपयोग करते हुएVPasCode हमारा मुफ्तआरेख-कोड टूल और ऑनलाइनPlantUML संपादक.

चरण 1: शीर्षक और स्वचालित चरण संख्या सेट करना
मैं हमेशा मेरे PlantUML आरेखों को स्पष्ट वैश्विक कॉन्फ़िगरेशन लगाकर शुरू करता हूँ। जब आप ATM निकासी जैसे वित्तीय संचालन के मॉडलिंग कर रहे हों, तो क्रमिक कार्यान्वयन का अनुसरण करना डेवलपर्स और ऑडिटर्स दोनों के लिए महत्वपूर्ण होता है।
इस उद्देश्य को प्राप्त करने के लिए, मैं@startuml टैग से शुरू करता हूँ, एक वर्णनात्मक शीर्षक परिभाषित करता हूँ, औरस्वचालित संख्या विशेषता को सक्षम करता हूँ।
@startuml
title ATM नकद निकासी क्रम आरेख
autonumber
क्यों उपयोग करेंस्वचालित संख्या? स्वचालित संख्या के बिना, समीक्षकों को क्रम रेखाओं का हाथ से अनुसरण करना होता है ताकि क्रम को समझ सकें। क्रमबद्ध संख्या निर्धारित करने से प्रत्येक अनुरोध और प्रतिक्रिया को स्वचालित रूप से सूचीबद्ध किया जाता है, जिससे आर्किटेक्चर समीक्षा के दौरान प्रतिसंदर्भ बिल्कुल आसान हो जाता है।
चरण 2: अभिनेताओं और प्रणाली सहभागियों को परिभाषित करना
अगला, मैं लेनदेन में भाग लेने वाले विशिष्ट एजेंटों की पहचान करता हूँ। मैं मानव अभिनेताओं को बैकएंड घटकों और हार्डवेयर सबसिस्टम से अलग करना चाहता हूँ।
PlantUML को संदेश बनाए जाने पर स्वचालित रूप से प्रतिभागियों की घोषणा करने देने के बजाय, मैं उन्हें शीर्ष पर स्पष्ट रूप से परिभाषित करता हूँ। इससे यह गारंटी होती है कि वे तार्किक, बाएं से दाएं क्रम में दिखाई देंगे जो उनकी संरचनात्मक सीमा को दर्शाता है:
क्रियाकलाप ग्राहक
भागीदार "ATM इंटरफेस" के रूप में ATM
भागीदार "कार्ड रीडर" के रूप में रीडर
भागीदार "बैंक सर्वर" के रूप में बैंक
भागीदार "नकद वितरक" के रूप में डिस्पेंसर
डिज़ाइन तर्क:
एक्टर ग्राहक: मानव उपयोगकर्ता को क्रिया शुरू करने वाला प्रतिनिधित्व करता है।प्रतिभागी ... के रूप में एलियास: छोटे एलियास जैसे निर्धारित करनाATM,रीडर, औरबैंकबाकी स्क्रिप्ट को लंबे प्रदर्शन डेटा स्ट्रिंग्स को दोहराए बिना साफ और पढ़ने योग्य बनाता है।- रखकर
रीडरके बीचग्राहकऔरATM इंटरफेस, मैं सॉफ्टवेयर यूआई इंटरैक्शन से पहले कार्ड इन्सर्ट करने के भौतिक क्रम को सही तरीके से प्रतिबिंबित करता हूँ।
चरण 3: प्रारंभिक प्रमाणीकरण प्रवाह का मॉडलिंग
प्रतिभागियों की घोषणा करने के बाद, मैं सुखद मार्ग के शुरुआती चरणों को नक्शा बनाना शुरू करता हूँ: कार्ड डालना, डेटा पढ़ना, पिन के लिए प्रेरित करना, और केंद्रीय बैंक सर्वर से संपर्क करना।
ग्राहक -> रीडर: ATM कार्ड डालें
रीडर -> ATM: कार्ड विवरण पढ़ें
ATM -> ग्राहक: पिन के लिए प्रेरित करें
ग्राहक -> ATM: पिन दर्ज करें
ATM -> बैंक: कार्ड और पिन की पुष्टि करें
ध्यान दें कि सिंक्रोनस संदेश सॉलिड तीरों का उपयोग करते हैं (->). कार्ड हार्डवेयर ATM सॉफ्टवेयर को ट्रिगर करता है, जो उपयोगकर्ता को प्रेरित करता है, इनपुट को कैप्चर करता है, और प्रमाणीकरण प्रमाण पास करता है सुरक्षित रूप से बैंक सर्वर।
चरण 4: alt ब्लॉक्स के साथ प्रमाणीकरण शाखाओं का संरचना
वास्तविक दुनिया के प्रणाली विफल होती हैं, और अनुक्रम आरेखों को त्रुटि स्थितियों को स्पष्ट रूप से संचारित करना चाहिए। जब ATM बैंक से प्रमाणीकरण के लिए अनुरोध करता है, तो दो परिणाम हो सकते हैं: प्रमाणीकरण विफल होता है या सफल होता है।
PlantUML में शर्ती तर्क को प्रतिनिधित्व करने के लिए, मैं एक का उपयोग करता हूँalt / विकल्प / समाप्त ब्लॉक:
alt PIN अमान्य
बैंक --> ATM: प्रमाणीकरण विफल
ATM -> ग्राहक: "अमान्य PIN" संदेश प्रदर्शित करें
ATM -> रीडर: कार्ड निकालें
रीडर --> ग्राहक: कार्ड वापस करें
विकल्प PIN सही है
बैंक --> ATM: प्रमाणीकरण सफल
ATM -> ग्राहक: लेनदेन चयन और राशि प्राप्त करें
ग्राहक -> ATM: "निकासी" चुनें और राशि दर्ज करें
ATM -> बैंक: निकासी अनुमति अनुरोध (राशि)
...
समाप्त
उपयोग की गई मुख्य तकनीकें:
- बिंदीदार वापसी तीर (
-->) कॉलर घटकों को वापस असिंक्रोनस प्रतिक्रिया संदेश संकेतित करते हैं। - स्पष्ट ब्लॉक लेबल जैसे
[PIN अमान्य]और[PIN सही]सॉफ्टवेयर विकासकर्ताओं को तुरंत यह बताते हैं कि त्रुटि प्रवाह कैसे समाप्त होता है (उदाहरण के लिए, त्रुटि प्रदर्शित करना, कार्ड निकालना, और हार्डवेयर वापस करना)।
चरण 5: खाता प्रमाणीकरण और नकद वितरण के लिए नेस्टेड तर्क
जब प्रमाणीकरण की पुष्टि हो जाती है, तो उपयोगकर्ता निकासी का अनुरोध करता है। हालांकि, बैंक को खाता शेष और दैनिक सीमा की जांच करनी होती है। इस द्वितीयक सत्यापन का प्रतिनिधित्व करने के लिए, मैं दूसरा एक alt ब्लॉक के अंदर PIN सही शाखा में।
यदि धन की कमी है, तो लेनदेन सुरक्षित रूप से समाप्त हो जाता है। यदि अनुमोदित है, तो बैंक खाते से राशि काटता है, नकद वितरक को सक्रिय करता है, नकद दिखाता है, कार्ड निकालता है, और एक वैकल्पिक प्रिंटेड रसीद प्रदान करता है।
alt पर्याप्त धन नहीं / दैनिक सीमा पार कर गई है
बैंक --> ATM: लेनदेन अस्वीकृत
ATM -> ग्राहक: त्रुटि संदेश प्रदर्शित करें
ATM -> रीडर: कार्ड निकालें
रीडर --> ग्राहक: कार्ड वापस करें
विकल्प खाता अनुमोदित है
बैंक -> बैंक: खाता शेष घटाएं
बैंक --> ATM: लेनदेन अनुमोदित
ATM -> वितरक: नकद वितरित करें
वितरक --> ATM: नकद तैयार है
ATM -> ग्राहक: नकद प्रदर्शित करें
ग्राहक -> ATM: नकद लें
ATM -> रीडर: कार्ड निकालें
रीडर --> ग्राहक: कार्ड वापस करें
ATM -> ग्राहक: रसीद प्रिंट करें (वैकल्पिक)
समाप्त
प्रो टिप: आ inter आह्वान का ध्यान दें बैंक -> बैंक: खाता शेष घटाएं. PlantUML में स्व-संदर्भित तीर आंतरिक बैकएंड राज्य अपडेट को रेखांकित करने के लिए आदर्श हैं जो बाहरी नेटवर्क संदेश के बिना होते हैं।
पूर्ण PlantUML स्क्रिप्ट
यहां हमारे ATM नकद निकासी के अनुक्रम आरेख के लिए पूर्ण, संयुक्त स्रोत कोड है। आप इस कोड को अपने पसंदीदा मुफ्त PlantUML संपादक में संपादित या वेक्टर ग्राफिक्स रेंडर करने के लिए कॉपी और पेस्ट कर सकते हैं:
@startuml
title एटीएम कैश निकासी अनुक्रम आरेख
autonumber
एक्टर ग्राहक
पार्टिसिपेंट "एटीएम इंटरफेस" के रूप में एटीएम
पार्टिसिपेंट "कार्ड रीडर" के रूप में रीडर
पार्टिसिपेंट "बैंक सर्वर" के रूप में बैंक
पार्टिसिपेंट "नकदी वितरक" के रूप में डिस्पेंसर
ग्राहक -> रीडर: एटीएम कार्ड डालें
रीडर -> एटीएम: कार्ड विवरण पढ़ें
एटीएम -> ग्राहक: पिन प्राप्त करने के लिए प्रेरित करें
ग्राहक -> एटीएम: पिन दर्ज करें
एटीएम -> बैंक: कार्ड और पिन की पुष्टि करें
अल्ट पिन अमान्य
बैंक --> एटीएम: प्रमाणीकरण विफल
एटीएम -> ग्राहक: "अमान्य पिन" संदेश प्रदर्शित करें
एटीएम -> रीडर: कार्ड बाहर निकालें
रीडर --> ग्राहक: कार्ड वापस करें
एल्स पिन मान्य
बैंक --> एटीएम: प्रमाणीकरण सफल
एटीएम -> ग्राहक: लेनदेन चयन और राशि के लिए प्रेरित करें
ग्राहक -> एटीएम: "निकासी" चुनें और राशि दर्ज करें
एटीएम -> बैंक: निकासी अनुमति मांगें (राशि)
अल्ट पर्याप्त धन नहीं / दैनिक सीमा पार कर गई
बैंक --> एटीएम: लेनदेन अस्वीकृत
एटीएम -> ग्राहक: त्रुटि संदेश प्रदर्शित करें
एटीएम -> रीडर: कार्ड बाहर निकालें
रीडर --> ग्राहक: कार्ड वापस करें
एल्स खाता मंजूर
बैंक -> बैंक: खाता शेष घटाएं
बैंक --> एटीएम: लेनदेन मंजूर
एटीएम -> डिस्पेंसर: नकदी वितरित करें
डिस्पेंसर --> एटीएम: नकदी तैयार है
एटीएम -> ग्राहक: नकदी प्रस्तुत करें
ग्राहक -> एटीएम: नकदी लें
एटीएम -> रीडर: कार्ड बाहर निकालें
रीडर --> ग्राहक: कार्ड वापस करें
एटीएम -> ग्राहक: रसीद प्रिंट करें (वैकल्पिक)
एंड
एंड
@enduml 
VPasCode के साथ अपने अनुक्रम आरेखों को क्यों रेंडर करें?
कोड का उपयोग करके जटिल आरेख बनाने के लिए थकाऊ स्थानीय वातावरण सेटअप या हाथ से कमांड-लाइन संकलन की आवश्यकता नहीं होनी चाहिए।VPasCodeविजुअल पैराडाइम द्वारा आपके ब्राउज़र में सीधे तुरंत रेंडरिंग और शक्तिशाली एआई सहायता लाता है:
- स्वचालित प्रारूप निर्धारण:PlantUML, Mermaid, Graphviz या D2 स्क्रिप्ट्स पेस्ट करें—VPasCode तुरंत डीएसएल प्रारूप की पहचान करता है और रियल-टाइम में रेंडर करता है।
- एआई कोड त्रुटि निवारण: सिंटैक्स बग में फंसे हुए हैं? क्लिक करें “एआई द्वारा ठीक करें” पारदर्शी साइड-बाय-साइड डिफ्स देखने और सिंटैक्स त्रुटियों को स्वचालित रूप से ठीक करने के लिए।
- बहुभाषी एआई अनुवाद: केवल कुछ सेकंड में अंतरराष्ट्रीय तकनीकी टीमों के लिए आरेख लेबल और संदेशों का आसानी से अनुवाद करें।
- उच्च-रिज़ॉल्यूशन निर्यात: तकनीकी दस्तावेज़ीकरण और स्लाइड डेक के लिए साफ, स्केलेबल एसवीजी वेक्टर ग्राफिक्स या उच्च-रिज़ॉल्यूशन पीएनजी छवियां डाउनलोड करें।



