আমি এই বিষয়টিকে উপস্থাপন করতে যাচ্ছি যে আমি যা সন্ধান করছি তার বেশিরভাগই 1970 এর দশক এবং 1980 এর দশকের শুরু থেকেই আসে। এই সময়ে, ক্রমবর্ধমান প্রক্রিয়া মডেলগুলি পুনরাবৃত্ত এবং / বা বর্ধমান পদ্ধতির (সর্পিল মডেল বা চতুর পদ্ধতি) এর চেয়ে অনেক বেশি সাধারণ ছিল। এই কাজের বেশিরভাগটি এই সিক্যুয়াল মডেলগুলিতে নির্মিত। যাইহোক, আমি মনে করি না যে সম্পর্কটি ধ্বংস করে দেয়, তবে পুনরুক্তি / বর্ধনশীল পদ্ধতির একটি সুবিধা হ'ল বৈশিষ্ট্যগুলি (একটি অ্যাপ্লিকেশনটির সম্পূর্ণ উল্লম্ব টুকরো) মুক্তি এবং নির্ভরতা ইনজেকশনের আগে এবং প্রতিটি পর্বের জটিলতার আগে এতে সমস্যাগুলি সংশোধন করা যথোপযুক্ত সৃষ্টিকর্তা.
আমি শুধু আমার কপি টেনে বের সফটওয়্যার ইঞ্জিনিয়ারিং অর্থনীতি এবং অধ্যায় 4. মধ্যে এই চার্ট তিনি উল্লেখ "ডিজাইন এবং কোড পরিদর্শন কর্মসূচী উন্নয়ন ত্রুটি কমাতে করতে" আমার Fagan (দ্বারা পিছনে ডেটা একটি রেফারেন্স পাওয়া আইইইই , UMD থেকে PDF ) প্রিন্সিপাল, EB ডালির "ম্যানেজমেন্ট অফ সফটওয়্যার ইঞ্জিনিয়ারিং", ডব্লিউই স্টিফেনসনের "সেফগার্ড সিস্টেম সফটওয়্যার ডেভেলপমেন্টে ব্যবহৃত সম্পদগুলির একটি বিশ্লেষণ" ( এসিএম ), এবং "বেশ কয়েকটি টিআরডাব্লু প্রকল্প"।
... সফ্টওয়্যার ত্রুটিগুলি সংশোধন করার আপেক্ষিক ব্যয় (বা অন্য সফ্টওয়্যার পরিবর্তনগুলি করা) সেই পর্যায়ের ক্রিয়া হিসাবে সংশোধন বা পরিবর্তন করা হয়। যদি পরিকল্পনা ও প্রয়োজনীয়তা পর্যায়ে কোনও সফ্টওয়্যার প্রয়োজনীয়তার ত্রুটি সনাক্ত করা হয় এবং সংশোধন করা হয়, তবে এর সংশোধন প্রয়োজনীয়তা নির্দিষ্টকরণের আপডেট করার তুলনামূলক সহজ বিষয় simple রক্ষণাবেক্ষণের পর্ব অবধি যদি একই ত্রুটিটি সংশোধন না করা হয় তবে সংশোধনটিতে স্পেসিফিকেশন, কোড, ব্যবহারকারীর এবং রক্ষণাবেক্ষণ ম্যানুয়ালগুলি এবং প্রশিক্ষণ সামগ্রীর অনেক বড় জায় রয়েছে।
আরও, দেরীতে সংশোধনগুলি অনেক বেশি আনুষ্ঠানিক পরিবর্তনের অনুমোদন এবং নিয়ন্ত্রণ প্রক্রিয়া এবং সংশোধনটিকে বৈধকরণের জন্য আরও অনেক বিস্তৃত কার্যকলাপ জড়িত। প্রয়োজনীয় উপাদানগুলির তুলনায় বড় প্রকল্পগুলিতে রক্ষণাবেক্ষণের পর্যায়ে এই ত্রুটিগুলি প্রায়শই 100 গুণ বেশি ব্যয়বহুল সংশোধন করার জন্য একত্রিত হয়।
বোহেম দুটি আরও ছোট, কম আনুষ্ঠানিক প্রকল্পের দিকেও নজর দিয়েছিল এবং ব্যয় বৃদ্ধি পেয়েছে, তবে বৃহত প্রকল্পগুলিতে চিহ্নিত 100 বারের চেয়ে অনেক কম তাত্পর্যপূর্ণ। চার্ট দেওয়া হয়েছে, প্রয়োজনীয়তা পর্যায়ে সিস্টেমটি কার্যকর হওয়ার পরে প্রয়োজনীয়তা ত্রুটিটি ঠিক করতে পার্থক্যগুলি 4 গুণ বেশি বলে মনে হয়। তিনি এটিকে প্রকল্পের সমন্বিত আইটেমগুলির ক্ষুদ্রতর তালিকা এবং সহজতর দ্রুত বাস্তবায়নের সক্ষমতা দ্রুতগতিতে পরিচালিত হ্রাস আনুষ্ঠানিকতার জন্য দায়ী করেছেন।
সফটওয়্যার ইঞ্জিনিয়ারিং অর্থনীতিতে বোহেমের ভিত্তিতে কোড কমপ্লিটের টেবিলটি বরং ফুলে যায় (রেঞ্জগুলির নিম্ন প্রান্তটি প্রায়শই খুব বেশি থাকে)। পর্বের মধ্যে যে কোনও পরিবর্তন আনতে ব্যয় করতে হবে প্রকৃতপক্ষে ১. সফ্টওয়্যার ইঞ্জিনিয়ারিং অর্থনীতিতে চিত্র 4-2 থেকে এক্সট্র্যাপোলেটিংয়ের প্রয়োজনে আর্কিটেকচারে 1.5-2.5 গুণ, কোডিংয়ের 2.5-10-10, পরীক্ষায় 4-20, এবং 4- হওয়া উচিত রক্ষণাবেক্ষণে 100 পরিমাণটি প্রকল্পের আকার এবং জটিলতার পাশাপাশি ব্যবহৃত প্রক্রিয়াটির আনুষ্ঠানিকতার উপর নির্ভর করে।
ব্যারি বোহেমের অ্যাপেনডিক্স ই এবং রিচার্ড টার্নারের ব্যালেন্সিং এগ্রিলিটি এবং ডিসিপ্লিনে পরিবর্তনের ব্যয় সম্পর্কিত অভিজ্ঞতাগত গবেষণার উপর একটি ছোট্ট অংশ রয়েছে।
উদ্বোধনী অনুচ্ছেদগুলিতে বেন্টকে উদ্ধৃত করে কেন্ট বেকের চরম প্রোগ্রামিংয়ের ব্যাখ্যা দেওয়া হয়েছে। এটি বলে যে সময়ের সাথে সাথে পরিবর্তনের ব্যয়টি ধীরে ধীরে বেড়ে গেলে সিদ্ধান্তগুলি যতটা সম্ভব দেরী করা হত এবং কেবল যা প্রয়োজন তা কার্যকর করা হত। এটি "ফ্ল্যাট কার্ভ" হিসাবে পরিচিত এবং এটি চরম প্রোগ্রামিং চালায়। তবে পূর্ববর্তী সাহিত্যে যা পাওয়া গেছে তা হ'ল "খাড়া বাঁকা", ছোট সিস্টেমগুলির সাথে (<5 কেএসএলসিপি) পরিবর্তন হয়েছে 5: 1 এবং বৃহত সিস্টেমে 100: 1 পরিবর্তন হয়েছে of
বিভাগটি মেরিল্যান্ডের ইউনিভার্সিটির সেন্টার ফর এম্পিরিকালি বেসড সফটওয়্যার ইঞ্জিনিয়ারিংয়ের (জাতীয় বিজ্ঞান ফাউন্ডেশন দ্বারা স্পনসরিত) উদ্ধৃত করেছে। তারা উপলভ্য সাহিত্যের অনুসন্ধান চালিয়েছে এবং দেখা গেছে যে ফলাফলগুলি 100: 1 অনুপাতের নিশ্চয়তা দেয়, কিছু ফলাফল 70: 1 থেকে 125: 1 এর পরিসীমা নির্দেশ করে। দুর্ভাগ্যক্রমে, এগুলি সাধারণত "বিগ ডিজাইন আপ ফ্রন্ট" প্রকল্প এবং ক্রমানুসারে পরিচালিত হয়েছিল।
এক্সট্রিম প্রোগ্রামিং ব্যবহার করে চলছে "ছোট বাণিজ্যিক জাভা প্রকল্পগুলি" এর নমুনা। প্রতিটি গল্পের জন্য, ত্রুটি ফিক্সিং, নতুন ডিজাইন এবং রিফ্যাক্টরিংয়ের প্রচেষ্টার পরিমাণ ট্র্যাক করা হয়েছিল। তথ্যগুলি দেখায় যে সিস্টেমটি বিকাশ লাভ করার সাথে সাথে (আরও বেশি ব্যবহারকারী গল্প বাস্তবায়িত হয়), গড় প্রচেষ্টা তুচ্ছ-হারে বৃদ্ধি পায়। রিফ্যাক্টরিংয়ের প্রচেষ্টা প্রায় 5% বৃদ্ধি পায় এবং প্রচেষ্টা ফিক্সিংয়ের দিকে প্রচেষ্টা প্রায় 4% বাড়ে।
আমি যা শিখছি তা হ'ল সিস্টেম জটিলতা প্রয়োজনীয় পরিশ্রমের ক্ষেত্রে দুর্দান্ত ভূমিকা পালন করে। সিস্টেমের মাধ্যমে উল্লম্ব টুকরোগুলি তৈরি করে, আপনি বক্ররেখাগুলি যোগ করার পরিবর্তে আস্তে আস্তে জটিলতা যুক্ত করে বক্ররেখাকে কমিয়ে আনেন। একটি অত্যন্ত জটিল আর্কিটেকচারের পরে প্রয়োজনীয়তাগুলির জটিলতার ব্যাপকতার সাথে মোকাবিলা করার পরিবর্তে একটি অত্যন্ত জটিল বাস্তবায়ন, এবং আরও অনেক কিছু, আপনি খুব সহজভাবে শুরু করে যোগ করুন।
এটি ঠিক করার জন্য ব্যয়ের উপর কী প্রভাব ফেলে? শেষ পর্যন্ত, সম্ভবত খুব বেশি না। তবে জটিলতার উপর আরও বেশি নিয়ন্ত্রণের জন্য প্রযুক্তিগত debtণ পরিচালনার মাধ্যমে এর সুবিধা রয়েছে। এছাড়াও, প্রায়শই চটজলের সাথে সম্পর্কিত ঘন ঘন বিতরণগুলি বোঝায় যে প্রকল্পটি খুব শীঘ্রই শেষ হতে পারে - "সিস্টেম" সরবরাহ করার পরিবর্তে, ব্যবসায়ের চাহিদা পূরণ না হওয়া বা মারাত্মকভাবে পরিবর্তিত হওয়া অবধি টুকরো টুকরো সরবরাহ করা হয় যে একটি নতুন সিস্টেম (এবং তাই একটি নতুন প্রকল্প) প্রয়োজন হয়.
সফটওয়্যার কোয়ালিটি ইঞ্জিনিয়ারিংয়ের স্টিফেন কানের মেট্রিক্স এবং মডেলগুলির ধাপের ত্রুটি অপসারণের কার্যকর কার্যকারিতা সম্পর্কে অধ্যায় 6 এর একটি বিভাগ রয়েছে।
তিনি ফাগানের ১৯ 1976 এর কাগজ (সফটওয়্যার ইঞ্জিনিয়ারিং অর্থনীতিতেও উদ্ধৃত) উদ্ধৃত করে বলেছিলেন যে উচ্চ স্তরের নকশা (সিস্টেম আর্কিটেকচার), নিম্ন-স্তরের নকশা (বিস্তারিত নকশা) এবং পুনর্নির্মাণ 10 থেকে 100 গুণ কম ব্যয়বহুল হতে পারে উপাদান এবং সিস্টেম স্তর পরীক্ষার সময় কাজ চেয়ে।
তিনি 1982 এবং 1984 সালে দুটি ফ্রিডম্যান এবং ওয়েইনবার্গের দুটি প্রকাশনার উদ্ধৃতি দিয়েছিলেন যাতে বড় ব্যবস্থাগুলি নিয়ে আলোচনা হয়। প্রথমটি হ'ল হ্যান্ডবুক অফ ওয়াকথ্রুজস, ইন্সপেকশনস এবং টেকনিক্যাল রিভিউগুলি এবং দ্বিতীয়টি হ'ল "রিভিউ, ওয়াকথ্রু এবং পরিদর্শন"। বিকাশের চক্রের প্রথম দিকে পর্যালোচনা প্রয়োগের ফলে 10 টি ফ্যাক্টর দ্বারা পরীক্ষার পর্যায়ে পৌঁছে যাওয়া ত্রুটির সংখ্যা হ্রাস করতে পারে ত্রুটিগুলির সংখ্যা হ্রাস এই পরীক্ষার ব্যয়কে 50% থেকে 80% হ্রাস করে। আমাকে আরও বিশদে পড়াশোনা পড়তে হবে, তবে মনে হয় যে ব্যয়টির মধ্যে ত্রুটিগুলি সন্ধান করা এবং ফিক্স করাও অন্তর্ভুক্ত।
"পরিদর্শন / পর্যালোচনার দৃষ্টিতে ইন্টিগ্রেটেড সফ্টওয়্যার বৈধকরণ" রেমাসের 1983 সালের একটি গবেষণা, ক্যালিফোর্নিয়ায় আইবিএম-এর সান্তা টেরেসা ল্যাবরেটরির ডেটা ব্যবহার করে বিভিন্ন পর্যায়ে ত্রুটিগুলি বিশেষত নকশা / কোড পরিদর্শন, পরীক্ষার, এবং রক্ষণাবেক্ষণের ব্যয় নিয়ে গবেষণা করেছে। উদ্ধৃত ফলাফলগুলি 1:20:82 এর ব্যয় অনুপাত নির্দেশ করে। অর্থাত, নকশা বা কোড পরিদর্শনগুলিতে পাওয়া একটি ত্রুটির দাম 1 থেকে পরিবর্তন হতে পারে the যদি একই ত্রুটি পরীক্ষায় পালিয়ে যায় তবে এটির জন্য 20 গুণ বেশি ব্যয় হবে। যদি এটি কোনও ব্যবহারকারীর কাছে পুরোপুরি পালিয়ে যায়, তবে এটি ব্যয় থেকে সঠিক পর্যন্ত 82-এর মধ্যে একাধিক হবে Kan আইবিএম এর রচেস্টার, মিনেসোটা সুবিধা থেকে প্রাপ্ত নমুনা তথ্য ব্যবহার করে কান, AS / 400 প্রকল্পের ত্রুটি অপসারণ ব্যয়ের অনুরূপ বলে মনে করেছিল 1:13:92 এ। তবে, তিনি উল্লেখ করেছেন যে কোনও ত্রুটি খুঁজে পেতে অসুবিধা বাড়ার কারণে ব্যয় বৃদ্ধি হতে পারে।
গিল্বের 1993 ( "সফটওয়্যার ইন্সপেকশন" ) এবং 1999 ("অনুকূলিতকরণ সফ্টওয়্যার ইঞ্জিনিয়ারিং স্পেসিফিকেশন এবং কোয়ালিটি কন্ট্রোল প্রসেসগুলি") সফ্টওয়্যার পরিদর্শন সম্পর্কিত প্রকাশনাগুলিতে অন্যান্য গবেষণাগুলিকে সংশোধন করার জন্য উল্লেখ করা হয়েছে।
খেলাপি ব্যয় বৃদ্ধির কনস্ট্রাক্সের পৃষ্ঠায় অতিরিক্ত তথ্য পাওয়া যেতে পারে , যা ত্রুটি-মেরামতের ব্যয় বৃদ্ধির জন্য একাধিক উল্লেখ সরবরাহ করে। এটি লক্ষ করা উচিত যে কোড কমপ্লিটের লেখক স্টিভ ম্যাককনেল প্রতিষ্ঠা করেছিলেন এবং কনস্ট্রাক্সের পক্ষে কাজ করেন।
আমি সম্প্রতি লোন স্টার রুবি সম্মেলনে গ্লেন ভ্যান্ডারবার্গের দেওয়া রিয়েল সফটওয়্যার ইঞ্জিনিয়ারিংয়ের একটি বক্তব্য শুনেছি । ২০১১ সালে স্কটিশ রুবি সম্মেলন এবং এরুবাইকন , ২০১২ সালে কিউন সান ফ্রান্সিসকো এবং ও'রিলি সফটওয়্যার আর্কিটেকচার কনফারেন্সে তিনি একই বক্তব্য দিয়েছেন। 2015 সালে । আমি কেবল লোন স্টার রুবি সম্মেলন শুনেছি, তবে তাঁর ধারণাগুলি পরিমার্জিত হওয়ার সাথে সাথে সময়ের সাথে আলাপটি বিকশিত হয়েছে।
ভেন্ডারবার্গ পরামর্শ দেয় যে এই সমস্ত historicalতিহাসিক তথ্যগুলি প্রকৃতপক্ষে কোনও প্রকল্প পর্যায়ক্রমে চলার সাথে সাথে সময় বাড়ার সাথে সাথে ত্রুটিগুলি সংশোধন করার জন্য ব্যয়টি দেখায়। পূর্বে উল্লিখিত কাগজপত্র এবং বইগুলিতে পরীক্ষিত অনেকগুলি প্রকল্প ছিল ধারাবাহিক "জলপ্রপাত" প্রকল্প, যেখানে পর্যায় এবং সময় একসাথে সরানো হয়েছিল। যাইহোক, পুনরাবৃত্ত এবং বর্ধিত প্রকল্পগুলিতে একই ধরণের উত্থান হবে - যদি কোনও পুনরাবৃত্তিতে কোনও ত্রুটি ইনজেকশন করা হয় তবে সেই পুনরাবৃত্তিকে সংশোধন করা তুলনামূলকভাবে সস্তা হবে। যাইহোক, পুনরাবৃত্তির অগ্রগতির সাথে সাথে প্রচুর পরিমাণে ঘটে যায় - সফ্টওয়্যারটি আরও জটিল হয়ে যায়, লোকেরা নির্দিষ্ট মডিউল বা কোডের কিছু অংশে কাজ করা সম্পর্কে কিছু ছোটখাটো বিবরণ ভুলে যায়, প্রয়োজনীয়তা পরিবর্তিত হয়। এই সবগুলি ত্রুটি স্থির করতে ব্যয় বাড়িয়ে তুলবে।
আমি মনে করি এটি সম্ভবত বাস্তবের কাছাকাছি। একটি জলপ্রপাত প্রকল্পে, প্রবাহিত সমস্যার কারণে যে পরিমাণ নিদর্শনগুলি সংশোধন করা দরকার তার পরিমাণ ব্যয় বেড়ে যায়। পুনরাবৃত্তিমূলক এবং ইনক্রিমেন্টাল প্রকল্পগুলিতে, সফ্টওয়্যারটিতে জটিলতা বৃদ্ধির কারণে ব্যয় বৃদ্ধি পায়।