কোন পরিস্থিতিতে ফ্লোচার্টগুলি এখনও একটি মূল্যবান এবং দরকারী সরঞ্জাম?


14

যখন আমি প্রথম প্রোগ্রামিং শুরু করেছি, আমি ফ্লোচার্টগুলিতে (এবং প্রিন্টারের স্পেসিং চার্ট) উপর প্রচুর নির্ভর করেছি। আমি সিওবিএল ক্লাসে থাকাকালীন আমার ফ্লোচার্ট ইনস্ট্রাক্টর স্বাক্ষর না করা পর্যন্ত আমি কোনও কোড লেখা শুরু করতে পারি না। তারপরে, আমাকে সমস্ত কিছুর জন্য ফ্লোচার্ট বানাতে হয়েছিল।

আজ, পঁচিশ বছর পরে, আমি নিজেকে কেবল দুটি ধরণের জিনিস ফ্লোচার্ট করতে দেখি। অত্যন্ত সুনির্দিষ্ট অ্যালগরিদম যেখানে যুক্তিটি জটিল এবং খুব সাধারণ ধারণাগুলি তা নিশ্চিত করতে যে আমি সমস্ত বড় পদক্ষেপগুলি সংজ্ঞায়িত করেছি এবং যথাযথ ক্রমে পেয়েছি।

ফ্লোচার্টগুলির জন্য এমন অন্যান্য ব্যবহারের কেস রয়েছে যা আমি কেবল উপেক্ষা করেছি?

উত্তর:


17

একেবারে।

যখনই আমি এমন কিছু বাস্তবায়ন করব যা আমি এর আগে করিনি (এবং অ্যালগোরিদম কয়েক ধাপেরও বেশি সময় নেয়), আমি এটি চার্ট করব। আমি দেখতে পেয়েছি যে এটি সত্যিকার অর্থে আমাকে পুরো পার্সোনালটিকে আরও বেশি পারমাণবিক স্তরে বিশ্লেষণ করতে বাধ্য করেছে এবং যদি এটি প্রকাশিত না হয় তবে তার চেয়ে আরও পুঙ্খানুপুঙ্খভাবে। আমি দেখতে পাচ্ছি যে এই অনুশীলনের তিনটি বড় সুবিধা রয়েছে:

  • কম "ওহ ক্র্যাপস" কারণ আমি পুরো অ্যালগরিদমটি ধরে নিয়েছি
  • সিস্টেমের বাকী অংশে যে সমস্যাগুলি দেখা দিতে পারে সেগুলি নিয়ে কোনও সম্ভাব্য নকশাকে ফ্লাশ করে
  • অ্যালগরিদমের মাধ্যমে আমাকে অন্য কারও সাথে চলার অনুমতি দেয়

আমি যে দুটি পৃথক অনুষ্ঠানটি ব্যবহার করি তা হ'ল:

  • নিম্ন (ইশ) স্তরের অ্যালগরিদম। আমি খুব নির্দিষ্ট সমস্যার খুব নির্দিষ্ট সমাধান বোঝাতে চাইছি। আমি সাধারণত প্রয়োগের আগে সহকর্মীদের দ্বারা এটি পাস করব।
  • ব্যবহারকারী প্রবাহ। আমি কেবল এটি পিয়ারের কাছে যাওয়ার জন্যই ব্যবহার করতে পারি না, তবে ব্যবহারযোগ্যতার বিশেষজ্ঞের কাছে প্রবাহকে ব্যাখ্যা করার জন্য (খুব অ-প্রযুক্তিগত পদ্ধতিতে) এটি ব্যবহার করব।

এগুলি বলার পরেও, আমি প্রতিদিন ফ্লোচার্ট উত্পাদন করি না (এবং এটি সম্পন্ন হওয়ার পরেও, আমি প্রযুক্তিগত নকশার ডকটি না লিখে এটি সাধারণত একটি হোয়াইটবোর্ড সেশন)।


@ কেপ কড গুনি: আপনি ডায়ালগ ডিজাইন ডায়াগ্রামকে আরও বেশি দরকারী (ক্রিয়াকলাপ ডায়াগ্রামের একটি প্রাথমিক রূপ) খুঁজে পেতে পারেন
স্টিভেন এ। লো

1
@ কেপ কড গুনি: মাইক্রোসফ্ট স্কেচফ্লোও আগ্রহী হতে পারে।
Jörg ডব্লু মিট্টাগ

12

না

ফ্লোচার্টস - বিশেষত 25+ বছর আগে অনুশীলিত হিসাবে - অনেক বেশি অভিব্যক্তিপূর্ণ ডায়াগ্রামিং কৌশল (সিএফ অ্যাকশন ডায়াগ্রাম, সিকোয়েন্স চার্টস, স্টেট চার্টস, ইত্যাদি) দ্বারা ছাড়িয়ে গেছে।

আইবিএমের নিজস্ব গবেষণায় দেখা গেছে যে ফ্লোচার্টের ব্যবহার কোনও সিস্টেমের নকশা বা বাস্তবায়নের মানের উপর প্রভাব ফেলেনি (যদিও তারা ব্যবহারকারী এবং অন্যান্য বিকাশকারীদের সাথে যোগাযোগের ক্ষেত্রে সামান্য কার্যকর ছিল) [সুনির্দিষ্ট রেফারেন্স সহজেই পাওয়া যায় না, তবে জেমস মার্টিনের ডায়াগ্রামিং কৌশলগুলিতে উদ্ধৃত করা হয়েছিল বিশ্লেষক এবং প্রোগ্রামারদের জন্য ]।


3
নিষ্ক্রিয় একটি কঠোর শব্দ, আমাদের কাছে এখন আরও বিকল্প রয়েছে। আরও অভিব্যক্তি সবসময় ভাল হয় না। আমার ক্লায়েন্টরা সফ্টওয়্যারটি কী করছে তা জানতে চায় এবং তারা ইউএমএল শেখার সময় নষ্ট করতে চায় না। আমি তাদের দোষ দিতে পারি না।
ম্যাপেল_শ্যাফট

2
@ স্টিভেন: +1, তবে ফ্লো চার্টগুলি 25 বছর আগে চলে গেছে। ১৯ 197৫ সালে যখন আমি কার্নেগি-মেলনে প্রবেশ করি তখন সিএমইউতে গবেষণা প্রোগ্রামগুলি অনলাইনে ALGOL, SAIL, PASCAL, LISP, Simula, C, এবং অন্যান্য উচ্চ-স্তরের ভাষায় করা হত, বেশিরভাগই EMACS ব্যবহার করে। কেউ ফ্লো চার্ট নিয়ে মাথা ঘামায় না। আমরা কেবল একটি সামান্য কোড লিখেছি, এটি পরীক্ষা করেছি, সংশোধন করেছি, তারপরে আরও কিছু লিখেছি।
কেভিন ক্লাইন

5
@ ডেমিয়ান: বাক্স এবং তীরগুলি সত্যই আপনার প্রয়োজন ;-)
স্টিভেন এ। লো

1
@ স্টিভেন লো এবং স্টিভেন জিউরিস: দুঃখিত, আপনি উভয়ই 100% সঠিক। "সুপারসিড" হ'ল স্বাভাবিক বানান।
কেভিন ক্লাইন

1
@ স্টিভেন জিউরিস: আমিও তাই করতাম; আমি পাশাপাশি দেখলাম কিন্তু কিছুই পাইনি। আমি যেখানে পড়েছি তার উপর আমার স্মৃতি সঠিক বলে নিশ্চিত, তবে দুর্ভাগ্যক্রমে এই মুহুর্তে আমার সমস্ত রেফারেন্স বইগুলি স্টোরেজে (চলন্ত ঘর) সজ্জিত। অধ্যয়নটি আমার মনে আটকে গেল কারণ এটি আইবিএম তাদের নিজস্ব ফ্লোচার্ট টেম্পলেট ব্যবহার করে তাদের লোকদের দ্বারা পরিচালিত হয়েছিল!
স্টিভেন এ। লো

7

আমি 1976 সালে আমার প্রথম প্রোগ্রামিং ক্লাসের পরে থেকে একটি ধ্রুপদী ফ্লো চার্ট আঁকিনি, এবং 80 এর দশকের প্রথম থেকে আর কাউকে একটি তৈরি করতে দেখিনি। কোড অ্যাসেম্বলি ভাষায় থাকাকালীন ফ্লো চার্টগুলি প্রোগ্রাম লজিক যোগাযোগের জন্য দরকারী ছিল। 1960 এর দশকের শেষের দিকে, এসেম্বলি ভাষার প্রোগ্রামাররা সিউডো-কোড ব্যবহার করছিল। আধুনিক ওও ভাষাগুলিতে প্রোগ্রামিং করার সময়, ফ্লো চার্ট বা সিউডো-কোডের কোনও মূল্য নেই। আপনি প্রয়োগের ভাষায় কেবল উচ্চ-স্তরের কোড লিখতে পারেন।

ডিজাইনের ধারণাগুলি প্রকাশ করার জন্য আমি মাঝেমধ্যে ইউএমএল ডায়াগ্রামগুলি আঁকি, বেশিরভাগ কাগজে, তবে এই চিত্রগুলি কেবল আলোচনার শেষ অবধি বেঁচে থাকে। আমি সময়ে সময়ে রাষ্ট্রের রূপান্তর চিত্রগুলিও আঁকি, তারপরে এগুলিকে বাস্তবায়নের ভাষায় একটি রাষ্ট্রীয় টেবিলে রূপান্তর করি।


5

আমি বেশ কয়েকটি কারণে বিভিন্ন সময় ফ্লোচার্ট ব্যবহার করি:

  1. তারা আমার মতে ইউএমএল কেস ডায়াগ্রাম ব্যবহার করার চেয়ে ভাল। তারা বিভিন্ন ব্যবহারের ক্ষেত্রে এবং তারা কীভাবে ইন্টারঅ্যাক্ট করে তা বেশ কয়েকটি প্রতিফলিত করতে পারে এবং ব্যবহারকারীর অভিজ্ঞতা এবং সিদ্ধান্তগুলি একত্রে আনতে সামগ্রিকভাবে তারা আরও ভাল কাজ করে।

  2. এগুলি বোঝা সহজ এবং আরও স্বজ্ঞাত। আপনার মন প্রাকৃতিকভাবে শুরু থেকে শেষ অবধি ধাঁধার মতো তীরগুলি অনুসরণ করে। আপনি অন্য ব্যবহারকারী গল্পের জন্য অন্য ফ্লোচার্টটি শেষ করতে এবং রেফারেন্স করতে ফ্লোচার্টগুলি ব্যবহার করতে পারেন। আমি এগুলিকে সাধারণত একটি পৃষ্ঠার নম্বরযুক্ত বইতে মুদ্রণ করতে পারি এবং পরবর্তী পৃষ্ঠার চার্টে নেভিগেট করার জন্য পৃষ্ঠাগুলি দ্রুত ফ্লিপ করতে পারি।

  3. তারা সর্বজনীন। সফটওয়্যার ইঞ্জিনিয়ারিংয়ের বাইরের খুব কম লোকই ইউএমএল ডায়াগ্রামগুলি জানে এবং বুঝতে পারে, যেখানে ফ্লোচার্ট ডায়াগ্রামগুলি ব্যবহারকারী এবং ব্যবসায়িক বিশ্লেষকদের দ্বারা অনেক বেশি স্বীকৃত। আমি জটিল ব্যবহারের ক্ষেত্রে গ্রাহকের কাছে যোগাযোগ করার চেষ্টা করি এবং তারা মাঝে মাঝে বুঝতে অনুধাবন করার জন্য লড়াই করে, আমি তাদের একটি ফ্লোচার্ট আঁকাম এবং তারা বুঝতে পারে যে পরিশেষে সমস্ত সংক্ষিপ্ত বিবরণগুলি কেন বুঝতে পারে যা তারা ভেবেছিল তার চেয়ে আরও জটিল করে তোলে।


4
ব্যবহারকারীগণ এবং বিএ দ্বারা স্বীকৃত ফ্লোচার্টগুলির জন্য +1। আপনি কোন সরঞ্জাম ফ্লোচার্টিং সরঞ্জাম ব্যবহার করেন?
মাইকেল রিলে - এ কেএ গুনি

4
ফ্লো চার্টগুলি মোটেই ব্যবহারের ক্ষেত্রে প্রতিনিধিত্ব করে না। আপনি যদি কোনও ইউএমএল ডায়াগ্রামে ফ্লো চার্টের সম্পর্ক স্থাপন করতে চেয়েছিলেন তবে এটি সিকোয়েন্স ডায়াগ্রাম, যোগাযোগ ডায়াগ্রাম বা ক্রিয়াকলাপের চিত্রের মতো হবে be আসলে, ক্রিয়াকলাপের চিত্রগুলি ওয়ার্কফ্লো দেখানোর জন্য। আমার মতে, ইউএমএল ক্রিয়াকলাপ ডায়াগ্রামগুলিকে ফ্লোচার্টের চেয়ে আরও ভাল করে তোলে তা হ'ল যে চিহ্নগুলি এবং পরিভাষাগুলি ব্যবহার করা হয়েছে সেটি প্রতীকী অর্থগুলি সন্ধান না করে সহজেই এটি পড়তে দেয় (যিনি এটি জানেন) এটি ব্যবহার করা হয়েছে।
টমাস ওয়েন্স

@ থমাস, বিভিন্ন স্ট্রোক ... আপনি ঠিক বলেছেন যে ক্রিয়াকলাপ ডায়াগ্রামগুলি আরও প্রকাশযুক্ত তবে তাদের আরও ইনপুট, ইউএমএল জ্ঞান এবং মূল্যবান মূল্যবান সময় প্রয়োজন যা গ্রাহককে এখনই ডায়াগ্রামের প্রয়োজন হয় যখন আমার কাছে নেই কেবল এখন !!! আমি দ্রুত এবং নোংরা ফ্লোচার্ট বেত্রাঘাত করতে পারি। ব্যবহারকারীর কাছে প্রকৃত ইউএমএল ব্যবহারের ক্ষেত্রে ডায়াগ্রাম তাদের সাধারণ জ্ঞান জানায়। ফ্লোচার্ট বিষয়টি মাংসে পেয়ে যায়।
maple_shaft

2
@ কেপ, আমি কেবল ভিজিও ব্যবহার করি। এটি অবশ্যই সেরা হাতিয়ার নয় তবে তারা যা জানেন তা আপনি জানেন, লোকেরা একটি অপরিচিত এলিয়েন স্বর্গের উপরে একটি পরিচিত আরামদায়ক নরকে বাছাই করে।
ম্যাপেল_শ্যাফট

@ ম্যাপল - ধন্যবাদ আমি উড়ে গিয়েছি কারণ আমি ভেবেছিলাম ফ্লোচার্টগুলি আর প্রাসঙ্গিক নয়। আমি উটপাখির মতো অনুভব করি ;-)
মাইকেল রিলি - একে একে গনি

3

যখন জিনিসগুলি একটি নির্দিষ্ট ক্রমে করা দরকার তখন ফ্লোচার্টগুলি কার্যকর। যেখানে তারা সত্যিই আমার মনে জ্বলজ্বল করছে তা দেখানো হচ্ছে যেখানে সিদ্ধান্ত নেওয়া হয় এবং নিশ্চিত করে দেওয়া হয় যে প্রতিটি সম্ভাব্য সিদ্ধান্তের একটি পথ রয়েছে। এটি এমন প্রোগ্রাম তৈরি করতে বাধা দেয় যেখানে ম্যানেজারের অনুমোদনের প্রয়োজন হয় তবে ম্যানেজার (যিনি 98% সময় অনুমোদন করেন) না বললে তা মোকাবেলা করার কোনও উপায় নেই। তারা আমাদের মনে করিয়ে দেয় যে সর্বাধিক সাধারণ পথটি কেবল একমাত্র পথ নয়। আমি তাদের প্রয়োজনীয়তার বিষয়ে ব্যবহারকারীদের সাথে কথা বলার ক্ষেত্রে দরকারী বলে মনে করি কারণ প্রায়শই তারা আপনাকে কেবল সবচেয়ে সাধারণ পথই বলে দেবে।


1

ফ্লো চার্টগুলি বিপরীত প্রকৌশলগুলির জন্য খুব খারাপভাবে কাঠামোগত কোডের জন্য কার্যকর হতে পারে। বিশেষত যদি এটি গোটস থাকে। শুকরিয়া আমি সাম্প্রতিক সময়ে রিডডেন কোড বেশি দেখিনি।

যেমন অন্যরা শেষ ব্যবহারকারীদের সাথে যোগাযোগের জন্য উল্লেখ করেছে। আমি ফ্লো চার্ট দ্বারা নথিভুক্ত একটি টিভি ট্রান্সমিটারের প্রারম্ভকে বাছাই করি। হার্ডওয়্যার এবং সফ্টওয়্যার লোকেদের কাজ করার জন্য একটি সাধারণ স্পেসিফিকেশন ছিল।


0

ইউএমএল ক্রিয়াকলাপ ডায়াগ্রাম এবং ফ্লোচার্ট কোনও প্রক্রিয়া বা অ্যালগরিদমের নিম্ন থেকে মাঝারি জটিলতা দেখাতে দরকারী।

ব্যবসায়িক বিধি সম্পর্কে ব্যবসায় ব্যবহারকারীদের সাথে যোগাযোগ করার সময় তারা খুব ভাল।

বিপিএমএন ২.০ আকারে একটি ভিন্নতা বিদ্যমান যা বিজনেস প্রসেস মডেলিংয়ে খুব কার্যকর।

কিছু বিপিএমএন সরঞ্জাম চার্ট থেকে চলমান ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারে।

হ্যাঁ, ফ্লোচার্টগুলির এখনও একটি জায়গা রয়েছে তবে সেগুলি বুদ্ধিমানের সাথে ব্যবহার করা দরকার।


-2

আমি প্রোগ্রামার নই। আমি একটি হার্ডওয়্যার ইঞ্জিনিয়ারিং প্রযুক্তি।

কমপক্ষে আপনার ব্যবহৃত লজিক্যাল ব্লকগুলি ব্যাখ্যা করে মন্তব্য দিয়ে শুরু করার বিষয়টি আমার কাছে বোধগম্য। এর পরে, আসল কোড সহ প্রোগ্রামটির কঙ্কালটি ছড়িয়ে দেওয়া। এটি স্টোরি বোর্ডের সাহায্যে মুভি স্ক্রিপ্ট শুরু করা এবং তারপরে অ্যাকশন বিশদ এবং সংলাপটি পূরণের অনুরূপ।

কোন সার্থক প্রচেষ্টা সতর্কতার সাথে পরিকল্পনা করা উচিত নয়? হার্ডওয়্যার রাজ্যে, আমরা গ্রাহকের প্রয়োজনীয়তার ডক দিয়ে শুরু করি, তারপরে একটি হার্ডওয়্যার স্পেসিফিকেশন ডকুমেন্ট লিখি, তারপরে স্কিম্যাটিকটি বের করি, তারপরে একটি বোর্ড লেআউট আঁকুন, তারপরে সমাবেশ ডকুমেন্টেশন নিয়ে আসুন। আমরা শেষের পণ্যটি তৈরি করার জন্য ধারণাগুলি নিয়ে আসার সাথে সাথে কেবল অংশগুলি দখল এবং সেগুলি একসাথে বিক্রি করা শুরু করি না।

আসল কোডিং শুরু করার আগে প্রচুর প্রিপ কাজ না করে 15 কেবি বা 15 এমবি প্রোগ্রামে কীভাবে কার্যকর কোড লেখা যায় তা আমি দেখতে পাই না।


1
অনেক লোক হার্ডওয়্যার এবং সফ্টওয়্যারগুলির মধ্যে উপমাগুলি প্রয়োজনীয় প্রাসঙ্গিক নয় বলে বিবেচনা করে। সফ্টওয়্যারটিতে ডিজাইন-কোড-টেস্ট চক্রগুলি অনেক দ্রুত হয়। তথাকথিত চতুর পদ্ধতিগুলি প্রথমে একটি পরীক্ষা লিখত তারপরে পরীক্ষাটি পাস করার জন্য কোড লিখত <br স্পেস শাটল সফ্টওয়্যারটি আপনার পক্ষে ব্যবহৃত কৌশলগুলি ব্যবহার করে রচিত হয়েছিল।
নিক কেঘলি

এছাড়াও ফ্লো চার্টগুলি অগত্যা সফ্টওয়্যার ডিজাইনের জন্য পছন্দের সরঞ্জাম নয়!
নিক কেঘলি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.