تخصص ها

در این قسمت می توانید تخصص ها را مشاهده نمایید



نرم افزار


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

اولین طرح کامپیوتری یا اولین الگوریتم دستور کامپیوتری در سال 1822 برای دستگاه محاسباتی مکانیکی چارلز بابیج طراحی شد. این برنامه را ادا لاولیس (کنت اگوستا ادا بایرون، فرزند یک لرد انگلیسی) نوشت. هرچند که این دستگاه و این برنامه در زمان زندگی این دو طراح ساخته نشدند، اما او را اولین ایده‌پرداز پچیزی می‌شناسند که آلن تورینگ بیش از صد سال بعد، سال 1935 آن را نرم‌افزار نامید. در واقع اولین ایده‌ی نرم‌افزار پیش از ساخت یک کامپیوتر ایده‌پردازی شده بود. با این حال نرم‌افزار، با نامی که ما امروز می‌شناسیم، تا سال 1946 وجود نداشتند. اولین دستگاه‌‌های برنامه ریزی شده، با تغییرات سیم‌کشی کار می‌کردند.
نرم افزارهای کامپیوتری بر اساس اهداف و کاربردهایی که دارند به سه دسته تقسیم می‌شوند: نرم‌افزارهای کاربردی، نرم‌افزارهای سیستمی (سیستم‌عامل‌ها و درایورها) و بدافزارها.
مهندسی نرم‌افزار عبارت است از طراحی دستورالعمل‌ها و دستورات نظام‌مند برای راه‌اندازی کلی و استفاده از قابلیت‌های یک سیستم کامپیوتری. مهندس نرم‌افزار شیوه‌های پذیرفته‌شده‌ی این رشته را برای انجام این طراحی به کار می‌بندد. پس مهندسی نرم‌افزار، بر خلاف تصور رایج تنها برنامه‌نویسی نیست. یک مهندس نرم‌افزار باید تفکر کند که نرم‌افزاری که قرار است طراحی کند در چه دستگاهی مورد استفاده قرار می‌گیرد؟ این نرم‌افزار چگونه می‌تواند قابلیت‌های مختلف این سخت‌افزار را به کار بیندازد؟ و چه مواردی برای بهبود عملکرد این دستگاه و قابلیت اطمینان این نرم‌افزار باید در نظر گرفته شوند؟ سپس گزینه‌های برنامه‌نویسی موجود را بررسی می‌کند و بهترین گزینه را با توجه به کارایی نرم‌افزاری که می‌خواهد طراحی کند، انتخاب می‌کند.
مهندسی نرم‌افزار جدیدترین رشته‌ی مهندسی است که وارد دانشگاه‌های جهان شده است. طبق بیانیه‌ی سازمان مهندسی برق و الکترونیک، مهندسی نرم‌افزار با هدف به کارگیری علم مهندسی در علم برنامه‌نویسی طراحی شده است.
محصولی که مهندسی نرم‌افزار طراحی می‌کند یک محصول قابل لمس نیست. بلکه کدهایی است که در دستگاه دیگری قرار می‌گیرند تا آن دستگاه بتواند فعالیت کند. هر چند که این محصول یک محصول قابل لمس نیست، اما اگر به درستی طراحی نشود می‌تواند خسارت‌های قابل لمسی را برای دستگاه‌ها و افرادی که از این دستگاه‌ها استفاده می‌کنند سبب شود.
با گسترش اینترنت و نرم‌افزارها وابستگی ما به این نرم‌افزار و فضای مجازی رشد فزاینده‌ای پیدا کرده است. ما هر روزه بسیاری از فعالیت‌های خود را با اعتماد به نرم‌افزارها انجام می‌دهیم. مهم‌ترین این فعالیت‌ها فعالیت‌های مالی و اقتصادی و فعالیت‌های مربوط به فضای خصوصی ما هستند. جز این، بسیاری از زیرساخت‌های حساس کشورها به شدت وابسته به نرم‌افزارها هستند.
تصور کنید به نرم‌افزارهای تاسیسات تولید برق یک کشور حمله شود و خساراتی به دستگاه‌ها وارد کند که برای آنها نیاز به یک هفته زمان باشد. تصور کنید برای سیستم حمل و نقل آن کشور چه اتفاقی خواهد افتاد وقتی که هیچ پمپ بنزینی برق نداشته باشد؟ یا برق سردخانه‌هایی که مواد غذایی مورد نیاز کشور را ذخیره می‌کنند برای چند روز قطع شود؟ یا معاملات تجاری و بورس برای چند روز مختل شوند؟
مهندسی نرم‌افزار علاوه بر طراحی برنامه‌هایی برای راه‌اندازی دستگاه‌ها و استفاده از قابلیت‌های مختلف آنها باید امنیت دستگاه‌ها را نیز دربرابر حملات یا حوادث احتمالی حفظ کند.
در ایران دانشجوی مهندسی نرم‌افزار در مقطع کارشناسی ارشد باید پیش‌زمینه‌ی علمی کافی در دروس ریاضیات مهندسی و آمار و احتمال و محاسبات عددی، ساختمان‌های گسسته، ساختمان داده، نظریه زبان‌ها و ماشین‌ها، سیستم عامل، طراحی الگوریتم، پایگاه داده وبرنامه‌نویسی داشته باشد. در مقطع کارشناسی ارشد، پس از گذراندن واحدهای درسی مورد نیاز، دانشجو باید پایان نامه کامپیوتر در گرایش مهندسی نرم‌افزار تنظیم نماید.

پایان نامه کامپیوتر

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