مقدمه ای بر مهندسی نرم افزار

نرم افزار چیست ؟

برای نرم افزار سه تعریف وجود دارد :

  1. برنامه ای کامپیوتری است که یک سری خصیصه ها و ویژگی ها در اختیار کاربران قرار می دهد.
  2. ساختمان داده ای است که به سایر برنامه ها اجازه دستکاری و ذخیره داده ها را می دهد.
  3. مستندی باشد که در ارتباط با ویژگی ها و کارکردهای سایر برنامه ها به کاربران اطلاعات می دهد.

مهندس نرم افزار کیست ؟

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

مهندسی نرم افزار چیست ؟

به مجموعه از روش ها ، فناوری ها و ابزارها برای تولید یک محصول با کیفیت، مهندسی نرم افزار می گویند .

( در دنیای امروزه ، اطلاعات و داده ها از اهمیت بالایی برخوردار هستند . به کمک  نرم افزار می توان اطلاعات تولید ، تبدیل ، نگهداری و ارائه داد )

نکته : تفاوت مهندسی نرم افزار و برنامه نویسی در چیست ؟ در واقع برنامه نویسی جزئی از مهندسی نرم افزار است .

مثال : کدام یک از گزینه های زیر نادرست است ؟

  1. نرم افزار ساختمان داده ای است که سایر برنامه ها را قادر می سازد تا اطلاعات را دستکاری کنند.
  2. مهندس نرم افزار کسی است که نرم افزار را تولید و پشتیبانی می کند .
  3. برنامه نویسی بخشی از مهندسی نرم افزار نیست.
  4. هیچ کدام.

جواب : گزینه ۳ – برنامه نویسی بخشی از فرایند مهندسی نرم افزار است.

بررسی مشکلات نرم افزار ها :

  • رشد چشم گیر سخت افزار ها ( رشد تکنولوژی ) : هر نرم افزار با رشد چشم گیر سخت افرار ها باید مدام خودش را با جدیدترین تکنولوژی ها وفق دهد
  • رشد سریع نیازهای بازار : در بازار امروزه با رشد سریع تغییرات و نیازهای کاربران روبرو هستیم که این مشکل زمان تولید نرم افزار را افزایش می دهد.
  • نیاز به نرم افزارهای تحت وبی : امروزه با گسترش اینترنت و دردسترس بودن آن ، نیاز کاربران به نرم افزارهای تحت وب ، روز به روز افزایش می یابد که در این مورد باید امنیت این گونه نرم افزار ها بالا باشد .
  • اقبال عمومی : در گذشته استفاده از نرم افزار مختص ادارات و سازمان ها بود ولی امروزه با گسترش کامپیوتر ها و تبلت ها و… اقبال عمومی به استفاده از نرم افزار بالاتر رفته و این خود باعث می شود تا نیازهای کاربران خانگی را نیز در نظر گرفت .
  • نگهداری و پشتیبانی نرم افزار

نکته ۱ : در تولید یک نرم افزار زمان و هزینه از مولفه های مهم می باشد . یکی از علل اصلی بالا بودن تولید نرم افزار ، عدم استفاده از مولفه های آماده و آزمایش شده می باشد . و از علل اصلی بالارفتن هزینه تولید نرم افزار رشد سریع نیازهای مشتریان می باشد.

ویژگی های نرم افزار که از آن را از سخت افزار متمایز می کند :

  1. نرم افزار ساخته نمی شود بلکه توسعه و مهندسی می شود .تولید نرم افزار یک فرآیند فکری است نه فیزیکی .در واقع هزینه تولید نرم افزار بر روی مهندسی آن متمرکز است .
  2. نرم افزار دورانداخته نمی شود : سخت افزار دورانداخته می شود درحالی که نرم افزار رو به زوال می رود .
  3. نرم افزار براساس نیاز مشتری ساخته می شود. اگرچه سفارشی ساختن در سخت افزار وجود دارد ولی در نرم افزار بیشتر به چشم می خورد .
  4. نرم افزار اصطحکاک ندارد .

 

انواع نرم افزار ها و کاربردهای آن ها :

  • نرم افزار های سیستمی :
    • برای سرویس دادن به سایر برنامه ها تولید می شوند . مثل برخی مولفه های سیستم عامل ها ، کامپایلرها ، برنامه های مدیریت فایل ها . این نرم افزار ها ساختار پیچیده ای دارند و نیز فعل و انفعال زیادی با سخت افزار دارند و توسط کاربران زیادی مورد استفاده قرار می گیرند پس :
      • فعل و انفعال زیاد با سخت افزار دارند.
      • مورد استفاده زیاد کاربران قرار دارند.
      • منابع را به اشتراک می گذارند.
      • واسط های خارجی چندگانه ای دارند .
  • نرم افزار های کاربردی :
    • این نرم افزارها برای حل مشکلات تجاری طراحی و توسعه داده می شوند . اینگونه نرم افزار ها پردازش داده ها را به صورت آنلاین انجام می دهند .
  • نرم افزارهای علمی و مهندسی :
    • برای حل مشکلات در رشته های فنی و مهندسی و علمی طراحی می شوند . مثل سیستم های زمین شناسی ، شاتل فضایی و حسابداری تخصصی و…
  • نرم افزار های تعبیه شده – توکار
    • این نرم افزار ها به صورت آنلاین و برخط برای کنترل یکسری خصیصه ها کاربرد دارند  مثلا کنترل سوخت هواپیما یا کنترل چرخ های اتومبیل و …
  • نرم افزار های خط تولید
    • هدف این نرم افزار ها فراهم کردن قابلیت های شخصی برای استفاده زیاد کاربران است .  . مثل نرم افزار فوتوشاپ ، تفریحی و …
  • نرم افزار های تحت وب
  • هوش مصنوعی :
    • برای حل مسائل غیرعددی و پیچیده که در حالت مستقیم قابل حل نیستند . مثل روباتیک و …
  • همه جا حاضر:
    • نرم افزار های توزیع شده که در هرجایی در دسترس هستند.
  • متن باز :
    • نرم افزار هایی که سورس آن ها مشخص و باز بوده و هرکسی می تواند طبق سلیقه خودش آن ها را ویرایش و شخصی سازی کند .

 

مثال :کدام گزینه در ارتباط با نوع نرم افزار نادرست است :

  1. فوتوشاپ جز نرم افزارهای خط تولید می باشد .
  2. نرم افزار های کنترل پرواز جز نرم افزارهای توکار است .
  3. نرم افزار های پردازش صوت ، جز نرم افزارهای هوش مصنوعی است.
  4. نرم افزارهای حسابداری ، جز نرم افزار های خط تولید است .

جواب : ۴

 

نکته :  نرم افزارهای کاربردی مختلف را می توان براساس محتوا و پیچیدگی اطلاعات آن ها تقسیم بندی کرد.

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *