ইউএমএলের জায়গায় ফাংশনাল প্রোগ্রামারগুলি কী ব্যবহার করছে?


18

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

এখন আমরা সাহায্যকারী সরঞ্জাম হিসাবে ইউএমএল ব্যবহার করছি। আমি বিশ্বাস করি ওওপি-তে আমার ভাল উপলব্ধি আছে তবে আমি কার্যকরী দৃষ্টান্তও শিখেছি এবং আমার কয়েকটি ছোট প্রকল্পে এটি সফলভাবে ব্যবহার করেছি।

আমাদের শিক্ষক, যখন "ফাংশনাল দৃষ্টান্ত সম্পর্কে কী?" প্রশ্ন, উত্তর যে তিনি কার্যকরী ভাষায় কোন বৃহত্তর প্রকল্প প্রোগ্রামিং ছিল না, এবং কোন সরঞ্জাম কার্যকরী প্রোগ্রাম ব্যবহার করতে পারে তা তিনি জানেন না।

সুতরাং, তারা কি ব্যবহার করবে? এর জন্য কি কোনও পদ্ধতি আছে? বা এ জাতীয় কিছুর দরকার নেই?


8
যেহেতু এফপি ডেটাগুলিকে বেশি জোর দেয়, কোনও ফ্লোচার্ট বা সিকোয়েন্স ডায়াগ্রামটি যেভাবে আবশ্যক কোডকে ব্যাখ্যা করে, কোনও তথ্য প্রবাহ চিত্রটি সম্ভবত কোনও এফপি প্রোগ্রামকে ব্যাখ্যা করতে পারে uc
9000

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

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

আমার এবং সম্ভবত আরও অনেক লোকের পক্ষে উত্তর কিছুই নয়। বিশ্ববিদ্যালয়ের বাইরে আমি কখনও কখনও ইউএমএল ব্যবহার করতে বা এমনকি এটি উল্লেখ করতে দেখিনি।
কিওয়ারটি

উত্তর:


23

আমি সমস্ত কার্যনির্বাহী প্রোগ্রামারদের জন্য কথা বলতে পারি না, তবে যাদের আমি জানি তারা শীর্ষ-স্তরের ফাংশনের স্বাক্ষরগুলি লিখে লিখে শুরু করে, তাদের আরও বিশদ প্রয়োজনের সাথে তারা সহায়ক ফাংশনগুলির স্বাক্ষরগুলি লিখে দেয় এবং আরও এগিয়ে।

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

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


19

ইউএমএল স্ট্যান্ডার্ড এক ডজনেরও বেশি বিভিন্ন চিত্রের ধরণের সংজ্ঞা দেয়, যেমন এই হ্যান্ডি চার্টে দেখানো হয়েছে:

ইউএমএল ডায়াগ্রাম প্রকার

সূত্র: https://en.wikedia.org/wiki/File:UML_diagrams_overview.svg

চিত্র দেখুন A.5 এছাড়াও দেখুন ইউএমএল 2.5 স্পেক-তে কাঠামো এবং আচরণের চিত্রের বিভাগে।

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

এমন বেশ কয়েকটি প্রকার রয়েছে যা কেবলমাত্র ওওপি-তে স্পষ্টভাবে প্রযোজ্য, উদাহরণস্বরূপ শ্রেণীর চিত্র বা বস্তুর ডায়াগ্রাম । তবে বাকিগুলি কেবলমাত্র অবজেক্ট-ওরিয়েন্টেড সিস্টেমগুলির জন্য বেশি প্রযোজ্য।

  • রাজ্য মেশিন ডায়াগ্রাম - এফপি রাজ্যগুলি এড়িয়ে যায় না, এটি কেবল তাদের স্পষ্ট করে তোলে। একটি স্টেট মেশিন ডায়াগ্রাম নিয়ন্ত্রণ প্রবাহ বা প্রোগ্রামের বিভিন্ন রাষ্ট্রীয় রূপান্তরগুলি ব্যাখ্যা করতে কার্যকর হতে পারে।

  • ক্রিয়াকলাপ চিত্রগুলি - স্টেট মেশিন ডায়াগ্রামের মতো একই ক্ষেত্রে কার্যকর তবে উচ্চতর স্তরে। এগুলি বিভিন্ন উপ-সিস্টেমের মধ্যে ডেটা প্রবাহকে ব্যাখ্যা করতে বা বহিরাগত ব্যবসায়িক প্রক্রিয়াগুলির মডেল করতে ব্যবহার করা যেতে পারে।

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

  • কেস ডায়াগ্রাম ব্যবহার করুন - ব্যবহারের কেস এবং প্রয়োজনীয়তাগুলি তাদের সন্তুষ্ট করতে ব্যবহৃত প্রযুক্তি থেকে স্বতন্ত্র। ওওপি বা এফপি এখানে একেবারেই অপ্রাসঙ্গিক।

  • ডিপ্লোয়মেন্ট ডায়াগ্রাম - এই ডায়াগ্রাম প্রকারটি চলমান সফ্টওয়্যার এবং হার্ডওয়্যার সংস্থানগুলির মধ্যে সম্পর্ক বর্ণনা করতে ব্যবহৃত হয়। সেই সফ্টওয়্যারটি কোনও এফপি ভাষায় লেখা হয়েছিল কিনা তা বিবেচ্য নয়।

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

  • প্রোফাইল ডায়াগ্রাম - নিজেই ইউএমএলে এক্সটেনশনের বর্ণনা দিন এবং বাস্তবে কখনও ব্যবহৃত হয় নি।

  • যৌগিক স্ট্রাকচার ডায়াগ্রাম - সংমিশ্রণের কাঠামো বর্ণনা করুন। এটি ডেটা স্ট্রাকচার, বা কোনও ফাংশনের ইন্টারঅ্যাকশন পয়েন্টগুলি বর্ণনা করতে ব্যবহার করা যেতে পারে। উইকিপিডিয়া উদাহরণস্বরূপ ফিবোনাচি ফাংশনের জন্য একটি চিত্র দেখায়:

    একটি ফিবোনাচি ফানসিটনের জন্য যৌগিক কাঠামো ডায়াগ্রাম

    সূত্র: https://commons.wikimedia.org/wiki/File:Composite_St جوړ_ Diagram.png

    এক অর্থে, এটি ক্লাস ডায়াগ্রামের চেয়ে কার্যকরী প্রোগ্রামারদের পছন্দ হবে, তবে এটি ভয়াবহভাবে অত্যধিক আকার ধারণ করেছে ...

  • প্যাকেজ ডায়াগ্রাম - প্যাকেজগুলি নেমস্পেসের ইউএমএল সমতুল্য। এই চিত্রের ধরণটি পৃথক চিত্রের চেয়ে ইউএমএল ভাষার অবকাঠামোর বেশি অংশ। উদাহরণস্বরূপ, আপনি একটি বড় ইউজ কেস ডায়াগ্রামকে শ্রেণিবদ্ধ করতে প্যাকেজগুলি ব্যবহার করতে পারেন।

সুতরাং আমরা যেমন দেখেছি, বিভিন্ন ইউএমএল ডায়াগ্রাম প্রকারগুলি এখনও কার্যকরী প্রোগ্রামিং করার সময় দরকারী হতে পারে।


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

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