সফ্টওয়্যার ডেভেলপমেন্ট প্রসেসকে জানানোর জন্য ইঞ্জিনিয়ারিং কৌশল ব্যবহার করা হয় যার মধ্যে সফটওয়্যার লাইফ সাইকেল প্রক্রিয়ার সংজ্ঞা, বাস্তবায়ন, মূল্যায়ন, পরিমাপ, ব্যবস্থাপনা, পরিবর্তন এবং উন্নতি জড়িত। এটি ব্যাপকভাবে সফ্টওয়্যার কনফিগারেশন ম্যানেজমেন্ট ব্যবহার করে যা কনফিগারেশনে পরিবর্তনগুলি নিয়ন্ত্রিতভাবে নিয়ন্ত্রণ করে, এবং সিস্টেমের পুরো চক্র জুড়ে কনফিগারেশন এবং কোডের অখণ্ডতা এবং সন্ধানযোগ্যতা বজায় রাখে। আধুনিক প্রক্রিয়াগুলি সফ্টওয়্যার সংস্করণ ব্যবহার করে।
ইতিহাস
1960 এর দশকের শুরুতে, সফটওয়্যার ইঞ্জিনিয়ারিংকে তার নিজস্ব প্রকৌশল হিসাবে দেখা হত। উপরন্তু, সফটওয়্যার ইঞ্জিনিয়ারিংয়ের বিকাশকে একটি সংগ্রাম হিসেবে দেখা হয়েছিল। হার্ডওয়্যারের সাথে সামঞ্জস্য রাখা কঠিন ছিল যা সফটওয়্যার ইঞ্জিনিয়ারদের জন্য অনেক সমস্যা সৃষ্টি করেছিল। সমস্যাগুলির মধ্যে এমন সফ্টওয়্যার অন্তর্ভুক্ত ছিল যা বাজেটের বেশি ছিল, সময়সীমা অতিক্রম করেছিল, ব্যাপক ডি-বাগিং এবং রক্ষণাবেক্ষণের প্রয়োজন ছিল, এবং ব্যর্থভাবে ভোক্তাদের চাহিদা পূরণ করেছিল বা এমনকি কখনও সম্পন্ন হয়নি। 1968 সালে ন্যাটো প্রথম সফটওয়্যার ইঞ্জিনিয়ারিং কনফারেন্সের আয়োজন করে যেখানে সফটওয়্যার সম্পর্কিত সমস্যাগুলি সমাধান করা হয়েছিল: সফটওয়্যারের বিকাশের জন্য নির্দেশিকা এবং সর্বোত্তম অনুশীলন প্রতিষ্ঠিত হয়েছিল। "সফটওয়্যার ইঞ্জিনিয়ারিং" শব্দটির উৎপত্তি বিভিন্ন উৎসের জন্য দায়ী করা হয়েছে। "সফটওয়্যার ইঞ্জিনিয়ারিং" শব্দটি জুন 1965 সালের কম্পিউটার এবং স্বয়ংক্রিয় সংখ্যায় কোম্পানীর দেওয়া পরিষেবার একটি তালিকায় উপস্থিত হয়েছিল এবং এসিএম (ভলিউম 9, সংখ্যা 8) এর চিঠির আগস্ট 1966 ইস্যুতে আরও আনুষ্ঠানিকভাবে ব্যবহৃত হয়েছিল। এসিএম সভাপতি অ্যান্থনি এ. ওটিংগার কর্তৃক এসসিএম সদস্যপদ, এটি সফটওয়্যার ইঞ্জিনিয়ারিং বিষয়ক প্রথম সম্মেলন অধ্যাপক ফ্রেডরিচ এল বাউয়ারের 1968 সালে একটি ন্যাটো সম্মেলনের শিরোনামের সাথেও যুক্ত।
স্বাধীনভাবে, মার্গারেট হ্যামিল্টন অ্যাপোলো মিশনের সময় শৃঙ্খলার নাম দিয়েছেন "সফটওয়্যার ইঞ্জিনিয়ারিং" যা তারা বৈধতা দিয়েছিল। সেই সময়ে একটি "সফটওয়্যার সংকট" বলে মনে করা হয়েছিল। সফটওয়্যার ইঞ্জিনিয়ারিং -এর 40 তম আন্তর্জাতিক সম্মেলন (ICSE 2018) ফ্রেডরিক ব্রুকস এবং মার্গারেট হ্যামিল্টনের প্লেনারি সেশনের মূল নোটগুলির সাথে "সফটওয়্যার ইঞ্জিনিয়ারিং" -এর ৫০ বছর উদযাপন করেছে।
1984 সালে, সফটওয়্যার ইঞ্জিনিয়ারিং ইনস্টিটিউট (SEI) মার্কিন যুক্তরাষ্ট্রের পেনসিলভেনিয়ার পিটসবার্গের কার্নেগি মেলন বিশ্ববিদ্যালয়ের ক্যাম্পাসে একটি ফেডারেল ফান্ডেড রিসার্চ অ্যান্ড ডেভেলপমেন্ট সেন্টার হিসেবে প্রতিষ্ঠিত হয়েছিল। ওয়াটস হামফ্রে সফটওয়্যার ইঞ্জিনিয়ারিং প্রক্রিয়া বোঝার এবং পরিচালনার লক্ষ্যে এসইআই সফটওয়্যার প্রসেস প্রোগ্রাম প্রতিষ্ঠা করেন। প্রবর্তিত প্রক্রিয়া পরিপক্কতা স্তরগুলি ডেভেলপমেন্টের জন্য সক্ষমতা পরিপক্বতা মডেল ইন্টিগ্রেশন (সিএমএমআই-ডিইভি) হয়ে উঠবে, যা মার্কিন সরকার একটি সফটওয়্যার ডেভেলপমেন্ট টিমের দক্ষতাকে কীভাবে মূল্যায়ন করে তা নির্ধারণ করেছে।
সফ্টওয়্যার ইঞ্জিনিয়ারিংয়ের জন্য আধুনিক, সাধারণভাবে গৃহীত সেরা অনুশীলনগুলি ISO/IEC JTC 1/SC 7 উপকমিটি দ্বারা সংগ্রহ করা হয়েছে এবং সফটওয়্যার ইঞ্জিনিয়ারিং বডি অফ নলেজ (SWEBOK) হিসাবে প্রকাশিত হয়েছে। সফটওয়্যার ইঞ্জিনিয়ারিং কম্পিউটিংয়ে একটি প্রধান শাখা হিসাবে বিবেচিত হয়।
সংজ্ঞা এবং পরিভাষা বিতর্ক
সফটওয়্যার ইঞ্জিনিয়ারিং এর উল্লেখযোগ্য সংজ্ঞাগুলির মধ্যে রয়েছে:
Software "সফটওয়্যারের নকশা, বাস্তবায়ন, পরীক্ষা এবং ডকুমেন্টেশনে বৈজ্ঞানিক ও প্রযুক্তিগত জ্ঞান, পদ্ধতি এবং অভিজ্ঞতার পদ্ধতিগত প্রয়োগ" - শ্রম পরিসংখ্যান ব্যুরো — IEEE সিস্টেম এবং সফ্টওয়্যার ইঞ্জিনিয়ারিং
Software "সফটওয়্যারের বিকাশ, পরিচালনা এবং রক্ষণাবেক্ষণের জন্য একটি নিয়মতান্ত্রিক, শৃঙ্খলাবদ্ধ, পরিমাপযোগ্য পদ্ধতির প্রয়োগ" —IEEE স্ট্যান্ডার্ড গ্লসারি অফ সফটওয়্যার ইঞ্জিনিয়ারিং টার্মিনোলজি "একটি ইঞ্জিনিয়ারিং ডিসিপ্লিন যা সফটওয়্যার উৎপাদনের সকল দিকের সাথে সম্পর্কিত" - ইয়ান সোমারভিল
• "সাউন্ড ইঞ্জিনিয়ারিং নীতির প্রতিষ্ঠা ও ব্যবহার অর্থনৈতিকভাবে এমন সফটওয়্যার পাওয়ার জন্য যা নির্ভরযোগ্য এবং বাস্তব মেশিনে দক্ষতার সাথে কাজ করে" ফ্রিটস বাউয়ার ।
"কম্পিউটার বিজ্ঞানের একটি শাখা যা জটিল কম্পিউটার প্রোগ্রামগুলির নকশা, বাস্তবায়ন এবং রক্ষণাবেক্ষণ নিয়ে কাজ করে"-মেরিয়াম-ওয়েবস্টার ।
"'সফটওয়্যার ইঞ্জিনিয়ারিং' কেবল কোড লেখার কাজকেই অন্তর্ভুক্ত করে না, বরং সময়ের সাথে সাথে সেই কোডটি তৈরি এবং রক্ষণাবেক্ষণের জন্য একটি সংস্থা যে সমস্ত সরঞ্জাম এবং প্রক্রিয়া ব্যবহার করে। [...] সফটওয়্যার ইঞ্জিনিয়ারিংকে 'প্রোগ্রামিং ইন্টিগ্রেটেড সময়। '" - গুগলে সফটওয়্যার ইঞ্জিনিয়ারিং। শব্দটি কম আনুষ্ঠানিকভাবে ব্যবহৃত হয়েছে:
অনানুষ্ঠানিক সমসাময়িক পরিভাষা হিসেবে ব্যাপক কর্মকান্ডের জন্য যাকে পূর্বে বলা হতো কম্পিউটার প্রোগ্রামিং এবং সিস্টেম বিশ্লেষণ;
কম্পিউটার প্রোগ্রামিং চর্চার সকল দিকের জন্য বিস্তৃত শব্দ হিসেবে, কম্পিউটার প্রোগ্রামিং তত্ত্বের বিপরীতে, যা আনুষ্ঠানিকভাবে কম্পিউটার বিজ্ঞানের একটি সাব-ডিসিপ্লিন হিসেবে পড়া হয়; কম্পিউটার প্রোগ্রামিংয়ের জন্য একটি নির্দিষ্ট পদ্ধতির ওকালতিকে সংজ্ঞায়িত করার জন্য, এটি একটি শিল্প বা নৈপুণ্যের পরিবর্তে এটি একটি প্রকৌশল শৃঙ্খলা হিসাবে বিবেচিত হওয়ার পরামর্শ দেয় এবং প্রস্তাবিত অনুশীলনের কোডিফিকেশনের পক্ষে সমর্থন করে।
"সফটওয়্যার ইঞ্জিনিয়ার" এর ব্যুৎপত্তি
মার্গারেট হ্যামিল্টন অ্যাপোলো প্রোগ্রামে তার কাজের সময় "সফটওয়্যার ইঞ্জিনিয়ারিং" শব্দটি প্রচার করেছিলেন। "ইঞ্জিনিয়ারিং" শব্দটি স্বীকার করতে ব্যবহৃত হয়েছিল যে প্রযুক্তির উন্নতির দিকে অন্যান্য অবদানের মতোই কাজটিকেও গুরুত্ব সহকারে নেওয়া উচিত।
হ্যামিল্টন এই শব্দটির ব্যবহারের বিবরণ দিয়েছেন:
যখন আমি প্রথম এই শব্দটি নিয়ে এসেছিলাম, তখন অন্তত কেউ আমাদের বিশ্বে এর আগে কেউ এর কথা শোনেনি। এটি একটি দীর্ঘ সময়ের জন্য একটি চলমান রসিকতা ছিল। তারা আমার মৌলবাদী ধারণা সম্পর্কে আমাকে ছোট করতে পছন্দ করেছিল। এটি একটি স্মরণীয় দিন ছিল যখন একজন সম্মানিত হার্ডওয়্যার গুরু একজন সভায় সবাইকে বুঝিয়েছিলেন যে তিনি আমার সাথে একমত হয়েছেন যে সফ্টওয়্যার তৈরির প্রক্রিয়াটিও একটি ইঞ্জিনিয়ারিং শৃঙ্খলা হিসাবে বিবেচনা করা উচিত, যেমন হার্ডওয়্যারের মতো। তার প্রতি নতুন "টার্ম" গ্রহণের কারণে নয়, বরং আমরা তার এবং রুমে অন্যদের গ্রহণযোগ্যতা অর্জন করেছি কারণ এটি একটি প্রকৌশল ক্ষেত্রে তার নিজস্ব অধিকার।
শব্দটির উপযুক্ততা
সফটওয়্যার ইঞ্জিনিয়ারিং বা তার বৈধতাকে ইঞ্জিনিয়ারিং ডিসিপ্লিন হিসেবে কীভাবে সংজ্ঞায়িত করা যায় সে বিষয়ে ব্যক্তিগত মন্তব্যকারীরা তীব্র মতভেদ করেছেন। ডেভিড পার্নাস বলেছেন যে সফটওয়্যার ইঞ্জিনিয়ারিং আসলে প্রকৌশল প্রকৃতির একটি রূপ। স্টিভ ম্যাককনেল বলেছেন যে এটি নয়, তবে এটি হওয়া উচিত। ডোনাল্ড নুথ বলেছেন যে প্রোগ্রামিং একটি শিল্প এবং একটি বিজ্ঞান। Edsger W. Dijkstra দাবি করেছেন যে সফটওয়্যার ইঞ্জিনিয়ারিং এবং সফটওয়্যার ইঞ্জিনিয়ার পদগুলির অপব্যবহার হয়েছে এবং এটি ক্ষতিকারক বলে বিবেচিত হওয়া উচিত, বিশেষ করে যুক্তরাষ্ট্রে।
বড় আকারের প্রকল্পে কাজ
সফটওয়্যারের প্রয়োজনীয়তা
প্রয়োজনীয়তা প্রকৌশল সফ্টওয়্যারের প্রয়োজনীয়তা বিশ্লেষণ, বিশ্লেষণ, স্পেসিফিকেশন এবং বৈধতা সম্পর্কে। সফটওয়্যারের প্রয়োজনীয়তা তিনটি ভিন্ন ধরনের হতে পারে। এখানে কার্যকরী প্রয়োজনীয়তা, অ-কার্যকরী প্রয়োজনীয়তা এবং ডোমেনের প্রয়োজনীয়তা রয়েছে। সফটওয়্যারের কার্যক্রম পরিচালনা করা উচিত এবং ব্যবহারকারীর ব্যবহারের জন্য সঠিক আউটপুট আশা করা উচিত। বহনযোগ্যতা, নিরাপত্তা, রক্ষণাবেক্ষণযোগ্যতা, নির্ভরযোগ্যতা, পরিমাপযোগ্যতা, কর্মক্ষমতা, পুনর্ব্যবহারযোগ্যতা এবং নমনীয়তার মতো অ-কার্যকরী প্রয়োজনীয়তাগুলি মোকাবেলা করে। তাদের নিম্নোক্ত প্রকারে শ্রেণিবদ্ধ করা হয়েছে: হস্তক্ষেপের সীমাবদ্ধতা, কর্মক্ষমতা সীমাবদ্ধতা (যেমন প্রতিক্রিয়া সময়, নিরাপত্তা, সঞ্চয় স্থান, ইত্যাদি), অপারেটিং সীমাবদ্ধতা, জীবনচক্র সীমাবদ্ধতা (রক্ষণাবেক্ষণ, বহনযোগ্যতা, ইত্যাদি), এবং অর্থনৈতিক সীমাবদ্ধতা। অ-কার্যকরী প্রয়োজনীয়তা নির্দিষ্ট করার ক্ষেত্রে সিস্টেম বা সফ্টওয়্যার কীভাবে কাজ করে তার জ্ঞান প্রয়োজন। একটি নির্দিষ্ট বিভাগ বা প্রকল্পের ডোমেইনের বৈশিষ্ট্যের সাথে ডোমেইন প্রয়োজনীয়তাগুলি করতে হবে।
সফটওয়্যার ডিজাইন
সফটওয়্যার ডিজাইন হল একটি সিস্টেম বা কম্পোনেন্টের আর্কিটেকচার, কম্পোনেন্ট, ইন্টারফেস এবং অন্যান্য বৈশিষ্ট্য নির্ধারণের প্রক্রিয়া সম্পর্কে। একে সফটওয়্যার আর্কিটেকচারও বলা হয়। সফটওয়্যার ডিজাইনকে তিনটি ভিন্ন স্তরের ডিজাইনে ভাগ করা হয়েছে। তিনটি স্তর হল ইন্টারফেস ডিজাইন, আর্কিটেকচারাল ডিজাইন এবং বিস্তারিত ডিজাইন। ইন্টারফেস ডিজাইন হল একটি সিস্টেম এবং তার পরিবেশের মধ্যে মিথস্ক্রিয়া। এটি সিস্টেমের অভ্যন্তরীণ কাজের সাথে উচ্চ স্তরের বিমূর্ততায় ঘটে। স্থাপত্য নকশা একটি সিস্টেমের প্রধান উপাদান এবং তাদের দায়িত্ব, বৈশিষ্ট্য, ইন্টারফেস, এবং তাদের মধ্যে সম্পর্ক এবং মিথস্ক্রিয়া যা তাদের মধ্যে ঘটে। বিস্তারিত নকশা হল সমস্ত প্রধান সিস্টেম উপাদানগুলির অভ্যন্তরীণ উপাদান, তাদের বৈশিষ্ট্য, সম্পর্ক, প্রক্রিয়াজাতকরণ এবং সাধারণত তাদের অ্যালগরিদম এবং ডেটা স্ট্রাকচার।
সফটওয়্যার নির্মাণ
সফটওয়্যার নির্মাণ, সফটওয়্যার ডেভেলপমেন্টের প্রধান কাজ, প্রোগ্রামিং, ইউনিট টেস্টিং, ইন্টিগ্রেশন টেস্টিং এবং ডিবাগিং এর সমন্বয়। এই পর্যায়ে পরীক্ষা করা সাধারণত সফটওয়্যার নির্মাণের সময় প্রোগ্রামার দ্বারা সঞ্চালিত হয়, যা ঠিক লেখা হয়েছিল তা যাচাই করতে এবং পরবর্তী ধাপে কোড পাঠানোর জন্য প্রস্তুত হলে তা নির্ধারণ করতে।
সফটওয়্যার টেস্টিং
সফটওয়্যার টেস্টিং হল একটি অভিজ্ঞতাগত, প্রযুক্তিগত তদন্ত যা স্টেকহোল্ডারদেরকে পরীক্ষার অধীনে পণ্য বা সেবার মান সম্পর্কে তথ্য প্রদান করে, বিভিন্ন পদ্ধতি যেমন ইউনিট টেস্টিং এবং ইন্টিগ্রেশন টেস্টিং সহ। এটি সফ্টওয়্যার মানের একটি দিক। সফ্টওয়্যার ডেভেলপমেন্টের একটি পৃথক পর্যায় হিসাবে, এটি সাধারণত গুণমান নিশ্চিতকরণ কর্মী বা কোড লেখার একজন ব্যতীত অন্য ডেভেলপার দ্বারা সম্পাদিত হয়।
সফটওয়্যার রক্ষণাবেক্ষণ
সফ্টওয়্যার রক্ষণাবেক্ষণ বলতে সফ্টওয়্যার পণ্যটি শিপিংয়ের পরে ব্যয়বহুল সহায়তা প্রদানের জন্য প্রয়োজনীয় ক্রিয়াকলাপগুলিকে বোঝায়। সফ্টওয়্যার রক্ষণাবেক্ষণ হল ত্রুটিগুলি সংশোধন করতে এবং এর কার্যকারিতা উন্নত করার জন্য বিতরণের পরে সফ্টওয়্যার অ্যাপ্লিকেশনগুলি সংশোধন এবং আপডেট করা। সফটওয়্যারটির বাস্তব জগতের সাথে অনেক কিছু করার আছে এবং যখন বাস্তব জগৎ পরিবর্তিত হয়, তখন সফটওয়্যার রক্ষণাবেক্ষণের প্রয়োজন হয়। সফ্টওয়্যার রক্ষণাবেক্ষণের মধ্যে রয়েছে: ত্রুটি সংশোধন, অপটিমাইজেশন, অব্যবহৃত এবং বাতিল বৈশিষ্ট্যগুলি মুছে ফেলা এবং ইতিমধ্যে বিদ্যমান বৈশিষ্ট্যগুলির বর্ধন। সাধারণত, রক্ষণাবেক্ষণ প্রকল্প ব্যয়ের প্রায় 40% থেকে 80% লাগে, তাই রক্ষণাবেক্ষণের দিকে মনোনিবেশ করা খরচ কম রাখে।
শিক্ষা
কম্পিউটার প্রোগ্রামিং এর জ্ঞান সফটওয়্যার ইঞ্জিনিয়ার হওয়ার পূর্বশর্ত। 2004 সালে IEEE কম্পিউটার সোসাইটি SWEBOK তৈরি করেছে, যা ISO/IEC টেকনিক্যাল রিপোর্ট 1979: 2005 হিসাবে প্রকাশিত হয়েছে, যে জ্ঞানের অংশ বর্ণনা করে যে তারা চার বছরের অভিজ্ঞতার সাথে একজন স্নাতক সফটওয়্যার ইঞ্জিনিয়ারকে আয়ত্ত করার সুপারিশ করে। অনেক সফটওয়্যার ইঞ্জিনিয়ার একটি পেশাগত স্কুলে বিশ্ববিদ্যালয়ের ডিগ্রি বা প্রশিক্ষণ লাভ করে পেশায় প্রবেশ করেন। স্নাতক সফটওয়্যার ইঞ্জিনিয়ারিং ডিগ্রির জন্য একটি আদর্শ আন্তর্জাতিক পাঠ্যক্রম IEEE কম্পিউটার সোসাইটির কম্পিউটিং কারিকুলা এবং অ্যাসোসিয়েশন ফর কম্পিউটিং মেশিনারি এর যৌথ টাস্ক ফোর্স দ্বারা সংজ্ঞায়িত করা হয়েছিল এবং 2014 সালে আপডেট করা হয়েছিল। বেশ কয়েকটি বিশ্ববিদ্যালয়ে সফটওয়্যার ইঞ্জিনিয়ারিং ডিগ্রী প্রোগ্রাম রয়েছে; 2010 পর্যন্ত, মার্কিন যুক্তরাষ্ট্রে 244 ক্যাম্পাস ব্যাচেলর অফ সফটওয়্যার ইঞ্জিনিয়ারিং প্রোগ্রাম, 70 টি অনলাইন প্রোগ্রাম, 230 মাস্টার্স-লেভেল প্রোগ্রাম, 41 টি ডক্টরেট-লেভেল প্রোগ্রাম এবং 69 টি সার্টিফিকেট-লেভেল প্রোগ্রাম ছিল।
বিশ্ববিদ্যালয় শিক্ষার পাশাপাশি, অনেক কোম্পানি তথ্য প্রযুক্তিতে ক্যারিয়ার গড়তে ইচ্ছুক শিক্ষার্থীদের জন্য ইন্টার্নশিপের পৃষ্ঠপোষকতা করে। এই ইন্টার্নশিপগুলি শিক্ষার্থীকে আকর্ষণীয় বাস্তব-বিশ্বের কাজগুলির সাথে পরিচয় করিয়ে দিতে পারে যা সাধারণ সফ্টওয়্যার ইঞ্জিনিয়াররা প্রতিদিন সম্মুখীন হয়। সফটওয়্যার ইঞ্জিনিয়ারিংয়ে সামরিক সেবার মাধ্যমে অনুরূপ অভিজ্ঞতা অর্জন করা যায়।
সফটওয়্যার ইঞ্জিনিয়ারিং ডিগ্রী প্রোগ্রাম
আজকাল সমস্ত অনুশীলনকারীদের অর্ধেকেরই কম্পিউটার বিজ্ঞান, তথ্য ব্যবস্থা বা তথ্য প্রযুক্তিতে ডিগ্রি রয়েছে। একটি ছোট, কিন্তু ক্রমবর্ধমান, অনুশীলনকারীর সংখ্যা সফ্টওয়্যার ইঞ্জিনিয়ারিং ডিগ্রী আছে। 1987 সালে, ইম্পেরিয়াল কলেজ লন্ডনের কম্পিউটিং বিভাগ ইউকে এবং বিশ্বে প্রথম তিন বছরের সফটওয়্যার ইঞ্জিনিয়ারিং ব্যাচেলর ডিগ্রি চালু করে; পরের বছর, শেফিল্ড বিশ্ববিদ্যালয় একটি অনুরূপ প্রোগ্রাম প্রতিষ্ঠা করেছিল। 1996 সালে, রচেস্টার ইনস্টিটিউট অফ টেকনোলজি মার্কিন যুক্তরাষ্ট্রে প্রথম সফটওয়্যার ইঞ্জিনিয়ারিং ব্যাচেলর ডিগ্রি প্রোগ্রাম প্রতিষ্ঠা করেছিল, তবে, এটি 2003 পর্যন্ত একই সময়ে ABET স্বীকৃতি পায়নি। রাইস ইউনিভার্সিটি, ক্লার্কসন ইউনিভার্সিটি, মিলওয়াকি স্কুল অফ ইঞ্জিনিয়ারিং এবং মিসিসিপি স্টেট ইউনিভার্সিটি তাদের পেয়েছে। 1997 সালে, ভারতের কোয়েম্বাটুরের পিএসজি কলেজ অফ টেকনোলজি প্রথম সফটওয়্যার ইঞ্জিনিয়ারিংয়ে পাঁচ বছরের সমন্বিত মাস্টার অফ সায়েন্স ডিগ্রি শুরু করেছিল।
তারপর থেকে, অনেক বিশ্ববিদ্যালয়ে সফটওয়্যার ইঞ্জিনিয়ারিং স্নাতক ডিগ্রী প্রতিষ্ঠিত হয়েছে। স্নাতক সফটওয়্যার ইঞ্জিনিয়ারিং ডিগ্রিগুলির জন্য একটি আদর্শ আন্তর্জাতিক পাঠ্যক্রম, SE2004, 2001 এবং 2004 এর মধ্যে একটি স্টিয়ারিং কমিটি দ্বারা সংজ্ঞায়িত করা হয়েছিল এসোসিয়েশন ফর কম্পিউটিং মেশিনারি এবং IEEE কম্পিউটার সোসাইটির অর্থায়নে। 2004 পর্যন্ত, মার্কিন যুক্তরাষ্ট্রে, প্রায় 50 টি বিশ্ববিদ্যালয় সফটওয়্যার ইঞ্জিনিয়ারিং ডিগ্রি প্রদান করে, যা কম্পিউটার বিজ্ঞান এবং প্রকৌশল নীতি এবং অনুশীলন উভয়ই শেখায়। প্রথম সফটওয়্যার ইঞ্জিনিয়ারিং মাস্টার্স ডিগ্রী 1979 সালে সিয়াটেল ইউনিভার্সিটিতে প্রতিষ্ঠিত হয়। তারপর থেকে স্নাতক সফটওয়্যার ইঞ্জিনিয়ারিং ডিগ্রী আরও অনেক বিশ্ববিদ্যালয় থেকে পাওয়া যায়। একইভাবে কানাডায়, কানাডিয়ান কাউন্সিল অফ প্রফেশনাল ইঞ্জিনিয়ার্সের কানাডিয়ান ইঞ্জিনিয়ারিং অ্যাক্রেডিটেশন বোর্ড (সিইএবি) বেশ কিছু সফটওয়্যার ইঞ্জিনিয়ারিং প্রোগ্রামকে স্বীকৃতি দিয়েছে।
1998 সালে, ইউএস নেভাল স্নাতকোত্তর স্কুল (এনপিএস) বিশ্বে সফটওয়্যার ইঞ্জিনিয়ারিংয়ে প্রথম ডক্টরেট প্রোগ্রাম প্রতিষ্ঠা করে। উপরন্তু, সফটওয়্যার ইঞ্জিনিয়ারিং -এর অনেক অনলাইন উন্নত ডিগ্রি যেমন ক্যালিফোর্নিয়া স্টেট ইউনিভার্সিটি, ফুলার্টনে কম্পিউটার সায়েন্স অ্যান্ড ইঞ্জিনিয়ারিং বিভাগের মাধ্যমে দেওয়া মাস্টার অফ সায়েন্স ইন সফটওয়্যার ইঞ্জিনিয়ারিং (এমএসই) ডিগ্রি। স্টিভ ম্যাককনেল মনে করেন, যেহেতু বেশিরভাগ বিশ্ববিদ্যালয় সফটওয়্যার ইঞ্জিনিয়ারিংয়ের পরিবর্তে কম্পিউটার বিজ্ঞান শেখায়, সেখানে প্রকৃত সফটওয়্যার ইঞ্জিনিয়ারের অভাব রয়েছে। ETS (olecole de Technologie supérieure) University এবং UQAM (Université du Québec -Montréal) IEEE দ্বারা সফটওয়্যার ইঞ্জিনিয়ারিং বডি অব নলেজ (SWEBOK) ডেভেলপ করার জন্য বাধ্যতামূলক ছিল, যা একটি সফটওয়্যার ইঞ্জিনিয়ার দ্বারা আচ্ছাদিত জ্ঞানের শরীর বর্ণনা করে একটি ISO স্ট্যান্ডার্ডে পরিণত হয়েছে।
Thank you for reading this post and encourage me to grow this blog further
মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন