وبلاگ

گاه نوشته های امین رشیدی

مهندسی نرم افزار در دانشگاه
CC

مهندسی نرم افزار در دانشگاه

۳ام خرداد ، ۱۳۸۸

همانگونه كه قرار بود، قصد بررسي دروس ارائه شده در مقطع كارشناسي مهندسي نرم افزار در ايران را داريم. بي شك مرتبط بودن و كيفيت ارائه، عامل مهمي در تربيت مناسب نيروهاي فعال در حوزة مهندسي نرم افزار مي‌باشد.

كارشناسي مهندسي نرم افزار- آنچه هست

طبق مصوبة شوراي عالي برنامه ريزي وزارت فرهنگ و آموزش عالي مورخه ۱۳۷۷/۸/۲۴، ليست دروس اصلي و تخصصي دورة كارشناسي مهندسي كامپيوتر، گرايش نرم افزار به شرح ذيل است:

 

رديف نام درس
۱ آزمايشگاه كامپيوتر
۲ مباني كامپيوتر و برنامه سازي
۳ برنامه سازي پيشرفته
۴ ساختمانهاي گسسته
۵ زبان ماشين و برنامه سازي سيستم
۶ ساختمان داده ها
۷ زبان تخصصي
۸ مدار الكتريكي ۱
۹ آزمايشگاه مدار الكتريكي ۱
۱۰ مدار منطقي
۱۱ آزمايشگاه مدار منطقي
۱۲ رياضي مهندسي
۱۳ طراحي الگوريتم
۱۴ معماري كامپيوتر
۱۵ آزمايشگاه معماري كامپيوتر
۱۶ سيستمهاي عامل
۱۷ نظريه زبانها و ماشينها
۱۸ طراحي و پياده سازي زبانهاي برنامه سازي
۱۹ ريز پردازنده
۲۰ آزمايشگاه ريز پردازنده
۲۱ مدارهاي الكترونيكي
۲۲ آزمايشگاه مدارهاي الكترونيكي
۲۳ شبكه‌هاي كامپيوتري
۲۴ شيوه ارائه مطالب علمي و فني
۲۵ ذخيره و بازيابي اطلاعات
۲۶ هوش مصنوعي
۲۷ اصول طراحي كامپايلر
۲۸ مهندسي نرم افزار ۱ و ۲
۲۹ اصول طراحي پايگاه داده
۳۰ آزمايشگاه سيستم عامل
۳۱ آزمايشگاه پايگاه داده
۳۲ پروژه
۳۳ كارآموزي

و به استناد همان مصوبه، قابليت و مهارتهاي زير از فارغ التحصيلان رشته كامپيوتر انتظار مي‌رود:

  1. بررسي و شناسايي سيستمهاي كامپيوتري به منظور انتخاب و سفارش سخت افزار، نرم افزار بهينه، هدايت و نظارت در نصب و بهره برداري ازآنها.
  2. ارائه روشهاي عيب يابي، اصلاح و تكميل سيستمهاي سخت افزاري ويا نرم افزاري موجود و نظارت بر اين امور.
  3. طراحي، ساخت و راه انداري سيستمهاي جديد سخت افزاري و نرم افزاري.
  4. تشخيص لزوم استفاده از كامپيوتر در كنترل عمليات در محيطهاي مختلف.
  5. شناسايي تكنيكهاي جديد طراحي وساخت كامپيوتر، ارزيابي و بكارگيري آنها.

به نظر مي رسد:

  1. ليست دروس تصويب شده بيشتر براي تربيت دانشجوي مسلح به علم كامپيوتر مناسب به نظر مي‌رسد تا مهندسي نرم افزار موارد ۸، ۹،۱۰، ۱۱،۱۲، ۱۴، ۱۵، ۱۹، ۲۰، ۲۱، ۲۲ دروس مرتبط با Computer science است.
  2. دروسي كه مستقيماً به مهندسي نرم افزار مرتبط مي‌شوند اندك است.
  3. غير از مورد ۳۱ هيچ آزمايشگاه ديگري مرتبط با مهندسي نرم افزار وجود ندارد در حالي ۷ مورد آزمايشگاه متفرقه وجود دارد.
  4. مهارتهاي مديريتي جايگاهي در ليست ندارد.
  5. به نظر مي‌رسد مسئولين مربوطه بيشتر به “كامپيوتر” پرداخته‌اند تا “نرم افزار”.

در كل اهداف ودروس ارائه شده نشان از ديدگاه قديمي (حدود دهه ۷۰ ميلادي) نسبت به مهندسي نرم افزار دارد. حال اينكه توليد نرم افزار فرآيندي به نسبت پيچيده و حتي متفاوت با ديگر رشته‌هاي مهندسي است. مهندسي نرم افزار تغييرات بسياري از آن زمان تا كنون كرده است و به مقوله‌اي جدي و مستقل تبديل شده است.

آنچه بايد بشود

تلاشهاي ثمر بخشي در زمينه تعريف بدنة دانش مهندسي نرم افزار (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 پروژه

اين ليست شامل موارد ديگري مانند دوره‌هاي عملي و اقتصاد در مديريت نيز مي‌شود.

لازم به ياددآوري است كه اين ليست شامل موارد الزامي مي‌باشد و هر دوره‌اي مي‌تواند دروس ديگري را نيز به صلاح ديد خود ارائه دهد.

نتيجه

همانگونه كه مشهود است دروسي كه در حال حاضر در ايران ارائه مي‌شود نياز به بازبيني جدي دارد تا خروجي دانشگاه‌هاي كشورمان بتواند گره‌اي از كلاف بهم پيچيدة توليد نرم افزار بگشايد.

ارجاعات

نظرات

  1. ۱ فروردین ۱۳۹۴ در ۴:۰۲ ق.ظ - پاسخ

    واقعا چرا باید این طور باشه؟؟؟ چرا دانشگاه های ما پویایی ندارند ؟چرا دانشجو باید درگیر دروسی بشند که در اینده هیچ استفاده ای از اونها نمیشه؟ واقعا چرا باید این طور باشه؟

    • امین
      ۱ فروردین ۱۳۹۴ در ۱۲:۴۲ ب.ظ - پاسخ

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

  2. علی
    ۳ خرداد ۱۳۹۶ در ۷:۳۷ ق.ظ - پاسخ

    واقعا همیشه برای من سواله این فاصله وحشتناک مقاله ها و اخبار های حیطه مهندسی نرم افزاردر مقایسه با وقتی که تو آزمایشگاه و کلاسهای دانشگاه هستم
    عجب مطلبِ خوبی بود
    خدا قوت

    • امین
      ۳ خرداد ۱۳۹۶ در ۱:۱۸ ب.ظ - پاسخ

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

  3. سهند
    ۱۲ اسفند ۱۳۹۶ در ۳:۴۸ ب.ظ - پاسخ

    نه فقط این مقاله ، همه مطالب عالین ، حیف که تعداد مقالات کمه و ما از این دانش خالص شما محروم

    • امین
      ۱۲ اسفند ۱۳۹۶ در ۵:۳۵ ب.ظ - پاسخ

      ممنون از لطفت. مدتی مقاله فارسی نمی‌نویسم و تمرکزم رو روی Big Data گذاشتم. فرصتی بود حتمن.