مهندسی نرم افزار ، پیش نیازها و کاربردها

0
1398-01-22
1165
مهندسی نرم افزار ، پیش نیازها و کاربردها

تاریخچه

 

مهندسی کامپیوتر گرایش نرم افزار در چند سال اخیر روند رو به رشدی داشته است و با استقبال زیادی از سوی داوطلبان روبرو شده است.

مهندس نرم افزار اولین بار در سال 1968 میلادی از سوی فریدریش ال باوئر در نشست «مهندسی نرم‌افزار ناتو ۱۹۶۸» به کار برده شد. از آن پس بود که مهندسی نرم افزار هم به یکی از گرایش‌های کامپیوتر اضافه شد.

مهندس نرم افزار به فعالیت‌ها در زمینه تحلیل سامانه‌ها و برنامه‌نویسی می‌پردازد. به‌طورکلی این شغل شامل سایر فعالیت‌ها ازجمله تئوری برنامه‌نویسی رایانه و دستگاه‌های دیجیتال و تمامی جنبه‌های عملی برنامه‌نویسی مربوط می‌شود.

یک مهندس نرم افزار به‌صورت عملی وارد کار می‌شود. هنر و تکنیک‌های تئوری در رشته مهندسی نرم افزار کاربرد زیادی ندارند. بلکه جمع‌آوری و تدوین روش‌های عملی به‌عنوان اصلی‌ترین مبانی گرایش نرم افزار محسوب می‌شود.

 

آنچه که یک مهندس نرم افزار باید انجام دهد

 

تمام آنچه که یک مهندس نرم افزار باید بداند شامل موارد زیر است:

  • عملکرد و نگهداری نرم‌افزار و استفاده از رویکرد سامانه‌شناسی، انتظام‌یافته و قابل‌سنجش
  • تحلیل و بررسی روش‌های موجود در استاندارد IEEE

 

وضعیت مهندسی نرم افزار در حال حاضر

 

در حال حاضر مهندسی نرم‌افزار به‌عنوان یک‌رشته مستقل دانشگاهی شناخته‌شده است.

درگذشته زیرمجموعه مهندسی کامپیوتر بود. به‌طوری که یک مهندس کامپیوتر باید به علم نرم افزار هم مسلط می‌شد. البته در آن زمان علوم رایانه به مانند امروز گسترده نبود و نرم افزار هم بسیار محدود و ساده‌تر بود. اما با توجه به گستردگی و پیچیدگی مهندسی نرم افزار، متخصصان ترجیح دادند تا این علم به‌صورت یک گرایش مجزا در مقطع ارشد در دانشگاه‌ها تدریس شود.

اهمیت گرایش مهندسی نرم افزار اکنون بیشتر محسوس است. زیرا دنیای دیجیتال هرروز در حال گسترش است و این در حالی است که نرم‌افزارهای مختلف کارها را به‌سادگی بر عهده می‌گیرند.

اکنون مشتریان به‌جای خرید حضوری، از اپلیکیشن ها و نرم‌افزارهایی همچون دیوار، شیپور، اینستاگرام و ... استفاده می‌کنند.

البته نه‌تنها در امر خریدوفروش، بلکه در تمامی زمینه‌ها ازجمله آموزش، هنر، سرگرمی، استخدام و کارگزینی و... کاربران از نرم‌افزارهای مختلف استفاده می‌کنند. این موضوع نیاز به طراحی اپلیکیشن ها را بیش‌ازپیش کرده است. به همین دلیل با قاطعیت می‌توان گفت گرایش مهندسی نرم افزار به یکی از مشاغل پردرآمد و محبوب تبدیل‌شده است.

 

محدوده مهندسی نرم افزار تا کجاست؟

 

مهندسی نرم افزار یک تعریف ساده و مختصر دارد که عبارت است از: «استفاده از یک رهیافت قابل‌اندازه‌گیری، منظم و سیستماتیک برای توسعه، اجرا و نگهداری نرم‌افزار، یا به‌طور خلاصه اعمال اصول مهندسی بر نرم‌افزار». این تعریف در کتاب راهنمای SWEBOK v3.0 آمده است که به‌صورت خیلی کلی بیان‌شده است.

مهندسی نرم افزار با مهارت برنامه‌نویسی تفاوت‌هایی هم دارد. به‌طوری‌که تکنیسین‌های کامپیوتر برنامه‌نویسی را یک مهارت عام برای تمام شاخه‌های رشته کامپیوتر می‌دانند و به‌عنوان یکی از دروسی است که یک مهندس نرم افزار باید در طی تحصیل بگذراند. اما دانش یک مهندس نرم افزار گسترده‌تر از مهارت برنامه‌نویسی، شامل این مهارت و فراتر از آن است.

درواقع باید گفت که مهارت برنامه‌نویسی (یا کد نویسی) تنها یک ابزار برای این گرایش محسوب می‌شود و ابزارهای دیگری که برای فرآیند تولید حرفه‌ای نرم ‌افزار نیاز است هم برای دانشجویان تدریس می‌شود. ازجمله این ابزارهای انسانی می‌توان به مهندسی نیازمندی‌ها، روش آبشاری، روش اجایل و ... اشاره کرد.

 

ارکان مهندسی کامپیوتر گرایش نرم افزار

 

مهندسی کامپیوتر گرایش نرم افزار دارای 15 رکن یا حوزه علمی است. این ارکان شامل موضوعات گسترده و مهمی می باشند که هرکدام شامل چند درس 3 واحدی در دانشگاه است. در تمامی گرایش‌های رشته مهندسی کامپیوتر سه رکن مشترک است؛ که شامل مبانی کامپیوتر، مبانی ریاضیات مهندسی و مبانی مهندسی است.

12 رکن دیگر از گرایش مهندسی نرم افزار هم به‌صورت اختصاصی تنها در این گرایش است. این 12 رکن شامل مهندسی نیازمندی‌های نرم‌افزار، طراحی نرم‌افزار، تولید نرم‌افزار (کد نویسی)، تست نرم‌افزار، نگهداری نرم‌افزار، مدیریت تنظیمات نرم‌افزار، مدیریت مهندسی نرم‌افزار، فرآیند‌های مهندسی نرم‌ افزار، متدها و مدل‌های مهندسی نرم ‌افزار، کیفیت نرم ‌افزار، اصول حرفه‌ای و شغلی مهندسی نرم‌افزار و اقتصاد مهندسی نرم‌افزار است.

 

مهندسی نرم افزار با چه رشته‌های همپوشانی دارد؟

 

رشته مهندسی نرم افزار با رشته علوم انسانی، علوم مدیریتی و سایر گرایش کامپیوتر همپوشانی دارد. دانشجویان در رشته مهندسی کامپیوتر گرایش نرم افزار به تولید نرم‌افزارهایی می‌پردازند، که ارتباط نزدیکی به موضوع انسان دارد. درواقع نرم‌افزارهایی که توسط فارغ‌التحصیلان مهندسی نرم افزار ساخته و تولید می‌شود، باید به نیازهای مشخصی پاسخ دهد و مشکلی از نیازهای انسان را رفع کند. این محصولات جایگزین نیروی انسانی می‌شود و بنابراین باید همچون یک انسان هوشمند عمل کنند.

همیشه نرم‌افزارهایی در بازار با استقبال مواجه می‌شوند که امکانات و قابلیت‌های آن‌ها با توجه به نیاز کاربران باشند. به خواسته‌های آنان پاسخ دهند و هوشمندانه عمل کنند. در غیر این صورت با شکست مواجه می‌شوند. توجه به جنبه اخلاقی و در نظر داشتن ارزش‌های اخلاقی در تولید نرم افزار اهمیت زیادی دارد. به همین دلیل مهندسی نرم افزار با رشته علوم انسانی همپوشانی دارد.

یکی دیگر از علومی که ارتباط تنگاتنگی با گرایش مهندسی نرم افزار پیدا می‌کند، علوم مدیریتی است. زمان طراحی نرم افزار اغلب کارها به‌صورت گروهی و تیمی انجام می‌شود. داشتن روحیه انتقادپذیری و کار با تیم، انعطاف‌پذیر بودن و منظم بودن ازجمله خصلت‌هایی است که در مدیران دیده می‌شود. یک مهندس نرم افزار هم باید از این خصلت‌ها برخوردار باشد.

سایر رشته‌های مرتبط با مهندسی نرم افزار هم شامل رشته IT است که در آن‌ها «نگهداری نرم‌افزار» و «مدیریت تنظیمات نرم‌افزار» مشترک است. همچنین در طراحی نرم‌افزار به گرافیک برخورد می‌کنیم که مباحثی ازجمله جلوه‌های بصری و زیبایی در نرم افزار اهمیت زیادی دارد. به همین دلیل گرایش نرم افزار به گرافیک هم مرتبط می‌شود.

 

دانش‌هایی که در مهندسی نرم افزار نیاز است؟

 

در مهندسی نرم افزار 5 دانش اهمیت زیادی پیدا می‌کند که شامل:

  1. دانش کامپیوتر و الکترونیک: در این دانش دانشجویان با پردازنده‌ها، تراشه‌ها، تجهیزات الکترونیکی، بردهای مدار، مبحث سخت افزار و نرم افزار کامپیوتر شامل استفاده و برنامه‌نویسی آشنا می‌شوند.
  2. دانش مهندسی و تکنولوژی: در این مبحث دانشجویان با کاربرد عملی و مهندسی علم و فناوری آشنا می‌شوند. به‌طوری‌که استفاده از اصول، تکنیک‌ها، رویه‌ها و تجهیزات برای طراحی و تولید محصولات و خدمات متنوع در دوره تحصیل تدریس می‌شود.
  3. دانش زبان انگلیسی: برای یک دانشجوی گرایش مهندسی نرم افزار آشنایی با زبان انگلیسی اهمیت زیادی دارد. زیرا باید با سیستم‌ها و نرم‌افزارهایی کار کند که به‌صورت پیش‌فرض به زبان انگلیسی کار می‌کنند. بنابراین آشنایی با ساختار و محتوای زبان انگلیسی شامل معنی و املای کلمات، قواعد ترکیب و گرامر ضرورت پیدا می‌کند.
  4. دانش ریاضی: در مهندسی نرم افزار آشنایی با علم حساب، جبر، هندسه، حساب دیفرانسیل و انتگرال، آمار و کاربردهای آن‌ها اهمیت پیدا می‌کند که در این گرایش تدریس می‌شوند.
  5. دانش طراحی: این مبحث شامل تکنیک‌ها، ابزار و اصول طراحی موردنیاز برای تولید طرح‌های فنی دقیق، طرح اولیه، ترسیم فنی و مدل‌ها است که در این گرایش تدریس می‌شوند.

 

توانایی‌های موردنیاز برای مهندسی نرم افزار

 

اگر قصد دارید در گرایش مهندسی نرم افزار تحصیل کنید باید توانایی‌های خود را که به این شغل مرتبط است، ارزیابی کنید. این گرایش به توانایی‌های زیر نیاز دارد:

قدرت استدلال قیاسی که در آن دانشجو یا فارغ‌التحصیل باید دارای توانایی اعمال قواعد کلی بر مسائل خاص برای تولید پاسخ‌های معنی‌دار باشد. دومین توانایی موردنیاز برای مهندسی نرم افزار قدرت استدلال استنتاجی است. به‌طوری‌که مهندس قادر به ترکیب اجزاء اطلاعات برای ساختن قواعد و نتیجه‌گیری‌های کلی (شامل یافتن رابطه میان اتفاقات ظاهرا غیر مرتبط) باشد.

یکی دیگر از توانایی‌های موردنیاز برای مهندسی نرم افزار حساسیت به مسئله است. به این معنا که مهندس نرم افزار قادر به گفتن اینکه چه زمانی چیزی اشتباه است یا احتمال اشتباه می‌رود، باشد. درواقع از اشتباهات سرسری عبور نکند. توانایی مرتب‌سازی اطلاعات هم برای مهندسی نرم افزار مهم است. به‌طوری‌که مرتب‌سازی کارها در یک چینش یا الگوی خاص بر اساس قوانین خاص (مثلا الگوهای عددی، حروف، کلمات، تصاویر یا عملیات‌های ریاضی) صورت بگیرد. نهایتا داشتن قدرت دید نزدیک برای مشاهده جزئیات هم در مهندسی نرم افزار اهمیت دارد. البته مورد آخر با یک عینک مناسب حل می‌شود!

 

شاید این مطلب هم برای شما جذاب باشد:  آشنایی با دروس کنکور ارشد کامپیوتر (تمامی گرایش ها)

 

لایوآموز همراه همیشگی شما در مسیر موفقیت

 



ایجاد نظر جدید

نظرات شما (0)