دپارتمان مهندسی نرمافزار
مهندسی نرمافزار فرآیند تجزیه و تحلیل نیازهای کاربر، دامنه کاربرد و سیستم و سپس طراحی، توسعه، آزمایش، ارائه و نگهداری یک محصول نرمافزاری است که میتواند از یک برنامه کاربردی واحد تا یک سیستم مبتنی بر کامپیوتر متغیر باشد. مهندسی نرمافزار مانند سایر رشتههای مهندسی، اصول مهندسی استاندارد را با استفاده از یک رویکرد سیستماتیک، منظم و محاسباتی، برای توسعه، بازرسی، آزمایش تأیید و نگهداری نرمافزار اعمال میکند. مهندسی نرمافزار یک حوزه خاص است. اغلب به طرحهای خلاقانه برای غلبه بر مشکلات فنی دشوار و جلوگیری از خطاهای برنامهنویس نیاز دارد. سالانه صدها میلیارد دلار در سراسر جهان صرف توسعه نرمافزار میشود و تکمیل این پروژهها به موقع و در چارچوب بودجه برای موفقیت آنها بسیار مهم است. برای کاهش هزینههای توسعه پروژههای نرمافزاری، چندین پروژه نرمافزاری باید تخصص مهندسان نرمافزار با مهارتهای گرانقیمت و/یا نادر، مانند طراحان خوب پایگاه داده و نوشتن پرسوجوی SQL کارآمد، توسعه رابطهای کاربری گرافیکی بسیار تعاملی، ادغام ابزارهای یادگیری ماشین در نرمافزار تصمیمگیری و برنامهریزی و حل مسئله با استفاده از روشهای هوش مصنوعی را به اشتراک بگذارند. برای تکمیل توسعه نرمافزار در مهلت اولیه پروژه، همیشه همکاری با تیمی از مهندسان نرمافزار حرفهای ضروری خواهد بود. یک مهندس نرمافزار گاهی اوقات باید بتواند یک تیم را به طور مؤثر مدیریت کند و گاهی اوقات، به عنوان عضوی از یک تیم، باید بتواند کد را به کارآمدترین و دقیقترین روش تولید کند.
یک مهندس نرمافزار باید توانایی نوشتن برنامهها به طور مؤثر در چندین زبان برنامهنویسی، کار با چندین سیستم عامل، استفاده از محیطهای توسعه نرمافزار یکپارچه در یک تیم توسعه نرمافزار و طراحی پایگاههای داده کارآمد و مقیاسپذیر را در عین در نظر گرفتن امنیت دادهها و مجوز دسترسی/بهروزرسانی دادهها داشته باشد. سیستم عاملهای کامپیوتری مدرن، دستگاههای شبکه و سیستمهای مدیریت پایگاه داده، پشتیبانی امنیتی عالی ارائه میدهند، اما اختصاص امتیازات/مجوزهای صحیح به هر نقش/کاربر، مسئولیت طراح و توسعهدهنده نرمافزار است. اگر این الزامات امنیتی نادیده گرفته شوند، سیستمهای نرمافزاری توسعهیافته برای شرکتها ضرر بیشتری نسبت به فایده آن خواهند داشت.
علاوه بر دورههای ساختارهای داده، الگوریتمها، سیستمهای عامل، پایگاههای داده، گرافیک کامپیوتری و شبکههای کامپیوتری که در بخش مهندسی کامپیوتر ارائه میشوند، بخش مهندسی نرمافزار ما به دانشجویان ما مدیریت نیازهای نرمافزار، طراحی معماری نرمافزار، مدیریت پروژه نرمافزاری، حسابرسی نرمافزار، آزمایش و تأیید نرمافزار را آموزش خواهد داد. دانشجویان ما توانایی بهکارگیری جدیدترین روشهای توسعه نرمافزار، مانند توسعه چابک، اسکرام، برنامهنویسی مفرط، توسعه مبتنی بر ویژگی و توسعه مبتنی بر مدل را خواهند داشت. این مهارتها دانشجویان ما را برای پیوستن به شرکتهای توسعه نرمافزار و بخشهای نرمافزاری به عنوان مهندس نرمافزار پس از فارغالتحصیلی آماده میکند.