مهندسی نرم افزار در دانشگاه
همانگونه كه قرار بود، قصد بررسي دروس ارائه شده در مقطع كارشناسي مهندسي نرم افزار در ايران را داريم. بي شك مرتبط بودن و كيفيت ارائه، عامل مهمي در تربيت مناسب نيروهاي فعال در حوزة مهندسي نرم افزار ميباشد.
كارشناسي مهندسي نرم افزار- آنچه هست
طبق مصوبة شوراي عالي برنامه ريزي وزارت فرهنگ و آموزش عالي مورخه ۱۳۷۷/۸/۲۴، ليست دروس اصلي و تخصصي دورة كارشناسي مهندسي كامپيوتر، گرايش نرم افزار به شرح ذيل است:
رديف | نام درس |
۱ | آزمايشگاه كامپيوتر |
۲ | مباني كامپيوتر و برنامه سازي |
۳ | برنامه سازي پيشرفته |
۴ | ساختمانهاي گسسته |
۵ | زبان ماشين و برنامه سازي سيستم |
۶ | ساختمان داده ها |
۷ | زبان تخصصي |
۸ | مدار الكتريكي ۱ |
۹ | آزمايشگاه مدار الكتريكي ۱ |
۱۰ | مدار منطقي |
۱۱ | آزمايشگاه مدار منطقي |
۱۲ | رياضي مهندسي |
۱۳ | طراحي الگوريتم |
۱۴ | معماري كامپيوتر |
۱۵ | آزمايشگاه معماري كامپيوتر |
۱۶ | سيستمهاي عامل |
۱۷ | نظريه زبانها و ماشينها |
۱۸ | طراحي و پياده سازي زبانهاي برنامه سازي |
۱۹ | ريز پردازنده |
۲۰ | آزمايشگاه ريز پردازنده |
۲۱ | مدارهاي الكترونيكي |
۲۲ | آزمايشگاه مدارهاي الكترونيكي |
۲۳ | شبكههاي كامپيوتري |
۲۴ | شيوه ارائه مطالب علمي و فني |
۲۵ | ذخيره و بازيابي اطلاعات |
۲۶ | هوش مصنوعي |
۲۷ | اصول طراحي كامپايلر |
۲۸ | مهندسي نرم افزار ۱ و ۲ |
۲۹ | اصول طراحي پايگاه داده |
۳۰ | آزمايشگاه سيستم عامل |
۳۱ | آزمايشگاه پايگاه داده |
۳۲ | پروژه |
۳۳ | كارآموزي |
و به استناد همان مصوبه، قابليت و مهارتهاي زير از فارغ التحصيلان رشته كامپيوتر انتظار ميرود:
- بررسي و شناسايي سيستمهاي كامپيوتري به منظور انتخاب و سفارش سخت افزار، نرم افزار بهينه، هدايت و نظارت در نصب و بهره برداري ازآنها.
- ارائه روشهاي عيب يابي، اصلاح و تكميل سيستمهاي سخت افزاري ويا نرم افزاري موجود و نظارت بر اين امور.
- طراحي، ساخت و راه انداري سيستمهاي جديد سخت افزاري و نرم افزاري.
- تشخيص لزوم استفاده از كامپيوتر در كنترل عمليات در محيطهاي مختلف.
- شناسايي تكنيكهاي جديد طراحي وساخت كامپيوتر، ارزيابي و بكارگيري آنها.
به نظر مي رسد:
- ليست دروس تصويب شده بيشتر براي تربيت دانشجوي مسلح به علم كامپيوتر مناسب به نظر ميرسد تا مهندسي نرم افزار موارد ۸، ۹،۱۰، ۱۱،۱۲، ۱۴، ۱۵، ۱۹، ۲۰، ۲۱، ۲۲ دروس مرتبط با Computer science است.
- دروسي كه مستقيماً به مهندسي نرم افزار مرتبط ميشوند اندك است.
- غير از مورد ۳۱ هيچ آزمايشگاه ديگري مرتبط با مهندسي نرم افزار وجود ندارد در حالي ۷ مورد آزمايشگاه متفرقه وجود دارد.
- مهارتهاي مديريتي جايگاهي در ليست ندارد.
- به نظر ميرسد مسئولين مربوطه بيشتر به “كامپيوتر” پرداختهاند تا “نرم افزار”.
در كل اهداف ودروس ارائه شده نشان از ديدگاه قديمي (حدود دهه ۷۰ ميلادي) نسبت به مهندسي نرم افزار دارد. حال اينكه توليد نرم افزار فرآيندي به نسبت پيچيده و حتي متفاوت با ديگر رشتههاي مهندسي است. مهندسي نرم افزار تغييرات بسياري از آن زمان تا كنون كرده است و به مقولهاي جدي و مستقل تبديل شده است.
آنچه بايد بشود
تلاشهاي ثمر بخشي در زمينه تعريف بدنة دانش مهندسي نرم افزار (Software Engineering Body of Knowledge) و تعيين دروس اساسي دوره كارشناسي مهندسي نرم افزار شده است، نظر شما را به دروس الزامي مهندسي نرم افزار، كار مشتركي از ACM و IEEE (نسخه ۲۰۰۴) جلب مينمايم:
رديف | عنوان لاتين | توضيح فارسي |
۱ | Introduction to Software Engineering and Computing | مقدمات مهندسي نرم افزار و كامپيوتر |
۲ | Software Engineering and Computing II | مهندسي نرم افزار و كاميپوتر ۲ |
۳ | Software Engineering and Computing III | مهندسي نرم افزار و كاميپوتر ۳ |
۴ | Data Structures and Algorithms | الگوريتم و ساختمان داده |
۵ | Programming Fundamentals | مقدمات برنامه نويسي |
۶ | The Object-Oriented Paradigm | مدل شئي گرا |
۷ | Introduction to Software Engineering | مقدمات مهندس نرم افزار |
۸ | Discrete Structures I | ساختمانهاي گسسته ۱ |
۹ | Discrete Structures II | ساختمانهاي گسسته ۲ |
۱۰ | Statistics and Empirical Methods | آمار و روشهاي تجربي |
۱۱ | Software Construction | ساخت (پياده سازي) نرم افزار |
۱۲ | Software Engineering Approach to Human Computer Interaction | مباحث مربوط به طراحي واسط كاربر |
۱۳ | Software Design and Architecture | معماري و طراحي نرم افزار |
۱۴ | Software Quality Assurance and Testing | تضمين كيفيت و تست نرم افزار |
۱۵ | Software Requirements Analysis | تجزيه و تحليل نيازمنديهاي نرم افزاري |
۱۶ | Software Project Management | مديريت پروژههاي نرم افزار |
۱۷ | Design and Architecture of Large Software Systems | معماري و طراحي و سيستمهاي بزرگ نرم افزاري |
۱۸ | Software Testing | تست نرم افزار |
۱۹ | Low-Level Design of Software | طراحي سطح پايين سيستم |
۲۰ | Software Process and Management | فرآيند توليد و مديريت نرم افزار |
۲۱ | Formal Methods in Software Engineering | روشهاي رسمي در مهندسي نرم افزار |
۲۲ | Software Engineering Capstone Project | پروژه |
اين ليست شامل موارد ديگري مانند دورههاي عملي و اقتصاد در مديريت نيز ميشود.
لازم به ياددآوري است كه اين ليست شامل موارد الزامي ميباشد و هر دورهاي ميتواند دروس ديگري را نيز به صلاح ديد خود ارائه دهد.
نتيجه
همانگونه كه مشهود است دروسي كه در حال حاضر در ايران ارائه ميشود نياز به بازبيني جدي دارد تا خروجي دانشگاههاي كشورمان بتواند گرهاي از كلاف بهم پيچيدة توليد نرم افزار بگشايد.
نظرات
-
3 مارس 2015 در 4:02 ق.ظ -
واقعا چرا باید این طور باشه؟؟؟ چرا دانشگاه های ما پویایی ندارند ؟چرا دانشجو باید درگیر دروسی بشند که در اینده هیچ استفاده ای از اونها نمیشه؟ واقعا چرا باید این طور باشه؟
-
3 مارس 2015 در 12:42 ب.ظ -
متاسفانه من پاسخ سئوال شما رو نمی دونم. فکر می کنم اساتید دانشگاه اولین افرادی هستن که باید این تحول رو شروع کنن.
-
5 می 2017 در 7:37 ق.ظ -
واقعا همیشه برای من سواله این فاصله وحشتناک مقاله ها و اخبار های حیطه مهندسی نرم افزاردر مقایسه با وقتی که تو آزمایشگاه و کلاسهای دانشگاه هستم
عجب مطلبِ خوبی بود
خدا قوت -
5 می 2017 در 1:18 ب.ظ -
ممنون از بازخورد مثبت. حتی در در کشورهای پیشرفته هم این مشکل وجود داره ولی در حال بهبود هست وضعیت.
-
2 فوریه 2018 در 3:48 ب.ظ -
نه فقط این مقاله ، همه مطالب عالین ، حیف که تعداد مقالات کمه و ما از این دانش خالص شما محروم
-
2 فوریه 2018 در 5:35 ب.ظ -
ممنون از لطفت. مدتی مقاله فارسی نمینویسم و تمرکزم رو روی Big Data گذاشتم. فرصتی بود حتمن.
-
12 دسامبر 2019 در 6:38 ق.ظ -
سلام اقا امین … البته فکر کنم باید شما را دکتر امین صدا بزنم … جناب دکتر چرا کم مینویسی …
الان بیش از یک ساعت است که مشغول مطالع همه مطالب سایت شما هستم … خیل عالی و اثر گذار نوشتی
از شما ممنونم و تقاضا دارم باز بنوسید …. خصوصا راجب مهندسی نرم افزار -
12 دسامبر 2019 در 2:26 ب.ظ -
سلام و ممنون از لطف شما. مدتی هستش که زمینه کاریم از مهندسی نرم افزار محض به بیگ دیتا تغییر کرده و دیگه به زبان فارسی نمینویسم. توصیه میکنم منابع انگلیسی مطالعه کنین از مطالب ناقص من خیلی مفیدتره. موفق باشید
لطفاً نظر بدین
ارجاعات