Frame technology (software engineering)
ফ্রেম প্রযুক্তি (এফটি) একটি ভাষা-নিরপেক্ষ (অর্থাৎ, বিভিন্ন ভাষা প্রক্রিয়া) ব্যবস্থা যা পুনরায় ব্যবহারযোগ্য, মেশিন-অভিযোজিত বিল্ডিং ব্লক থেকে কাস্টম সফ্টওয়্যার তৈরি করে, যাকে ফ্রেম বলা হয়। বড়, জটিল সফ্টওয়্যার সিস্টেমের নকশা, নির্মাণ এবং বিবর্তনের সাথে জড়িত সময়, প্রচেষ্টা এবং ত্রুটিগুলি হ্রাস করতে এফটি ব্যবহার করা হয়। এফটি-র মৌলিক হল অনুরূপ কিন্তু সূক্ষ্মভাবে বিভিন্ন উপাদানের বিস্তার বন্ধ করার ক্ষমতা, একটি সমস্যা যা সফ্টওয়্যার ইঞ্জিনিয়ারিংকে জর্জরিত করে, যার জন্য প্রোগ্রামিং ভাষা (সাবরুটিন, ক্লাস, বা টেমপ্লেট/জেনেরিক) বা ম্যাক্রো এবং জেনারেটরের মতো অ্যাড-ইন কৌশলগুলি ব্যবহারিক, পরিমাপযোগ্য সমাধান প্রদান করতে ব্যর্থ হয়। এফটি-র বেশ কয়েকটি বাস্তবায়ন রয়েছে। নেট্রন ফিউশন ব্যবসায়িক সফ্টওয়্যার তৈরিতে বিশেষজ্ঞ এবং এটি মালিকানাধীন। এ. আর. টি (অভিযোজিত পুনঃব্যবহার প্রযুক্তি) হল এফ. টি-র একটি সাধারণ-উদ্দেশ্য, মুক্ত-উৎস বাস্তবায়ন। পল জি. ব্যাসেট প্রথম এফ. টি উদ্ভাবন করেছিলেন যাতে পরিবর্তনশীল প্রয়োজনীয়তা এবং প্রসঙ্গের সাথে অভিযোজিত (উত্পন্ন এবং হাতে লেখা) প্রোগ্রামগুলির সাথে জড়িত পুনরাবৃত্তিমূলক, ত্রুটি-প্রবণ সম্পাদনা স্বয়ংক্রিয় করা যায়। একটি উল্লেখযোগ্য সাহিত্য এখন বিদ্যমান যা ব্যাখ্যা করে যে এফটি কীভাবে সফ্টওয়্যারের জীবনচক্রের বেশিরভাগ দিককে সহজতর করতে পারে, যার মধ্যে রয়েছে ডোমেন মডেলিং, প্রয়োজনীয়তা সংগ্রহ, স্থাপত্য ও নকশা, নির্মাণ, পরীক্ষা, ডকুমেন্টেশন, সূক্ষ্ম সুর এবং বিবর্তন। বিকল্প পদ্ধতির সঙ্গে এফটি-র স্বাধীন তুলনা নিশ্চিত করে যে জটিল ব্যবস্থা তৈরি ও রক্ষণাবেক্ষণের জন্য প্রয়োজনীয় সময় ও সংস্থানগুলি যথেষ্ট পরিমাণে হ্রাস করা যেতে পারে। একটি কারণঃ এফটি প্রোগ্রামারদের সফ্টওয়্যারের অন্তর্নিহিত অপ্রয়োজনীয়তা থেকে রক্ষা করেঃ এফটি সমতুল্য এক্সভিসিএল ফ্রেম লাইব্রেরি থেকে সিওটিএস অবজেক্ট-লাইব্রেরিগুলি পুনরুত্পাদন করেছে যা দুই-তৃতীয়াংশ ছোট এবং সহজ; কাস্টম ব্যবসায়িক অ্যাপ্লিকেশনগুলি নিয়মিতভাবে নেট্রন ফিউশনএসপিসি ফ্রেম দ্বারা নির্দিষ্ট এবং রক্ষণাবেক্ষণ করা হয় যা তাদের একত্রিত উত্স ফাইলগুলির আকারের 5%-15%। নীচের ফ্রেমগুলি দুটি অনানুষ্ঠানিক বিবরণ, তারপরে আরও সুনির্দিষ্ট সংজ্ঞা এবং ব্যাখ্যা রয়েছে। একটি ফ্রেম একটি স্বয়ংক্রিয় সফ্টওয়্যার সমাবেশ লাইনের একটি অভিযোজিত উপাদান। এমন একটি গাড়ির কারখানার কথা কল্পনা করুন যেখানে প্রতিটি গাড়ির মডেলের নির্দিষ্ট বৈশিষ্ট্য অনুসারে নির্দিষ্ট বাম্পার, ফেন্ডার এবং অন্যান্য যন্ত্রাংশের পরিবর্তে আমাদের কাছে কেবল একটি জেনেরিক বাম্পার, একটি জেনেরিক ফেন্ডার ইত্যাদি রয়েছে। এখন কল্পনা করুন যে এই জেনেরিক অংশগুলি প্রতিটি গাড়ির মডেলের সাথে খাপ খাইয়ে নেওয়ার জন্য ক্লোন এবং আকার দেওয়া যেতে পারে। এই ধরনের কল্পনা উৎপাদনে বিপ্লব ঘটাবে; এবং ভৌত অংশগুলির জন্য অসম্ভব হলেও, সফ্টওয়্যার (এবং সাধারণভাবে তথ্য)-এর জন্য ফ্রেমগুলি এটাই করে। একটি ফ্রেম হল একটি (প্রোগ্রাম) পাঠ্য "রান্না" করার জন্য একটি রেসিপি। এর নির্দেশাবলী বলে যে কীভাবে এর উপাদানগুলি-নিজের মধ্যে ফ্রেম-টেক্সটের অংশগুলি-অন্যান্য ফ্রেমের উপাদানগুলির সাথে মিশ্রিত করা যায়। "শেফ" হল একটি ফ্রেম প্রসেসর যা নির্দেশাবলী পালন করে, অর্থাৎ। ফ্রেম কমান্ডগুলি, যা মূল রেসিপি অনুসারে প্রয়োজনীয় উপাদানগুলি (যোগ, সংশোধন, মুছে ফেলা) পরিবর্তন করে। আনুষ্ঠানিকভাবে, একটি ফ্রেম হল একটি পদ্ধতিগত ম্যাক্রো যা ফ্রেম-টেক্সট নিয়ে গঠিত-সাধারণ (প্রোগ্রাম) টেক্সট এবং ফ্রেম কমান্ডের শূন্য বা তার বেশি লাইন (যা এফটি-র ফ্রেম প্রসেসর দ্বারা পরিচালিত হয় কারণ এটি কাস্টম প্রোগ্রাম তৈরি করে)। প্রতিটি ফ্রেম নেস্টেড সাব-অ্যাসেম্বলির শ্রেণিবিন্যাসের একটি সাধারণ উপাদান এবং তার সাব-অ্যাসেম্বলি ফ্রেমগুলির সাথে নিজেকে সংহত করার একটি পদ্ধতি (একটি পুনরাবৃত্তিমূলক প্রক্রিয়া যা উচ্চ স্তরের সাব-অ্যাসেম্বলির পক্ষে একীকরণ দ্বন্দ্ব সমাধান করে)। আউটপুটগুলি হল কাস্টম নথি, সাধারণত সংকলনযোগ্য উৎস মডিউল। প্রধান কমান্ডগুলি একটি ফ্রেম আহ্বান করে (একটি পদ্ধতি কল যা প্রোগ্রাম টেক্সট তৈরি করার সময় ঘটে); একটি ফ্রেম প্যারামিটারে (একটি নির্মাণ-সময় পরিবর্তনশীল অ্যাসাইনমেন্ট) একটি (তালিকা) এক্সপ্রেশন (গুলি) বরাদ্দ করুন; ফ্রেম-টেক্সটের ব্লকগুলির আগে, পরিবর্তে বা পরে ফ্রেম-টেক্সট সন্নিবেশ করান, প্যারামিটার এক্সপ্রেশন দ্বারা লেবেলযুক্ত; একটি ফ্রেম প্যারামিটার তাত্ক্ষণিকভাবে (একটি নির্মাণ-সময় এক্সপ্রেশন মূল্যায়ন); প্রক্রিয়াকরণের জন্য ফ্রেম-টেক্সট নির্বাচন করুন (একটি নির্মাণ-সময় কেস স্টেটমেন্ট); নির্দিষ্ট ফ্রেম প্যারামিটারগুলি পরিবর্তন করার সময় একটি ফ্রেম-টেক্সট পুনরাবৃত্তি করুন (বিবৃতি দেওয়ার সময় একটি নির্মাণ-সময়)। প্রসেসর সাধারণ পাঠ্যের সাথে কমান্ড প্রতিস্থাপন করে এবং সাধারণ পাঠ্য নির্গত করে ফ্রেম-পাঠ্যকে রূপান্তরিত করে। উদাহরণস্বরূপঃ এটি আহ্বান করা ফ্রেমটি প্রক্রিয়াকরণের ফলাফল দ্বারা একটি আহ্বানকে প্রতিস্থাপন করে; এটি একটি বরাদ্দকে শূন্য দিয়ে প্রতিস্থাপন করে; এবং একটি তাত্ক্ষণিক ফ্রেম প্যারামিটারের নির্ধারিত অভিব্যক্তি মূল্যায়নের ফলে সাধারণ পাঠ্য হয়ে ওঠে, যা স্ট্রিং, গাণিতিক অভিব্যক্তি এবং নেস্টেড ফ্রেম প্যারামিটারগুলির সংমিশ্রণ হতে পারে। উপাদান সম্পর্ক ফ্রেমগুলির মধ্যে উপাদান সম্পর্ক স্থাপন করে। উদাহরণস্বরূপ, চিত্র 1-এঃ F হল J-এর উপাদান এবং C হল J-এর উপ-উপাদান। অবশ্যই, অনেক উপাদান একই উপ-উপাদানকে আহ্বান করতে পারে, যেমন আই এবং জে এফ আহ্বান করে, প্রতিটি একটি ভিন্ন পাঠ্য তৈরি করে। সামগ্রিক উপাদান কাঠামো একটি সাধারণ সেমিল্যাটিস গঠন করে, প্রতিটি ফ্রেম একটি উপ-সমাবেশের মূল। সুতরাং সি এর নিজস্ব উপ-সমাবেশ; এফ এবং সি এফ উপ-সমাবেশের উপাদান, এবং জে, এফ এবং সি জে উপ-সমাবেশের উপাদান। প্রসঙ্গ বিন্যাস হল যা এফ. টি-কে অন্যান্য মডেলিং এবং নির্মাণ ব্যবস্থা থেকে আলাদা করেঃ প্রতিটি ফ্রেম সেই প্রসঙ্গ গঠন করে যার মধ্যে এটি তার উপ-সমাবেশকে সংহত করে। নেস্টেড সাব-অ্যাসেম্বলিতে নিম্ন স্তরগুলি ধীরে ধীরে আরও প্রসঙ্গ-মুক্ত হয় কারণ তারা কম তথ্য সংহত করে। ইন্টিগ্রেশন দ্বন্দ্বগুলি একটি প্যারামিটার বরাদ্দ বা সন্নিবেশ করার জন্য সর্বাধিক প্রসঙ্গ-সংবেদনশীল ফ্রেমের পক্ষে সমাধান করা হয়-এটি সেই ফ্রেমের সাব-অ্যাসেম্বলির অন্যান্য সমস্ত ফ্রেমে কেবল পঠনযোগ্য হয়ে ওঠে। চিত্র 1-এ, ফ্রেম এফ এবং সি দ্বন্দ্ব সৃষ্টি করবে যদি তারা প্যারামিটার পি-তে বিভিন্ন মান নির্ধারণ করে। সুতরাং এফ সি-কে ওভাররাইড করে অর্থাৎ ফ্রেম প্রসেসর সি-এর অ্যাসাইনমেন্ট (গুলি) কে পি-তে উপেক্ষা করে এবং এফ এবং সি-তে পি-এর জন্য এফ-এর মান (গুলি) ব্যবহার করে। একইভাবে, জে এফ এবং সি উভয়কেই ওভাররাইড করতে পারে, ইত্যাদি। প্রসঙ্গ-পরিধি গুরুত্বপূর্ণ কারণ প্রদত্ত প্রেক্ষাপটে যে কোনও সংখ্যক (উপ) উপাদানের সঙ্গে খাপ খাইয়ে নেওয়ার জন্য প্রয়োজনীয় সমস্ত সমন্বয় স্পষ্ট এবং সেই প্রেক্ষাপটে স্থানীয়। প্রসঙ্গ-পরিধি ব্যতীত এই ধরনের সমন্বয়গুলি বেশিরভাগই অন্তর্নিহিত, ছড়িয়ে ছিটিয়ে এবং উপাদান রূপগুলির মধ্যে লুকিয়ে থাকে। এই ধরনের রূপগুলি কেবল প্রসারিত হওয়ার প্রবণতা দেখায় না, যা অপ্রয়োজনীয় অপ্রয়োজনীয়তা এবং জটিলতা সৃষ্টি করে, তবে সিস্টেমের বিবর্তনও অপ্রয়োজনীয়ভাবে কঠিন এবং ত্রুটি-প্রবণ। নির্দিষ্টকরণ ফ্রেম এবং টেমপ্লেট একটি নির্দিষ্টকরণ ফ্রেম (এস. পি. সি) একটি সম্পূর্ণ সমাবেশের শীর্ষস্থানীয়, তাই সর্বাধিক প্রসঙ্গ-সংবেদনশীল ফ্রেম। একটি সম্পূর্ণ প্রোগ্রাম বা সাবসিস্টেম তৈরি করার জন্য প্রসেসরটি একটি এসপিসি থেকে শুরু হয়, যেমন চিত্র 1-এ এল বা এম। যদিও নীতিগতভাবে একটি এসপিসি প্রতিটি বিবরণ কাস্টমাইজ করতে পারে, বাস্তবে একটি এসপিসি তার পুরো সমাবেশের একটি ছোট ভগ্নাংশ কারণ বেশিরভাগ ব্যতিক্রম (এবং ব্যতিক্রম ইত্যাদির ব্যতিক্রম)। ইতিমধ্যে বিভিন্ন সাব-অ্যাসেম্বলি ফ্রেম দ্বারা পরিচালিত হয়েছে। একটি ফ্রেম লাইব্রেরির পরিপ্রেক্ষিতে, এসপিসিগুলি যৌক্তিকভাবে তাদের নির্মিত প্রোগ্রামগুলিকে অন্তর্ভুক্ত করে; এইভাবে এসপিসিগুলি প্রাথমিক নিয়ন্ত্রণ পয়েন্ট হিসাবে উৎস ফাইলগুলিকে প্রতিস্থাপন করে। এসপিসি তৈরি করার জন্য টেমপ্লেট ব্যবহার করা নিয়মিত অভ্যাস যা প্রোগ্রাম তৈরি করে, তারপর অনির্দিষ্টকালের জন্য সেই প্রোগ্রামগুলি পরিচালনা ও বিকশিত করতে এসপিসি ব্যবহার করে। এই অনুশীলনটি অ্যাপ্লিকেশন প্রোগ্রামারদের অবশ্যই জানতে এবং পরিচালনা করতে হবে এমন বিবরণের সংখ্যাকে ব্যাপকভাবে হ্রাস করে। এটি হাত দিয়ে উৎস পাঠ্য অনুলিপি এবং সম্পাদনার অন্তর্নিহিত অপ্রয়োজনীয়তা, জটিলতা এবং ত্রুটিগুলিও এড়িয়ে চলে। ডিবাগ করার সময়ও সঙ্কুচিত হয় কারণ বেশিরভাগ উপাদান পুনরায় ব্যবহার করা হয়, তাই পূর্বনির্ধারিত। ত্রুটিগুলি এস. পি. সি-তে স্থানীয়করণের প্রবণতা থাকে, কারণ সেগুলি সবচেয়ে কম পরীক্ষিত। একটি টেমপ্লেট হল একটি প্রত্নতাত্ত্বিক এস. পি. সি, যেখানে এম্বেড করা মন্তব্যগুলি ব্যাখ্যা করে যে কীভাবে এটি কাস্টমাইজ করা যায়। সাধারণত, অল্প সংখ্যক প্রোগ্রাম রয়েছে, প্রতিটি প্রকার একটি টেমপ্লেট দ্বারা চিহ্নিত করা হয়। এটি অনুলিপি করে এবং পূরণ করে, প্রোগ্রামাররা একটি টেমপ্লেটকে একটি এসপিসিতে রূপান্তরিত করে তাদের কী ফ্রেম প্রয়োজন, তাদের উপাদান সম্পর্ক, বা সাধারণত কোন বিবরণ কাস্টমাইজ করা প্রয়োজন তা মনে না রেখে। ফ্রেম-ভিত্তিক ডোমেন-নির্দিষ্ট ভাষা একটি এফটি-ভিত্তিক, ডোমেন-নির্দিষ্ট ভাষা (এফটি-ডিএসএল) একটি ডোমেন-নির্দিষ্ট ভাষা যার শব্দার্থবিদ্যা (প্রোগ্রাম কোডে প্রকাশিত) ফ্রেমগুলিতে ইঞ্জিনিয়ার করা হয়েছে। একটি সাধারণ এফটি-ডিএসএল সম্পাদক ডিএসএল অভিব্যক্তি এবং একটি ফ্রেমের মধ্যে অনুবাদ করে যা ফ্রেমযুক্ত শব্দার্থবিজ্ঞানকে ডিএসএল অভিব্যক্তিগুলির প্রোগ্রাম-কোড সমতুল্য প্রকাশ করতে অভিযোজিত করবে। এই উপ-সমাবেশের উপরে বসে থাকা একটি এসপিসি তারপর প্রোগ্রাম কোডে ডোমেন-নির্দিষ্ট ভাষায় অবর্ণনীয় যে কোনও কাস্টমাইজেশন নির্দিষ্ট করতে পারে। সুতরাং ব্যবহারকারীরা যখন পরিবর্তিত ডিএসএল এক্সপ্রেশন থেকে প্রোগ্রাম কোড পুনরুজ্জীবিত করেন, তখন পূর্বের কাস্টমাইজেশনগুলি হারিয়ে যায় না। ফ্রেম ইঞ্জিনিয়ারিং ফ্রেম ইঞ্জিনিয়ারিং একটি ফ্রেম প্রযুক্তি পরিবেশে সফ্টওয়্যার ইঞ্জিনিয়ারিং প্রয়োগ করে। এর মধ্যে রয়েছে ডোমেন বিশ্লেষণ, নকশা করা, লেখা, পরীক্ষা করা এবং ফ্রেমগুলির সহ-বিবর্তন এবং তাদের তৈরি করা সিস্টেমগুলি। ফ্রেমিং বটম-আপ এবং টপ-ডাউন উভয় ক্ষেত্রেই ঘটে। নীচে, ফ্রেম ইঞ্জিনিয়াররা সাধারণত অনুরূপ প্রোগ্রাম উপাদানগুলির (যে কোনও গ্রানুলারিটির, টেক্সট স্নিপেট থেকে সাবসিস্টেম পর্যন্ত) গোষ্ঠীগুলিকে জেনেরিক সমতুল্যগুলিতে একীভূত করে এবং প্যারামিটারাইজ করে ফ্রেম তৈরি করে। টপ-ডাউন পদ্ধতিটি পুনরাবৃত্তিমূলক প্রোটোটাইপ পরিশোধন সহ ডোমেন দক্ষতার সংমিশ্রণ করে, যা প্রয়োগ এবং স্থাপত্যের প্রয়োজনীয়তা, কর্পোরেট মান এবং পুনর্ব্যবহারযোগ্য সম্পদের একটি সেট বিকশিত করার ইচ্ছা দ্বারা সীমাবদ্ধ যার রিটার্ন বিনিয়োগের চেয়ে অনেক বেশি। (পুনঃব্যবহার পরিমাপ করা হয় ফ্রেম লাইব্রেরির মোট আকারকে ফলস্বরূপ গঠনের মোট আকারের মধ্যে ভাগ করে এবং/অথবা পৃথক ফ্রেম পুনঃব্যবহার গণনা করে।) একটি পরিপক্ক ফ্রেম লাইব্রেরি খরচ-কার্যকারিতা বাড়ায় কারণ সফ্টওয়্যার প্রকল্পের অংশীদাররা একটি সিস্টেমের অভিনবত্বের দিকে তাদের মনোযোগ সীমাবদ্ধ করতে পারে, এর শক্তিশালী উপাদান এবং স্থাপত্যের বেশিরভাগ অংশকে মঞ্জুর করে। একটি পরিপক্ক গ্রন্থাগার স্থিতিশীল নয়। ফ্রেম ইঞ্জিনিয়াররা, নির্বাচিত কমান্ড ব্যবহার করে, অনির্দিষ্টকালের জন্য পুনঃব্যবহারযোগ্য ফ্রেমগুলি বিকশিত করতে পারেন, ফ্রেমের পূর্ববর্তী সংস্করণগুলি থেকে তৈরি প্রোগ্রামগুলিতে পুনরায় ফিট করার প্রয়োজন ছাড়াই নতুন প্রয়োজনীয়তা পূরণ করতে পারেন। পাদটীকা সোর্স কোড জেনারেশন