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