کارشناسی ارشد مهندسی در مهندسی نرم افزار
University of Maryland - A. James Clark School of Engineering
اطلاعات کلیدی
موقعیت پردیس
College Park, آمریکا
زبان های خارجی
زبان انگلیسی
قالب مطالعه
آموزش از راه دور, در محوطه دانشگاه
مدت زمان
2 سال ها
سرعت
تمام وقت, پاره وقت
شهریه
USD ۴۵٬۰۰۰ / per course *
آخرین مهلت تقاضا
15 May 2024
زودترین تاریخ شروع
28 May 2024
* شهریه در محوطه دانشگاه: 1086.53 دلار در هر ساعت اعتبار / شهریه آنلاین: 1340.39 دلار در هر ساعت اعتبار
مقدمه
برنامه مهندسی نرم افزار به توسعه و نگهداری سیستم های نرم افزاری می پردازد که به طور قابل اعتماد و کارآمد رفتار می کنند، توسعه و نگهداری مقرون به صرفه بوده و تمامی الزاماتی را که مشتریان برای آنها تعریف کرده اند برآورده می کند. دانشکده ما متشکل از محققان و متخصصان در سطح جهانی است که آخرین اصول مهندسی نرم افزار را در پروژه های بزرگ در ناسا، دارپا، ریتون و لاکهید مارتین به کار می برند.
دانش آموزانی که از طریق برنامه ما مدرک کارشناسی ارشد مهندسی یا مدرک تحصیلات تکمیلی مهندسی را کسب می کنند، یاد می گیرند که سیستم های نرم افزاری مقرون به صرفه، قابل اعتماد و کارآمد را که با نیازهای مشتری هماهنگ هستند، توسعه دهند و حفظ کنند. دورهها بر سه حوزه فنی - امنیت سایبری، مهندسی کامپیوتر و مهندسی سیستمها تمرکز دارند و دانشجویان را برای کمک به حل مشکلات دنیای واقعی آماده میکنند.
پذیرش ها
برنامه درسی
الزامات درجه
کارشناسی ارشد مهندسی: 30 اعتبار یا 10 دوره
دانش آموزانی که این گزینه را دنبال می کنند باید پنج درس از برنامه درسی اصلی، 1 درس انتخابی فنی خاص نرم افزار و 4 درس انتخابی فنی اضافی را بگذرانند. هیچ تحقیق یا پایان نامه ای برای این مدرک مورد نیاز نیست.
گواهی کارشناسی ارشد در مهندسی: 12 اعتبار یا 4 دوره
دانشجویانی که به دنبال مدرک تحصیلات تکمیلی در رشته مهندسی هستند باید چهار دوره زیر را بگذرانند:
- ENPM611، مهندسی نرم افزار
- ENPM612، سیستم و نرم افزار مورد نیاز
- ENPM613، طراحی و پیاده سازی نرم افزار
- ENPM614، تست و نگهداری نرم افزار
دوره های آموزشی
مهندسی نرم افزار ENPM611 (3 اعتبار) | هسته
پاییز 2024 ساعت 4:00 تا 6:40 بعد از ظهر کریستوفر آکرمن
مفاهیم، روشها و شیوههای مهندسی نرمافزار که هم برای نظریهپرداز و هم برای متخصص مهم هستند، پوشش داده خواهد شد. طیف وسیعی از مسئولیت های مورد انتظار از یک مهندس نرم افزار ارائه شده است. حوزههای اساسی توسعه نیازمندیها، طراحی نرمافزار، زبانهای برنامهنویسی و تست بهطور گسترده پوشش داده شدهاند. جلسات مربوط به حوزه های پشتیبانی مانند مهندسی سیستم، مدیریت پروژه و تخمین نرم افزار نیز گنجانده شده است.
پیش نیاز: تسلط به یک زبان برنامه نویسی و گذراندن دوره کارشناسی مهندسی نرم افزار یا داشتن مجوز از مدرس دوره.
سیستم و نرم افزار مورد نیاز ENPM612 (3 اعتبار) | هسته
تمرکز بر جنبه های نظری و عملی توسعه نیازمندی ها خواهد بود. دانشآموزان مکان الزامات، نحوه کار با کاربران، روشها و تکنیکهای نیازمندیها، انواع مختلف نیازمندیها، نحوه تنظیم برنامههای توسعه نیازمندیها، تکامل نیازمندیها، نحوه مدلسازی و نمونهسازی اولیه، نحوه ارزیابی و مدیریت ریسک در نیازمندیها را تشخیص خواهند داد. تکنیکهایی برای آزمایش الزامات، نحوه مدیریت فرآیند نیازمندیها و نحوه نوشتن یک سند الزامات مؤثر.
پیش نیاز: ENPM611.
طراحی و پیاده سازی نرم افزار ENPM613 (3 اعتبار) | هسته
پاییز 2024 ساعت 7:00 بعد از ظهر تا 9:40 بعد از ظهر تونی باربر
فرآیند طراحی نرم افزار، از درک نیاز یا مشکل تا ایجاد معماری مناسب و راه حل های طراحی دقیق، تا حفظ و تکامل طراحی در حین اجرا و نگهداری را پوشش می دهد. موضوعات اصلی مطالعه شامل مدل های تحلیل نیازمندی ها می باشد. طراحی کاربر محور؛ طراحی معماری از طریق تجزیه و ترکیب. سبکهای معماری و تاکتیکهای معماری برای پشتیبانی از ویژگیهای کیفی مختلف مانند امنیت و قابلیت استفاده؛ طراحی برای استفاده مجدد و با استفاده مجدد؛ اصول شی گرا طراحی دقیق (مانند SOLID) و الگوهای طراحی. رویکردهایی برای ارزیابی، مقایسه و انتخاب راه حل های طراحی؛ نمادهای استاندارد برای مستندسازی نماهای معماری، طراحی دقیق و مدل های تحلیل. و استانداردهای صنعت برای ایجاد محصولات تحویلی طراحی. دانش آموزان نه تنها دانش فنی، بلکه مهارت های نرمی مانند ارتباطات، همکاری، تفکر انتقادی، رهبری، مذاکره و مدیریت زمان را نیز کسب خواهند کرد.
پیش نیاز: ENPM611.
تست و نگهداری نرم افزار ENPM614 (3 اعتبار) | هسته
هدف از این دوره ارائه یک نمای کلی از تست و نگهداری نرم افزار و نحوه تناسب این فعالیت ها در چرخه عمر مهندسی نرم افزار است. بسیاری از نمونههای مورد استفاده در سخنرانیها از تجزیه و تحلیل سیستمهای مختلف ناسا استخراج شدهاند. موضوعات شامل اشکال مختلف تست مانند تست عملکردی، تست ترکیبی، تست ساختاری، تست مبتنی بر مدل، تست امنیت محور و همچنین نقش معماری نرم افزار در تست پذیری و نگهداری، تست رگرسیون، تست خودکار، پوشش تست شامل پوشش MC/DC است. و استانداردهای تست
پیش نیاز: ENPM611.
ENPM637 مدیریت پروژه های مهندسی نرم افزار (3 اعتبار) | انتخابی
این دوره به وسعت مدیریت پروژه های مهندسی نرم افزار می پردازد. این به تبدیل مهندسان نرم افزار الهام بخش به رهبران پروژه نرم افزار کمک خواهد کرد. این دوره اصول، روش ها و ابزارهای پیشرفته ای را برای مدیریت پروژه های نرم افزاری در زمینه مهندسی نرم افزار واقع گرایانه ارائه می دهد. یک چارچوب مدیریت پروژه ناب یکپارچه (ILPM) که ترکیبی پیاده سازی محور از مؤسسه مدیریت پروژه سنتی (PMI) و پارادایم های مدیریت پروژه چابک است، آموزش داده می شود. پس از اتمام این دوره، دانشجویان قادر خواهند بود: پروژه های مهندسی نرم افزار را با ایجاد موارد تجاری مرتبط، مدیریت نیازهای مشتری، توسعه اجزای کلیدی طرح پروژه مهندسی نرم افزار و فرآیند برنامه ریزی، شناسایی ریسک های پروژه نرم افزاری، و توسعه استراتژی های کاهش ریسک، انتخاب و توجیه کنند. یک تیم پروژه برای ساخت و تحویل محصول، درک و بکارگیری روشهایی برای حل و اجتناب از مشکلات رایج مرتبط با مدیریت پروژه مهندسی نرمافزار، انجام بازبینی پس از اجرا و بهبود اثربخشی و کارایی پروژههای توسعه نرمافزار.
سیستم های نرم افزاری مبتنی بر هوش مصنوعی ENPM655 (3 اعتبار) | انتخابی
زمان کلاس پاییز 2024/جزئیات مربوط به ELMS Mikael Lindvall، Joshua Giltinan
هدف این دوره جدید پرداختن به مشکل مهم تعیین، توسعه و آزمایش سیستمهای نرمافزاری است که مبتنی بر مؤلفههای هوش مصنوعی (AI) هستند. از آنجایی که چنین سیستم هایی اغلب از نظر ایمنی حیاتی هستند یا به دلایل دیگر باید قابل اعتماد باشند، کیفیت باید در طول چرخه عمر توسعه نرم افزار ایجاد شود. توجه به این نکته مهم است که تمرکز دوره بر روی مهندسی نرم افزار عمومی یا نحوه آموزش شبکه های عصبی نیست، حتی اگر به آن موضوعات اشاره کنیم. در عوض، هسته اصلی این دوره در مورد چگونگی تعیین، توسعه و آزمایش سیستمهای نرمافزاری است که مبتنی بر هوش مصنوعی یا از آن استفاده میکنند. دانشمندان داده اغلب در ساخت مدلها با تکنیکهای پیشرفته عالی هستند، اما ترکیب آن مدلها در محصولات نرمافزاری کارآمد، چالشهای مهندسی متفاوتی را به همراه دارد. برای مثال، دانشمندان داده ممکن است با نوتبوکهای بدون نسخه بر روی مجموعههای داده استاتیک کار کنند و بر دقت پیشبینی تمرکز کنند و در عین حال مقیاسپذیری، استحکام، تاخیر بهروزرسانی یا هزینه عملیاتی را نادیده بگیرند. در مقابل، مهندسان نرمافزار معمولاً با مشخصات واضح آموزش میبینند و تمایل دارند روی کد تمرکز کنند، اما ممکن است از مشکلات کار با دادهها و مدلهای غیرقابل اطمینان آگاه نباشند. آنها مجموعه ابزارهای بزرگی برای تصمیم گیری و تضمین کیفیت دارند، اما ممکن است ندانند که چگونه آن ها را در سیستم های مجهز به هوش مصنوعی و چالش های آنها اعمال کنند. این دوره در مورد سوالاتی مانند: تا چه حد می توان از شیوه های SE موجود برای ساخت سیستم های هوشمند استفاده کرد؟ تا چه حد به شیوه های جدید نیاز است؟ این دوره یک دیدگاه مهندسی نرم افزار در ساخت سیستم های هوشمند را اتخاذ می کند، با تمرکز بر آنچه که یک مهندس نرم افزار می تواند انجام دهد تا ایده یادگیری ماشین را به یک محصول مقیاس پذیر و قابل اعتماد تبدیل کند. این دوره از اصطلاحات و تکنیکهای مهندسی نرمافزار و سیستمها (مثلاً پوشش آزمایشی، نماهای معماری، درختان خطا) استفاده میکند و چالشهای ناشی از استفاده از چنین تکنیکهایی را در مؤلفههای یادگیری ماشین/AI مورد بحث قرار میدهد. این دوره شامل یک سخنرانی در مورد آموزش/جدید کردن مبانی یادگیری ماشین و هوش مصنوعی برای ارائه یک درک اساسی از مفاهیم مرتبط (به عنوان مثال، مهندسی ویژگی، رگرسیون خطی در مقابل درختان خطا در مقابل شبکههای عصبی) خواهد بود. این دوره همچنین به طور خلاصه تفکر طراحی و تجزیه و تحلیل معاوضه را پوشش خواهد داد. در درجه اول بر روی رویکردهای عملی تمرکز خواهد کرد که اکنون می توان از آنها استفاده کرد و دارای تمرین عملی با ابزارها و زیرساخت های مدرن است.
ENPM680 مقدمه ای بر کدنویسی ایمن برای مهندسی نرم افزار (3 اعتبار) | انتخابی
زمان کلاس پاییز 2024/جزئیات در ELMS Gananand Kini
نرم افزار زندگی روزمره ما را فراگرفته و بخش مهمی از بسیاری از فناوری های مورد استفاده مردم در سطح جهان است. این نرم افزار در کاربردهای خود پیچیده و متنوع است، از جمله اما نه محدود به تعداد قابل توجهی از حوزه ها که در آن از فناوری استفاده می شود، از جمله ارتباطات، امور مالی، تولید و غیره. به عنوان اشکالات شناخته می شود. با این حال، دسته قابل توجهی از این اشکالات دارای پیامدهای امنیتی جدی هستند که بر محرمانگی، یکپارچگی، در دسترس بودن و اصول عدم انکار که زیربنای امنیت مدیریت و راه اندازی چنین سیستم های نرم افزاری است، تأثیر می گذارد. این دوره به مفاهیم و تکنیک های اصلی برای تجزیه و تحلیل و توصیف چنین اشکالات امنیتی و راه های بالقوه برای کاهش آنها می پردازد. مفاهیم در چارچوب قصد دشمن در تغییر یا براندازی رفتار نرم افزار با اثرات امنیتی معرفی و مورد بحث قرار خواهد گرفت. این دوره انتظار ندارد دانش آموزان تجربه امنیتی قبلی داشته باشند. پس از این دوره دانشجو با موارد زیر آشنا می شود: 1. ممیزی یک نرم افزار کاربردی برای یافتن نقاط ضعف امنیتی. 2. توصیف نقاط ضعف با استفاده از CWE. 3. روششناسی و تکنیکهای مورد استفاده در بررسی کدهای همتا. 4. استفاده از ابزارهای تحلیل برای یافتن نقاط ضعف امنیتی. [1] https://spectrum.ieee.org/computing/software/why-software-fails
ENPM696 مهندسی نرم افزار معکوس (3 اعتبار) | هسته
پاییز 2024 ساعت 4:00 تا 6:40 بعد از ظهر آلن هزلتون
این دوره درک عمیقی از مفاهیم مهندسی معکوس نرم افزار و آموزش عملی با ابزارهای مهندسی معکوس از جمله جداکننده ها، دیکامپایلرها و تحلیلگرهای کد ارائه می دهد. دانش آموزان با نرم افزارهای سطح پایین و مجموعه دستورات x86 از طریق جلسات معکوس دودویی آشنا می شوند. این دوره همچنین بینش هایی در مورد بسیاری از موضوعات مانند امنیت سیستم، تجزیه و تحلیل کد منبع، طراحی نرم افزار و درک برنامه ارائه می دهد که در زمینه های مختلف مفید خواهد بود.
پیش نیاز: ENPM691 و CMSC106
رتبه بندی
برنامه های آنلاین
# 6 برنامه های مهندسی فارغ التحصیل آنلاین - اخبار ایالات متحده و گزارش جهانی بهترین برنامه های مهندسی فارغ التحصیل آنلاین
برنامه های تحصیلات تکمیلی ایالات متحده
# 19 مهندسی فارغ التحصیل - اخبار ایالات متحده و گزارش جهانی 2023 بهترین برنامه های تحصیلات تکمیلی مهندسی
تخصص ها:
- شماره 15 مهندسی هوافضا
- #16 مهندسی برق; شماره 15 مهندسی کامپیوتر
- شماره 17 مهندسی مکانیک
رتبه بندی کارآفرینی
- برنامه شماره 7 در مقطع کارشناسی
- #18 برنامه تحصیلات تکمیلی
50 مدرسه برتر برای برنامه های کارآفرینی توسط بررسی پرینستون