किन परिस्थितियों में फ्लोचार्ट अभी भी एक मूल्यवान और उपयोगी उपकरण है?


14

जब मैंने पहली बार प्रोग्रामिंग शुरू की थी, तो मैं फ़्लोचार्ट (और प्रिंटर रिक्ति चार्ट) पर बहुत भरोसा करता था। जब मैं COBOL वर्ग में था, तब तक मैं किसी भी कोड को लिखना शुरू नहीं कर सकता था जब तक कि मेरे फ़्लोचार्ट को प्रशिक्षक द्वारा हस्ताक्षरित नहीं किया गया था। इसके बाद, मुझे हर चीज के लिए फ्लोचार्ट बनाना पड़ा।

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

क्या फ़्लोचार्ट के लिए अन्य उपयोग के मामले हैं जिन्हें मैंने बस अनदेखा कर दिया है?

जवाबों:


17

पूर्ण रूप से।

जब भी मैं ऐसा कुछ लागू कर रहा हूं जो मैंने पहले नहीं किया है (और एल्गोरिथ्म कुछ चरणों से अधिक होता है), मैं इसे बाहर निकालूंगा। मुझे लगता है कि यह वास्तव में मुझे संपूर्ण समाधान का विश्लेषण करने के लिए एक अधिक परमाणु स्तर पर और अधिक अच्छी तरह से अगर वह बाहर नहीं निकाला गया था, तो मुझे मजबूर करता है। मुझे लगता है कि इस अभ्यास के तीन प्रमुख लाभ हैं:

  • कम "ओह क्रेप्स" क्योंकि मैंने सोचा है कि पूरे एल्गोरिथ्म के माध्यम से
  • पूरे सिस्टम में हो सकने वाले मुद्दों पर किसी भी संभावित दस्तक को फ्लश करता है
  • मुझे एल्गोरिथम के माध्यम से किसी और को आसानी से चलने की अनुमति देता है

दो अलग-अलग अवसर जहां मैं वास्तव में इनका उपयोग करता हूं:

  • निम्न (ish) स्तर के एल्गोरिदम। मैं एक बहुत ही विशिष्ट समस्या के लिए एक बहुत ही विशिष्ट समाधान का मतलब है। मैं आमतौर पर कार्यान्वयन से पहले साथियों द्वारा इन्हें पास करूंगा।
  • उपयोगकर्ता प्रवाह। न केवल मैं एक सहकर्मी द्वारा पारित करने के लिए इसका उपयोग कर सकता हूं, बल्कि एक प्रयोज्य विशेषज्ञ को समझाने के लिए (बहुत गैर-तकनीकी तरीके से) प्रवाह के लिए भी इसका उपयोग करूंगा।

यह सब कहने के बाद, मैं फ्लोचार्ट्स का दैनिक उत्पादन नहीं करता (और जब वे कर रहे होते हैं, तब तक यह आम तौर पर एक व्हाइटबोर्ड सत्र होता है, जब तक कि मैं तकनीकी डिज़ाइन डॉक्टर नहीं लिख रहा हूं)।


@ काप कॉड गनी: आप डायलॉग डिज़ाइन आरेखों को अधिक उपयोगी (गतिविधि आरेख का एक प्रारंभिक रूप) पा सकते हैं
स्टीवन ए। लोवे

1
@ काप कॉड गनी: Microsoft स्केचफ्लो भी रुचि का हो सकता है।
जोर्ग डब्ल्यू मित्तग

12

कभी नहीँ

फ़्लोचार्ट्स - विशेष रूप से 25+ साल पहले अभ्यास किया गया है - बहुत अधिक अभिव्यंजक आरेख तकनीकों (सीएफ एक्शन डायग्राम्स, सीक्वेंस चार्ट्स, स्टेट चार्ट्स, एट अल) द्वारा अलंकृत किया गया है।

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


4
सुव्यवस्थित एक कठोर शब्द है, हमारे पास अभी और विकल्प हैं। अधिक अभिव्यंजक हमेशा बेहतर नहीं होता है। मेरे ग्राहक जानना चाहते हैं कि सॉफ्टवेयर क्या कर रहा है और वे यूएमएल सीखने में समय बर्बाद नहीं करना चाहते हैं। मैं उन्हें दोष नहीं दे सकता।
maple_shaft

2
@ सीन: +1, लेकिन फ्लो चार्ट 25 साल पहले लंबे हो गए थे। जब मैंने 1975 में कार्नेगी-मेलन में प्रवेश किया, तो सीएमयू में शोध प्रोग्रामिंग ALGOL, SAIL, PASCAL, LISP, सिमूला, C और अन्य उच्च-स्तरीय भाषाओं में ऑनलाइन की गई, जिसमें ज्यादातर EMACS का उपयोग किया गया। प्रवाह चार्ट के साथ किसी को परेशान नहीं किया। हमने बस थोड़ा सा कोड लिखा, उसका परीक्षण किया, उसे ठीक किया, फिर कुछ और लिखा।
केविन क्लाइन

5
@ डेमियन: बक्से और तीर वास्तव में आप सभी की जरूरत है; ;-)
स्टीवन ए। लोवे

1
@ कम और स्टीवन ज्यूरिस: क्षमा करें, आप दोनों 100% सही हैं। "सुपरसेड" सामान्य वर्तनी है।
केविन क्लाइन

1
@ सीनियर ज्यूरिस: तो मैं करूँगा; मैंने भी देखा लेकिन कुछ नहीं मिला। मुझे पूरा यकीन है कि मेरी स्मृति उस जगह पर सही है जहां मैंने इसे पढ़ा है, लेकिन दुर्भाग्य से इस समय मेरी सभी संदर्भ पुस्तकें भंडारण (चलती) में पैक हैं। अध्ययन मेरे दिमाग में अटक गया क्योंकि यह आईबीएम द्वारा अपने स्वयं के फ्लोचार्ट टेम्पलेट का उपयोग करके अपने लोगों पर किया गया था!
स्टीवन ए लोव

7

मैंने 1976 में अपनी पहली प्रोग्रामिंग क्लास के बाद से क्लासिकल फ्लो चार्ट नहीं बनाया है, और 80 के दशक की शुरुआत से किसी और को बनाते हुए नहीं देखा। जब असेंबली लैंग्वेज में कोड लॉजिक हो तो फ्लो चार्ट्स प्रोग्राम लॉजिक को कम करने के लिए उपयोगी थे। 1960 के अंत तक, असेंबली भाषा के प्रोग्रामर छद्म कोड का उपयोग कर रहे थे। आधुनिक ओओ भाषाओं में प्रोग्रामिंग करते समय, न तो फ्लो चार्ट और न ही छद्म कोड का कोई मूल्य होता है। आप बस कार्यान्वयन भाषा में उच्च-स्तरीय कोड लिख सकते हैं।

मैं कभी-कभी यूएमएल आरेखों को आकर्षित करता हूं, ज्यादातर कागज पर, डिजाइन विचारों को व्यक्त करने के लिए, लेकिन उन आरेख केवल चर्चा के अंत तक रहते हैं। मैं समय-समय पर राज्य संक्रमण आरेख भी तैयार करता हूं, फिर उन्हें कार्यान्वयन भाषा में एक राज्य तालिका में परिवर्तित करता हूं।


5

मैं कई कारणों से हर समय फ्लोचार्ट का उपयोग करता हूं:

  1. वे मेरी राय में यूएमएल के उपयोग के मामले आरेखों से बेहतर हैं। वे कई अलग-अलग उपयोग के मामलों को प्रतिबिंबित कर सकते हैं और वे कैसे बातचीत करते हैं, और वे समग्र रूप से उपयोगकर्ता अनुभव और निर्णय एक साथ लाने के लिए एक बेहतर काम करते हैं।

  2. वे समझने में आसान हैं और अधिक सहज हैं। आपका मन स्वाभाविक रूप से शुरू से अंत तक भूलभुलैया की तरह तीरों का अनुसरण करता है। आप किसी अन्य उपयोगकर्ता कहानी के लिए किसी अन्य फ़्लोचार्ट को समाप्त करने और संदर्भ देने के लिए फ़्लोचार्ट का उपयोग कर सकते हैं। मैं आम तौर पर उन्हें एक पेज नंबर बुक में प्रिंट कर सकता हूं और अगले प्रवाह चार्ट पर नेविगेट करने के लिए जल्दी से पृष्ठों को फ्लिप कर सकता हूं।

  3. वे सार्वभौमिक हैं। सॉफ्टवेयर इंजीनियरिंग से बाहर के कुछ लोग यूएमएल आरेखों को जानते और समझते हैं, जहां फ़्लोचार्ट आरेख उपयोगकर्ताओं और व्यापार विश्लेषकों द्वारा बहुत अधिक पहचाने जाने योग्य हैं। मैं एक ग्राहक के लिए जटिल उपयोग के मामलों को संप्रेषित करने की कोशिश करता हूं और वे कभी-कभी समझने के लिए संघर्ष करते हैं, मैं उन्हें एक फ्लोचार्ट खींचता हूं और वे समझते हैं कि आखिरकार उन सभी बारीकियों को क्यों समझते हैं जो इसे जितना सोचा था उससे अधिक जटिल बनाते हैं।


4
+1 फ़्लोचार्ट के लिए उपयोगकर्ताओं और बीए द्वारा पहचाने जाने योग्य। आप किस टूल फ़्लोचार्टिंग टूल का उपयोग करते हैं?
माइकल रिले - AKA Gunny

4
फ्लो चार्ट सभी मामलों में उपयोग का प्रतिनिधित्व नहीं करते हैं। यदि आप एक यूएमएल आरेख के लिए एक फ्लो चार्ट को सहसंबंधित करना चाहते हैं, तो यह एक अनुक्रम आरेख, संचार आरेख या गतिविधि आरेख की तरह अधिक होगा। वास्तव में, गतिविधि आरेख वर्कफ़्लोज़ दिखाने के लिए है। क्या, मेरी राय में, यूएमएल गतिविधि आरेख को फ्लोचार्ट से बेहतर बनाता है, जिसका उपयोग प्रतीकों और शब्दावली को मानकीकृत किया गया है, जो किसी को भी (जो इसे जानता है) को प्रतीक अर्थ देखने के लिए बिना आसानी से पढ़ने की अनुमति देता है।
थॉमस ओवेन्स

@ थोमस, विभिन्न स्ट्रोक ... आप सही हैं कि हालांकि गतिविधि आरेख अधिक अभिव्यंजक हैं, लेकिन उन्हें अधिक इनपुट, यूएमएल ज्ञान और कीमती कीमती समय की आवश्यकता होती है जो मेरे पास नहीं है जब ग्राहक को अब एक आरेख की आवश्यकता है !!! मैं एक त्वरित और गंदे फ्लोचार्ट को कोड़ा मार सकता हूं। उपयोगकर्ता के लिए वास्तविक यूएमएल उपयोग केस आरेख उन्हें सामान्य ज्ञान बताता है। फ्लोचार्ट पदार्थ के मांस तक पहुंच जाता है।
maple_shaft

2
@ बलात्कार, मैं सिर्फ Visio का उपयोग करें। यह निश्चित रूप से सबसे अच्छा उपकरण नहीं है, लेकिन आप जानते हैं कि वे क्या कहते हैं, लोग एक अपरिचित विदेशी स्वर्ग पर एक परिचित आरामदायक नरक चुनते हैं।
maple_shaft

@Maple - धन्यवाद। मुझे उड़ा दिया गया क्योंकि मुझे लगा कि फ्लोचार्ट अब प्रासंगिक नहीं थे। मैं शुतुरमुर्ग की तरह महसूस करता हूं ;-)
माइकल रिले - AKA Gunny

3

फ्लोचार्ट उपयोगी होते हैं जब चीजों को एक विशिष्ट क्रम में करने की आवश्यकता होती है। जहां वे वास्तव में मेरे दिमाग में चमक रहे हैं, जहां निर्णय किए जाते हैं और सुनिश्चित करते हैं कि प्रत्येक संभावित निर्णय का एक रास्ता है। यह उन कार्यक्रमों को बनाने से रोकता है, जहां एक मैमेजर अनुमोदन की आवश्यकता होती है, लेकिन प्रबंधक (जो उस समय के 98% को मंजूरी देता है) को ना कहने पर इससे निपटने का कोई तरीका नहीं है। वे हमें याद दिलाते हैं कि सबसे आम रास्ता एकमात्र रास्ता नहीं है। मैं उन्हें उपयोगकर्ताओं से आवश्यकताओं के बारे में बात करने में उपयोगी मानता हूं क्योंकि अक्सर वे आपको केवल सबसे सामान्य रास्ता बताएंगे।


1

फ्लो चार्ट रिवर्स इंजीनियरिंग के लिए बहुत बुरी तरह से संरचित कोड के लिए उपयोगी हो सकता है। विशेष रूप से अगर यह गोटो है। शुक्र है कि मैंने हाल ही में बहुत गोटो-रिडेन कोड नहीं देखा है।

जैसा कि अन्य ने अंतिम उपयोगकर्ताओं के साथ संवाद करने के लिए नोट किया है। मैं प्रवाह चार्ट द्वारा प्रलेखित एक टीवी ट्रांसमीटर के स्टार्टअप को सॉर्ट करता हूं। हार्डवेयर और सॉफ्टवेयर लोगों के पास काम करने के लिए एक सामान्य विनिर्देश था।


0

UML गतिविधि आरेख और फ़्लोचार्ट प्रक्रिया या एल्गोरिथ्म की निम्न-से-मध्यम जटिलता दिखाने के लिए उपयोगी है।

व्यावसायिक नियमों के बारे में व्यावसायिक उपयोगकर्ताओं के साथ संवाद करते समय वे बहुत अच्छे होते हैं।

BPMN 2.0 के रूप में भिन्नता मौजूद है जो बिजनेस प्रोसेस मॉडलिंग में बहुत उपयोगी है।

कुछ BPMN टूल चार्ट से वेब एप्लिकेशन चला सकते हैं।

तो हाँ, फ़्लोचार्ट्स में अभी भी एक जगह है लेकिन उन्हें बुद्धिमानी से उपयोग करने की आवश्यकता है।


-2

मैं कोई प्रोग्रामर नहीं हूं। मैं एक हार्डवेयर इंजीनियरिंग टेक हूं।

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

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

मैं यह नहीं देखता कि वास्तविक कोडिंग शुरू करने से पहले 15KB या 15MB प्रोग्राम में बिना प्रीप वर्क के कितना कुशल कोड लिखा जा सकता है।


1
बहुत सारे लोग हार्डवेयर और सॉफ्टवेयर के बीच समानता को जरूरी नहीं मानते हैं। सॉफ्टवेयर में डिजाइन-कोड-टेस्ट चक्र सॉफ्टवेयर में बहुत तेज हैं । तथाकथित चुस्त तरीके पहले एक परीक्षण लिखेंगे फिर परीक्षण पास करने के लिए कोड लिखेंगे। <br/> 15K बहुत छोटा है इसलिए एम्बेडेड सॉफ्टवेयर हो सकता है, यह सुनिश्चित करने के लिए "बहुत ही योजनाबद्ध" हो सकता है कि यह इसकी कल्पना को पूरा करता है। <br/> स्पेस शटल सॉफ़्टवेयर को उन तकनीकों का उपयोग करके लिखा गया था जिनकी आप वकालत करते हैं।
निक केइली

इसके अलावा फ्लो चार्ट जरूरी नहीं कि सॉफ्टवेयर डिजाइन का विकल्प हो!
निक किइली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.