प्रस्तावना

1. मुख्य निर्माण ब्लॉक: DFD “शब्दावली”
स्तरों और प्रकारों में उतरने से पहले, आपको उन चार मौलिक प्रतीकों की आवश्यकता है जिनसे हर DFD बना होता है। ये सभी नोटेशन (Yourdon/DeMarco, Gane & Sarson, SSADM) में सुसंगत हैं — ये केवल आकार.
| तत्व | उद्देश्य | गेन और सारसन आकार | योरडन/डेमार्को आकार |
|---|---|---|---|
| बाहरी एंटिटी (टर्मिनेटर) | एक स्रोत या सिंक बाहर सिस्टम — एक व्यक्ति, संगठन, या बाहरी सिस्टम जो डेटा प्रदान करता या उपभोग करता है | गोल आयत | वर्ग / बॉक्स |
| प्रक्रिया | इनपुट को आउटपुट में परिवर्तित करता है। हमेशा एक क्रियापद के साथ नामित और क्रमांकित | गोल आयत | वृत्त (बुलबुला) |
| डेटा स्टोर | जहाँ डेटा स्थिर अवस्था में संग्रहीत होता है — एक फ़ाइल, डेटाबेस, या भंडार | खुली छोर वाली आयत | दो समानांतर रेखाएँ |
| डेटा प्रवाह | एक नामित तीर जो तत्वों के बीच डेटा के गतिशील होने को दर्शाता है | लेबल वाला तीर | लेबल वाला तीर |
नामकरण के नियम (स्पष्टता के लिए अत्यंत महत्वपूर्ण):
-
प्रक्रियाएँ: संख्या + क्रिया वाक्यांश →
1.0 ऑर्डर की पुष्टि करें,2.0 इन्वेंट्री की जाँच करें. यह अंकन विघटन को सक्षम बनाता है (प्रक्रिया2.0में विभाजित होती है2.1,2.2,2.3…). -
डेटा भंडार: संख्या + संज्ञा वाक्यांश →
D1 ग्राहक,D2 इन्वेंट्री. -
डेटा प्रवाह: डेटा सामग्री का एक संक्षिप्त विवरण →
ऑर्डर अनुरोध,भुगतान सत्यापन,स्टॉक गणना.
2. स्तर हियरार्की (विघटन द्वारा अमूर्तता)
लेवल वाले डीएफडी (Data Flow Diagrams) का मूल विचार है ऊपर से नीचे की ओर विघटन: आप एक अदृश्य बुलेट से शुरू करते हैं और प्रत्येक प्रक्रिया को सरल बनाने के लिए उसके आंतरिक हिस्सों को पुनरावृत्त रूप से उजागर करते हैं।
2.1 संदर्भ आरेख (स्तर 0)
-
अमूर्तता: संभवतः सबसे उच्च — संपूर्ण प्रणाली एक प्रक्रिया.
-
यह क्या दर्शाता है: बाहरी इकाइयाँ और उन्हें एकल प्रणाली बुलेट से जोड़ने वाले डेटा प्रवाह। बस इतना ही।
-
यह जानबूझकर क्या छिपाता है: हर आंतरिक प्रक्रिया, हर डेटा भंडार, और सभी डेटा प्रवाह के भीतर प्रणाली।
-
उद्देश्य: परिभाषित करता है प्रणाली की सीमा — ‘क्या अंदर है’ और ‘क्या बाहर है’ के बीच की स्पष्ट रेखा।
नीचे एक प्रणाली के लिए संदर्भ आरेख दिया गया है ऑर्डर प्रोसेसिंग सिस्टम. ध्यान दें कि पूरा सिस्टम एक प्रोसेस के रूप में कैसे दिखाई देता है 0, और सभी विवरण बाहरी दुनिया में धकेल दिए जाते हैं:

digraph DFD_Context {
graph [
rankdir = LR
splines = true
overlap = false
nodesep = 0.5
ranksep = 1.2
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
label = "ऑर्डर प्रोसेसिंग सिस्टम — कॉन्टेक्स्ट डायग्राम (लेवल 0)"
labelloc = t
]
node [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 11
penwidth = 1.5
]
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
Customer; Supplier; Bank;
subgraph cluster_SystemBoundary {
label = "ऑर्डर प्रोसेसिंग सिस्टम";
fontname = "Helvetica,Arial,sans-serif; bold"
fontsize = 14
color = "#757575"
style = "dashed,rounded"
bgcolor = "#FAFAFA"
margin = 20
node [shape = circle, style = "filled", fillcolor = "#E8F5E9", color = "#388E3C", fixedsize = true, width = 1.6]
SYS [label="0nऑर्डरnप्रोसेसिंगnसिस्टम"];
}
edge [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 9
color = "#555555"
arrowsize = 0.8
]
Customer -> SYS [label="ऑर्डरnअनुरोध"];
SYS -> Customer [label="ऑर्डरnपुष्टि औरnस्थिति"];
Supplier -> SYS [label="इन्वेंट्रीnउपलब्धता"];
SYS -> Supplier [label="स्टॉकnअनुरोध"];
Bank -> SYS [label="भुगतानnसत्यापन"];
SYS -> Bank [label="भुगतान औरnवितरण अनुरोध"];
}
सीमा पढ़ें: इस कॉन्टेक्स्ट डायग्राम में, सिस्टम कुछ भी दृश्यमान नहीं करता — लेकिन हर बाहरी इंटरैक्शन को सूचीबद्ध किया गया है। यह आर्टिफैक्ट वह अनुबंध है जिसे आपने हितधारकों के साथ हस्ताक्षर किया है: यह स्कोप को कैप्चर करता है और स्कोप क्रिप को रोकता है क्योंकि इस डायग्राम पर कोई भी चीज़ स्कोप के बाहर है।
2.2 लेवल 1 DFD
-
अमूर्तता: एकल
0प्रोसेस को इसके प्रमुख उप-प्रोसेसों में तोड़ता है. -
यह क्या दिखाता है: प्राथमिक कार्यात्मक क्षेत्र, प्रमुख डेटा स्टोरेज, और डेटा उनके बीच, स्टोरेज और बाहरी एंटिटी के बीच कैसे चलता है।
-
उद्देश्य: सिस्टम संरचना. मुख्य कार्य अब दिखाई दे रहे हैं।
ऑर्डर उदाहरण के लिए, प्रोसेस 0 चार प्रमुख कार्यों में विघटित होता है: ऑर्डर की पुष्टि करें, इन्वेंट्री की जाँच करें, भुगतान प्रक्रिया करें, और शिपमेंट तैयार करें. ध्यान दें कि डेटा स्टोर यहाँ पहली बार दिखाई दे रहे हैं:

digraph DFD_Level1 {
graph [
rankdir = LR
splines = true
overlap = false
nodesep = 0.5
ranksep = 0.8
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
label = "ऑर्डर प्रसंस्करण प्रणाली — स्तर 1 DFD"
labelloc = t
]
node [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 11
penwidth = 1.5
]
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
Customer; Supplier; Bank;
subgraph cluster_SystemBoundary {
label = "ऑर्डर प्रसंस्करण प्रणाली";
fontname = "Helvetica,Arial,sans-serif; bold"
fontsize = 14
color = "#757575"
style = "dashed,rounded"
bgcolor = "#FAFAFA"
margin = 20
node [shape = circle, style = "filled", fillcolor = "#E8F5E9", color = "#388E3C", fixedsize = true, width = 1.4]
P1 [label="1.0nऑर्डरnकी पुष्टि करें"];
P2 [label="2.0nइन्वेंट्रीnकी जाँच करें"];
P3 [label="3.0nभुगतानnप्रक्रिया करें"];
P4 [label="4.0nशिपमेंटnतैयार करें"];
node [shape = record, style = "filled", fillcolor = "#FFF9C4", color = "#FBC02D", fixedsize = false]
CustomerDS [label="{ <id> D1 | ग्राहक }"];
InventoryDS [label="{ <id> D2 | इन्वेंट्री }"];
OrderDS [label="{ <id> D3 | ऑर्डर }"];
PaymentDS [label="{ <id> D4 | भुगतान }"];
}
edge [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 9
color = "#555555"
arrowsize = 0.8
]
Customer -> P1 [label="ऑर्डरnअनुरोध"];
Bank -> P3 [label="भुगतानnसत्यापन"];
Supplier -> P2 [label="इन्वेंट्रीnउपलब्धता"];
P1 -> P2 [label="मान्यnऑर्डर"];
P3 -> P4 [label="भुगतानnसत्यापित"];
P1 -> CustomerDS [label="ग्राहक कीnपुष्टि और अपडेट", dir=both];
P2 -> InventoryDS [label="स्टॉकnअपडेट और पूछताछ", dir=both];
P1 -> OrderDS [label="ऑर्डरnरिकॉर्ड करें"];
P3 -> PaymentDS [label="भुगतानnरिकॉर्ड और सत्यापित करें", dir=both];
P4 -> OrderDS [label="स्थितिnअपडेट करें"];
P2 -> Supplier [label="स्टॉकnअनुरोध"];
P4 -> Customer [label="शिपमेंटnविवरण"];
}
यहाँ होने वाली मुख्य बातें जिनकी हमेशा जाँच करनी चाहिए:
-
संख्यांकन सुसंगत है (
1.0…4.0) जो माता-पिता के साथ मेल खाता है0. -
संतुलन (नीचे वर्णित) — प्रवाहके अंदर और बाहर प्रक्रिया
0संदर्भ आरेख में प्रवाहके अंदर और बाहर स्तर 1 आरेख के रूप में समग्र रूप से बराबर होने चाहिए। -
द्वि-दिशीय स्टोर पहुंच (उदाहरण के लिए
P1 -> CustomerDS [dir=both]) को दो अस्त-व्यस्त तीरों के बजाय एक एकीकृत, विलीन किनारे के रूप में खींचा जाता है।
2.3 स्तर 2 DFD (और आगे)
-
अमूर्तता: किसी एकल स्तर 1 प्रक्रिया का further विघटन।
-
यह क्या दर्शाता है: जटिल प्रक्रियाओं के लिए सूक्ष्म विवरण। प्रत्येक उप-प्रक्रिया को एक परमाणु फ़ंक्शन प्राप्त होता है।
-
उद्देश्य: आप स्तर 3, स्तर 4, आदि बनाना जारी रखते हैं जब तक कि प्रत्येक लीफ प्रक्रिया इतनी सरल न हो जाए कि उसे एक छोटी कथा या झूठे कोड — उस टर्मिनल प्रक्रिया को एक कार्यात्मक प्राथमिक (एक प्राथमिक प्रक्रिया).
यहाँ हम प्रक्रिया 2.0 इन्वेंट्री जाँचें स्तर 1 DFD से, इसे तोड़कर 2.1 स्टॉक पूछें, 2.2 उपलब्धता जाँचें, और 2.3 स्टॉक आरक्षित करें:

digraph DFD_Level2 {
graph [
rankdir = LR
splines = true
overlap = false
nodesep = 0.4
ranksep = 0.8
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
label = "ऑर्डर प्रोसेसिंग सिस्टम — लेवल 2 DFD (2.0 इन्वेंट्री चेक का विघटन)
labelloc = t
]
node [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 11
penwidth = 1.5
]
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
P1_Parent [label="1.0 / 3.0n(पड़ोसी)"];
Supplier;
subgraph cluster_SystemBoundary {
label = "2.0 इन्वेंट्री चेक (विघटित)
fontname = "Helvetica,Arial,sans-serif; bold"
fontsize = 14
color = "#757575"
style = "dashed,rounded"
bgcolor = "#FAFAFA"
margin = 20
node [shape = circle, style = "filled", fillcolor = "#E8F5E9", color = "#388E3C", fixedsize = true, width = 1.4]
P21 [label="2.1nजानकारीnस्टॉक"];
P22 [label="2.2nजांचnउपलब्धता"];
P23 [label="2.3nआरक्षितnस्टॉक"];
node [shape = record, style = "filled", fillcolor = "#FFF9C4", color = "#FBC02D", fixedsize = false]
InventoryDS [label="{ <id> D2 | इन्वेंट्री }"];
OrderDS [label="{ <id> D3 | ऑर्डर }"];
}
edge [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 9
color = "#555555"
arrowsize = 0.8
]
P1_Parent -> P21 [label="वैधnऑर्डर"];
P22 -> P1_Parent [label="स्टॉकnपुष्टि और स्थिति"];
Supplier -> P22 [label="उपलब्धताnप्रतिक्रिया"];
P21 -> P22 [label="स्टॉकnगणना"];
P22 -> P23 [label="उपलब्धताnपुष्टि"];
P23 -> P1_Parent [label="स्टॉकnआरक्षित"];
P21 -> InventoryDS [label="जानकारी", dir=both];
P23 -> InventoryDS [label="आरक्षितnघटाएं", dir=both];
P23 -> OrderDS [label="स्थितिnअपडेट"];
P22 -> OrderDS [label="ऑर्डरnपढ़ें"];
}
आप कब रुकते हैं?सामान्य नियम: प्रत्येक लीफ प्रक्रिया एक कार्यात्मक प्राथमिक — एक प्रक्रिया जो इतनी सरल है कि इसे कुछ पंक्तियों के प्यूडोकोड या एक छोटी यूजर स्टोरी द्वारा पूरी तरह से परिभाषित किया जा सकता है। कोई निश्चित लक्ष्य स्तर नहीं है; जटिलता गहराई निर्धारित करती है। एक छोटी प्रक्रिया लेवल 1 पर प्राथमिक हो सकती है; एक बड़ी प्रक्रिया को लेवल 3 या 4 की आवश्यकता हो सकती है।
3. तार्किक बनाम भौतिक DFDs — उद्देश्य आयाम
यह वह अक्ष है जिसे आपने सही ढंग से क्लास डायग्राम शब्दावली के साथ मिश्रित होने के रूप में चिह्नित किया था। आइए सटीक रहें:

-
क्लास डायग्राम अवधारणात्मक/तार्किक/भौतिक का उपयोग अमूर्तता के स्तरों एक डेटा मॉडल.
-
DFDs तार्किक/भौतिक का उपयोग डिज़ाइन के उद्देश्य — क्या बनाम कैसे — और यह लंबवत लेवल पदानुक्रम के संबंध में है।
इसका मतलब है हर स्तर (संदर्भ, लेवल 1, लेवल 2) को या तो एक तार्किक DFD या एक भौतिक DFD के रूप में बनाया जा सकता है। वे स्वतंत्र अक्ष हैं, सीढ़ी नहीं।
3.1 तार्किक DFD — क्या सिस्टम क्या करता है
| पक्ष | विवरण |
|---|---|
| फोकस | व्यावसायिक आवश्यकताएँ औरक्या सिस्टम को पूरा करना चाहिए — बिना कार्यान्वयन पक्षपात के। |
| जानबूझकर नजरअंदाज करता है | हार्डवेयर, सॉफ्टवेयर, डेटाबेस, विभाग, मैनुअल बनाम स्वचालित, फ़ाइल प्रारूप, समय। |
| इसका उपयोग किया जाता है | आवश्यकता विश्लेषण और व्यावसायिक मॉडलिंग में। |
इसकी तुलना करेंतार्किक सदस्यता DFD को उसके ठीक नीचे दिए गए भौतिक DFD से। वही सिस्टम, वही स्तर — लेकिन तार्किक में कोई तकनीक या विशिष्ट विभागों का नाम नहीं है, केवलव्यावसायिक गतिविधियाँ औरअवधारणात्मक डेटा भंडार:

digraph DFD_Logical {
graph [
rankdir = LR
splines = true
overlap = false
nodesep = 0.5
ranksep = 0.8
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
label = "तार्किक DFD — सिस्टम क्या करता है (कोई कार्यान्वयन पक्षपात नहीं)"
labelloc = t
]
node [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 11
penwidth = 1.5
]
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
Customer; Staff;
subgraph cluster_SystemBoundary {
label = "सदस्यता सिस्टम (तार्किक)";
fontname = "Helvetica,Arial,sans-serif; bold"
fontsize = 14
color = "#757575"
style = "dashed,rounded"
bgcolor = "#FAFAFA"
margin = 20
node [shape = circle, style = "filled", fillcolor = "#E8F5E9", color = "#388E3C", fixedsize = true, width = 1.4]
P1 [label="1.0nपंजीकरणnसदस्य"];
P2 [label="2.0nजारी करनाnनवीनीकरण"];
node [shape = record, style = "filled", fillcolor = "#FFF9C4", color = "#FBC02D", fixedsize = false]
MemberDS [label="{ <id> D1 | सदस्य रिकॉर्ड }"];
}
edge [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 9
color = "#555555"
arrowsize = 0.8
]
Customer -> P1 [label="सदस्यताnआवेदन"];
Staff -> P2 [label="नवीनीकरणnअनुरोध"];
P1 -> MemberDS [label="जोड़नाnसदस्य"];
P2 -> MemberDS [label="अपडेट करें औरnरिकॉर्ड पढ़ें", dir=both];
P2 -> Customer [label="नवीनीकरणnसूचना"];
}
3.2 भौतिक DFD —कैसे सिस्टम को कार्यान्वित किया जाता है
| पक्ष | विवरण |
|---|---|
| फोकस | तार्किक मॉडल की ठोस कार्यान्वयन: विशिष्ट तकनीकें, फ़ाइल/डेटाबेस नाम, लोग, विभाग, हार्डवेयर, समय, प्रोटोकॉल। |
| शामिल हैं | DBMS और स्कीमा नाम, संदेश कतारें, एपीआई और प्रोटोकॉल (HTTPS, JSON, JDBC, JMS), लोग और विभाग, स्वचालन विकल्प। |
| इसका उपयोग किया जाता है | सिस्टम डिज़ाइन और कार्यान्वयन योजना। |
वहही सदस्यता प्रणाली, अब एक भौतिक DFD के रूप में — नोट करें कि प्रक्रिया1.0 एक बन जाती हैरजिस्टर सेवा (सर्वर), डेटा भंडार बन जाता हैMySQLmembers_db, एकईमेल कतार प्रकट होता है, और प्रवाहों को ठोस प्रोटोकॉल के साथ लेबल किया गया है:

digraph DFD_Physical {
graph [
rankdir = LR
splines = true
overlap = false
nodesep = 0.5
ranksep = 0.8
fontname = "Helvetica,Arial,sans-serif"
fontsize = 12
label = "Physical DFD — सिस्टम कैसे कार्यान्वित किया गया है (प्रौद्योगिकियां और विभाग)"
labelloc = t
]
node [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 11
penwidth = 1.5
]
node [shape = box, style = "filled", fillcolor = "#E1F5FE", color = "#0288D1"]
CustomerWeb [label="ग्राहकnवेब पोर्टल"];
FrontOffice [label="फ्रंटnऑफिस"];
subgraph cluster_SystemBoundary {
label = "सदस्यता प्रणाली (भौतिक)";
fontname = "Helvetica,Arial,sans-serif; bold"
fontsize = 14
color = "#757575"
style = "dashed,rounded"
bgcolor = "#FAFAFA"
margin = 20
node [shape = circle, style = "filled", fillcolor = "#E8F5E9", color = "#388E3C", fixedsize = true, width = 1.5]
SRV [label="रजिस्टरnसेवाn(सर्वर)"];
node [shape = record, style = "filled", fillcolor = "#FFF9C4", color = "#FBC02D", fixedsize = false]
MySQLDS [label="{ <id> D1 | MySQLnmembers_db }"];
QueueDS [label="{ <id> D2 | ईमेलnकतार }"];
}
edge [
fontname = "Helvetica,Arial,sans-serif"
fontsize = 9
color = "#555555"
arrowsize = 0.8
]
CustomerWeb -> SRV [label="HTTPS POSTn/registern(JSON)"];
FrontOffice -> SRV [label="डेस्कटॉप ऐपnAPI लॉगिन"];
SRV -> MySQLDS [label="JDBC Insertn& Select Txn", dir=both];
SRV -> QueueDS [label="JMSnसंदेश"];
SRV -> CustomerWeb [label="HTTP 200nस्वागत ईमेल"];
}
मुख्य बिंदु: एक परिपक्व परियोजनापहले तार्किक DFD बनाती है (स्तर 2 के माध्यम से संदर्भ) आवश्यकताओं के संग्रह के दौरान ताकि हितधारक सत्यापित कर सकेंव्यवहार की सहीता बिना तकनीकी शोर के, फिरउनसे भौतिक DFD व्युत्पन्न करती है डिज़ाइन के दौरान — जब “क्या” सहमत हो जाता है, तब “कैसे” को परतों में जोड़ा जा सकता है। स्तर समानांतर बने रहते हैं: आपका भौतिक स्तर 1 आपकी तार्किक स्तर 1 को दर्शाता है, जिसमें कार्यान्वयन विवरण से समृद्धि है।
4. DFD स्तरों को क्लास डायग्राम अमूर्तता से मैप करना
यदि आप पहले से ही क्लास डायग्राम अमूर्तता के संदर्भ में सोचते हैं, तो यहाँ एक अनुमानित (और उपयोगी लेकिनअपूर्ण) सेतु:
| वर्ग आरेख की अवधारणा | ≈ डीएफडी (प्रक्रिया प्रवाह आरेख) के समतुल्य |
|---|---|
| सैद्धांतिक वर्ग आरेख (व्यावसायिक स्तर की समझ) | संदर्भ आरेख या स्तर 1 तार्किक डीएफडी |
| तार्किक वर्ग आरेख (विस्तृत कार्यात्मक विनिर्देश) | स्तर 2+ तार्किक डीएफडी |
| भौतिक / कार्यान्वयन वर्ग आरेख (प्रौद्योगिकी-विशिष्ट डिजाइन) | भौतिक डीएफडी |
चेतावनी: यह मानचित्रण एक मानसिक मॉडल की सुविधा है, औपचारिक समतुल्यता नहीं। जैसा कि आपने नोट किया है, प्रामाणिक सिस्टम विश्लेषण साहित्य (डेमार्को, गेन और सारसन, योरडॉन) में शब्दावली कठोर रूप से संदर्भ, स्तर 1, स्तर 2… लंबकोणीय तार्किक/भौतिक भेद।
5. डीएफडी की महत्वपूर्ण गुणवत्ता नियम
ये वे अपरिवर्तनीय तत्व हैं जो एक पेशेवर, संतुलित डीएफडी को ढीले-ढाले डीएफडी से अलग करते हैं:

-
नामकरण अनुशासन। प्रत्येक प्रक्रिया में एक क्रिया + एक संज्ञा होता है, इसे संख्या दी गई है, और संख्याकरण एक कठोर वृक्ष बनाता है (
0→1.0…4.0→2.1…2.3). प्रत्येक डेटा स्टोर को संख्या दी गई हैD1,D2, … प्रत्येक प्रवाह का एक विवरणात्मक लेबल होता है। -
संतुलन (स्तरों के बीच संगति)। एक माता-पिता प्रक्रिया के इनपुट और आउटपुट बिल्कुल मेल खाने चाहिए इसके बच्चों की प्रक्रियाओं के संयुक्त इनपुट और आउटपुट के साथ। यदि प्रक्रिया
2.0प्राप्त करती हैमान्य ऑर्डरऔर लौटाती हैस्टॉक पुष्टि, तो लेवल 2 आरेख जो विघटित कर रहा है2.0करना चाहिए स्वीकार करेमान्य ऑर्डरऔर करना चाहिए उत्पन्न करेस्टॉक पुष्टि— न अधिक, न कम। यह विघटन करते समय एकमात्र सबसे महत्वपूर्ण नियम है। -
कोई सीधी इकाई-से-इकाई प्रवाह नहीं हैं।डेटा हमेशा प्रवाहित होता हैएक प्रक्रिया के माध्यम से। बाहरी इकाइयां कभी भी एक-दूसरे या डेटा भंडारों के साथ सीधे जुड़ी नहीं होती हैं।
-
कोई सीधी इकाई-से-भंडार प्रवाह नहीं हैं।बाहरी इकाइयां केवल एक प्रक्रिया के माध्यम से भंडारों के साथ बातचीत करती हैं (डेमार्को/योरडन परंपरा में यह एककठोरनियम है)।
-
द्वि-दिशीय पहुंच एक किनारे के रूप में होती है।जब दो तत्व दोनों दिशाओं में डेटा का आदान-प्रदान करते हैं (डेटा भंडारों के साथ यह सामान्य है), तो एकएकल तीरवर्तमान
dir=bothऔर एक संयुक्त लेबल ("अपडेट और क्वेरी"), न कि दो अलग-अलग एक-दिशीय तीर — इससे आरेख अस्त-व्यस्त नहीं होता और पढ़ने में आसान रहता है। -
कार्यात्मक प्राथमिक तत्वों पर रुकें।केवल आवश्यक गहराई तक विघटित करें; टर्मिनल प्रक्रियाओं को कुछ पंक्तियों के प्यूडोकोड में वर्णित किया जाना चाहिए।
6. इन आरेखों में उपयोग की गई दृश्य परंपराएं
ऊपर दिए गए सभी उदाहरण मानक आधुनिक DFD स्टाइलिंग का पालन करते हैं जो Graphviz में साफ़ रूप से प्रदर्शित होता है:
-
बाहरी इकाइयां — हल्के नीले रंग के बॉक्स जिनके नीले बॉर्डर हैं (
#E1F5FE/#0288D1). -
प्रक्रियाएं — हरे रंग के गोले जिनके हरे बॉर्डर हैं (
#E8F5E9/#388E3C), संख्यांकित और क्रिया-नामक। -
डेटा भंडार — रिकॉर्ड-शैली की पीली पट्टियाँ (
#FFF9C4/#FBC02D) आईडी + नाम के साथ लेबल किया गया (D2 | इन्वेंटरी). -
सिस्टम की सीमा — एक डैशदार, गोलाकार कंटेनर (क्लस्टर) जिसका पृष्ठभूमि हल्का है (
#FAFAFA) और धूसर बॉर्डर (#757575). -
किनारे — मध्य-धूसर (
#555555), छोटे तीर के सिर, अक्ष-संरेखित मार्गदर्शन द्वाराबिंदुइंजन।
7. DFD प्रस्तुत करने से पहले जाँच सूची
किसी भी DFD को पूरा मानने से पहले इसे एक स्व-समीक्षा गेट के रूप में उपयोग करें पूरा:
-
क्या स्तर स्पष्ट रूप से बताया गया है (संदर्भ / स्तर n)? क्या संख्यांकन वृक्ष माता-पिता के साथ संगत है?
-
क्या सभी चार प्रतीक प्रकार सही ढंग से उपयोग किए गए हैं, सही नामकरण पैटर्न के साथ?
-
क्या आरेख संतुलित है अपने माता-पिता के खिलाफ (इन/आउट प्रवाह बिल्कुल मेल खाते हैं)?
-
क्या सभी प्रवाहों को अर्थपूर्ण डेटा वर्णकों (data descriptors) से लेबल किया गया है?
-
क्या द्विदिशीय स्टोर/वेंडर प्रवाह एकल
dir=bothकिनारों में विलीन किए गए हैं? -
क्या सीमांत और बाहरी इकाइयाँ प्रत्यक्ष इकाई↔इकाई / इकाई↔स्टोर प्रवाहों से मुक्त हैं?
-
क्या प्रत्येक लीफ प्रक्रिया एक कार्यात्मक प्राथमिक (functional primitive) के रूप में पात्र है?
8. सारांश
-
वर्गक्रम = स्तर। संदर्भ (स्तर 0) → स्तर 1 → स्तर 2 → … प्रत्येक स्तर एक प्रक्रिया को बारीक उप-प्रक्रियाओं में विघटित करता है जब तक किकार्यात्मक प्राथमिक प्राप्त नहीं हो जाते।
-
उद्देश्य = तार्किक बनाम भौतिक। तार्किक DFDs उत्तर देते हैंक्या; भौतिक DFDs उत्तर देते हैंकैसे. दोनों अक्षलंबवत (orthogonal) — प्रत्येक स्तर को किसी भी तरह से बनाया जा सकता है।
-
DFD स्तरों को “अवधारणात्मक/तार्किक/भौतिक” न कहें। वे क्लास-मॉडल शब्द हैं। औपचारिक सिस्टम विश्लेषण (DeMarco, Gane & Sarson, Yourdon) में, सही शब्दावली हैसंदर्भ / स्तर 1 / स्तर 2 plus theतार्किक/भौतिक भेद।
-
सर्वोत्तम अभ्यास: बनाएंतार्किक DFDs विश्लेषण के दौरान स्तर 0–2 के माध्यम से बनाएं ताकि आवश्यकताओं को स्थिर किया जा सके, फिरभौतिक डीएफडी (DFD) व्युत्पन्न करें डिज़ाइन के दौरान कार्यान्वयन की योजना बनाने के लिए।
ऊपर दिए गए चार Graphviz चित्र (“संदर्भ, स्तर 1, स्तर 2, और तार्किक/भौतिक जोड़ी) पूर्ण प्रगति को दर्शाते हैं। प्रत्येक सीधे कोड ब्लॉक से रेन्डर होता है — आप किसी भी को Graphviz में कॉपी करके रेन्डर किए गए परिणाम को देख सकते हैं।
निष्कर्ष
संदर्भ
- डेटा फ्लो डायग्राम में महारत: मैनुअल ड्राइंग से Visual Paradigm के साथ AI-सहायक मॉडलिंग तक: DFD के मूल, मैनुअल निर्माण चरणों, और VP AI चैटबॉट का उपयोग करके नवीन AI-सहायक मॉडलिंग कार्यप्रवाह को कवर करने वाला एक व्यापक गाइड।
- डेटा फ्लो डायग्राम में महारत: Visual Paradigm के साथ AI-सहायक टॉप-डाउन विघटन का एक व्यापक गाइड: यह ब्लॉग पोस्ट Visual Paradigm के AI का उपयोग करके टॉप-डाउन विघटन पर गहराई से चर्चा करता है, यह दिखाते हुए कि कैसे संवादात्मक रूप से स्तर 1, 2 और 3 DFD उत्पन्न किए जा सकते हैं।
- Visual Paradigm के साथ डेटा फ्लो डायग्राम में महारत: एक चरण-दर-चरण गाइड: एक आधिकारिक गाइड जो DFD बनाने पर एक व्यावहारिक, चरण-दर-चरण ट्यूटोरियल प्रदान करता है, टेम्पलेट्स से शुरू करके ऑनलाइन शॉपिंग सिस्टम जैसे वास्तविक दुनिया के उदाहरणों का उपयोग करते हुए।
- Visual Paradigm Desktop के साथ DFD कैसे बनाएं: डेस्कटॉप संस्करण पर केंद्रित एक व्यावहारिक मार्गदर्शन, जो यह समझाता है कि कैसे एक परियोजना बनाएं, संदर्भ और स्तर-1 चित्र बनाएं, और विघटन विशेषता का उपयोग करें।
- डेटा फ्लो डायग्राम स्तरों और संतुलन में महारत: एक संसाधन जो सिस्टम विश्लेषण में स्थिरता और सटीकता सुनिश्चित करने के लिए विभिन्न स्तरों पर डेटा फ्लो डायग्रामों के संतुलन की महत्वपूर्ण अवधारणा को संबोधित करता है।
- Visual Paradigm Online के साथ डेटा फ्लो डायग्राम (DFD) के लिए शुरुआती गाइड: एक शुरुआती-अनुकूल गाइड जो DFD अवधारणाओं का परिचय देता है और Visual Paradigm के ऑनलाइन संस्करण का उपयोग करके आरेख बनाने के लिए एक सरल, चरण-दर-चरण ट्यूटोरियल प्रदान करता है।
- डेटा फ्लो डायग्राम उदाहरण: एक मूल्यवान संसाधन पृष्ठ जो विभिन्न सिस्टम जैसे भोजन ऑर्डर सिस्टम, सुपरमार्केट ऐप और इन्वेंट्री प्रबंधन के लिए DFD उदाहरणों का संग्रह प्रदान करता है, जिन्हें संदर्भ मॉडल के रूप में उपयोग किया जा सकता है।




