সফটওয়্যার ডেভলপমেন্ট কি ইঞ্জিনিয়ারিং শাখা?


16

সফটওয়্যার বিকাশকে ইঞ্জিনিয়ারিং হিসাবে বিবেচনা করা যেতে পারে? যদি না হয় তবে ইঞ্জিনিয়ারিং বিভাগে যোগ্য হওয়ার জন্য কী কী জিনিসগুলির অভাব রয়েছে? এর সাথে সম্পর্কিত কোনও প্রোগ্রামার এবং সফ্টওয়্যার ইঞ্জিনিয়ারের মধ্যে পার্থক্য সম্পর্কে স্ট্যাক ওভারফ্লোতে এই প্রশ্ন

কার্নিগি মেলন বিশ্ববিদ্যালয়ের একটি সফ্টওয়্যার ইঞ্জিনিয়ারিং ইনস্টিটিউট রয়েছে যা সিএমএমআই মান নির্ধারণ করে এবং বজায় রাখে। এটি কি এমন কিছু যা উন্নয়নকে ইঞ্জিনিয়ারিংয়ে পরিণত করবে?


উত্তর:


20

সফটওয়্যার ডেভলপমেন্ট ইঞ্জিনিয়ারিং হয়? যদি না হয়, এইভাবে যোগ্য হওয়ার জন্য কোন জিনিসগুলির অভাব রয়েছে?

হ্যাঁ, সফটওয়্যার ইঞ্জিনিয়ারিং একটি ইঞ্জিনিয়ারিং শাখা।

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

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

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

গ্লেন ভ্যান্ডারবার্গের "রিয়েল সফটওয়্যার ইঞ্জিনিয়ারিং" নামে একটি ধারাবাহিক আলোচনা রয়েছে যা ২০১০ থেকে ২০১৫ সালের মধ্যে বেশ কয়েকটি সম্মেলনে "ক্র্যাফট, ইঞ্জিনিয়ারিং, এবং প্রোগ্রামিংয়ের মূল অংশ" সহ ২০১১ সালে দেওয়া হয়েছিল (২০১১ সালে দেওয়া হয়েছিল রেলকনফের মূল বক্তব্য) এবং "ক্রাফ্ট এবং সফটওয়্যার ইঞ্জিনিয়ারিং" (কিউকন লন্ডনে ২০১১ সালে দেওয়া হয়েছে)। আমি মনে করি যে সফটওয়্যার ইঞ্জিনিয়ারিং একটি ইঞ্জিনিয়ারিং শৃঙ্খলা কেন এটির জন্য এই আলোচনাগুলি বেশ বিস্তৃত যুক্তি।

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

এটি কি [সিএমএমআই] এমন কিছু যা উন্নয়নকে ইঞ্জিনিয়ারিংয়ে পরিণত করবে?

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

এছাড়াও, সফ্টওয়্যার ইঞ্জিনিয়ারিং কোর্স / শংসাপত্র সম্পর্কে আপনার মতামত কি?

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


9

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

আপনি বিমান বা সফ্টওয়্যার অ্যাপ্লিকেশন ডিজাইন করুন, উভয়ের জন্য আপনার প্রয়োজন:

  • ডিজাইন করা
  • সাবসিস্টেম এবং উপাদানগুলি সংজ্ঞায়িত করুন
  • প্রোটোটাইপ তৈরি করুন
  • পরীক্ষা এবং নির্বাহ পরীক্ষা
  • প্রভৃতি

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

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

এজন্য আমি সফটওয়্যার বিকাশকে ইঞ্জিনিয়ারিং হিসাবে বিবেচনা করি।


2
আপনার অভিজ্ঞতা ভাগ করে নেওয়ার জন্য ধন্যবাদ, অনেক "বিকাশকারী" প্রকৌশল কী তা সম্পর্কে ধারণা নেই। চিয়ার্স!
লেউউডি

7

আমি যুক্তি দিয়ে বলব যে সফটওয়্যার ইঞ্জিনিয়ারিংয়ের মতো আসলেই আছে।

ইঞ্জিনিয়ারিং সমস্যার সমাধানে বৈজ্ঞানিক জ্ঞানের পদ্ধতিগত প্রয়োগ জড়িত। সমস্যাগুলির যে জটিলতা আজ মোকাবেলা করা হয় তা বৈদ্যুতিন প্রকৌশলীর দ্বারা কোনও উত্পাদন প্রক্রিয়া তৈরির ক্ষেত্রে কোনও রাসায়নিক প্রকৌশলী বা কোনও যন্ত্রের তৈরিতে কোনও প্রকৌশলী তৈরির ক্ষেত্রে যেমন বৈদ্যুতিন প্রকৌশলীর দ্বারা মোকাবিলা করা হয়েছে তার চেয়ে আলাদা নয়।

বিদ্যমান পরিকল্পনাগুলি প্রয়োগ করার (এই ক্ষেত্রে বিকাশ) বাস্তবায়নেরও একটি হস্তক্ষেপের বিষয়টি সত্য যে একইভাবে অন্য ক্ষেত্রগুলিতে অন্য কেউ সেই পরিকল্পনাগুলি কার্যকর করে (যেমন, নির্মাণ শ্রমিক) similar

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

তবে, প্রোগ্রামিং ভাষা এবং প্রোগ্রাম প্রয়োগের দক্ষতা একজনকে ইঞ্জিনিয়ার হিসাবে রূপান্তরিত করে না: আমি আমার বিকাশকারীদের সাথে আমার অংশটি পেয়েছি যাদের বর্তমান কোডের বাইরে জটিলতা এবং সমস্যাগুলির সত্যিকারের বোঝার অভাব রয়েছে।

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


5

না এটি ইঞ্জিনিয়ারিং নয়। আমরা যে বিজ্ঞানসম্মত নই এবং আমাদের সেই রাজ্য ইঞ্জিনিয়ারিং পরীক্ষাগুলির কোনও পাস করতে হবে না। আসলে, পরীক্ষার অভাবে কিছু জায়গায় নিজেকে একটি সফ্টওয়্যারকে "ইঞ্জিনিয়ার" বলা অবৈধ।


আসলে, আপনি কোথায় থাকেন তা নির্ভর করে।
কিউবেকে

দয়া করে প্রমাণ দিন।
টমাস ওয়েন্স

1
এটি অর্ডার ডেস ইঞ্জিনিয়ার্স এফএকিউ থেকে। oiq.qc.ca/cgi-bin/…
কেনা

2
আপনি যা করছেন তা নির্ভর করে। এমন সফ্টওয়্যার ইঞ্জিনিয়ারিং ডিগ্রি রয়েছে যা পি। ইঞ্জিনিয়ারের জন্য যোগ্যতা অর্জন করে। আপনি যদি পারমাণবিক উদ্ভিদ নিয়ন্ত্রণ করতে সফটওয়্যার তৈরি করছেন বা কাউকে মার্সে প্রেরণ করছেন তবে সম্ভবত আপনাকে প্রকৌশলী হতে হবে।
tloach

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

5

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

ব্যক্তিগতভাবে আমি একজন কারিগর হিসাবে একজন বিকাশকারীদের উদীয়মান উপমাটিকে পছন্দ করি, অন্যদের মধ্যে বাস্তববাদী প্রোগ্রামাররা চ্যাম্পিয়ন হয়।

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


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

5

উইকি থেকে:

প্রকৌশল :

সফ্টওয়্যার ইঞ্জিনিয়ারিং হ'ল সফ্টওয়্যারটির বিকাশ, পরিচালনা ও রক্ষণাবেক্ষণের জন্য একটি নিয়মতান্ত্রিক, শৃঙ্খলাবদ্ধ, পরিমাণযোগ্য পদ্ধতির প্রয়োগ এবং এই পদ্ধতির অধ্যয়ন; এটি হল সফটওয়্যারটিতে ইঞ্জিনিয়ারিংয়ের প্রয়োগ।

সফটওয়্যার উন্নয়ন

সফ্টওয়্যার বিকাশ এমন ক্রিয়াকলাপগুলির সেট যা সফ্টওয়্যার পণ্যগুলির ফলাফল করে। সফ্টওয়্যার বিকাশে গবেষণা, নতুন উন্নয়ন, পরিবর্তন, পুনরায় ব্যবহার, পুনরায় ইঞ্জিনিয়ারিং, রক্ষণাবেক্ষণ, বা অন্য কোনও ক্রিয়াকলাপ অন্তর্ভুক্ত থাকতে পারে যার ফলস্বরূপ সফ্টওয়্যার পণ্যগুলি আসে [[1]

বিশেষত সফ্টওয়্যার ডেভলপমেন্ট প্রসেসের প্রথম পর্যায়ে বিপণন, প্রকৌশল, গবেষণা ও উন্নয়ন এবং সাধারণ পরিচালনাসহ অনেকগুলি বিভাগ জড়িত থাকতে পারে।

সুতরাং তারা বেশ অনুরূপ এবং একই জিনিসটি বোঝাতে পারে।


1
আমার ফাংশনটির
নামটিতে

4

অভিধান.কম থেকে: এন · গি · নীড় · ইন / ʒəˈndʒəˈnˌɛrɪŋ /

সূচনা ১. ইঞ্জিন, সেতু, ভবন, খনি, জাহাজ এবং রাসায়নিক উদ্ভিদ নির্মাণের মতো পদার্থবিদ্যা বা রসায়ন হিসাবে খাঁটি বিজ্ঞানের জ্ঞানের ব্যবহারিক প্রয়োগ করার শিল্প বা বিজ্ঞান।

আমি বলব যে সফ্টওয়্যার তৈরি করা হ'ল গণিত এবং কম্পিউটার বিজ্ঞানের ব্যবহারিক প্রয়োগ, এবং প্রয়োগের উপর নির্ভর করে সম্ভাব্য অন্য কোনও সংখ্যক বিশুদ্ধ বিজ্ঞান।

[সম্পাদনা] এফডাব্লুআইডাব্লু, আমি নিজেকে একটি সফটওয়্যার ইঞ্জিনিয়ার বলি না, তবে একটি সফ্টওয়্যার বিকাশকারী যাতে আমার এতে ব্যক্তিগত অংশীদারি না থাকে।


3

আমার দৃষ্টিতে একজন সফটওয়্যার ইঞ্জিনিয়ার এবং সফটওয়্যার বিকাশকারী দুটি ভিন্ন জিনিস।

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

একটি সফ্টওয়্যার বিকাশকারী প্রোগ্রামারের সাথে আরও ঘনিষ্ঠভাবে সম্পর্কিত হবে তবে ডেটাবেস পরিচালনার মতো অন্যান্য ক্ষেত্রে আরও দক্ষতার সাথে be

একটি আকর্ষণীয় বিষয় সামনে আনতে হবে আর্কিটেকচার । প্রকল্পের জীবনচক্রের জন্য কোন হার্ডওয়্যার / সফ্টওয়্যারটির প্রয়োজন হবে তা নির্ধারণে জড়িত কেউ Someone


আমি বিশ্বাস করি সফটওয়্যার ইঞ্জিনিয়ারিংয়ের অন্যতম বিভাগ সফটওয়্যার বিকাশ।
LeWoody

1

আমি এখানে "না" নিয়ে যাচ্ছি। আমার ভাই একজন যান্ত্রিক প্রকৌশলী, এবং তিনি ইঞ্জিনিয়ারিংটিকে "দ্য আর্ট অফ বিভিং" হিসাবে বর্ণনা করেন:

"ইঞ্জিনিয়াররা যত তাড়াতাড়ি সম্ভব সর্বনিম্ন ব্যয়ে, জিনিসগুলি যত দ্রুত সম্ভব সম্পন্ন করার বিষয়ে আরও বেশি উদ্বিগ্ন, "

প্রতিক্রিয়া হিসাবে, আমি সফ্টওয়্যার বিকাশ (সফ্টওয়্যার ইঞ্জিনিয়ারিং নয় - এগুলি সত্যই দুটি দক্ষ ক্ষেত্র) মূলত দক্ষতার শিল্প হিসাবে "বর্ণনা করতে এসেছি:

"বিকাশকারীরা কমপক্ষে পুনরাবৃত্তি সম্ভব হিসাবে কম, কম খরচে, যত দ্রুত সম্ভব কাজগুলি সম্পন্ন করার বিষয়ে আরও উদ্বিগ্ন "

পার্থক্য those বাক্যগুলির শেষ অংশে is


মজাদার এবং সত্য "ইঞ্জিনিয়ারিং" ধারণাটি সম্পর্কে ভাল দৃষ্টিভঙ্গি।

আমি তাকে জানাতে পারি যে অন্য কেউ তাঁর সাথে একমত - তিনি সন্তুষ্ট হন। : ডি

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

আমার কাছে ভয়ঙ্কর জেদ মতামত মত শোনাচ্ছে। আপনি কি সত্য সঙ্গে ব্যাক আপ করতে পারেন?
জেরেমি

অপেক্ষা করুন ... আমি বিভ্রান্ত কার মতামত শোনায়? আমার নাকি আমার ভাইয়ের?

1

সফটওয়্যার ডেভলপমেন্ট ইঞ্জিনিয়ারিং হয়?

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


2
আমি প্রায় 35 বছর পূর্বে 35W ব্রিজ থেকে কয়েক মাইল দূরে বাস করি যা প্রায় দেড় বছর আগে বিপর্যয়করভাবে ব্যর্থ হয়েছিল। ইঞ্জিনিয়ার হওয়ার অর্থ এই নয় যে আপনি স্ক্রু আপ থেকে অনাক্রম্য।
ডেভিড থর্নলি

আমি ডেভিডের সাথে একমত হব। আমি মনে করি সফ্টওয়্যার এবং নির্মাণ উভয় ক্ষেত্রেই আপনি একটি বৈজ্ঞানিক 'কারণ-এবং প্রভাব' পদ্ধতি অনুসরণ করতে পারেন। এর অর্থ এই নয় যে কোনও একটিই সমস্যা থেকে মুক্ত।
জেরেমি

হয়তো পার্থক্যটি হ'ল ঝুঁকিপূর্ণ কোডটি পরীক্ষা করা সহজ?
ক্লিনেগ

1

আমি একজন ইঞ্জিনিয়ারকে (যান্ত্রিক, কাঠামোগত, সফ্টওয়্যার) এমন একজন হিসাবে দেখি যিনি বোধিত প্রয়োজন এবং সেই প্রয়োজনটি পূরণের জন্য কী কীভাবে উপকরণগুলি প্রয়োগ করতে হবে তার বোঝার ভিত্তিতে পণ্যটি বেফোরহ্যান্ডের নকশা করে।

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

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

আমি একজন নির্মাণ শ্রমিক এবং স্ট্রাকচারাল ইঞ্জিনিয়ারের মধ্যে পার্থক্যটিকে প্রোগ্রামার এবং সফ্টওয়্যার ইঞ্জিনিয়ারের মধ্যে পার্থক্যের সাথে তুলনা করি।

পরিষ্কার করার জন্য, আমার কাছে কেবলমাত্র কলেজ ডিপ্লোমা রয়েছে, তাই নিজেকে ইঞ্জিনিয়ার বলতে পারি না।


1
কোডিংয়ের আগে কোনও স্পেসিফিকেশন নিয়ে আসা সবসময় সম্ভব নয় এবং আমি একটি ভাল যুক্তি দিতে পারি যে কোডিং পণ্যটির নকশা করছে। সফ্টওয়্যারে, একটি প্রস্তুত পণ্যটির অনুলিপিগুলি তুচ্ছ।
ডেভিড থর্নলি

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

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

1

আমি "ইঞ্জিনিয়ারিং" শব্দটিকে 2 প্রধান কারণে সফ্টওয়্যার বিকাশকে বর্ণনা করার জন্য সবচেয়ে উপযুক্ত হিসাবে বিবেচনা করব না:

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

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

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


0

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

এটিও পুনরাবৃত্তিযোগ্যতা। প্রয়োজনীয়তার একটি সেট নিয়ে দুটি দলকে দিন। যখন আপনি একই জিনিসটি বের করতে পারেন (দলগুলি একে অপরের সাথে কথা না বলে) আপনি ইঞ্জিনিয়ারিংয়ের খুব কাছে।

ইঞ্জিনিয়ারিংয়ের অন্যান্য ক্ষেত্রেও জরিমানা এবং একটি কঠোর পর্যালোচনা থাকে এবং সাইন অফ হয়। দায়িত্ব.


0

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

একটি সেতু নির্মাণ করতে, আপনার কাছে স্পেসিফিকেশনের একটি সেট রয়েছে (নদীর এই পাশ থেকে অন্য প্রান্তে এই সংখ্যক গাড়ি আনতে হবে)।

এটি থেকে, আমি অনুমান করতে পারি:

  1. আমার প্রয়োজন রাস্তার লেনগুলির সংখ্যা (সরকার নির্ধারিত একটি স্ট্যান্ডার্ড গণনা ব্যবহার করে);
  2. আমার যে ভারী জিনিসগুলি সমর্থন করতে হবে (সরকার নির্ধারিত গণনাগুলি ব্যবহার করে)
  3. এই লোডগুলিকে সমর্থন করার জন্য আমার যে সামগ্রীগুলি ব্যবহার করতে হবে (সেগুলি স্ট্যান্ডার্ড উপকরণগুলি ব্যবহার করে, যা আমি বিভিন্ন সরবরাহকারী সংখ্যক সরবরাহকারী বা নন-স্ট্যান্ডার্ড উপকরণ ব্যবহার করতে পারি, যা আমি তার পরে প্রমাণ করতে হবে সঠিক বৈশিষ্ট্য থাকবে)।

তারপরে, আমি অবশ্যই আমার গণনা সঠিকভাবে সম্পন্ন করেছি তা নিশ্চিত করার জন্য আমাকে অবশ্যই একটি তৃতীয় পক্ষের (অন্য সংস্থা) দ্বারা অনুমোদিত এবং চেক করা উচিত।

তারপরে, যখন সেতুটি বাস্তবে নির্মিত হয়, তখন মানসম্পন্ন উপায়ে দক্ষ ব্যক্তিরা কাজটি করবেন। তারা এমন কাজ করবে যা তারা শত শত করেছে, সম্ভবত হাজার হাজার বার times

আমাকে ভুল করবেন না, প্রতিটি সিভিল ইঞ্জিনিয়ারিং প্রকল্প আলাদা, তবে প্রতিবার নতুন অ্যাপ্লিকেশন / ওয়েবসাইট বিকাশ করার সময় মনে হয় জিনিসগুলি আলাদাভাবে হয়ে যায় done


0

হ্যাঁ আমি অনুমান করতে পারি যে উন্নয়ন ইঞ্জিনিয়ারিংয়ের একটি উপসেট:

  • সফটওয়্যার ইঞ্জিনিয়ারিং প্রাথমিক স্পেসিফিকেশন ("এখানে আমাদের কী ধরণের সফ্টওয়্যার দরকার?") অন্তর্ভুক্ত রয়েছে, যা তর্কসাপেক্ষভাবে বিকাশের পূর্বে রয়েছে
  • "ইঞ্জিনিয়ারিং" এর মধ্যে যেমন গুণমান নিশ্চিতকরণ প্রক্রিয়া সংজ্ঞায়িত করাও অন্তর্ভুক্ত থাকতে পারে যা অবশ্যই বিকাশের সাথে সম্পর্কিত তবে তর্কাতীতভাবে নিজেই 'নির্মাণের ক্ষেত্রের বাইরে'।

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

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


0

সফটওয়্যার ডেভলপমেন্ট ইঞ্জিনিয়ারিং।

সফ্টওয়্যার ইঞ্জিনিয়ারিং ইঞ্জিনিয়ারের মানটি কেন পূরণ করে না এর জন্য অন্যদের দ্বারা তৈরি কয়েকটি যুক্তি:

কেউ কেউ বলেন ইঞ্জিনিয়াররা জনস্বার্থের জন্য "জিনিস" ডিজাইনের ব্যবসা করছেন - আইসিবিএম, ট্যাঙ্কস ইত্যাদি কি জনসাধারণের পক্ষে ভাল? কেউ কেউ হ্যাঁ বলতেন (একটি ভাল অপরাধ একটি ভাল প্রতিরক্ষা) অন্যেরা না বলবে no তবে, আমি মনে করি না যে কেউ যে পরবর্তী প্রজন্মের ট্যাঙ্ক টার্গেটিং সিস্টেমটি ডিজাইন করে সে প্রকৌশলী সে বিষয়ে দ্বিমত পোষণ করবে। জনসাধারণের মঙ্গলসাধ্য বিষয় হতে পারে। যে কোনও হারে প্রচুর পরিমাণে সফ্টওয়্যার জনসাধারণের পক্ষে ভাল তাই পয়েন্টটি যে কোনও উপায়ে চালিত।

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

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

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